ets-fe-ng-sdk 17.0.308 → 17.0.310

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2022/lib/Reusables/reusable-comps/find-item/find-item.component.mjs +2 -2
  2. package/esm2022/lib/Shared/components/btn/btn.model.mjs +1 -1
  3. package/esm2022/lib/Shared/components/btn/btn.service.mjs +168 -164
  4. package/esm2022/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +2 -2
  5. package/esm2022/lib/Shared/components/file-upload/file-upload.component.mjs +17 -5
  6. package/esm2022/lib/Shared/components/form-generator/form-generator.base.component.mjs +1 -1
  7. package/esm2022/lib/Shared/components/form-generator/form-generator.component.mjs +3 -3
  8. package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +1 -1
  9. package/esm2022/lib/Shared/components/input/input-base.component.mjs +6 -2
  10. package/esm2022/lib/Shared/components/input/input-basic.component.mjs +3 -7
  11. package/esm2022/lib/Shared/components/input/input-control.component.mjs +3 -3
  12. package/esm2022/lib/Shared/components/input/input-td-rf.component.mjs +3 -3
  13. package/esm2022/lib/Shared/components/input/input.component.mjs +3 -3
  14. package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs +6 -10
  15. package/esm2022/lib/Shared/components/input-table/input-table.component.mjs +2 -2
  16. package/esm2022/lib/Shared/components/table-input/table-input-row/table-input-row.component.mjs +2 -2
  17. package/esm2022/lib/Shared/components/table-plain/table-plain.component.mjs +2 -2
  18. package/esm2022/lib/Shared/components/webcam-media/webcam-media.component.mjs +266 -0
  19. package/esm2022/public-api.mjs +2 -1
  20. package/fesm2022/ets-fe-ng-sdk.mjs +548 -283
  21. package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
  22. package/lib/Services/utility.service.d.ts +1 -1
  23. package/lib/Shared/components/btn/btn.component.d.ts +1 -1
  24. package/lib/Shared/components/btn/btn.model.d.ts +1 -1
  25. package/lib/Shared/components/btn/btn.service.d.ts +7 -0
  26. package/lib/Shared/components/file-upload/file-upload.component.d.ts +9 -3
  27. package/lib/Shared/components/form-generator/form-generator.base.component.d.ts +2 -0
  28. package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
  29. package/lib/Shared/components/input/input-base.component.d.ts +3 -1
  30. package/lib/Shared/components/input/input-basic.component.d.ts +1 -3
  31. package/lib/Shared/components/input/validation-message/validation-message.component.d.ts +3 -3
  32. package/lib/Shared/components/webcam-media/webcam-media.component.d.ts +88 -0
  33. package/package.json +1 -1
  34. package/public-api.d.ts +1 -0
@@ -0,0 +1,266 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Output, computed, input, model, signal, viewChild, } from '@angular/core';
3
+ import { BtnComponent } from '../btn/btn.component';
4
+ import { filter, map, Observable, tap, timer } from 'rxjs';
5
+ import { toSignal } from '@angular/core/rxjs-interop';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class WebcamMediaComponent {
9
+ constructor() {
10
+ this.closed = new EventEmitter();
11
+ this.recorderStopped = new EventEmitter();
12
+ this.recorderErrored = new EventEmitter();
13
+ this.recorderStarted = new EventEmitter();
14
+ this.recordingState = new EventEmitter();
15
+ this.recordingChanged = new EventEmitter();
16
+ this.isVideo = input();
17
+ this.useAudio = input();
18
+ this.fileName = input();
19
+ this.fileNameFactory = input();
20
+ this.fileType = input();
21
+ this.extraClass = input();
22
+ /**
23
+ * Seconds
24
+ */
25
+ this.recordingNotificationInterval = input(5);
26
+ this.isBackground = input(false);
27
+ this.computedRecordingNotificationInterval = computed(() => (this.recordingNotificationInterval() || 5) * 1000);
28
+ this.isPicture = computed(() => !this.isVideo());
29
+ this.subject = computed(() => (this.isPicture() ? 'Image' : 'Video'));
30
+ this.isPaused = toSignal(this.recordingState.pipe(map((r) => r == 'paused')));
31
+ this.computedFileType = computed(() => {
32
+ const ft = this.fileType(), isp = this.isPicture();
33
+ return ft || (isp ? 'image/jpeg' : 'video/mp4');
34
+ });
35
+ this.computedFileExtension = computed(() => this.computedFileType()?.split('/')[1]);
36
+ this.computedFileName = computed(() => {
37
+ const ff = this.fileNameFactory(), fn = this.fileName() || ff?.(this), fx = this.computedFileExtension(), subject = this.subject();
38
+ return fn?.includes('.' + fx) ? fn : `${fn || subject}.${fx}`;
39
+ });
40
+ this.streamingVideoTemplate = viewChild('streamVideoTemp');
41
+ this.recordingVideoRef = viewChild('recordingVideoTag');
42
+ this.recordingVideoRefEl = computed(() => this.recordingVideoRef()?.nativeElement);
43
+ this.streaming = signal(undefined);
44
+ this.preview = signal(false);
45
+ this.computedPreview = computed(() => !this.isBackground() && this.preview());
46
+ // The width and height of the captured photo. We will set the
47
+ // width to the value defined here, but the height will be
48
+ // calculated based on the aspect ratio of the input stream.
49
+ this.width = model(1080); // We will scale the photo width to this
50
+ this.height = computed(() => {
51
+ const width = this.width();
52
+ return width / (4 / 3);
53
+ }); // This will be computed based on the input stream
54
+ // The various HTML elements we need to configure or control. These
55
+ // will be set by the startup() function.
56
+ this.canvas = signal(undefined);
57
+ this.mediaFile = signal(undefined);
58
+ this.photoSrc = signal(undefined);
59
+ this.videoSrc = signal(undefined);
60
+ this.stream = signal(undefined);
61
+ this.isRecording = toSignal(this.recordingState.pipe(map((r) => r == 'recording' || r == 'paused')));
62
+ this.recordedBlobs = [];
63
+ this.recordedTime = signal(0);
64
+ this.startRecording = (stream = this.stream()) => {
65
+ if (!this.isVideo())
66
+ return;
67
+ this.recorder = new MediaRecorder(stream);
68
+ this.recordedBlobs = [];
69
+ this.recordedTime.set(0);
70
+ const lengths = [];
71
+ this.recorder.ondataavailable = (event) => {
72
+ this.recordedBlobs.push(event.data);
73
+ this.mediaFile.set(new File(this.recordedBlobs, this.computedFileName(), { type: this.computedFileType() }));
74
+ lengths.push([this.mediaFile().size, event.data.size]);
75
+ };
76
+ // this.recorder.ondataavailable = (event) => {
77
+ // this.recordedBlobs = [event.data];
78
+ // lengths.push(event.data.size);
79
+ // };
80
+ // this.recorder.ondataavailable = (event) => this.recordedBlobs.push(event.data);
81
+ this.recorder.start();
82
+ let notifSub;
83
+ const startTimer = () => {
84
+ let lastDateTime = Date.now();
85
+ notifSub = timer(1000, 1000)
86
+ .pipe(tap(() => this.recordedTime.update((t) => (t += 1))), tap(() => console.log(Date.now(), this.computedRecordingNotificationInterval(), this.recordingNotificationInterval())), filter(() => Date.now() - lastDateTime > this.computedRecordingNotificationInterval()), tap(() => this.recorder.requestData()))
87
+ .subscribe((r) => {
88
+ lastDateTime = Date.now();
89
+ this.recordingChanged.emit(this.mediaFile());
90
+ });
91
+ };
92
+ this.recorder.onstart = (e) => {
93
+ this.recordingState.emit(this.recorder.state);
94
+ this.recorderStarted.emit(e);
95
+ startTimer();
96
+ };
97
+ this.recorder.onstop = (e) => {
98
+ this.recordingState.emit(this.recorder.state);
99
+ this.recorderStopped.emit(e);
100
+ console.log('new length', lengths);
101
+ notifSub?.unsubscribe();
102
+ };
103
+ this.recorder.onpause = (e) => {
104
+ this.recordingState.emit(this.recorder.state);
105
+ notifSub?.unsubscribe();
106
+ };
107
+ this.recorder.onresume = (e) => {
108
+ this.recordingState.emit(this.recorder.state);
109
+ startTimer();
110
+ };
111
+ this.recorder.onerror = (e) => {
112
+ this.recordingState.emit(this.recorder.state);
113
+ this.recorderErrored.emit(e);
114
+ notifSub?.unsubscribe();
115
+ };
116
+ };
117
+ }
118
+ ngAfterViewInit() {
119
+ this.startUpWebcam();
120
+ }
121
+ ngOnDestroy() {
122
+ this.sub?.unsubscribe();
123
+ }
124
+ /**
125
+ * Start the webcam stream
126
+ */
127
+ startUpWebcam() {
128
+ this.clear();
129
+ navigator.mediaDevices
130
+ .getUserMedia({ video: true, audio: this.useAudio() })
131
+ .then((stream) => {
132
+ this.streaming.set(true);
133
+ this.canvas.set(document.createElement('canvas'));
134
+ this.canvas()?.setAttribute('width', this.width() + 'px');
135
+ this.canvas()?.setAttribute('height', this.height() + 'px');
136
+ this.stream.set(stream);
137
+ // debugger;
138
+ })
139
+ .catch((err) => {
140
+ console.error(`An error occurred:`, err);
141
+ });
142
+ }
143
+ /**
144
+ * Indicate that the user is done with the webcam component.
145
+ *
146
+ * Any media obtained will be emitted
147
+ */
148
+ save() {
149
+ if (this.isPicture())
150
+ new Observable((sub) => this.canvas().toBlob((blob) => {
151
+ if (blob) {
152
+ this.mediaFile.set(new File([blob], this.computedFileName()));
153
+ sub.next(this.mediaFile());
154
+ sub.complete();
155
+ }
156
+ else
157
+ sub.error(`No ${this.subject()} file generated`);
158
+ }, this.computedFileType(), 1)).subscribe(() => {
159
+ this.closed.emit(this.mediaFile());
160
+ this.closeWebcam();
161
+ });
162
+ else {
163
+ this.closed.emit(this.mediaFile());
164
+ this.closeWebcam();
165
+ }
166
+ }
167
+ /**
168
+ * Indicate that the user is done with the webcam component.
169
+ *
170
+ * Any media obtained will be deleted
171
+ */
172
+ cancel() {
173
+ this.closed.emit(null);
174
+ this.closeWebcam();
175
+ }
176
+ /**
177
+ * Clear the media taken and close preview
178
+ */
179
+ clear() {
180
+ if (this.canvas()) {
181
+ const context = this.canvas()?.getContext('2d');
182
+ context.fillStyle = '#AAA';
183
+ context.fillRect(0, 0, this.canvas().width, this.canvas().height);
184
+ const data = this.canvas().toDataURL(this.computedFileType());
185
+ this.photoSrc.set(data);
186
+ this.streaming.set(true);
187
+ this.preview.set(false);
188
+ }
189
+ }
190
+ /**
191
+ * Shutdown the webcam stream
192
+ */
193
+ closeWebcam() {
194
+ this.stream()
195
+ ?.getTracks()
196
+ .forEach((x) => x.stop());
197
+ this.stream.set(undefined);
198
+ this.streaming.set(undefined);
199
+ // this.stream.set(this.stream()?.getTracks[0].stop());
200
+ }
201
+ /**
202
+ * Capture a photo by fetching the current contents of the video
203
+ * and drawing it into a canvas, then converting that to a PNG
204
+ * format data URL.
205
+ *
206
+ * By drawing it on an offscreen canvas and then
207
+ * drawing that to the screen, we can change its size and/or apply
208
+ * other changes before drawing it.
209
+ */
210
+ takePicture() {
211
+ if (!this.isPicture())
212
+ return;
213
+ const context = this.canvas().getContext('2d'), width = this.width(), height = this.height();
214
+ if (width && height && context) {
215
+ this.canvas.update((canvas) => {
216
+ if (canvas)
217
+ canvas.width = width;
218
+ return canvas;
219
+ });
220
+ this.canvas.update((canvas) => {
221
+ if (canvas)
222
+ canvas.height = height;
223
+ return canvas;
224
+ });
225
+ context.drawImage(this.recordingVideoRefEl(), 0, 0, width, height);
226
+ const data = this.canvas().toDataURL('image/png');
227
+ this.photoSrc.set(data);
228
+ }
229
+ else
230
+ this.clear();
231
+ this.streaming.set(false);
232
+ this.preview.set(true);
233
+ }
234
+ stopRecording() {
235
+ if (this.recorder.state === 'recording')
236
+ this.recorder.stop();
237
+ this.preview.set(true);
238
+ this.streaming.set(false);
239
+ }
240
+ pauseRecording() {
241
+ // debugger;
242
+ if (this.recorder.state === 'paused')
243
+ this.recorder.resume();
244
+ else
245
+ this.recorder.pause();
246
+ }
247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WebcamMediaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: WebcamMediaComponent, isStandalone: true, selector: "lib-webcam-media", inputs: { isVideo: { classPropertyName: "isVideo", publicName: "isVideo", isSignal: true, isRequired: false, transformFunction: null }, useAudio: { classPropertyName: "useAudio", publicName: "useAudio", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, fileNameFactory: { classPropertyName: "fileNameFactory", publicName: "fileNameFactory", isSignal: true, isRequired: false, transformFunction: null }, fileType: { classPropertyName: "fileType", publicName: "fileType", isSignal: true, isRequired: false, transformFunction: null }, extraClass: { classPropertyName: "extraClass", publicName: "extraClass", isSignal: true, isRequired: false, transformFunction: null }, recordingNotificationInterval: { classPropertyName: "recordingNotificationInterval", publicName: "recordingNotificationInterval", isSignal: true, isRequired: false, transformFunction: null }, isBackground: { classPropertyName: "isBackground", publicName: "isBackground", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", recorderStopped: "recorderStopped", recorderErrored: "recorderErrored", recorderStarted: "recorderStarted", recordingState: "recordingState", recordingChanged: "recordingChanged", width: "widthChange" }, viewQueries: [{ propertyName: "streamingVideoTemplate", first: true, predicate: ["streamVideoTemp"], descendants: true, isSignal: true }, { propertyName: "recordingVideoRef", first: true, predicate: ["recordingVideoTag"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"\" [hidden]=\"streaming() != true || isBackground()\">\n <ng-container *ngTemplateOutlet=\"streamVideoTemp\" />\n\n @if (!isBackground()) {\n <div class=\"wm-buttons\">\n <div class=\" row row-cols-lg-auto g-3 justify-content-start\">\n @if (!isRecording()) {\n <div>\n <app-btn [text]=\"isPicture() ? 'Take Picture' : 'Record Video'\" (mclick)=\"isPicture() ? takePicture() : startRecording()\" />\n </div>\n } @else {\n <div>\n <app-btn text=\"{{isPaused()?'Play': 'Pause'}} Recording\" (mclick)=\"pauseRecording()\" type=\"outline\" [icon]=\"isPaused()?'play':'pause'\" />\n </div>\n <div>\n <app-btn [text]=\"'Stop Recording'\" (mclick)=\"stopRecording()\" type=\"danger\" icon=\"stop\" />\n </div>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #streamVideoTemp>\n <div class=\"wm-recording-video-cont\">\n <video #recordingVideoTag [srcObject]=\"stream()\" autoplay class=\"wm-recording-video {{ extraClass() }}\"></video>\n @if (isRecording()) {\n <div class=\"wm-recordingDot\"></div>\n }\n </div>\n</ng-template>\n\n@if (computedPreview()) {\n <div class=\"wm-preview\">\n <div>\n @if (isPicture()) {\n <img class=\"w-100\" [style.width.px]=\"width()\" [style.height.px]=\"height()\" [src]=\"photoSrc()\" />\n } @else {\n <video class=\"w-100\" [style.width.px]=\"width()\" [style.height.px]=\"height()\" [src]=\"mediaFile()\"></video>\n }\n </div>\n <div class=\"mt-3 row row-cols-lg-auto g-3\">\n <div>\n <app-btn text=\"Retake {{ subject() }}\" type=\"outline\" (mclick)=\"clear()\" />\n </div>\n <div>\n <app-btn (mclick)=\"save()\" text=\"Done\" type=\"primary\" icon=\"save\" />\n </div>\n <div>\n <app-btn (mclick)=\"cancel()\" text=\"Cancel\" type=\"danger\" icon=\"cancel\" />\n </div>\n </div>\n </div>\n}\n", styles: [":host{display:block}:host .wm-recording-video{width:100%}:host .wm-preview image,:host .wm-preview video{object-fit:contain}:host .wm-recording-video-cont{position:relative}@keyframes wmAnimateDot{0%{background-color:transparent}50%{background-color:#ff000086}}:host .wm-recordingDot{animation-name:wmAnimateDot;animation-duration:1s;animation-iteration-count:infinite;border-radius:5px;--dimen: 20px;width:var(--dimen);height:var(--dimen);position:absolute;top:10px;right:10px}:host .wm-buttons{margin-top:var(--space-16)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }] }); }
249
+ }
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WebcamMediaComponent, decorators: [{
251
+ type: Component,
252
+ args: [{ selector: 'lib-webcam-media', standalone: true, imports: [CommonModule, BtnComponent], template: "<div class=\"\" [hidden]=\"streaming() != true || isBackground()\">\n <ng-container *ngTemplateOutlet=\"streamVideoTemp\" />\n\n @if (!isBackground()) {\n <div class=\"wm-buttons\">\n <div class=\" row row-cols-lg-auto g-3 justify-content-start\">\n @if (!isRecording()) {\n <div>\n <app-btn [text]=\"isPicture() ? 'Take Picture' : 'Record Video'\" (mclick)=\"isPicture() ? takePicture() : startRecording()\" />\n </div>\n } @else {\n <div>\n <app-btn text=\"{{isPaused()?'Play': 'Pause'}} Recording\" (mclick)=\"pauseRecording()\" type=\"outline\" [icon]=\"isPaused()?'play':'pause'\" />\n </div>\n <div>\n <app-btn [text]=\"'Stop Recording'\" (mclick)=\"stopRecording()\" type=\"danger\" icon=\"stop\" />\n </div>\n }\n </div>\n </div>\n }\n</div>\n\n<ng-template #streamVideoTemp>\n <div class=\"wm-recording-video-cont\">\n <video #recordingVideoTag [srcObject]=\"stream()\" autoplay class=\"wm-recording-video {{ extraClass() }}\"></video>\n @if (isRecording()) {\n <div class=\"wm-recordingDot\"></div>\n }\n </div>\n</ng-template>\n\n@if (computedPreview()) {\n <div class=\"wm-preview\">\n <div>\n @if (isPicture()) {\n <img class=\"w-100\" [style.width.px]=\"width()\" [style.height.px]=\"height()\" [src]=\"photoSrc()\" />\n } @else {\n <video class=\"w-100\" [style.width.px]=\"width()\" [style.height.px]=\"height()\" [src]=\"mediaFile()\"></video>\n }\n </div>\n <div class=\"mt-3 row row-cols-lg-auto g-3\">\n <div>\n <app-btn text=\"Retake {{ subject() }}\" type=\"outline\" (mclick)=\"clear()\" />\n </div>\n <div>\n <app-btn (mclick)=\"save()\" text=\"Done\" type=\"primary\" icon=\"save\" />\n </div>\n <div>\n <app-btn (mclick)=\"cancel()\" text=\"Cancel\" type=\"danger\" icon=\"cancel\" />\n </div>\n </div>\n </div>\n}\n", styles: [":host{display:block}:host .wm-recording-video{width:100%}:host .wm-preview image,:host .wm-preview video{object-fit:contain}:host .wm-recording-video-cont{position:relative}@keyframes wmAnimateDot{0%{background-color:transparent}50%{background-color:#ff000086}}:host .wm-recordingDot{animation-name:wmAnimateDot;animation-duration:1s;animation-iteration-count:infinite;border-radius:5px;--dimen: 20px;width:var(--dimen);height:var(--dimen);position:absolute;top:10px;right:10px}:host .wm-buttons{margin-top:var(--space-16)}\n"] }]
253
+ }], propDecorators: { closed: [{
254
+ type: Output
255
+ }], recorderStopped: [{
256
+ type: Output
257
+ }], recorderErrored: [{
258
+ type: Output
259
+ }], recorderStarted: [{
260
+ type: Output
261
+ }], recordingState: [{
262
+ type: Output
263
+ }], recordingChanged: [{
264
+ type: Output
265
+ }] } });
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViY2FtLW1lZGlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy93ZWJjYW0tbWVkaWEvd2ViY2FtLW1lZGlhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy93ZWJjYW0tbWVkaWEvd2ViY2FtLW1lZGlhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUEwQixNQUFNLEVBQXVCLEdBQUcsRUFBRSxVQUFVLEVBQW9CLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFTdEQsTUFBTSxPQUFPLG9CQUFvQjtJQVBqQztRQVFZLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM1QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFDcEQscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7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QkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQzs4QkFLM0IsTUFBTTtzQkFBZixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVib3VuY2UsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBmcm9tRXZlbnQsIGludGVydmFsLCBtYXAsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24sIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItd2ViY2FtLW1lZGlhJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnRuQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3dlYmNhbS1tZWRpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi93ZWJjYW0tbWVkaWEuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXZWJjYW1NZWRpYUNvbXBvbmVudCB7XG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG4gIEBPdXRwdXQoKSByZWNvcmRlclN0b3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVjb3JkZXJFcnJvcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlY29yZGVyU3RhcnRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZWNvcmRpbmdTdGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkaW5nU3RhdGU+KCk7XG4gIEBPdXRwdXQoKSByZWNvcmRpbmdDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgdW5kZWZpbmVkPigpO1xuXG4gIGlzVmlkZW8gPSBpbnB1dDxib29sZWFuPigpO1xuICB1c2VBdWRpbyA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGZpbGVOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBmaWxlTmFtZUZhY3RvcnkgPSBpbnB1dDwoY29tcDogV2ViY2FtTWVkaWFDb21wb25lbnQpID0+IHN0cmluZz4oKTtcbiAgZmlsZVR5cGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGV4dHJhQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIC8qKlxuICAgKiBTZWNvbmRzXG4gICAqL1xuICByZWNvcmRpbmdOb3RpZmljYXRpb25JbnRlcnZhbCA9IGlucHV0PG51bWJlcj4oNSk7XG4gIGlzQmFja2dyb3VuZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb21wdXRlZFJlY29yZGluZ05vdGlmaWNhdGlvbkludGVydmFsID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiAodGhpcy5yZWNvcmRpbmdOb3RpZmljYXRpb25JbnRlcnZhbCgpIHx8IDUpICogMTAwMCk7XG4gIGlzUGljdHVyZSA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmlzVmlkZW8oKSk7XG5cbiAgc3ViamVjdCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzUGljdHVyZSgpID8gJ0ltYWdlJyA6ICdWaWRlbycpKTtcblxuICBpc1BhdXNlZCA9IHRvU2lnbmFsKHRoaXMucmVjb3JkaW5nU3RhdGUucGlwZShtYXAoKHIpID0+IHIgPT0gJ3BhdXNlZCcpKSk7XG5cbiAgY29tcHV0ZWRGaWxlVHlwZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmdCA9IHRoaXMuZmlsZVR5cGUoKSxcbiAgICAgIGlzcCA9IHRoaXMuaXNQaWN0dXJlKCk7XG4gICAgcmV0dXJuIGZ0IHx8IChpc3AgPyAnaW1hZ2UvanBlZycgOiAndmlkZW8vbXA0Jyk7XG4gIH0pO1xuICBjb21wdXRlZEZpbGVFeHRlbnNpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbXB1dGVkRmlsZVR5cGUoKT8uc3BsaXQoJy8nKVsxXSk7XG4gIGNvbXB1dGVkRmlsZU5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZmYgPSB0aGlzLmZpbGVOYW1lRmFjdG9yeSgpLFxuICAgICAgZm4gPSB0aGlzLmZpbGVOYW1lKCkgfHwgZmY/Lih0aGlzKSxcbiAgICAgIGZ4ID0gdGhpcy5jb21wdXRlZEZpbGVFeHRlbnNpb24oKSxcbiAgICAgIHN1YmplY3QgPSB0aGlzLnN1YmplY3QoKTtcbiAgICByZXR1cm4gZm4/LmluY2x1ZGVzKCcuJyArIGZ4KSA/IGZuIDogYCR7Zm4gfHwgc3ViamVjdH0uJHtmeH1gO1xuICB9KTtcblxuICBzdHJlYW1pbmdWaWRlb1RlbXBsYXRlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdzdHJlYW1WaWRlb1RlbXAnKTtcbiAgcmVjb3JkaW5nVmlkZW9SZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50Pj4oJ3JlY29yZGluZ1ZpZGVvVGFnJyk7XG4gIHJlY29yZGluZ1ZpZGVvUmVmRWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlY29yZGluZ1ZpZGVvUmVmKCk/Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gIHN0cmVhbWluZyA9IHNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcmV2aWV3ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29tcHV0ZWRQcmV2aWV3ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gIXRoaXMuaXNCYWNrZ3JvdW5kKCkgJiYgdGhpcy5wcmV2aWV3KCkpO1xuXG4gIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBjYXB0dXJlZCBwaG90by4gV2Ugd2lsbCBzZXQgdGhlXG4gIC8vIHdpZHRoIHRvIHRoZSB2YWx1ZSBkZWZpbmVkIGhlcmUsIGJ1dCB0aGUgaGVpZ2h0IHdpbGwgYmVcbiAgLy8gY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBpbnB1dCBzdHJlYW0uXG5cbiAgd2lkdGggPSBtb2RlbDxudW1iZXI+KDEwODApOyAvLyBXZSB3aWxsIHNjYWxlIHRoZSBwaG90byB3aWR0aCB0byB0aGlzXG4gIGhlaWdodCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIGNvbnN0IHdpZHRoID0gdGhpcy53aWR0aCgpO1xuICAgIHJldHVybiB3aWR0aCAvICg0IC8gMyk7XG4gIH0pOyAvLyBUaGlzIHdpbGwgYmUgY29tcHV0ZWQgYmFzZWQgb24gdGhlIGlucHV0IHN0cmVhbVxuXG4gIC8vIFRoZSB2YXJpb3VzIEhUTUwgZWxlbWVudHMgd2UgbmVlZCB0byBjb25maWd1cmUgb3IgY29udHJvbC4gVGhlc2VcbiAgLy8gd2lsbCBiZSBzZXQgYnkgdGhlIHN0YXJ0dXAoKSBmdW5jdGlvbi5cblxuICBwcm90ZWN0ZWQgY2FudmFzID0gc2lnbmFsPEhUTUxDYW52YXNFbGVtZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBtZWRpYUZpbGUgPSBzaWduYWw8RmlsZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcGhvdG9TcmMgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICB2aWRlb1NyYyA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgc3RyZWFtID0gc2lnbmFsPE1lZGlhU3RyZWFtPih1bmRlZmluZWQpO1xuXG4gIHN1YjogU3Vic2NyaXB0aW9uO1xuICByZWNvcmRlcjogTWVkaWFSZWNvcmRlcjtcbiAgaXNSZWNvcmRpbmcgPSB0b1NpZ25hbDxib29sZWFuPih0aGlzLnJlY29yZGluZ1N0YXRlLnBpcGUobWFwKChyKSA9PiByID09ICdyZWNvcmRpbmcnIHx8IHIgPT0gJ3BhdXNlZCcpKSk7XG4gIHJlY29yZGVkQmxvYnM6IEJsb2JbXSA9IFtdO1xuXG4gIHJlY29yZGVkVGltZSA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0VXBXZWJjYW0oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSB3ZWJjYW0gc3RyZWFtXG4gICAqL1xuICBzdGFydFVwV2ViY2FtKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4gICAgICAuZ2V0VXNlck1lZGlhKHsgdmlkZW86IHRydWUsIGF1ZGlvOiB0aGlzLnVzZUF1ZGlvKCkgfSlcbiAgICAgIC50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgdGhpcy5zdHJlYW1pbmcuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLmNhbnZhcy5zZXQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykpO1xuICAgICAgICB0aGlzLmNhbnZhcygpPy5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgdGhpcy53aWR0aCgpICsgJ3B4Jyk7XG4gICAgICAgIHRoaXMuY2FudmFzKCk/LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgdGhpcy5oZWlnaHQoKSArICdweCcpO1xuICAgICAgICB0aGlzLnN0cmVhbS5zZXQoc3RyZWFtKTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQ6YCwgZXJyKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlIHRoYXQgdGhlIHVzZXIgaXMgZG9uZSB3aXRoIHRoZSB3ZWJjYW0gY29tcG9uZW50LlxuICAgKlxuICAgKiBBbnkgbWVkaWEgb2J0YWluZWQgd2lsbCBiZSBlbWl0dGVkXG4gICAqL1xuICBzYXZlKCkge1xuICAgIGlmICh0aGlzLmlzUGljdHVyZSgpKVxuICAgICAgbmV3IE9ic2VydmFibGU8RmlsZT4oKHN1YikgPT5cbiAgICAgICAgdGhpcy5jYW52YXMoKSEudG9CbG9iKFxuICAgICAgICAgIChibG9iKSA9PiB7XG4gICAgICAgICAgICBpZiAoYmxvYikge1xuICAgICAgICAgICAgICB0aGlzLm1lZGlhRmlsZS5zZXQobmV3IEZpbGUoW2Jsb2JdLCB0aGlzLmNvbXB1dGVkRmlsZU5hbWUoKSkpO1xuICAgICAgICAgICAgICBzdWIubmV4dCh0aGlzLm1lZGlhRmlsZSgpKTtcbiAgICAgICAgICAgICAgc3ViLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Ugc3ViLmVycm9yKGBObyAke3RoaXMuc3ViamVjdCgpfSBmaWxlIGdlbmVyYXRlZGApO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdGhpcy5jb21wdXRlZEZpbGVUeXBlKCksXG4gICAgICAgICAgMSxcbiAgICAgICAgKSxcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCh0aGlzLm1lZGlhRmlsZSgpKTtcbiAgICAgICAgdGhpcy5jbG9zZVdlYmNhbSgpO1xuICAgICAgfSk7XG4gICAgZWxzZSB7IFxuICAgICAgdGhpcy5jbG9zZWQuZW1pdCh0aGlzLm1lZGlhRmlsZSgpKTtcbiAgICAgIHRoaXMuY2xvc2VXZWJjYW0oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGUgdGhhdCB0aGUgdXNlciBpcyBkb25lIHdpdGggdGhlIHdlYmNhbSBjb21wb25lbnQuXG4gICAqXG4gICAqIEFueSBtZWRpYSBvYnRhaW5lZCB3aWxsIGJlIGRlbGV0ZWRcbiAgICovXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KG51bGwpO1xuICAgIHRoaXMuY2xvc2VXZWJjYW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgbWVkaWEgdGFrZW4gYW5kIGNsb3NlIHByZXZpZXdcbiAgICovXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmNhbnZhcygpKSB7XG4gICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jYW52YXMoKT8uZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgIGNvbnRleHQhLmZpbGxTdHlsZSA9ICcjQUFBJztcbiAgICAgIGNvbnRleHQhLmZpbGxSZWN0KDAsIDAsIHRoaXMuY2FudmFzKCkhLndpZHRoLCB0aGlzLmNhbnZhcygpIS5oZWlnaHQpO1xuXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5jYW52YXMoKSEudG9EYXRhVVJMKHRoaXMuY29tcHV0ZWRGaWxlVHlwZSgpKTtcbiAgICAgIHRoaXMucGhvdG9TcmMuc2V0KGRhdGEpO1xuICAgICAgdGhpcy5zdHJlYW1pbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy5wcmV2aWV3LnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNodXRkb3duIHRoZSB3ZWJjYW0gc3RyZWFtXG4gICAqL1xuICBjbG9zZVdlYmNhbSgpIHtcbiAgICB0aGlzLnN0cmVhbSgpXG4gICAgICA/LmdldFRyYWNrcygpXG4gICAgICAuZm9yRWFjaCgoeCkgPT4geC5zdG9wKCkpO1xuICAgIHRoaXMuc3RyZWFtLnNldCh1bmRlZmluZWQpO1xuICAgIHRoaXMuc3RyZWFtaW5nLnNldCh1bmRlZmluZWQpO1xuICAgIC8vIHRoaXMuc3RyZWFtLnNldCh0aGlzLnN0cmVhbSgpPy5nZXRUcmFja3NbMF0uc3RvcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYXB0dXJlIGEgcGhvdG8gYnkgZmV0Y2hpbmcgdGhlIGN1cnJlbnQgY29udGVudHMgb2YgdGhlIHZpZGVvXG4gICAqIGFuZCBkcmF3aW5nIGl0IGludG8gYSBjYW52YXMsIHRoZW4gY29udmVydGluZyB0aGF0IHRvIGEgUE5HXG4gICAqIGZvcm1hdCBkYXRhIFVSTC5cbiAgICpcbiAgICogQnkgZHJhd2luZyBpdCBvbiBhbiBvZmZzY3JlZW4gY2FudmFzIGFuZCB0aGVuXG4gICAqIGRyYXdpbmcgdGhhdCB0byB0aGUgc2NyZWVuLCB3ZSBjYW4gY2hhbmdlIGl0cyBzaXplIGFuZC9vciBhcHBseVxuICAgKiBvdGhlciBjaGFuZ2VzIGJlZm9yZSBkcmF3aW5nIGl0LlxuICAgKi9cbiAgdGFrZVBpY3R1cmUoKSB7XG4gICAgaWYgKCF0aGlzLmlzUGljdHVyZSgpKSByZXR1cm47XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY2FudmFzKCkhLmdldENvbnRleHQoJzJkJyksXG4gICAgICB3aWR0aCA9IHRoaXMud2lkdGgoKSxcbiAgICAgIGhlaWdodCA9IHRoaXMuaGVpZ2h0KCk7XG4gICAgaWYgKHdpZHRoICYmIGhlaWdodCAmJiBjb250ZXh0KSB7XG4gICAgICB0aGlzLmNhbnZhcy51cGRhdGUoKGNhbnZhcykgPT4ge1xuICAgICAgICBpZiAoY2FudmFzKSBjYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICAgICAgcmV0dXJuIGNhbnZhcztcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYW52YXMudXBkYXRlKChjYW52YXMpID0+IHtcbiAgICAgICAgaWYgKGNhbnZhcykgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgcmV0dXJuIGNhbnZhcztcbiAgICAgIH0pO1xuICAgICAgY29udGV4dC5kcmF3SW1hZ2UodGhpcy5yZWNvcmRpbmdWaWRlb1JlZkVsKCkhLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY2FudmFzKCkhLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG4gICAgICB0aGlzLnBob3RvU3JjLnNldChkYXRhKTtcbiAgICB9IGVsc2UgdGhpcy5jbGVhcigpO1xuXG4gICAgdGhpcy5zdHJlYW1pbmcuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnByZXZpZXcuc2V0KHRydWUpO1xuICB9XG5cbiAgc3RhcnRSZWNvcmRpbmcgPSAoc3RyZWFtID0gdGhpcy5zdHJlYW0oKSkgPT4ge1xuICAgIGlmICghdGhpcy5pc1ZpZGVvKCkpIHJldHVybjtcbiAgICB0aGlzLnJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIoc3RyZWFtKTtcblxuICAgIHRoaXMucmVjb3JkZWRCbG9icyA9IFtdO1xuICAgIHRoaXMucmVjb3JkZWRUaW1lLnNldCgwKTtcbiAgICBjb25zdCBsZW5ndGhzOiBbbnVtYmVyLCBudW1iZXJdW10gPSBbXTtcbiAgICB0aGlzLnJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChldmVudCkgPT4ge1xuICAgICAgdGhpcy5yZWNvcmRlZEJsb2JzLnB1c2goZXZlbnQuZGF0YSk7XG4gICAgICB0aGlzLm1lZGlhRmlsZS5zZXQobmV3IEZpbGUodGhpcy5yZWNvcmRlZEJsb2JzLCB0aGlzLmNvbXB1dGVkRmlsZU5hbWUoKSwgeyB0eXBlOiB0aGlzLmNvbXB1dGVkRmlsZVR5cGUoKSB9KSk7XG4gICAgICBsZW5ndGhzLnB1c2goW3RoaXMubWVkaWFGaWxlKCkuc2l6ZSwgZXZlbnQuZGF0YS5zaXplXSk7XG4gICAgfTtcbiAgICAvLyB0aGlzLnJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChldmVudCkgPT4ge1xuICAgIC8vICAgdGhpcy5yZWNvcmRlZEJsb2JzID0gW2V2ZW50LmRhdGFdO1xuICAgIC8vICAgbGVuZ3Rocy5wdXNoKGV2ZW50LmRhdGEuc2l6ZSk7XG4gICAgLy8gfTtcbiAgICAvLyB0aGlzLnJlY29yZGVyLm9uZGF0YWF2YWlsYWJsZSA9IChldmVudCkgPT4gdGhpcy5yZWNvcmRlZEJsb2JzLnB1c2goZXZlbnQuZGF0YSk7XG5cbiAgICB0aGlzLnJlY29yZGVyLnN0YXJ0KCk7XG4gICAgbGV0IG5vdGlmU3ViOiBTdWJzY3JpcHRpb247XG4gICAgY29uc3Qgc3RhcnRUaW1lciA9ICgpID0+IHtcbiAgICAgIGxldCBsYXN0RGF0ZVRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgbm90aWZTdWIgPSB0aW1lcigxMDAwLCAxMDAwKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5yZWNvcmRlZFRpbWUudXBkYXRlKCh0KSA9PiAodCArPSAxKSkpLFxuICAgICAgICAgIHRhcCgoKSA9PiBjb25zb2xlLmxvZyhEYXRlLm5vdygpLCB0aGlzLmNvbXB1dGVkUmVjb3JkaW5nTm90aWZpY2F0aW9uSW50ZXJ2YWwoKSwgdGhpcy5yZWNvcmRpbmdOb3RpZmljYXRpb25JbnRlcnZhbCgpKSksXG4gICAgICAgICAgZmlsdGVyKCgpID0+IERhdGUubm93KCkgLSBsYXN0RGF0ZVRpbWUgPiB0aGlzLmNvbXB1dGVkUmVjb3JkaW5nTm90aWZpY2F0aW9uSW50ZXJ2YWwoKSksXG4gICAgICAgICAgdGFwKCgpID0+IHRoaXMucmVjb3JkZXIucmVxdWVzdERhdGEoKSksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgocikgPT4ge1xuICAgICAgICAgIGxhc3REYXRlVGltZSA9IERhdGUubm93KCk7IFxuICAgICAgICAgIHRoaXMucmVjb3JkaW5nQ2hhbmdlZC5lbWl0KHRoaXMubWVkaWFGaWxlKCkpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHRoaXMucmVjb3JkZXIub25zdGFydCA9IChlKSA9PiB7XG4gICAgICB0aGlzLnJlY29yZGluZ1N0YXRlLmVtaXQodGhpcy5yZWNvcmRlci5zdGF0ZSk7XG4gICAgICB0aGlzLnJlY29yZGVyU3RhcnRlZC5lbWl0KGUpO1xuICAgICAgc3RhcnRUaW1lcigpO1xuICAgIH07XG4gICAgdGhpcy5yZWNvcmRlci5vbnN0b3AgPSAoZSkgPT4ge1xuICAgICAgdGhpcy5yZWNvcmRpbmdTdGF0ZS5lbWl0KHRoaXMucmVjb3JkZXIuc3RhdGUpO1xuICAgICAgdGhpcy5yZWNvcmRlclN0b3BwZWQuZW1pdChlKTtcbiAgICAgIGNvbnNvbGUubG9nKCduZXcgbGVuZ3RoJywgbGVuZ3Rocyk7XG4gICAgICBub3RpZlN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICAgIHRoaXMucmVjb3JkZXIub25wYXVzZSA9IChlKSA9PiB7XG4gICAgICB0aGlzLnJlY29yZGluZ1N0YXRlLmVtaXQodGhpcy5yZWNvcmRlci5zdGF0ZSk7XG4gICAgICBub3RpZlN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICAgIHRoaXMucmVjb3JkZXIub25yZXN1bWUgPSAoZSkgPT4ge1xuICAgICAgdGhpcy5yZWNvcmRpbmdTdGF0ZS5lbWl0KHRoaXMucmVjb3JkZXIuc3RhdGUpO1xuICAgICAgc3RhcnRUaW1lcigpO1xuICAgIH07XG4gICAgdGhpcy5yZWNvcmRlci5vbmVycm9yID0gKGUpID0+IHtcbiAgICAgIHRoaXMucmVjb3JkaW5nU3RhdGUuZW1pdCh0aGlzLnJlY29yZGVyLnN0YXRlKTtcbiAgICAgIHRoaXMucmVjb3JkZXJFcnJvcmVkLmVtaXQoZSk7XG4gICAgICBub3RpZlN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9O1xuICB9O1xuXG4gIHN0b3BSZWNvcmRpbmcoKSB7XG4gICAgaWYgKHRoaXMucmVjb3JkZXIuc3RhdGUgPT09ICdyZWNvcmRpbmcnKSB0aGlzLnJlY29yZGVyLnN0b3AoKTtcblxuICAgIHRoaXMucHJldmlldy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5zdHJlYW1pbmcuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHBhdXNlUmVjb3JkaW5nKCkge1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLnJlY29yZGVyLnN0YXRlID09PSAncGF1c2VkJykgdGhpcy5yZWNvcmRlci5yZXN1bWUoKTtcbiAgICBlbHNlIHRoaXMucmVjb3JkZXIucGF1c2UoKTtcbiAgfVxuIFxufVxuIiwiPGRpdiBjbGFzcz1cIlwiIFtoaWRkZW5dPVwic3RyZWFtaW5nKCkgIT0gdHJ1ZSB8fCBpc0JhY2tncm91bmQoKVwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RyZWFtVmlkZW9UZW1wXCIgLz5cblxuICBAaWYgKCFpc0JhY2tncm91bmQoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJ3bS1idXR0b25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiICByb3cgcm93LWNvbHMtbGctYXV0byBnLTMganVzdGlmeS1jb250ZW50LXN0YXJ0XCI+XG4gICAgICAgIEBpZiAoIWlzUmVjb3JkaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGFwcC1idG4gW3RleHRdPVwiaXNQaWN0dXJlKCkgPyAnVGFrZSBQaWN0dXJlJyA6ICdSZWNvcmQgVmlkZW8nXCIgKG1jbGljayk9XCJpc1BpY3R1cmUoKSA/IHRha2VQaWN0dXJlKCkgOiBzdGFydFJlY29yZGluZygpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxhcHAtYnRuIHRleHQ9XCJ7e2lzUGF1c2VkKCk/J1BsYXknOiAnUGF1c2UnfX0gUmVjb3JkaW5nXCIgKG1jbGljayk9XCJwYXVzZVJlY29yZGluZygpXCIgdHlwZT1cIm91dGxpbmVcIiBbaWNvbl09XCJpc1BhdXNlZCgpPydwbGF5JzoncGF1c2UnXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGFwcC1idG4gW3RleHRdPVwiJ1N0b3AgUmVjb3JkaW5nJ1wiIChtY2xpY2spPVwic3RvcFJlY29yZGluZygpXCIgdHlwZT1cImRhbmdlclwiIGljb249XCJzdG9wXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3N0cmVhbVZpZGVvVGVtcD5cbiAgPGRpdiBjbGFzcz1cIndtLXJlY29yZGluZy12aWRlby1jb250XCI+XG4gICAgPHZpZGVvICNyZWNvcmRpbmdWaWRlb1RhZyBbc3JjT2JqZWN0XT1cInN0cmVhbSgpXCIgYXV0b3BsYXkgY2xhc3M9XCJ3bS1yZWNvcmRpbmctdmlkZW8ge3sgZXh0cmFDbGFzcygpIH19XCI+PC92aWRlbz5cbiAgICBAaWYgKGlzUmVjb3JkaW5nKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3bS1yZWNvcmRpbmdEb3RcIj48L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuQGlmIChjb21wdXRlZFByZXZpZXcoKSkge1xuICA8ZGl2IGNsYXNzPVwid20tcHJldmlld1wiPlxuICAgIDxkaXY+XG4gICAgICBAaWYgKGlzUGljdHVyZSgpKSB7XG4gICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aCgpXCIgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHQoKVwiIFtzcmNdPVwicGhvdG9TcmMoKVwiIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHZpZGVvIGNsYXNzPVwidy0xMDBcIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGgoKVwiIFtzdHlsZS5oZWlnaHQucHhdPVwiaGVpZ2h0KClcIiBbc3JjXT1cIm1lZGlhRmlsZSgpXCI+PC92aWRlbz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtMyByb3cgcm93LWNvbHMtbGctYXV0byBnLTNcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhcHAtYnRuIHRleHQ9XCJSZXRha2Uge3sgc3ViamVjdCgpIH19XCIgdHlwZT1cIm91dGxpbmVcIiAobWNsaWNrKT1cImNsZWFyKClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YXBwLWJ0biAobWNsaWNrKT1cInNhdmUoKVwiIHRleHQ9XCJEb25lXCIgdHlwZT1cInByaW1hcnlcIiBpY29uPVwic2F2ZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxhcHAtYnRuIChtY2xpY2spPVwiY2FuY2VsKClcIiB0ZXh0PVwiQ2FuY2VsXCIgdHlwZT1cImRhbmdlclwiIGljb249XCJjYW5jZWxcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19
@@ -96,6 +96,7 @@ export * from './lib/Shared/components/modal-header/modal-header.component';
96
96
  export * from './lib/Shared/components/modal-header/modal-header.module';
97
97
  export * from './lib/Shared/components/modal/modal.component';
98
98
  export * from './lib/Shared/components/modal/modal.module';
99
+ export * from './lib/Shared/components/webcam-media/webcam-media.component';
99
100
  export * from './lib/Shared/components/modal/modal-body.directive';
100
101
  export * from './lib/Shared/components/modal/modal-footer.directive';
101
102
  export * from './lib/Shared/components/narration-history-comp/narration-history-comp.component';
@@ -215,4 +216,4 @@ export * from './lib/authentication/web-user/web-user-forgot-password.component'
215
216
  export * from './lib/authentication/web-user/web-user-login.component';
216
217
  export * from './lib/authentication/web-user/web-user-reset-password.component';
217
218
  //#endregion
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCwyQkFBMkI7QUFDM0IsT0FBTyxFQUFFLGNBQWMsSUFBSSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsWUFBWTtBQUVaLG9DQUFvQztBQUNwQyx1RUFBdUU7QUFDdkUsd0VBQXdFO0FBQ3hFLHlFQUF5RTtBQUN6RSxlQUFlO0FBRWYsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsc0ZBQXNGLENBQUM7QUFDckcsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FB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LDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYywrREFBK0QsQ0FBQztBQUU5RSxPQUFPLEtBQUssVUFBVSxNQUFNLG9DQUFvQyxDQUFDO0FBRWpFLHdCQUF3QjtBQUN4QixjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGV0cy1mZS1uZy1zZGtcbiAqL1xuXG4vLyNyZWdpb24gbGliL1NoYXJlZC9tb2RlbHNcbmV4cG9ydCB7IFNES0Vudmlyb25tZW50IGFzIEVudmlyb25tZW50IH0gZnJvbSAnLi9saWIvU2hhcmVkL21vZGVscy9lbnZpcm9ubWVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvbW9kZWxzL2Zvcm0tc2NoZW1hLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9tb2RlbHMvZm9ybS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvbW9kZWxzL0lNZW51SXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvbW9kZWxzL2luZGV4Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9tb2RlbHMvUm91dGVJdGVtLmNsYXNzJztcbi8vI2VuZHJlZ2lvblxuXG4vLyAvLyNyZWdpb24gbGliL2xhYmVsLWN1c3RvbWl6YXRpb25cbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2xhYmVsLWN1c3RvbWl6YXRpb24vbGFiZWwtY3VzdG9taXphdGlvbi5tb2RlbCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9sYWJlbC1jdXN0b21pemF0aW9uL2xhYmVsLWN1c3RvbWl6YXRpb24ubW9kdWxlJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2xhYmVsLWN1c3RvbWl6YXRpb24vbGFiZWwtY3VzdG9taXphdGlvbi5zZXJ2aWNlJztcbi8vIC8vI2VuZHJlZ2lvblxuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWdzL2Jhc2UtZnVuY3Rpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZ3MvaW5kZXguY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZ3MvdmFsaWRhdGlvbi1tZXNzYWdlcy5jb25maWcnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY2xhc3Nlcy9wYWdlLWxvYWRlci5jbGFzcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2FkZC1pdGVtL2FkZC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLXRkLXJmL2F1dG9jb21wbGV0ZS10ZC1yZi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4tbGcvYnRuLWxnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLWxnL2J0bi1sZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi1saW5rL2J0bi1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vZGV0YWlscy1idG4vZGV0YWlscy1idG4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9kZXRhaWxzLWJ0bi9kZXRhaWxzLWJ0bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2RldGFpbHMtYnRuL2RldGFpbHMtYnRuLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vZGV0YWlscy1idG4vZGV0YWlscy1idG4ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvY2FyZC9jYXJkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvY29yZS9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9jb3JlL2J1dHRvbi9jb21wb25lbnRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9kb2N1bWVudHMtbmFtZS1kaXNwbGF5L2RvY3VtZW50cy1uYW1lLWRpc3BsYXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2RvY3VtZW50cy1uYW1lLWRpc3BsYXkvZG9jdW1lbnRzLW5hbWUtZGlzcGxheS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZWRpdGFibGUtdGV4dC1jYXNlL2VkaXRhYmxlLXRleHQtY2FzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZWRpdGFibGUtdGV4dC1jYXNlL2VkaXRhYmxlLXRleHQtY2FzZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZXhwb3J0LXRhYmxlL2V4cG9ydC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZXhwb3J0LXRhYmxlL2V4cG9ydC10YWJsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpZWxkcy10by1kaXNwbGF5L2ZpZWxkcy10by1kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlL2Zvcm0tZ2VuZXJhdGVkLXZhbHVlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1saW5rL2Zvcm0tbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1saW5rL2Zvcm0tbGluay5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS10YWItaGVhZGVycy9mb3JtLXRhYi1oZWFkZXJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLXRhYi1oZWFkZXJzL2Zvcm0tdGFiLWhlYWRlcnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5mby1kaWFsb2cvaW5mby1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbmZvLWljb24vaW5mby1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbmZvLWljb24vaW5mby1pY29uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC1OZ01vZGVsL2lucHV0LW5nbW9kZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0LU5nTW9kZWwvaW5wdXQtbmdtb2RlbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQtTmdNb2RlbC92YWxpZGF0aW9uLW1lc3NhZ2Utbmdtb2RlbC92YWxpZGF0aW9uLW1lc3NhZ2Utbmdtb2RlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9kYXktaG91ci1taW4taW5wdXQvZGF5LWhvdXItbWluLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC1iYXNpYy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LXRkLXJmLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXRzLXBpcGVzLnBpcGUnO1xuZXhwb3J0ICogYXMgSW5wdXRDb21wb25lbnRzIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQveWVhci1tb250aC10ZC1yZi95ZWFyLW1vbnRoLXRkLXJmLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbGFiZWwvbGFiZWwubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXItYW5pbWF0aW9ucy9ibGlua2luZy1ibG9ja3MvYmxpbmtpbmctYmxvY2tzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLWFuaW1hdGlvbnMvYm91bmNpbmctYmFsbC9ib3VuY2luZy1iYWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLWFuaW1hdGlvbnMvZmFkaW5nLWJhcnMvZmFkaW5nLWJhcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXItYW5pbWF0aW9ucy9mYWRpbmctY2lyY2xlcy9mYWRpbmctY2lyY2xlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci1hbmltYXRpb25zL3JpbmctcmlwcGxlcy9yaW5nLXJpcHBsZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9tb2RhbC1jb21wb25lbnRzL21vZGFsLmNvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwtZm9ybS9tb2RhbC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9tb2RhbC1mb3JtL21vZGFsLWZvcm0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL21vZGFsLWhlYWRlci9tb2RhbC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL21vZGFsLWhlYWRlci9tb2RhbC1oZWFkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwtYm9keS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwtZm9vdGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9uYXJyYXRpb24taGlzdG9yeS1jb21wL25hcnJhdGlvbi1oaXN0b3J5LWNvbXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcGFnZS1jZW50ZXItYm9keS9wYWdlLWNlbnRlci1ib2R5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9wYWdlLXRlbXBsYXRlL3BhZ2UtdGVtcGxhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcGFnZS10by1jb21wb25lbnQvcGFnZS10by1jb21wb25lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3BhZ2UtdG8tY29tcG9uZW50L3BhZ2UtdG8tY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9wYWdlLXRvLWNvbXBvbmVudC9wYWdlLXRvLWNvbXBvbmVudC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcGFnZS10by1jb21wb25lbnQvcGFnZS10by1jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcmljaC10ZXh0LWVkaXRvci9yaWNoLXRleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yLXJmL3JpY2gtdGV4dC1lZGl0b3ItcmYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3Jvdy1hY3Rpb25zL3Jvdy1hY3Rpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9yb3ctYWN0aW9ucy9yb3ctYWN0aW9ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvc3ZnLWljb24vc3ZnLWljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3N2Zy1pY29uL3N2Zy1pY29uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3N2Zy1pY29uL3N2Zy1pY29uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtaHR0cHMvdGFibGUtaHR0cHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLWh0dHBzL3RhYmxlLWh0dHBzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1pbnB1dC90YWJsZS1pbnB1dC1yb3cvdGFibGUtaW5wdXQtcm93LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1pbnB1dC90YWJsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtcGxhaW4vdGFibGUtcGxhaW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLXBsYWluL3RhYmxlLXBsYWluLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1wbGFpbi90YWJsZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLXBsYWluL3RhYmxlLXBsYWluLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC1hcmVhLW1vZGFsL3RleHQtYXJlYS1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC1hcmVhLW1vZGFsL3RleHQtYXJlYS1tb2RhbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RleHQtY2FzZS0xL3RleHQtY2FzZS0xLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWNhc2UtMi90ZXh0LWNhc2UtMi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC1jYXNlLTIvdGV4dC1jYXNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC1jYXNlLWlucHV0L3RleHQtY2FzZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90b2dnbGUtaW5wdXQtZm9ybS90b2dnbGUtaW5wdXQtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdHJhbnNsYXRvci1jYXNlL3RyYW5zbGF0b3ItY2FzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdHJhbnNsYXRvci1jYXNlL3RyYW5zbGF0b3ItY2FzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdmlldy1mb3JtLWJ1dHRvbnMvdmlldy1mb3JtLWJ1dHRvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3ZpZXctZm9ybS1idXR0b25zL3ZpZXctZm9ybS1idXR0b25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC10YWJsZS9pbnB1dC10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQtdGFibGUvaW5wdXQtdGFibGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQtdGFibGUvaW5wdXQtdGFibGUuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL2NvbW1hZnktbnVtYmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9kcmFnLWRyb3AtZmlsZS11cGxvYWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL2luZGV4LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9mb3JtLWludmFsaWQtY2xhc3MuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL2lucHV0LWZvcm1hdHRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2RpcmVjdGl2ZXMvaW50ZWdlci1vbmx5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy90cmFuc2xhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9tSHJlZi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2RpcmVjdGl2ZXMvcmVzcG9uc2l2ZW5lc3MuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL25lZ2F0aXZlLW51bWJlci1vbmx5LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvcGlwZXMvcGFnaW5hdG9yLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL3BpcGVzL2Zvcm0taW52YWxpZC1jbGFzcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9waXBlcy91dGlsaXR5LnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9hcGkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9hcHAuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9odG1sZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9pbnB1dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3BhZ2UtbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvcGFnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEJhc2VGYWNhZGVTZXJ2aWNlIGFzIFNES0Jhc2VGYWNhZGVTZXJ2aWNlIH0gZnJvbSAnLi9saWIvU2VydmljZXMvYmFzZS5mYWNhZGUuc2VydmljZSc7XG5leHBvcnQgeyBCYXNlU2VydmljZSBhcyBTREtCYXNlU2VydmljZSB9IGZyb20gJy4vbGliL1NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XG5leHBvcnQgeyBCYXNlRWZmZWN0IGFzIFNES0Jhc2VFZmZlY3QgfSBmcm9tICcuL2xpYi9TZXJ2aWNlcy9iYXNlLmVmZmVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9kZWJvdW5jZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9yb3V0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy93aW5kb3ctc2VjdXJpdHkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9zZXJ2aWNlLXdvcmtlci9wcm9tcHQtdXBkYXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvc2VydmljZS13b3JrZXIvbG9nLXVwZGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3NlcnZpY2Utd29ya2VyL2hhbmRsZS11bnJlY292ZXJhYmxlLXN0YXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvc2VydmljZS13b3JrZXIvY2hlY2stZm9yLXVwZGF0ZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvSW50ZXJjZXB0b3JzL3JlcXVlc3QtdGltZW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL0ludGVyY2VwdG9ycy9yZXF1ZXN0LWxvYWRlci1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL0ludGVyY2VwdG9ycy9sb2dnZXItaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9JbnRlcmNlcHRvcnMvZ2xvYmFsLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9JbnRlcmNlcHRvcnMvYXV0aGVudGljYXRpb24taW50ZXJjZXB0b3Iuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2NhY2hlL2NhY2hlLXVwZGF0ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9jYWNoZS9jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvY2FjaGUvc2F2ZXIuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy9sb2dnZXIvbG9nZ2VyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXItcm91dGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3JvYm90L3JvYm90Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtY29tcHMvZmluZC1pdGVtL2ZpbmQtaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLWNvbXBzL2ZpbmQtaXRlbS9maW5kLWl0ZW0ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLWNvbXBzL2ZpbmQtaXRlbS9maW5kLWl0ZW0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1jb21wcy93YXRlcm1hcmsvd2F0ZXJtYXJrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvcmVzZXQvcmVzZXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy91c2VyLWFjdGl2aXR5L3VhLWV4dHJhcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3ZlcnNpb24vdmVyc2lvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3RpbWVvdXQtdGVzdGVyL3RpbWVvdXQtdGVzdGVyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvZXh0cmEtcGFnZXMvZXh0cmEtcGFnZXMubW9kdWxlJztcblxuZXhwb3J0ICogYXMgUHJvdG90eXBlcyBmcm9tICcuL2xpYi9TaGFyZWQvcHJvdG90eXBlcy9wcm90b3R5cGVzJztcblxuLy8jcmVnaW9uIGF1dGhlbnRpY2F0aW9uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoZW50aWNhdGlvbi93ZWItdXNlci93ZWItdXNlci1hdXRoZW50aWNhdGlvbi5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoZW50aWNhdGlvbi93ZWItdXNlci93ZWItdXNlci1hdXRoZW50aWNhdGlvbi5pbnRlcmNlcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoZW50aWNhdGlvbi93ZWItdXNlci93ZWItdXNlci1hdXRoZW50aWNhdGlvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoZW50aWNhdGlvbi93ZWItdXNlci93ZWItdXNlci1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3dlYi11c2VyL3dlYi11c2VyLWZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aGVudGljYXRpb24vd2ViLXVzZXIvd2ViLXVzZXItbG9naW4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3dlYi11c2VyL3dlYi11c2VyLXJlc2V0LXBhc3N3b3JkLmNvbXBvbmVudCc7XG4vLyNlbmRyZWdpb25cbiJdfQ==
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCwyQkFBMkI7QUFDM0IsT0FBTyxFQUFFLGNBQWMsSUFBSSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsWUFBWTtBQUVaLG9DQUFvQztBQUNwQyx1RUFBdUU7QUFDdkUsd0VBQXdFO0FBQ3hFLHlFQUF5RTtBQUN6RSxlQUFlO0FBRWYsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMENBQTBDLENBQUM7QUFFekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsc0ZBQXNGLENBQUM7QUFDckcsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FB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LDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMscUVBQXFFLENBQUM7QUFDcEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDRFQUE0RSxDQUFDO0FBQzNGLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLCtEQUErRCxDQUFDO0FBRTlFLE9BQU8sS0FBSyxVQUFVLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsd0JBQXdCO0FBQ3hCLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZXRzLWZlLW5nLXNka1xuICovXG5cbi8vI3JlZ2lvbiBsaWIvU2hhcmVkL21vZGVsc1xuZXhwb3J0IHsgU0RLRW52aXJvbm1lbnQgYXMgRW52aXJvbm1lbnQgfSBmcm9tICcuL2xpYi9TaGFyZWQvbW9kZWxzL2Vudmlyb25tZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9tb2RlbHMvZm9ybS1zY2hlbWEubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL21vZGVscy9mb3JtLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9tb2RlbHMvSU1lbnVJdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9tb2RlbHMvaW5kZXgubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL21vZGVscy9Sb3V0ZUl0ZW0uY2xhc3MnO1xuLy8jZW5kcmVnaW9uXG5cbi8vIC8vI3JlZ2lvbiBsaWIvbGFiZWwtY3VzdG9taXphdGlvblxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvbGFiZWwtY3VzdG9taXphdGlvbi9sYWJlbC1jdXN0b21pemF0aW9uLm1vZGVsJztcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL2xhYmVsLWN1c3RvbWl6YXRpb24vbGFiZWwtY3VzdG9taXphdGlvbi5tb2R1bGUnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvbGFiZWwtY3VzdG9taXphdGlvbi9sYWJlbC1jdXN0b21pemF0aW9uLnNlcnZpY2UnO1xuLy8gLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZ3MvYmFzZS1mdW5jdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlncy9pbmRleC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlncy92YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbmZpZyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jbGFzc2VzL3BhZ2UtbG9hZGVyLmNsYXNzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYWRkLWl0ZW0vYWRkLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtdGQtcmYvYXV0b2NvbXBsZXRlLXRkLXJmLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi1sZy9idG4tbGcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4tbGcvYnRuLWxnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vYnRuLWxpbmsvYnRuLWxpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9idG4ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2J0bi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9kZXRhaWxzLWJ0bi9kZXRhaWxzLWJ0bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvYnRuL2RldGFpbHMtYnRuL2RldGFpbHMtYnRuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9idG4vZGV0YWlscy1idG4vZGV0YWlscy1idG4ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2J0bi9kZXRhaWxzLWJ0bi9kZXRhaWxzLWJ0bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9jYXJkL2NhcmQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9jb3JlL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2NvcmUvYnV0dG9uL2NvbXBvbmVudHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2RvY3VtZW50cy1uYW1lLWRpc3BsYXkvZG9jdW1lbnRzLW5hbWUtZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZG9jdW1lbnRzLW5hbWUtZGlzcGxheS9kb2N1bWVudHMtbmFtZS1kaXNwbGF5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LWNhc2UvZWRpdGFibGUtdGV4dC1jYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9lZGl0YWJsZS10ZXh0LWNhc2UvZWRpdGFibGUtdGV4dC1jYXNlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9leHBvcnQtdGFibGUvZXhwb3J0LXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9leHBvcnQtdGFibGUvZXhwb3J0LXRhYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZmllbGRzLXRvLWRpc3BsYXkvZmllbGRzLXRvLWRpc3BsYXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0ZWQtdmFsdWUvZm9ybS1nZW5lcmF0ZWQtdmFsdWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWxpbmsvZm9ybS1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWxpbmsvZm9ybS1saW5rLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLXRhYi1oZWFkZXJzL2Zvcm0tdGFiLWhlYWRlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tdGFiLWhlYWRlcnMvZm9ybS10YWItaGVhZGVycy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5mby1kaWFsb2cvaW5mby1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2luZm8tZGlhbG9nL2luZm8tZGlhbG9nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2luZm8taWNvbi9pbmZvLWljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2luZm8taWNvbi9pbmZvLWljb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0LU5nTW9kZWwvaW5wdXQtbmdtb2RlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQtTmdNb2RlbC9pbnB1dC1uZ21vZGVsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC1OZ01vZGVsL3ZhbGlkYXRpb24tbWVzc2FnZS1uZ21vZGVsL3ZhbGlkYXRpb24tbWVzc2FnZS1uZ21vZGVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2RheS1ob3VyLW1pbi1pbnB1dC9kYXktaG91ci1taW4taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC1sYWJlbC9pbnB1dC1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQtdGQtcmYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC9pbnB1dHMtcGlwZXMucGlwZSc7XG5leHBvcnQgKiBhcyBJbnB1dENvbXBvbmVudHMgZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvaW5wdXQvaW5wdXRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC92YWxpZGF0aW9uLW1lc3NhZ2UvdmFsaWRhdGlvbi1tZXNzYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC95ZWFyLW1vbnRoLXRkLXJmL3llYXItbW9udGgtdGQtcmYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci1hbmltYXRpb25zL2JsaW5raW5nLWJsb2Nrcy9ibGlua2luZy1ibG9ja3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXItYW5pbWF0aW9ucy9ib3VuY2luZy1iYWxsL2JvdW5jaW5nLWJhbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2xvYWRlci9sb2FkZXItYW5pbWF0aW9ucy9mYWRpbmctYmFycy9mYWRpbmctYmFycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci1hbmltYXRpb25zL2ZhZGluZy1jaXJjbGVzL2ZhZGluZy1jaXJjbGVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLWFuaW1hdGlvbnMvcmluZy1yaXBwbGVzL3JpbmctcmlwcGxlcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbG9hZGVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL21vZGFsLWNvbXBvbmVudHMvbW9kYWwuY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9tb2RhbC1mb3JtL21vZGFsLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL21vZGFsLWZvcm0vbW9kYWwtZm9ybS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwtaGVhZGVyL21vZGFsLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwtaGVhZGVyL21vZGFsLWhlYWRlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL21vZGFsL21vZGFsLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy93ZWJjYW0tbWVkaWEvd2ViY2FtLW1lZGlhLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9tb2RhbC9tb2RhbC1ib2R5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9tb2RhbC9tb2RhbC1mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL25hcnJhdGlvbi1oaXN0b3J5LWNvbXAvbmFycmF0aW9uLWhpc3RvcnktY29tcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9wYWdlLWNlbnRlci1ib2R5L3BhZ2UtY2VudGVyLWJvZHkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3BhZ2UtdGVtcGxhdGUvcGFnZS10ZW1wbGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcGFnZS10ZW1wbGF0ZS9wYWdlLXRlbXBsYXRlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9wYWdlLXRvLWNvbXBvbmVudC9wYWdlLXRvLWNvbXBvbmVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcGFnZS10by1jb21wb25lbnQvcGFnZS10by1jb21wb25lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3BhZ2UtdG8tY29tcG9uZW50L3BhZ2UtdG8tY29tcG9uZW50Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9wYWdlLXRvLWNvbXBvbmVudC9wYWdlLXRvLWNvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9yaWNoLXRleHQtZWRpdG9yL3JpY2gtdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3JpY2gtdGV4dC1lZGl0b3ItcmYvcmljaC10ZXh0LWVkaXRvci1yZi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvcm93LWFjdGlvbnMvcm93LWFjdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3Jvdy1hY3Rpb25zL3Jvdy1hY3Rpb25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9zdmctaWNvbi9zdmctaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvc3ZnLWljb24vc3ZnLWljb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvc3ZnLWljb24vc3ZnLWljb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1odHRwcy90YWJsZS1odHRwcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtaHR0cHMvdGFibGUtaHR0cHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLWlucHV0L3RhYmxlLWlucHV0LXJvdy90YWJsZS1pbnB1dC1yb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLWlucHV0L3RhYmxlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90YWJsZS1wbGFpbi90YWJsZS1wbGFpbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtcGxhaW4vdGFibGUtcGxhaW4ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RhYmxlLXBsYWluL3RhYmxlLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGFibGUtcGxhaW4vdGFibGUtcGxhaW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWFyZWEtbW9kYWwvdGV4dC1hcmVhLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWFyZWEtbW9kYWwvdGV4dC1hcmVhLW1vZGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdGV4dC1jYXNlLTEvdGV4dC1jYXNlLTEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RleHQtY2FzZS0yL3RleHQtY2FzZS0yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWNhc2UtMi90ZXh0LWNhc2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0LWNhc2UtaW5wdXQvdGV4dC1jYXNlLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL3RvZ2dsZS1pbnB1dC1mb3JtL3RvZ2dsZS1pbnB1dC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90cmFuc2xhdG9yLWNhc2UvdHJhbnNsYXRvci1jYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy90cmFuc2xhdG9yLWNhc2UvdHJhbnNsYXRvci1jYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy92aWV3LWZvcm0tYnV0dG9ucy92aWV3LWZvcm0tYnV0dG9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2NvbXBvbmVudHMvdmlldy1mb3JtLWJ1dHRvbnMvdmlldy1mb3JtLWJ1dHRvbnMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9jb21wb25lbnRzL2lucHV0LXRhYmxlL2lucHV0LXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC10YWJsZS9pbnB1dC10YWJsZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvY29tcG9uZW50cy9pbnB1dC10YWJsZS9pbnB1dC10YWJsZS5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2RpcmVjdGl2ZXMvY29tbWFmeS1udW1iZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL2RyYWctZHJvcC1maWxlLXVwbG9hZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2RpcmVjdGl2ZXMvaW5kZXguZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL2Zvcm0taW52YWxpZC1jbGFzcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2RpcmVjdGl2ZXMvaW5wdXQtZm9ybWF0dGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9pbnRlZ2VyLW9ubHkuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL3RyYW5zbGF0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9kaXJlY3RpdmVzL21IcmVmLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9yZXNwb25zaXZlbmVzcy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL2RpcmVjdGl2ZXMvbmVnYXRpdmUtbnVtYmVyLW9ubHkuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NoYXJlZC9waXBlcy9wYWdpbmF0b3IucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvcGlwZXMvZm9ybS1pbnZhbGlkLWNsYXNzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2hhcmVkL3BpcGVzL3V0aWxpdHkucGlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2h0bWxlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2lucHV0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvcGFnZS1sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9wYWdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQmFzZUZhY2FkZVNlcnZpY2UgYXMgU0RLQmFzZUZhY2FkZVNlcnZpY2UgfSBmcm9tICcuL2xpYi9TZXJ2aWNlcy9iYXNlLmZhY2FkZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEJhc2VTZXJ2aWNlIGFzIFNES0Jhc2VTZXJ2aWNlIH0gZnJvbSAnLi9saWIvU2VydmljZXMvYmFzZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEJhc2VFZmZlY3QgYXMgU0RLQmFzZUVmZmVjdCB9IGZyb20gJy4vbGliL1NlcnZpY2VzL2Jhc2UuZWZmZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2RlYm91bmNlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3JvdXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3dpbmRvdy1zZWN1cml0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL3NlcnZpY2Utd29ya2VyL3Byb21wdC11cGRhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9zZXJ2aWNlLXdvcmtlci9sb2ctdXBkYXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvc2VydmljZS13b3JrZXIvaGFuZGxlLXVucmVjb3ZlcmFibGUtc3RhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9zZXJ2aWNlLXdvcmtlci9jaGVjay1mb3ItdXBkYXRlLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9JbnRlcmNlcHRvcnMvcmVxdWVzdC10aW1lb3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvSW50ZXJjZXB0b3JzL3JlcXVlc3QtbG9hZGVyLWludGVyY2VwdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvSW50ZXJjZXB0b3JzL2xvZ2dlci1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL0ludGVyY2VwdG9ycy9nbG9iYWwtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL0ludGVyY2VwdG9ycy9hdXRoZW50aWNhdGlvbi1pbnRlcmNlcHRvci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvY2FjaGUvY2FjaGUtdXBkYXRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1NlcnZpY2VzL2NhY2hlL2NhY2hlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvU2VydmljZXMvY2FjaGUvbG9jYWwtY2FjaGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9TZXJ2aWNlcy9jYWNoZS9zYXZlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9TaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL2xvZ2dlci9sb2dnZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy9sb2dnZXIvbG9nZ2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci1yb3V0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvbG9nZ2VyL2xvZ2dlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3BhZ2Utbm90LWZvdW5kL3BhZ2Utbm90LWZvdW5kLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvcm9ib3Qvcm9ib3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1jb21wcy9maW5kLWl0ZW0vZmluZC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtY29tcHMvZmluZC1pdGVtL2ZpbmQtaXRlbS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtY29tcHMvZmluZC1pdGVtL2ZpbmQtaXRlbS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLWNvbXBzL3dhdGVybWFyay93YXRlcm1hcmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy9yZXNldC9yZXNldC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUmV1c2FibGVzL3JldXNhYmxlLXBhZ2VzL3VzZXItYWN0aXZpdHkvdWEtZXh0cmFzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdXNlci1hY3Rpdml0eS91YS1leHRyYXMvdXNlci1hY3Rpdml0eS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdmVyc2lvbi92ZXJzaW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9SZXVzYWJsZXMvcmV1c2FibGUtcGFnZXMvdGltZW91dC10ZXN0ZXIvdGltZW91dC10ZXN0ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1JldXNhYmxlcy9yZXVzYWJsZS1wYWdlcy9leHRyYS1wYWdlcy9leHRyYS1wYWdlcy5tb2R1bGUnO1xuXG5leHBvcnQgKiBhcyBQcm90b3R5cGVzIGZyb20gJy4vbGliL1NoYXJlZC9wcm90b3R5cGVzL3Byb3RvdHlwZXMnO1xuXG4vLyNyZWdpb24gYXV0aGVudGljYXRpb25cbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3dlYi11c2VyL3dlYi11c2VyLWF1dGhlbnRpY2F0aW9uLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3dlYi11c2VyL3dlYi11c2VyLWF1dGhlbnRpY2F0aW9uLmludGVyY2VwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3dlYi11c2VyL3dlYi11c2VyLWF1dGhlbnRpY2F0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGhlbnRpY2F0aW9uL3dlYi11c2VyL3dlYi11c2VyLWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aGVudGljYXRpb24vd2ViLXVzZXIvd2ViLXVzZXItZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoZW50aWNhdGlvbi93ZWItdXNlci93ZWItdXNlci1sb2dpbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aGVudGljYXRpb24vd2ViLXVzZXIvd2ViLXVzZXItcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50Jztcbi8vI2VuZHJlZ2lvblxuIl19