@aws-cdk/aws-medialive-alpha 2.268.0-alpha.0

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 (70) hide show
  1. package/.jsii +60888 -0
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +524 -0
  4. package/LICENSE +201 -0
  5. package/NOTICE +2 -0
  6. package/README.md +1297 -0
  7. package/grants.json +27 -0
  8. package/lib/audio-codec-settings.d.ts +901 -0
  9. package/lib/audio-codec-settings.js +1098 -0
  10. package/lib/audio-selector.d.ts +170 -0
  11. package/lib/audio-selector.js +306 -0
  12. package/lib/avail-settings.d.ts +231 -0
  13. package/lib/avail-settings.js +226 -0
  14. package/lib/caption-selector.d.ts +234 -0
  15. package/lib/caption-selector.js +413 -0
  16. package/lib/caption-settings.d.ts +349 -0
  17. package/lib/caption-settings.js +482 -0
  18. package/lib/channel-features.d.ts +106 -0
  19. package/lib/channel-features.js +85 -0
  20. package/lib/channel-placement-group.d.ts +73 -0
  21. package/lib/channel-placement-group.js +132 -0
  22. package/lib/channel.d.ts +687 -0
  23. package/lib/channel.js +1096 -0
  24. package/lib/cluster.d.ts +129 -0
  25. package/lib/cluster.js +158 -0
  26. package/lib/color-correction.d.ts +39 -0
  27. package/lib/color-correction.js +29 -0
  28. package/lib/destinations.d.ts +242 -0
  29. package/lib/destinations.js +455 -0
  30. package/lib/encode-configuration.d.ts +615 -0
  31. package/lib/encode-configuration.js +629 -0
  32. package/lib/enums.d.ts +698 -0
  33. package/lib/enums.js +1045 -0
  34. package/lib/file-location.d.ts +65 -0
  35. package/lib/file-location.js +150 -0
  36. package/lib/framerate.d.ts +31 -0
  37. package/lib/framerate.js +71 -0
  38. package/lib/index.d.ts +26 -0
  39. package/lib/index.js +43 -0
  40. package/lib/input-attachment.d.ts +319 -0
  41. package/lib/input-attachment.js +228 -0
  42. package/lib/input-security-group.d.ts +51 -0
  43. package/lib/input-security-group.js +123 -0
  44. package/lib/input-specification.d.ts +111 -0
  45. package/lib/input-specification.js +181 -0
  46. package/lib/input.d.ts +505 -0
  47. package/lib/input.js +803 -0
  48. package/lib/m2ts-settings.d.ts +421 -0
  49. package/lib/m2ts-settings.js +469 -0
  50. package/lib/m3u8-settings.d.ts +272 -0
  51. package/lib/m3u8-settings.js +304 -0
  52. package/lib/medialive-grants.generated.d.ts +30 -0
  53. package/lib/medialive-grants.generated.js +92 -0
  54. package/lib/network.d.ts +83 -0
  55. package/lib/network.js +132 -0
  56. package/lib/output-group.d.ts +924 -0
  57. package/lib/output-group.js +941 -0
  58. package/lib/outputs.d.ts +304 -0
  59. package/lib/outputs.js +598 -0
  60. package/lib/sdi-source.d.ts +124 -0
  61. package/lib/sdi-source.js +180 -0
  62. package/lib/shared.d.ts +44 -0
  63. package/lib/shared.js +146 -0
  64. package/lib/video-codec-settings.d.ts +1500 -0
  65. package/lib/video-codec-settings.js +1722 -0
  66. package/lib/video-selection.d.ts +92 -0
  67. package/lib/video-selection.js +95 -0
  68. package/package.json +135 -0
  69. package/rosetta/_generated.ts-fixture +6 -0
  70. package/rosetta/default.ts-fixture +21 -0
package/lib/enums.js ADDED
@@ -0,0 +1,1045 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NielsenId3Behavior = exports.KlvBehavior = exports.Id3Behavior = exports.MsSmoothTimestampOffsetMode = exports.MsSmoothStreamManifestBehavior = exports.MsSmoothSparseTrackType = exports.MsSmoothSegmentationMode = exports.MsSmoothInputLossAction = exports.MsSmoothEventStopBehavior = exports.MsSmoothEventIdMode = exports.MsSmoothCertificateMode = exports.MsSmoothAudioOnlyTimecodeControl = exports.UdpTimedMetadataId3Frame = exports.FecMode = exports.UdpInputLossAction = exports.SrtEncryptionType = exports.SrtInputLossAction = exports.RtmpCertificateMode = exports.RtmpIncludeFillerNalUnits = exports.RtmpInputLossAction = exports.RtmpCaptionData = exports.RtmpCacheFullBehavior = exports.RtmpAuthenticationScheme = exports.HlsTsFileMode = exports.HttpTransferMode = exports.HlsTimedMetadataId3Frame = exports.RtmpAdMarkers = exports.HlsAdMarkers = exports.MediaPackageV2HlsSetting = exports.HlsCaptionLanguageSetting = exports.HlsStreamInfResolution = exports.HlsSegmentationMode = exports.HlsRedundantManifest = exports.HlsProgramDateTimeClock = exports.HlsProgramDateTime = exports.HlsOutputSelection = exports.HlsManifestDurationFormat = exports.HlsManifestCompression = exports.HlsIvSource = exports.HlsIvInManifest = exports.HlsIncompleteSegmentBehavior = exports.HlsIFrameOnlyPlaylists = exports.HlsId3SegmentTaggingState = exports.HlsEncryptionType = exports.HlsDiscontinuityTags = exports.HlsDirectoryStructure = exports.HlsCodecSpecification = exports.HlsClientCache = exports.HlsInputLossAction = exports.HlsMode = void 0;
4
+ exports.H265PackagingType = exports.S3CannedAcl = exports.TimedMetadataPassthrough = exports.TimedMetadataId3Frame = exports.SegmentLengthUnits = exports.Scte35Type = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /** HLS output mode. */
7
+ class HlsMode {
8
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsMode", version: "2.268.0-alpha.0" };
9
+ /** Live mode — older segments are removed */
10
+ static LIVE = new HlsMode('LIVE');
11
+ /** VOD mode — all segments are kept */
12
+ static VOD = new HlsMode('VOD');
13
+ /** A value not yet modelled by AWS CDK. */
14
+ static of(value) {
15
+ return new HlsMode(value);
16
+ }
17
+ /** The underlying string value passed to CloudFormation. */
18
+ value;
19
+ constructor(value) {
20
+ this.value = value;
21
+ }
22
+ }
23
+ exports.HlsMode = HlsMode;
24
+ /** HLS input loss action. */
25
+ class HlsInputLossAction {
26
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsInputLossAction", version: "2.268.0-alpha.0" };
27
+ /** Emit output with slate/black frames */
28
+ static EMIT_OUTPUT = new HlsInputLossAction('EMIT_OUTPUT');
29
+ /** Pause the output */
30
+ static PAUSE_OUTPUT = new HlsInputLossAction('PAUSE_OUTPUT');
31
+ /** A value not yet modelled by AWS CDK. */
32
+ static of(value) {
33
+ return new HlsInputLossAction(value);
34
+ }
35
+ /** The underlying string value passed to CloudFormation. */
36
+ value;
37
+ constructor(value) {
38
+ this.value = value;
39
+ }
40
+ }
41
+ exports.HlsInputLossAction = HlsInputLossAction;
42
+ /** HLS client cache control. */
43
+ class HlsClientCache {
44
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsClientCache", version: "2.268.0-alpha.0" };
45
+ /** Enable client caching */
46
+ static ENABLED = new HlsClientCache('ENABLED');
47
+ /** Disable client caching */
48
+ static DISABLED = new HlsClientCache('DISABLED');
49
+ /** A value not yet modelled by AWS CDK. */
50
+ static of(value) {
51
+ return new HlsClientCache(value);
52
+ }
53
+ /** The underlying string value passed to CloudFormation. */
54
+ value;
55
+ constructor(value) {
56
+ this.value = value;
57
+ }
58
+ }
59
+ exports.HlsClientCache = HlsClientCache;
60
+ /** HLS codec specification. */
61
+ class HlsCodecSpecification {
62
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsCodecSpecification", version: "2.268.0-alpha.0" };
63
+ /** RFC 4281 */
64
+ static RFC_4281 = new HlsCodecSpecification('RFC_4281');
65
+ /** RFC 6381 */
66
+ static RFC_6381 = new HlsCodecSpecification('RFC_6381');
67
+ /** A value not yet modelled by AWS CDK. */
68
+ static of(value) {
69
+ return new HlsCodecSpecification(value);
70
+ }
71
+ /** The underlying string value passed to CloudFormation. */
72
+ value;
73
+ constructor(value) {
74
+ this.value = value;
75
+ }
76
+ }
77
+ exports.HlsCodecSpecification = HlsCodecSpecification;
78
+ /** HLS directory structure. */
79
+ class HlsDirectoryStructure {
80
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsDirectoryStructure", version: "2.268.0-alpha.0" };
81
+ /** Single directory */
82
+ static SINGLE_DIRECTORY = new HlsDirectoryStructure('SINGLE_DIRECTORY');
83
+ /** Subdirectory per stream */
84
+ static SUBDIRECTORY_PER_STREAM = new HlsDirectoryStructure('SUBDIRECTORY_PER_STREAM');
85
+ /** A value not yet modelled by AWS CDK. */
86
+ static of(value) {
87
+ return new HlsDirectoryStructure(value);
88
+ }
89
+ /** The underlying string value passed to CloudFormation. */
90
+ value;
91
+ constructor(value) {
92
+ this.value = value;
93
+ }
94
+ }
95
+ exports.HlsDirectoryStructure = HlsDirectoryStructure;
96
+ /** HLS discontinuity tags. */
97
+ class HlsDiscontinuityTags {
98
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsDiscontinuityTags", version: "2.268.0-alpha.0" };
99
+ /** Insert discontinuity tags */
100
+ static INSERT = new HlsDiscontinuityTags('INSERT');
101
+ /** Never insert discontinuity tags */
102
+ static NEVER_INSERT = new HlsDiscontinuityTags('NEVER_INSERT');
103
+ /** A value not yet modelled by AWS CDK. */
104
+ static of(value) {
105
+ return new HlsDiscontinuityTags(value);
106
+ }
107
+ /** The underlying string value passed to CloudFormation. */
108
+ value;
109
+ constructor(value) {
110
+ this.value = value;
111
+ }
112
+ }
113
+ exports.HlsDiscontinuityTags = HlsDiscontinuityTags;
114
+ /** HLS encryption type. */
115
+ class HlsEncryptionType {
116
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsEncryptionType", version: "2.268.0-alpha.0" };
117
+ /** AES-128 encryption */
118
+ static AES128 = new HlsEncryptionType('AES128');
119
+ /** Sample AES encryption */
120
+ static SAMPLE_AES = new HlsEncryptionType('SAMPLE_AES');
121
+ /** A value not yet modelled by AWS CDK. */
122
+ static of(value) {
123
+ return new HlsEncryptionType(value);
124
+ }
125
+ /** The underlying string value passed to CloudFormation. */
126
+ value;
127
+ constructor(value) {
128
+ this.value = value;
129
+ }
130
+ }
131
+ exports.HlsEncryptionType = HlsEncryptionType;
132
+ /** HLS ID3 segment tagging state. */
133
+ class HlsId3SegmentTaggingState {
134
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsId3SegmentTaggingState", version: "2.268.0-alpha.0" };
135
+ /** Disabled */
136
+ static DISABLED = new HlsId3SegmentTaggingState('DISABLED');
137
+ /** Enabled */
138
+ static ENABLED = new HlsId3SegmentTaggingState('ENABLED');
139
+ /** A value not yet modelled by AWS CDK. */
140
+ static of(value) {
141
+ return new HlsId3SegmentTaggingState(value);
142
+ }
143
+ /** The underlying string value passed to CloudFormation. */
144
+ value;
145
+ constructor(value) {
146
+ this.value = value;
147
+ }
148
+ }
149
+ exports.HlsId3SegmentTaggingState = HlsId3SegmentTaggingState;
150
+ /** HLS I-frame only playlists. */
151
+ class HlsIFrameOnlyPlaylists {
152
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsIFrameOnlyPlaylists", version: "2.268.0-alpha.0" };
153
+ /** Disabled */
154
+ static DISABLED = new HlsIFrameOnlyPlaylists('DISABLED');
155
+ /** Standard */
156
+ static STANDARD = new HlsIFrameOnlyPlaylists('STANDARD');
157
+ /** A value not yet modelled by AWS CDK. */
158
+ static of(value) {
159
+ return new HlsIFrameOnlyPlaylists(value);
160
+ }
161
+ /** The underlying string value passed to CloudFormation. */
162
+ value;
163
+ constructor(value) {
164
+ this.value = value;
165
+ }
166
+ }
167
+ exports.HlsIFrameOnlyPlaylists = HlsIFrameOnlyPlaylists;
168
+ /** HLS incomplete segment behavior. */
169
+ class HlsIncompleteSegmentBehavior {
170
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsIncompleteSegmentBehavior", version: "2.268.0-alpha.0" };
171
+ /** Auto */
172
+ static AUTO = new HlsIncompleteSegmentBehavior('AUTO');
173
+ /** Suppress */
174
+ static SUPPRESS = new HlsIncompleteSegmentBehavior('SUPPRESS');
175
+ /** A value not yet modelled by AWS CDK. */
176
+ static of(value) {
177
+ return new HlsIncompleteSegmentBehavior(value);
178
+ }
179
+ /** The underlying string value passed to CloudFormation. */
180
+ value;
181
+ constructor(value) {
182
+ this.value = value;
183
+ }
184
+ }
185
+ exports.HlsIncompleteSegmentBehavior = HlsIncompleteSegmentBehavior;
186
+ /** HLS IV in manifest. */
187
+ class HlsIvInManifest {
188
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsIvInManifest", version: "2.268.0-alpha.0" };
189
+ /** Include IV in manifest */
190
+ static INCLUDE = new HlsIvInManifest('INCLUDE');
191
+ /** Exclude IV from manifest */
192
+ static EXCLUDE = new HlsIvInManifest('EXCLUDE');
193
+ /** A value not yet modelled by AWS CDK. */
194
+ static of(value) {
195
+ return new HlsIvInManifest(value);
196
+ }
197
+ /** The underlying string value passed to CloudFormation. */
198
+ value;
199
+ constructor(value) {
200
+ this.value = value;
201
+ }
202
+ }
203
+ exports.HlsIvInManifest = HlsIvInManifest;
204
+ /** HLS IV source. */
205
+ class HlsIvSource {
206
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsIvSource", version: "2.268.0-alpha.0" };
207
+ /** IV follows segment number */
208
+ static FOLLOWS_SEGMENT_NUMBER = new HlsIvSource('FOLLOWS_SEGMENT_NUMBER');
209
+ /** Explicit IV */
210
+ static EXPLICIT = new HlsIvSource('EXPLICIT');
211
+ /** A value not yet modelled by AWS CDK. */
212
+ static of(value) {
213
+ return new HlsIvSource(value);
214
+ }
215
+ /** The underlying string value passed to CloudFormation. */
216
+ value;
217
+ constructor(value) {
218
+ this.value = value;
219
+ }
220
+ }
221
+ exports.HlsIvSource = HlsIvSource;
222
+ /** HLS manifest compression. */
223
+ class HlsManifestCompression {
224
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsManifestCompression", version: "2.268.0-alpha.0" };
225
+ /** No compression */
226
+ static NONE = new HlsManifestCompression('NONE');
227
+ /** Gzip compression */
228
+ static GZIP = new HlsManifestCompression('GZIP');
229
+ /** A value not yet modelled by AWS CDK. */
230
+ static of(value) {
231
+ return new HlsManifestCompression(value);
232
+ }
233
+ /** The underlying string value passed to CloudFormation. */
234
+ value;
235
+ constructor(value) {
236
+ this.value = value;
237
+ }
238
+ }
239
+ exports.HlsManifestCompression = HlsManifestCompression;
240
+ /** HLS manifest duration format. */
241
+ class HlsManifestDurationFormat {
242
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsManifestDurationFormat", version: "2.268.0-alpha.0" };
243
+ /** Floating point */
244
+ static FLOATING_POINT = new HlsManifestDurationFormat('FLOATING_POINT');
245
+ /** Integer */
246
+ static INTEGER = new HlsManifestDurationFormat('INTEGER');
247
+ /** A value not yet modelled by AWS CDK. */
248
+ static of(value) {
249
+ return new HlsManifestDurationFormat(value);
250
+ }
251
+ /** The underlying string value passed to CloudFormation. */
252
+ value;
253
+ constructor(value) {
254
+ this.value = value;
255
+ }
256
+ }
257
+ exports.HlsManifestDurationFormat = HlsManifestDurationFormat;
258
+ /** HLS output selection. */
259
+ class HlsOutputSelection {
260
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsOutputSelection", version: "2.268.0-alpha.0" };
261
+ /** Manifests and segments */
262
+ static MANIFESTS_AND_SEGMENTS = new HlsOutputSelection('MANIFESTS_AND_SEGMENTS');
263
+ /** Segments only */
264
+ static SEGMENTS_ONLY = new HlsOutputSelection('SEGMENTS_ONLY');
265
+ /** Variant manifests and segments */
266
+ static VARIANT_MANIFESTS_AND_SEGMENTS = new HlsOutputSelection('VARIANT_MANIFESTS_AND_SEGMENTS');
267
+ /** A value not yet modelled by AWS CDK. */
268
+ static of(value) {
269
+ return new HlsOutputSelection(value);
270
+ }
271
+ /** The underlying string value passed to CloudFormation. */
272
+ value;
273
+ constructor(value) {
274
+ this.value = value;
275
+ }
276
+ }
277
+ exports.HlsOutputSelection = HlsOutputSelection;
278
+ /** HLS program date time. */
279
+ class HlsProgramDateTime {
280
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsProgramDateTime", version: "2.268.0-alpha.0" };
281
+ /** Include */
282
+ static INCLUDE = new HlsProgramDateTime('INCLUDE');
283
+ /** Exclude */
284
+ static EXCLUDE = new HlsProgramDateTime('EXCLUDE');
285
+ /** A value not yet modelled by AWS CDK. */
286
+ static of(value) {
287
+ return new HlsProgramDateTime(value);
288
+ }
289
+ /** The underlying string value passed to CloudFormation. */
290
+ value;
291
+ constructor(value) {
292
+ this.value = value;
293
+ }
294
+ }
295
+ exports.HlsProgramDateTime = HlsProgramDateTime;
296
+ /** HLS program date time clock. */
297
+ class HlsProgramDateTimeClock {
298
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsProgramDateTimeClock", version: "2.268.0-alpha.0" };
299
+ /** Initialize from output timecode */
300
+ static INITIALIZE_FROM_OUTPUT_TIMECODE = new HlsProgramDateTimeClock('INITIALIZE_FROM_OUTPUT_TIMECODE');
301
+ /** System clock */
302
+ static SYSTEM_CLOCK = new HlsProgramDateTimeClock('SYSTEM_CLOCK');
303
+ /** A value not yet modelled by AWS CDK. */
304
+ static of(value) {
305
+ return new HlsProgramDateTimeClock(value);
306
+ }
307
+ /** The underlying string value passed to CloudFormation. */
308
+ value;
309
+ constructor(value) {
310
+ this.value = value;
311
+ }
312
+ }
313
+ exports.HlsProgramDateTimeClock = HlsProgramDateTimeClock;
314
+ /** HLS redundant manifest. */
315
+ class HlsRedundantManifest {
316
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsRedundantManifest", version: "2.268.0-alpha.0" };
317
+ /** Disabled */
318
+ static DISABLED = new HlsRedundantManifest('DISABLED');
319
+ /** Enabled */
320
+ static ENABLED = new HlsRedundantManifest('ENABLED');
321
+ /** A value not yet modelled by AWS CDK. */
322
+ static of(value) {
323
+ return new HlsRedundantManifest(value);
324
+ }
325
+ /** The underlying string value passed to CloudFormation. */
326
+ value;
327
+ constructor(value) {
328
+ this.value = value;
329
+ }
330
+ }
331
+ exports.HlsRedundantManifest = HlsRedundantManifest;
332
+ /** HLS segmentation mode. */
333
+ class HlsSegmentationMode {
334
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsSegmentationMode", version: "2.268.0-alpha.0" };
335
+ /** Use input segmentation */
336
+ static USE_INPUT_SEGMENTATION = new HlsSegmentationMode('USE_INPUT_SEGMENTATION');
337
+ /** Use segment duration */
338
+ static USE_SEGMENT_DURATION = new HlsSegmentationMode('USE_SEGMENT_DURATION');
339
+ /** A value not yet modelled by AWS CDK. */
340
+ static of(value) {
341
+ return new HlsSegmentationMode(value);
342
+ }
343
+ /** The underlying string value passed to CloudFormation. */
344
+ value;
345
+ constructor(value) {
346
+ this.value = value;
347
+ }
348
+ }
349
+ exports.HlsSegmentationMode = HlsSegmentationMode;
350
+ /** HLS stream inf resolution. */
351
+ class HlsStreamInfResolution {
352
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsStreamInfResolution", version: "2.268.0-alpha.0" };
353
+ /** Include */
354
+ static INCLUDE = new HlsStreamInfResolution('INCLUDE');
355
+ /** Exclude */
356
+ static EXCLUDE = new HlsStreamInfResolution('EXCLUDE');
357
+ /** A value not yet modelled by AWS CDK. */
358
+ static of(value) {
359
+ return new HlsStreamInfResolution(value);
360
+ }
361
+ /** The underlying string value passed to CloudFormation. */
362
+ value;
363
+ constructor(value) {
364
+ this.value = value;
365
+ }
366
+ }
367
+ exports.HlsStreamInfResolution = HlsStreamInfResolution;
368
+ /** HLS caption language setting. */
369
+ class HlsCaptionLanguageSetting {
370
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsCaptionLanguageSetting", version: "2.268.0-alpha.0" };
371
+ /** Insert */
372
+ static INSERT = new HlsCaptionLanguageSetting('INSERT');
373
+ /** None */
374
+ static NONE = new HlsCaptionLanguageSetting('NONE');
375
+ /** Omit */
376
+ static OMIT = new HlsCaptionLanguageSetting('OMIT');
377
+ /** A value not yet modelled by AWS CDK. */
378
+ static of(value) {
379
+ return new HlsCaptionLanguageSetting(value);
380
+ }
381
+ /** The underlying string value passed to CloudFormation. */
382
+ value;
383
+ constructor(value) {
384
+ this.value = value;
385
+ }
386
+ }
387
+ exports.HlsCaptionLanguageSetting = HlsCaptionLanguageSetting;
388
+ /**
389
+ * Whether MediaPackage sets a MediaPackage V2 audio rendition as default / auto-select in the HLS
390
+ * manifest. Across all renditions: at most one may be `YES`; not all may be `NO`.
391
+ */
392
+ class MediaPackageV2HlsSetting {
393
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MediaPackageV2HlsSetting", version: "2.268.0-alpha.0" };
394
+ /** Set this rendition as default / auto-select. */
395
+ static YES = new MediaPackageV2HlsSetting('YES');
396
+ /** Do not set this rendition as default / auto-select. */
397
+ static NO = new MediaPackageV2HlsSetting('NO');
398
+ /** Let MediaPackage decide for this rendition. */
399
+ static OMIT = new MediaPackageV2HlsSetting('OMIT');
400
+ /** A value not yet modelled by AWS CDK. */
401
+ static of(value) {
402
+ return new MediaPackageV2HlsSetting(value);
403
+ }
404
+ /** The underlying string value passed to CloudFormation. */
405
+ value;
406
+ constructor(value) {
407
+ this.value = value;
408
+ }
409
+ }
410
+ exports.MediaPackageV2HlsSetting = MediaPackageV2HlsSetting;
411
+ /** Ad marker type for an HLS output group. */
412
+ class HlsAdMarkers {
413
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsAdMarkers", version: "2.268.0-alpha.0" };
414
+ /** Adobe ad markers. */
415
+ static ADOBE = new HlsAdMarkers('ADOBE');
416
+ /** Elemental ad markers. */
417
+ static ELEMENTAL = new HlsAdMarkers('ELEMENTAL');
418
+ /** Elemental SCTE-35 ad markers. */
419
+ static ELEMENTAL_SCTE35 = new HlsAdMarkers('ELEMENTAL_SCTE35');
420
+ /** A value not yet modelled by AWS CDK. */
421
+ static of(value) {
422
+ return new HlsAdMarkers(value);
423
+ }
424
+ /** The underlying string value passed to CloudFormation. */
425
+ value;
426
+ constructor(value) {
427
+ this.value = value;
428
+ }
429
+ }
430
+ exports.HlsAdMarkers = HlsAdMarkers;
431
+ /** Ad marker type for an RTMP output group. */
432
+ class RtmpAdMarkers {
433
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpAdMarkers", version: "2.268.0-alpha.0" };
434
+ /** onCuePoint SCTE-35 ad markers. */
435
+ static ON_CUE_POINT_SCTE35 = new RtmpAdMarkers('ON_CUE_POINT_SCTE35');
436
+ /** A value not yet modelled by AWS CDK. */
437
+ static of(value) {
438
+ return new RtmpAdMarkers(value);
439
+ }
440
+ /** The underlying string value passed to CloudFormation. */
441
+ value;
442
+ constructor(value) {
443
+ this.value = value;
444
+ }
445
+ }
446
+ exports.RtmpAdMarkers = RtmpAdMarkers;
447
+ /** HLS timed metadata ID3 frame. */
448
+ class HlsTimedMetadataId3Frame {
449
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsTimedMetadataId3Frame", version: "2.268.0-alpha.0" };
450
+ /** None */
451
+ static NONE = new HlsTimedMetadataId3Frame('NONE');
452
+ /** PRIV */
453
+ static PRIV = new HlsTimedMetadataId3Frame('PRIV');
454
+ /** TDRL */
455
+ static TDRL = new HlsTimedMetadataId3Frame('TDRL');
456
+ /** A value not yet modelled by AWS CDK. */
457
+ static of(value) {
458
+ return new HlsTimedMetadataId3Frame(value);
459
+ }
460
+ /** The underlying string value passed to CloudFormation. */
461
+ value;
462
+ constructor(value) {
463
+ this.value = value;
464
+ }
465
+ }
466
+ exports.HlsTimedMetadataId3Frame = HlsTimedMetadataId3Frame;
467
+ /** Whether to use chunked transfer encoding for an HLS CDN connection (Akamai, WebDAV). */
468
+ class HttpTransferMode {
469
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HttpTransferMode", version: "2.268.0-alpha.0" };
470
+ /** Use chunked transfer encoding. */
471
+ static CHUNKED = new HttpTransferMode('CHUNKED');
472
+ /** Do not use chunked transfer encoding. */
473
+ static NON_CHUNKED = new HttpTransferMode('NON_CHUNKED');
474
+ /** A value not yet modelled by AWS CDK. */
475
+ static of(value) {
476
+ return new HttpTransferMode(value);
477
+ }
478
+ /** The underlying string value passed to CloudFormation. */
479
+ value;
480
+ constructor(value) {
481
+ this.value = value;
482
+ }
483
+ }
484
+ exports.HttpTransferMode = HttpTransferMode;
485
+ /** HLS TS file mode. */
486
+ class HlsTsFileMode {
487
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.HlsTsFileMode", version: "2.268.0-alpha.0" };
488
+ /** Segmented files */
489
+ static SEGMENTED_FILES = new HlsTsFileMode('SEGMENTED_FILES');
490
+ /** Single file */
491
+ static SINGLE_FILE = new HlsTsFileMode('SINGLE_FILE');
492
+ /** A value not yet modelled by AWS CDK. */
493
+ static of(value) {
494
+ return new HlsTsFileMode(value);
495
+ }
496
+ /** The underlying string value passed to CloudFormation. */
497
+ value;
498
+ constructor(value) {
499
+ this.value = value;
500
+ }
501
+ }
502
+ exports.HlsTsFileMode = HlsTsFileMode;
503
+ /** RTMP authentication scheme. */
504
+ class RtmpAuthenticationScheme {
505
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpAuthenticationScheme", version: "2.268.0-alpha.0" };
506
+ /** Common authentication */
507
+ static COMMON = new RtmpAuthenticationScheme('COMMON');
508
+ /** Akamai authentication */
509
+ static AKAMAI = new RtmpAuthenticationScheme('AKAMAI');
510
+ /** A value not yet modelled by AWS CDK. */
511
+ static of(value) {
512
+ return new RtmpAuthenticationScheme(value);
513
+ }
514
+ /** The underlying string value passed to CloudFormation. */
515
+ value;
516
+ constructor(value) {
517
+ this.value = value;
518
+ }
519
+ }
520
+ exports.RtmpAuthenticationScheme = RtmpAuthenticationScheme;
521
+ /** RTMP cache full behavior. */
522
+ class RtmpCacheFullBehavior {
523
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpCacheFullBehavior", version: "2.268.0-alpha.0" };
524
+ /** Disconnect immediately */
525
+ static DISCONNECT_IMMEDIATELY = new RtmpCacheFullBehavior('DISCONNECT_IMMEDIATELY');
526
+ /** Wait for server */
527
+ static WAIT_FOR_SERVER = new RtmpCacheFullBehavior('WAIT_FOR_SERVER');
528
+ /** A value not yet modelled by AWS CDK. */
529
+ static of(value) {
530
+ return new RtmpCacheFullBehavior(value);
531
+ }
532
+ /** The underlying string value passed to CloudFormation. */
533
+ value;
534
+ constructor(value) {
535
+ this.value = value;
536
+ }
537
+ }
538
+ exports.RtmpCacheFullBehavior = RtmpCacheFullBehavior;
539
+ /** RTMP caption data. */
540
+ class RtmpCaptionData {
541
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpCaptionData", version: "2.268.0-alpha.0" };
542
+ /** All */
543
+ static ALL = new RtmpCaptionData('ALL');
544
+ /** Field 1 and field 2 608 */
545
+ static FIELD1_AND_FIELD2_608 = new RtmpCaptionData('FIELD1_AND_FIELD2_608');
546
+ /** Field 1 608 */
547
+ static FIELD1_608 = new RtmpCaptionData('FIELD1_608');
548
+ /** A value not yet modelled by AWS CDK. */
549
+ static of(value) {
550
+ return new RtmpCaptionData(value);
551
+ }
552
+ /** The underlying string value passed to CloudFormation. */
553
+ value;
554
+ constructor(value) {
555
+ this.value = value;
556
+ }
557
+ }
558
+ exports.RtmpCaptionData = RtmpCaptionData;
559
+ /** RTMP input loss action. */
560
+ class RtmpInputLossAction {
561
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpInputLossAction", version: "2.268.0-alpha.0" };
562
+ /** Emit output */
563
+ static EMIT_OUTPUT = new RtmpInputLossAction('EMIT_OUTPUT');
564
+ /** Pause output */
565
+ static PAUSE_OUTPUT = new RtmpInputLossAction('PAUSE_OUTPUT');
566
+ /** A value not yet modelled by AWS CDK. */
567
+ static of(value) {
568
+ return new RtmpInputLossAction(value);
569
+ }
570
+ /** The underlying string value passed to CloudFormation. */
571
+ value;
572
+ constructor(value) {
573
+ this.value = value;
574
+ }
575
+ }
576
+ exports.RtmpInputLossAction = RtmpInputLossAction;
577
+ /** RTMP include filler NAL units. */
578
+ class RtmpIncludeFillerNalUnits {
579
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpIncludeFillerNalUnits", version: "2.268.0-alpha.0" };
580
+ /** Auto */
581
+ static AUTO = new RtmpIncludeFillerNalUnits('AUTO');
582
+ /** Drop */
583
+ static DROP = new RtmpIncludeFillerNalUnits('DROP');
584
+ /** Include */
585
+ static INCLUDE = new RtmpIncludeFillerNalUnits('INCLUDE');
586
+ /** A value not yet modelled by AWS CDK. */
587
+ static of(value) {
588
+ return new RtmpIncludeFillerNalUnits(value);
589
+ }
590
+ /** The underlying string value passed to CloudFormation. */
591
+ value;
592
+ constructor(value) {
593
+ this.value = value;
594
+ }
595
+ }
596
+ exports.RtmpIncludeFillerNalUnits = RtmpIncludeFillerNalUnits;
597
+ /** RTMP TLS certificate verification mode. */
598
+ class RtmpCertificateMode {
599
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.RtmpCertificateMode", version: "2.268.0-alpha.0" };
600
+ /** Verify the TLS certificate chain */
601
+ static VERIFY_AUTHENTICITY = new RtmpCertificateMode('VERIFY_AUTHENTICITY');
602
+ /** Do not verify the TLS certificate */
603
+ static SELF_SIGNED = new RtmpCertificateMode('SELF_SIGNED');
604
+ /** A value not yet modelled by AWS CDK. */
605
+ static of(value) {
606
+ return new RtmpCertificateMode(value);
607
+ }
608
+ /** The underlying string value passed to CloudFormation. */
609
+ value;
610
+ constructor(value) {
611
+ this.value = value;
612
+ }
613
+ }
614
+ exports.RtmpCertificateMode = RtmpCertificateMode;
615
+ /**
616
+ * Behavior of last resort when input video is lost and no more backup inputs are available,
617
+ * for an SRT output group.
618
+ */
619
+ class SrtInputLossAction {
620
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.SrtInputLossAction", version: "2.268.0-alpha.0" };
621
+ /** Drop the entire transport stream. */
622
+ static DROP_TS = new SrtInputLossAction('DROP_TS');
623
+ /** Drop the program from the transport stream (replaced with null packets to meet bitrate). */
624
+ static DROP_PROGRAM = new SrtInputLossAction('DROP_PROGRAM');
625
+ /** Continue emitting with repeat, black, or slate frames substituted for the absent video. */
626
+ static EMIT_PROGRAM = new SrtInputLossAction('EMIT_PROGRAM');
627
+ /** A value not yet modelled by AWS CDK. */
628
+ static of(value) {
629
+ return new SrtInputLossAction(value);
630
+ }
631
+ /** The underlying string value passed to CloudFormation. */
632
+ value;
633
+ constructor(value) {
634
+ this.value = value;
635
+ }
636
+ }
637
+ exports.SrtInputLossAction = SrtInputLossAction;
638
+ /** SRT output encryption type. */
639
+ class SrtEncryptionType {
640
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.SrtEncryptionType", version: "2.268.0-alpha.0" };
641
+ /** AES-128 encryption */
642
+ static AES128 = new SrtEncryptionType('AES128');
643
+ /** AES-192 encryption */
644
+ static AES192 = new SrtEncryptionType('AES192');
645
+ /** AES-256 encryption */
646
+ static AES256 = new SrtEncryptionType('AES256');
647
+ /** A value not yet modelled by AWS CDK. */
648
+ static of(value) {
649
+ return new SrtEncryptionType(value);
650
+ }
651
+ /** The underlying string value passed to CloudFormation. */
652
+ value;
653
+ constructor(value) {
654
+ this.value = value;
655
+ }
656
+ }
657
+ exports.SrtEncryptionType = SrtEncryptionType;
658
+ /** UDP input loss action. */
659
+ class UdpInputLossAction {
660
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.UdpInputLossAction", version: "2.268.0-alpha.0" };
661
+ /** Drop the entire transport stream */
662
+ static DROP_TS = new UdpInputLossAction('DROP_TS');
663
+ /** Drop the program from the transport stream */
664
+ static DROP_PROGRAM = new UdpInputLossAction('DROP_PROGRAM');
665
+ /** Continue emitting with substitute frames */
666
+ static EMIT_PROGRAM = new UdpInputLossAction('EMIT_PROGRAM');
667
+ /** A value not yet modelled by AWS CDK. */
668
+ static of(value) {
669
+ return new UdpInputLossAction(value);
670
+ }
671
+ /** The underlying string value passed to CloudFormation. */
672
+ value;
673
+ constructor(value) {
674
+ this.value = value;
675
+ }
676
+ }
677
+ exports.UdpInputLossAction = UdpInputLossAction;
678
+ /** Enables column-only or column-and-row FEC for a UDP output. */
679
+ class FecMode {
680
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.FecMode", version: "2.268.0-alpha.0" };
681
+ /** Column-only FEC. */
682
+ static COLUMN = new FecMode('COLUMN');
683
+ /** Column-and-row FEC (more robust). */
684
+ static COLUMN_AND_ROW = new FecMode('COLUMN_AND_ROW');
685
+ /** A value not yet modelled by AWS CDK. */
686
+ static of(value) {
687
+ return new FecMode(value);
688
+ }
689
+ /** The underlying string value passed to CloudFormation. */
690
+ value;
691
+ constructor(value) {
692
+ this.value = value;
693
+ }
694
+ }
695
+ exports.FecMode = FecMode;
696
+ /** UDP timed metadata ID3 frame. */
697
+ class UdpTimedMetadataId3Frame {
698
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.UdpTimedMetadataId3Frame", version: "2.268.0-alpha.0" };
699
+ /** None */
700
+ static NONE = new UdpTimedMetadataId3Frame('NONE');
701
+ /** PRIV */
702
+ static PRIV = new UdpTimedMetadataId3Frame('PRIV');
703
+ /** TDRL */
704
+ static TDRL = new UdpTimedMetadataId3Frame('TDRL');
705
+ /** A value not yet modelled by AWS CDK. */
706
+ static of(value) {
707
+ return new UdpTimedMetadataId3Frame(value);
708
+ }
709
+ /** The underlying string value passed to CloudFormation. */
710
+ value;
711
+ constructor(value) {
712
+ this.value = value;
713
+ }
714
+ }
715
+ exports.UdpTimedMetadataId3Frame = UdpTimedMetadataId3Frame;
716
+ /** MS Smooth audio-only timecode control. */
717
+ class MsSmoothAudioOnlyTimecodeControl {
718
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothAudioOnlyTimecodeControl", version: "2.268.0-alpha.0" };
719
+ /** Passthrough */
720
+ static PASSTHROUGH = new MsSmoothAudioOnlyTimecodeControl('PASSTHROUGH');
721
+ /** Use configured clock */
722
+ static USE_CONFIGURED_CLOCK = new MsSmoothAudioOnlyTimecodeControl('USE_CONFIGURED_CLOCK');
723
+ /** A value not yet modelled by AWS CDK. */
724
+ static of(value) {
725
+ return new MsSmoothAudioOnlyTimecodeControl(value);
726
+ }
727
+ /** The underlying string value passed to CloudFormation. */
728
+ value;
729
+ constructor(value) {
730
+ this.value = value;
731
+ }
732
+ }
733
+ exports.MsSmoothAudioOnlyTimecodeControl = MsSmoothAudioOnlyTimecodeControl;
734
+ /** MS Smooth certificate mode. */
735
+ class MsSmoothCertificateMode {
736
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothCertificateMode", version: "2.268.0-alpha.0" };
737
+ /** Self-signed */
738
+ static SELF_SIGNED = new MsSmoothCertificateMode('SELF_SIGNED');
739
+ /** Verify authenticity */
740
+ static VERIFY_AUTHENTICITY = new MsSmoothCertificateMode('VERIFY_AUTHENTICITY');
741
+ /** A value not yet modelled by AWS CDK. */
742
+ static of(value) {
743
+ return new MsSmoothCertificateMode(value);
744
+ }
745
+ /** The underlying string value passed to CloudFormation. */
746
+ value;
747
+ constructor(value) {
748
+ this.value = value;
749
+ }
750
+ }
751
+ exports.MsSmoothCertificateMode = MsSmoothCertificateMode;
752
+ /** MS Smooth event ID mode. */
753
+ class MsSmoothEventIdMode {
754
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothEventIdMode", version: "2.268.0-alpha.0" };
755
+ /** No event ID */
756
+ static NO_EVENT_ID = new MsSmoothEventIdMode('NO_EVENT_ID');
757
+ /** Use configured */
758
+ static USE_CONFIGURED = new MsSmoothEventIdMode('USE_CONFIGURED');
759
+ /** Use timestamp */
760
+ static USE_TIMESTAMP = new MsSmoothEventIdMode('USE_TIMESTAMP');
761
+ /** A value not yet modelled by AWS CDK. */
762
+ static of(value) {
763
+ return new MsSmoothEventIdMode(value);
764
+ }
765
+ /** The underlying string value passed to CloudFormation. */
766
+ value;
767
+ constructor(value) {
768
+ this.value = value;
769
+ }
770
+ }
771
+ exports.MsSmoothEventIdMode = MsSmoothEventIdMode;
772
+ /** MS Smooth event stop behavior. */
773
+ class MsSmoothEventStopBehavior {
774
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothEventStopBehavior", version: "2.268.0-alpha.0" };
775
+ /** None */
776
+ static NONE = new MsSmoothEventStopBehavior('NONE');
777
+ /** Send EOS */
778
+ static SEND_EOS = new MsSmoothEventStopBehavior('SEND_EOS');
779
+ /** A value not yet modelled by AWS CDK. */
780
+ static of(value) {
781
+ return new MsSmoothEventStopBehavior(value);
782
+ }
783
+ /** The underlying string value passed to CloudFormation. */
784
+ value;
785
+ constructor(value) {
786
+ this.value = value;
787
+ }
788
+ }
789
+ exports.MsSmoothEventStopBehavior = MsSmoothEventStopBehavior;
790
+ /** MS Smooth input loss action. */
791
+ class MsSmoothInputLossAction {
792
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothInputLossAction", version: "2.268.0-alpha.0" };
793
+ /** Emit output */
794
+ static EMIT_OUTPUT = new MsSmoothInputLossAction('EMIT_OUTPUT');
795
+ /** Pause output */
796
+ static PAUSE_OUTPUT = new MsSmoothInputLossAction('PAUSE_OUTPUT');
797
+ /** A value not yet modelled by AWS CDK. */
798
+ static of(value) {
799
+ return new MsSmoothInputLossAction(value);
800
+ }
801
+ /** The underlying string value passed to CloudFormation. */
802
+ value;
803
+ constructor(value) {
804
+ this.value = value;
805
+ }
806
+ }
807
+ exports.MsSmoothInputLossAction = MsSmoothInputLossAction;
808
+ /** MS Smooth segmentation mode. */
809
+ class MsSmoothSegmentationMode {
810
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothSegmentationMode", version: "2.268.0-alpha.0" };
811
+ /** Use input segmentation */
812
+ static USE_INPUT_SEGMENTATION = new MsSmoothSegmentationMode('USE_INPUT_SEGMENTATION');
813
+ /** Use segment duration */
814
+ static USE_SEGMENT_DURATION = new MsSmoothSegmentationMode('USE_SEGMENT_DURATION');
815
+ /** A value not yet modelled by AWS CDK. */
816
+ static of(value) {
817
+ return new MsSmoothSegmentationMode(value);
818
+ }
819
+ /** The underlying string value passed to CloudFormation. */
820
+ value;
821
+ constructor(value) {
822
+ this.value = value;
823
+ }
824
+ }
825
+ exports.MsSmoothSegmentationMode = MsSmoothSegmentationMode;
826
+ /** MS Smooth sparse track type. */
827
+ class MsSmoothSparseTrackType {
828
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothSparseTrackType", version: "2.268.0-alpha.0" };
829
+ /** None */
830
+ static NONE = new MsSmoothSparseTrackType('NONE');
831
+ /** SCTE-35 */
832
+ static SCTE_35 = new MsSmoothSparseTrackType('SCTE_35');
833
+ /** SCTE-35 without segmentation */
834
+ static SCTE_35_WITHOUT_SEGMENTATION = new MsSmoothSparseTrackType('SCTE_35_WITHOUT_SEGMENTATION');
835
+ /** A value not yet modelled by AWS CDK. */
836
+ static of(value) {
837
+ return new MsSmoothSparseTrackType(value);
838
+ }
839
+ /** The underlying string value passed to CloudFormation. */
840
+ value;
841
+ constructor(value) {
842
+ this.value = value;
843
+ }
844
+ }
845
+ exports.MsSmoothSparseTrackType = MsSmoothSparseTrackType;
846
+ /** MS Smooth stream manifest behavior. */
847
+ class MsSmoothStreamManifestBehavior {
848
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothStreamManifestBehavior", version: "2.268.0-alpha.0" };
849
+ /** Do not send */
850
+ static DO_NOT_SEND = new MsSmoothStreamManifestBehavior('DO_NOT_SEND');
851
+ /** Send */
852
+ static SEND = new MsSmoothStreamManifestBehavior('SEND');
853
+ /** A value not yet modelled by AWS CDK. */
854
+ static of(value) {
855
+ return new MsSmoothStreamManifestBehavior(value);
856
+ }
857
+ /** The underlying string value passed to CloudFormation. */
858
+ value;
859
+ constructor(value) {
860
+ this.value = value;
861
+ }
862
+ }
863
+ exports.MsSmoothStreamManifestBehavior = MsSmoothStreamManifestBehavior;
864
+ /** MS Smooth timestamp offset mode. */
865
+ class MsSmoothTimestampOffsetMode {
866
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.MsSmoothTimestampOffsetMode", version: "2.268.0-alpha.0" };
867
+ /** Use configured offset */
868
+ static USE_CONFIGURED_OFFSET = new MsSmoothTimestampOffsetMode('USE_CONFIGURED_OFFSET');
869
+ /** Use event start date */
870
+ static USE_EVENT_START_DATE = new MsSmoothTimestampOffsetMode('USE_EVENT_START_DATE');
871
+ /** A value not yet modelled by AWS CDK. */
872
+ static of(value) {
873
+ return new MsSmoothTimestampOffsetMode(value);
874
+ }
875
+ /** The underlying string value passed to CloudFormation. */
876
+ value;
877
+ constructor(value) {
878
+ this.value = value;
879
+ }
880
+ }
881
+ exports.MsSmoothTimestampOffsetMode = MsSmoothTimestampOffsetMode;
882
+ /** ID3 metadata insertion behavior (CMAF Ingest and MediaPackage V2 output groups). */
883
+ class Id3Behavior {
884
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.Id3Behavior", version: "2.268.0-alpha.0" };
885
+ /** Do not insert ID3 metadata. */
886
+ static DISABLED = new Id3Behavior('DISABLED');
887
+ /** Enable ID3 metadata insertion. */
888
+ static ENABLED = new Id3Behavior('ENABLED');
889
+ /** A value not yet modelled by AWS CDK. */
890
+ static of(value) {
891
+ return new Id3Behavior(value);
892
+ }
893
+ /** The underlying string value passed to CloudFormation. */
894
+ value;
895
+ constructor(value) {
896
+ this.value = value;
897
+ }
898
+ }
899
+ exports.Id3Behavior = Id3Behavior;
900
+ /** CMAF Ingest KLV behavior. */
901
+ class KlvBehavior {
902
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.KlvBehavior", version: "2.268.0-alpha.0" };
903
+ /** No passthrough */
904
+ static NO_PASSTHROUGH = new KlvBehavior('NO_PASSTHROUGH');
905
+ /** Passthrough */
906
+ static PASSTHROUGH = new KlvBehavior('PASSTHROUGH');
907
+ /** A value not yet modelled by AWS CDK. */
908
+ static of(value) {
909
+ return new KlvBehavior(value);
910
+ }
911
+ /** The underlying string value passed to CloudFormation. */
912
+ value;
913
+ constructor(value) {
914
+ this.value = value;
915
+ }
916
+ }
917
+ exports.KlvBehavior = KlvBehavior;
918
+ /** CMAF Ingest Nielsen ID3 behavior. */
919
+ class NielsenId3Behavior {
920
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.NielsenId3Behavior", version: "2.268.0-alpha.0" };
921
+ /** No passthrough */
922
+ static NO_PASSTHROUGH = new NielsenId3Behavior('NO_PASSTHROUGH');
923
+ /** Passthrough */
924
+ static PASSTHROUGH = new NielsenId3Behavior('PASSTHROUGH');
925
+ /** A value not yet modelled by AWS CDK. */
926
+ static of(value) {
927
+ return new NielsenId3Behavior(value);
928
+ }
929
+ /** The underlying string value passed to CloudFormation. */
930
+ value;
931
+ constructor(value) {
932
+ this.value = value;
933
+ }
934
+ }
935
+ exports.NielsenId3Behavior = NielsenId3Behavior;
936
+ /** CMAF Ingest SCTE-35 type. */
937
+ class Scte35Type {
938
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.Scte35Type", version: "2.268.0-alpha.0" };
939
+ /** None */
940
+ static NONE = new Scte35Type('NONE');
941
+ /** SCTE-35 without segmentation */
942
+ static SCTE_35_WITHOUT_SEGMENTATION = new Scte35Type('SCTE_35_WITHOUT_SEGMENTATION');
943
+ /** A value not yet modelled by AWS CDK. */
944
+ static of(value) {
945
+ return new Scte35Type(value);
946
+ }
947
+ /** The underlying string value passed to CloudFormation. */
948
+ value;
949
+ constructor(value) {
950
+ this.value = value;
951
+ }
952
+ }
953
+ exports.Scte35Type = Scte35Type;
954
+ /**
955
+ * Segment length units.
956
+ * @internal
957
+ */
958
+ var SegmentLengthUnits;
959
+ (function (SegmentLengthUnits) {
960
+ /** Milliseconds */
961
+ SegmentLengthUnits["MILLISECONDS"] = "MILLISECONDS";
962
+ /** Seconds */
963
+ SegmentLengthUnits["SECONDS"] = "SECONDS";
964
+ })(SegmentLengthUnits || (exports.SegmentLengthUnits = SegmentLengthUnits = {}));
965
+ /** CMAF Ingest timed metadata ID3 frame. */
966
+ class TimedMetadataId3Frame {
967
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.TimedMetadataId3Frame", version: "2.268.0-alpha.0" };
968
+ /** None */
969
+ static NONE = new TimedMetadataId3Frame('NONE');
970
+ /** PRIV */
971
+ static PRIV = new TimedMetadataId3Frame('PRIV');
972
+ /** TDRL */
973
+ static TDRL = new TimedMetadataId3Frame('TDRL');
974
+ /** A value not yet modelled by AWS CDK. */
975
+ static of(value) {
976
+ return new TimedMetadataId3Frame(value);
977
+ }
978
+ /** The underlying string value passed to CloudFormation. */
979
+ value;
980
+ constructor(value) {
981
+ this.value = value;
982
+ }
983
+ }
984
+ exports.TimedMetadataId3Frame = TimedMetadataId3Frame;
985
+ /** CMAF Ingest timed metadata passthrough. */
986
+ class TimedMetadataPassthrough {
987
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.TimedMetadataPassthrough", version: "2.268.0-alpha.0" };
988
+ /** Disabled */
989
+ static DISABLED = new TimedMetadataPassthrough('DISABLED');
990
+ /** Enabled */
991
+ static ENABLED = new TimedMetadataPassthrough('ENABLED');
992
+ /** A value not yet modelled by AWS CDK. */
993
+ static of(value) {
994
+ return new TimedMetadataPassthrough(value);
995
+ }
996
+ /** The underlying string value passed to CloudFormation. */
997
+ value;
998
+ constructor(value) {
999
+ this.value = value;
1000
+ }
1001
+ }
1002
+ exports.TimedMetadataPassthrough = TimedMetadataPassthrough;
1003
+ /**
1004
+ * S3 canned ACL for output destinations.
1005
+ */
1006
+ class S3CannedAcl {
1007
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.S3CannedAcl", version: "2.268.0-alpha.0" };
1008
+ /** Grants the owner full control and authenticated AWS users read access. */
1009
+ static AUTHENTICATED_READ = new S3CannedAcl('AUTHENTICATED_READ');
1010
+ /** Grants the object owner and bucket owner full control. */
1011
+ static BUCKET_OWNER_FULL_CONTROL = new S3CannedAcl('BUCKET_OWNER_FULL_CONTROL');
1012
+ /** Grants the owner full control and the bucket owner read access. */
1013
+ static BUCKET_OWNER_READ = new S3CannedAcl('BUCKET_OWNER_READ');
1014
+ /** Grants the owner full control and all users read access. */
1015
+ static PUBLIC_READ = new S3CannedAcl('PUBLIC_READ');
1016
+ /** A value not yet modelled by AWS CDK. */
1017
+ static of(value) {
1018
+ return new S3CannedAcl(value);
1019
+ }
1020
+ /** The underlying string value passed to CloudFormation. */
1021
+ value;
1022
+ constructor(value) {
1023
+ this.value = value;
1024
+ }
1025
+ }
1026
+ exports.S3CannedAcl = S3CannedAcl;
1027
+ /** H.265 packaging type for HLS/MS Smooth outputs. */
1028
+ class H265PackagingType {
1029
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-medialive-alpha.H265PackagingType", version: "2.268.0-alpha.0" };
1030
+ /** HEV1 packaging */
1031
+ static HEV1 = new H265PackagingType('HEV1');
1032
+ /** HVC1 packaging */
1033
+ static HVC1 = new H265PackagingType('HVC1');
1034
+ /** A value not yet modelled by AWS CDK. */
1035
+ static of(value) {
1036
+ return new H265PackagingType(value);
1037
+ }
1038
+ /** The underlying string value passed to CloudFormation. */
1039
+ value;
1040
+ constructor(value) {
1041
+ this.value = value;
1042
+ }
1043
+ }
1044
+ exports.H265PackagingType = H265PackagingType;
1045
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVCQUF1QjtBQUN2QixNQUFhLE9BQU87O0lBQ2xCLDZDQUE2QztJQUN0QyxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELHVDQUF1QztJQUNoQyxNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWhELDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMzQjtJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsMEJBaUJDO0FBRUQsNkJBQTZCO0FBQzdCLE1BQWEsa0JBQWtCOztJQUM3QiwwQ0FBMEM7SUFDbkMsTUFBTSxDQUFVLFdBQVcsR0FBRyxJQUFJLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNFLHVCQUF1QjtJQUNoQixNQUFNLENBQVUsWUFBWSxHQUFHLElBQUksa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFN0UsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGdEQWlCQztBQUVELGdDQUFnQztBQUNoQyxNQUFhLGNBQWM7O0lBQ3pCLDRCQUE0QjtJQUNyQixNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELDZCQUE2QjtJQUN0QixNQUFNLENBQVUsUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNsQztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsd0NBaUJDO0FBRUQsK0JBQStCO0FBQy9CLE1BQWEscUJBQXFCOztJQUNoQyxlQUFlO0lBQ1IsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hFLGVBQWU7SUFDUixNQUFNLENBQVUsUUFBUSxHQUFHLElBQUkscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILHNEQWlCQztBQUVELCtCQUErQjtBQUMvQixNQUFhLHFCQUFxQjs7SUFDaEMsdUJBQXVCO0lBQ2hCLE1BQU0sQ0FBVSxnQkFBZ0IsR0FBRyxJQUFJLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEYsOEJBQThCO0lBQ3ZCLE1BQU0sQ0FBVSx1QkFBdUIsR0FBRyxJQUFJLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFFdEcsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILHNEQWlCQztBQUVELDhCQUE4QjtBQUM5QixNQUFhLG9CQUFvQjs7SUFDL0IsZ0NBQWdDO0lBQ3pCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRSxzQ0FBc0M7SUFDL0IsTUFBTSxDQUFVLFlBQVksR0FBRyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRS9FLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCxvREFpQkM7QUFFRCwyQkFBMkI7QUFDM0IsTUFBYSxpQkFBaUI7O0lBQzVCLHlCQUF5QjtJQUNsQixNQUFNLENBQVUsTUFBTSxHQUFHLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsNEJBQTRCO0lBQ3JCLE1BQU0sQ0FBVSxVQUFVLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV4RSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNyQztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsOENBaUJDO0FBRUQscUNBQXFDO0FBQ3JDLE1BQWEseUJBQXlCOztJQUNwQyxlQUFlO0lBQ1IsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVFLGNBQWM7SUFDUCxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUkseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDN0M7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILDhEQWlCQztBQUVELGtDQUFrQztBQUNsQyxNQUFhLHNCQUFzQjs7SUFDakMsZUFBZTtJQUNSLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RSxlQUFlO0lBQ1IsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCx3REFpQkM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBYSw0QkFBNEI7O0lBQ3ZDLFdBQVc7SUFDSixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsZUFBZTtJQUNSLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUvRSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNoRDtJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsb0VBaUJDO0FBRUQsMEJBQTBCO0FBQzFCLE1BQWEsZUFBZTs7SUFDMUIsNkJBQTZCO0lBQ3RCLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsK0JBQStCO0lBQ3hCLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFaEUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25DO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCwwQ0FpQkM7QUFFRCxxQkFBcUI7QUFDckIsTUFBYSxXQUFXOztJQUN0QixnQ0FBZ0M7SUFDekIsTUFBTSxDQUFVLHNCQUFzQixHQUFHLElBQUksV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDMUYsa0JBQWtCO0lBQ1gsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU5RCwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDL0I7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGtDQWlCQztBQUVELGdDQUFnQztBQUNoQyxNQUFhLHNCQUFzQjs7SUFDakMscUJBQXFCO0lBQ2QsTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pFLHVCQUF1QjtJQUNoQixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFakUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDMUM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILHdEQWlCQztBQUVELG9DQUFvQztBQUNwQyxNQUFhLHlCQUF5Qjs7SUFDcEMscUJBQXFCO0lBQ2QsTUFBTSxDQUFVLGNBQWMsR0FBRyxJQUFJLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEYsY0FBYztJQUNQLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUxRSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsOERBaUJDO0FBRUQsNEJBQTRCO0FBQzVCLE1BQWEsa0JBQWtCOztJQUM3Qiw2QkFBNkI7SUFDdEIsTUFBTSxDQUFVLHNCQUFzQixHQUFHLElBQUksa0JBQWtCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNqRyxvQkFBb0I7SUFDYixNQUFNLENBQVUsYUFBYSxHQUFHLElBQUksa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDL0UscUNBQXFDO0lBQzlCLE1BQU0sQ0FBVSw4QkFBOEIsR0FBRyxJQUFJLGtCQUFrQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFFakgsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILGdEQW1CQztBQUVELDZCQUE2QjtBQUM3QixNQUFhLGtCQUFrQjs7SUFDN0IsY0FBYztJQUNQLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRSxjQUFjO0lBQ1AsTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRW5FLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCxnREFpQkM7QUFFRCxtQ0FBbUM7QUFDbkMsTUFBYSx1QkFBdUI7O0lBQ2xDLHNDQUFzQztJQUMvQixNQUFNLENBQVUsK0JBQStCLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3hILG1CQUFtQjtJQUNaLE1BQU0sQ0FBVSxZQUFZLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVsRiwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMzQztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsMERBaUJDO0FBRUQsOEJBQThCO0FBQzlCLE1BQWEsb0JBQW9COztJQUMvQixlQUFlO0lBQ1IsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZFLGNBQWM7SUFDUCxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFckUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDeEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILG9EQWlCQztBQUVELDZCQUE2QjtBQUM3QixNQUFhLG1CQUFtQjs7SUFDOUIsNkJBQTZCO0lBQ3RCLE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxJQUFJLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDbEcsMkJBQTJCO0lBQ3BCLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxJQUFJLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFOUYsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdkM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGtEQWlCQztBQUVELGlDQUFpQztBQUNqQyxNQUFhLHNCQUFzQjs7SUFDakMsY0FBYztJQUNQLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2RSxjQUFjO0lBQ1AsTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXZFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCx3REFpQkM7QUFFRCxvQ0FBb0M7QUFDcEMsTUFBYSx5QkFBeUI7O0lBQ3BDLGFBQWE7SUFDTixNQUFNLENBQVUsTUFBTSxHQUFHLElBQUkseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxXQUFXO0lBQ0osTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCw4REFtQkM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLHdCQUF3Qjs7SUFDbkMsbURBQW1EO0lBQzVDLE1BQU0sQ0FBVSxHQUFHLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSwwREFBMEQ7SUFDbkQsTUFBTSxDQUFVLEVBQUUsR0FBRyxJQUFJLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELGtEQUFrRDtJQUMzQyxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILDREQW1CQztBQUVELDhDQUE4QztBQUM5QyxNQUFhLFlBQVk7O0lBQ3ZCLHdCQUF3QjtJQUNqQixNQUFNLENBQVUsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELDRCQUE0QjtJQUNyQixNQUFNLENBQVUsU0FBUyxHQUFHLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLG9DQUFvQztJQUM3QixNQUFNLENBQVUsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUUvRSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILG9DQW1CQztBQUVELCtDQUErQztBQUMvQyxNQUFhLGFBQWE7O0lBQ3hCLHFDQUFxQztJQUM5QixNQUFNLENBQVUsbUJBQW1CLEdBQUcsSUFBSSxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUV0RiwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDakM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBZEgsc0NBZUM7QUFFRCxvQ0FBb0M7QUFDcEMsTUFBYSx3QkFBd0I7O0lBQ25DLFdBQVc7SUFDSixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxXQUFXO0lBQ0osTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5FLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCw0REFtQkM7QUFFRCwyRkFBMkY7QUFDM0YsTUFBYSxnQkFBZ0I7O0lBQzNCLHFDQUFxQztJQUM5QixNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakUsNENBQTRDO0lBQ3JDLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV6RSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNwQztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsNENBaUJDO0FBRUQsd0JBQXdCO0FBQ3hCLE1BQWEsYUFBYTs7SUFDeEIsc0JBQXNCO0lBQ2YsTUFBTSxDQUFVLGVBQWUsR0FBRyxJQUFJLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlFLGtCQUFrQjtJQUNYLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFdEUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCxzQ0FpQkM7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBYSx3QkFBd0I7O0lBQ25DLDRCQUE0QjtJQUNyQixNQUFNLENBQVUsTUFBTSxHQUFHLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkUsNEJBQTRCO0lBQ3JCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2RSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsNERBaUJDO0FBRUQsZ0NBQWdDO0FBQ2hDLE1BQWEscUJBQXFCOztJQUNoQyw2QkFBNkI7SUFDdEIsTUFBTSxDQUFVLHNCQUFzQixHQUFHLElBQUkscUJBQXFCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNwRyxzQkFBc0I7SUFDZixNQUFNLENBQVUsZUFBZSxHQUFHLElBQUkscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV0RiwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6QztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsc0RBaUJDO0FBRUQseUJBQXlCO0FBQ3pCLE1BQWEsZUFBZTs7SUFDMUIsVUFBVTtJQUNILE1BQU0sQ0FBVSxHQUFHLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsOEJBQThCO0lBQ3ZCLE1BQU0sQ0FBVSxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVGLGtCQUFrQjtJQUNYLE1BQU0sQ0FBVSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFdEUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25DO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCwwQ0FtQkM7QUFFRCw4QkFBOEI7QUFDOUIsTUFBYSxtQkFBbUI7O0lBQzlCLGtCQUFrQjtJQUNYLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RSxtQkFBbUI7SUFDWixNQUFNLENBQVUsWUFBWSxHQUFHLElBQUksbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFOUUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdkM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGtEQWlCQztBQUVELHFDQUFxQztBQUNyQyxNQUFhLHlCQUF5Qjs7SUFDcEMsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxXQUFXO0lBQ0osTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLGNBQWM7SUFDUCxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUkseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDN0M7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILDhEQW1CQztBQUVELDhDQUE4QztBQUM5QyxNQUFhLG1CQUFtQjs7SUFDOUIsdUNBQXVDO0lBQ2hDLE1BQU0sQ0FBVSxtQkFBbUIsR0FBRyxJQUFJLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDNUYsd0NBQXdDO0lBQ2pDLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU1RSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN2QztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsa0RBaUJDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxrQkFBa0I7O0lBQzdCLHdDQUF3QztJQUNqQyxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkUsK0ZBQStGO0lBQ3hGLE1BQU0sQ0FBVSxZQUFZLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RSw4RkFBOEY7SUFDdkYsTUFBTSxDQUFVLFlBQVksR0FBRyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCxnREFtQkM7QUFFRCxrQ0FBa0M7QUFDbEMsTUFBYSxpQkFBaUI7O0lBQzVCLHlCQUF5QjtJQUNsQixNQUFNLENBQVUsTUFBTSxHQUFHLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUseUJBQXlCO0lBQ2xCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRSx5QkFBeUI7SUFDbEIsTUFBTSxDQUFVLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCw4Q0FtQkM7QUFFRCw2QkFBNkI7QUFDN0IsTUFBYSxrQkFBa0I7O0lBQzdCLHVDQUF1QztJQUNoQyxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkUsaURBQWlEO0lBQzFDLE1BQU0sQ0FBVSxZQUFZLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RSwrQ0FBK0M7SUFDeEMsTUFBTSxDQUFVLFlBQVksR0FBRyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCxnREFtQkM7QUFFRCxrRUFBa0U7QUFDbEUsTUFBYSxPQUFPOztJQUNsQix1QkFBdUI7SUFDaEIsTUFBTSxDQUFVLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCx3Q0FBd0M7SUFDakMsTUFBTSxDQUFVLGNBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXRFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMzQjtJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsMEJBaUJDO0FBRUQsb0NBQW9DO0FBQ3BDLE1BQWEsd0JBQXdCOztJQUNuQyxXQUFXO0lBQ0osTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLFdBQVc7SUFDSixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkUsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRSwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QztJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFsQkgsNERBbUJDO0FBRUQsNkNBQTZDO0FBQzdDLE1BQWEsZ0NBQWdDOztJQUMzQyxrQkFBa0I7SUFDWCxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksZ0NBQWdDLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekYsMkJBQTJCO0lBQ3BCLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxJQUFJLGdDQUFnQyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFM0csMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksZ0NBQWdDLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDcEQ7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILDRFQWlCQztBQUVELGtDQUFrQztBQUNsQyxNQUFhLHVCQUF1Qjs7SUFDbEMsa0JBQWtCO0lBQ1gsTUFBTSxDQUFVLFdBQVcsR0FBRyxJQUFJLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hGLDBCQUEwQjtJQUNuQixNQUFNLENBQVUsbUJBQW1CLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRWhHLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzNDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCwwREFpQkM7QUFFRCwrQkFBK0I7QUFDL0IsTUFBYSxtQkFBbUI7O0lBQzlCLGtCQUFrQjtJQUNYLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RSxxQkFBcUI7SUFDZCxNQUFNLENBQVUsY0FBYyxHQUFHLElBQUksbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRixvQkFBb0I7SUFDYixNQUFNLENBQVUsYUFBYSxHQUFHLElBQUksbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFaEYsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdkM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILGtEQW1CQztBQUVELHFDQUFxQztBQUNyQyxNQUFhLHlCQUF5Qjs7SUFDcEMsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRSxlQUFlO0lBQ1IsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLHlCQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTVFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCw4REFpQkM7QUFFRCxtQ0FBbUM7QUFDbkMsTUFBYSx1QkFBdUI7O0lBQ2xDLGtCQUFrQjtJQUNYLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRixtQkFBbUI7SUFDWixNQUFNLENBQVUsWUFBWSxHQUFHLElBQUksdUJBQXVCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFbEYsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDM0M7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILDBEQWlCQztBQUVELG1DQUFtQztBQUNuQyxNQUFhLHdCQUF3Qjs7SUFDbkMsNkJBQTZCO0lBQ3RCLE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxJQUFJLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDdkcsMkJBQTJCO0lBQ3BCLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxJQUFJLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFbkcsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILDREQWlCQztBQUVELG1DQUFtQztBQUNuQyxNQUFhLHVCQUF1Qjs7SUFDbEMsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRSxjQUFjO0lBQ1AsTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLG1DQUFtQztJQUM1QixNQUFNLENBQVUsNEJBQTRCLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBRWxILDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzNDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWxCSCwwREFtQkM7QUFFRCwwQ0FBMEM7QUFDMUMsTUFBYSw4QkFBOEI7O0lBQ3pDLGtCQUFrQjtJQUNYLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSw4QkFBOEIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RixXQUFXO0lBQ0osTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLDhCQUE4QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2xEO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCx3RUFpQkM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBYSwyQkFBMkI7O0lBQ3RDLDRCQUE0QjtJQUNyQixNQUFNLENBQVUscUJBQXFCLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3hHLDJCQUEyQjtJQUNwQixNQUFNLENBQVUsb0JBQW9CLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRXRHLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQy9DO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCxrRUFpQkM7QUFFRCx1RkFBdUY7QUFDdkYsTUFBYSxXQUFXOztJQUN0QixrQ0FBa0M7SUFDM0IsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RCxxQ0FBcUM7SUFDOUIsTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU1RCwyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDL0I7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGtDQWlCQztBQUVELGdDQUFnQztBQUNoQyxNQUFhLFdBQVc7O0lBQ3RCLHFCQUFxQjtJQUNkLE1BQU0sQ0FBVSxjQUFjLEdBQUcsSUFBSSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxRSxrQkFBa0I7SUFDWCxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXBFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMvQjtJQUVELDREQUE0RDtJQUM1QyxLQUFLLENBQVM7SUFFOUIsWUFBb0IsS0FBYTtRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUNwQjs7QUFoQkgsa0NBaUJDO0FBRUQsd0NBQXdDO0FBQ3hDLE1BQWEsa0JBQWtCOztJQUM3QixxQkFBcUI7SUFDZCxNQUFNLENBQVUsY0FBYyxHQUFHLElBQUksa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRixrQkFBa0I7SUFDWCxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFM0UsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGdEQWlCQztBQUVELGdDQUFnQztBQUNoQyxNQUFhLFVBQVU7O0lBQ3JCLFdBQVc7SUFDSixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELG1DQUFtQztJQUM1QixNQUFNLENBQVUsNEJBQTRCLEdBQUcsSUFBSSxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUVyRywyQ0FBMkM7SUFDcEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFhO1FBQzVCLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDOUI7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILGdDQWlCQztBQUVEOzs7R0FHRztBQUNILElBQVksa0JBS1g7QUFMRCxXQUFZLGtCQUFrQjtJQUM1QixtQkFBbUI7SUFDbkIsbURBQTZCLENBQUE7SUFDN0IsY0FBYztJQUNkLHlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQUs3QjtBQUVELDRDQUE0QztBQUM1QyxNQUFhLHFCQUFxQjs7SUFDaEMsV0FBVztJQUNKLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxXQUFXO0lBQ0osTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLFdBQVc7SUFDSixNQUFNLENBQVUsSUFBSSxHQUFHLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFaEUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDekM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBbEJILHNEQW1CQztBQUVELDhDQUE4QztBQUM5QyxNQUFhLHdCQUF3Qjs7SUFDbkMsZUFBZTtJQUNSLE1BQU0sQ0FBVSxRQUFRLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRSxjQUFjO0lBQ1AsTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXpFLDJDQUEyQztJQUNwQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWE7UUFDNUIsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzVDO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQWhCSCw0REFpQkM7QUFFRDs7R0FFRztBQUNILE1BQWEsV0FBVzs7SUFDdEIsNkVBQTZFO0lBQ3RFLE1BQU0sQ0FBVSxrQkFBa0IsR0FBRyxJQUFJLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xGLDZEQUE2RDtJQUN0RCxNQUFNLENBQVUseUJBQXlCLEdBQUcsSUFBSSxXQUFXLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUNoRyxzRUFBc0U7SUFDL0QsTUFBTSxDQUFVLGlCQUFpQixHQUFHLElBQUksV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDaEYsK0RBQStEO0lBQ3hELE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFcEUsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQy9CO0lBRUQsNERBQTREO0lBQzVDLEtBQUssQ0FBUztJQUU5QixZQUFvQixLQUFhO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0tBQ3BCOztBQXBCSCxrQ0FxQkM7QUFFRCxzREFBc0Q7QUFDdEQsTUFBYSxpQkFBaUI7O0lBQzVCLHFCQUFxQjtJQUNkLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxxQkFBcUI7SUFDZCxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFNUQsMkNBQTJDO0lBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDckM7SUFFRCw0REFBNEQ7SUFDNUMsS0FBSyxDQUFTO0lBRTlCLFlBQW9CLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7S0FDcEI7O0FBaEJILDhDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBITFMgb3V0cHV0IG1vZGUuICovXG5leHBvcnQgY2xhc3MgSGxzTW9kZSB7XG4gIC8qKiBMaXZlIG1vZGUg4oCUIG9sZGVyIHNlZ21lbnRzIGFyZSByZW1vdmVkICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElWRSA9IG5ldyBIbHNNb2RlKCdMSVZFJyk7XG4gIC8qKiBWT0QgbW9kZSDigJQgYWxsIHNlZ21lbnRzIGFyZSBrZXB0ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVk9EID0gbmV3IEhsc01vZGUoJ1ZPRCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzTW9kZSB7XG4gICAgcmV0dXJuIG5ldyBIbHNNb2RlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBpbnB1dCBsb3NzIGFjdGlvbi4gKi9cbmV4cG9ydCBjbGFzcyBIbHNJbnB1dExvc3NBY3Rpb24ge1xuICAvKiogRW1pdCBvdXRwdXQgd2l0aCBzbGF0ZS9ibGFjayBmcmFtZXMgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTUlUX09VVFBVVCA9IG5ldyBIbHNJbnB1dExvc3NBY3Rpb24oJ0VNSVRfT1VUUFVUJyk7XG4gIC8qKiBQYXVzZSB0aGUgb3V0cHV0ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFVU0VfT1VUUFVUID0gbmV3IEhsc0lucHV0TG9zc0FjdGlvbignUEFVU0VfT1VUUFVUJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNJbnB1dExvc3NBY3Rpb24ge1xuICAgIHJldHVybiBuZXcgSGxzSW5wdXRMb3NzQWN0aW9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBjbGllbnQgY2FjaGUgY29udHJvbC4gKi9cbmV4cG9ydCBjbGFzcyBIbHNDbGllbnRDYWNoZSB7XG4gIC8qKiBFbmFibGUgY2xpZW50IGNhY2hpbmcgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTkFCTEVEID0gbmV3IEhsc0NsaWVudENhY2hlKCdFTkFCTEVEJyk7XG4gIC8qKiBEaXNhYmxlIGNsaWVudCBjYWNoaW5nICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRUQgPSBuZXcgSGxzQ2xpZW50Q2FjaGUoJ0RJU0FCTEVEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNDbGllbnRDYWNoZSB7XG4gICAgcmV0dXJuIG5ldyBIbHNDbGllbnRDYWNoZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBITFMgY29kZWMgc3BlY2lmaWNhdGlvbi4gKi9cbmV4cG9ydCBjbGFzcyBIbHNDb2RlY1NwZWNpZmljYXRpb24ge1xuICAvKiogUkZDIDQyODEgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRkNfNDI4MSA9IG5ldyBIbHNDb2RlY1NwZWNpZmljYXRpb24oJ1JGQ180MjgxJyk7XG4gIC8qKiBSRkMgNjM4MSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJGQ182MzgxID0gbmV3IEhsc0NvZGVjU3BlY2lmaWNhdGlvbignUkZDXzYzODEnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEhsc0NvZGVjU3BlY2lmaWNhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBIbHNDb2RlY1NwZWNpZmljYXRpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSExTIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuICovXG5leHBvcnQgY2xhc3MgSGxzRGlyZWN0b3J5U3RydWN0dXJlIHtcbiAgLyoqIFNpbmdsZSBkaXJlY3RvcnkgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTSU5HTEVfRElSRUNUT1JZID0gbmV3IEhsc0RpcmVjdG9yeVN0cnVjdHVyZSgnU0lOR0xFX0RJUkVDVE9SWScpO1xuICAvKiogU3ViZGlyZWN0b3J5IHBlciBzdHJlYW0gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVUJESVJFQ1RPUllfUEVSX1NUUkVBTSA9IG5ldyBIbHNEaXJlY3RvcnlTdHJ1Y3R1cmUoJ1NVQkRJUkVDVE9SWV9QRVJfU1RSRUFNJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNEaXJlY3RvcnlTdHJ1Y3R1cmUge1xuICAgIHJldHVybiBuZXcgSGxzRGlyZWN0b3J5U3RydWN0dXJlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBkaXNjb250aW51aXR5IHRhZ3MuICovXG5leHBvcnQgY2xhc3MgSGxzRGlzY29udGludWl0eVRhZ3Mge1xuICAvKiogSW5zZXJ0IGRpc2NvbnRpbnVpdHkgdGFncyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU0VSVCA9IG5ldyBIbHNEaXNjb250aW51aXR5VGFncygnSU5TRVJUJyk7XG4gIC8qKiBOZXZlciBpbnNlcnQgZGlzY29udGludWl0eSB0YWdzICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVWRVJfSU5TRVJUID0gbmV3IEhsc0Rpc2NvbnRpbnVpdHlUYWdzKCdORVZFUl9JTlNFUlQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEhsc0Rpc2NvbnRpbnVpdHlUYWdzIHtcbiAgICByZXR1cm4gbmV3IEhsc0Rpc2NvbnRpbnVpdHlUYWdzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBlbmNyeXB0aW9uIHR5cGUuICovXG5leHBvcnQgY2xhc3MgSGxzRW5jcnlwdGlvblR5cGUge1xuICAvKiogQUVTLTEyOCBlbmNyeXB0aW9uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUVTMTI4ID0gbmV3IEhsc0VuY3J5cHRpb25UeXBlKCdBRVMxMjgnKTtcbiAgLyoqIFNhbXBsZSBBRVMgZW5jcnlwdGlvbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTVBMRV9BRVMgPSBuZXcgSGxzRW5jcnlwdGlvblR5cGUoJ1NBTVBMRV9BRVMnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEhsc0VuY3J5cHRpb25UeXBlIHtcbiAgICByZXR1cm4gbmV3IEhsc0VuY3J5cHRpb25UeXBlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBJRDMgc2VnbWVudCB0YWdnaW5nIHN0YXRlLiAqL1xuZXhwb3J0IGNsYXNzIEhsc0lkM1NlZ21lbnRUYWdnaW5nU3RhdGUge1xuICAvKiogRGlzYWJsZWQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNBQkxFRCA9IG5ldyBIbHNJZDNTZWdtZW50VGFnZ2luZ1N0YXRlKCdESVNBQkxFRCcpO1xuICAvKiogRW5hYmxlZCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVOQUJMRUQgPSBuZXcgSGxzSWQzU2VnbWVudFRhZ2dpbmdTdGF0ZSgnRU5BQkxFRCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzSWQzU2VnbWVudFRhZ2dpbmdTdGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBIbHNJZDNTZWdtZW50VGFnZ2luZ1N0YXRlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBJLWZyYW1lIG9ubHkgcGxheWxpc3RzLiAqL1xuZXhwb3J0IGNsYXNzIEhsc0lGcmFtZU9ubHlQbGF5bGlzdHMge1xuICAvKiogRGlzYWJsZWQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNBQkxFRCA9IG5ldyBIbHNJRnJhbWVPbmx5UGxheWxpc3RzKCdESVNBQkxFRCcpO1xuICAvKiogU3RhbmRhcmQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVEFOREFSRCA9IG5ldyBIbHNJRnJhbWVPbmx5UGxheWxpc3RzKCdTVEFOREFSRCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzSUZyYW1lT25seVBsYXlsaXN0cyB7XG4gICAgcmV0dXJuIG5ldyBIbHNJRnJhbWVPbmx5UGxheWxpc3RzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBpbmNvbXBsZXRlIHNlZ21lbnQgYmVoYXZpb3IuICovXG5leHBvcnQgY2xhc3MgSGxzSW5jb21wbGV0ZVNlZ21lbnRCZWhhdmlvciB7XG4gIC8qKiBBdXRvICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUTyA9IG5ldyBIbHNJbmNvbXBsZXRlU2VnbWVudEJlaGF2aW9yKCdBVVRPJyk7XG4gIC8qKiBTdXBwcmVzcyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNVUFBSRVNTID0gbmV3IEhsc0luY29tcGxldGVTZWdtZW50QmVoYXZpb3IoJ1NVUFBSRVNTJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNJbmNvbXBsZXRlU2VnbWVudEJlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IEhsc0luY29tcGxldGVTZWdtZW50QmVoYXZpb3IodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSExTIElWIGluIG1hbmlmZXN0LiAqL1xuZXhwb3J0IGNsYXNzIEhsc0l2SW5NYW5pZmVzdCB7XG4gIC8qKiBJbmNsdWRlIElWIGluIG1hbmlmZXN0ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5DTFVERSA9IG5ldyBIbHNJdkluTWFuaWZlc3QoJ0lOQ0xVREUnKTtcbiAgLyoqIEV4Y2x1ZGUgSVYgZnJvbSBtYW5pZmVzdCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVYQ0xVREUgPSBuZXcgSGxzSXZJbk1hbmlmZXN0KCdFWENMVURFJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNJdkluTWFuaWZlc3Qge1xuICAgIHJldHVybiBuZXcgSGxzSXZJbk1hbmlmZXN0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBJViBzb3VyY2UuICovXG5leHBvcnQgY2xhc3MgSGxzSXZTb3VyY2Uge1xuICAvKiogSVYgZm9sbG93cyBzZWdtZW50IG51bWJlciAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZPTExPV1NfU0VHTUVOVF9OVU1CRVIgPSBuZXcgSGxzSXZTb3VyY2UoJ0ZPTExPV1NfU0VHTUVOVF9OVU1CRVInKTtcbiAgLyoqIEV4cGxpY2l0IElWICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRVhQTElDSVQgPSBuZXcgSGxzSXZTb3VyY2UoJ0VYUExJQ0lUJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNJdlNvdXJjZSB7XG4gICAgcmV0dXJuIG5ldyBIbHNJdlNvdXJjZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBITFMgbWFuaWZlc3QgY29tcHJlc3Npb24uICovXG5leHBvcnQgY2xhc3MgSGxzTWFuaWZlc3RDb21wcmVzc2lvbiB7XG4gIC8qKiBObyBjb21wcmVzc2lvbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgSGxzTWFuaWZlc3RDb21wcmVzc2lvbignTk9ORScpO1xuICAvKiogR3ppcCBjb21wcmVzc2lvbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdaSVAgPSBuZXcgSGxzTWFuaWZlc3RDb21wcmVzc2lvbignR1pJUCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzTWFuaWZlc3RDb21wcmVzc2lvbiB7XG4gICAgcmV0dXJuIG5ldyBIbHNNYW5pZmVzdENvbXByZXNzaW9uKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBtYW5pZmVzdCBkdXJhdGlvbiBmb3JtYXQuICovXG5leHBvcnQgY2xhc3MgSGxzTWFuaWZlc3REdXJhdGlvbkZvcm1hdCB7XG4gIC8qKiBGbG9hdGluZyBwb2ludCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZMT0FUSU5HX1BPSU5UID0gbmV3IEhsc01hbmlmZXN0RHVyYXRpb25Gb3JtYXQoJ0ZMT0FUSU5HX1BPSU5UJyk7XG4gIC8qKiBJbnRlZ2VyICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URUdFUiA9IG5ldyBIbHNNYW5pZmVzdER1cmF0aW9uRm9ybWF0KCdJTlRFR0VSJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNNYW5pZmVzdER1cmF0aW9uRm9ybWF0IHtcbiAgICByZXR1cm4gbmV3IEhsc01hbmlmZXN0RHVyYXRpb25Gb3JtYXQodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSExTIG91dHB1dCBzZWxlY3Rpb24uICovXG5leHBvcnQgY2xhc3MgSGxzT3V0cHV0U2VsZWN0aW9uIHtcbiAgLyoqIE1hbmlmZXN0cyBhbmQgc2VnbWVudHMgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQU5JRkVTVFNfQU5EX1NFR01FTlRTID0gbmV3IEhsc091dHB1dFNlbGVjdGlvbignTUFOSUZFU1RTX0FORF9TRUdNRU5UUycpO1xuICAvKiogU2VnbWVudHMgb25seSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFR01FTlRTX09OTFkgPSBuZXcgSGxzT3V0cHV0U2VsZWN0aW9uKCdTRUdNRU5UU19PTkxZJyk7XG4gIC8qKiBWYXJpYW50IG1hbmlmZXN0cyBhbmQgc2VnbWVudHMgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWQVJJQU5UX01BTklGRVNUU19BTkRfU0VHTUVOVFMgPSBuZXcgSGxzT3V0cHV0U2VsZWN0aW9uKCdWQVJJQU5UX01BTklGRVNUU19BTkRfU0VHTUVOVFMnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEhsc091dHB1dFNlbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBIbHNPdXRwdXRTZWxlY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSExTIHByb2dyYW0gZGF0ZSB0aW1lLiAqL1xuZXhwb3J0IGNsYXNzIEhsc1Byb2dyYW1EYXRlVGltZSB7XG4gIC8qKiBJbmNsdWRlICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5DTFVERSA9IG5ldyBIbHNQcm9ncmFtRGF0ZVRpbWUoJ0lOQ0xVREUnKTtcbiAgLyoqIEV4Y2x1ZGUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFWENMVURFID0gbmV3IEhsc1Byb2dyYW1EYXRlVGltZSgnRVhDTFVERScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzUHJvZ3JhbURhdGVUaW1lIHtcbiAgICByZXR1cm4gbmV3IEhsc1Byb2dyYW1EYXRlVGltZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBITFMgcHJvZ3JhbSBkYXRlIHRpbWUgY2xvY2suICovXG5leHBvcnQgY2xhc3MgSGxzUHJvZ3JhbURhdGVUaW1lQ2xvY2sge1xuICAvKiogSW5pdGlhbGl6ZSBmcm9tIG91dHB1dCB0aW1lY29kZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOSVRJQUxJWkVfRlJPTV9PVVRQVVRfVElNRUNPREUgPSBuZXcgSGxzUHJvZ3JhbURhdGVUaW1lQ2xvY2soJ0lOSVRJQUxJWkVfRlJPTV9PVVRQVVRfVElNRUNPREUnKTtcbiAgLyoqIFN5c3RlbSBjbG9jayAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNZU1RFTV9DTE9DSyA9IG5ldyBIbHNQcm9ncmFtRGF0ZVRpbWVDbG9jaygnU1lTVEVNX0NMT0NLJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNQcm9ncmFtRGF0ZVRpbWVDbG9jayB7XG4gICAgcmV0dXJuIG5ldyBIbHNQcm9ncmFtRGF0ZVRpbWVDbG9jayh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBITFMgcmVkdW5kYW50IG1hbmlmZXN0LiAqL1xuZXhwb3J0IGNsYXNzIEhsc1JlZHVuZGFudE1hbmlmZXN0IHtcbiAgLyoqIERpc2FibGVkICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRUQgPSBuZXcgSGxzUmVkdW5kYW50TWFuaWZlc3QoJ0RJU0FCTEVEJyk7XG4gIC8qKiBFbmFibGVkICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRU5BQkxFRCA9IG5ldyBIbHNSZWR1bmRhbnRNYW5pZmVzdCgnRU5BQkxFRCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzUmVkdW5kYW50TWFuaWZlc3Qge1xuICAgIHJldHVybiBuZXcgSGxzUmVkdW5kYW50TWFuaWZlc3QodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSExTIHNlZ21lbnRhdGlvbiBtb2RlLiAqL1xuZXhwb3J0IGNsYXNzIEhsc1NlZ21lbnRhdGlvbk1vZGUge1xuICAvKiogVXNlIGlucHV0IHNlZ21lbnRhdGlvbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVTRV9JTlBVVF9TRUdNRU5UQVRJT04gPSBuZXcgSGxzU2VnbWVudGF0aW9uTW9kZSgnVVNFX0lOUFVUX1NFR01FTlRBVElPTicpO1xuICAvKiogVXNlIHNlZ21lbnQgZHVyYXRpb24gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVU0VfU0VHTUVOVF9EVVJBVElPTiA9IG5ldyBIbHNTZWdtZW50YXRpb25Nb2RlKCdVU0VfU0VHTUVOVF9EVVJBVElPTicpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzU2VnbWVudGF0aW9uTW9kZSB7XG4gICAgcmV0dXJuIG5ldyBIbHNTZWdtZW50YXRpb25Nb2RlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEhMUyBzdHJlYW0gaW5mIHJlc29sdXRpb24uICovXG5leHBvcnQgY2xhc3MgSGxzU3RyZWFtSW5mUmVzb2x1dGlvbiB7XG4gIC8qKiBJbmNsdWRlICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5DTFVERSA9IG5ldyBIbHNTdHJlYW1JbmZSZXNvbHV0aW9uKCdJTkNMVURFJyk7XG4gIC8qKiBFeGNsdWRlICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRVhDTFVERSA9IG5ldyBIbHNTdHJlYW1JbmZSZXNvbHV0aW9uKCdFWENMVURFJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNTdHJlYW1JbmZSZXNvbHV0aW9uIHtcbiAgICByZXR1cm4gbmV3IEhsc1N0cmVhbUluZlJlc29sdXRpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSExTIGNhcHRpb24gbGFuZ3VhZ2Ugc2V0dGluZy4gKi9cbmV4cG9ydCBjbGFzcyBIbHNDYXB0aW9uTGFuZ3VhZ2VTZXR0aW5nIHtcbiAgLyoqIEluc2VydCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU0VSVCA9IG5ldyBIbHNDYXB0aW9uTGFuZ3VhZ2VTZXR0aW5nKCdJTlNFUlQnKTtcbiAgLyoqIE5vbmUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IEhsc0NhcHRpb25MYW5ndWFnZVNldHRpbmcoJ05PTkUnKTtcbiAgLyoqIE9taXQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPTUlUID0gbmV3IEhsc0NhcHRpb25MYW5ndWFnZVNldHRpbmcoJ09NSVQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEhsc0NhcHRpb25MYW5ndWFnZVNldHRpbmcge1xuICAgIHJldHVybiBuZXcgSGxzQ2FwdGlvbkxhbmd1YWdlU2V0dGluZyh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogV2hldGhlciBNZWRpYVBhY2thZ2Ugc2V0cyBhIE1lZGlhUGFja2FnZSBWMiBhdWRpbyByZW5kaXRpb24gYXMgZGVmYXVsdCAvIGF1dG8tc2VsZWN0IGluIHRoZSBITFNcbiAqIG1hbmlmZXN0LiBBY3Jvc3MgYWxsIHJlbmRpdGlvbnM6IGF0IG1vc3Qgb25lIG1heSBiZSBgWUVTYDsgbm90IGFsbCBtYXkgYmUgYE5PYC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1lZGlhUGFja2FnZVYySGxzU2V0dGluZyB7XG4gIC8qKiBTZXQgdGhpcyByZW5kaXRpb24gYXMgZGVmYXVsdCAvIGF1dG8tc2VsZWN0LiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFlFUyA9IG5ldyBNZWRpYVBhY2thZ2VWMkhsc1NldHRpbmcoJ1lFUycpO1xuICAvKiogRG8gbm90IHNldCB0aGlzIHJlbmRpdGlvbiBhcyBkZWZhdWx0IC8gYXV0by1zZWxlY3QuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk8gPSBuZXcgTWVkaWFQYWNrYWdlVjJIbHNTZXR0aW5nKCdOTycpO1xuICAvKiogTGV0IE1lZGlhUGFja2FnZSBkZWNpZGUgZm9yIHRoaXMgcmVuZGl0aW9uLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9NSVQgPSBuZXcgTWVkaWFQYWNrYWdlVjJIbHNTZXR0aW5nKCdPTUlUJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNZWRpYVBhY2thZ2VWMkhsc1NldHRpbmcge1xuICAgIHJldHVybiBuZXcgTWVkaWFQYWNrYWdlVjJIbHNTZXR0aW5nKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIEFkIG1hcmtlciB0eXBlIGZvciBhbiBITFMgb3V0cHV0IGdyb3VwLiAqL1xuZXhwb3J0IGNsYXNzIEhsc0FkTWFya2VycyB7XG4gIC8qKiBBZG9iZSBhZCBtYXJrZXJzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFET0JFID0gbmV3IEhsc0FkTWFya2VycygnQURPQkUnKTtcbiAgLyoqIEVsZW1lbnRhbCBhZCBtYXJrZXJzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVMRU1FTlRBTCA9IG5ldyBIbHNBZE1hcmtlcnMoJ0VMRU1FTlRBTCcpO1xuICAvKiogRWxlbWVudGFsIFNDVEUtMzUgYWQgbWFya2Vycy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTEVNRU5UQUxfU0NURTM1ID0gbmV3IEhsc0FkTWFya2VycygnRUxFTUVOVEFMX1NDVEUzNScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzQWRNYXJrZXJzIHtcbiAgICByZXR1cm4gbmV3IEhsc0FkTWFya2Vycyh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBBZCBtYXJrZXIgdHlwZSBmb3IgYW4gUlRNUCBvdXRwdXQgZ3JvdXAuICovXG5leHBvcnQgY2xhc3MgUnRtcEFkTWFya2VycyB7XG4gIC8qKiBvbkN1ZVBvaW50IFNDVEUtMzUgYWQgbWFya2Vycy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPTl9DVUVfUE9JTlRfU0NURTM1ID0gbmV3IFJ0bXBBZE1hcmtlcnMoJ09OX0NVRV9QT0lOVF9TQ1RFMzUnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFJ0bXBBZE1hcmtlcnMge1xuICAgIHJldHVybiBuZXcgUnRtcEFkTWFya2Vycyh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBITFMgdGltZWQgbWV0YWRhdGEgSUQzIGZyYW1lLiAqL1xuZXhwb3J0IGNsYXNzIEhsc1RpbWVkTWV0YWRhdGFJZDNGcmFtZSB7XG4gIC8qKiBOb25lICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBIbHNUaW1lZE1ldGFkYXRhSWQzRnJhbWUoJ05PTkUnKTtcbiAgLyoqIFBSSVYgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUklWID0gbmV3IEhsc1RpbWVkTWV0YWRhdGFJZDNGcmFtZSgnUFJJVicpO1xuICAvKiogVERSTCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFREUkwgPSBuZXcgSGxzVGltZWRNZXRhZGF0YUlkM0ZyYW1lKCdURFJMJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIbHNUaW1lZE1ldGFkYXRhSWQzRnJhbWUge1xuICAgIHJldHVybiBuZXcgSGxzVGltZWRNZXRhZGF0YUlkM0ZyYW1lKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFdoZXRoZXIgdG8gdXNlIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcgZm9yIGFuIEhMUyBDRE4gY29ubmVjdGlvbiAoQWthbWFpLCBXZWJEQVYpLiAqL1xuZXhwb3J0IGNsYXNzIEh0dHBUcmFuc2Zlck1vZGUge1xuICAvKiogVXNlIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0hVTktFRCA9IG5ldyBIdHRwVHJhbnNmZXJNb2RlKCdDSFVOS0VEJyk7XG4gIC8qKiBEbyBub3QgdXNlIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9OX0NIVU5LRUQgPSBuZXcgSHR0cFRyYW5zZmVyTW9kZSgnTk9OX0NIVU5LRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEh0dHBUcmFuc2Zlck1vZGUge1xuICAgIHJldHVybiBuZXcgSHR0cFRyYW5zZmVyTW9kZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBITFMgVFMgZmlsZSBtb2RlLiAqL1xuZXhwb3J0IGNsYXNzIEhsc1RzRmlsZU1vZGUge1xuICAvKiogU2VnbWVudGVkIGZpbGVzICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VHTUVOVEVEX0ZJTEVTID0gbmV3IEhsc1RzRmlsZU1vZGUoJ1NFR01FTlRFRF9GSUxFUycpO1xuICAvKiogU2luZ2xlIGZpbGUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTSU5HTEVfRklMRSA9IG5ldyBIbHNUc0ZpbGVNb2RlKCdTSU5HTEVfRklMRScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogSGxzVHNGaWxlTW9kZSB7XG4gICAgcmV0dXJuIG5ldyBIbHNUc0ZpbGVNb2RlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFJUTVAgYXV0aGVudGljYXRpb24gc2NoZW1lLiAqL1xuZXhwb3J0IGNsYXNzIFJ0bXBBdXRoZW50aWNhdGlvblNjaGVtZSB7XG4gIC8qKiBDb21tb24gYXV0aGVudGljYXRpb24gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT01NT04gPSBuZXcgUnRtcEF1dGhlbnRpY2F0aW9uU2NoZW1lKCdDT01NT04nKTtcbiAgLyoqIEFrYW1haSBhdXRoZW50aWNhdGlvbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFLQU1BSSA9IG5ldyBSdG1wQXV0aGVudGljYXRpb25TY2hlbWUoJ0FLQU1BSScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogUnRtcEF1dGhlbnRpY2F0aW9uU2NoZW1lIHtcbiAgICByZXR1cm4gbmV3IFJ0bXBBdXRoZW50aWNhdGlvblNjaGVtZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBSVE1QIGNhY2hlIGZ1bGwgYmVoYXZpb3IuICovXG5leHBvcnQgY2xhc3MgUnRtcENhY2hlRnVsbEJlaGF2aW9yIHtcbiAgLyoqIERpc2Nvbm5lY3QgaW1tZWRpYXRlbHkgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNDT05ORUNUX0lNTUVESUFURUxZID0gbmV3IFJ0bXBDYWNoZUZ1bGxCZWhhdmlvcignRElTQ09OTkVDVF9JTU1FRElBVEVMWScpO1xuICAvKiogV2FpdCBmb3Igc2VydmVyICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgV0FJVF9GT1JfU0VSVkVSID0gbmV3IFJ0bXBDYWNoZUZ1bGxCZWhhdmlvcignV0FJVF9GT1JfU0VSVkVSJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBSdG1wQ2FjaGVGdWxsQmVoYXZpb3Ige1xuICAgIHJldHVybiBuZXcgUnRtcENhY2hlRnVsbEJlaGF2aW9yKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFJUTVAgY2FwdGlvbiBkYXRhLiAqL1xuZXhwb3J0IGNsYXNzIFJ0bXBDYXB0aW9uRGF0YSB7XG4gIC8qKiBBbGwgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBTEwgPSBuZXcgUnRtcENhcHRpb25EYXRhKCdBTEwnKTtcbiAgLyoqIEZpZWxkIDEgYW5kIGZpZWxkIDIgNjA4ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTEQxX0FORF9GSUVMRDJfNjA4ID0gbmV3IFJ0bXBDYXB0aW9uRGF0YSgnRklFTEQxX0FORF9GSUVMRDJfNjA4Jyk7XG4gIC8qKiBGaWVsZCAxIDYwOCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEMV82MDggPSBuZXcgUnRtcENhcHRpb25EYXRhKCdGSUVMRDFfNjA4Jyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBSdG1wQ2FwdGlvbkRhdGEge1xuICAgIHJldHVybiBuZXcgUnRtcENhcHRpb25EYXRhKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFJUTVAgaW5wdXQgbG9zcyBhY3Rpb24uICovXG5leHBvcnQgY2xhc3MgUnRtcElucHV0TG9zc0FjdGlvbiB7XG4gIC8qKiBFbWl0IG91dHB1dCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVNSVRfT1VUUFVUID0gbmV3IFJ0bXBJbnB1dExvc3NBY3Rpb24oJ0VNSVRfT1VUUFVUJyk7XG4gIC8qKiBQYXVzZSBvdXRwdXQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVVTRV9PVVRQVVQgPSBuZXcgUnRtcElucHV0TG9zc0FjdGlvbignUEFVU0VfT1VUUFVUJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBSdG1wSW5wdXRMb3NzQWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFJ0bXBJbnB1dExvc3NBY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogUlRNUCBpbmNsdWRlIGZpbGxlciBOQUwgdW5pdHMuICovXG5leHBvcnQgY2xhc3MgUnRtcEluY2x1ZGVGaWxsZXJOYWxVbml0cyB7XG4gIC8qKiBBdXRvICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUTyA9IG5ldyBSdG1wSW5jbHVkZUZpbGxlck5hbFVuaXRzKCdBVVRPJyk7XG4gIC8qKiBEcm9wICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRFJPUCA9IG5ldyBSdG1wSW5jbHVkZUZpbGxlck5hbFVuaXRzKCdEUk9QJyk7XG4gIC8qKiBJbmNsdWRlICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5DTFVERSA9IG5ldyBSdG1wSW5jbHVkZUZpbGxlck5hbFVuaXRzKCdJTkNMVURFJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBSdG1wSW5jbHVkZUZpbGxlck5hbFVuaXRzIHtcbiAgICByZXR1cm4gbmV3IFJ0bXBJbmNsdWRlRmlsbGVyTmFsVW5pdHModmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogUlRNUCBUTFMgY2VydGlmaWNhdGUgdmVyaWZpY2F0aW9uIG1vZGUuICovXG5leHBvcnQgY2xhc3MgUnRtcENlcnRpZmljYXRlTW9kZSB7XG4gIC8qKiBWZXJpZnkgdGhlIFRMUyBjZXJ0aWZpY2F0ZSBjaGFpbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFZFUklGWV9BVVRIRU5USUNJVFkgPSBuZXcgUnRtcENlcnRpZmljYXRlTW9kZSgnVkVSSUZZX0FVVEhFTlRJQ0lUWScpO1xuICAvKiogRG8gbm90IHZlcmlmeSB0aGUgVExTIGNlcnRpZmljYXRlICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VMRl9TSUdORUQgPSBuZXcgUnRtcENlcnRpZmljYXRlTW9kZSgnU0VMRl9TSUdORUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFJ0bXBDZXJ0aWZpY2F0ZU1vZGUge1xuICAgIHJldHVybiBuZXcgUnRtcENlcnRpZmljYXRlTW9kZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogQmVoYXZpb3Igb2YgbGFzdCByZXNvcnQgd2hlbiBpbnB1dCB2aWRlbyBpcyBsb3N0IGFuZCBubyBtb3JlIGJhY2t1cCBpbnB1dHMgYXJlIGF2YWlsYWJsZSxcbiAqIGZvciBhbiBTUlQgb3V0cHV0IGdyb3VwLlxuICovXG5leHBvcnQgY2xhc3MgU3J0SW5wdXRMb3NzQWN0aW9uIHtcbiAgLyoqIERyb3AgdGhlIGVudGlyZSB0cmFuc3BvcnQgc3RyZWFtLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERST1BfVFMgPSBuZXcgU3J0SW5wdXRMb3NzQWN0aW9uKCdEUk9QX1RTJyk7XG4gIC8qKiBEcm9wIHRoZSBwcm9ncmFtIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJlYW0gKHJlcGxhY2VkIHdpdGggbnVsbCBwYWNrZXRzIHRvIG1lZXQgYml0cmF0ZSkuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRFJPUF9QUk9HUkFNID0gbmV3IFNydElucHV0TG9zc0FjdGlvbignRFJPUF9QUk9HUkFNJyk7XG4gIC8qKiBDb250aW51ZSBlbWl0dGluZyB3aXRoIHJlcGVhdCwgYmxhY2ssIG9yIHNsYXRlIGZyYW1lcyBzdWJzdGl0dXRlZCBmb3IgdGhlIGFic2VudCB2aWRlby4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTUlUX1BST0dSQU0gPSBuZXcgU3J0SW5wdXRMb3NzQWN0aW9uKCdFTUlUX1BST0dSQU0nKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFNydElucHV0TG9zc0FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTcnRJbnB1dExvc3NBY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogU1JUIG91dHB1dCBlbmNyeXB0aW9uIHR5cGUuICovXG5leHBvcnQgY2xhc3MgU3J0RW5jcnlwdGlvblR5cGUge1xuICAvKiogQUVTLTEyOCBlbmNyeXB0aW9uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUVTMTI4ID0gbmV3IFNydEVuY3J5cHRpb25UeXBlKCdBRVMxMjgnKTtcbiAgLyoqIEFFUy0xOTIgZW5jcnlwdGlvbiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFFUzE5MiA9IG5ldyBTcnRFbmNyeXB0aW9uVHlwZSgnQUVTMTkyJyk7XG4gIC8qKiBBRVMtMjU2IGVuY3J5cHRpb24gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBRVMyNTYgPSBuZXcgU3J0RW5jcnlwdGlvblR5cGUoJ0FFUzI1NicpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogU3J0RW5jcnlwdGlvblR5cGUge1xuICAgIHJldHVybiBuZXcgU3J0RW5jcnlwdGlvblR5cGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogVURQIGlucHV0IGxvc3MgYWN0aW9uLiAqL1xuZXhwb3J0IGNsYXNzIFVkcElucHV0TG9zc0FjdGlvbiB7XG4gIC8qKiBEcm9wIHRoZSBlbnRpcmUgdHJhbnNwb3J0IHN0cmVhbSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERST1BfVFMgPSBuZXcgVWRwSW5wdXRMb3NzQWN0aW9uKCdEUk9QX1RTJyk7XG4gIC8qKiBEcm9wIHRoZSBwcm9ncmFtIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJlYW0gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEUk9QX1BST0dSQU0gPSBuZXcgVWRwSW5wdXRMb3NzQWN0aW9uKCdEUk9QX1BST0dSQU0nKTtcbiAgLyoqIENvbnRpbnVlIGVtaXR0aW5nIHdpdGggc3Vic3RpdHV0ZSBmcmFtZXMgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFTUlUX1BST0dSQU0gPSBuZXcgVWRwSW5wdXRMb3NzQWN0aW9uKCdFTUlUX1BST0dSQU0nKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFVkcElucHV0TG9zc0FjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBVZHBJbnB1dExvc3NBY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogRW5hYmxlcyBjb2x1bW4tb25seSBvciBjb2x1bW4tYW5kLXJvdyBGRUMgZm9yIGEgVURQIG91dHB1dC4gKi9cbmV4cG9ydCBjbGFzcyBGZWNNb2RlIHtcbiAgLyoqIENvbHVtbi1vbmx5IEZFQy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT0xVTU4gPSBuZXcgRmVjTW9kZSgnQ09MVU1OJyk7XG4gIC8qKiBDb2x1bW4tYW5kLXJvdyBGRUMgKG1vcmUgcm9idXN0KS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDT0xVTU5fQU5EX1JPVyA9IG5ldyBGZWNNb2RlKCdDT0xVTU5fQU5EX1JPVycpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogRmVjTW9kZSB7XG4gICAgcmV0dXJuIG5ldyBGZWNNb2RlKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIFVEUCB0aW1lZCBtZXRhZGF0YSBJRDMgZnJhbWUuICovXG5leHBvcnQgY2xhc3MgVWRwVGltZWRNZXRhZGF0YUlkM0ZyYW1lIHtcbiAgLyoqIE5vbmUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IFVkcFRpbWVkTWV0YWRhdGFJZDNGcmFtZSgnTk9ORScpO1xuICAvKiogUFJJViAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSSVYgPSBuZXcgVWRwVGltZWRNZXRhZGF0YUlkM0ZyYW1lKCdQUklWJyk7XG4gIC8qKiBURFJMICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVERSTCA9IG5ldyBVZHBUaW1lZE1ldGFkYXRhSWQzRnJhbWUoJ1REUkwnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFVkcFRpbWVkTWV0YWRhdGFJZDNGcmFtZSB7XG4gICAgcmV0dXJuIG5ldyBVZHBUaW1lZE1ldGFkYXRhSWQzRnJhbWUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIGF1ZGlvLW9ubHkgdGltZWNvZGUgY29udHJvbC4gKi9cbmV4cG9ydCBjbGFzcyBNc1Ntb290aEF1ZGlvT25seVRpbWVjb2RlQ29udHJvbCB7XG4gIC8qKiBQYXNzdGhyb3VnaCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBU1NUSFJPVUdIID0gbmV3IE1zU21vb3RoQXVkaW9Pbmx5VGltZWNvZGVDb250cm9sKCdQQVNTVEhST1VHSCcpO1xuICAvKiogVXNlIGNvbmZpZ3VyZWQgY2xvY2sgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVU0VfQ09ORklHVVJFRF9DTE9DSyA9IG5ldyBNc1Ntb290aEF1ZGlvT25seVRpbWVjb2RlQ29udHJvbCgnVVNFX0NPTkZJR1VSRURfQ0xPQ0snKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE1zU21vb3RoQXVkaW9Pbmx5VGltZWNvZGVDb250cm9sIHtcbiAgICByZXR1cm4gbmV3IE1zU21vb3RoQXVkaW9Pbmx5VGltZWNvZGVDb250cm9sKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIE1TIFNtb290aCBjZXJ0aWZpY2F0ZSBtb2RlLiAqL1xuZXhwb3J0IGNsYXNzIE1zU21vb3RoQ2VydGlmaWNhdGVNb2RlIHtcbiAgLyoqIFNlbGYtc2lnbmVkICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VMRl9TSUdORUQgPSBuZXcgTXNTbW9vdGhDZXJ0aWZpY2F0ZU1vZGUoJ1NFTEZfU0lHTkVEJyk7XG4gIC8qKiBWZXJpZnkgYXV0aGVudGljaXR5ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVkVSSUZZX0FVVEhFTlRJQ0lUWSA9IG5ldyBNc1Ntb290aENlcnRpZmljYXRlTW9kZSgnVkVSSUZZX0FVVEhFTlRJQ0lUWScpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTXNTbW9vdGhDZXJ0aWZpY2F0ZU1vZGUge1xuICAgIHJldHVybiBuZXcgTXNTbW9vdGhDZXJ0aWZpY2F0ZU1vZGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIGV2ZW50IElEIG1vZGUuICovXG5leHBvcnQgY2xhc3MgTXNTbW9vdGhFdmVudElkTW9kZSB7XG4gIC8qKiBObyBldmVudCBJRCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PX0VWRU5UX0lEID0gbmV3IE1zU21vb3RoRXZlbnRJZE1vZGUoJ05PX0VWRU5UX0lEJyk7XG4gIC8qKiBVc2UgY29uZmlndXJlZCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVTRV9DT05GSUdVUkVEID0gbmV3IE1zU21vb3RoRXZlbnRJZE1vZGUoJ1VTRV9DT05GSUdVUkVEJyk7XG4gIC8qKiBVc2UgdGltZXN0YW1wICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFX1RJTUVTVEFNUCA9IG5ldyBNc1Ntb290aEV2ZW50SWRNb2RlKCdVU0VfVElNRVNUQU1QJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNc1Ntb290aEV2ZW50SWRNb2RlIHtcbiAgICByZXR1cm4gbmV3IE1zU21vb3RoRXZlbnRJZE1vZGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIGV2ZW50IHN0b3AgYmVoYXZpb3IuICovXG5leHBvcnQgY2xhc3MgTXNTbW9vdGhFdmVudFN0b3BCZWhhdmlvciB7XG4gIC8qKiBOb25lICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBNc1Ntb290aEV2ZW50U3RvcEJlaGF2aW9yKCdOT05FJyk7XG4gIC8qKiBTZW5kIEVPUyAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFTkRfRU9TID0gbmV3IE1zU21vb3RoRXZlbnRTdG9wQmVoYXZpb3IoJ1NFTkRfRU9TJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBNc1Ntb290aEV2ZW50U3RvcEJlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IE1zU21vb3RoRXZlbnRTdG9wQmVoYXZpb3IodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIGlucHV0IGxvc3MgYWN0aW9uLiAqL1xuZXhwb3J0IGNsYXNzIE1zU21vb3RoSW5wdXRMb3NzQWN0aW9uIHtcbiAgLyoqIEVtaXQgb3V0cHV0ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRU1JVF9PVVRQVVQgPSBuZXcgTXNTbW9vdGhJbnB1dExvc3NBY3Rpb24oJ0VNSVRfT1VUUFVUJyk7XG4gIC8qKiBQYXVzZSBvdXRwdXQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVVTRV9PVVRQVVQgPSBuZXcgTXNTbW9vdGhJbnB1dExvc3NBY3Rpb24oJ1BBVVNFX09VVFBVVCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTXNTbW9vdGhJbnB1dExvc3NBY3Rpb24ge1xuICAgIHJldHVybiBuZXcgTXNTbW9vdGhJbnB1dExvc3NBY3Rpb24odmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIHNlZ21lbnRhdGlvbiBtb2RlLiAqL1xuZXhwb3J0IGNsYXNzIE1zU21vb3RoU2VnbWVudGF0aW9uTW9kZSB7XG4gIC8qKiBVc2UgaW5wdXQgc2VnbWVudGF0aW9uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFX0lOUFVUX1NFR01FTlRBVElPTiA9IG5ldyBNc1Ntb290aFNlZ21lbnRhdGlvbk1vZGUoJ1VTRV9JTlBVVF9TRUdNRU5UQVRJT04nKTtcbiAgLyoqIFVzZSBzZWdtZW50IGR1cmF0aW9uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFX1NFR01FTlRfRFVSQVRJT04gPSBuZXcgTXNTbW9vdGhTZWdtZW50YXRpb25Nb2RlKCdVU0VfU0VHTUVOVF9EVVJBVElPTicpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTXNTbW9vdGhTZWdtZW50YXRpb25Nb2RlIHtcbiAgICByZXR1cm4gbmV3IE1zU21vb3RoU2VnbWVudGF0aW9uTW9kZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBNUyBTbW9vdGggc3BhcnNlIHRyYWNrIHR5cGUuICovXG5leHBvcnQgY2xhc3MgTXNTbW9vdGhTcGFyc2VUcmFja1R5cGUge1xuICAvKiogTm9uZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PTkUgPSBuZXcgTXNTbW9vdGhTcGFyc2VUcmFja1R5cGUoJ05PTkUnKTtcbiAgLyoqIFNDVEUtMzUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQ1RFXzM1ID0gbmV3IE1zU21vb3RoU3BhcnNlVHJhY2tUeXBlKCdTQ1RFXzM1Jyk7XG4gIC8qKiBTQ1RFLTM1IHdpdGhvdXQgc2VnbWVudGF0aW9uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0NURV8zNV9XSVRIT1VUX1NFR01FTlRBVElPTiA9IG5ldyBNc1Ntb290aFNwYXJzZVRyYWNrVHlwZSgnU0NURV8zNV9XSVRIT1VUX1NFR01FTlRBVElPTicpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTXNTbW9vdGhTcGFyc2VUcmFja1R5cGUge1xuICAgIHJldHVybiBuZXcgTXNTbW9vdGhTcGFyc2VUcmFja1R5cGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIHN0cmVhbSBtYW5pZmVzdCBiZWhhdmlvci4gKi9cbmV4cG9ydCBjbGFzcyBNc1Ntb290aFN0cmVhbU1hbmlmZXN0QmVoYXZpb3Ige1xuICAvKiogRG8gbm90IHNlbmQgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET19OT1RfU0VORCA9IG5ldyBNc1Ntb290aFN0cmVhbU1hbmlmZXN0QmVoYXZpb3IoJ0RPX05PVF9TRU5EJyk7XG4gIC8qKiBTZW5kICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VORCA9IG5ldyBNc1Ntb290aFN0cmVhbU1hbmlmZXN0QmVoYXZpb3IoJ1NFTkQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE1zU21vb3RoU3RyZWFtTWFuaWZlc3RCZWhhdmlvciB7XG4gICAgcmV0dXJuIG5ldyBNc1Ntb290aFN0cmVhbU1hbmlmZXN0QmVoYXZpb3IodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogTVMgU21vb3RoIHRpbWVzdGFtcCBvZmZzZXQgbW9kZS4gKi9cbmV4cG9ydCBjbGFzcyBNc1Ntb290aFRpbWVzdGFtcE9mZnNldE1vZGUge1xuICAvKiogVXNlIGNvbmZpZ3VyZWQgb2Zmc2V0ICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVVNFX0NPTkZJR1VSRURfT0ZGU0VUID0gbmV3IE1zU21vb3RoVGltZXN0YW1wT2Zmc2V0TW9kZSgnVVNFX0NPTkZJR1VSRURfT0ZGU0VUJyk7XG4gIC8qKiBVc2UgZXZlbnQgc3RhcnQgZGF0ZSAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVTRV9FVkVOVF9TVEFSVF9EQVRFID0gbmV3IE1zU21vb3RoVGltZXN0YW1wT2Zmc2V0TW9kZSgnVVNFX0VWRU5UX1NUQVJUX0RBVEUnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IE1zU21vb3RoVGltZXN0YW1wT2Zmc2V0TW9kZSB7XG4gICAgcmV0dXJuIG5ldyBNc1Ntb290aFRpbWVzdGFtcE9mZnNldE1vZGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogSUQzIG1ldGFkYXRhIGluc2VydGlvbiBiZWhhdmlvciAoQ01BRiBJbmdlc3QgYW5kIE1lZGlhUGFja2FnZSBWMiBvdXRwdXQgZ3JvdXBzKS4gKi9cbmV4cG9ydCBjbGFzcyBJZDNCZWhhdmlvciB7XG4gIC8qKiBEbyBub3QgaW5zZXJ0IElEMyBtZXRhZGF0YS4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBESVNBQkxFRCA9IG5ldyBJZDNCZWhhdmlvcignRElTQUJMRUQnKTtcbiAgLyoqIEVuYWJsZSBJRDMgbWV0YWRhdGEgaW5zZXJ0aW9uLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVOQUJMRUQgPSBuZXcgSWQzQmVoYXZpb3IoJ0VOQUJMRUQnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IElkM0JlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IElkM0JlaGF2aW9yKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIENNQUYgSW5nZXN0IEtMViBiZWhhdmlvci4gKi9cbmV4cG9ydCBjbGFzcyBLbHZCZWhhdmlvciB7XG4gIC8qKiBObyBwYXNzdGhyb3VnaCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PX1BBU1NUSFJPVUdIID0gbmV3IEtsdkJlaGF2aW9yKCdOT19QQVNTVEhST1VHSCcpO1xuICAvKiogUGFzc3Rocm91Z2ggKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVNTVEhST1VHSCA9IG5ldyBLbHZCZWhhdmlvcignUEFTU1RIUk9VR0gnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEtsdkJlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IEtsdkJlaGF2aW9yKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqIENNQUYgSW5nZXN0IE5pZWxzZW4gSUQzIGJlaGF2aW9yLiAqL1xuZXhwb3J0IGNsYXNzIE5pZWxzZW5JZDNCZWhhdmlvciB7XG4gIC8qKiBObyBwYXNzdGhyb3VnaCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5PX1BBU1NUSFJPVUdIID0gbmV3IE5pZWxzZW5JZDNCZWhhdmlvcignTk9fUEFTU1RIUk9VR0gnKTtcbiAgLyoqIFBhc3N0aHJvdWdoICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFTU1RIUk9VR0ggPSBuZXcgTmllbHNlbklkM0JlaGF2aW9yKCdQQVNTVEhST1VHSCcpO1xuXG4gIC8qKiBBIHZhbHVlIG5vdCB5ZXQgbW9kZWxsZWQgYnkgQVdTIENESy4gKi9cbiAgcHVibGljIHN0YXRpYyBvZih2YWx1ZTogc3RyaW5nKTogTmllbHNlbklkM0JlaGF2aW9yIHtcbiAgICByZXR1cm4gbmV3IE5pZWxzZW5JZDNCZWhhdmlvcih2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBDTUFGIEluZ2VzdCBTQ1RFLTM1IHR5cGUuICovXG5leHBvcnQgY2xhc3MgU2N0ZTM1VHlwZSB7XG4gIC8qKiBOb25lICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ORSA9IG5ldyBTY3RlMzVUeXBlKCdOT05FJyk7XG4gIC8qKiBTQ1RFLTM1IHdpdGhvdXQgc2VnbWVudGF0aW9uICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0NURV8zNV9XSVRIT1VUX1NFR01FTlRBVElPTiA9IG5ldyBTY3RlMzVUeXBlKCdTQ1RFXzM1X1dJVEhPVVRfU0VHTUVOVEFUSU9OJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBTY3RlMzVUeXBlIHtcbiAgICByZXR1cm4gbmV3IFNjdGUzNVR5cGUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIFNlZ21lbnQgbGVuZ3RoIHVuaXRzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBlbnVtIFNlZ21lbnRMZW5ndGhVbml0cyB7XG4gIC8qKiBNaWxsaXNlY29uZHMgKi9cbiAgTUlMTElTRUNPTkRTID0gJ01JTExJU0VDT05EUycsXG4gIC8qKiBTZWNvbmRzICovXG4gIFNFQ09ORFMgPSAnU0VDT05EUycsXG59XG5cbi8qKiBDTUFGIEluZ2VzdCB0aW1lZCBtZXRhZGF0YSBJRDMgZnJhbWUuICovXG5leHBvcnQgY2xhc3MgVGltZWRNZXRhZGF0YUlkM0ZyYW1lIHtcbiAgLyoqIE5vbmUgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBOT05FID0gbmV3IFRpbWVkTWV0YWRhdGFJZDNGcmFtZSgnTk9ORScpO1xuICAvKiogUFJJViAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBSSVYgPSBuZXcgVGltZWRNZXRhZGF0YUlkM0ZyYW1lKCdQUklWJyk7XG4gIC8qKiBURFJMICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVERSTCA9IG5ldyBUaW1lZE1ldGFkYXRhSWQzRnJhbWUoJ1REUkwnKTtcblxuICAvKiogQSB2YWx1ZSBub3QgeWV0IG1vZGVsbGVkIGJ5IEFXUyBDREsuICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IFRpbWVkTWV0YWRhdGFJZDNGcmFtZSB7XG4gICAgcmV0dXJuIG5ldyBUaW1lZE1ldGFkYXRhSWQzRnJhbWUodmFsdWUpO1xuICB9XG5cbiAgLyoqIFRoZSB1bmRlcmx5aW5nIHN0cmluZyB2YWx1ZSBwYXNzZWQgdG8gQ2xvdWRGb3JtYXRpb24uICovXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG4vKiogQ01BRiBJbmdlc3QgdGltZWQgbWV0YWRhdGEgcGFzc3Rocm91Z2guICovXG5leHBvcnQgY2xhc3MgVGltZWRNZXRhZGF0YVBhc3N0aHJvdWdoIHtcbiAgLyoqIERpc2FibGVkICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRElTQUJMRUQgPSBuZXcgVGltZWRNZXRhZGF0YVBhc3N0aHJvdWdoKCdESVNBQkxFRCcpO1xuICAvKiogRW5hYmxlZCAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVOQUJMRUQgPSBuZXcgVGltZWRNZXRhZGF0YVBhc3N0aHJvdWdoKCdFTkFCTEVEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBUaW1lZE1ldGFkYXRhUGFzc3Rocm91Z2gge1xuICAgIHJldHVybiBuZXcgVGltZWRNZXRhZGF0YVBhc3N0aHJvdWdoKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBzdHJpbmcgdmFsdWUgcGFzc2VkIHRvIENsb3VkRm9ybWF0aW9uLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBTMyBjYW5uZWQgQUNMIGZvciBvdXRwdXQgZGVzdGluYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgUzNDYW5uZWRBY2wge1xuICAvKiogR3JhbnRzIHRoZSBvd25lciBmdWxsIGNvbnRyb2wgYW5kIGF1dGhlbnRpY2F0ZWQgQVdTIHVzZXJzIHJlYWQgYWNjZXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhFTlRJQ0FURURfUkVBRCA9IG5ldyBTM0Nhbm5lZEFjbCgnQVVUSEVOVElDQVRFRF9SRUFEJyk7XG4gIC8qKiBHcmFudHMgdGhlIG9iamVjdCBvd25lciBhbmQgYnVja2V0IG93bmVyIGZ1bGwgY29udHJvbC4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCVUNLRVRfT1dORVJfRlVMTF9DT05UUk9MID0gbmV3IFMzQ2FubmVkQWNsKCdCVUNLRVRfT1dORVJfRlVMTF9DT05UUk9MJyk7XG4gIC8qKiBHcmFudHMgdGhlIG93bmVyIGZ1bGwgY29udHJvbCBhbmQgdGhlIGJ1Y2tldCBvd25lciByZWFkIGFjY2Vzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCVUNLRVRfT1dORVJfUkVBRCA9IG5ldyBTM0Nhbm5lZEFjbCgnQlVDS0VUX09XTkVSX1JFQUQnKTtcbiAgLyoqIEdyYW50cyB0aGUgb3duZXIgZnVsbCBjb250cm9sIGFuZCBhbGwgdXNlcnMgcmVhZCBhY2Nlc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFVCTElDX1JFQUQgPSBuZXcgUzNDYW5uZWRBY2woJ1BVQkxJQ19SRUFEJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBTM0Nhbm5lZEFjbCB7XG4gICAgcmV0dXJuIG5ldyBTM0Nhbm5lZEFjbCh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKiBILjI2NSBwYWNrYWdpbmcgdHlwZSBmb3IgSExTL01TIFNtb290aCBvdXRwdXRzLiAqL1xuZXhwb3J0IGNsYXNzIEgyNjVQYWNrYWdpbmdUeXBlIHtcbiAgLyoqIEhFVjEgcGFja2FnaW5nICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSEVWMSA9IG5ldyBIMjY1UGFja2FnaW5nVHlwZSgnSEVWMScpO1xuICAvKiogSFZDMSBwYWNrYWdpbmcgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBIVkMxID0gbmV3IEgyNjVQYWNrYWdpbmdUeXBlKCdIVkMxJyk7XG5cbiAgLyoqIEEgdmFsdWUgbm90IHlldCBtb2RlbGxlZCBieSBBV1MgQ0RLLiAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIMjY1UGFja2FnaW5nVHlwZSB7XG4gICAgcmV0dXJuIG5ldyBIMjY1UGFja2FnaW5nVHlwZSh2YWx1ZSk7XG4gIH1cblxuICAvKiogVGhlIHVuZGVybHlpbmcgc3RyaW5nIHZhbHVlIHBhc3NlZCB0byBDbG91ZEZvcm1hdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG59XG4iXX0=