@dytesdk/angular-ui-kit 3.0.7-staging.1 → 3.0.8-staging.1

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.
@@ -1,3538 +0,0 @@
1
- import { __decorate } from "tslib";
2
- /* tslint:disable */
3
- /* auto-generated angular directive proxies */
4
- import { ChangeDetectionStrategy, Component } from '@angular/core';
5
- import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
- import * as i0 from "@angular/core";
7
- let DyteAi = class DyteAi {
8
- constructor(c, r, z) {
9
- this.z = z;
10
- c.detach();
11
- this.el = r.nativeElement;
12
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
13
- }
14
- };
15
- DyteAi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
16
- DyteAi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAi, selector: "dyte-ai", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17
- DyteAi = __decorate([
18
- ProxyCmp({
19
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'view']
20
- })
21
- ], DyteAi);
22
- export { DyteAi };
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAi, decorators: [{
24
- type: Component,
25
- args: [{
26
- selector: 'dyte-ai',
27
- changeDetection: ChangeDetectionStrategy.OnPush,
28
- template: '<ng-content></ng-content>',
29
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
30
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'view'],
31
- }]
32
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
33
- let DyteAiToggle = class DyteAiToggle {
34
- constructor(c, r, z) {
35
- this.z = z;
36
- c.detach();
37
- this.el = r.nativeElement;
38
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
39
- }
40
- };
41
- DyteAiToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
42
- DyteAiToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAiToggle, selector: "dyte-ai-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
43
- DyteAiToggle = __decorate([
44
- ProxyCmp({
45
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
46
- })
47
- ], DyteAiToggle);
48
- export { DyteAiToggle };
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiToggle, decorators: [{
50
- type: Component,
51
- args: [{
52
- selector: 'dyte-ai-toggle',
53
- changeDetection: ChangeDetectionStrategy.OnPush,
54
- template: '<ng-content></ng-content>',
55
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
56
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
57
- }]
58
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
59
- let DyteAiTranscriptions = class DyteAiTranscriptions {
60
- constructor(c, r, z) {
61
- this.z = z;
62
- c.detach();
63
- this.el = r.nativeElement;
64
- }
65
- };
66
- DyteAiTranscriptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiTranscriptions, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
67
- DyteAiTranscriptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAiTranscriptions, selector: "dyte-ai-transcriptions", inputs: { initialTranscriptions: "initialTranscriptions", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
- DyteAiTranscriptions = __decorate([
69
- ProxyCmp({
70
- inputs: ['initialTranscriptions', 'meeting', 't']
71
- })
72
- ], DyteAiTranscriptions);
73
- export { DyteAiTranscriptions };
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAiTranscriptions, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'dyte-ai-transcriptions',
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- template: '<ng-content></ng-content>',
80
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
81
- inputs: ['initialTranscriptions', 'meeting', 't'],
82
- }]
83
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
84
- let DyteAudioGrid = class DyteAudioGrid {
85
- constructor(c, r, z) {
86
- this.z = z;
87
- c.detach();
88
- this.el = r.nativeElement;
89
- }
90
- };
91
- DyteAudioGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
92
- DyteAudioGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAudioGrid, selector: "dyte-audio-grid", inputs: { config: "config", hideSelf: "hideSelf", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
93
- DyteAudioGrid = __decorate([
94
- ProxyCmp({
95
- inputs: ['config', 'hideSelf', 'iconPack', 'meeting', 'size', 'states', 't']
96
- })
97
- ], DyteAudioGrid);
98
- export { DyteAudioGrid };
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioGrid, decorators: [{
100
- type: Component,
101
- args: [{
102
- selector: 'dyte-audio-grid',
103
- changeDetection: ChangeDetectionStrategy.OnPush,
104
- template: '<ng-content></ng-content>',
105
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
106
- inputs: ['config', 'hideSelf', 'iconPack', 'meeting', 'size', 'states', 't'],
107
- }]
108
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
109
- let DyteAudioTile = class DyteAudioTile {
110
- constructor(c, r, z) {
111
- this.z = z;
112
- c.detach();
113
- this.el = r.nativeElement;
114
- }
115
- };
116
- DyteAudioTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
117
- DyteAudioTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAudioTile, selector: "dyte-audio-tile", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", participant: "participant", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
- DyteAudioTile = __decorate([
119
- ProxyCmp({
120
- inputs: ['config', 'iconPack', 'meeting', 'participant', 'size', 'states', 't']
121
- })
122
- ], DyteAudioTile);
123
- export { DyteAudioTile };
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioTile, decorators: [{
125
- type: Component,
126
- args: [{
127
- selector: 'dyte-audio-tile',
128
- changeDetection: ChangeDetectionStrategy.OnPush,
129
- template: '<ng-content></ng-content>',
130
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
131
- inputs: ['config', 'iconPack', 'meeting', 'participant', 'size', 'states', 't'],
132
- }]
133
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
134
- let DyteAudioVisualizer = class DyteAudioVisualizer {
135
- constructor(c, r, z) {
136
- this.z = z;
137
- c.detach();
138
- this.el = r.nativeElement;
139
- }
140
- };
141
- DyteAudioVisualizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioVisualizer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
142
- DyteAudioVisualizer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAudioVisualizer, selector: "dyte-audio-visualizer", inputs: { hideMuted: "hideMuted", iconPack: "iconPack", isScreenShare: "isScreenShare", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
- DyteAudioVisualizer = __decorate([
144
- ProxyCmp({
145
- inputs: ['hideMuted', 'iconPack', 'isScreenShare', 'participant', 'size', 't', 'variant']
146
- })
147
- ], DyteAudioVisualizer);
148
- export { DyteAudioVisualizer };
149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAudioVisualizer, decorators: [{
150
- type: Component,
151
- args: [{
152
- selector: 'dyte-audio-visualizer',
153
- changeDetection: ChangeDetectionStrategy.OnPush,
154
- template: '<ng-content></ng-content>',
155
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
156
- inputs: ['hideMuted', 'iconPack', 'isScreenShare', 'participant', 'size', 't', 'variant'],
157
- }]
158
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
159
- let DyteAvatar = class DyteAvatar {
160
- constructor(c, r, z) {
161
- this.z = z;
162
- c.detach();
163
- this.el = r.nativeElement;
164
- }
165
- };
166
- DyteAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAvatar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
167
- DyteAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteAvatar, selector: "dyte-avatar", inputs: { iconPack: "iconPack", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
168
- DyteAvatar = __decorate([
169
- ProxyCmp({
170
- inputs: ['iconPack', 'participant', 'size', 't', 'variant']
171
- })
172
- ], DyteAvatar);
173
- export { DyteAvatar };
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteAvatar, decorators: [{
175
- type: Component,
176
- args: [{
177
- selector: 'dyte-avatar',
178
- changeDetection: ChangeDetectionStrategy.OnPush,
179
- template: '<ng-content></ng-content>',
180
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
181
- inputs: ['iconPack', 'participant', 'size', 't', 'variant'],
182
- }]
183
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
184
- let DyteBreakoutRoomManager = class DyteBreakoutRoomManager {
185
- constructor(c, r, z) {
186
- this.z = z;
187
- c.detach();
188
- this.el = r.nativeElement;
189
- proxyOutputs(this, this.el, ['participantsAdd', 'participantDelete', 'roomJoin', 'delete', 'update']);
190
- }
191
- };
192
- DyteBreakoutRoomManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomManager, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
193
- DyteBreakoutRoomManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomManager, selector: "dyte-breakout-room-manager", inputs: { allowDelete: "allowDelete", assigningParticipants: "assigningParticipants", defaultExpanded: "defaultExpanded", iconPack: "iconPack", isDragMode: "isDragMode", meeting: "meeting", mode: "mode", room: "room", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
- DyteBreakoutRoomManager = __decorate([
195
- ProxyCmp({
196
- inputs: ['allowDelete', 'assigningParticipants', 'defaultExpanded', 'iconPack', 'isDragMode', 'meeting', 'mode', 'room', 'states', 't']
197
- })
198
- ], DyteBreakoutRoomManager);
199
- export { DyteBreakoutRoomManager };
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomManager, decorators: [{
201
- type: Component,
202
- args: [{
203
- selector: 'dyte-breakout-room-manager',
204
- changeDetection: ChangeDetectionStrategy.OnPush,
205
- template: '<ng-content></ng-content>',
206
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
207
- inputs: ['allowDelete', 'assigningParticipants', 'defaultExpanded', 'iconPack', 'isDragMode', 'meeting', 'mode', 'room', 'states', 't'],
208
- }]
209
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
210
- let DyteBreakoutRoomParticipants = class DyteBreakoutRoomParticipants {
211
- constructor(c, r, z) {
212
- this.z = z;
213
- c.detach();
214
- this.el = r.nativeElement;
215
- proxyOutputs(this, this.el, ['selectedParticipantsUpdate', 'allParticipantsToggleUpdate', 'participantsDragging']);
216
- }
217
- };
218
- DyteBreakoutRoomParticipants.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomParticipants, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
219
- DyteBreakoutRoomParticipants.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomParticipants, selector: "dyte-breakout-room-participants", inputs: { iconPack: "iconPack", meeting: "meeting", participantIds: "participantIds", selectedParticipantIds: "selectedParticipantIds", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
220
- DyteBreakoutRoomParticipants = __decorate([
221
- ProxyCmp({
222
- inputs: ['iconPack', 'meeting', 'participantIds', 'selectedParticipantIds', 't']
223
- })
224
- ], DyteBreakoutRoomParticipants);
225
- export { DyteBreakoutRoomParticipants };
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomParticipants, decorators: [{
227
- type: Component,
228
- args: [{
229
- selector: 'dyte-breakout-room-participants',
230
- changeDetection: ChangeDetectionStrategy.OnPush,
231
- template: '<ng-content></ng-content>',
232
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
233
- inputs: ['iconPack', 'meeting', 'participantIds', 'selectedParticipantIds', 't'],
234
- }]
235
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
236
- let DyteBreakoutRoomsManager = class DyteBreakoutRoomsManager {
237
- constructor(c, r, z) {
238
- this.z = z;
239
- c.detach();
240
- this.el = r.nativeElement;
241
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
242
- }
243
- };
244
- DyteBreakoutRoomsManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsManager, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
245
- DyteBreakoutRoomsManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomsManager, selector: "dyte-breakout-rooms-manager", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
246
- DyteBreakoutRoomsManager = __decorate([
247
- ProxyCmp({
248
- inputs: ['iconPack', 'meeting', 'states', 't']
249
- })
250
- ], DyteBreakoutRoomsManager);
251
- export { DyteBreakoutRoomsManager };
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsManager, decorators: [{
253
- type: Component,
254
- args: [{
255
- selector: 'dyte-breakout-rooms-manager',
256
- changeDetection: ChangeDetectionStrategy.OnPush,
257
- template: '<ng-content></ng-content>',
258
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
259
- inputs: ['iconPack', 'meeting', 'states', 't'],
260
- }]
261
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
262
- let DyteBreakoutRoomsToggle = class DyteBreakoutRoomsToggle {
263
- constructor(c, r, z) {
264
- this.z = z;
265
- c.detach();
266
- this.el = r.nativeElement;
267
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
268
- }
269
- };
270
- DyteBreakoutRoomsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
271
- DyteBreakoutRoomsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBreakoutRoomsToggle, selector: "dyte-breakout-rooms-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
272
- DyteBreakoutRoomsToggle = __decorate([
273
- ProxyCmp({
274
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
275
- })
276
- ], DyteBreakoutRoomsToggle);
277
- export { DyteBreakoutRoomsToggle };
278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBreakoutRoomsToggle, decorators: [{
279
- type: Component,
280
- args: [{
281
- selector: 'dyte-breakout-rooms-toggle',
282
- changeDetection: ChangeDetectionStrategy.OnPush,
283
- template: '<ng-content></ng-content>',
284
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
285
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
286
- }]
287
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
288
- let DyteBroadcastMessageModal = class DyteBroadcastMessageModal {
289
- constructor(c, r, z) {
290
- this.z = z;
291
- c.detach();
292
- this.el = r.nativeElement;
293
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
294
- }
295
- };
296
- DyteBroadcastMessageModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBroadcastMessageModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
297
- DyteBroadcastMessageModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteBroadcastMessageModal, selector: "dyte-broadcast-message-modal", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
298
- DyteBroadcastMessageModal = __decorate([
299
- ProxyCmp({
300
- inputs: ['iconPack', 'meeting', 'states', 't']
301
- })
302
- ], DyteBroadcastMessageModal);
303
- export { DyteBroadcastMessageModal };
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteBroadcastMessageModal, decorators: [{
305
- type: Component,
306
- args: [{
307
- selector: 'dyte-broadcast-message-modal',
308
- changeDetection: ChangeDetectionStrategy.OnPush,
309
- template: '<ng-content></ng-content>',
310
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
311
- inputs: ['iconPack', 'meeting', 'states', 't'],
312
- }]
313
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
314
- let DyteButton = class DyteButton {
315
- constructor(c, r, z) {
316
- this.z = z;
317
- c.detach();
318
- this.el = r.nativeElement;
319
- }
320
- };
321
- DyteButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
322
- DyteButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteButton, selector: "dyte-button", inputs: { disabled: "disabled", kind: "kind", reverse: "reverse", size: "size", type: "type", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
323
- DyteButton = __decorate([
324
- ProxyCmp({
325
- inputs: ['disabled', 'kind', 'reverse', 'size', 'type', 'variant']
326
- })
327
- ], DyteButton);
328
- export { DyteButton };
329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteButton, decorators: [{
330
- type: Component,
331
- args: [{
332
- selector: 'dyte-button',
333
- changeDetection: ChangeDetectionStrategy.OnPush,
334
- template: '<ng-content></ng-content>',
335
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
336
- inputs: ['disabled', 'kind', 'reverse', 'size', 'type', 'variant'],
337
- }]
338
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
339
- let DyteCameraSelector = class DyteCameraSelector {
340
- constructor(c, r, z) {
341
- this.z = z;
342
- c.detach();
343
- this.el = r.nativeElement;
344
- }
345
- };
346
- DyteCameraSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraSelector, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
347
- DyteCameraSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCameraSelector, selector: "dyte-camera-selector", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
348
- DyteCameraSelector = __decorate([
349
- ProxyCmp({
350
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
351
- })
352
- ], DyteCameraSelector);
353
- export { DyteCameraSelector };
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraSelector, decorators: [{
355
- type: Component,
356
- args: [{
357
- selector: 'dyte-camera-selector',
358
- changeDetection: ChangeDetectionStrategy.OnPush,
359
- template: '<ng-content></ng-content>',
360
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
361
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant'],
362
- }]
363
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
364
- let DyteCameraToggle = class DyteCameraToggle {
365
- constructor(c, r, z) {
366
- this.z = z;
367
- c.detach();
368
- this.el = r.nativeElement;
369
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
370
- }
371
- };
372
- DyteCameraToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
373
- DyteCameraToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCameraToggle, selector: "dyte-camera-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
374
- DyteCameraToggle = __decorate([
375
- ProxyCmp({
376
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
377
- })
378
- ], DyteCameraToggle);
379
- export { DyteCameraToggle };
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCameraToggle, decorators: [{
381
- type: Component,
382
- args: [{
383
- selector: 'dyte-camera-toggle',
384
- changeDetection: ChangeDetectionStrategy.OnPush,
385
- template: '<ng-content></ng-content>',
386
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
387
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant'],
388
- }]
389
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
390
- let DyteCaptionToggle = class DyteCaptionToggle {
391
- constructor(c, r, z) {
392
- this.z = z;
393
- c.detach();
394
- this.el = r.nativeElement;
395
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
396
- }
397
- };
398
- DyteCaptionToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCaptionToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
399
- DyteCaptionToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCaptionToggle, selector: "dyte-caption-toggle", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
400
- DyteCaptionToggle = __decorate([
401
- ProxyCmp({
402
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
403
- })
404
- ], DyteCaptionToggle);
405
- export { DyteCaptionToggle };
406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCaptionToggle, decorators: [{
407
- type: Component,
408
- args: [{
409
- selector: 'dyte-caption-toggle',
410
- changeDetection: ChangeDetectionStrategy.OnPush,
411
- template: '<ng-content></ng-content>',
412
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
413
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant'],
414
- }]
415
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
416
- let DyteChannelCreator = class DyteChannelCreator {
417
- constructor(c, r, z) {
418
- this.z = z;
419
- c.detach();
420
- this.el = r.nativeElement;
421
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'switchChannel']);
422
- }
423
- };
424
- DyteChannelCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelCreator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
425
- DyteChannelCreator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelCreator, selector: "dyte-channel-creator", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
426
- DyteChannelCreator = __decorate([
427
- ProxyCmp({
428
- inputs: ['iconPack', 'meeting', 't']
429
- })
430
- ], DyteChannelCreator);
431
- export { DyteChannelCreator };
432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelCreator, decorators: [{
433
- type: Component,
434
- args: [{
435
- selector: 'dyte-channel-creator',
436
- changeDetection: ChangeDetectionStrategy.OnPush,
437
- template: '<ng-content></ng-content>',
438
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
439
- inputs: ['iconPack', 'meeting', 't'],
440
- }]
441
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
442
- let DyteChannelDetails = class DyteChannelDetails {
443
- constructor(c, r, z) {
444
- this.z = z;
445
- c.detach();
446
- this.el = r.nativeElement;
447
- }
448
- };
449
- DyteChannelDetails.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelDetails, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
450
- DyteChannelDetails.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelDetails, selector: "dyte-channel-details", inputs: { channel: "channel", iconPack: "iconPack", members: "members", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
451
- DyteChannelDetails = __decorate([
452
- ProxyCmp({
453
- inputs: ['channel', 'iconPack', 'members', 't']
454
- })
455
- ], DyteChannelDetails);
456
- export { DyteChannelDetails };
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelDetails, decorators: [{
458
- type: Component,
459
- args: [{
460
- selector: 'dyte-channel-details',
461
- changeDetection: ChangeDetectionStrategy.OnPush,
462
- template: '<ng-content></ng-content>',
463
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
464
- inputs: ['channel', 'iconPack', 'members', 't'],
465
- }]
466
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
467
- let DyteChannelHeader = class DyteChannelHeader {
468
- constructor(c, r, z) {
469
- this.z = z;
470
- c.detach();
471
- this.el = r.nativeElement;
472
- proxyOutputs(this, this.el, ['search', 'searchDismissed', 'back']);
473
- }
474
- };
475
- DyteChannelHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
476
- DyteChannelHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelHeader, selector: "dyte-channel-header", inputs: { channel: "channel", iconPack: "iconPack", meeting: "meeting", showBackButton: "showBackButton", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
477
- DyteChannelHeader = __decorate([
478
- ProxyCmp({
479
- inputs: ['channel', 'iconPack', 'meeting', 'showBackButton', 't']
480
- })
481
- ], DyteChannelHeader);
482
- export { DyteChannelHeader };
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelHeader, decorators: [{
484
- type: Component,
485
- args: [{
486
- selector: 'dyte-channel-header',
487
- changeDetection: ChangeDetectionStrategy.OnPush,
488
- template: '<ng-content></ng-content>',
489
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
490
- inputs: ['channel', 'iconPack', 'meeting', 'showBackButton', 't'],
491
- }]
492
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
493
- let DyteChannelSelectorUi = class DyteChannelSelectorUi {
494
- constructor(c, r, z) {
495
- this.z = z;
496
- c.detach();
497
- this.el = r.nativeElement;
498
- proxyOutputs(this, this.el, ['channelChanged']);
499
- }
500
- };
501
- DyteChannelSelectorUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
502
- DyteChannelSelectorUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelSelectorUi, selector: "dyte-channel-selector-ui", inputs: { channels: "channels", iconPack: "iconPack", selectedChannelId: "selectedChannelId", showRecentMessage: "showRecentMessage", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
503
- DyteChannelSelectorUi = __decorate([
504
- ProxyCmp({
505
- inputs: ['channels', 'iconPack', 'selectedChannelId', 'showRecentMessage', 't']
506
- })
507
- ], DyteChannelSelectorUi);
508
- export { DyteChannelSelectorUi };
509
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorUi, decorators: [{
510
- type: Component,
511
- args: [{
512
- selector: 'dyte-channel-selector-ui',
513
- changeDetection: ChangeDetectionStrategy.OnPush,
514
- template: '<ng-content></ng-content>',
515
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
516
- inputs: ['channels', 'iconPack', 'selectedChannelId', 'showRecentMessage', 't'],
517
- }]
518
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
519
- let DyteChannelSelectorView = class DyteChannelSelectorView {
520
- constructor(c, r, z) {
521
- this.z = z;
522
- c.detach();
523
- this.el = r.nativeElement;
524
- proxyOutputs(this, this.el, ['channelChange']);
525
- }
526
- };
527
- DyteChannelSelectorView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
528
- DyteChannelSelectorView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChannelSelectorView, selector: "dyte-channel-selector-view", inputs: { channels: "channels", disableSearch: "disableSearch", hideAvatar: "hideAvatar", iconPack: "iconPack", selectedChannelId: "selectedChannelId", t: "t", viewAs: "viewAs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
529
- DyteChannelSelectorView = __decorate([
530
- ProxyCmp({
531
- inputs: ['channels', 'disableSearch', 'hideAvatar', 'iconPack', 'selectedChannelId', 't', 'viewAs']
532
- })
533
- ], DyteChannelSelectorView);
534
- export { DyteChannelSelectorView };
535
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChannelSelectorView, decorators: [{
536
- type: Component,
537
- args: [{
538
- selector: 'dyte-channel-selector-view',
539
- changeDetection: ChangeDetectionStrategy.OnPush,
540
- template: '<ng-content></ng-content>',
541
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
542
- inputs: ['channels', 'disableSearch', 'hideAvatar', 'iconPack', 'selectedChannelId', 't', 'viewAs'],
543
- }]
544
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
545
- let DyteChat = class DyteChat {
546
- constructor(c, r, z) {
547
- this.z = z;
548
- c.detach();
549
- this.el = r.nativeElement;
550
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
551
- }
552
- };
553
- DyteChat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChat, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
554
- DyteChat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChat, selector: "dyte-chat", inputs: { config: "config", disablePrivateChat: "disablePrivateChat", displayFilter: "displayFilter", iconPack: "iconPack", meeting: "meeting", privatePresetFilter: "privatePresetFilter", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
555
- DyteChat = __decorate([
556
- ProxyCmp({
557
- inputs: ['config', 'disablePrivateChat', 'displayFilter', 'iconPack', 'meeting', 'privatePresetFilter', 'size', 't']
558
- })
559
- ], DyteChat);
560
- export { DyteChat };
561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChat, decorators: [{
562
- type: Component,
563
- args: [{
564
- selector: 'dyte-chat',
565
- changeDetection: ChangeDetectionStrategy.OnPush,
566
- template: '<ng-content></ng-content>',
567
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
568
- inputs: ['config', 'disablePrivateChat', 'displayFilter', 'iconPack', 'meeting', 'privatePresetFilter', 'size', 't'],
569
- }]
570
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
571
- let DyteChatComposerUi = class DyteChatComposerUi {
572
- constructor(c, r, z) {
573
- this.z = z;
574
- c.detach();
575
- this.el = r.nativeElement;
576
- proxyOutputs(this, this.el, ['dyteNewMessage', 'dyteEditMessage', 'dyteEditCancelled']);
577
- }
578
- };
579
- DyteChatComposerUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
580
- DyteChatComposerUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatComposerUi, selector: "dyte-chat-composer-ui", inputs: { canSendFiles: "canSendFiles", canSendTextMessage: "canSendTextMessage", channelId: "channelId", disableEmojiPicker: "disableEmojiPicker", iconPack: "iconPack", members: "members", prefill: "prefill", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
581
- DyteChatComposerUi = __decorate([
582
- ProxyCmp({
583
- inputs: ['canSendFiles', 'canSendTextMessage', 'channelId', 'disableEmojiPicker', 'iconPack', 'members', 'prefill', 'size', 't']
584
- })
585
- ], DyteChatComposerUi);
586
- export { DyteChatComposerUi };
587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerUi, decorators: [{
588
- type: Component,
589
- args: [{
590
- selector: 'dyte-chat-composer-ui',
591
- changeDetection: ChangeDetectionStrategy.OnPush,
592
- template: '<ng-content></ng-content>',
593
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
594
- inputs: ['canSendFiles', 'canSendTextMessage', 'channelId', 'disableEmojiPicker', 'iconPack', 'members', 'prefill', 'size', 't'],
595
- }]
596
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
597
- let DyteChatComposerView = class DyteChatComposerView {
598
- constructor(c, r, z) {
599
- this.z = z;
600
- c.detach();
601
- this.el = r.nativeElement;
602
- proxyOutputs(this, this.el, ['newMessage', 'editMessage', 'editCancel', 'quotedMessageDismiss']);
603
- }
604
- };
605
- DyteChatComposerView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
606
- DyteChatComposerView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatComposerView, selector: "dyte-chat-composer-view", inputs: { canSendFiles: "canSendFiles", canSendTextMessage: "canSendTextMessage", disableEmojiPicker: "disableEmojiPicker", iconPack: "iconPack", inputTextPlaceholder: "inputTextPlaceholder", isEditing: "isEditing", maxLength: "maxLength", message: "message", quotedMessage: "quotedMessage", rateLimits: "rateLimits", storageKey: "storageKey", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
607
- DyteChatComposerView = __decorate([
608
- ProxyCmp({
609
- inputs: ['canSendFiles', 'canSendTextMessage', 'disableEmojiPicker', 'iconPack', 'inputTextPlaceholder', 'isEditing', 'maxLength', 'message', 'quotedMessage', 'rateLimits', 'storageKey', 't']
610
- })
611
- ], DyteChatComposerView);
612
- export { DyteChatComposerView };
613
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatComposerView, decorators: [{
614
- type: Component,
615
- args: [{
616
- selector: 'dyte-chat-composer-view',
617
- changeDetection: ChangeDetectionStrategy.OnPush,
618
- template: '<ng-content></ng-content>',
619
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
620
- inputs: ['canSendFiles', 'canSendTextMessage', 'disableEmojiPicker', 'iconPack', 'inputTextPlaceholder', 'isEditing', 'maxLength', 'message', 'quotedMessage', 'rateLimits', 'storageKey', 't'],
621
- }]
622
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
623
- let DyteChatMessage = class DyteChatMessage {
624
- constructor(c, r, z) {
625
- this.z = z;
626
- c.detach();
627
- this.el = r.nativeElement;
628
- proxyOutputs(this, this.el, ['edit', 'reply', 'pin', 'delete']);
629
- }
630
- };
631
- DyteChatMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
632
- DyteChatMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatMessage, selector: "dyte-chat-message", inputs: { alignRight: "alignRight", canDelete: "canDelete", canEdit: "canEdit", canPin: "canPin", canReply: "canReply", child: "child", disableControls: "disableControls", hideAvatar: "hideAvatar", iconPack: "iconPack", isContinued: "isContinued", isSelf: "isSelf", isUnread: "isUnread", leftAlign: "leftAlign", message: "message", senderDisplayPicture: "senderDisplayPicture", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
633
- DyteChatMessage = __decorate([
634
- ProxyCmp({
635
- inputs: ['alignRight', 'canDelete', 'canEdit', 'canPin', 'canReply', 'child', 'disableControls', 'hideAvatar', 'iconPack', 'isContinued', 'isSelf', 'isUnread', 'leftAlign', 'message', 'senderDisplayPicture', 'size', 't']
636
- })
637
- ], DyteChatMessage);
638
- export { DyteChatMessage };
639
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessage, decorators: [{
640
- type: Component,
641
- args: [{
642
- selector: 'dyte-chat-message',
643
- changeDetection: ChangeDetectionStrategy.OnPush,
644
- template: '<ng-content></ng-content>',
645
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
646
- inputs: ['alignRight', 'canDelete', 'canEdit', 'canPin', 'canReply', 'child', 'disableControls', 'hideAvatar', 'iconPack', 'isContinued', 'isSelf', 'isUnread', 'leftAlign', 'message', 'senderDisplayPicture', 'size', 't'],
647
- }]
648
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
649
- let DyteChatMessagesUi = class DyteChatMessagesUi {
650
- constructor(c, r, z) {
651
- this.z = z;
652
- c.detach();
653
- this.el = r.nativeElement;
654
- proxyOutputs(this, this.el, ['pinMessage', 'dyteStateUpdate']);
655
- }
656
- };
657
- DyteChatMessagesUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
658
- DyteChatMessagesUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatMessagesUi, selector: "dyte-chat-messages-ui", inputs: { canPinMessages: "canPinMessages", iconPack: "iconPack", messages: "messages", selectedGroup: "selectedGroup", selfUserId: "selfUserId", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
659
- DyteChatMessagesUi = __decorate([
660
- ProxyCmp({
661
- inputs: ['canPinMessages', 'iconPack', 'messages', 'selectedGroup', 'selfUserId', 'size', 't']
662
- })
663
- ], DyteChatMessagesUi);
664
- export { DyteChatMessagesUi };
665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUi, decorators: [{
666
- type: Component,
667
- args: [{
668
- selector: 'dyte-chat-messages-ui',
669
- changeDetection: ChangeDetectionStrategy.OnPush,
670
- template: '<ng-content></ng-content>',
671
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
672
- inputs: ['canPinMessages', 'iconPack', 'messages', 'selectedGroup', 'selfUserId', 'size', 't'],
673
- }]
674
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
675
- let DyteChatMessagesUiPaginated = class DyteChatMessagesUiPaginated {
676
- constructor(c, r, z) {
677
- this.z = z;
678
- c.detach();
679
- this.el = r.nativeElement;
680
- proxyOutputs(this, this.el, ['editMessageInit', 'pinMessage', 'deleteMessage', 'dyteStateUpdate']);
681
- }
682
- };
683
- DyteChatMessagesUiPaginated.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUiPaginated, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
684
- DyteChatMessagesUiPaginated.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatMessagesUiPaginated, selector: "dyte-chat-messages-ui-paginated", inputs: { iconPack: "iconPack", leftAlign: "leftAlign", meeting: "meeting", selectedChannel: "selectedChannel", selectedChannelId: "selectedChannelId", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
685
- DyteChatMessagesUiPaginated = __decorate([
686
- ProxyCmp({
687
- inputs: ['iconPack', 'leftAlign', 'meeting', 'selectedChannel', 'selectedChannelId', 'size', 't']
688
- })
689
- ], DyteChatMessagesUiPaginated);
690
- export { DyteChatMessagesUiPaginated };
691
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatMessagesUiPaginated, decorators: [{
692
- type: Component,
693
- args: [{
694
- selector: 'dyte-chat-messages-ui-paginated',
695
- changeDetection: ChangeDetectionStrategy.OnPush,
696
- template: '<ng-content></ng-content>',
697
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
698
- inputs: ['iconPack', 'leftAlign', 'meeting', 'selectedChannel', 'selectedChannelId', 'size', 't'],
699
- }]
700
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
701
- let DyteChatSearchResults = class DyteChatSearchResults {
702
- constructor(c, r, z) {
703
- this.z = z;
704
- c.detach();
705
- this.el = r.nativeElement;
706
- }
707
- };
708
- DyteChatSearchResults.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSearchResults, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
709
- DyteChatSearchResults.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatSearchResults, selector: "dyte-chat-search-results", inputs: { channelId: "channelId", iconPack: "iconPack", meeting: "meeting", query: "query", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
710
- DyteChatSearchResults = __decorate([
711
- ProxyCmp({
712
- inputs: ['channelId', 'iconPack', 'meeting', 'query', 't']
713
- })
714
- ], DyteChatSearchResults);
715
- export { DyteChatSearchResults };
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSearchResults, decorators: [{
717
- type: Component,
718
- args: [{
719
- selector: 'dyte-chat-search-results',
720
- changeDetection: ChangeDetectionStrategy.OnPush,
721
- template: '<ng-content></ng-content>',
722
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
723
- inputs: ['channelId', 'iconPack', 'meeting', 'query', 't'],
724
- }]
725
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
726
- let DyteChatSelectorUi = class DyteChatSelectorUi {
727
- constructor(c, r, z) {
728
- this.z = z;
729
- c.detach();
730
- this.el = r.nativeElement;
731
- proxyOutputs(this, this.el, ['dyteChatGroupChanged']);
732
- }
733
- };
734
- DyteChatSelectorUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSelectorUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
735
- DyteChatSelectorUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatSelectorUi, selector: "dyte-chat-selector-ui", inputs: { groups: "groups", iconPack: "iconPack", selectedGroupId: "selectedGroupId", selfUserId: "selfUserId", t: "t", unreadCounts: "unreadCounts" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
736
- DyteChatSelectorUi = __decorate([
737
- ProxyCmp({
738
- inputs: ['groups', 'iconPack', 'selectedGroupId', 'selfUserId', 't', 'unreadCounts']
739
- })
740
- ], DyteChatSelectorUi);
741
- export { DyteChatSelectorUi };
742
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatSelectorUi, decorators: [{
743
- type: Component,
744
- args: [{
745
- selector: 'dyte-chat-selector-ui',
746
- changeDetection: ChangeDetectionStrategy.OnPush,
747
- template: '<ng-content></ng-content>',
748
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
749
- inputs: ['groups', 'iconPack', 'selectedGroupId', 'selfUserId', 't', 'unreadCounts'],
750
- }]
751
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
752
- let DyteChatToggle = class DyteChatToggle {
753
- constructor(c, r, z) {
754
- this.z = z;
755
- c.detach();
756
- this.el = r.nativeElement;
757
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
758
- }
759
- };
760
- DyteChatToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
761
- DyteChatToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteChatToggle, selector: "dyte-chat-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
762
- DyteChatToggle = __decorate([
763
- ProxyCmp({
764
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
765
- })
766
- ], DyteChatToggle);
767
- export { DyteChatToggle };
768
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteChatToggle, decorators: [{
769
- type: Component,
770
- args: [{
771
- selector: 'dyte-chat-toggle',
772
- changeDetection: ChangeDetectionStrategy.OnPush,
773
- template: '<ng-content></ng-content>',
774
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
775
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
776
- }]
777
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
778
- let DyteClock = class DyteClock {
779
- constructor(c, r, z) {
780
- this.z = z;
781
- c.detach();
782
- this.el = r.nativeElement;
783
- }
784
- };
785
- DyteClock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteClock, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
786
- DyteClock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteClock, selector: "dyte-clock", inputs: { iconPack: "iconPack", meeting: "meeting" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
787
- DyteClock = __decorate([
788
- ProxyCmp({
789
- inputs: ['iconPack', 'meeting']
790
- })
791
- ], DyteClock);
792
- export { DyteClock };
793
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteClock, decorators: [{
794
- type: Component,
795
- args: [{
796
- selector: 'dyte-clock',
797
- changeDetection: ChangeDetectionStrategy.OnPush,
798
- template: '<ng-content></ng-content>',
799
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
800
- inputs: ['iconPack', 'meeting'],
801
- }]
802
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
803
- let DyteConfirmationModal = class DyteConfirmationModal {
804
- constructor(c, r, z) {
805
- this.z = z;
806
- c.detach();
807
- this.el = r.nativeElement;
808
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
809
- }
810
- };
811
- DyteConfirmationModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteConfirmationModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
812
- DyteConfirmationModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteConfirmationModal, selector: "dyte-confirmation-modal", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
813
- DyteConfirmationModal = __decorate([
814
- ProxyCmp({
815
- inputs: ['iconPack', 'meeting', 'states', 't']
816
- })
817
- ], DyteConfirmationModal);
818
- export { DyteConfirmationModal };
819
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteConfirmationModal, decorators: [{
820
- type: Component,
821
- args: [{
822
- selector: 'dyte-confirmation-modal',
823
- changeDetection: ChangeDetectionStrategy.OnPush,
824
- template: '<ng-content></ng-content>',
825
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
826
- inputs: ['iconPack', 'meeting', 'states', 't'],
827
- }]
828
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
829
- let DyteControlbar = class DyteControlbar {
830
- constructor(c, r, z) {
831
- this.z = z;
832
- c.detach();
833
- this.el = r.nativeElement;
834
- }
835
- };
836
- DyteControlbar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
837
- DyteControlbar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteControlbar, selector: "dyte-controlbar", inputs: { config: "config", disableRender: "disableRender", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
838
- DyteControlbar = __decorate([
839
- ProxyCmp({
840
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
841
- })
842
- ], DyteControlbar);
843
- export { DyteControlbar };
844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbar, decorators: [{
845
- type: Component,
846
- args: [{
847
- selector: 'dyte-controlbar',
848
- changeDetection: ChangeDetectionStrategy.OnPush,
849
- template: '<ng-content></ng-content>',
850
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
851
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant'],
852
- }]
853
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
854
- let DyteControlbarButton = class DyteControlbarButton {
855
- constructor(c, r, z) {
856
- this.z = z;
857
- c.detach();
858
- this.el = r.nativeElement;
859
- }
860
- };
861
- DyteControlbarButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbarButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
862
- DyteControlbarButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteControlbarButton, selector: "dyte-controlbar-button", inputs: { brandIcon: "brandIcon", disabled: "disabled", icon: "icon", iconPack: "iconPack", isLoading: "isLoading", label: "label", showWarning: "showWarning", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
863
- DyteControlbarButton = __decorate([
864
- ProxyCmp({
865
- inputs: ['brandIcon', 'disabled', 'icon', 'iconPack', 'isLoading', 'label', 'showWarning', 'size', 'variant']
866
- })
867
- ], DyteControlbarButton);
868
- export { DyteControlbarButton };
869
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteControlbarButton, decorators: [{
870
- type: Component,
871
- args: [{
872
- selector: 'dyte-controlbar-button',
873
- changeDetection: ChangeDetectionStrategy.OnPush,
874
- template: '<ng-content></ng-content>',
875
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
876
- inputs: ['brandIcon', 'disabled', 'icon', 'iconPack', 'isLoading', 'label', 'showWarning', 'size', 'variant'],
877
- }]
878
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
879
- let DyteCounter = class DyteCounter {
880
- constructor(c, r, z) {
881
- this.z = z;
882
- c.detach();
883
- this.el = r.nativeElement;
884
- proxyOutputs(this, this.el, ['valueChange']);
885
- }
886
- };
887
- DyteCounter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCounter, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
888
- DyteCounter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteCounter, selector: "dyte-counter", inputs: { iconPack: "iconPack", minValue: "minValue", size: "size", t: "t", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
889
- DyteCounter = __decorate([
890
- ProxyCmp({
891
- inputs: ['iconPack', 'minValue', 'size', 't', 'value']
892
- })
893
- ], DyteCounter);
894
- export { DyteCounter };
895
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteCounter, decorators: [{
896
- type: Component,
897
- args: [{
898
- selector: 'dyte-counter',
899
- changeDetection: ChangeDetectionStrategy.OnPush,
900
- template: '<ng-content></ng-content>',
901
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
902
- inputs: ['iconPack', 'minValue', 'size', 't', 'value'],
903
- }]
904
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
905
- let DyteDebugger = class DyteDebugger {
906
- constructor(c, r, z) {
907
- this.z = z;
908
- c.detach();
909
- this.el = r.nativeElement;
910
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
911
- }
912
- };
913
- DyteDebugger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebugger, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
914
- DyteDebugger.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebugger, selector: "dyte-debugger", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
915
- DyteDebugger = __decorate([
916
- ProxyCmp({
917
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
918
- })
919
- ], DyteDebugger);
920
- export { DyteDebugger };
921
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebugger, decorators: [{
922
- type: Component,
923
- args: [{
924
- selector: 'dyte-debugger',
925
- changeDetection: ChangeDetectionStrategy.OnPush,
926
- template: '<ng-content></ng-content>',
927
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
928
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
929
- }]
930
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
931
- let DyteDebuggerAudio = class DyteDebuggerAudio {
932
- constructor(c, r, z) {
933
- this.z = z;
934
- c.detach();
935
- this.el = r.nativeElement;
936
- }
937
- };
938
- DyteDebuggerAudio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
939
- DyteDebuggerAudio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerAudio, selector: "dyte-debugger-audio", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
940
- DyteDebuggerAudio = __decorate([
941
- ProxyCmp({
942
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
943
- })
944
- ], DyteDebuggerAudio);
945
- export { DyteDebuggerAudio };
946
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerAudio, decorators: [{
947
- type: Component,
948
- args: [{
949
- selector: 'dyte-debugger-audio',
950
- changeDetection: ChangeDetectionStrategy.OnPush,
951
- template: '<ng-content></ng-content>',
952
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
953
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
954
- }]
955
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
956
- let DyteDebuggerScreenshare = class DyteDebuggerScreenshare {
957
- constructor(c, r, z) {
958
- this.z = z;
959
- c.detach();
960
- this.el = r.nativeElement;
961
- }
962
- };
963
- DyteDebuggerScreenshare.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerScreenshare, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
964
- DyteDebuggerScreenshare.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerScreenshare, selector: "dyte-debugger-screenshare", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
965
- DyteDebuggerScreenshare = __decorate([
966
- ProxyCmp({
967
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
968
- })
969
- ], DyteDebuggerScreenshare);
970
- export { DyteDebuggerScreenshare };
971
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerScreenshare, decorators: [{
972
- type: Component,
973
- args: [{
974
- selector: 'dyte-debugger-screenshare',
975
- changeDetection: ChangeDetectionStrategy.OnPush,
976
- template: '<ng-content></ng-content>',
977
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
978
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
979
- }]
980
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
981
- let DyteDebuggerSystem = class DyteDebuggerSystem {
982
- constructor(c, r, z) {
983
- this.z = z;
984
- c.detach();
985
- this.el = r.nativeElement;
986
- }
987
- };
988
- DyteDebuggerSystem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerSystem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
989
- DyteDebuggerSystem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerSystem, selector: "dyte-debugger-system", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
990
- DyteDebuggerSystem = __decorate([
991
- ProxyCmp({
992
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
993
- })
994
- ], DyteDebuggerSystem);
995
- export { DyteDebuggerSystem };
996
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerSystem, decorators: [{
997
- type: Component,
998
- args: [{
999
- selector: 'dyte-debugger-system',
1000
- changeDetection: ChangeDetectionStrategy.OnPush,
1001
- template: '<ng-content></ng-content>',
1002
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1003
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
1004
- }]
1005
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1006
- let DyteDebuggerToggle = class DyteDebuggerToggle {
1007
- constructor(c, r, z) {
1008
- this.z = z;
1009
- c.detach();
1010
- this.el = r.nativeElement;
1011
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1012
- }
1013
- };
1014
- DyteDebuggerToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1015
- DyteDebuggerToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerToggle, selector: "dyte-debugger-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1016
- DyteDebuggerToggle = __decorate([
1017
- ProxyCmp({
1018
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
1019
- })
1020
- ], DyteDebuggerToggle);
1021
- export { DyteDebuggerToggle };
1022
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerToggle, decorators: [{
1023
- type: Component,
1024
- args: [{
1025
- selector: 'dyte-debugger-toggle',
1026
- changeDetection: ChangeDetectionStrategy.OnPush,
1027
- template: '<ng-content></ng-content>',
1028
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1029
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
1030
- }]
1031
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1032
- let DyteDebuggerVideo = class DyteDebuggerVideo {
1033
- constructor(c, r, z) {
1034
- this.z = z;
1035
- c.detach();
1036
- this.el = r.nativeElement;
1037
- }
1038
- };
1039
- DyteDebuggerVideo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1040
- DyteDebuggerVideo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDebuggerVideo, selector: "dyte-debugger-video", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1041
- DyteDebuggerVideo = __decorate([
1042
- ProxyCmp({
1043
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
1044
- })
1045
- ], DyteDebuggerVideo);
1046
- export { DyteDebuggerVideo };
1047
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDebuggerVideo, decorators: [{
1048
- type: Component,
1049
- args: [{
1050
- selector: 'dyte-debugger-video',
1051
- changeDetection: ChangeDetectionStrategy.OnPush,
1052
- template: '<ng-content></ng-content>',
1053
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1054
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
1055
- }]
1056
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1057
- let DyteDialog = class DyteDialog {
1058
- constructor(c, r, z) {
1059
- this.z = z;
1060
- c.detach();
1061
- this.el = r.nativeElement;
1062
- proxyOutputs(this, this.el, ['dyteDialogClose']);
1063
- }
1064
- };
1065
- DyteDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialog, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1066
- DyteDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDialog, selector: "dyte-dialog", inputs: { config: "config", disableEscapeKey: "disableEscapeKey", hideCloseButton: "hideCloseButton", iconPack: "iconPack", meeting: "meeting", open: "open", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1067
- DyteDialog = __decorate([
1068
- ProxyCmp({
1069
- inputs: ['config', 'disableEscapeKey', 'hideCloseButton', 'iconPack', 'meeting', 'open', 'size', 'states', 't']
1070
- })
1071
- ], DyteDialog);
1072
- export { DyteDialog };
1073
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialog, decorators: [{
1074
- type: Component,
1075
- args: [{
1076
- selector: 'dyte-dialog',
1077
- changeDetection: ChangeDetectionStrategy.OnPush,
1078
- template: '<ng-content></ng-content>',
1079
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1080
- inputs: ['config', 'disableEscapeKey', 'hideCloseButton', 'iconPack', 'meeting', 'open', 'size', 'states', 't'],
1081
- }]
1082
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1083
- let DyteDialogManager = class DyteDialogManager {
1084
- constructor(c, r, z) {
1085
- this.z = z;
1086
- c.detach();
1087
- this.el = r.nativeElement;
1088
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1089
- }
1090
- };
1091
- DyteDialogManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialogManager, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1092
- DyteDialogManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDialogManager, selector: "dyte-dialog-manager", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1093
- DyteDialogManager = __decorate([
1094
- ProxyCmp({
1095
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
1096
- })
1097
- ], DyteDialogManager);
1098
- export { DyteDialogManager };
1099
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDialogManager, decorators: [{
1100
- type: Component,
1101
- args: [{
1102
- selector: 'dyte-dialog-manager',
1103
- changeDetection: ChangeDetectionStrategy.OnPush,
1104
- template: '<ng-content></ng-content>',
1105
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1106
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't'],
1107
- }]
1108
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1109
- let DyteDraftAttachmentView = class DyteDraftAttachmentView {
1110
- constructor(c, r, z) {
1111
- this.z = z;
1112
- c.detach();
1113
- this.el = r.nativeElement;
1114
- proxyOutputs(this, this.el, ['deleteAttachment']);
1115
- }
1116
- };
1117
- DyteDraftAttachmentView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDraftAttachmentView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1118
- DyteDraftAttachmentView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteDraftAttachmentView, selector: "dyte-draft-attachment-view", inputs: { attachment: "attachment", iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1119
- DyteDraftAttachmentView = __decorate([
1120
- ProxyCmp({
1121
- inputs: ['attachment', 'iconPack', 't']
1122
- })
1123
- ], DyteDraftAttachmentView);
1124
- export { DyteDraftAttachmentView };
1125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteDraftAttachmentView, decorators: [{
1126
- type: Component,
1127
- args: [{
1128
- selector: 'dyte-draft-attachment-view',
1129
- changeDetection: ChangeDetectionStrategy.OnPush,
1130
- template: '<ng-content></ng-content>',
1131
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1132
- inputs: ['attachment', 'iconPack', 't'],
1133
- }]
1134
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1135
- let DyteEmojiPicker = class DyteEmojiPicker {
1136
- constructor(c, r, z) {
1137
- this.z = z;
1138
- c.detach();
1139
- this.el = r.nativeElement;
1140
- proxyOutputs(this, this.el, ['pickerClose', 'dyteEmojiClicked']);
1141
- }
1142
- };
1143
- DyteEmojiPicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1144
- DyteEmojiPicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteEmojiPicker, selector: "dyte-emoji-picker", inputs: { focusWhenOpened: "focusWhenOpened", iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1145
- DyteEmojiPicker = __decorate([
1146
- ProxyCmp({
1147
- inputs: ['focusWhenOpened', 'iconPack', 't']
1148
- })
1149
- ], DyteEmojiPicker);
1150
- export { DyteEmojiPicker };
1151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPicker, decorators: [{
1152
- type: Component,
1153
- args: [{
1154
- selector: 'dyte-emoji-picker',
1155
- changeDetection: ChangeDetectionStrategy.OnPush,
1156
- template: '<ng-content></ng-content>',
1157
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1158
- inputs: ['focusWhenOpened', 'iconPack', 't'],
1159
- }]
1160
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1161
- let DyteEmojiPickerButton = class DyteEmojiPickerButton {
1162
- constructor(c, r, z) {
1163
- this.z = z;
1164
- c.detach();
1165
- this.el = r.nativeElement;
1166
- }
1167
- };
1168
- DyteEmojiPickerButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPickerButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1169
- DyteEmojiPickerButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteEmojiPickerButton, selector: "dyte-emoji-picker-button", inputs: { iconPack: "iconPack", isActive: "isActive", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1170
- DyteEmojiPickerButton = __decorate([
1171
- ProxyCmp({
1172
- inputs: ['iconPack', 'isActive', 't']
1173
- })
1174
- ], DyteEmojiPickerButton);
1175
- export { DyteEmojiPickerButton };
1176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEmojiPickerButton, decorators: [{
1177
- type: Component,
1178
- args: [{
1179
- selector: 'dyte-emoji-picker-button',
1180
- changeDetection: ChangeDetectionStrategy.OnPush,
1181
- template: '<ng-content></ng-content>',
1182
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1183
- inputs: ['iconPack', 'isActive', 't'],
1184
- }]
1185
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1186
- let DyteEndedScreen = class DyteEndedScreen {
1187
- constructor(c, r, z) {
1188
- this.z = z;
1189
- c.detach();
1190
- this.el = r.nativeElement;
1191
- }
1192
- };
1193
- DyteEndedScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEndedScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1194
- DyteEndedScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteEndedScreen, selector: "dyte-ended-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1195
- DyteEndedScreen = __decorate([
1196
- ProxyCmp({
1197
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
1198
- })
1199
- ], DyteEndedScreen);
1200
- export { DyteEndedScreen };
1201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteEndedScreen, decorators: [{
1202
- type: Component,
1203
- args: [{
1204
- selector: 'dyte-ended-screen',
1205
- changeDetection: ChangeDetectionStrategy.OnPush,
1206
- template: '<ng-content></ng-content>',
1207
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1208
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't'],
1209
- }]
1210
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1211
- let DyteFileDropzone = class DyteFileDropzone {
1212
- constructor(c, r, z) {
1213
- this.z = z;
1214
- c.detach();
1215
- this.el = r.nativeElement;
1216
- proxyOutputs(this, this.el, ['dropCallback']);
1217
- }
1218
- };
1219
- DyteFileDropzone.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileDropzone, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1220
- DyteFileDropzone.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFileDropzone, selector: "dyte-file-dropzone", inputs: { hostEl: "hostEl", iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1221
- DyteFileDropzone = __decorate([
1222
- ProxyCmp({
1223
- inputs: ['hostEl', 'iconPack', 't']
1224
- })
1225
- ], DyteFileDropzone);
1226
- export { DyteFileDropzone };
1227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileDropzone, decorators: [{
1228
- type: Component,
1229
- args: [{
1230
- selector: 'dyte-file-dropzone',
1231
- changeDetection: ChangeDetectionStrategy.OnPush,
1232
- template: '<ng-content></ng-content>',
1233
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1234
- inputs: ['hostEl', 'iconPack', 't'],
1235
- }]
1236
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1237
- let DyteFileMessage = class DyteFileMessage {
1238
- constructor(c, r, z) {
1239
- this.z = z;
1240
- c.detach();
1241
- this.el = r.nativeElement;
1242
- }
1243
- };
1244
- DyteFileMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1245
- DyteFileMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFileMessage, selector: "dyte-file-message", inputs: { iconPack: "iconPack", isContinued: "isContinued", message: "message", now: "now", showBubble: "showBubble", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1246
- DyteFileMessage = __decorate([
1247
- ProxyCmp({
1248
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
1249
- })
1250
- ], DyteFileMessage);
1251
- export { DyteFileMessage };
1252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessage, decorators: [{
1253
- type: Component,
1254
- args: [{
1255
- selector: 'dyte-file-message',
1256
- changeDetection: ChangeDetectionStrategy.OnPush,
1257
- template: '<ng-content></ng-content>',
1258
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1259
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't'],
1260
- }]
1261
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1262
- let DyteFileMessageView = class DyteFileMessageView {
1263
- constructor(c, r, z) {
1264
- this.z = z;
1265
- c.detach();
1266
- this.el = r.nativeElement;
1267
- }
1268
- };
1269
- DyteFileMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1270
- DyteFileMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFileMessageView, selector: "dyte-file-message-view", inputs: { iconPack: "iconPack", name: "name", size: "size", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1271
- DyteFileMessageView = __decorate([
1272
- ProxyCmp({
1273
- inputs: ['iconPack', 'name', 'size', 'url']
1274
- })
1275
- ], DyteFileMessageView);
1276
- export { DyteFileMessageView };
1277
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFileMessageView, decorators: [{
1278
- type: Component,
1279
- args: [{
1280
- selector: 'dyte-file-message-view',
1281
- changeDetection: ChangeDetectionStrategy.OnPush,
1282
- template: '<ng-content></ng-content>',
1283
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1284
- inputs: ['iconPack', 'name', 'size', 'url'],
1285
- }]
1286
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1287
- let DyteFilePickerButton = class DyteFilePickerButton {
1288
- constructor(c, r, z) {
1289
- this.z = z;
1290
- c.detach();
1291
- this.el = r.nativeElement;
1292
- proxyOutputs(this, this.el, ['fileChange']);
1293
- }
1294
- };
1295
- DyteFilePickerButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFilePickerButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1296
- DyteFilePickerButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFilePickerButton, selector: "dyte-file-picker-button", inputs: { filter: "filter", icon: "icon", iconPack: "iconPack", label: "label", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1297
- DyteFilePickerButton = __decorate([
1298
- ProxyCmp({
1299
- inputs: ['filter', 'icon', 'iconPack', 'label', 't']
1300
- })
1301
- ], DyteFilePickerButton);
1302
- export { DyteFilePickerButton };
1303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFilePickerButton, decorators: [{
1304
- type: Component,
1305
- args: [{
1306
- selector: 'dyte-file-picker-button',
1307
- changeDetection: ChangeDetectionStrategy.OnPush,
1308
- template: '<ng-content></ng-content>',
1309
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1310
- inputs: ['filter', 'icon', 'iconPack', 'label', 't'],
1311
- }]
1312
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1313
- let DyteFullscreenToggle = class DyteFullscreenToggle {
1314
- constructor(c, r, z) {
1315
- this.z = z;
1316
- c.detach();
1317
- this.el = r.nativeElement;
1318
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1319
- }
1320
- };
1321
- DyteFullscreenToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFullscreenToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1322
- DyteFullscreenToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteFullscreenToggle, selector: "dyte-fullscreen-toggle", inputs: { iconPack: "iconPack", size: "size", states: "states", t: "t", targetElement: "targetElement", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1323
- DyteFullscreenToggle = __decorate([
1324
- ProxyCmp({
1325
- inputs: ['iconPack', 'size', 'states', 't', 'targetElement', 'variant']
1326
- })
1327
- ], DyteFullscreenToggle);
1328
- export { DyteFullscreenToggle };
1329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteFullscreenToggle, decorators: [{
1330
- type: Component,
1331
- args: [{
1332
- selector: 'dyte-fullscreen-toggle',
1333
- changeDetection: ChangeDetectionStrategy.OnPush,
1334
- template: '<ng-content></ng-content>',
1335
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1336
- inputs: ['iconPack', 'size', 'states', 't', 'targetElement', 'variant'],
1337
- }]
1338
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1339
- let DyteGrid = class DyteGrid {
1340
- constructor(c, r, z) {
1341
- this.z = z;
1342
- c.detach();
1343
- this.el = r.nativeElement;
1344
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1345
- }
1346
- };
1347
- DyteGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1348
- DyteGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteGrid, selector: "dyte-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", gridSize: "gridSize", iconPack: "iconPack", layout: "layout", meeting: "meeting", overrides: "overrides", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1349
- DyteGrid = __decorate([
1350
- ProxyCmp({
1351
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'overrides', 'size', 'states', 't']
1352
- })
1353
- ], DyteGrid);
1354
- export { DyteGrid };
1355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGrid, decorators: [{
1356
- type: Component,
1357
- args: [{
1358
- selector: 'dyte-grid',
1359
- changeDetection: ChangeDetectionStrategy.OnPush,
1360
- template: '<ng-content></ng-content>',
1361
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1362
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'overrides', 'size', 'states', 't'],
1363
- }]
1364
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1365
- let DyteGridPagination = class DyteGridPagination {
1366
- constructor(c, r, z) {
1367
- this.z = z;
1368
- c.detach();
1369
- this.el = r.nativeElement;
1370
- }
1371
- };
1372
- DyteGridPagination.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGridPagination, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1373
- DyteGridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteGridPagination, selector: "dyte-grid-pagination", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1374
- DyteGridPagination = __decorate([
1375
- ProxyCmp({
1376
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
1377
- })
1378
- ], DyteGridPagination);
1379
- export { DyteGridPagination };
1380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteGridPagination, decorators: [{
1381
- type: Component,
1382
- args: [{
1383
- selector: 'dyte-grid-pagination',
1384
- changeDetection: ChangeDetectionStrategy.OnPush,
1385
- template: '<ng-content></ng-content>',
1386
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1387
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
1388
- }]
1389
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1390
- let DyteHeader = class DyteHeader {
1391
- constructor(c, r, z) {
1392
- this.z = z;
1393
- c.detach();
1394
- this.el = r.nativeElement;
1395
- }
1396
- };
1397
- DyteHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1398
- DyteHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteHeader, selector: "dyte-header", inputs: { config: "config", disableRender: "disableRender", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1399
- DyteHeader = __decorate([
1400
- ProxyCmp({
1401
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
1402
- })
1403
- ], DyteHeader);
1404
- export { DyteHeader };
1405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteHeader, decorators: [{
1406
- type: Component,
1407
- args: [{
1408
- selector: 'dyte-header',
1409
- changeDetection: ChangeDetectionStrategy.OnPush,
1410
- template: '<ng-content></ng-content>',
1411
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1412
- inputs: ['config', 'disableRender', 'iconPack', 'meeting', 'size', 'states', 't', 'variant'],
1413
- }]
1414
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1415
- let DyteIcon = class DyteIcon {
1416
- constructor(c, r, z) {
1417
- this.z = z;
1418
- c.detach();
1419
- this.el = r.nativeElement;
1420
- }
1421
- };
1422
- DyteIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIcon, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1423
- DyteIcon.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteIcon, selector: "dyte-icon", inputs: { icon: "icon", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1424
- DyteIcon = __decorate([
1425
- ProxyCmp({
1426
- inputs: ['icon', 'size', 'variant']
1427
- })
1428
- ], DyteIcon);
1429
- export { DyteIcon };
1430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIcon, decorators: [{
1431
- type: Component,
1432
- args: [{
1433
- selector: 'dyte-icon',
1434
- changeDetection: ChangeDetectionStrategy.OnPush,
1435
- template: '<ng-content></ng-content>',
1436
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1437
- inputs: ['icon', 'size', 'variant'],
1438
- }]
1439
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1440
- let DyteIdleScreen = class DyteIdleScreen {
1441
- constructor(c, r, z) {
1442
- this.z = z;
1443
- c.detach();
1444
- this.el = r.nativeElement;
1445
- }
1446
- };
1447
- DyteIdleScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIdleScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1448
- DyteIdleScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteIdleScreen, selector: "dyte-idle-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1449
- DyteIdleScreen = __decorate([
1450
- ProxyCmp({
1451
- inputs: ['config', 'iconPack', 'meeting', 't']
1452
- })
1453
- ], DyteIdleScreen);
1454
- export { DyteIdleScreen };
1455
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteIdleScreen, decorators: [{
1456
- type: Component,
1457
- args: [{
1458
- selector: 'dyte-idle-screen',
1459
- changeDetection: ChangeDetectionStrategy.OnPush,
1460
- template: '<ng-content></ng-content>',
1461
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1462
- inputs: ['config', 'iconPack', 'meeting', 't'],
1463
- }]
1464
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1465
- let DyteImageMessage = class DyteImageMessage {
1466
- constructor(c, r, z) {
1467
- this.z = z;
1468
- c.detach();
1469
- this.el = r.nativeElement;
1470
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1471
- }
1472
- };
1473
- DyteImageMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1474
- DyteImageMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteImageMessage, selector: "dyte-image-message", inputs: { iconPack: "iconPack", isContinued: "isContinued", message: "message", now: "now", showBubble: "showBubble", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1475
- DyteImageMessage = __decorate([
1476
- ProxyCmp({
1477
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
1478
- })
1479
- ], DyteImageMessage);
1480
- export { DyteImageMessage };
1481
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessage, decorators: [{
1482
- type: Component,
1483
- args: [{
1484
- selector: 'dyte-image-message',
1485
- changeDetection: ChangeDetectionStrategy.OnPush,
1486
- template: '<ng-content></ng-content>',
1487
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1488
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't'],
1489
- }]
1490
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1491
- let DyteImageMessageView = class DyteImageMessageView {
1492
- constructor(c, r, z) {
1493
- this.z = z;
1494
- c.detach();
1495
- this.el = r.nativeElement;
1496
- proxyOutputs(this, this.el, ['preview']);
1497
- }
1498
- };
1499
- DyteImageMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1500
- DyteImageMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteImageMessageView, selector: "dyte-image-message-view", inputs: { iconPack: "iconPack", t: "t", url: "url" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1501
- DyteImageMessageView = __decorate([
1502
- ProxyCmp({
1503
- inputs: ['iconPack', 't', 'url']
1504
- })
1505
- ], DyteImageMessageView);
1506
- export { DyteImageMessageView };
1507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageMessageView, decorators: [{
1508
- type: Component,
1509
- args: [{
1510
- selector: 'dyte-image-message-view',
1511
- changeDetection: ChangeDetectionStrategy.OnPush,
1512
- template: '<ng-content></ng-content>',
1513
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1514
- inputs: ['iconPack', 't', 'url'],
1515
- }]
1516
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1517
- let DyteImageViewer = class DyteImageViewer {
1518
- constructor(c, r, z) {
1519
- this.z = z;
1520
- c.detach();
1521
- this.el = r.nativeElement;
1522
- proxyOutputs(this, this.el, ['close']);
1523
- }
1524
- };
1525
- DyteImageViewer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageViewer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1526
- DyteImageViewer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteImageViewer, selector: "dyte-image-viewer", inputs: { iconPack: "iconPack", image: "image", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1527
- DyteImageViewer = __decorate([
1528
- ProxyCmp({
1529
- inputs: ['iconPack', 'image', 'size', 't']
1530
- })
1531
- ], DyteImageViewer);
1532
- export { DyteImageViewer };
1533
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteImageViewer, decorators: [{
1534
- type: Component,
1535
- args: [{
1536
- selector: 'dyte-image-viewer',
1537
- changeDetection: ChangeDetectionStrategy.OnPush,
1538
- template: '<ng-content></ng-content>',
1539
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1540
- inputs: ['iconPack', 'image', 'size', 't'],
1541
- }]
1542
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1543
- let DyteInformationTooltip = class DyteInformationTooltip {
1544
- constructor(c, r, z) {
1545
- this.z = z;
1546
- c.detach();
1547
- this.el = r.nativeElement;
1548
- }
1549
- };
1550
- DyteInformationTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteInformationTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1551
- DyteInformationTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteInformationTooltip, selector: "dyte-information-tooltip", inputs: { iconPack: "iconPack" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1552
- DyteInformationTooltip = __decorate([
1553
- ProxyCmp({
1554
- inputs: ['iconPack']
1555
- })
1556
- ], DyteInformationTooltip);
1557
- export { DyteInformationTooltip };
1558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteInformationTooltip, decorators: [{
1559
- type: Component,
1560
- args: [{
1561
- selector: 'dyte-information-tooltip',
1562
- changeDetection: ChangeDetectionStrategy.OnPush,
1563
- template: '<ng-content></ng-content>',
1564
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1565
- inputs: ['iconPack'],
1566
- }]
1567
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1568
- let DyteJoinStage = class DyteJoinStage {
1569
- constructor(c, r, z) {
1570
- this.z = z;
1571
- c.detach();
1572
- this.el = r.nativeElement;
1573
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'dyteJoinStage', 'dyteLeaveStage']);
1574
- }
1575
- };
1576
- DyteJoinStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteJoinStage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1577
- DyteJoinStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteJoinStage, selector: "dyte-join-stage", inputs: { config: "config", dataConfig: "dataConfig", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1578
- DyteJoinStage = __decorate([
1579
- ProxyCmp({
1580
- inputs: ['config', 'dataConfig', 'iconPack', 'meeting', 'size', 'states', 't']
1581
- })
1582
- ], DyteJoinStage);
1583
- export { DyteJoinStage };
1584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteJoinStage, decorators: [{
1585
- type: Component,
1586
- args: [{
1587
- selector: 'dyte-join-stage',
1588
- changeDetection: ChangeDetectionStrategy.OnPush,
1589
- template: '<ng-content></ng-content>',
1590
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1591
- inputs: ['config', 'dataConfig', 'iconPack', 'meeting', 'size', 'states', 't'],
1592
- }]
1593
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1594
- let DyteLeaveButton = class DyteLeaveButton {
1595
- constructor(c, r, z) {
1596
- this.z = z;
1597
- c.detach();
1598
- this.el = r.nativeElement;
1599
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1600
- }
1601
- };
1602
- DyteLeaveButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1603
- DyteLeaveButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLeaveButton, selector: "dyte-leave-button", inputs: { iconPack: "iconPack", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1604
- DyteLeaveButton = __decorate([
1605
- ProxyCmp({
1606
- inputs: ['iconPack', 'size', 't', 'variant']
1607
- })
1608
- ], DyteLeaveButton);
1609
- export { DyteLeaveButton };
1610
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveButton, decorators: [{
1611
- type: Component,
1612
- args: [{
1613
- selector: 'dyte-leave-button',
1614
- changeDetection: ChangeDetectionStrategy.OnPush,
1615
- template: '<ng-content></ng-content>',
1616
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1617
- inputs: ['iconPack', 'size', 't', 'variant'],
1618
- }]
1619
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1620
- let DyteLeaveMeeting = class DyteLeaveMeeting {
1621
- constructor(c, r, z) {
1622
- this.z = z;
1623
- c.detach();
1624
- this.el = r.nativeElement;
1625
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1626
- }
1627
- };
1628
- DyteLeaveMeeting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveMeeting, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1629
- DyteLeaveMeeting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLeaveMeeting, selector: "dyte-leave-meeting", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1630
- DyteLeaveMeeting = __decorate([
1631
- ProxyCmp({
1632
- inputs: ['iconPack', 'meeting', 'states', 't']
1633
- })
1634
- ], DyteLeaveMeeting);
1635
- export { DyteLeaveMeeting };
1636
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLeaveMeeting, decorators: [{
1637
- type: Component,
1638
- args: [{
1639
- selector: 'dyte-leave-meeting',
1640
- changeDetection: ChangeDetectionStrategy.OnPush,
1641
- template: '<ng-content></ng-content>',
1642
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1643
- inputs: ['iconPack', 'meeting', 'states', 't'],
1644
- }]
1645
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1646
- let DyteLivestreamIndicator = class DyteLivestreamIndicator {
1647
- constructor(c, r, z) {
1648
- this.z = z;
1649
- c.detach();
1650
- this.el = r.nativeElement;
1651
- }
1652
- };
1653
- DyteLivestreamIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1654
- DyteLivestreamIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLivestreamIndicator, selector: "dyte-livestream-indicator", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1655
- DyteLivestreamIndicator = __decorate([
1656
- ProxyCmp({
1657
- inputs: ['iconPack', 'meeting', 'size', 't']
1658
- })
1659
- ], DyteLivestreamIndicator);
1660
- export { DyteLivestreamIndicator };
1661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamIndicator, decorators: [{
1662
- type: Component,
1663
- args: [{
1664
- selector: 'dyte-livestream-indicator',
1665
- changeDetection: ChangeDetectionStrategy.OnPush,
1666
- template: '<ng-content></ng-content>',
1667
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1668
- inputs: ['iconPack', 'meeting', 'size', 't'],
1669
- }]
1670
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1671
- let DyteLivestreamPlayer = class DyteLivestreamPlayer {
1672
- constructor(c, r, z) {
1673
- this.z = z;
1674
- c.detach();
1675
- this.el = r.nativeElement;
1676
- proxyOutputs(this, this.el, ['dyteAPIError']);
1677
- }
1678
- };
1679
- DyteLivestreamPlayer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamPlayer, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1680
- DyteLivestreamPlayer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLivestreamPlayer, selector: "dyte-livestream-player", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1681
- DyteLivestreamPlayer = __decorate([
1682
- ProxyCmp({
1683
- inputs: ['iconPack', 'meeting', 'size', 't']
1684
- })
1685
- ], DyteLivestreamPlayer);
1686
- export { DyteLivestreamPlayer };
1687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamPlayer, decorators: [{
1688
- type: Component,
1689
- args: [{
1690
- selector: 'dyte-livestream-player',
1691
- changeDetection: ChangeDetectionStrategy.OnPush,
1692
- template: '<ng-content></ng-content>',
1693
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1694
- inputs: ['iconPack', 'meeting', 'size', 't'],
1695
- }]
1696
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1697
- let DyteLivestreamToggle = class DyteLivestreamToggle {
1698
- constructor(c, r, z) {
1699
- this.z = z;
1700
- c.detach();
1701
- this.el = r.nativeElement;
1702
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'dyteAPIError']);
1703
- }
1704
- };
1705
- DyteLivestreamToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1706
- DyteLivestreamToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLivestreamToggle, selector: "dyte-livestream-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1707
- DyteLivestreamToggle = __decorate([
1708
- ProxyCmp({
1709
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
1710
- })
1711
- ], DyteLivestreamToggle);
1712
- export { DyteLivestreamToggle };
1713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLivestreamToggle, decorators: [{
1714
- type: Component,
1715
- args: [{
1716
- selector: 'dyte-livestream-toggle',
1717
- changeDetection: ChangeDetectionStrategy.OnPush,
1718
- template: '<ng-content></ng-content>',
1719
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1720
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant'],
1721
- }]
1722
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1723
- let DyteLogo = class DyteLogo {
1724
- constructor(c, r, z) {
1725
- this.z = z;
1726
- c.detach();
1727
- this.el = r.nativeElement;
1728
- }
1729
- };
1730
- DyteLogo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLogo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1731
- DyteLogo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteLogo, selector: "dyte-logo", inputs: { config: "config", logoUrl: "logoUrl", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1732
- DyteLogo = __decorate([
1733
- ProxyCmp({
1734
- inputs: ['config', 'logoUrl', 'meeting', 't']
1735
- })
1736
- ], DyteLogo);
1737
- export { DyteLogo };
1738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteLogo, decorators: [{
1739
- type: Component,
1740
- args: [{
1741
- selector: 'dyte-logo',
1742
- changeDetection: ChangeDetectionStrategy.OnPush,
1743
- template: '<ng-content></ng-content>',
1744
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1745
- inputs: ['config', 'logoUrl', 'meeting', 't'],
1746
- }]
1747
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1748
- let DyteMarkdownView = class DyteMarkdownView {
1749
- constructor(c, r, z) {
1750
- this.z = z;
1751
- c.detach();
1752
- this.el = r.nativeElement;
1753
- }
1754
- };
1755
- DyteMarkdownView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMarkdownView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1756
- DyteMarkdownView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMarkdownView, selector: "dyte-markdown-view", inputs: { maxLength: "maxLength", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1757
- DyteMarkdownView = __decorate([
1758
- ProxyCmp({
1759
- inputs: ['maxLength', 'text']
1760
- })
1761
- ], DyteMarkdownView);
1762
- export { DyteMarkdownView };
1763
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMarkdownView, decorators: [{
1764
- type: Component,
1765
- args: [{
1766
- selector: 'dyte-markdown-view',
1767
- changeDetection: ChangeDetectionStrategy.OnPush,
1768
- template: '<ng-content></ng-content>',
1769
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1770
- inputs: ['maxLength', 'text'],
1771
- }]
1772
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1773
- let DyteMeeting = class DyteMeeting {
1774
- constructor(c, r, z) {
1775
- this.z = z;
1776
- c.detach();
1777
- this.el = r.nativeElement;
1778
- proxyOutputs(this, this.el, ['dyteStatesUpdate']);
1779
- }
1780
- };
1781
- DyteMeeting.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeeting, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1782
- DyteMeeting.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMeeting, selector: "dyte-meeting", inputs: { applyDesignSystem: "applyDesignSystem", config: "config", gridLayout: "gridLayout", iconPack: "iconPack", leaveOnUnmount: "leaveOnUnmount", loadConfigFromPreset: "loadConfigFromPreset", meeting: "meeting", mode: "mode", showSetupScreen: "showSetupScreen", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1783
- DyteMeeting = __decorate([
1784
- ProxyCmp({
1785
- inputs: ['applyDesignSystem', 'config', 'gridLayout', 'iconPack', 'leaveOnUnmount', 'loadConfigFromPreset', 'meeting', 'mode', 'showSetupScreen', 'size', 't']
1786
- })
1787
- ], DyteMeeting);
1788
- export { DyteMeeting };
1789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeeting, decorators: [{
1790
- type: Component,
1791
- args: [{
1792
- selector: 'dyte-meeting',
1793
- changeDetection: ChangeDetectionStrategy.OnPush,
1794
- template: '<ng-content></ng-content>',
1795
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1796
- inputs: ['applyDesignSystem', 'config', 'gridLayout', 'iconPack', 'leaveOnUnmount', 'loadConfigFromPreset', 'meeting', 'mode', 'showSetupScreen', 'size', 't'],
1797
- }]
1798
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1799
- let DyteMeetingTitle = class DyteMeetingTitle {
1800
- constructor(c, r, z) {
1801
- this.z = z;
1802
- c.detach();
1803
- this.el = r.nativeElement;
1804
- }
1805
- };
1806
- DyteMeetingTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeetingTitle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1807
- DyteMeetingTitle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMeetingTitle, selector: "dyte-meeting-title", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1808
- DyteMeetingTitle = __decorate([
1809
- ProxyCmp({
1810
- inputs: ['iconPack', 'meeting', 't']
1811
- })
1812
- ], DyteMeetingTitle);
1813
- export { DyteMeetingTitle };
1814
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMeetingTitle, decorators: [{
1815
- type: Component,
1816
- args: [{
1817
- selector: 'dyte-meeting-title',
1818
- changeDetection: ChangeDetectionStrategy.OnPush,
1819
- template: '<ng-content></ng-content>',
1820
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1821
- inputs: ['iconPack', 'meeting', 't'],
1822
- }]
1823
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1824
- let DyteMenu = class DyteMenu {
1825
- constructor(c, r, z) {
1826
- this.z = z;
1827
- c.detach();
1828
- this.el = r.nativeElement;
1829
- }
1830
- };
1831
- DyteMenu.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenu, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1832
- DyteMenu.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMenu, selector: "dyte-menu", inputs: { iconPack: "iconPack", offset: "offset", placement: "placement", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1833
- DyteMenu = __decorate([
1834
- ProxyCmp({
1835
- inputs: ['iconPack', 'offset', 'placement', 'size', 't']
1836
- })
1837
- ], DyteMenu);
1838
- export { DyteMenu };
1839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenu, decorators: [{
1840
- type: Component,
1841
- args: [{
1842
- selector: 'dyte-menu',
1843
- changeDetection: ChangeDetectionStrategy.OnPush,
1844
- template: '<ng-content></ng-content>',
1845
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1846
- inputs: ['iconPack', 'offset', 'placement', 'size', 't'],
1847
- }]
1848
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1849
- let DyteMenuItem = class DyteMenuItem {
1850
- constructor(c, r, z) {
1851
- this.z = z;
1852
- c.detach();
1853
- this.el = r.nativeElement;
1854
- }
1855
- };
1856
- DyteMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1857
- DyteMenuItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMenuItem, selector: "dyte-menu-item", inputs: { iconPack: "iconPack", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1858
- DyteMenuItem = __decorate([
1859
- ProxyCmp({
1860
- inputs: ['iconPack', 'size', 't']
1861
- })
1862
- ], DyteMenuItem);
1863
- export { DyteMenuItem };
1864
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuItem, decorators: [{
1865
- type: Component,
1866
- args: [{
1867
- selector: 'dyte-menu-item',
1868
- changeDetection: ChangeDetectionStrategy.OnPush,
1869
- template: '<ng-content></ng-content>',
1870
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1871
- inputs: ['iconPack', 'size', 't'],
1872
- }]
1873
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1874
- let DyteMenuList = class DyteMenuList {
1875
- constructor(c, r, z) {
1876
- this.z = z;
1877
- c.detach();
1878
- this.el = r.nativeElement;
1879
- }
1880
- };
1881
- DyteMenuList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1882
- DyteMenuList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMenuList, selector: "dyte-menu-list", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1883
- DyteMenuList = __decorate([
1884
- ProxyCmp({
1885
- inputs: ['iconPack', 't']
1886
- })
1887
- ], DyteMenuList);
1888
- export { DyteMenuList };
1889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMenuList, decorators: [{
1890
- type: Component,
1891
- args: [{
1892
- selector: 'dyte-menu-list',
1893
- changeDetection: ChangeDetectionStrategy.OnPush,
1894
- template: '<ng-content></ng-content>',
1895
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1896
- inputs: ['iconPack', 't'],
1897
- }]
1898
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1899
- let DyteMessageListView = class DyteMessageListView {
1900
- constructor(c, r, z) {
1901
- this.z = z;
1902
- c.detach();
1903
- this.el = r.nativeElement;
1904
- }
1905
- };
1906
- DyteMessageListView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageListView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1907
- DyteMessageListView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMessageListView, selector: "dyte-message-list-view", inputs: { estimateItemSize: "estimateItemSize", iconPack: "iconPack", loadMore: "loadMore", messages: "messages", renderer: "renderer", visibleItemsCount: "visibleItemsCount" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1908
- DyteMessageListView = __decorate([
1909
- ProxyCmp({
1910
- inputs: ['estimateItemSize', 'iconPack', 'loadMore', 'messages', 'renderer', 'visibleItemsCount']
1911
- })
1912
- ], DyteMessageListView);
1913
- export { DyteMessageListView };
1914
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageListView, decorators: [{
1915
- type: Component,
1916
- args: [{
1917
- selector: 'dyte-message-list-view',
1918
- changeDetection: ChangeDetectionStrategy.OnPush,
1919
- template: '<ng-content></ng-content>',
1920
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1921
- inputs: ['estimateItemSize', 'iconPack', 'loadMore', 'messages', 'renderer', 'visibleItemsCount'],
1922
- }]
1923
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1924
- let DyteMessageView = class DyteMessageView {
1925
- constructor(c, r, z) {
1926
- this.z = z;
1927
- c.detach();
1928
- this.el = r.nativeElement;
1929
- proxyOutputs(this, this.el, ['action']);
1930
- }
1931
- };
1932
- DyteMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1933
- DyteMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMessageView, selector: "dyte-message-view", inputs: { actions: "actions", authorName: "authorName", avatarUrl: "avatarUrl", hideAuthorName: "hideAuthorName", hideAvatar: "hideAvatar", hideMetadata: "hideMetadata", iconPack: "iconPack", time: "time", variant: "variant", viewType: "viewType" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1934
- DyteMessageView = __decorate([
1935
- ProxyCmp({
1936
- inputs: ['actions', 'authorName', 'avatarUrl', 'hideAuthorName', 'hideAvatar', 'hideMetadata', 'iconPack', 'time', 'variant', 'viewType']
1937
- })
1938
- ], DyteMessageView);
1939
- export { DyteMessageView };
1940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMessageView, decorators: [{
1941
- type: Component,
1942
- args: [{
1943
- selector: 'dyte-message-view',
1944
- changeDetection: ChangeDetectionStrategy.OnPush,
1945
- template: '<ng-content></ng-content>',
1946
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1947
- inputs: ['actions', 'authorName', 'avatarUrl', 'hideAuthorName', 'hideAvatar', 'hideMetadata', 'iconPack', 'time', 'variant', 'viewType'],
1948
- }]
1949
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1950
- let DyteMicToggle = class DyteMicToggle {
1951
- constructor(c, r, z) {
1952
- this.z = z;
1953
- c.detach();
1954
- this.el = r.nativeElement;
1955
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
1956
- }
1957
- };
1958
- DyteMicToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1959
- DyteMicToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMicToggle, selector: "dyte-mic-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1960
- DyteMicToggle = __decorate([
1961
- ProxyCmp({
1962
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
1963
- })
1964
- ], DyteMicToggle);
1965
- export { DyteMicToggle };
1966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicToggle, decorators: [{
1967
- type: Component,
1968
- args: [{
1969
- selector: 'dyte-mic-toggle',
1970
- changeDetection: ChangeDetectionStrategy.OnPush,
1971
- template: '<ng-content></ng-content>',
1972
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1973
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant'],
1974
- }]
1975
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1976
- let DyteMicrophoneSelector = class DyteMicrophoneSelector {
1977
- constructor(c, r, z) {
1978
- this.z = z;
1979
- c.detach();
1980
- this.el = r.nativeElement;
1981
- }
1982
- };
1983
- DyteMicrophoneSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicrophoneSelector, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
1984
- DyteMicrophoneSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMicrophoneSelector, selector: "dyte-microphone-selector", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1985
- DyteMicrophoneSelector = __decorate([
1986
- ProxyCmp({
1987
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
1988
- })
1989
- ], DyteMicrophoneSelector);
1990
- export { DyteMicrophoneSelector };
1991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMicrophoneSelector, decorators: [{
1992
- type: Component,
1993
- args: [{
1994
- selector: 'dyte-microphone-selector',
1995
- changeDetection: ChangeDetectionStrategy.OnPush,
1996
- template: '<ng-content></ng-content>',
1997
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1998
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant'],
1999
- }]
2000
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2001
- let DyteMixedGrid = class DyteMixedGrid {
2002
- constructor(c, r, z) {
2003
- this.z = z;
2004
- c.detach();
2005
- this.el = r.nativeElement;
2006
- }
2007
- };
2008
- DyteMixedGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMixedGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2009
- DyteMixedGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMixedGrid, selector: "dyte-mixed-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", gridSize: "gridSize", iconPack: "iconPack", layout: "layout", meeting: "meeting", participants: "participants", pinnedParticipants: "pinnedParticipants", plugins: "plugins", screenShareParticipants: "screenShareParticipants", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2010
- DyteMixedGrid = __decorate([
2011
- ProxyCmp({
2012
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'plugins', 'screenShareParticipants', 'size', 'states', 't']
2013
- })
2014
- ], DyteMixedGrid);
2015
- export { DyteMixedGrid };
2016
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMixedGrid, decorators: [{
2017
- type: Component,
2018
- args: [{
2019
- selector: 'dyte-mixed-grid',
2020
- changeDetection: ChangeDetectionStrategy.OnPush,
2021
- template: '<ng-content></ng-content>',
2022
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2023
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'plugins', 'screenShareParticipants', 'size', 'states', 't'],
2024
- }]
2025
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2026
- let DyteMoreToggle = class DyteMoreToggle {
2027
- constructor(c, r, z) {
2028
- this.z = z;
2029
- c.detach();
2030
- this.el = r.nativeElement;
2031
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2032
- }
2033
- };
2034
- DyteMoreToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMoreToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2035
- DyteMoreToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMoreToggle, selector: "dyte-more-toggle", inputs: { iconPack: "iconPack", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2036
- DyteMoreToggle = __decorate([
2037
- ProxyCmp({
2038
- inputs: ['iconPack', 'size', 'states', 't']
2039
- })
2040
- ], DyteMoreToggle);
2041
- export { DyteMoreToggle };
2042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMoreToggle, decorators: [{
2043
- type: Component,
2044
- args: [{
2045
- selector: 'dyte-more-toggle',
2046
- changeDetection: ChangeDetectionStrategy.OnPush,
2047
- template: '<ng-content></ng-content>',
2048
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2049
- inputs: ['iconPack', 'size', 'states', 't'],
2050
- }]
2051
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2052
- let DyteMuteAllButton = class DyteMuteAllButton {
2053
- constructor(c, r, z) {
2054
- this.z = z;
2055
- c.detach();
2056
- this.el = r.nativeElement;
2057
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2058
- }
2059
- };
2060
- DyteMuteAllButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2061
- DyteMuteAllButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMuteAllButton, selector: "dyte-mute-all-button", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2062
- DyteMuteAllButton = __decorate([
2063
- ProxyCmp({
2064
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant']
2065
- })
2066
- ], DyteMuteAllButton);
2067
- export { DyteMuteAllButton };
2068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllButton, decorators: [{
2069
- type: Component,
2070
- args: [{
2071
- selector: 'dyte-mute-all-button',
2072
- changeDetection: ChangeDetectionStrategy.OnPush,
2073
- template: '<ng-content></ng-content>',
2074
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2075
- inputs: ['iconPack', 'meeting', 'size', 't', 'variant'],
2076
- }]
2077
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2078
- let DyteMuteAllConfirmation = class DyteMuteAllConfirmation {
2079
- constructor(c, r, z) {
2080
- this.z = z;
2081
- c.detach();
2082
- this.el = r.nativeElement;
2083
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2084
- }
2085
- };
2086
- DyteMuteAllConfirmation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllConfirmation, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2087
- DyteMuteAllConfirmation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteMuteAllConfirmation, selector: "dyte-mute-all-confirmation", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2088
- DyteMuteAllConfirmation = __decorate([
2089
- ProxyCmp({
2090
- inputs: ['iconPack', 'meeting', 'states', 't']
2091
- })
2092
- ], DyteMuteAllConfirmation);
2093
- export { DyteMuteAllConfirmation };
2094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteMuteAllConfirmation, decorators: [{
2095
- type: Component,
2096
- args: [{
2097
- selector: 'dyte-mute-all-confirmation',
2098
- changeDetection: ChangeDetectionStrategy.OnPush,
2099
- template: '<ng-content></ng-content>',
2100
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2101
- inputs: ['iconPack', 'meeting', 'states', 't'],
2102
- }]
2103
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2104
- let DyteNameTag = class DyteNameTag {
2105
- constructor(c, r, z) {
2106
- this.z = z;
2107
- c.detach();
2108
- this.el = r.nativeElement;
2109
- }
2110
- };
2111
- DyteNameTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNameTag, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2112
- DyteNameTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNameTag, selector: "dyte-name-tag", inputs: { iconPack: "iconPack", isScreenShare: "isScreenShare", meeting: "meeting", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2113
- DyteNameTag = __decorate([
2114
- ProxyCmp({
2115
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 'size', 't', 'variant']
2116
- })
2117
- ], DyteNameTag);
2118
- export { DyteNameTag };
2119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNameTag, decorators: [{
2120
- type: Component,
2121
- args: [{
2122
- selector: 'dyte-name-tag',
2123
- changeDetection: ChangeDetectionStrategy.OnPush,
2124
- template: '<ng-content></ng-content>',
2125
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2126
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 'size', 't', 'variant'],
2127
- }]
2128
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2129
- let DyteNetworkIndicator = class DyteNetworkIndicator {
2130
- constructor(c, r, z) {
2131
- this.z = z;
2132
- c.detach();
2133
- this.el = r.nativeElement;
2134
- }
2135
- };
2136
- DyteNetworkIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNetworkIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2137
- DyteNetworkIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNetworkIndicator, selector: "dyte-network-indicator", inputs: { iconPack: "iconPack", isScreenShare: "isScreenShare", meeting: "meeting", participant: "participant", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2138
- DyteNetworkIndicator = __decorate([
2139
- ProxyCmp({
2140
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 't']
2141
- })
2142
- ], DyteNetworkIndicator);
2143
- export { DyteNetworkIndicator };
2144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNetworkIndicator, decorators: [{
2145
- type: Component,
2146
- args: [{
2147
- selector: 'dyte-network-indicator',
2148
- changeDetection: ChangeDetectionStrategy.OnPush,
2149
- template: '<ng-content></ng-content>',
2150
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2151
- inputs: ['iconPack', 'isScreenShare', 'meeting', 'participant', 't'],
2152
- }]
2153
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2154
- let DyteNotification = class DyteNotification {
2155
- constructor(c, r, z) {
2156
- this.z = z;
2157
- c.detach();
2158
- this.el = r.nativeElement;
2159
- proxyOutputs(this, this.el, ['dyteNotificationDismiss']);
2160
- }
2161
- };
2162
- DyteNotification.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotification, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2163
- DyteNotification.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNotification, selector: "dyte-notification", inputs: { iconPack: "iconPack", notification: "notification", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2164
- DyteNotification = __decorate([
2165
- ProxyCmp({
2166
- inputs: ['iconPack', 'notification', 'size', 't']
2167
- })
2168
- ], DyteNotification);
2169
- export { DyteNotification };
2170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotification, decorators: [{
2171
- type: Component,
2172
- args: [{
2173
- selector: 'dyte-notification',
2174
- changeDetection: ChangeDetectionStrategy.OnPush,
2175
- template: '<ng-content></ng-content>',
2176
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2177
- inputs: ['iconPack', 'notification', 'size', 't'],
2178
- }]
2179
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2180
- let DyteNotifications = class DyteNotifications {
2181
- constructor(c, r, z) {
2182
- this.z = z;
2183
- c.detach();
2184
- this.el = r.nativeElement;
2185
- }
2186
- };
2187
- DyteNotifications.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotifications, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2188
- DyteNotifications.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteNotifications, selector: "dyte-notifications", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2189
- DyteNotifications = __decorate([
2190
- ProxyCmp({
2191
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
2192
- })
2193
- ], DyteNotifications);
2194
- export { DyteNotifications };
2195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteNotifications, decorators: [{
2196
- type: Component,
2197
- args: [{
2198
- selector: 'dyte-notifications',
2199
- changeDetection: ChangeDetectionStrategy.OnPush,
2200
- template: '<ng-content></ng-content>',
2201
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2202
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't'],
2203
- }]
2204
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2205
- let DyteOverlayModal = class DyteOverlayModal {
2206
- constructor(c, r, z) {
2207
- this.z = z;
2208
- c.detach();
2209
- this.el = r.nativeElement;
2210
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2211
- }
2212
- };
2213
- DyteOverlayModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteOverlayModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2214
- DyteOverlayModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteOverlayModal, selector: "dyte-overlay-modal", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2215
- DyteOverlayModal = __decorate([
2216
- ProxyCmp({
2217
- inputs: ['iconPack', 'meeting', 'states', 't']
2218
- })
2219
- ], DyteOverlayModal);
2220
- export { DyteOverlayModal };
2221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteOverlayModal, decorators: [{
2222
- type: Component,
2223
- args: [{
2224
- selector: 'dyte-overlay-modal',
2225
- changeDetection: ChangeDetectionStrategy.OnPush,
2226
- template: '<ng-content></ng-content>',
2227
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2228
- inputs: ['iconPack', 'meeting', 'states', 't'],
2229
- }]
2230
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2231
- let DytePaginatedList = class DytePaginatedList {
2232
- constructor(c, r, z) {
2233
- this.z = z;
2234
- c.detach();
2235
- this.el = r.nativeElement;
2236
- }
2237
- };
2238
- DytePaginatedList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePaginatedList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2239
- DytePaginatedList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePaginatedList, selector: "dyte-paginated-list", inputs: { autoScroll: "autoScroll", createNodes: "createNodes", emptyListLabel: "emptyListLabel", fetchData: "fetchData", iconPack: "iconPack", pageSize: "pageSize", pagesAllowed: "pagesAllowed", selectedItemId: "selectedItemId", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2240
- DytePaginatedList = __decorate([
2241
- ProxyCmp({
2242
- inputs: ['autoScroll', 'createNodes', 'emptyListLabel', 'fetchData', 'iconPack', 'pageSize', 'pagesAllowed', 'selectedItemId', 't'],
2243
- methods: ['onNewNode', 'onNodeDelete', 'onNodeUpdate']
2244
- })
2245
- ], DytePaginatedList);
2246
- export { DytePaginatedList };
2247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePaginatedList, decorators: [{
2248
- type: Component,
2249
- args: [{
2250
- selector: 'dyte-paginated-list',
2251
- changeDetection: ChangeDetectionStrategy.OnPush,
2252
- template: '<ng-content></ng-content>',
2253
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2254
- inputs: ['autoScroll', 'createNodes', 'emptyListLabel', 'fetchData', 'iconPack', 'pageSize', 'pagesAllowed', 'selectedItemId', 't'],
2255
- }]
2256
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2257
- let DyteParticipant = class DyteParticipant {
2258
- constructor(c, r, z) {
2259
- this.z = z;
2260
- c.detach();
2261
- this.el = r.nativeElement;
2262
- proxyOutputs(this, this.el, ['dyteSendNotification']);
2263
- }
2264
- };
2265
- DyteParticipant.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipant, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2266
- DyteParticipant.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipant, selector: "dyte-participant", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", participant: "participant", states: "states", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2267
- DyteParticipant = __decorate([
2268
- ProxyCmp({
2269
- inputs: ['config', 'iconPack', 'meeting', 'participant', 'states', 't', 'view']
2270
- })
2271
- ], DyteParticipant);
2272
- export { DyteParticipant };
2273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipant, decorators: [{
2274
- type: Component,
2275
- args: [{
2276
- selector: 'dyte-participant',
2277
- changeDetection: ChangeDetectionStrategy.OnPush,
2278
- template: '<ng-content></ng-content>',
2279
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2280
- inputs: ['config', 'iconPack', 'meeting', 'participant', 'states', 't', 'view'],
2281
- }]
2282
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2283
- let DyteParticipantCount = class DyteParticipantCount {
2284
- constructor(c, r, z) {
2285
- this.z = z;
2286
- c.detach();
2287
- this.el = r.nativeElement;
2288
- }
2289
- };
2290
- DyteParticipantCount.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantCount, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2291
- DyteParticipantCount.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantCount, selector: "dyte-participant-count", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2292
- DyteParticipantCount = __decorate([
2293
- ProxyCmp({
2294
- inputs: ['iconPack', 'meeting', 'size', 't']
2295
- })
2296
- ], DyteParticipantCount);
2297
- export { DyteParticipantCount };
2298
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantCount, decorators: [{
2299
- type: Component,
2300
- args: [{
2301
- selector: 'dyte-participant-count',
2302
- changeDetection: ChangeDetectionStrategy.OnPush,
2303
- template: '<ng-content></ng-content>',
2304
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2305
- inputs: ['iconPack', 'meeting', 'size', 't'],
2306
- }]
2307
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2308
- let DyteParticipantSetup = class DyteParticipantSetup {
2309
- constructor(c, r, z) {
2310
- this.z = z;
2311
- c.detach();
2312
- this.el = r.nativeElement;
2313
- }
2314
- };
2315
- DyteParticipantSetup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantSetup, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2316
- DyteParticipantSetup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantSetup, selector: "dyte-participant-setup", inputs: { config: "config", iconPack: "iconPack", isPreview: "isPreview", nameTagPosition: "nameTagPosition", participant: "participant", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2317
- DyteParticipantSetup = __decorate([
2318
- ProxyCmp({
2319
- inputs: ['config', 'iconPack', 'isPreview', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant']
2320
- })
2321
- ], DyteParticipantSetup);
2322
- export { DyteParticipantSetup };
2323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantSetup, decorators: [{
2324
- type: Component,
2325
- args: [{
2326
- selector: 'dyte-participant-setup',
2327
- changeDetection: ChangeDetectionStrategy.OnPush,
2328
- template: '<ng-content></ng-content>',
2329
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2330
- inputs: ['config', 'iconPack', 'isPreview', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant'],
2331
- }]
2332
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2333
- let DyteParticipantTile = class DyteParticipantTile {
2334
- constructor(c, r, z) {
2335
- this.z = z;
2336
- c.detach();
2337
- this.el = r.nativeElement;
2338
- proxyOutputs(this, this.el, ['tileLoad', 'tileUnload']);
2339
- }
2340
- };
2341
- DyteParticipantTile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantTile, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2342
- DyteParticipantTile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantTile, selector: "dyte-participant-tile", inputs: { config: "config", iconPack: "iconPack", isPreview: "isPreview", meeting: "meeting", nameTagPosition: "nameTagPosition", participant: "participant", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2343
- DyteParticipantTile = __decorate([
2344
- ProxyCmp({
2345
- inputs: ['config', 'iconPack', 'isPreview', 'meeting', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant']
2346
- })
2347
- ], DyteParticipantTile);
2348
- export { DyteParticipantTile };
2349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantTile, decorators: [{
2350
- type: Component,
2351
- args: [{
2352
- selector: 'dyte-participant-tile',
2353
- changeDetection: ChangeDetectionStrategy.OnPush,
2354
- template: '<ng-content></ng-content>',
2355
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2356
- inputs: ['config', 'iconPack', 'isPreview', 'meeting', 'nameTagPosition', 'participant', 'size', 'states', 't', 'variant'],
2357
- }]
2358
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2359
- let DyteParticipants = class DyteParticipants {
2360
- constructor(c, r, z) {
2361
- this.z = z;
2362
- c.detach();
2363
- this.el = r.nativeElement;
2364
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2365
- }
2366
- };
2367
- DyteParticipants.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipants, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2368
- DyteParticipants.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipants, selector: "dyte-participants", inputs: { config: "config", defaultParticipantsTabId: "defaultParticipantsTabId", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2369
- DyteParticipants = __decorate([
2370
- ProxyCmp({
2371
- inputs: ['config', 'defaultParticipantsTabId', 'iconPack', 'meeting', 'size', 'states', 't']
2372
- })
2373
- ], DyteParticipants);
2374
- export { DyteParticipants };
2375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipants, decorators: [{
2376
- type: Component,
2377
- args: [{
2378
- selector: 'dyte-participants',
2379
- changeDetection: ChangeDetectionStrategy.OnPush,
2380
- template: '<ng-content></ng-content>',
2381
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2382
- inputs: ['config', 'defaultParticipantsTabId', 'iconPack', 'meeting', 'size', 'states', 't'],
2383
- }]
2384
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2385
- let DyteParticipantsAudio = class DyteParticipantsAudio {
2386
- constructor(c, r, z) {
2387
- this.z = z;
2388
- c.detach();
2389
- this.el = r.nativeElement;
2390
- proxyOutputs(this, this.el, ['dialogClose']);
2391
- }
2392
- };
2393
- DyteParticipantsAudio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2394
- DyteParticipantsAudio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsAudio, selector: "dyte-participants-audio", inputs: { iconPack: "iconPack", meeting: "meeting", preloadedAudioElem: "preloadedAudioElem", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2395
- DyteParticipantsAudio = __decorate([
2396
- ProxyCmp({
2397
- inputs: ['iconPack', 'meeting', 'preloadedAudioElem', 't']
2398
- })
2399
- ], DyteParticipantsAudio);
2400
- export { DyteParticipantsAudio };
2401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsAudio, decorators: [{
2402
- type: Component,
2403
- args: [{
2404
- selector: 'dyte-participants-audio',
2405
- changeDetection: ChangeDetectionStrategy.OnPush,
2406
- template: '<ng-content></ng-content>',
2407
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2408
- inputs: ['iconPack', 'meeting', 'preloadedAudioElem', 't'],
2409
- }]
2410
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2411
- let DyteParticipantsStageList = class DyteParticipantsStageList {
2412
- constructor(c, r, z) {
2413
- this.z = z;
2414
- c.detach();
2415
- this.el = r.nativeElement;
2416
- }
2417
- };
2418
- DyteParticipantsStageList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2419
- DyteParticipantsStageList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsStageList, selector: "dyte-participants-stage-list", inputs: { config: "config", hideHeader: "hideHeader", iconPack: "iconPack", meeting: "meeting", search: "search", size: "size", states: "states", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2420
- DyteParticipantsStageList = __decorate([
2421
- ProxyCmp({
2422
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 'states', 't', 'view']
2423
- })
2424
- ], DyteParticipantsStageList);
2425
- export { DyteParticipantsStageList };
2426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageList, decorators: [{
2427
- type: Component,
2428
- args: [{
2429
- selector: 'dyte-participants-stage-list',
2430
- changeDetection: ChangeDetectionStrategy.OnPush,
2431
- template: '<ng-content></ng-content>',
2432
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2433
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 'states', 't', 'view'],
2434
- }]
2435
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2436
- let DyteParticipantsStageQueue = class DyteParticipantsStageQueue {
2437
- constructor(c, r, z) {
2438
- this.z = z;
2439
- c.detach();
2440
- this.el = r.nativeElement;
2441
- }
2442
- };
2443
- DyteParticipantsStageQueue.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageQueue, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2444
- DyteParticipantsStageQueue.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsStageQueue, selector: "dyte-participants-stage-queue", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2445
- DyteParticipantsStageQueue = __decorate([
2446
- ProxyCmp({
2447
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view']
2448
- })
2449
- ], DyteParticipantsStageQueue);
2450
- export { DyteParticipantsStageQueue };
2451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsStageQueue, decorators: [{
2452
- type: Component,
2453
- args: [{
2454
- selector: 'dyte-participants-stage-queue',
2455
- changeDetection: ChangeDetectionStrategy.OnPush,
2456
- template: '<ng-content></ng-content>',
2457
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2458
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view'],
2459
- }]
2460
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2461
- let DyteParticipantsToggle = class DyteParticipantsToggle {
2462
- constructor(c, r, z) {
2463
- this.z = z;
2464
- c.detach();
2465
- this.el = r.nativeElement;
2466
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2467
- }
2468
- };
2469
- DyteParticipantsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2470
- DyteParticipantsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsToggle, selector: "dyte-participants-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2471
- DyteParticipantsToggle = __decorate([
2472
- ProxyCmp({
2473
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2474
- })
2475
- ], DyteParticipantsToggle);
2476
- export { DyteParticipantsToggle };
2477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsToggle, decorators: [{
2478
- type: Component,
2479
- args: [{
2480
- selector: 'dyte-participants-toggle',
2481
- changeDetection: ChangeDetectionStrategy.OnPush,
2482
- template: '<ng-content></ng-content>',
2483
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2484
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
2485
- }]
2486
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2487
- let DyteParticipantsViewerList = class DyteParticipantsViewerList {
2488
- constructor(c, r, z) {
2489
- this.z = z;
2490
- c.detach();
2491
- this.el = r.nativeElement;
2492
- }
2493
- };
2494
- DyteParticipantsViewerList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsViewerList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2495
- DyteParticipantsViewerList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsViewerList, selector: "dyte-participants-viewer-list", inputs: { config: "config", hideHeader: "hideHeader", iconPack: "iconPack", meeting: "meeting", search: "search", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2496
- DyteParticipantsViewerList = __decorate([
2497
- ProxyCmp({
2498
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 't', 'view']
2499
- })
2500
- ], DyteParticipantsViewerList);
2501
- export { DyteParticipantsViewerList };
2502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsViewerList, decorators: [{
2503
- type: Component,
2504
- args: [{
2505
- selector: 'dyte-participants-viewer-list',
2506
- changeDetection: ChangeDetectionStrategy.OnPush,
2507
- template: '<ng-content></ng-content>',
2508
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2509
- inputs: ['config', 'hideHeader', 'iconPack', 'meeting', 'search', 'size', 't', 'view'],
2510
- }]
2511
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2512
- let DyteParticipantsWaitingList = class DyteParticipantsWaitingList {
2513
- constructor(c, r, z) {
2514
- this.z = z;
2515
- c.detach();
2516
- this.el = r.nativeElement;
2517
- }
2518
- };
2519
- DyteParticipantsWaitingList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsWaitingList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2520
- DyteParticipantsWaitingList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteParticipantsWaitingList, selector: "dyte-participants-waiting-list", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2521
- DyteParticipantsWaitingList = __decorate([
2522
- ProxyCmp({
2523
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view']
2524
- })
2525
- ], DyteParticipantsWaitingList);
2526
- export { DyteParticipantsWaitingList };
2527
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteParticipantsWaitingList, decorators: [{
2528
- type: Component,
2529
- args: [{
2530
- selector: 'dyte-participants-waiting-list',
2531
- changeDetection: ChangeDetectionStrategy.OnPush,
2532
- template: '<ng-content></ng-content>',
2533
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2534
- inputs: ['config', 'iconPack', 'meeting', 'size', 't', 'view'],
2535
- }]
2536
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2537
- let DytePermissionsMessage = class DytePermissionsMessage {
2538
- constructor(c, r, z) {
2539
- this.z = z;
2540
- c.detach();
2541
- this.el = r.nativeElement;
2542
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2543
- }
2544
- };
2545
- DytePermissionsMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePermissionsMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2546
- DytePermissionsMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePermissionsMessage, selector: "dyte-permissions-message", inputs: { iconPack: "iconPack", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2547
- DytePermissionsMessage = __decorate([
2548
- ProxyCmp({
2549
- inputs: ['iconPack', 'meeting', 'states', 't']
2550
- })
2551
- ], DytePermissionsMessage);
2552
- export { DytePermissionsMessage };
2553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePermissionsMessage, decorators: [{
2554
- type: Component,
2555
- args: [{
2556
- selector: 'dyte-permissions-message',
2557
- changeDetection: ChangeDetectionStrategy.OnPush,
2558
- template: '<ng-content></ng-content>',
2559
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2560
- inputs: ['iconPack', 'meeting', 'states', 't'],
2561
- }]
2562
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2563
- let DytePipToggle = class DytePipToggle {
2564
- constructor(c, r, z) {
2565
- this.z = z;
2566
- c.detach();
2567
- this.el = r.nativeElement;
2568
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2569
- }
2570
- };
2571
- DytePipToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePipToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2572
- DytePipToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePipToggle, selector: "dyte-pip-toggle", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2573
- DytePipToggle = __decorate([
2574
- ProxyCmp({
2575
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant']
2576
- })
2577
- ], DytePipToggle);
2578
- export { DytePipToggle };
2579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePipToggle, decorators: [{
2580
- type: Component,
2581
- args: [{
2582
- selector: 'dyte-pip-toggle',
2583
- changeDetection: ChangeDetectionStrategy.OnPush,
2584
- template: '<ng-content></ng-content>',
2585
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2586
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't', 'variant'],
2587
- }]
2588
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2589
- let DytePluginMain = class DytePluginMain {
2590
- constructor(c, r, z) {
2591
- this.z = z;
2592
- c.detach();
2593
- this.el = r.nativeElement;
2594
- }
2595
- };
2596
- DytePluginMain.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginMain, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2597
- DytePluginMain.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePluginMain, selector: "dyte-plugin-main", inputs: { iconPack: "iconPack", meeting: "meeting", plugin: "plugin", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2598
- DytePluginMain = __decorate([
2599
- ProxyCmp({
2600
- inputs: ['iconPack', 'meeting', 'plugin', 't']
2601
- })
2602
- ], DytePluginMain);
2603
- export { DytePluginMain };
2604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginMain, decorators: [{
2605
- type: Component,
2606
- args: [{
2607
- selector: 'dyte-plugin-main',
2608
- changeDetection: ChangeDetectionStrategy.OnPush,
2609
- template: '<ng-content></ng-content>',
2610
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2611
- inputs: ['iconPack', 'meeting', 'plugin', 't'],
2612
- }]
2613
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2614
- let DytePlugins = class DytePlugins {
2615
- constructor(c, r, z) {
2616
- this.z = z;
2617
- c.detach();
2618
- this.el = r.nativeElement;
2619
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2620
- }
2621
- };
2622
- DytePlugins.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePlugins, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2623
- DytePlugins.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePlugins, selector: "dyte-plugins", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2624
- DytePlugins = __decorate([
2625
- ProxyCmp({
2626
- inputs: ['config', 'iconPack', 'meeting', 'size', 't']
2627
- })
2628
- ], DytePlugins);
2629
- export { DytePlugins };
2630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePlugins, decorators: [{
2631
- type: Component,
2632
- args: [{
2633
- selector: 'dyte-plugins',
2634
- changeDetection: ChangeDetectionStrategy.OnPush,
2635
- template: '<ng-content></ng-content>',
2636
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2637
- inputs: ['config', 'iconPack', 'meeting', 'size', 't'],
2638
- }]
2639
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2640
- let DytePluginsToggle = class DytePluginsToggle {
2641
- constructor(c, r, z) {
2642
- this.z = z;
2643
- c.detach();
2644
- this.el = r.nativeElement;
2645
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2646
- }
2647
- };
2648
- DytePluginsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2649
- DytePluginsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePluginsToggle, selector: "dyte-plugins-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2650
- DytePluginsToggle = __decorate([
2651
- ProxyCmp({
2652
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2653
- })
2654
- ], DytePluginsToggle);
2655
- export { DytePluginsToggle };
2656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePluginsToggle, decorators: [{
2657
- type: Component,
2658
- args: [{
2659
- selector: 'dyte-plugins-toggle',
2660
- changeDetection: ChangeDetectionStrategy.OnPush,
2661
- template: '<ng-content></ng-content>',
2662
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2663
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
2664
- }]
2665
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2666
- let DytePoll = class DytePoll {
2667
- constructor(c, r, z) {
2668
- this.z = z;
2669
- c.detach();
2670
- this.el = r.nativeElement;
2671
- proxyOutputs(this, this.el, ['dyteVotePoll']);
2672
- }
2673
- };
2674
- DytePoll.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePoll, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2675
- DytePoll.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePoll, selector: "dyte-poll", inputs: { iconPack: "iconPack", permissions: "permissions", poll: "poll", self: "self", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2676
- DytePoll = __decorate([
2677
- ProxyCmp({
2678
- inputs: ['iconPack', 'permissions', 'poll', 'self', 't']
2679
- })
2680
- ], DytePoll);
2681
- export { DytePoll };
2682
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePoll, decorators: [{
2683
- type: Component,
2684
- args: [{
2685
- selector: 'dyte-poll',
2686
- changeDetection: ChangeDetectionStrategy.OnPush,
2687
- template: '<ng-content></ng-content>',
2688
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2689
- inputs: ['iconPack', 'permissions', 'poll', 'self', 't'],
2690
- }]
2691
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2692
- let DytePollForm = class DytePollForm {
2693
- constructor(c, r, z) {
2694
- this.z = z;
2695
- c.detach();
2696
- this.el = r.nativeElement;
2697
- proxyOutputs(this, this.el, ['dyteCreatePoll']);
2698
- }
2699
- };
2700
- DytePollForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollForm, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2701
- DytePollForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePollForm, selector: "dyte-poll-form", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2702
- DytePollForm = __decorate([
2703
- ProxyCmp({
2704
- inputs: ['iconPack', 't']
2705
- })
2706
- ], DytePollForm);
2707
- export { DytePollForm };
2708
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollForm, decorators: [{
2709
- type: Component,
2710
- args: [{
2711
- selector: 'dyte-poll-form',
2712
- changeDetection: ChangeDetectionStrategy.OnPush,
2713
- template: '<ng-content></ng-content>',
2714
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2715
- inputs: ['iconPack', 't'],
2716
- }]
2717
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2718
- let DytePolls = class DytePolls {
2719
- constructor(c, r, z) {
2720
- this.z = z;
2721
- c.detach();
2722
- this.el = r.nativeElement;
2723
- }
2724
- };
2725
- DytePolls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePolls, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2726
- DytePolls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePolls, selector: "dyte-polls", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2727
- DytePolls = __decorate([
2728
- ProxyCmp({
2729
- inputs: ['config', 'iconPack', 'meeting', 'size', 't']
2730
- })
2731
- ], DytePolls);
2732
- export { DytePolls };
2733
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePolls, decorators: [{
2734
- type: Component,
2735
- args: [{
2736
- selector: 'dyte-polls',
2737
- changeDetection: ChangeDetectionStrategy.OnPush,
2738
- template: '<ng-content></ng-content>',
2739
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2740
- inputs: ['config', 'iconPack', 'meeting', 'size', 't'],
2741
- }]
2742
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2743
- let DytePollsToggle = class DytePollsToggle {
2744
- constructor(c, r, z) {
2745
- this.z = z;
2746
- c.detach();
2747
- this.el = r.nativeElement;
2748
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2749
- }
2750
- };
2751
- DytePollsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2752
- DytePollsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DytePollsToggle, selector: "dyte-polls-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2753
- DytePollsToggle = __decorate([
2754
- ProxyCmp({
2755
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2756
- })
2757
- ], DytePollsToggle);
2758
- export { DytePollsToggle };
2759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DytePollsToggle, decorators: [{
2760
- type: Component,
2761
- args: [{
2762
- selector: 'dyte-polls-toggle',
2763
- changeDetection: ChangeDetectionStrategy.OnPush,
2764
- template: '<ng-content></ng-content>',
2765
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2766
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
2767
- }]
2768
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2769
- let DyteRecordingIndicator = class DyteRecordingIndicator {
2770
- constructor(c, r, z) {
2771
- this.z = z;
2772
- c.detach();
2773
- this.el = r.nativeElement;
2774
- }
2775
- };
2776
- DyteRecordingIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2777
- DyteRecordingIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteRecordingIndicator, selector: "dyte-recording-indicator", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2778
- DyteRecordingIndicator = __decorate([
2779
- ProxyCmp({
2780
- inputs: ['iconPack', 'meeting', 'size', 't']
2781
- })
2782
- ], DyteRecordingIndicator);
2783
- export { DyteRecordingIndicator };
2784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingIndicator, decorators: [{
2785
- type: Component,
2786
- args: [{
2787
- selector: 'dyte-recording-indicator',
2788
- changeDetection: ChangeDetectionStrategy.OnPush,
2789
- template: '<ng-content></ng-content>',
2790
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2791
- inputs: ['iconPack', 'meeting', 'size', 't'],
2792
- }]
2793
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2794
- let DyteRecordingToggle = class DyteRecordingToggle {
2795
- constructor(c, r, z) {
2796
- this.z = z;
2797
- c.detach();
2798
- this.el = r.nativeElement;
2799
- proxyOutputs(this, this.el, ['dyteAPIError']);
2800
- }
2801
- };
2802
- DyteRecordingToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2803
- DyteRecordingToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteRecordingToggle, selector: "dyte-recording-toggle", inputs: { disabled: "disabled", iconPack: "iconPack", meeting: "meeting", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2804
- DyteRecordingToggle = __decorate([
2805
- ProxyCmp({
2806
- inputs: ['disabled', 'iconPack', 'meeting', 'size', 't', 'variant']
2807
- })
2808
- ], DyteRecordingToggle);
2809
- export { DyteRecordingToggle };
2810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteRecordingToggle, decorators: [{
2811
- type: Component,
2812
- args: [{
2813
- selector: 'dyte-recording-toggle',
2814
- changeDetection: ChangeDetectionStrategy.OnPush,
2815
- template: '<ng-content></ng-content>',
2816
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2817
- inputs: ['disabled', 'iconPack', 'meeting', 'size', 't', 'variant'],
2818
- }]
2819
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2820
- let DyteScreenShareToggle = class DyteScreenShareToggle {
2821
- constructor(c, r, z) {
2822
- this.z = z;
2823
- c.detach();
2824
- this.el = r.nativeElement;
2825
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'dyteAPIError']);
2826
- }
2827
- };
2828
- DyteScreenShareToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenShareToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2829
- DyteScreenShareToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteScreenShareToggle, selector: "dyte-screen-share-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2830
- DyteScreenShareToggle = __decorate([
2831
- ProxyCmp({
2832
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
2833
- })
2834
- ], DyteScreenShareToggle);
2835
- export { DyteScreenShareToggle };
2836
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenShareToggle, decorators: [{
2837
- type: Component,
2838
- args: [{
2839
- selector: 'dyte-screen-share-toggle',
2840
- changeDetection: ChangeDetectionStrategy.OnPush,
2841
- template: '<ng-content></ng-content>',
2842
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2843
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
2844
- }]
2845
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2846
- let DyteScreenshareView = class DyteScreenshareView {
2847
- constructor(c, r, z) {
2848
- this.z = z;
2849
- c.detach();
2850
- this.el = r.nativeElement;
2851
- proxyOutputs(this, this.el, ['dyteStateUpdate', 'screensharePlay']);
2852
- }
2853
- };
2854
- DyteScreenshareView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenshareView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2855
- DyteScreenshareView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteScreenshareView, selector: "dyte-screenshare-view", inputs: { hideFullScreenButton: "hideFullScreenButton", iconPack: "iconPack", meeting: "meeting", nameTagPosition: "nameTagPosition", participant: "participant", size: "size", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2856
- DyteScreenshareView = __decorate([
2857
- ProxyCmp({
2858
- inputs: ['hideFullScreenButton', 'iconPack', 'meeting', 'nameTagPosition', 'participant', 'size', 't', 'variant']
2859
- })
2860
- ], DyteScreenshareView);
2861
- export { DyteScreenshareView };
2862
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteScreenshareView, decorators: [{
2863
- type: Component,
2864
- args: [{
2865
- selector: 'dyte-screenshare-view',
2866
- changeDetection: ChangeDetectionStrategy.OnPush,
2867
- template: '<ng-content></ng-content>',
2868
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2869
- inputs: ['hideFullScreenButton', 'iconPack', 'meeting', 'nameTagPosition', 'participant', 'size', 't', 'variant'],
2870
- }]
2871
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2872
- let DyteSettings = class DyteSettings {
2873
- constructor(c, r, z) {
2874
- this.z = z;
2875
- c.detach();
2876
- this.el = r.nativeElement;
2877
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2878
- }
2879
- };
2880
- DyteSettings.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettings, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2881
- DyteSettings.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettings, selector: "dyte-settings", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2882
- DyteSettings = __decorate([
2883
- ProxyCmp({
2884
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2885
- })
2886
- ], DyteSettings);
2887
- export { DyteSettings };
2888
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettings, decorators: [{
2889
- type: Component,
2890
- args: [{
2891
- selector: 'dyte-settings',
2892
- changeDetection: ChangeDetectionStrategy.OnPush,
2893
- template: '<ng-content></ng-content>',
2894
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2895
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
2896
- }]
2897
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2898
- let DyteSettingsAudio = class DyteSettingsAudio {
2899
- constructor(c, r, z) {
2900
- this.z = z;
2901
- c.detach();
2902
- this.el = r.nativeElement;
2903
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2904
- }
2905
- };
2906
- DyteSettingsAudio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsAudio, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2907
- DyteSettingsAudio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettingsAudio, selector: "dyte-settings-audio", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2908
- DyteSettingsAudio = __decorate([
2909
- ProxyCmp({
2910
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2911
- })
2912
- ], DyteSettingsAudio);
2913
- export { DyteSettingsAudio };
2914
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsAudio, decorators: [{
2915
- type: Component,
2916
- args: [{
2917
- selector: 'dyte-settings-audio',
2918
- changeDetection: ChangeDetectionStrategy.OnPush,
2919
- template: '<ng-content></ng-content>',
2920
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2921
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
2922
- }]
2923
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2924
- let DyteSettingsToggle = class DyteSettingsToggle {
2925
- constructor(c, r, z) {
2926
- this.z = z;
2927
- c.detach();
2928
- this.el = r.nativeElement;
2929
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2930
- }
2931
- };
2932
- DyteSettingsToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2933
- DyteSettingsToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettingsToggle, selector: "dyte-settings-toggle", inputs: { iconPack: "iconPack", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2934
- DyteSettingsToggle = __decorate([
2935
- ProxyCmp({
2936
- inputs: ['iconPack', 'size', 'states', 't', 'variant']
2937
- })
2938
- ], DyteSettingsToggle);
2939
- export { DyteSettingsToggle };
2940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsToggle, decorators: [{
2941
- type: Component,
2942
- args: [{
2943
- selector: 'dyte-settings-toggle',
2944
- changeDetection: ChangeDetectionStrategy.OnPush,
2945
- template: '<ng-content></ng-content>',
2946
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2947
- inputs: ['iconPack', 'size', 'states', 't', 'variant'],
2948
- }]
2949
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2950
- let DyteSettingsVideo = class DyteSettingsVideo {
2951
- constructor(c, r, z) {
2952
- this.z = z;
2953
- c.detach();
2954
- this.el = r.nativeElement;
2955
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2956
- }
2957
- };
2958
- DyteSettingsVideo.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsVideo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2959
- DyteSettingsVideo.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSettingsVideo, selector: "dyte-settings-video", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2960
- DyteSettingsVideo = __decorate([
2961
- ProxyCmp({
2962
- inputs: ['iconPack', 'meeting', 'size', 'states', 't']
2963
- })
2964
- ], DyteSettingsVideo);
2965
- export { DyteSettingsVideo };
2966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSettingsVideo, decorators: [{
2967
- type: Component,
2968
- args: [{
2969
- selector: 'dyte-settings-video',
2970
- changeDetection: ChangeDetectionStrategy.OnPush,
2971
- template: '<ng-content></ng-content>',
2972
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2973
- inputs: ['iconPack', 'meeting', 'size', 'states', 't'],
2974
- }]
2975
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
2976
- let DyteSetupScreen = class DyteSetupScreen {
2977
- constructor(c, r, z) {
2978
- this.z = z;
2979
- c.detach();
2980
- this.el = r.nativeElement;
2981
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
2982
- }
2983
- };
2984
- DyteSetupScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSetupScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2985
- DyteSetupScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSetupScreen, selector: "dyte-setup-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
2986
- DyteSetupScreen = __decorate([
2987
- ProxyCmp({
2988
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't']
2989
- })
2990
- ], DyteSetupScreen);
2991
- export { DyteSetupScreen };
2992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSetupScreen, decorators: [{
2993
- type: Component,
2994
- args: [{
2995
- selector: 'dyte-setup-screen',
2996
- changeDetection: ChangeDetectionStrategy.OnPush,
2997
- template: '<ng-content></ng-content>',
2998
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2999
- inputs: ['config', 'iconPack', 'meeting', 'size', 'states', 't'],
3000
- }]
3001
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3002
- let DyteSidebar = class DyteSidebar {
3003
- constructor(c, r, z) {
3004
- this.z = z;
3005
- c.detach();
3006
- this.el = r.nativeElement;
3007
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3008
- }
3009
- };
3010
- DyteSidebar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3011
- DyteSidebar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSidebar, selector: "dyte-sidebar", inputs: { config: "config", defaultSection: "defaultSection", enabledSections: "enabledSections", iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3012
- DyteSidebar = __decorate([
3013
- ProxyCmp({
3014
- inputs: ['config', 'defaultSection', 'enabledSections', 'iconPack', 'meeting', 'size', 'states', 't', 'view']
3015
- })
3016
- ], DyteSidebar);
3017
- export { DyteSidebar };
3018
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebar, decorators: [{
3019
- type: Component,
3020
- args: [{
3021
- selector: 'dyte-sidebar',
3022
- changeDetection: ChangeDetectionStrategy.OnPush,
3023
- template: '<ng-content></ng-content>',
3024
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3025
- inputs: ['config', 'defaultSection', 'enabledSections', 'iconPack', 'meeting', 'size', 'states', 't', 'view'],
3026
- }]
3027
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3028
- let DyteSidebarUi = class DyteSidebarUi {
3029
- constructor(c, r, z) {
3030
- this.z = z;
3031
- c.detach();
3032
- this.el = r.nativeElement;
3033
- proxyOutputs(this, this.el, ['tabChange', 'sidebarClose']);
3034
- }
3035
- };
3036
- DyteSidebarUi.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebarUi, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3037
- DyteSidebarUi.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSidebarUi, selector: "dyte-sidebar-ui", inputs: { currentTab: "currentTab", hideCloseAction: "hideCloseAction", hideHeader: "hideHeader", iconPack: "iconPack", t: "t", tabs: "tabs", view: "view" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3038
- DyteSidebarUi = __decorate([
3039
- ProxyCmp({
3040
- inputs: ['currentTab', 'hideCloseAction', 'hideHeader', 'iconPack', 't', 'tabs', 'view']
3041
- })
3042
- ], DyteSidebarUi);
3043
- export { DyteSidebarUi };
3044
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSidebarUi, decorators: [{
3045
- type: Component,
3046
- args: [{
3047
- selector: 'dyte-sidebar-ui',
3048
- changeDetection: ChangeDetectionStrategy.OnPush,
3049
- template: '<ng-content></ng-content>',
3050
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3051
- inputs: ['currentTab', 'hideCloseAction', 'hideHeader', 'iconPack', 't', 'tabs', 'view'],
3052
- }]
3053
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3054
- let DyteSimpleGrid = class DyteSimpleGrid {
3055
- constructor(c, r, z) {
3056
- this.z = z;
3057
- c.detach();
3058
- this.el = r.nativeElement;
3059
- }
3060
- };
3061
- DyteSimpleGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSimpleGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3062
- DyteSimpleGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSimpleGrid, selector: "dyte-simple-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", iconPack: "iconPack", meeting: "meeting", participants: "participants", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3063
- DyteSimpleGrid = __decorate([
3064
- ProxyCmp({
3065
- inputs: ['aspectRatio', 'config', 'gap', 'iconPack', 'meeting', 'participants', 'size', 'states', 't']
3066
- })
3067
- ], DyteSimpleGrid);
3068
- export { DyteSimpleGrid };
3069
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSimpleGrid, decorators: [{
3070
- type: Component,
3071
- args: [{
3072
- selector: 'dyte-simple-grid',
3073
- changeDetection: ChangeDetectionStrategy.OnPush,
3074
- template: '<ng-content></ng-content>',
3075
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3076
- inputs: ['aspectRatio', 'config', 'gap', 'iconPack', 'meeting', 'participants', 'size', 'states', 't'],
3077
- }]
3078
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3079
- let DyteSpeakerSelector = class DyteSpeakerSelector {
3080
- constructor(c, r, z) {
3081
- this.z = z;
3082
- c.detach();
3083
- this.el = r.nativeElement;
3084
- }
3085
- };
3086
- DyteSpeakerSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpeakerSelector, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3087
- DyteSpeakerSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpeakerSelector, selector: "dyte-speaker-selector", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3088
- DyteSpeakerSelector = __decorate([
3089
- ProxyCmp({
3090
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
3091
- })
3092
- ], DyteSpeakerSelector);
3093
- export { DyteSpeakerSelector };
3094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpeakerSelector, decorators: [{
3095
- type: Component,
3096
- args: [{
3097
- selector: 'dyte-speaker-selector',
3098
- changeDetection: ChangeDetectionStrategy.OnPush,
3099
- template: '<ng-content></ng-content>',
3100
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3101
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
3102
- }]
3103
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3104
- let DyteSpinner = class DyteSpinner {
3105
- constructor(c, r, z) {
3106
- this.z = z;
3107
- c.detach();
3108
- this.el = r.nativeElement;
3109
- }
3110
- };
3111
- DyteSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3112
- DyteSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpinner, selector: "dyte-spinner", inputs: { iconPack: "iconPack", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3113
- DyteSpinner = __decorate([
3114
- ProxyCmp({
3115
- inputs: ['iconPack', 'size']
3116
- })
3117
- ], DyteSpinner);
3118
- export { DyteSpinner };
3119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpinner, decorators: [{
3120
- type: Component,
3121
- args: [{
3122
- selector: 'dyte-spinner',
3123
- changeDetection: ChangeDetectionStrategy.OnPush,
3124
- template: '<ng-content></ng-content>',
3125
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3126
- inputs: ['iconPack', 'size'],
3127
- }]
3128
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3129
- let DyteSpotlightGrid = class DyteSpotlightGrid {
3130
- constructor(c, r, z) {
3131
- this.z = z;
3132
- c.detach();
3133
- this.el = r.nativeElement;
3134
- }
3135
- };
3136
- DyteSpotlightGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightGrid, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3137
- DyteSpotlightGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpotlightGrid, selector: "dyte-spotlight-grid", inputs: { aspectRatio: "aspectRatio", config: "config", gap: "gap", gridSize: "gridSize", iconPack: "iconPack", layout: "layout", meeting: "meeting", participants: "participants", pinnedParticipants: "pinnedParticipants", size: "size", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3138
- DyteSpotlightGrid = __decorate([
3139
- ProxyCmp({
3140
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'size', 'states', 't']
3141
- })
3142
- ], DyteSpotlightGrid);
3143
- export { DyteSpotlightGrid };
3144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightGrid, decorators: [{
3145
- type: Component,
3146
- args: [{
3147
- selector: 'dyte-spotlight-grid',
3148
- changeDetection: ChangeDetectionStrategy.OnPush,
3149
- template: '<ng-content></ng-content>',
3150
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3151
- inputs: ['aspectRatio', 'config', 'gap', 'gridSize', 'iconPack', 'layout', 'meeting', 'participants', 'pinnedParticipants', 'size', 'states', 't'],
3152
- }]
3153
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3154
- let DyteSpotlightIndicator = class DyteSpotlightIndicator {
3155
- constructor(c, r, z) {
3156
- this.z = z;
3157
- c.detach();
3158
- this.el = r.nativeElement;
3159
- }
3160
- };
3161
- DyteSpotlightIndicator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightIndicator, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3162
- DyteSpotlightIndicator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSpotlightIndicator, selector: "dyte-spotlight-indicator", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3163
- DyteSpotlightIndicator = __decorate([
3164
- ProxyCmp({
3165
- inputs: ['iconPack', 'meeting', 'size', 't']
3166
- })
3167
- ], DyteSpotlightIndicator);
3168
- export { DyteSpotlightIndicator };
3169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSpotlightIndicator, decorators: [{
3170
- type: Component,
3171
- args: [{
3172
- selector: 'dyte-spotlight-indicator',
3173
- changeDetection: ChangeDetectionStrategy.OnPush,
3174
- template: '<ng-content></ng-content>',
3175
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3176
- inputs: ['iconPack', 'meeting', 'size', 't'],
3177
- }]
3178
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3179
- let DyteStage = class DyteStage {
3180
- constructor(c, r, z) {
3181
- this.z = z;
3182
- c.detach();
3183
- this.el = r.nativeElement;
3184
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3185
- }
3186
- };
3187
- DyteStage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3188
- DyteStage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteStage, selector: "dyte-stage", inputs: { iconPack: "iconPack", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3189
- DyteStage = __decorate([
3190
- ProxyCmp({
3191
- inputs: ['iconPack', 't']
3192
- })
3193
- ], DyteStage);
3194
- export { DyteStage };
3195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStage, decorators: [{
3196
- type: Component,
3197
- args: [{
3198
- selector: 'dyte-stage',
3199
- changeDetection: ChangeDetectionStrategy.OnPush,
3200
- template: '<ng-content></ng-content>',
3201
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3202
- inputs: ['iconPack', 't'],
3203
- }]
3204
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3205
- let DyteStageToggle = class DyteStageToggle {
3206
- constructor(c, r, z) {
3207
- this.z = z;
3208
- c.detach();
3209
- this.el = r.nativeElement;
3210
- proxyOutputs(this, this.el, ['dyteStateUpdate']);
3211
- }
3212
- };
3213
- DyteStageToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStageToggle, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3214
- DyteStageToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteStageToggle, selector: "dyte-stage-toggle", inputs: { iconPack: "iconPack", meeting: "meeting", size: "size", states: "states", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3215
- DyteStageToggle = __decorate([
3216
- ProxyCmp({
3217
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant']
3218
- })
3219
- ], DyteStageToggle);
3220
- export { DyteStageToggle };
3221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteStageToggle, decorators: [{
3222
- type: Component,
3223
- args: [{
3224
- selector: 'dyte-stage-toggle',
3225
- changeDetection: ChangeDetectionStrategy.OnPush,
3226
- template: '<ng-content></ng-content>',
3227
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3228
- inputs: ['iconPack', 'meeting', 'size', 'states', 't', 'variant'],
3229
- }]
3230
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3231
- let DyteSwitch = class DyteSwitch {
3232
- constructor(c, r, z) {
3233
- this.z = z;
3234
- c.detach();
3235
- this.el = r.nativeElement;
3236
- proxyOutputs(this, this.el, ['dyteChange']);
3237
- }
3238
- };
3239
- DyteSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSwitch, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3240
- DyteSwitch.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteSwitch, selector: "dyte-switch", inputs: { checked: "checked", disabled: "disabled", iconPack: "iconPack", readonly: "readonly", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3241
- DyteSwitch = __decorate([
3242
- ProxyCmp({
3243
- inputs: ['checked', 'disabled', 'iconPack', 'readonly', 't']
3244
- })
3245
- ], DyteSwitch);
3246
- export { DyteSwitch };
3247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteSwitch, decorators: [{
3248
- type: Component,
3249
- args: [{
3250
- selector: 'dyte-switch',
3251
- changeDetection: ChangeDetectionStrategy.OnPush,
3252
- template: '<ng-content></ng-content>',
3253
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3254
- inputs: ['checked', 'disabled', 'iconPack', 'readonly', 't'],
3255
- }]
3256
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3257
- let DyteTabBar = class DyteTabBar {
3258
- constructor(c, r, z) {
3259
- this.z = z;
3260
- c.detach();
3261
- this.el = r.nativeElement;
3262
- proxyOutputs(this, this.el, ['tabChange']);
3263
- }
3264
- };
3265
- DyteTabBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTabBar, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3266
- DyteTabBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTabBar, selector: "dyte-tab-bar", inputs: { activeTab: "activeTab", config: "config", iconPack: "iconPack", layout: "layout", meeting: "meeting", size: "size", states: "states", t: "t", tabs: "tabs" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3267
- DyteTabBar = __decorate([
3268
- ProxyCmp({
3269
- inputs: ['activeTab', 'config', 'iconPack', 'layout', 'meeting', 'size', 'states', 't', 'tabs']
3270
- })
3271
- ], DyteTabBar);
3272
- export { DyteTabBar };
3273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTabBar, decorators: [{
3274
- type: Component,
3275
- args: [{
3276
- selector: 'dyte-tab-bar',
3277
- changeDetection: ChangeDetectionStrategy.OnPush,
3278
- template: '<ng-content></ng-content>',
3279
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3280
- inputs: ['activeTab', 'config', 'iconPack', 'layout', 'meeting', 'size', 'states', 't', 'tabs'],
3281
- }]
3282
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3283
- let DyteTextComposerView = class DyteTextComposerView {
3284
- constructor(c, r, z) {
3285
- this.z = z;
3286
- c.detach();
3287
- this.el = r.nativeElement;
3288
- proxyOutputs(this, this.el, ['textChange']);
3289
- }
3290
- };
3291
- DyteTextComposerView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextComposerView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3292
- DyteTextComposerView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextComposerView, selector: "dyte-text-composer-view", inputs: { disabled: "disabled", iconPack: "iconPack", keyDownHandler: "keyDownHandler", maxLength: "maxLength", placeholder: "placeholder", rateLimitBreached: "rateLimitBreached", t: "t", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3293
- DyteTextComposerView = __decorate([
3294
- ProxyCmp({
3295
- inputs: ['disabled', 'iconPack', 'keyDownHandler', 'maxLength', 'placeholder', 'rateLimitBreached', 't', 'value'],
3296
- methods: ['setText']
3297
- })
3298
- ], DyteTextComposerView);
3299
- export { DyteTextComposerView };
3300
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextComposerView, decorators: [{
3301
- type: Component,
3302
- args: [{
3303
- selector: 'dyte-text-composer-view',
3304
- changeDetection: ChangeDetectionStrategy.OnPush,
3305
- template: '<ng-content></ng-content>',
3306
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3307
- inputs: ['disabled', 'iconPack', 'keyDownHandler', 'maxLength', 'placeholder', 'rateLimitBreached', 't', 'value'],
3308
- }]
3309
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3310
- let DyteTextMessage = class DyteTextMessage {
3311
- constructor(c, r, z) {
3312
- this.z = z;
3313
- c.detach();
3314
- this.el = r.nativeElement;
3315
- }
3316
- };
3317
- DyteTextMessage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessage, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3318
- DyteTextMessage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextMessage, selector: "dyte-text-message", inputs: { iconPack: "iconPack", isContinued: "isContinued", message: "message", now: "now", showBubble: "showBubble", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3319
- DyteTextMessage = __decorate([
3320
- ProxyCmp({
3321
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't']
3322
- })
3323
- ], DyteTextMessage);
3324
- export { DyteTextMessage };
3325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessage, decorators: [{
3326
- type: Component,
3327
- args: [{
3328
- selector: 'dyte-text-message',
3329
- changeDetection: ChangeDetectionStrategy.OnPush,
3330
- template: '<ng-content></ng-content>',
3331
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3332
- inputs: ['iconPack', 'isContinued', 'message', 'now', 'showBubble', 't'],
3333
- }]
3334
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3335
- let DyteTextMessageView = class DyteTextMessageView {
3336
- constructor(c, r, z) {
3337
- this.z = z;
3338
- c.detach();
3339
- this.el = r.nativeElement;
3340
- }
3341
- };
3342
- DyteTextMessageView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessageView, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3343
- DyteTextMessageView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTextMessageView, selector: "dyte-text-message-view", inputs: { isMarkdown: "isMarkdown", text: "text" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3344
- DyteTextMessageView = __decorate([
3345
- ProxyCmp({
3346
- inputs: ['isMarkdown', 'text']
3347
- })
3348
- ], DyteTextMessageView);
3349
- export { DyteTextMessageView };
3350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTextMessageView, decorators: [{
3351
- type: Component,
3352
- args: [{
3353
- selector: 'dyte-text-message-view',
3354
- changeDetection: ChangeDetectionStrategy.OnPush,
3355
- template: '<ng-content></ng-content>',
3356
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3357
- inputs: ['isMarkdown', 'text'],
3358
- }]
3359
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3360
- let DyteTooltip = class DyteTooltip {
3361
- constructor(c, r, z) {
3362
- this.z = z;
3363
- c.detach();
3364
- this.el = r.nativeElement;
3365
- proxyOutputs(this, this.el, ['dyteOpenChange']);
3366
- }
3367
- };
3368
- DyteTooltip.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTooltip, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3369
- DyteTooltip.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTooltip, selector: "dyte-tooltip", inputs: { delay: "delay", disabled: "disabled", kind: "kind", label: "label", open: "open", placement: "placement", size: "size", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3370
- DyteTooltip = __decorate([
3371
- ProxyCmp({
3372
- inputs: ['delay', 'disabled', 'kind', 'label', 'open', 'placement', 'size', 'variant']
3373
- })
3374
- ], DyteTooltip);
3375
- export { DyteTooltip };
3376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTooltip, decorators: [{
3377
- type: Component,
3378
- args: [{
3379
- selector: 'dyte-tooltip',
3380
- changeDetection: ChangeDetectionStrategy.OnPush,
3381
- template: '<ng-content></ng-content>',
3382
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3383
- inputs: ['delay', 'disabled', 'kind', 'label', 'open', 'placement', 'size', 'variant'],
3384
- }]
3385
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3386
- let DyteTranscript = class DyteTranscript {
3387
- constructor(c, r, z) {
3388
- this.z = z;
3389
- c.detach();
3390
- this.el = r.nativeElement;
3391
- proxyOutputs(this, this.el, ['dyteTranscriptDismiss']);
3392
- }
3393
- };
3394
- DyteTranscript.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscript, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3395
- DyteTranscript.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTranscript, selector: "dyte-transcript", inputs: { t: "t", transcript: "transcript" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3396
- DyteTranscript = __decorate([
3397
- ProxyCmp({
3398
- inputs: ['t', 'transcript']
3399
- })
3400
- ], DyteTranscript);
3401
- export { DyteTranscript };
3402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscript, decorators: [{
3403
- type: Component,
3404
- args: [{
3405
- selector: 'dyte-transcript',
3406
- changeDetection: ChangeDetectionStrategy.OnPush,
3407
- template: '<ng-content></ng-content>',
3408
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3409
- inputs: ['t', 'transcript'],
3410
- }]
3411
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3412
- let DyteTranscripts = class DyteTranscripts {
3413
- constructor(c, r, z) {
3414
- this.z = z;
3415
- c.detach();
3416
- this.el = r.nativeElement;
3417
- }
3418
- };
3419
- DyteTranscripts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscripts, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3420
- DyteTranscripts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteTranscripts, selector: "dyte-transcripts", inputs: { config: "config", meeting: "meeting", states: "states", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3421
- DyteTranscripts = __decorate([
3422
- ProxyCmp({
3423
- inputs: ['config', 'meeting', 'states', 't']
3424
- })
3425
- ], DyteTranscripts);
3426
- export { DyteTranscripts };
3427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteTranscripts, decorators: [{
3428
- type: Component,
3429
- args: [{
3430
- selector: 'dyte-transcripts',
3431
- changeDetection: ChangeDetectionStrategy.OnPush,
3432
- template: '<ng-content></ng-content>',
3433
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3434
- inputs: ['config', 'meeting', 'states', 't'],
3435
- }]
3436
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3437
- let DyteUiProvider = class DyteUiProvider {
3438
- constructor(c, r, z) {
3439
- this.z = z;
3440
- c.detach();
3441
- this.el = r.nativeElement;
3442
- proxyOutputs(this, this.el, ['dyteStatesUpdate']);
3443
- }
3444
- };
3445
- DyteUiProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteUiProvider, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3446
- DyteUiProvider.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteUiProvider, selector: "dyte-ui-provider", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", noRenderUntilMeeting: "noRenderUntilMeeting", showSetupScreen: "showSetupScreen", size: "size", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3447
- DyteUiProvider = __decorate([
3448
- ProxyCmp({
3449
- inputs: ['config', 'iconPack', 'meeting', 'noRenderUntilMeeting', 'showSetupScreen', 'size', 't']
3450
- })
3451
- ], DyteUiProvider);
3452
- export { DyteUiProvider };
3453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteUiProvider, decorators: [{
3454
- type: Component,
3455
- args: [{
3456
- selector: 'dyte-ui-provider',
3457
- changeDetection: ChangeDetectionStrategy.OnPush,
3458
- template: '<ng-content></ng-content>',
3459
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3460
- inputs: ['config', 'iconPack', 'meeting', 'noRenderUntilMeeting', 'showSetupScreen', 'size', 't'],
3461
- }]
3462
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3463
- let DyteViewerCount = class DyteViewerCount {
3464
- constructor(c, r, z) {
3465
- this.z = z;
3466
- c.detach();
3467
- this.el = r.nativeElement;
3468
- }
3469
- };
3470
- DyteViewerCount.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteViewerCount, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3471
- DyteViewerCount.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteViewerCount, selector: "dyte-viewer-count", inputs: { iconPack: "iconPack", meeting: "meeting", t: "t", variant: "variant" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3472
- DyteViewerCount = __decorate([
3473
- ProxyCmp({
3474
- inputs: ['iconPack', 'meeting', 't', 'variant']
3475
- })
3476
- ], DyteViewerCount);
3477
- export { DyteViewerCount };
3478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteViewerCount, decorators: [{
3479
- type: Component,
3480
- args: [{
3481
- selector: 'dyte-viewer-count',
3482
- changeDetection: ChangeDetectionStrategy.OnPush,
3483
- template: '<ng-content></ng-content>',
3484
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3485
- inputs: ['iconPack', 'meeting', 't', 'variant'],
3486
- }]
3487
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3488
- let DyteVirtualizedParticipantList = class DyteVirtualizedParticipantList {
3489
- constructor(c, r, z) {
3490
- this.z = z;
3491
- c.detach();
3492
- this.el = r.nativeElement;
3493
- }
3494
- };
3495
- DyteVirtualizedParticipantList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteVirtualizedParticipantList, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3496
- DyteVirtualizedParticipantList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteVirtualizedParticipantList, selector: "dyte-virtualized-participant-list", inputs: { bufferedItemsCount: "bufferedItemsCount", emptyListElement: "emptyListElement", itemHeight: "itemHeight", items: "items", renderItem: "renderItem" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3497
- DyteVirtualizedParticipantList = __decorate([
3498
- ProxyCmp({
3499
- inputs: ['bufferedItemsCount', 'emptyListElement', 'itemHeight', 'items', 'renderItem']
3500
- })
3501
- ], DyteVirtualizedParticipantList);
3502
- export { DyteVirtualizedParticipantList };
3503
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteVirtualizedParticipantList, decorators: [{
3504
- type: Component,
3505
- args: [{
3506
- selector: 'dyte-virtualized-participant-list',
3507
- changeDetection: ChangeDetectionStrategy.OnPush,
3508
- template: '<ng-content></ng-content>',
3509
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3510
- inputs: ['bufferedItemsCount', 'emptyListElement', 'itemHeight', 'items', 'renderItem'],
3511
- }]
3512
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3513
- let DyteWaitingScreen = class DyteWaitingScreen {
3514
- constructor(c, r, z) {
3515
- this.z = z;
3516
- c.detach();
3517
- this.el = r.nativeElement;
3518
- }
3519
- };
3520
- DyteWaitingScreen.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteWaitingScreen, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
3521
- DyteWaitingScreen.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DyteWaitingScreen, selector: "dyte-waiting-screen", inputs: { config: "config", iconPack: "iconPack", meeting: "meeting", t: "t" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3522
- DyteWaitingScreen = __decorate([
3523
- ProxyCmp({
3524
- inputs: ['config', 'iconPack', 'meeting', 't']
3525
- })
3526
- ], DyteWaitingScreen);
3527
- export { DyteWaitingScreen };
3528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DyteWaitingScreen, decorators: [{
3529
- type: Component,
3530
- args: [{
3531
- selector: 'dyte-waiting-screen',
3532
- changeDetection: ChangeDetectionStrategy.OnPush,
3533
- template: '<ng-content></ng-content>',
3534
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
3535
- inputs: ['config', 'iconPack', 'meeting', 't'],
3536
- }]
3537
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
3538
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7SUFlMUQsTUFBTSxTQUFOLE1BQU07SUFFakIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRixDQUFBO29HQVBZLE1BQU07d0ZBQU4sTUFBTSw2S0FKUCwyQkFBMkI7QUFJMUIsTUFBTTtJQVZsQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUM7S0FDekUsQ0FBQztHQVFXLE1BQU0sQ0FPbEI7U0FQWSxNQUFNOzRGQUFOLE1BQU07a0JBUGxCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFB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QyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQztpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYWknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmlldyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQWkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQWlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUFpU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVBaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUFpIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVBaVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1haS10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVBaVRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVBaVRvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQWlUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUFpVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQWlUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUFpVG9nZ2xlU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2luaXRpYWxUcmFuc2NyaXB0aW9ucycsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYWktdHJhbnNjcmlwdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luaXRpYWxUcmFuc2NyaXB0aW9ucycsICdtZWV0aW5nJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUFpVHJhbnNjcmlwdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQWlUcmFuc2NyaXB0aW9uc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVBaVRyYW5zY3JpcHRpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQWlUcmFuc2NyaXB0aW9ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaGlkZVNlbGYnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWF1ZGlvLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdoaWRlU2VsZicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUF1ZGlvR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVBdWRpb0dyaWRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQXVkaW9HcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQXVkaW9HcmlkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYXVkaW8tdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQXVkaW9UaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUF1ZGlvVGlsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVBdWRpb1RpbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVBdWRpb1RpbGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZU11dGVkJywgJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYXVkaW8tdmlzdWFsaXplcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZU11dGVkJywgJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUF1ZGlvVmlzdWFsaXplciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVBdWRpb1Zpc3VhbGl6ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQXVkaW9WaXN1YWxpemVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQXVkaW9WaXN1YWxpemVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVBdmF0YXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQXZhdGFyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQXZhdGFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93RGVsZXRlJywgJ2Fzc2lnbmluZ1BhcnRpY2lwYW50cycsICdkZWZhdWx0RXhwYW5kZWQnLCAnaWNvblBhY2snLCAnaXNEcmFnTW9kZScsICdtZWV0aW5nJywgJ21vZGUnLCAncm9vbScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1icmVha291dC1yb29tLW1hbmFnZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93RGVsZXRlJywgJ2Fzc2lnbmluZ1BhcnRpY2lwYW50cycsICdkZWZhdWx0RXhwYW5kZWQnLCAnaWNvblBhY2snLCAnaXNEcmFnTW9kZScsICdtZWV0aW5nJywgJ21vZGUnLCAncm9vbScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQnJlYWtvdXRSb29tTWFuYWdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVCcmVha291dFJvb21NYW5hZ2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncGFydGljaXBhbnRzQWRkJywgJ3BhcnRpY2lwYW50RGVsZXRlJywgJ3Jvb21Kb2luJywgJ2RlbGV0ZScsICd1cGRhdGUnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUJyZWFrb3V0Um9vbU1hbmFnZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVCcmVha291dFJvb21NYW5hZ2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciBhZGRpbmcgYSBwYXJ0aWNpcGFudFxuICAgKi9cbiAgcGFydGljaXBhbnRzQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8bnVsbD4+O1xuICAvKipcbiAgICogT24gRGVsZXRlIGV2ZW50IGVtaXR0ZXJcbiAgICovXG4gIHBhcnRpY2lwYW50RGVsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjdXN0b21QYXJ0aWNpcGFudElkOiBzdHJpbmc7IH0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciBqb2luaW5nIGEgcm9vbVxuICAgKi9cbiAgcm9vbUpvaW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudWxsPj47XG4gIC8qKlxuICAgKiBFdmVudCBmb3IgZGVsZXRpbmcgcm9vbVxuICAgKi9cbiAgZGVsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG4gIC8qKlxuICAgKiBFdmVudCBmb3IgdXBkYXRpbmcgcm9vbSBkZXRhaWxzXG4gICAqL1xuICB1cGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGlkOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdwYXJ0aWNpcGFudElkcycsICdzZWxlY3RlZFBhcnRpY2lwYW50SWRzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYnJlYWtvdXQtcm9vbS1wYXJ0aWNpcGFudHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnRJZHMnLCAnc2VsZWN0ZWRQYXJ0aWNpcGFudElkcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVCcmVha291dFJvb21QYXJ0aWNpcGFudHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQnJlYWtvdXRSb29tUGFydGljaXBhbnRzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2VsZWN0ZWRQYXJ0aWNpcGFudHNVcGRhdGUnLCAnYWxsUGFydGljaXBhbnRzVG9nZ2xlVXBkYXRlJywgJ3BhcnRpY2lwYW50c0RyYWdnaW5nJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVCcmVha291dFJvb21QYXJ0aWNpcGFudHMgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVCcmVha291dFJvb21QYXJ0aWNpcGFudHMge1xuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiBzZWxlY3RlZCBwYXJ0aWNpcGFudHMgYXJlIHVwZGF0ZWRcbiAgICovXG4gIHNlbGVjdGVkUGFydGljaXBhbnRzVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYWxsIHBhcnRpY2lwYW50cyBhcmUgc2VsZWN0ZWQgb3IgZGVzZWxlY3RlZFxuICAgKi9cbiAgYWxsUGFydGljaXBhbnRzVG9nZ2xlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nW10+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gcGFydGljaXBhbnRzIGFyZSBkcmFnZ2VkXG4gICAqL1xuICBwYXJ0aWNpcGFudHNEcmFnZ2luZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1icmVha291dC1yb29tcy1tYW5hZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVCcmVha291dFJvb21zTWFuYWdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVCcmVha291dFJvb21zTWFuYWdlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgUGFydGlhbFN0YXRlRXZlbnQgYXMgSUR5dGVCcmVha291dFJvb21zTWFuYWdlclBhcnRpYWxTdGF0ZUV2ZW50IH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVCcmVha291dFJvb21zTWFuYWdlciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUJyZWFrb3V0Um9vbXNNYW5hZ2VyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVCcmVha291dFJvb21zTWFuYWdlclBhcnRpYWxTdGF0ZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWJyZWFrb3V0LXJvb21zLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUJyZWFrb3V0Um9vbXNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQnJlYWtvdXRSb29tc1RvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgUGFydGlhbFN0YXRlRXZlbnQgYXMgSUR5dGVCcmVha291dFJvb21zVG9nZ2xlUGFydGlhbFN0YXRlRXZlbnQgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUJyZWFrb3V0Um9vbXNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVCcmVha291dFJvb21zVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVCcmVha291dFJvb21zVG9nZ2xlUGFydGlhbFN0YXRlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1icm9hZGNhc3QtbWVzc2FnZS1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQnJvYWRjYXN0TWVzc2FnZU1vZGFsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUJyb2FkY2FzdE1lc3NhZ2VNb2RhbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQnJvYWRjYXN0TWVzc2FnZU1vZGFsU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVCcm9hZGNhc3RNZXNzYWdlTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVCcm9hZGNhc3RNZXNzYWdlTW9kYWwge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUJyb2FkY2FzdE1lc3NhZ2VNb2RhbFN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdraW5kJywgJ3JldmVyc2UnLCAnc2l6ZScsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdraW5kJywgJ3JldmVyc2UnLCAnc2l6ZScsICd0eXBlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2FtZXJhLXNlbGVjdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDYW1lcmFTZWxlY3RvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDYW1lcmFTZWxlY3RvckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDYW1lcmFTZWxlY3RvciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNhbWVyYVNlbGVjdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2FtZXJhLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2FtZXJhVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUNhbWVyYVRvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ2FtZXJhVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDYW1lcmFUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDYW1lcmFUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNhbWVyYVRvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2FwdGlvbi10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2FwdGlvblRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDYXB0aW9uVG9nZ2xlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVDYXB0aW9uVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDYXB0aW9uVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2FwdGlvblRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2FwdGlvblRvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhbm5lbC1jcmVhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYW5uZWxDcmVhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUNoYW5uZWxDcmVhdG9yRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJywgJ3N3aXRjaENoYW5uZWwnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUNoYW5uZWxDcmVhdG9yU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGFubmVsQ3JlYXRvciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYW5uZWxDcmVhdG9yIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGFubmVsQ3JlYXRvclN0YXRlcz4+O1xuICAvKipcbiAgICogRW1pdHMgZXZlbnQgdG8gc3dpdGNoIGNoYW5uZWxcbiAgICovXG4gIHN3aXRjaENoYW5uZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hhbm5lbCcsICdpY29uUGFjaycsICdtZW1iZXJzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhbm5lbC1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGFubmVsJywgJ2ljb25QYWNrJywgJ21lbWJlcnMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhbm5lbERldGFpbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhbm5lbERldGFpbHNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhbm5lbERldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGFubmVsRGV0YWlscyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFubmVsJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2hvd0JhY2tCdXR0b24nLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGFubmVsLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhbm5lbCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3Nob3dCYWNrQnV0dG9uJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYW5uZWxIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhbm5lbEhlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NlYXJjaCcsICdzZWFyY2hEaXNtaXNzZWQnLCAnYmFjayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhbm5lbEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYW5uZWxIZWFkZXIge1xuICAvKipcbiAgICogZXZlbnQgdHJpZ2dlcmVkIGZvciBzZWFyY2hcbiAgICovXG4gIHNlYXJjaDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogZXZlbnQgdHJpZ2dlcmVkIGZvciBzZWFyY2hcbiAgICovXG4gIHNlYXJjaERpc21pc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGJhY2sgYnV0dG9uIGlzIGNsaWNrZWRcbiAgICovXG4gIGJhY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoYW5uZWxzJywgJ2ljb25QYWNrJywgJ3NlbGVjdGVkQ2hhbm5lbElkJywgJ3Nob3dSZWNlbnRNZXNzYWdlJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhbm5lbC1zZWxlY3Rvci11aScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhbm5lbHMnLCAnaWNvblBhY2snLCAnc2VsZWN0ZWRDaGFubmVsSWQnLCAnc2hvd1JlY2VudE1lc3NhZ2UnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhbm5lbFNlbGVjdG9yVWkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhbm5lbFNlbGVjdG9yVWlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjaGFubmVsQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhbm5lbFNlbGVjdG9yVWkgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGFubmVsU2VsZWN0b3JVaSB7XG4gIC8qKlxuICAgKiBPbiBjaGFubmVsIGNoYW5nZWRcbiAgICovXG4gIGNoYW5uZWxDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoYW5uZWxzJywgJ2Rpc2FibGVTZWFyY2gnLCAnaGlkZUF2YXRhcicsICdpY29uUGFjaycsICdzZWxlY3RlZENoYW5uZWxJZCcsICd0JywgJ3ZpZXdBcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGFubmVsLXNlbGVjdG9yLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoYW5uZWxzJywgJ2Rpc2FibGVTZWFyY2gnLCAnaGlkZUF2YXRhcicsICdpY29uUGFjaycsICdzZWxlY3RlZENoYW5uZWxJZCcsICd0JywgJ3ZpZXdBcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhbm5lbFNlbGVjdG9yVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDaGFubmVsU2VsZWN0b3JWaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2hhbm5lbENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgSWNvblBhY2sgYXMgSUR5dGVDaGFubmVsU2VsZWN0b3JWaWV3SWNvblBhY2sgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNoYW5uZWxTZWxlY3RvclZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDaGFubmVsU2VsZWN0b3JWaWV3IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBzZWxlY3RlZCBjaGFubmVsIGNoYW5nZXNcbiAgICovXG4gIGNoYW5uZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgYXZhdGFyVXJsPzogc3RyaW5nOyBpY29uPzoga2V5b2YgSUR5dGVDaGFubmVsU2VsZWN0b3JWaWV3SWNvblBhY2s7IGxhdGVzdE1lc3NhZ2U/OiBzdHJpbmc7IGxhdGVzdE1lc3NhZ2VUaW1lPzogRGF0ZTsgdW5yZWFkQ291bnQ/OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVQcml2YXRlQ2hhdCcsICdkaXNwbGF5RmlsdGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncHJpdmF0ZVByZXNldEZpbHRlcicsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVQcml2YXRlQ2hhdCcsICdkaXNwbGF5RmlsdGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncHJpdmF0ZVByZXNldEZpbHRlcicsICdzaXplJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ2hhdFN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXQge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FuU2VuZEZpbGVzJywgJ2NhblNlbmRUZXh0TWVzc2FnZScsICdjaGFubmVsSWQnLCAnZGlzYWJsZUVtb2ppUGlja2VyJywgJ2ljb25QYWNrJywgJ21lbWJlcnMnLCAncHJlZmlsbCcsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhdC1jb21wb3Nlci11aScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FuU2VuZEZpbGVzJywgJ2NhblNlbmRUZXh0TWVzc2FnZScsICdjaGFubmVsSWQnLCAnZGlzYWJsZUVtb2ppUGlja2VyJywgJ2ljb25QYWNrJywgJ21lbWJlcnMnLCAncHJlZmlsbCcsICdzaXplJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRDb21wb3NlclVpIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUNoYXRDb21wb3NlclVpRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZU5ld01lc3NhZ2UnLCAnZHl0ZUVkaXRNZXNzYWdlJywgJ2R5dGVFZGl0Q2FuY2VsbGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBEeXRlTmV3TWVzc2FnZUV2ZW50IGFzIElEeXRlQ2hhdENvbXBvc2VyVWlEeXRlTmV3TWVzc2FnZUV2ZW50IH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0Q29tcG9zZXJVaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRDb21wb3NlclVpIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBuZXcgbWVzc2FnZSBpcyBzdWJtaXR0ZWRcbiAgICovXG4gIGR5dGVOZXdNZXNzYWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0Q29tcG9zZXJVaUR5dGVOZXdNZXNzYWdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBtZXNzYWdlIGlzIGVkaXRlZFxuICAgKi9cbiAgZHl0ZUVkaXRNZXNzYWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNoYW5uZWxJZD86IHN0cmluZzsgfT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG1lc3NhZ2UgZWRpdGluZyBpcyBjYW5jZWxsZWRcbiAgICovXG4gIGR5dGVFZGl0Q2FuY2VsbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhblNlbmRGaWxlcycsICdjYW5TZW5kVGV4dE1lc3NhZ2UnLCAnZGlzYWJsZUVtb2ppUGlja2VyJywgJ2ljb25QYWNrJywgJ2lucHV0VGV4dFBsYWNlaG9sZGVyJywgJ2lzRWRpdGluZycsICdtYXhMZW5ndGgnLCAnbWVzc2FnZScsICdxdW90ZWRNZXNzYWdlJywgJ3JhdGVMaW1pdHMnLCAnc3RvcmFnZUtleScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtY29tcG9zZXItdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FuU2VuZEZpbGVzJywgJ2NhblNlbmRUZXh0TWVzc2FnZScsICdkaXNhYmxlRW1vamlQaWNrZXInLCAnaWNvblBhY2snLCAnaW5wdXRUZXh0UGxhY2Vob2xkZXInLCAnaXNFZGl0aW5nJywgJ21heExlbmd0aCcsICdtZXNzYWdlJywgJ3F1b3RlZE1lc3NhZ2UnLCAncmF0ZUxpbWl0cycsICdzdG9yYWdlS2V5JywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRDb21wb3NlclZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhdENvbXBvc2VyVmlld0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ25ld01lc3NhZ2UnLCAnZWRpdE1lc3NhZ2UnLCAnZWRpdENhbmNlbCcsICdxdW90ZWRNZXNzYWdlRGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTmV3TWVzc2FnZUV2ZW50IGFzIElEeXRlQ2hhdENvbXBvc2VyVmlld05ld01lc3NhZ2VFdmVudCB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ2hhdENvbXBvc2VyVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRDb21wb3NlclZpZXcge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG5ldyBtZXNzYWdlIGlzIHN1Ym1pdHRlZFxuICAgKi9cbiAgbmV3TWVzc2FnZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2hhdENvbXBvc2VyVmlld05ld01lc3NhZ2VFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG1lc3NhZ2UgaXMgZWRpdGVkXG4gICAqL1xuICBlZGl0TWVzc2FnZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIG1lc3NhZ2UgZWRpdGluZyBpcyBjYW5jZWxsZWRcbiAgICovXG4gIGVkaXRDYW5jZWw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gcXVvdGVkIG1lc3NhZ2UgaXMgZGlzbWlzc2VkXG4gICAqL1xuICBxdW90ZWRNZXNzYWdlRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxpZ25SaWdodCcsICdjYW5EZWxldGUnLCAnY2FuRWRpdCcsICdjYW5QaW4nLCAnY2FuUmVwbHknLCAnY2hpbGQnLCAnZGlzYWJsZUNvbnRyb2xzJywgJ2hpZGVBdmF0YXInLCAnaWNvblBhY2snLCAnaXNDb250aW51ZWQnLCAnaXNTZWxmJywgJ2lzVW5yZWFkJywgJ2xlZnRBbGlnbicsICdtZXNzYWdlJywgJ3NlbmRlckRpc3BsYXlQaWN0dXJlJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jaGF0LW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduUmlnaHQnLCAnY2FuRGVsZXRlJywgJ2NhbkVkaXQnLCAnY2FuUGluJywgJ2NhblJlcGx5JywgJ2NoaWxkJywgJ2Rpc2FibGVDb250cm9scycsICdoaWRlQXZhdGFyJywgJ2ljb25QYWNrJywgJ2lzQ29udGludWVkJywgJ2lzU2VsZicsICdpc1VucmVhZCcsICdsZWZ0QWxpZ24nLCAnbWVzc2FnZScsICdzZW5kZXJEaXNwbGF5UGljdHVyZScsICdzaXplJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUNoYXRNZXNzYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZWRpdCcsICdyZXBseScsICdwaW4nLCAnZGVsZXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIGFzIElEeXRlQ2hhdE1lc3NhZ2VNZXNzYWdlIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0TWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRNZXNzYWdlIHtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciB3aGVuIGVkaXQgaXMgY2xpY2tlZCBvbiBhIG1lc3NhZ2VcbiAgICovXG4gIGVkaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRNZXNzYWdlTWVzc2FnZT4+O1xuICAvKipcbiAgICogRXZlbnQgZm9yIHdoZW4gcmVwbHkgaXMgY2xpY2tlZCBvbiBhIG1lc3NhZ2VcbiAgICovXG4gIHJlcGx5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZU1lc3NhZ2U+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciB3aGVuIHBpbiBpcyBjbGlja2VkIG9uIGEgbWVzc2FnZVxuICAgKi9cbiAgcGluOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZU1lc3NhZ2U+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGZvciB3aGVuIGVkaXQgaXMgY2xpY2tlZCBvbiBhIG1lc3NhZ2VcbiAgICovXG4gIGRlbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2hhdE1lc3NhZ2VNZXNzYWdlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhblBpbk1lc3NhZ2VzJywgJ2ljb25QYWNrJywgJ21lc3NhZ2VzJywgJ3NlbGVjdGVkR3JvdXAnLCAnc2VsZlVzZXJJZCcsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY2hhdC1tZXNzYWdlcy11aScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FuUGluTWVzc2FnZXMnLCAnaWNvblBhY2snLCAnbWVzc2FnZXMnLCAnc2VsZWN0ZWRHcm91cCcsICdzZWxmVXNlcklkJywgJ3NpemUnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhdE1lc3NhZ2VzVWkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhdE1lc3NhZ2VzVWlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydwaW5NZXNzYWdlJywgJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgTWVzc2FnZSBhcyBJRHl0ZUNoYXRNZXNzYWdlc1VpTWVzc2FnZSB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUNoYXRNZXNzYWdlc1VpU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0TWVzc2FnZXNVaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRNZXNzYWdlc1VpIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIG1lc3NhZ2UgaXMgcGlubmVkIG9yIHVucGlubmVkXG4gICAqL1xuICBwaW5NZXNzYWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZXNVaU1lc3NhZ2U+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZXNVaVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdsZWZ0QWxpZ24nLCAnbWVldGluZycsICdzZWxlY3RlZENoYW5uZWwnLCAnc2VsZWN0ZWRDaGFubmVsSWQnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtbWVzc2FnZXMtdWktcGFnaW5hdGVkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdsZWZ0QWxpZ24nLCAnbWVldGluZycsICdzZWxlY3RlZENoYW5uZWwnLCAnc2VsZWN0ZWRDaGFubmVsSWQnLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDaGF0TWVzc2FnZXNVaVBhZ2luYXRlZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDaGF0TWVzc2FnZXNVaVBhZ2luYXRlZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2VkaXRNZXNzYWdlSW5pdCcsICdwaW5NZXNzYWdlJywgJ2RlbGV0ZU1lc3NhZ2UnLCAnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBUZXh0TWVzc2FnZSBhcyBJRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkVGV4dE1lc3NhZ2UgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIGFzIElEeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWRNZXNzYWdlIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWRTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWQge1xuICAvKipcbiAgICogRXZlbnQgZm9yIGVkaXRpbmcgYSBtZXNzYWdlXG4gICAqL1xuICBlZGl0TWVzc2FnZUluaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHBheWxvYWQ6IElEeXRlQ2hhdE1lc3NhZ2VzVWlQYWdpbmF0ZWRUZXh0TWVzc2FnZTsgZmxhZ3M6IHsgaXNSZXBseT86IGJvb2xlYW47IGlzRWRpdD86IGJvb2xlYW4gfTsgfT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgbWVzc2FnZSBpcyBwaW5uZWQgb3IgdW5waW5uZWRcbiAgICovXG4gIHBpbk1lc3NhZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNoYXRNZXNzYWdlc1VpUGFnaW5hdGVkTWVzc2FnZT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgbWVzc2FnZSBpcyBkZWxldGVkXG4gICAqL1xuICBkZWxldGVNZXNzYWdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZXNVaVBhZ2luYXRlZE1lc3NhZ2U+PjtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0TWVzc2FnZXNVaVBhZ2luYXRlZFN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFubmVsSWQnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdxdWVyeScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtc2VhcmNoLXJlc3VsdHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoYW5uZWxJZCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3F1ZXJ5JywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNoYXRTZWFyY2hSZXN1bHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUNoYXRTZWFyY2hSZXN1bHRzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNoYXRTZWFyY2hSZXN1bHRzIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhdFNlYXJjaFJlc3VsdHMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZ3JvdXBzJywgJ2ljb25QYWNrJywgJ3NlbGVjdGVkR3JvdXBJZCcsICdzZWxmVXNlcklkJywgJ3QnLCAndW5yZWFkQ291bnRzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtc2VsZWN0b3ItdWknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2dyb3VwcycsICdpY29uUGFjaycsICdzZWxlY3RlZEdyb3VwSWQnLCAnc2VsZlVzZXJJZCcsICd0JywgJ3VucmVhZENvdW50cyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhdFNlbGVjdG9yVWkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ2hhdFNlbGVjdG9yVWlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlQ2hhdEdyb3VwQ2hhbmdlZCddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ2hhdEdyb3VwQ2hhbmdlZFR5cGUgYXMgSUR5dGVDaGF0U2VsZWN0b3JVaUNoYXRHcm91cENoYW5nZWRUeXBlIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0U2VsZWN0b3JVaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNoYXRTZWxlY3RvclVpIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjaGF0IHNjb3BlIGlzIGNoYW5nZWRcbiAgICovXG4gIGR5dGVDaGF0R3JvdXBDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVDaGF0U2VsZWN0b3JVaUNoYXRHcm91cENoYW5nZWRUeXBlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNoYXQtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ2hhdFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDaGF0VG9nZ2xlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVDaGF0VG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDaGF0VG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ2hhdFRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlQ2hhdFRvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNsb2NrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDbG9jayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDbG9ja0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDbG9jayBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNsb2NrIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtY29uZmlybWF0aW9uLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDb25maXJtYXRpb25Nb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDb25maXJtYXRpb25Nb2RhbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlQ29uZmlybWF0aW9uTW9kYWxTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNvbmZpcm1hdGlvbk1vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ29uZmlybWF0aW9uTW9kYWwge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUNvbmZpcm1hdGlvbk1vZGFsU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlUmVuZGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWNvbnRyb2xiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlUmVuZGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVDb250cm9sYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUNvbnRyb2xiYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlQ29udHJvbGJhciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUNvbnRyb2xiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnJhbmRJY29uJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvblBhY2snLCAnaXNMb2FkaW5nJywgJ2xhYmVsJywgJ3Nob3dXYXJuaW5nJywgJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jb250cm9sYmFyLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnJhbmRJY29uJywgJ2Rpc2FibGVkJywgJ2ljb24nLCAnaWNvblBhY2snLCAnaXNMb2FkaW5nJywgJ2xhYmVsJywgJ3Nob3dXYXJuaW5nJywgJ3NpemUnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlQ29udHJvbGJhckJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVDb250cm9sYmFyQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUNvbnRyb2xiYXJCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVDb250cm9sYmFyQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21pblZhbHVlJywgJ3NpemUnLCAndCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1jb3VudGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtaW5WYWx1ZScsICdzaXplJywgJ3QnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUNvdW50ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlQ291bnRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3ZhbHVlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVDb3VudGVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlQ291bnRlciB7XG4gIC8qKlxuICAgKiBPbiBjaGFuZ2UgZXZlbnQgZW1pdHRlclxuICAgKi9cbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRlYnVnZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZURlYnVnZ2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZURlYnVnZ2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVEZWJ1Z2dlclN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRGVidWdnZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEZWJ1Z2dlciB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlRGVidWdnZXJTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRlYnVnZ2VyLWF1ZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZURlYnVnZ2VyQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlRGVidWdnZXJBdWRpb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVEZWJ1Z2dlckF1ZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRGVidWdnZXJBdWRpbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZGVidWdnZXItc2NyZWVuc2hhcmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRGVidWdnZXJTY3JlZW5zaGFyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVEZWJ1Z2dlclNjcmVlbnNoYXJlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURlYnVnZ2VyU2NyZWVuc2hhcmUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEZWJ1Z2dlclNjcmVlbnNoYXJlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kZWJ1Z2dlci1zeXN0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRGVidWdnZXJTeXN0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlRGVidWdnZXJTeXN0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRGVidWdnZXJTeXN0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEZWJ1Z2dlclN5c3RlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kZWJ1Z2dlci10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVEZWJ1Z2dlclRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVEZWJ1Z2dlclRvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlRGVidWdnZXJUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURlYnVnZ2VyVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRGVidWdnZXJUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZURlYnVnZ2VyVG9nZ2xlU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kZWJ1Z2dlci12aWRlbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVEZWJ1Z2dlclZpZGVvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZURlYnVnZ2VyVmlkZW9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRGVidWdnZXJWaWRlbyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZURlYnVnZ2VyVmlkZW8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVFc2NhcGVLZXknLCAnaGlkZUNsb3NlQnV0dG9uJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnb3BlbicsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVFc2NhcGVLZXknLCAnaGlkZUNsb3NlQnV0dG9uJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnb3BlbicsICdzaXplJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlRGlhbG9nRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZURpYWxvZ0Nsb3NlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEaWFsb2cge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGRpYWxvZyBpcyBjbG9zZWRcbiAgICovXG4gIGR5dGVEaWFsb2dDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWRpYWxvZy1tYW5hZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVEaWFsb2dNYW5hZ2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZURpYWxvZ01hbmFnZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZURpYWxvZ01hbmFnZXJTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZURpYWxvZ01hbmFnZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVEaWFsb2dNYW5hZ2VyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVEaWFsb2dNYW5hZ2VyU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F0dGFjaG1lbnQnLCAnaWNvblBhY2snLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1kcmFmdC1hdHRhY2htZW50LXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F0dGFjaG1lbnQnLCAnaWNvblBhY2snLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRHJhZnRBdHRhY2htZW50VmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVEcmFmdEF0dGFjaG1lbnRWaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZGVsZXRlQXR0YWNobWVudCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRHJhZnRBdHRhY2htZW50VmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZURyYWZ0QXR0YWNobWVudFZpZXcge1xuICAvKipcbiAgICogRXZlbnQgdHJpZ2dlcmVkIHdoZW4gdGhlIGF0dGFjaG1lbnQgaXMgZGVsZXRlZFxuICAgKi9cbiAgZGVsZXRlQXR0YWNobWVudDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmb2N1c1doZW5PcGVuZWQnLCAnaWNvblBhY2snLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1lbW9qaS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZvY3VzV2hlbk9wZW5lZCcsICdpY29uUGFjaycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVFbW9qaVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVFbW9qaVBpY2tlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3BpY2tlckNsb3NlJywgJ2R5dGVFbW9qaUNsaWNrZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUVtb2ppUGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlRW1vamlQaWNrZXIge1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHBpY2tlckNsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hpY2ggaXMgZW1pdHRlZCB3aGVuIGFuIEVtb2ppIGlzIGNsaWNrZWRcbiAgICovXG4gIGR5dGVFbW9qaUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnaXNBY3RpdmUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1lbW9qaS1waWNrZXItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0FjdGl2ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVFbW9qaVBpY2tlckJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVFbW9qaVBpY2tlckJ1dHRvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVFbW9qaVBpY2tlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUVtb2ppUGlja2VyQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZW5kZWQtc2NyZWVuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVFbmRlZFNjcmVlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVFbmRlZFNjcmVlbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVFbmRlZFNjcmVlbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUVuZGVkU2NyZWVuIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hvc3RFbCcsICdpY29uUGFjaycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWZpbGUtZHJvcHpvbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hvc3RFbCcsICdpY29uUGFjaycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVGaWxlRHJvcHpvbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlRmlsZURyb3B6b25lRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHJvcENhbGxiYWNrJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVGaWxlRHJvcHpvbmUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVGaWxlRHJvcHpvbmUge1xuICAvKipcbiAgICogZHJvcCBldmVudCBjYWxsYmFja1xuICAgKi9cbiAgZHJvcENhbGxiYWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8RHJhZ0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ2lzQ29udGludWVkJywgJ21lc3NhZ2UnLCAnbm93JywgJ3Nob3dCdWJibGUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1maWxlLW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ2lzQ29udGludWVkJywgJ21lc3NhZ2UnLCAnbm93JywgJ3Nob3dCdWJibGUnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRmlsZU1lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlRmlsZU1lc3NhZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRmlsZU1lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVGaWxlTWVzc2FnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICduYW1lJywgJ3NpemUnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWZpbGUtbWVzc2FnZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICduYW1lJywgJ3NpemUnLCAndXJsJ10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVGaWxlTWVzc2FnZVZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlRmlsZU1lc3NhZ2VWaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUZpbGVNZXNzYWdlVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUZpbGVNZXNzYWdlVmlldyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaWx0ZXInLCAnaWNvbicsICdpY29uUGFjaycsICdsYWJlbCcsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWZpbGUtcGlja2VyLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlsdGVyJywgJ2ljb24nLCAnaWNvblBhY2snLCAnbGFiZWwnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlRmlsZVBpY2tlckJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVGaWxlUGlja2VyQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZmlsZUNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlRmlsZVBpY2tlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUZpbGVQaWNrZXJCdXR0b24ge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBhIGZpbGUgaXMgc2VsZWN0ZWQgZm9yIHVwbG9hZFxuICAgKi9cbiAgZmlsZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZpbGU+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd0YXJnZXRFbGVtZW50JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZnVsbHNjcmVlbi10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndGFyZ2V0RWxlbWVudCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVGdWxsc2NyZWVuVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUZ1bGxzY3JlZW5Ub2dnbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUZ1bGxzY3JlZW5Ub2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUZ1bGxzY3JlZW5Ub2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVGdWxsc2NyZWVuVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVGdWxsc2NyZWVuVG9nZ2xlU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FzcGVjdFJhdGlvJywgJ2NvbmZpZycsICdnYXAnLCAnZ3JpZFNpemUnLCAnaWNvblBhY2snLCAnbGF5b3V0JywgJ21lZXRpbmcnLCAnb3ZlcnJpZGVzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdncmlkU2l6ZScsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdvdmVycmlkZXMnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlR3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVHcmlkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVHcmlkU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlR3JpZCB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlR3JpZFN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1ncmlkLXBhZ2luYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVHcmlkUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVHcmlkUGFnaW5hdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVHcmlkUGFnaW5hdGlvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUdyaWRQYWdpbmF0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkaXNhYmxlUmVuZGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2Rpc2FibGVSZW5kZXInLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVIZWFkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSGVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb24nLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb24nLCAnc2l6ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUljb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSWNvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1pZGxlLXNjcmVlbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSWRsZVNjcmVlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVJZGxlU2NyZWVuRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUlkbGVTY3JlZW4gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVJZGxlU2NyZWVuIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ2lzQ29udGludWVkJywgJ21lc3NhZ2UnLCAnbm93JywgJ3Nob3dCdWJibGUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1pbWFnZS1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdtZXNzYWdlJywgJ25vdycsICdzaG93QnViYmxlJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUltYWdlTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVJbWFnZU1lc3NhZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUltYWdlTWVzc2FnZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSW1hZ2VNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSW1hZ2VNZXNzYWdlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVJbWFnZU1lc3NhZ2VTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAndCcsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaW1hZ2UtbWVzc2FnZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICd0JywgJ3VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlSW1hZ2VNZXNzYWdlVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVJbWFnZU1lc3NhZ2VWaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsncHJldmlldyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSW1hZ2VNZXNzYWdlVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUltYWdlTWVzc2FnZVZpZXcge1xuICAvKipcbiAgICogcHJldmlldyBldmVudFxuICAgKi9cbiAgcHJldmlldzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdpbWFnZScsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaW1hZ2Utdmlld2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdpbWFnZScsICdzaXplJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUltYWdlVmlld2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUltYWdlVmlld2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnY2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUltYWdlVmlld2VyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSW1hZ2VWaWV3ZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHZpZXdlciBzaG91bGQgYmUgY2xvc2VkXG4gICAqL1xuICBjbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtaW5mb3JtYXRpb24tdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUluZm9ybWF0aW9uVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVJbmZvcm1hdGlvblRvb2x0aXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlSW5mb3JtYXRpb25Ub29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlSW5mb3JtYXRpb25Ub29sdGlwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdkYXRhQ29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1qb2luLXN0YWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnZGF0YUNvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUpvaW5TdGFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVKb2luU3RhZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnLCAnZHl0ZUpvaW5TdGFnZScsICdkeXRlTGVhdmVTdGFnZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlSm9pblN0YWdlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVKb2luU3RhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVKb2luU3RhZ2Uge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUpvaW5TdGFnZVN0YXRlcz4+O1xuICAvKipcbiAgICogRXZlbnQgd2hpY2ggaXMgZW1pdHRlZCB3aGVuIHVzZXIgY29uZmlybXMgam9pbmluZyBzdGFnZVxuICAgKi9cbiAgZHl0ZUpvaW5TdGFnZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiB1c2VyIGNhbmNlbCBqb2luaW5nIHN0YWdlXG4gICAqL1xuICBkeXRlTGVhdmVTdGFnZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbGVhdmUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTGVhdmVCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlTGVhdmVCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUxlYXZlQnV0dG9uU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVMZWF2ZUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxlYXZlQnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVMZWF2ZUJ1dHRvblN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWxlYXZlLW1lZXRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZUxlYXZlTWVldGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVMZWF2ZU1lZXRpbmdFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZUxlYXZlTWVldGluZ1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTGVhdmVNZWV0aW5nIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTGVhdmVNZWV0aW5nIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVMZWF2ZU1lZXRpbmdTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbGl2ZXN0cmVhbS1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVMaXZlc3RyZWFtSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUxpdmVzdHJlYW1JbmRpY2F0b3JFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTGl2ZXN0cmVhbUluZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxpdmVzdHJlYW1JbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbGl2ZXN0cmVhbS1wbGF5ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVMaXZlc3RyZWFtUGxheWVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZUxpdmVzdHJlYW1QbGF5ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlQVBJRXJyb3InXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUxpdmVzdHJlYW1QbGF5ZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVMaXZlc3RyZWFtUGxheWVyIHtcbiAgLyoqXG4gICAqIEVtaXQgQVBJIGVycm9yIGV2ZW50c1xuICAgKi9cbiAgZHl0ZUFQSUVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0cmFjZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1saXZlc3RyZWFtLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTGl2ZXN0cmVhbVRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVMaXZlc3RyZWFtVG9nZ2xlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJywgJ2R5dGVBUElFcnJvciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlTGl2ZXN0cmVhbVRvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTGl2ZXN0cmVhbVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZUxpdmVzdHJlYW1Ub2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZUxpdmVzdHJlYW1Ub2dnbGVTdGF0ZXM+PjtcbiAgLyoqXG4gICAqIEVtaXQgQVBJIGVycm9yIGV2ZW50c1xuICAgKi9cbiAgZHl0ZUFQSUVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0cmFjZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2xvZ29VcmwnLCAnbWVldGluZycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLWxvZ28nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdsb2dvVXJsJywgJ21lZXRpbmcnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTG9nbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVMb2dvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZUxvZ28gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVMb2dvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21heExlbmd0aCcsICd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1hcmtkb3duLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21heExlbmd0aCcsICd0ZXh0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNYXJrZG93blZpZXcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlTWFya2Rvd25WaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU1hcmtkb3duVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1hcmtkb3duVmlldyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBseURlc2lnblN5c3RlbScsICdjb25maWcnLCAnZ3JpZExheW91dCcsICdpY29uUGFjaycsICdsZWF2ZU9uVW5tb3VudCcsICdsb2FkQ29uZmlnRnJvbVByZXNldCcsICdtZWV0aW5nJywgJ21vZGUnLCAnc2hvd1NldHVwU2NyZWVuJywgJ3NpemUnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tZWV0aW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBseURlc2lnblN5c3RlbScsICdjb25maWcnLCAnZ3JpZExheW91dCcsICdpY29uUGFjaycsICdsZWF2ZU9uVW5tb3VudCcsICdsb2FkQ29uZmlnRnJvbVByZXNldCcsICdtZWV0aW5nJywgJ21vZGUnLCAnc2hvd1NldHVwU2NyZWVuJywgJ3NpemUnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTWVldGluZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNZWV0aW5nRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlc1VwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlTWVldGluZ1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVldGluZyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lZXRpbmcge1xuICAvKipcbiAgICogU3RhdGVzXG4gICAqL1xuICBkeXRlU3RhdGVzVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVNZWV0aW5nU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tZWV0aW5nLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1lZXRpbmdUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNZWV0aW5nVGl0bGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVldGluZ1RpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWVldGluZ1RpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ29mZnNldCcsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZU1lbnVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVudSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNZW51SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lbnVJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWVudS1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVNZW51TGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNZW51TGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNZW51TGlzdCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lbnVMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2VzdGltYXRlSXRlbVNpemUnLCAnaWNvblBhY2snLCAnbG9hZE1vcmUnLCAnbWVzc2FnZXMnLCAncmVuZGVyZXInLCAndmlzaWJsZUl0ZW1zQ291bnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWVzc2FnZS1saXN0LXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2VzdGltYXRlSXRlbVNpemUnLCAnaWNvblBhY2snLCAnbG9hZE1vcmUnLCAnbWVzc2FnZXMnLCAncmVuZGVyZXInLCAndmlzaWJsZUl0ZW1zQ291bnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1lc3NhZ2VMaXN0VmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNZXNzYWdlTGlzdFZpZXdFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWVzc2FnZUxpc3RWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWVzc2FnZUxpc3RWaWV3IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYXV0aG9yTmFtZScsICdhdmF0YXJVcmwnLCAnaGlkZUF1dGhvck5hbWUnLCAnaGlkZUF2YXRhcicsICdoaWRlTWV0YWRhdGEnLCAnaWNvblBhY2snLCAndGltZScsICd2YXJpYW50JywgJ3ZpZXdUeXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1lc3NhZ2UtdmlldycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhdXRob3JOYW1lJywgJ2F2YXRhclVybCcsICdoaWRlQXV0aG9yTmFtZScsICdoaWRlQXZhdGFyJywgJ2hpZGVNZXRhZGF0YScsICdpY29uUGFjaycsICd0aW1lJywgJ3ZhcmlhbnQnLCAndmlld1R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1lc3NhZ2VWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZU1lc3NhZ2VWaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnYWN0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNZXNzYWdlVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU1lc3NhZ2VWaWV3IHtcbiAgLyoqXG4gICAqIGFjdGlvbiBldmVudFxuICAgKi9cbiAgYWN0aW9uOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWljLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTWljVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZU1pY1RvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlTWljVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNaWNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNaWNUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZU1pY1RvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW1pY3JvcGhvbmUtc2VsZWN0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU1pY3JvcGhvbmVTZWxlY3RvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNaWNyb3Bob25lU2VsZWN0b3JFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlTWljcm9waG9uZVNlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTWljcm9waG9uZVNlbGVjdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FzcGVjdFJhdGlvJywgJ2NvbmZpZycsICdnYXAnLCAnZ3JpZFNpemUnLCAnaWNvblBhY2snLCAnbGF5b3V0JywgJ21lZXRpbmcnLCAncGFydGljaXBhbnRzJywgJ3Bpbm5lZFBhcnRpY2lwYW50cycsICdwbHVnaW5zJywgJ3NjcmVlblNoYXJlUGFydGljaXBhbnRzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbWl4ZWQtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdncmlkU2l6ZScsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudHMnLCAncGlubmVkUGFydGljaXBhbnRzJywgJ3BsdWdpbnMnLCAnc2NyZWVuU2hhcmVQYXJ0aWNpcGFudHMnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTWl4ZWRHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZU1peGVkR3JpZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNaXhlZEdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVNaXhlZEdyaWQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1tb3JlLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTW9yZVRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNb3JlVG9nZ2xlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVNb3JlVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNb3JlVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTW9yZVRvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlTW9yZVRvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW11dGUtYWxsLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTXV0ZUFsbEJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNdXRlQWxsQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVNdXRlQWxsQnV0dG9uU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNdXRlQWxsQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTXV0ZUFsbEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlTXV0ZUFsbEJ1dHRvblN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW11dGUtYWxsLWNvbmZpcm1hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTXV0ZUFsbENvbmZpcm1hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVNdXRlQWxsQ29uZmlybWF0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVNdXRlQWxsQ29uZmlybWF0aW9uU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVNdXRlQWxsQ29uZmlybWF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTXV0ZUFsbENvbmZpcm1hdGlvbiB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlTXV0ZUFsbENvbmZpcm1hdGlvblN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdpc1NjcmVlblNoYXJlJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbmFtZS10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTmFtZVRhZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVOYW1lVGFnRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU5hbWVUYWcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVOYW1lVGFnIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ2lzU2NyZWVuU2hhcmUnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudCcsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW5ldHdvcmstaW5kaWNhdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdpc1NjcmVlblNoYXJlJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnQnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlTmV0d29ya0luZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVOZXR3b3JrSW5kaWNhdG9yRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU5ldHdvcmtJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVOZXR3b3JrSW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ25vdGlmaWNhdGlvbicsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtbm90aWZpY2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdub3RpZmljYXRpb24nLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVOb3RpZmljYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlTm90aWZpY2F0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZU5vdGlmaWNhdGlvbkRpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZU5vdGlmaWNhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZU5vdGlmaWNhdGlvbiB7XG4gIC8qKlxuICAgKiBEaXNtaXNzIGV2ZW50XG4gICAqL1xuICBkeXRlTm90aWZpY2F0aW9uRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW5vdGlmaWNhdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU5vdGlmaWNhdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlTm90aWZpY2F0aW9uc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVOb3RpZmljYXRpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlTm90aWZpY2F0aW9ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLW92ZXJsYXktbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZU92ZXJsYXlNb2RhbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVPdmVybGF5TW9kYWxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZU92ZXJsYXlNb2RhbFN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlT3ZlcmxheU1vZGFsIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlT3ZlcmxheU1vZGFsIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVPdmVybGF5TW9kYWxTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b1Njcm9sbCcsICdjcmVhdGVOb2RlcycsICdlbXB0eUxpc3RMYWJlbCcsICdmZXRjaERhdGEnLCAnaWNvblBhY2snLCAncGFnZVNpemUnLCAncGFnZXNBbGxvd2VkJywgJ3NlbGVjdGVkSXRlbUlkJywgJ3QnXSxcbiAgbWV0aG9kczogWydvbk5ld05vZGUnLCAnb25Ob2RlRGVsZXRlJywgJ29uTm9kZVVwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYWdpbmF0ZWQtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b1Njcm9sbCcsICdjcmVhdGVOb2RlcycsICdlbXB0eUxpc3RMYWJlbCcsICdmZXRjaERhdGEnLCAnaWNvblBhY2snLCAncGFnZVNpemUnLCAncGFnZXNBbGxvd2VkJywgJ3NlbGVjdGVkSXRlbUlkJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhZ2luYXRlZExpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUGFnaW5hdGVkTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYWdpbmF0ZWRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGFnaW5hdGVkTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdwYXJ0aWNpcGFudCcsICdzdGF0ZXMnLCAndCcsICd2aWV3J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdwYXJ0aWNpcGFudCcsICdzdGF0ZXMnLCAndCcsICd2aWV3J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQYXJ0aWNpcGFudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQYXJ0aWNpcGFudEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTZW5kTm90aWZpY2F0aW9uJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50IHtcbiAgLyoqXG4gICAqIEVtaXQgZHl0ZSBub3RpZmljYXRpb25zXG4gICAqL1xuICBkeXRlU2VuZE5vdGlmaWNhdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdHJhY2U6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50LWNvdW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRDb3VudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQYXJ0aWNpcGFudENvdW50RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhcnRpY2lwYW50Q291bnQgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudENvdW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdpc1ByZXZpZXcnLCAnbmFtZVRhZ1Bvc2l0aW9uJywgJ3BhcnRpY2lwYW50JywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYXJ0aWNpcGFudC1zZXR1cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ2lzUHJldmlldycsICduYW1lVGFnUG9zaXRpb24nLCAncGFydGljaXBhbnQnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQYXJ0aWNpcGFudFNldHVwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVBhcnRpY2lwYW50U2V0dXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRTZXR1cCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50U2V0dXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ2lzUHJldmlldycsICdtZWV0aW5nJywgJ25hbWVUYWdQb3NpdGlvbicsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnQtdGlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ2lzUHJldmlldycsICdtZWV0aW5nJywgJ25hbWVUYWdQb3NpdGlvbicsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhcnRpY2lwYW50VGlsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQYXJ0aWNpcGFudFRpbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0aWxlTG9hZCcsICd0aWxlVW5sb2FkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBQZWVyIGFzIElEeXRlUGFydGljaXBhbnRUaWxlUGVlciB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGFydGljaXBhbnRUaWxlIHtcbiAgLyoqXG4gICAqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRpbGUgaXMgbG9hZGVkXG4gICAqL1xuICB0aWxlTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcGFydGljaXBhbnQ6IElEeXRlUGFydGljaXBhbnRUaWxlUGVlcjsgdmlkZW9FbGVtZW50OiBIVE1MVmlkZW9FbGVtZW50IH0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHRpbGUgaXMgdW5sb2FkZWRcbiAgICovXG4gIHRpbGVVbmxvYWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBhcnRpY2lwYW50VGlsZVBlZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2RlZmF1bHRQYXJ0aWNpcGFudHNUYWJJZCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnZGVmYXVsdFBhcnRpY2lwYW50c1RhYklkJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVBhcnRpY2lwYW50c0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlUGFydGljaXBhbnRzU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudHMgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHMge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBhcnRpY2lwYW50c1N0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3ByZWxvYWRlZEF1ZGlvRWxlbScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50cy1hdWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdwcmVsb2FkZWRBdWRpb0VsZW0nLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRzQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUGFydGljaXBhbnRzQXVkaW9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkaWFsb2dDbG9zZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRzQXVkaW8gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNBdWRpbyB7XG4gIC8qKlxuICAgKiBDYWxsYmFjayB0byBleGVjdXRlIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWRcbiAgICovXG4gIGRpYWxvZ0Nsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaGlkZUhlYWRlcicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NlYXJjaCcsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnRzLXN0YWdlLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdoaWRlSGVhZGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2VhcmNoJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmlldyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRzU3RhZ2VMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVBhcnRpY2lwYW50c1N0YWdlTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudHNTdGFnZUxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNTdGFnZUxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcGFydGljaXBhbnRzLXN0YWdlLXF1ZXVlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmlldyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRzU3RhZ2VRdWV1ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQYXJ0aWNpcGFudHNTdGFnZVF1ZXVlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhcnRpY2lwYW50c1N0YWdlUXVldWUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNTdGFnZVF1ZXVlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50cy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQYXJ0aWNpcGFudHNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUGFydGljaXBhbnRzVG9nZ2xlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVQYXJ0aWNpcGFudHNUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBhcnRpY2lwYW50c1RvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBhcnRpY2lwYW50c1RvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlUGFydGljaXBhbnRzVG9nZ2xlU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdoaWRlSGVhZGVyJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2VhcmNoJywgJ3NpemUnLCAndCcsICd2aWV3J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBhcnRpY2lwYW50cy12aWV3ZXItbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2hpZGVIZWFkZXInLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzZWFyY2gnLCAnc2l6ZScsICd0JywgJ3ZpZXcnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBhcnRpY2lwYW50c1ZpZXdlckxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUGFydGljaXBhbnRzVmlld2VyTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQYXJ0aWNpcGFudHNWaWV3ZXJMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGFydGljaXBhbnRzVmlld2VyTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmlldyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wYXJ0aWNpcGFudHMtd2FpdGluZy1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnLCAndmlldyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGFydGljaXBhbnRzV2FpdGluZ0xpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUGFydGljaXBhbnRzV2FpdGluZ0xpc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGFydGljaXBhbnRzV2FpdGluZ0xpc3QgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQYXJ0aWNpcGFudHNXYWl0aW5nTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBlcm1pc3Npb25zLW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBlcm1pc3Npb25zTWVzc2FnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQZXJtaXNzaW9uc01lc3NhZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVBlcm1pc3Npb25zTWVzc2FnZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGVybWlzc2lvbnNNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGVybWlzc2lvbnNNZXNzYWdlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVQZXJtaXNzaW9uc01lc3NhZ2VTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBpcC10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGlwVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVBpcFRvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlUGlwVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQaXBUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQaXBUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBpcFRvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3BsdWdpbicsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBsdWdpbi1tYWluJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3BsdWdpbicsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQbHVnaW5NYWluIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVBsdWdpbk1haW5FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGx1Z2luTWFpbiBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBsdWdpbk1haW4ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXBsdWdpbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUGx1Z2lucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQbHVnaW5zRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVQbHVnaW5zU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQbHVnaW5zIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUGx1Z2lucyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlUGx1Z2luc1N0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wbHVnaW5zLXRvZ2dsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBsdWdpbnNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUGx1Z2luc1RvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlUGx1Z2luc1RvZ2dsZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUGx1Z2luc1RvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBsdWdpbnNUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBsdWdpbnNUb2dnbGVTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAncGVybWlzc2lvbnMnLCAncG9sbCcsICdzZWxmJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcG9sbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAncGVybWlzc2lvbnMnLCAncG9sbCcsICdzZWxmJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVBvbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUG9sbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVWb3RlUG9sbCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUG9sbCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBvbGwge1xuICAvKipcbiAgICogRXZlbnQgd2hpY2ggaXMgZW1pdHRlZCB3aGVuIGEgcG9sbCBpcyB2b3RlZCBvblxuICAgKi9cbiAgZHl0ZVZvdGVQb2xsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpZDogc3RyaW5nOyBpbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcG9sbC1mb3JtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQb2xsRm9ybSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQb2xsRm9ybUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVDcmVhdGVQb2xsJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBQb2xsT2JqZWN0IGFzIElEeXRlUG9sbEZvcm1Qb2xsT2JqZWN0IH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVQb2xsRm9ybSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVBvbGxGb3JtIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgd2hlbiBhIHBvbGwgaXMgY3JlYXRlZFxuICAgKi9cbiAgZHl0ZUNyZWF0ZVBvbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBvbGxGb3JtUG9sbE9iamVjdD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb25maWcnLCAnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtcG9sbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlUG9sbHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUG9sbHNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlUG9sbHMgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVQb2xscyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1wb2xscy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVQb2xsc1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVQb2xsc1RvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlUG9sbHNUb2dnbGVTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVBvbGxzVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlUG9sbHNUb2dnbGUge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVBvbGxzVG9nZ2xlU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXJlY29yZGluZy1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVSZWNvcmRpbmdJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlUmVjb3JkaW5nSW5kaWNhdG9yRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVJlY29yZGluZ0luZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVJlY29yZGluZ0luZGljYXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXJlY29yZGluZy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICd0JywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVJlY29yZGluZ1RvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVSZWNvcmRpbmdUb2dnbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlQVBJRXJyb3InXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVJlY29yZGluZ1RvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVJlY29yZGluZ1RvZ2dsZSB7XG4gIC8qKlxuICAgKiBFbWl0IGFwaSBlcnJvciBldmVudHNcbiAgICovXG4gIGR5dGVBUElFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdHJhY2U6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXNjcmVlbi1zaGFyZS10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTY3JlZW5TaGFyZVRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVTY3JlZW5TaGFyZVRvZ2dsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZScsICdkeXRlQVBJRXJyb3InXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNjcmVlblNoYXJlVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTY3JlZW5TaGFyZVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNjcmVlblNoYXJlVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTY3JlZW5TaGFyZVRvZ2dsZVN0YXRlcz4+O1xuICAvKipcbiAgICogRW1pdCBhcGkgZXJyb3IgZXZlbnRzXG4gICAqL1xuICBkeXRlQVBJRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRyYWNlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlRnVsbFNjcmVlbkJ1dHRvbicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ25hbWVUYWdQb3NpdGlvbicsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zY3JlZW5zaGFyZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlRnVsbFNjcmVlbkJ1dHRvbicsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ25hbWVUYWdQb3NpdGlvbicsICdwYXJ0aWNpcGFudCcsICdzaXplJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2NyZWVuc2hhcmVWaWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNjcmVlbnNoYXJlVmlld0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZScsICdzY3JlZW5zaGFyZVBsYXknXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNjcmVlbnNoYXJlVmlld1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5pbXBvcnQgdHlwZSB7IFBlZXIgYXMgSUR5dGVTY3JlZW5zaGFyZVZpZXdQZWVyIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTY3JlZW5zaGFyZVZpZXcgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTY3JlZW5zaGFyZVZpZXcge1xuICAvKipcbiAgICogRW1pdHMgdXBkYXRlZCBzdGF0ZSBkYXRhXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVNjcmVlbnNoYXJlVmlld1N0YXRlcz4+O1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB2aWRlbyBwbGF5YmFjayBoYXBwZW5zIHN1Y2Nlc3NmdWxseVxuICAgKi9cbiAgc2NyZWVuc2hhcmVQbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBwYXJ0aWNpcGFudDogSUR5dGVTY3JlZW5zaGFyZVZpZXdQZWVyOyBzY3JlZW5zaGFyZVBhcnRpY2lwYW50OiBJRHl0ZVNjcmVlbnNoYXJlVmlld1BlZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXNldHRpbmdzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNldHRpbmdzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNldHRpbmdzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVTZXR0aW5nc1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU2V0dGluZ3MgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU2V0dGluZ3NTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXNldHRpbmdzLWF1ZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNldHRpbmdzQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlU2V0dGluZ3NBdWRpb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZVVwZGF0ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3RhdGVzIGFzIElEeXRlU2V0dGluZ3NBdWRpb1N0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU2V0dGluZ3NBdWRpbyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNldHRpbmdzQXVkaW8ge1xuICAvKipcbiAgICogRXZlbnQgdXBkYXRlZCBzdGF0ZVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTZXR0aW5nc0F1ZGlvU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zZXR0aW5ncy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2V0dGluZ3NUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlU2V0dGluZ3NUb2dnbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNldHRpbmdzVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTZXR0aW5nc1RvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNldHRpbmdzVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTZXR0aW5nc1RvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2V0dGluZ3MtdmlkZW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2V0dGluZ3NWaWRlbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVTZXR0aW5nc1ZpZGVvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVTZXR0aW5nc1ZpZGVvU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTZXR0aW5nc1ZpZGVvIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlU2V0dGluZ3NWaWRlbyB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlXG4gICAqL1xuICBkeXRlU3RhdGVVcGRhdGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVNldHRpbmdzVmlkZW9TdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zZXR1cC1zY3JlZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNldHVwU2NyZWVuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNldHVwU2NyZWVuRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVTZXR1cFNjcmVlblN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU2V0dXBTY3JlZW4gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTZXR1cFNjcmVlbiB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU2V0dXBTY3JlZW5TdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2RlZmF1bHRTZWN0aW9uJywgJ2VuYWJsZWRTZWN0aW9ucycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmlldyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zaWRlYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb25maWcnLCAnZGVmYXVsdFNlY3Rpb24nLCAnZW5hYmxlZFNlY3Rpb25zJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAnc2l6ZScsICdzdGF0ZXMnLCAndCcsICd2aWV3J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTaWRlYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNpZGViYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVNpZGViYXJTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVNpZGViYXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTaWRlYmFyIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTaWRlYmFyU3RhdGVzPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnJlbnRUYWInLCAnaGlkZUNsb3NlQWN0aW9uJywgJ2hpZGVIZWFkZXInLCAnaWNvblBhY2snLCAndCcsICd0YWJzJywgJ3ZpZXcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc2lkZWJhci11aScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VycmVudFRhYicsICdoaWRlQ2xvc2VBY3Rpb24nLCAnaGlkZUhlYWRlcicsICdpY29uUGFjaycsICd0JywgJ3RhYnMnLCAndmlldyddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU2lkZWJhclVpIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNpZGViYXJVaUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3RhYkNoYW5nZScsICdzaWRlYmFyQ2xvc2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVNpZGViYXJVaSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNpZGViYXJVaSB7XG4gIC8qKlxuICAgKiBUYWIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICB0YWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+PjtcbiAgLyoqXG4gICAqIFRhYiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHNpZGViYXJDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ3BhcnRpY2lwYW50cycsICdzaXplJywgJ3N0YXRlcycsICd0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXNpbXBsZS1ncmlkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3BlY3RSYXRpbycsICdjb25maWcnLCAnZ2FwJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAncGFydGljaXBhbnRzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNpbXBsZUdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlU2ltcGxlR3JpZEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTaW1wbGVHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlU2ltcGxlR3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zcGVha2VyLXNlbGVjdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU3BlYWtlclNlbGVjdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNwZWFrZXJTZWxlY3RvckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTcGVha2VyU2VsZWN0b3IgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTcGVha2VyU2VsZWN0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTcGlubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNwaW5uZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNwaW5uZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXNwZWN0UmF0aW8nLCAnY29uZmlnJywgJ2dhcCcsICdncmlkU2l6ZScsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdwYXJ0aWNpcGFudHMnLCAncGlubmVkUGFydGljaXBhbnRzJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3BvdGxpZ2h0LWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FzcGVjdFJhdGlvJywgJ2NvbmZpZycsICdnYXAnLCAnZ3JpZFNpemUnLCAnaWNvblBhY2snLCAnbGF5b3V0JywgJ21lZXRpbmcnLCAncGFydGljaXBhbnRzJywgJ3Bpbm5lZFBhcnRpY2lwYW50cycsICdzaXplJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVTcG90bGlnaHRHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVNwb3RsaWdodEdyaWRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3BvdGxpZ2h0R3JpZCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVNwb3RsaWdodEdyaWQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3BvdGxpZ2h0LWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVNwb3RsaWdodEluZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVTcG90bGlnaHRJbmRpY2F0b3JFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3BvdGxpZ2h0SW5kaWNhdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlU3BvdGxpZ2h0SW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3RhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVN0YWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVN0YWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZHl0ZVN0YXRlVXBkYXRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdGF0ZXMgYXMgSUR5dGVTdGFnZVN0YXRlcyB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlU3RhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTdGFnZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB1cGRhdGVkIHN0YXRlIGRhdGFcbiAgICovXG4gIGR5dGVTdGF0ZVVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlU3RhZ2VTdGF0ZXM+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvblBhY2snLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3RhZ2UtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3NpemUnLCAnc3RhdGVzJywgJ3QnLCAndmFyaWFudCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlU3RhZ2VUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlU3RhZ2VUb2dnbGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlU3RhdGVVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVN0YWdlVG9nZ2xlU3RhdGVzIH0gZnJvbSAnQGR5dGVzZGsvdWkta2l0JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTdGFnZVRvZ2dsZSBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVN0YWdlVG9nZ2xlIHtcbiAgLyoqXG4gICAqIEVtaXRzIHVwZGF0ZWQgc3RhdGUgZGF0YVxuICAgKi9cbiAgZHl0ZVN0YXRlVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUR5dGVTdGFnZVRvZ2dsZVN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ3JlYWRvbmx5JywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ljb25QYWNrJywgJ3JlYWRvbmx5JywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVN3aXRjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVTd2l0Y2hFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlQ2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVTd2l0Y2ggZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVTd2l0Y2gge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBzd2l0Y2ggdmFsdWUgaXMgY2hhbmdlZFxuICAgKi9cbiAgZHl0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlVGFiJywgJ2NvbmZpZycsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3RhYnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdGFiLWJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlVGFiJywgJ2NvbmZpZycsICdpY29uUGFjaycsICdsYXlvdXQnLCAnbWVldGluZycsICdzaXplJywgJ3N0YXRlcycsICd0JywgJ3RhYnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVRhYkJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVUYWJCYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0YWJDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFRhYiBhcyBJRHl0ZVRhYkJhclRhYiB9IGZyb20gJ0BkeXRlc2RrL3VpLWtpdCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlVGFiQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlVGFiQmFyIHtcbiAgLyoqXG4gICAqIFNldCBhY3RpdmUgdGFiXG4gICAqL1xuICB0YWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJRHl0ZVRhYkJhclRhYj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uUGFjaycsICdrZXlEb3duSGFuZGxlcicsICdtYXhMZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmF0ZUxpbWl0QnJlYWNoZWQnLCAndCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldFRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdGV4dC1jb21wb3Nlci12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdpY29uUGFjaycsICdrZXlEb3duSGFuZGxlcicsICdtYXhMZW5ndGgnLCAncGxhY2Vob2xkZXInLCAncmF0ZUxpbWl0QnJlYWNoZWQnLCAndCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlVGV4dENvbXBvc2VyVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVUZXh0Q29tcG9zZXJWaWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGV4dENoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlVGV4dENvbXBvc2VyVmlldyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRleHRDb21wb3NlclZpZXcge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRleHQgY2hhbmdlc1xuICAgKi9cbiAgdGV4dENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdtZXNzYWdlJywgJ25vdycsICdzaG93QnViYmxlJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdGV4dC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpY29uUGFjaycsICdpc0NvbnRpbnVlZCcsICdtZXNzYWdlJywgJ25vdycsICdzaG93QnViYmxlJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVRleHRNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVRleHRNZXNzYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVRleHRNZXNzYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlVGV4dE1lc3NhZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXNNYXJrZG93bicsICd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXRleHQtbWVzc2FnZS12aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpc01hcmtkb3duJywgJ3RleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVRleHRNZXNzYWdlVmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVUZXh0TWVzc2FnZVZpZXdFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlVGV4dE1lc3NhZ2VWaWV3IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlVGV4dE1lc3NhZ2VWaWV3IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlbGF5JywgJ2Rpc2FibGVkJywgJ2tpbmQnLCAnbGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeXRlLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlbGF5JywgJ2Rpc2FibGVkJywgJ2tpbmQnLCAnbGFiZWwnLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVRvb2x0aXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydkeXRlT3BlbkNoYW5nZSddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRvb2x0aXAge1xuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgb3BlbiBzdGF0ZSBvZiB0aGUgdG9vbHRpcCBjaGFuZ2VzLlxuICAgKi9cbiAgZHl0ZU9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3QnLCAndHJhbnNjcmlwdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS10cmFuc2NyaXB0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0JywgJ3RyYW5zY3JpcHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVRyYW5zY3JpcHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlVHJhbnNjcmlwdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVUcmFuc2NyaXB0RGlzbWlzcyddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEeXRlVHJhbnNjcmlwdCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRyYW5zY3JpcHQge1xuICAvKipcbiAgICogRGlzbWlzcyBldmVudFxuICAgKi9cbiAgZHl0ZVRyYW5zY3JpcHREaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBpZDogc3RyaW5nOyByZW5kZXJlZElkOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ21lZXRpbmcnLCAnc3RhdGVzJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdHJhbnNjcmlwdHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdtZWV0aW5nJywgJ3N0YXRlcycsICd0J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVUcmFuc2NyaXB0cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVUcmFuc2NyaXB0c0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVUcmFuc2NyaXB0cyBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVRyYW5zY3JpcHRzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ25vUmVuZGVyVW50aWxNZWV0aW5nJywgJ3Nob3dTZXR1cFNjcmVlbicsICdzaXplJywgJ3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2R5dGUtdWktcHJvdmlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbmZpZycsICdpY29uUGFjaycsICdtZWV0aW5nJywgJ25vUmVuZGVyVW50aWxNZWV0aW5nJywgJ3Nob3dTZXR1cFNjcmVlbicsICdzaXplJywgJ3QnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVVpUHJvdmlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxEeXRlVWlQcm92aWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2R5dGVTdGF0ZXNVcGRhdGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0YXRlcyBhcyBJRHl0ZVVpUHJvdmlkZXJTdGF0ZXMgfSBmcm9tICdAZHl0ZXNkay91aS1raXQnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVVpUHJvdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVVaVByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFN0YXRlcyBldmVudFxuICAgKi9cbiAgZHl0ZVN0YXRlc1VwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElEeXRlVWlQcm92aWRlclN0YXRlcz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpY29uUGFjaycsICdtZWV0aW5nJywgJ3QnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS12aWV3ZXItY291bnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCcsICd2YXJpYW50J10sXG59KVxuZXhwb3J0IGNsYXNzIER5dGVWaWV3ZXJDb3VudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVWaWV3ZXJDb3VudEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIER5dGVWaWV3ZXJDb3VudCBleHRlbmRzIENvbXBvbmVudHMuRHl0ZVZpZXdlckNvdW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2J1ZmZlcmVkSXRlbXNDb3VudCcsICdlbXB0eUxpc3RFbGVtZW50JywgJ2l0ZW1IZWlnaHQnLCAnaXRlbXMnLCAncmVuZGVySXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS12aXJ0dWFsaXplZC1wYXJ0aWNpcGFudC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydidWZmZXJlZEl0ZW1zQ291bnQnLCAnZW1wdHlMaXN0RWxlbWVudCcsICdpdGVtSGVpZ2h0JywgJ2l0ZW1zJywgJ3JlbmRlckl0ZW0nXSxcbn0pXG5leHBvcnQgY2xhc3MgRHl0ZVZpcnR1YWxpemVkUGFydGljaXBhbnRMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRHl0ZVZpcnR1YWxpemVkUGFydGljaXBhbnRMaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVZpcnR1YWxpemVkUGFydGljaXBhbnRMaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5EeXRlVmlydHVhbGl6ZWRQYXJ0aWNpcGFudExpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHl0ZS13YWl0aW5nLXNjcmVlbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29uZmlnJywgJ2ljb25QYWNrJywgJ21lZXRpbmcnLCAndCddLFxufSlcbmV4cG9ydCBjbGFzcyBEeXRlV2FpdGluZ1NjcmVlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTER5dGVXYWl0aW5nU2NyZWVuRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRHl0ZVdhaXRpbmdTY3JlZW4gZXh0ZW5kcyBDb21wb25lbnRzLkR5dGVXYWl0aW5nU2NyZWVuIHt9XG5cblxuIl19