appium 2.0.0-beta.23 → 2.0.0-beta.26

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 (125) hide show
  1. package/README.md +1 -2
  2. package/build/lib/appium-config.schema.json +278 -0
  3. package/build/lib/appium.js +62 -71
  4. package/build/lib/cli/args.js +31 -53
  5. package/build/lib/cli/driver-command.js +5 -9
  6. package/build/lib/cli/extension-command.js +73 -64
  7. package/build/lib/cli/extension.js +10 -23
  8. package/build/lib/cli/parser.js +10 -20
  9. package/build/lib/cli/plugin-command.js +5 -9
  10. package/build/lib/cli/utils.js +2 -4
  11. package/build/lib/config-file.js +5 -10
  12. package/build/lib/config.js +67 -30
  13. package/build/lib/constants.js +60 -0
  14. package/build/lib/extension/driver-config.js +190 -0
  15. package/build/lib/extension/extension-config.js +297 -0
  16. package/build/lib/extension/index.js +77 -0
  17. package/build/lib/extension/manifest.js +246 -0
  18. package/build/lib/extension/package-changed.js +68 -0
  19. package/build/lib/extension/plugin-config.js +87 -0
  20. package/build/lib/grid-register.js +2 -4
  21. package/build/lib/logger.js +2 -4
  22. package/build/lib/logsink.js +2 -4
  23. package/build/lib/main.js +64 -92
  24. package/build/lib/schema/appium-config-schema.js +2 -4
  25. package/build/lib/schema/arg-spec.js +14 -15
  26. package/build/lib/schema/cli-args.js +8 -16
  27. package/build/lib/schema/cli-transformers.js +2 -4
  28. package/build/lib/schema/index.js +2 -4
  29. package/build/lib/schema/keywords.js +2 -4
  30. package/build/lib/schema/schema.js +136 -41
  31. package/build/lib/utils.js +13 -64
  32. package/lib/appium.js +74 -55
  33. package/lib/cli/args.js +36 -37
  34. package/lib/cli/driver-command.js +10 -2
  35. package/lib/cli/extension-command.js +216 -135
  36. package/lib/cli/extension.js +7 -15
  37. package/lib/cli/parser.js +7 -15
  38. package/lib/cli/plugin-command.js +1 -2
  39. package/lib/config-file.js +12 -15
  40. package/lib/config.js +111 -36
  41. package/lib/constants.js +79 -0
  42. package/lib/extension/driver-config.js +230 -0
  43. package/lib/extension/extension-config.js +459 -0
  44. package/lib/extension/index.js +103 -0
  45. package/lib/extension/manifest.js +590 -0
  46. package/lib/extension/package-changed.js +64 -0
  47. package/lib/extension/plugin-config.js +111 -0
  48. package/lib/grid-register.js +4 -4
  49. package/lib/main.js +110 -96
  50. package/lib/schema/arg-spec.js +11 -5
  51. package/lib/schema/cli-args.js +7 -30
  52. package/lib/schema/keywords.js +1 -1
  53. package/lib/schema/schema.js +206 -48
  54. package/lib/utils.js +27 -58
  55. package/package.json +29 -21
  56. package/{postinstall.js → scripts/postinstall.js} +1 -1
  57. package/types/types.d.ts +72 -28
  58. package/bin/ios-webkit-debug-proxy-launcher.js +0 -71
  59. package/build/check-npm-pack-files.js +0 -23
  60. package/build/commands-yml/parse.js +0 -319
  61. package/build/commands-yml/validator.js +0 -130
  62. package/build/index.js +0 -19
  63. package/build/lib/cli/npm.js +0 -220
  64. package/build/lib/driver-config.js +0 -100
  65. package/build/lib/drivers.js +0 -100
  66. package/build/lib/ext-config-io.js +0 -165
  67. package/build/lib/extension-config.js +0 -320
  68. package/build/lib/plugin-config.js +0 -69
  69. package/build/lib/plugins.js +0 -16
  70. package/build/postinstall.js +0 -90
  71. package/build/test/cli/cli-e2e-specs.js +0 -221
  72. package/build/test/cli/cli-helpers.js +0 -86
  73. package/build/test/cli/cli-specs.js +0 -71
  74. package/build/test/cli/fixtures/test-driver/package.json +0 -27
  75. package/build/test/cli/schema-args-specs.js +0 -48
  76. package/build/test/cli/schema-e2e-specs.js +0 -47
  77. package/build/test/config-e2e-specs.js +0 -112
  78. package/build/test/config-file-e2e-specs.js +0 -209
  79. package/build/test/config-file-specs.js +0 -281
  80. package/build/test/config-specs.js +0 -159
  81. package/build/test/driver-e2e-specs.js +0 -435
  82. package/build/test/driver-specs.js +0 -321
  83. package/build/test/ext-config-io-specs.js +0 -181
  84. package/build/test/extension-config-specs.js +0 -365
  85. package/build/test/fixtures/allow-feat.txt +0 -5
  86. package/build/test/fixtures/caps.json +0 -3
  87. package/build/test/fixtures/config/allow-insecure.txt +0 -3
  88. package/build/test/fixtures/config/appium.config.bad-nodeconfig.json +0 -5
  89. package/build/test/fixtures/config/appium.config.bad.json +0 -32
  90. package/build/test/fixtures/config/appium.config.ext-good.json +0 -9
  91. package/build/test/fixtures/config/appium.config.ext-unknown-props.json +0 -10
  92. package/build/test/fixtures/config/appium.config.good.js +0 -40
  93. package/build/test/fixtures/config/appium.config.good.json +0 -33
  94. package/build/test/fixtures/config/appium.config.good.yaml +0 -30
  95. package/build/test/fixtures/config/appium.config.invalid.json +0 -31
  96. package/build/test/fixtures/config/appium.config.security-array.json +0 -5
  97. package/build/test/fixtures/config/appium.config.security-delimited.json +0 -5
  98. package/build/test/fixtures/config/appium.config.security-path.json +0 -5
  99. package/build/test/fixtures/config/driver-fake.config.json +0 -8
  100. package/build/test/fixtures/config/nodeconfig.json +0 -3
  101. package/build/test/fixtures/config/plugin-fake.config.json +0 -0
  102. package/build/test/fixtures/default-args.js +0 -35
  103. package/build/test/fixtures/deny-feat.txt +0 -5
  104. package/build/test/fixtures/driver.schema.js +0 -20
  105. package/build/test/fixtures/extensions.yaml +0 -27
  106. package/build/test/fixtures/flattened-schema.js +0 -504
  107. package/build/test/fixtures/plugin.schema.js +0 -20
  108. package/build/test/fixtures/schema-with-extensions.js +0 -28
  109. package/build/test/grid-register-specs.js +0 -74
  110. package/build/test/helpers.js +0 -75
  111. package/build/test/logger-specs.js +0 -76
  112. package/build/test/npm-specs.js +0 -20
  113. package/build/test/parser-specs.js +0 -314
  114. package/build/test/plugin-e2e-specs.js +0 -316
  115. package/build/test/schema/arg-spec-specs.js +0 -70
  116. package/build/test/schema/cli-args-specs.js +0 -431
  117. package/build/test/schema/schema-specs.js +0 -389
  118. package/build/test/utils-specs.js +0 -266
  119. package/lib/cli/npm.js +0 -251
  120. package/lib/driver-config.js +0 -101
  121. package/lib/drivers.js +0 -84
  122. package/lib/ext-config-io.js +0 -287
  123. package/lib/extension-config.js +0 -366
  124. package/lib/plugin-config.js +0 -63
  125. package/lib/plugins.js +0 -11
@@ -1,504 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- require("source-map-support/register");
9
-
10
- var _default = [{
11
- argSpec: {
12
- arg: 'address',
13
- defaultValue: '0.0.0.0',
14
- dest: 'address',
15
- extName: undefined,
16
- extType: undefined,
17
- name: 'address',
18
- ref: 'appium.json#/properties/server/properties/address'
19
- },
20
- schema: {
21
- $comment: 'I think hostname covers both DNS and IPv4...could be wrong',
22
- appiumCliAliases: ['a'],
23
- default: '0.0.0.0',
24
- description: 'IP address to listen on',
25
- format: 'hostname',
26
- title: 'address config',
27
- type: 'string'
28
- }
29
- }, {
30
- argSpec: {
31
- arg: 'allow-cors',
32
- defaultValue: false,
33
- dest: 'allowCors',
34
- extName: undefined,
35
- extType: undefined,
36
- name: 'allow-cors',
37
- ref: 'appium.json#/properties/server/properties/allow-cors'
38
- },
39
- schema: {
40
- default: false,
41
- description: 'Whether the Appium server should allow web browser connections from any host',
42
- title: 'allow-cors config',
43
- type: 'boolean'
44
- }
45
- }, {
46
- argSpec: {
47
- arg: 'allow-insecure',
48
- defaultValue: [],
49
- dest: 'allowInsecure',
50
- extName: undefined,
51
- extType: undefined,
52
- name: 'allow-insecure',
53
- ref: 'appium.json#/properties/server/properties/allow-insecure'
54
- },
55
- schema: {
56
- appiumCliTransformer: 'csv',
57
- default: [],
58
- description: 'Set which insecure features are allowed to run in this server\'s sessions. Features are defined on a driver level; see documentation for more details. Note that features defined via "deny-insecure" will be disabled, even if also listed here. If string, a path to a text file containing policy or a comma-delimited list.',
59
- items: {
60
- type: 'string'
61
- },
62
- title: 'allow-insecure config',
63
- type: 'array',
64
- uniqueItems: true
65
- }
66
- }, {
67
- argSpec: {
68
- arg: 'base-path',
69
- defaultValue: '',
70
- dest: 'basePath',
71
- extName: undefined,
72
- extType: undefined,
73
- name: 'base-path',
74
- ref: 'appium.json#/properties/server/properties/base-path'
75
- },
76
- schema: {
77
- appiumCliAliases: ['pa'],
78
- default: '',
79
- description: 'Base path to use as the prefix for all webdriver routes running on the server',
80
- title: 'base-path config',
81
- type: 'string'
82
- }
83
- }, {
84
- argSpec: {
85
- arg: 'callback-address',
86
- defaultValue: undefined,
87
- dest: 'callbackAddress',
88
- extName: undefined,
89
- extType: undefined,
90
- name: 'callback-address',
91
- ref: 'appium.json#/properties/server/properties/callback-address'
92
- },
93
- schema: {
94
- appiumCliAliases: ['ca'],
95
- description: 'Callback IP address (default: same as "address")',
96
- title: 'callback-address config',
97
- type: 'string'
98
- }
99
- }, {
100
- argSpec: {
101
- arg: 'callback-port',
102
- defaultValue: 4723,
103
- dest: 'callbackPort',
104
- extName: undefined,
105
- extType: undefined,
106
- name: 'callback-port',
107
- ref: 'appium.json#/properties/server/properties/callback-port'
108
- },
109
- schema: {
110
- appiumCliAliases: ['cp'],
111
- default: 4723,
112
- description: 'Callback port (default: same as "port")',
113
- maximum: 65535,
114
- minimum: 1,
115
- title: 'callback-port config',
116
- type: 'integer'
117
- }
118
- }, {
119
- argSpec: {
120
- arg: 'debug-log-spacing',
121
- defaultValue: false,
122
- dest: 'debugLogSpacing',
123
- extName: undefined,
124
- extType: undefined,
125
- name: 'debug-log-spacing',
126
- ref: 'appium.json#/properties/server/properties/debug-log-spacing'
127
- },
128
- schema: {
129
- default: false,
130
- description: 'Add exaggerated spacing in logs to help with visual inspection',
131
- title: 'debug-log-spacing config',
132
- type: 'boolean'
133
- }
134
- }, {
135
- argSpec: {
136
- arg: 'default-capabilities',
137
- defaultValue: undefined,
138
- dest: 'defaultCapabilities',
139
- extName: undefined,
140
- extType: undefined,
141
- name: 'default-capabilities',
142
- ref: 'appium.json#/properties/server/properties/default-capabilities'
143
- },
144
- schema: {
145
- $comment: 'TODO',
146
- appiumCliAliases: ['dc'],
147
- description: 'Set the default desired capabilities, which will be set on each session unless overridden by received capabilities. If a string, a path to a JSON file containing the capabilities, or raw JSON.',
148
- title: 'default-capabilities config',
149
- type: 'object'
150
- }
151
- }, {
152
- argSpec: {
153
- arg: 'deny-insecure',
154
- defaultValue: [],
155
- dest: 'denyInsecure',
156
- extName: undefined,
157
- extType: undefined,
158
- name: 'deny-insecure',
159
- ref: 'appium.json#/properties/server/properties/deny-insecure'
160
- },
161
- schema: {
162
- $comment: 'Allowed values are defined by drivers',
163
- appiumCliTransformer: 'csv',
164
- default: [],
165
- description: 'Set which insecure features are not allowed to run in this server\'s sessions. Features are defined on a driver level; see documentation for more details. Features listed here will not be enabled even if also listed in "allow-insecure", and even if "relaxed-security" is enabled. If string, a path to a text file containing policy or a comma-delimited list.',
166
- items: {
167
- type: 'string'
168
- },
169
- title: 'deny-insecure config',
170
- type: 'array',
171
- uniqueItems: true
172
- }
173
- }, {
174
- argSpec: {
175
- arg: 'keep-alive-timeout',
176
- defaultValue: 600,
177
- dest: 'keepAliveTimeout',
178
- extName: undefined,
179
- extType: undefined,
180
- name: 'keep-alive-timeout',
181
- ref: 'appium.json#/properties/server/properties/keep-alive-timeout'
182
- },
183
- schema: {
184
- appiumCliAliases: ['ka'],
185
- default: 600,
186
- description: 'Number of seconds the Appium server should apply as both the keep-alive timeout and the connection timeout for all requests. A value of 0 disables the timeout.',
187
- minimum: 0,
188
- title: 'keep-alive-timeout config',
189
- type: 'integer'
190
- }
191
- }, {
192
- argSpec: {
193
- arg: 'local-timezone',
194
- defaultValue: false,
195
- dest: 'localTimezone',
196
- extName: undefined,
197
- extType: undefined,
198
- name: 'local-timezone',
199
- ref: 'appium.json#/properties/server/properties/local-timezone'
200
- },
201
- schema: {
202
- default: false,
203
- description: 'Use local timezone for timestamps',
204
- title: 'local-timezone config',
205
- type: 'boolean'
206
- }
207
- }, {
208
- argSpec: {
209
- arg: 'log',
210
- defaultValue: undefined,
211
- dest: 'logFile',
212
- extName: undefined,
213
- extType: undefined,
214
- name: 'log',
215
- ref: 'appium.json#/properties/server/properties/log'
216
- },
217
- schema: {
218
- appiumCliAliases: ['g'],
219
- appiumCliDest: 'logFile',
220
- description: 'Also send log output to this file',
221
- title: 'log config',
222
- type: 'string'
223
- }
224
- }, {
225
- argSpec: {
226
- arg: 'log-filters',
227
- defaultValue: undefined,
228
- dest: 'logFilters',
229
- extName: undefined,
230
- extType: undefined,
231
- name: 'log-filters',
232
- ref: 'appium.json#/properties/server/properties/log-filters'
233
- },
234
- schema: {
235
- $comment: 'TODO',
236
- description: 'One or more log filtering rules',
237
- items: {
238
- type: 'string'
239
- },
240
- title: 'log-filters config',
241
- type: 'array'
242
- }
243
- }, {
244
- argSpec: {
245
- arg: 'log-level',
246
- defaultValue: 'debug',
247
- dest: 'loglevel',
248
- extName: undefined,
249
- extType: undefined,
250
- name: 'log-level',
251
- ref: 'appium.json#/properties/server/properties/log-level'
252
- },
253
- schema: {
254
- appiumCliDest: 'loglevel',
255
- default: 'debug',
256
- description: 'Log level (console[:file])',
257
- enum: ['info', 'info:debug', 'info:info', 'info:warn', 'info:error', 'warn', 'warn:debug', 'warn:info', 'warn:warn', 'warn:error', 'error', 'error:debug', 'error:info', 'error:warn', 'error:error', 'debug', 'debug:debug', 'debug:info', 'debug:warn', 'debug:error'],
258
- title: 'log-level config',
259
- type: 'string'
260
- }
261
- }, {
262
- argSpec: {
263
- arg: 'log-no-colors',
264
- defaultValue: false,
265
- dest: 'logNoColors',
266
- extName: undefined,
267
- extType: undefined,
268
- name: 'log-no-colors',
269
- ref: 'appium.json#/properties/server/properties/log-no-colors'
270
- },
271
- schema: {
272
- default: false,
273
- description: 'Do not use color in console output',
274
- title: 'log-no-colors config',
275
- type: 'boolean'
276
- }
277
- }, {
278
- argSpec: {
279
- arg: 'log-timestamp',
280
- defaultValue: false,
281
- dest: 'logTimestamp',
282
- extName: undefined,
283
- extType: undefined,
284
- name: 'log-timestamp',
285
- ref: 'appium.json#/properties/server/properties/log-timestamp'
286
- },
287
- schema: {
288
- default: false,
289
- description: 'Show timestamps in console output',
290
- title: 'log-timestamp config',
291
- type: 'boolean'
292
- }
293
- }, {
294
- argSpec: {
295
- arg: 'long-stacktrace',
296
- defaultValue: false,
297
- dest: 'longStacktrace',
298
- extName: undefined,
299
- extType: undefined,
300
- name: 'long-stacktrace',
301
- ref: 'appium.json#/properties/server/properties/long-stacktrace'
302
- },
303
- schema: {
304
- default: false,
305
- description: 'Add long stack traces to log entries. Recommended for debugging only.',
306
- title: 'long-stacktrace config',
307
- type: 'boolean'
308
- }
309
- }, {
310
- argSpec: {
311
- arg: 'no-perms-check',
312
- defaultValue: false,
313
- dest: 'noPermsCheck',
314
- extName: undefined,
315
- extType: undefined,
316
- name: 'no-perms-check',
317
- ref: 'appium.json#/properties/server/properties/no-perms-check'
318
- },
319
- schema: {
320
- default: false,
321
- description: 'Do not check that needed files are readable and/or writable',
322
- title: 'no-perms-check config',
323
- type: 'boolean'
324
- }
325
- }, {
326
- argSpec: {
327
- arg: 'nodeconfig',
328
- defaultValue: undefined,
329
- dest: 'nodeconfig',
330
- extName: undefined,
331
- extType: undefined,
332
- name: 'nodeconfig',
333
- ref: 'appium.json#/properties/server/properties/nodeconfig'
334
- },
335
- schema: {
336
- $comment: 'Selenium Grid 3 is unmaintained and Selenium Grid 4 no longer supports this file.',
337
- description: 'Path to configuration JSON file to register Appium as a node with Selenium Grid 3; otherwise the configuration itself',
338
- title: 'nodeconfig config',
339
- type: 'object'
340
- }
341
- }, {
342
- argSpec: {
343
- arg: 'port',
344
- defaultValue: 4723,
345
- dest: 'port',
346
- extName: undefined,
347
- extType: undefined,
348
- name: 'port',
349
- ref: 'appium.json#/properties/server/properties/port'
350
- },
351
- schema: {
352
- appiumCliAliases: ['p'],
353
- default: 4723,
354
- description: 'Port to listen on',
355
- maximum: 65535,
356
- minimum: 1,
357
- title: 'port config',
358
- type: 'integer'
359
- }
360
- }, {
361
- argSpec: {
362
- arg: 'relaxed-security',
363
- defaultValue: false,
364
- dest: 'relaxedSecurityEnabled',
365
- extName: undefined,
366
- extType: undefined,
367
- name: 'relaxed-security',
368
- ref: 'appium.json#/properties/server/properties/relaxed-security'
369
- },
370
- schema: {
371
- default: false,
372
- description: 'Disable additional security checks, so it is possible to use some advanced features, provided by drivers supporting this option. Only enable it if all the clients are in the trusted network and it\'s not the case if a client could potentially break out of the session sandbox. Specific features can be overridden by using "deny-insecure"',
373
- title: 'relaxed-security config',
374
- type: 'boolean',
375
- appiumCliDest: 'relaxedSecurityEnabled'
376
- }
377
- }, {
378
- argSpec: {
379
- arg: 'session-override',
380
- defaultValue: false,
381
- dest: 'sessionOverride',
382
- extName: undefined,
383
- extType: undefined,
384
- name: 'session-override',
385
- ref: 'appium.json#/properties/server/properties/session-override'
386
- },
387
- schema: {
388
- default: false,
389
- description: 'Enables session override (clobbering)',
390
- title: 'session-override config',
391
- type: 'boolean'
392
- }
393
- }, {
394
- argSpec: {
395
- arg: 'strict-caps',
396
- defaultValue: false,
397
- dest: 'strictCaps',
398
- extName: undefined,
399
- extType: undefined,
400
- name: 'strict-caps',
401
- ref: 'appium.json#/properties/server/properties/strict-caps'
402
- },
403
- schema: {
404
- default: false,
405
- description: 'Cause sessions to fail if desired caps are sent in that Appium does not recognize as valid for the selected device',
406
- title: 'strict-caps config',
407
- type: 'boolean'
408
- }
409
- }, {
410
- argSpec: {
411
- arg: 'tmp',
412
- defaultValue: undefined,
413
- dest: 'tmpDir',
414
- extName: undefined,
415
- extType: undefined,
416
- name: 'tmp',
417
- ref: 'appium.json#/properties/server/properties/tmp'
418
- },
419
- schema: {
420
- appiumCliDest: 'tmpDir',
421
- description: 'Absolute path to directory Appium can use to manage temp files. Defaults to C:\\Windows\\Temp on Windows and /tmp otherwise.',
422
- title: 'tmp config',
423
- type: 'string'
424
- }
425
- }, {
426
- argSpec: {
427
- arg: 'trace-dir',
428
- defaultValue: undefined,
429
- dest: 'traceDir',
430
- extName: undefined,
431
- extType: undefined,
432
- name: 'trace-dir',
433
- ref: 'appium.json#/properties/server/properties/trace-dir'
434
- },
435
- schema: {
436
- description: 'Absolute path to directory Appium can use to save iOS instrument traces; defaults to <tmp>/appium-instruments',
437
- title: 'trace-dir config',
438
- type: 'string'
439
- }
440
- }, {
441
- argSpec: {
442
- arg: 'use-drivers',
443
- defaultValue: [],
444
- dest: 'useDrivers',
445
- extName: undefined,
446
- extType: undefined,
447
- name: 'use-drivers',
448
- ref: 'appium.json#/properties/server/properties/use-drivers'
449
- },
450
- schema: {
451
- appiumCliDescription: 'A list of drivers to activate. Can be a comma-delimited string or path to CSV file. By default, all installed drivers will be activated.',
452
- default: [],
453
- description: 'A list of drivers to activate. By default, all installed drivers will be activated.',
454
- items: {
455
- type: 'string'
456
- },
457
- title: 'use-drivers config',
458
- type: 'array',
459
- uniqueItems: true
460
- }
461
- }, {
462
- argSpec: {
463
- arg: 'use-plugins',
464
- defaultValue: [],
465
- dest: 'usePlugins',
466
- extName: undefined,
467
- extType: undefined,
468
- name: 'use-plugins',
469
- ref: 'appium.json#/properties/server/properties/use-plugins'
470
- },
471
- schema: {
472
- appiumCliDescription: 'A list of plugins to activate. Can be a comma-delimited string, path to CSV file, or the string "all" to use all installed plugins.',
473
- default: [],
474
- description: 'A list of plugins to activate. To activate all plugins, the value should be an array with a single item "all".',
475
- items: {
476
- type: 'string'
477
- },
478
- title: 'use-plugins config',
479
- type: 'array',
480
- uniqueItems: true
481
- }
482
- }, {
483
- argSpec: {
484
- arg: 'webhook',
485
- defaultValue: undefined,
486
- dest: 'webhook',
487
- extName: undefined,
488
- extType: undefined,
489
- name: 'webhook',
490
- ref: 'appium.json#/properties/server/properties/webhook'
491
- },
492
- schema: {
493
- $comment: 'This should probably use a uri-template format to restrict the protocol to http/https',
494
- appiumCliAliases: ['G'],
495
- description: 'Also send log output to this http listener',
496
- format: 'uri',
497
- title: 'webhook config',
498
- type: 'string'
499
- }
500
- }];
501
- exports.default = _default;require('source-map-support').install();
502
-
503
-
504
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZml4dHVyZXMvZmxhdHRlbmVkLXNjaGVtYS5qcyJdLCJuYW1lcyI6WyJhcmdTcGVjIiwiYXJnIiwiZGVmYXVsdFZhbHVlIiwiZGVzdCIsImV4dE5hbWUiLCJ1bmRlZmluZWQiLCJleHRUeXBlIiwibmFtZSIsInJlZiIsInNjaGVtYSIsIiRjb21tZW50IiwiYXBwaXVtQ2xpQWxpYXNlcyIsImRlZmF1bHQiLCJkZXNjcmlwdGlvbiIsImZvcm1hdCIsInRpdGxlIiwidHlwZSIsImFwcGl1bUNsaVRyYW5zZm9ybWVyIiwiaXRlbXMiLCJ1bmlxdWVJdGVtcyIsIm1heGltdW0iLCJtaW5pbXVtIiwiYXBwaXVtQ2xpRGVzdCIsImVudW0iLCJhcHBpdW1DbGlEZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2VBQWUsQ0FDYjtBQUNFQSxFQUFBQSxPQUFPLEVBQUU7QUFDUEMsSUFBQUEsR0FBRyxFQUFFLFNBREU7QUFFUEMsSUFBQUEsWUFBWSxFQUFFLFNBRlA7QUFHUEMsSUFBQUEsSUFBSSxFQUFFLFNBSEM7QUFJUEMsSUFBQUEsT0FBTyxFQUFFQyxTQUpGO0FBS1BDLElBQUFBLE9BQU8sRUFBRUQsU0FMRjtBQU1QRSxJQUFBQSxJQUFJLEVBQUUsU0FOQztBQU9QQyxJQUFBQSxHQUFHLEVBQUU7QUFQRSxHQURYO0FBVUVDLEVBQUFBLE1BQU0sRUFBRTtBQUNOQyxJQUFBQSxRQUFRLEVBQUUsNERBREo7QUFFTkMsSUFBQUEsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFELENBRlo7QUFHTkMsSUFBQUEsT0FBTyxFQUFFLFNBSEg7QUFJTkMsSUFBQUEsV0FBVyxFQUFFLHlCQUpQO0FBS05DLElBQUFBLE1BQU0sRUFBRSxVQUxGO0FBTU5DLElBQUFBLEtBQUssRUFBRSxnQkFORDtBQU9OQyxJQUFBQSxJQUFJLEVBQUU7QUFQQTtBQVZWLENBRGEsRUFxQmI7QUFDRWhCLEVBQUFBLE9BQU8sRUFBRTtBQUNQQyxJQUFBQSxHQUFHLEVBQUUsWUFERTtBQUVQQyxJ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QUdQRixJQUFBQSxJQUFJLEVBQUUsU0FIQztBQUlQQyxJQUFBQSxPQUFPLEVBQUVDLFNBSkY7QUFLUEMsSUFBQUEsT0FBTyxFQUFFRCxTQUxGO0FBTVBFLElBQUFBLElBQUksRUFBRSxTQU5DO0FBT1BDLElBQUFBLEdBQUcsRUFBRTtBQVBFLEdBRFg7QUFVRUMsRUFBQUEsTUFBTSxFQUFFO0FBQ05DLElBQUFBLFFBQVEsRUFDTix1RkFGSTtBQUdOQyxJQUFBQSxnQkFBZ0IsRUFBRSxDQUFDLEdBQUQsQ0FIWjtBQUlORSxJQUFBQSxXQUFXLEVBQUUsNENBSlA7QUFLTkMsSUFBQUEsTUFBTSxFQUFFLEtBTEY7QUFNTkMsSUFBQUEsS0FBSyxFQUFFLGdCQU5EO0FBT05DLElBQUFBLElBQUksRUFBRTtBQVBBO0FBVlYsQ0FsaEJhLEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBbXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdhZGRyZXNzJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogJzAuMC4wLjAnLFxuICAgICAgZGVzdDogJ2FkZHJlc3MnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2FkZHJlc3MnLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvYWRkcmVzcycsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgICRjb21tZW50OiAnSSB0aGluayBob3N0bmFtZSBjb3ZlcnMgYm90aCBETlMgYW5kIElQdjQuLi5jb3VsZCBiZSB3cm9uZycsXG4gICAgICBhcHBpdW1DbGlBbGlhc2VzOiBbJ2EnXSxcbiAgICAgIGRlZmF1bHQ6ICcwLjAuMC4wJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnSVAgYWRkcmVzcyB0byBsaXN0ZW4gb24nLFxuICAgICAgZm9ybWF0OiAnaG9zdG5hbWUnLFxuICAgICAgdGl0bGU6ICdhZGRyZXNzIGNvbmZpZycsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnYWxsb3ctY29ycycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ2FsbG93Q29ycycsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnYWxsb3ctY29ycycsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9hbGxvdy1jb3JzJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1doZXRoZXIgdGhlIEFwcGl1bSBzZXJ2ZXIgc2hvdWxkIGFsbG93IHdlYiBicm93c2VyIGNvbm5lY3Rpb25zIGZyb20gYW55IGhvc3QnLFxuICAgICAgdGl0bGU6ICdhbGxvdy1jb3JzIGNvbmZpZycsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ2FsbG93LWluc2VjdXJlJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogW10sXG4gICAgICBkZXN0OiAnYWxsb3dJbnNlY3VyZScsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnYWxsb3ctaW5zZWN1cmUnLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvYWxsb3ctaW5zZWN1cmUnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBhcHBpdW1DbGlUcmFuc2Zvcm1lcjogJ2NzdicsXG4gICAgICBkZWZhdWx0OiBbXSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnU2V0IHdoaWNoIGluc2VjdXJlIGZlYXR1cmVzIGFyZSBhbGxvd2VkIHRvIHJ1biBpbiB0aGlzIHNlcnZlclxcJ3Mgc2Vzc2lvbnMuIEZlYXR1cmVzIGFyZSBkZWZpbmVkIG9uIGEgZHJpdmVyIGxldmVsOyBzZWUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLiBOb3RlIHRoYXQgZmVhdHVyZXMgZGVmaW5lZCB2aWEgXCJkZW55LWluc2VjdXJlXCIgd2lsbCBiZSBkaXNhYmxlZCwgZXZlbiBpZiBhbHNvIGxpc3RlZCBoZXJlLiBJZiBzdHJpbmcsIGEgcGF0aCB0byBhIHRleHQgZmlsZSBjb250YWluaW5nIHBvbGljeSBvciBhIGNvbW1hLWRlbGltaXRlZCBsaXN0LicsXG4gICAgICBpdGVtczoge3R5cGU6ICdzdHJpbmcnfSxcbiAgICAgIHRpdGxlOiAnYWxsb3ctaW5zZWN1cmUgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnYmFzZS1wYXRoJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogJycsXG4gICAgICBkZXN0OiAnYmFzZVBhdGgnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2Jhc2UtcGF0aCcsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9iYXNlLXBhdGgnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBhcHBpdW1DbGlBbGlhc2VzOiBbJ3BhJ10sXG4gICAgICBkZWZhdWx0OiAnJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnQmFzZSBwYXRoIHRvIHVzZSBhcyB0aGUgcHJlZml4IGZvciBhbGwgd2ViZHJpdmVyIHJvdXRlcyBydW5uaW5nIG9uIHRoZSBzZXJ2ZXInLFxuICAgICAgdGl0bGU6ICdiYXNlLXBhdGggY29uZmlnJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdjYWxsYmFjay1hZGRyZXNzJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgZGVzdDogJ2NhbGxiYWNrQWRkcmVzcycsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnY2FsbGJhY2stYWRkcmVzcycsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9jYWxsYmFjay1hZGRyZXNzJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgYXBwaXVtQ2xpQWxpYXNlczogWydjYSddLFxuICAgICAgZGVzY3JpcHRpb246ICdDYWxsYmFjayBJUCBhZGRyZXNzIChkZWZhdWx0OiBzYW1lIGFzIFwiYWRkcmVzc1wiKScsXG4gICAgICB0aXRsZTogJ2NhbGxiYWNrLWFkZHJlc3MgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdjYWxsYmFjay1wb3J0JyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogNDcyMyxcbiAgICAgIGRlc3Q6ICdjYWxsYmFja1BvcnQnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2NhbGxiYWNrLXBvcnQnLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvY2FsbGJhY2stcG9ydCcsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsnY3AnXSxcbiAgICAgIGRlZmF1bHQ6IDQ3MjMsXG4gICAgICBkZXNjcmlwdGlvbjogJ0NhbGxiYWNrIHBvcnQgKGRlZmF1bHQ6IHNhbWUgYXMgXCJwb3J0XCIpJyxcbiAgICAgIG1heGltdW06IDY1NTM1LFxuICAgICAgbWluaW11bTogMSxcbiAgICAgIHRpdGxlOiAnY2FsbGJhY2stcG9ydCBjb25maWcnLFxuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdkZWJ1Zy1sb2ctc3BhY2luZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ2RlYnVnTG9nU3BhY2luZycsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnZGVidWctbG9nLXNwYWNpbmcnLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvZGVidWctbG9nLXNwYWNpbmcnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnQWRkIGV4YWdnZXJhdGVkIHNwYWNpbmcgaW4gbG9ncyB0byBoZWxwIHdpdGggdmlzdWFsIGluc3BlY3Rpb24nLFxuICAgICAgdGl0bGU6ICdkZWJ1Zy1sb2ctc3BhY2luZyBjb25maWcnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdkZWZhdWx0LWNhcGFiaWxpdGllcycsXG4gICAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlc3Q6ICdkZWZhdWx0Q2FwYWJpbGl0aWVzJyxcbiAgICAgIGV4dE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIGV4dFR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6ICdkZWZhdWx0LWNhcGFiaWxpdGllcycsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9kZWZhdWx0LWNhcGFiaWxpdGllcycsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgICRjb21tZW50OiAnVE9ETycsXG4gICAgICBhcHBpdW1DbGlBbGlhc2VzOiBbJ2RjJ10sXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1NldCB0aGUgZGVmYXVsdCBkZXNpcmVkIGNhcGFiaWxpdGllcywgd2hpY2ggd2lsbCBiZSBzZXQgb24gZWFjaCBzZXNzaW9uIHVubGVzcyBvdmVycmlkZGVuIGJ5IHJlY2VpdmVkIGNhcGFiaWxpdGllcy4gSWYgYSBzdHJpbmcsIGEgcGF0aCB0byBhIEpTT04gZmlsZSBjb250YWluaW5nIHRoZSBjYXBhYmlsaXRpZXMsIG9yIHJhdyBKU09OLicsXG4gICAgICB0aXRsZTogJ2RlZmF1bHQtY2FwYWJpbGl0aWVzIGNvbmZpZycsXG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnZGVueS1pbnNlY3VyZScsXG4gICAgICBkZWZhdWx0VmFsdWU6IFtdLFxuICAgICAgZGVzdDogJ2RlbnlJbnNlY3VyZScsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnZGVueS1pbnNlY3VyZScsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9kZW55LWluc2VjdXJlJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgJGNvbW1lbnQ6ICdBbGxvd2VkIHZhbHVlcyBhcmUgZGVmaW5lZCBieSBkcml2ZXJzJyxcbiAgICAgIGFwcGl1bUNsaVRyYW5zZm9ybWVyOiAnY3N2JyxcbiAgICAgIGRlZmF1bHQ6IFtdLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdTZXQgd2hpY2ggaW5zZWN1cmUgZmVhdHVyZXMgYXJlIG5vdCBhbGxvd2VkIHRvIHJ1biBpbiB0aGlzIHNlcnZlclxcJ3Mgc2Vzc2lvbnMuIEZlYXR1cmVzIGFyZSBkZWZpbmVkIG9uIGEgZHJpdmVyIGxldmVsOyBzZWUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLiBGZWF0dXJlcyBsaXN0ZWQgaGVyZSB3aWxsIG5vdCBiZSBlbmFibGVkIGV2ZW4gaWYgYWxzbyBsaXN0ZWQgaW4gXCJhbGxvdy1pbnNlY3VyZVwiLCBhbmQgZXZlbiBpZiBcInJlbGF4ZWQtc2VjdXJpdHlcIiBpcyBlbmFibGVkLiBJZiBzdHJpbmcsIGEgcGF0aCB0byBhIHRleHQgZmlsZSBjb250YWluaW5nIHBvbGljeSBvciBhIGNvbW1hLWRlbGltaXRlZCBsaXN0LicsXG4gICAgICBpdGVtczoge3R5cGU6ICdzdHJpbmcnfSxcbiAgICAgIHRpdGxlOiAnZGVueS1pbnNlY3VyZSBjb25maWcnLFxuICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdrZWVwLWFsaXZlLXRpbWVvdXQnLFxuICAgICAgZGVmYXVsdFZhbHVlOiA2MDAsXG4gICAgICBkZXN0OiAna2VlcEFsaXZlVGltZW91dCcsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAna2VlcC1hbGl2ZS10aW1lb3V0JyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL2tlZXAtYWxpdmUtdGltZW91dCcsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGFwcGl1bUNsaUFsaWFzZXM6IFsna2EnXSxcbiAgICAgIGRlZmF1bHQ6IDYwMCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnTnVtYmVyIG9mIHNlY29uZHMgdGhlIEFwcGl1bSBzZXJ2ZXIgc2hvdWxkIGFwcGx5IGFzIGJvdGggdGhlIGtlZXAtYWxpdmUgdGltZW91dCBhbmQgdGhlIGNvbm5lY3Rpb24gdGltZW91dCBmb3IgYWxsIHJlcXVlc3RzLiBBIHZhbHVlIG9mIDAgZGlzYWJsZXMgdGhlIHRpbWVvdXQuJyxcbiAgICAgIG1pbmltdW06IDAsXG4gICAgICB0aXRsZTogJ2tlZXAtYWxpdmUtdGltZW91dCBjb25maWcnLFxuICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdsb2NhbC10aW1lem9uZScsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ2xvY2FsVGltZXpvbmUnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2xvY2FsLXRpbWV6b25lJyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL2xvY2FsLXRpbWV6b25lJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBkZXNjcmlwdGlvbjogJ1VzZSBsb2NhbCB0aW1lem9uZSBmb3IgdGltZXN0YW1wcycsXG4gICAgICB0aXRsZTogJ2xvY2FsLXRpbWV6b25lIGNvbmZpZycsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ2xvZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlc3Q6ICdsb2dGaWxlJyxcbiAgICAgIGV4dE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIGV4dFR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6ICdsb2cnLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvbG9nJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgYXBwaXVtQ2xpQWxpYXNlczogWydnJ10sXG4gICAgICBhcHBpdW1DbGlEZXN0OiAnbG9nRmlsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Fsc28gc2VuZCBsb2cgb3V0cHV0IHRvIHRoaXMgZmlsZScsXG4gICAgICB0aXRsZTogJ2xvZyBjb25maWcnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ2xvZy1maWx0ZXJzJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgZGVzdDogJ2xvZ0ZpbHRlcnMnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2xvZy1maWx0ZXJzJyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL2xvZy1maWx0ZXJzJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgJGNvbW1lbnQ6ICdUT0RPJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnT25lIG9yIG1vcmUgbG9nIGZpbHRlcmluZyBydWxlcycsXG4gICAgICBpdGVtczoge3R5cGU6ICdzdHJpbmcnfSxcbiAgICAgIHRpdGxlOiAnbG9nLWZpbHRlcnMgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ2xvZy1sZXZlbCcsXG4gICAgICBkZWZhdWx0VmFsdWU6ICdkZWJ1ZycsXG4gICAgICBkZXN0OiAnbG9nbGV2ZWwnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2xvZy1sZXZlbCcsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9sb2ctbGV2ZWwnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBhcHBpdW1DbGlEZXN0OiAnbG9nbGV2ZWwnLFxuICAgICAgZGVmYXVsdDogJ2RlYnVnJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTG9nIGxldmVsIChjb25zb2xlWzpmaWxlXSknLFxuICAgICAgZW51bTogW1xuICAgICAgICAnaW5mbycsXG4gICAgICAgICdpbmZvOmRlYnVnJyxcbiAgICAgICAgJ2luZm86aW5mbycsXG4gICAgICAgICdpbmZvOndhcm4nLFxuICAgICAgICAnaW5mbzplcnJvcicsXG4gICAgICAgICd3YXJuJyxcbiAgICAgICAgJ3dhcm46ZGVidWcnLFxuICAgICAgICAnd2FybjppbmZvJyxcbiAgICAgICAgJ3dhcm46d2FybicsXG4gICAgICAgICd3YXJuOmVycm9yJyxcbiAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgJ2Vycm9yOmRlYnVnJyxcbiAgICAgICAgJ2Vycm9yOmluZm8nLFxuICAgICAgICAnZXJyb3I6d2FybicsXG4gICAgICAgICdlcnJvcjplcnJvcicsXG4gICAgICAgICdkZWJ1ZycsXG4gICAgICAgICdkZWJ1ZzpkZWJ1ZycsXG4gICAgICAgICdkZWJ1ZzppbmZvJyxcbiAgICAgICAgJ2RlYnVnOndhcm4nLFxuICAgICAgICAnZGVidWc6ZXJyb3InLFxuICAgICAgXSxcbiAgICAgIHRpdGxlOiAnbG9nLWxldmVsIGNvbmZpZycsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnbG9nLW5vLWNvbG9ycycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ2xvZ05vQ29sb3JzJyxcbiAgICAgIGV4dE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIGV4dFR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6ICdsb2ctbm8tY29sb3JzJyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL2xvZy1uby1jb2xvcnMnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRG8gbm90IHVzZSBjb2xvciBpbiBjb25zb2xlIG91dHB1dCcsXG4gICAgICB0aXRsZTogJ2xvZy1uby1jb2xvcnMgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnbG9nLXRpbWVzdGFtcCcsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ2xvZ1RpbWVzdGFtcCcsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnbG9nLXRpbWVzdGFtcCcsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9sb2ctdGltZXN0YW1wJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBkZXNjcmlwdGlvbjogJ1Nob3cgdGltZXN0YW1wcyBpbiBjb25zb2xlIG91dHB1dCcsXG4gICAgICB0aXRsZTogJ2xvZy10aW1lc3RhbXAgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnbG9uZy1zdGFja3RyYWNlJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBkZXN0OiAnbG9uZ1N0YWNrdHJhY2UnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ2xvbmctc3RhY2t0cmFjZScsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9sb25nLXN0YWNrdHJhY2UnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnQWRkIGxvbmcgc3RhY2sgdHJhY2VzIHRvIGxvZyBlbnRyaWVzLiBSZWNvbW1lbmRlZCBmb3IgZGVidWdnaW5nIG9ubHkuJyxcbiAgICAgIHRpdGxlOiAnbG9uZy1zdGFja3RyYWNlIGNvbmZpZycsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ25vLXBlcm1zLWNoZWNrJyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBkZXN0OiAnbm9QZXJtc0NoZWNrJyxcbiAgICAgIGV4dE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIGV4dFR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6ICduby1wZXJtcy1jaGVjaycsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9uby1wZXJtcy1jaGVjaycsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdEbyBub3QgY2hlY2sgdGhhdCBuZWVkZWQgZmlsZXMgYXJlIHJlYWRhYmxlIGFuZC9vciB3cml0YWJsZScsXG4gICAgICB0aXRsZTogJ25vLXBlcm1zLWNoZWNrIGNvbmZpZycsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ25vZGVjb25maWcnLFxuICAgICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICBkZXN0OiAnbm9kZWNvbmZpZycsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAnbm9kZWNvbmZpZycsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9ub2RlY29uZmlnJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgJGNvbW1lbnQ6XG4gICAgICAgICdTZWxlbml1bSBHcmlkIDMgaXMgdW5tYWludGFpbmVkIGFuZCBTZWxlbml1bSBHcmlkIDQgbm8gbG9uZ2VyIHN1cHBvcnRzIHRoaXMgZmlsZS4nLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdQYXRoIHRvIGNvbmZpZ3VyYXRpb24gSlNPTiBmaWxlIHRvIHJlZ2lzdGVyIEFwcGl1bSBhcyBhIG5vZGUgd2l0aCBTZWxlbml1bSBHcmlkIDM7IG90aGVyd2lzZSB0aGUgY29uZmlndXJhdGlvbiBpdHNlbGYnLFxuICAgICAgdGl0bGU6ICdub2RlY29uZmlnIGNvbmZpZycsXG4gICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAncG9ydCcsXG4gICAgICBkZWZhdWx0VmFsdWU6IDQ3MjMsXG4gICAgICBkZXN0OiAncG9ydCcsXG4gICAgICBleHROYW1lOiB1bmRlZmluZWQsXG4gICAgICBleHRUeXBlOiB1bmRlZmluZWQsXG4gICAgICBuYW1lOiAncG9ydCcsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy9wb3J0JyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgYXBwaXVtQ2xpQWxpYXNlczogWydwJ10sXG4gICAgICBkZWZhdWx0OiA0NzIzLFxuICAgICAgZGVzY3JpcHRpb246ICdQb3J0IHRvIGxpc3RlbiBvbicsXG4gICAgICBtYXhpbXVtOiA2NTUzNSxcbiAgICAgIG1pbmltdW06IDEsXG4gICAgICB0aXRsZTogJ3BvcnQgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAncmVsYXhlZC1zZWN1cml0eScsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ3JlbGF4ZWRTZWN1cml0eUVuYWJsZWQnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ3JlbGF4ZWQtc2VjdXJpdHknLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvcmVsYXhlZC1zZWN1cml0eScsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdEaXNhYmxlIGFkZGl0aW9uYWwgc2VjdXJpdHkgY2hlY2tzLCBzbyBpdCBpcyBwb3NzaWJsZSB0byB1c2Ugc29tZSBhZHZhbmNlZCBmZWF0dXJlcywgcHJvdmlkZWQgYnkgZHJpdmVycyBzdXBwb3J0aW5nIHRoaXMgb3B0aW9uLiBPbmx5IGVuYWJsZSBpdCBpZiBhbGwgdGhlIGNsaWVudHMgYXJlIGluIHRoZSB0cnVzdGVkIG5ldHdvcmsgYW5kIGl0XFwncyBub3QgdGhlIGNhc2UgaWYgYSBjbGllbnQgY291bGQgcG90ZW50aWFsbHkgYnJlYWsgb3V0IG9mIHRoZSBzZXNzaW9uIHNhbmRib3guIFNwZWNpZmljIGZlYXR1cmVzIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHVzaW5nIFwiZGVueS1pbnNlY3VyZVwiJyxcbiAgICAgIHRpdGxlOiAncmVsYXhlZC1zZWN1cml0eSBjb25maWcnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgYXBwaXVtQ2xpRGVzdDogJ3JlbGF4ZWRTZWN1cml0eUVuYWJsZWQnXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ3Nlc3Npb24tb3ZlcnJpZGUnLFxuICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgIGRlc3Q6ICdzZXNzaW9uT3ZlcnJpZGUnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ3Nlc3Npb24tb3ZlcnJpZGUnLFxuICAgICAgcmVmOiAnYXBwaXVtLmpzb24jL3Byb3BlcnRpZXMvc2VydmVyL3Byb3BlcnRpZXMvc2Vzc2lvbi1vdmVycmlkZScsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgZGVzY3JpcHRpb246ICdFbmFibGVzIHNlc3Npb24gb3ZlcnJpZGUgKGNsb2JiZXJpbmcpJyxcbiAgICAgIHRpdGxlOiAnc2Vzc2lvbi1vdmVycmlkZSBjb25maWcnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICdzdHJpY3QtY2FwcycsXG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgZGVzdDogJ3N0cmljdENhcHMnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ3N0cmljdC1jYXBzJyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL3N0cmljdC1jYXBzJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0NhdXNlIHNlc3Npb25zIHRvIGZhaWwgaWYgZGVzaXJlZCBjYXBzIGFyZSBzZW50IGluIHRoYXQgQXBwaXVtIGRvZXMgbm90IHJlY29nbml6ZSBhcyB2YWxpZCBmb3IgdGhlIHNlbGVjdGVkIGRldmljZScsXG4gICAgICB0aXRsZTogJ3N0cmljdC1jYXBzIGNvbmZpZycsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGFyZ1NwZWM6IHtcbiAgICAgIGFyZzogJ3RtcCcsXG4gICAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlc3Q6ICd0bXBEaXInLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ3RtcCcsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy90bXAnLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBhcHBpdW1DbGlEZXN0OiAndG1wRGlyJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnQWJzb2x1dGUgcGF0aCB0byBkaXJlY3RvcnkgQXBwaXVtIGNhbiB1c2UgdG8gbWFuYWdlIHRlbXAgZmlsZXMuIERlZmF1bHRzIHRvIEM6XFxcXFdpbmRvd3NcXFxcVGVtcCBvbiBXaW5kb3dzIGFuZCAvdG1wIG90aGVyd2lzZS4nLFxuICAgICAgdGl0bGU6ICd0bXAgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICd0cmFjZS1kaXInLFxuICAgICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICBkZXN0OiAndHJhY2VEaXInLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ3RyYWNlLWRpcicsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy90cmFjZS1kaXInLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0Fic29sdXRlIHBhdGggdG8gZGlyZWN0b3J5IEFwcGl1bSBjYW4gdXNlIHRvIHNhdmUgaU9TIGluc3RydW1lbnQgdHJhY2VzOyBkZWZhdWx0cyB0byA8dG1wPi9hcHBpdW0taW5zdHJ1bWVudHMnLFxuICAgICAgdGl0bGU6ICd0cmFjZS1kaXIgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBhcmdTcGVjOiB7XG4gICAgICBhcmc6ICd1c2UtZHJpdmVycycsXG4gICAgICBkZWZhdWx0VmFsdWU6IFtdLFxuICAgICAgZGVzdDogJ3VzZURyaXZlcnMnLFxuICAgICAgZXh0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgZXh0VHlwZTogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogJ3VzZS1kcml2ZXJzJyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL3VzZS1kcml2ZXJzJyxcbiAgICB9LFxuICAgIHNjaGVtYToge1xuICAgICAgYXBwaXVtQ2xpRGVzY3JpcHRpb246XG4gICAgICAgICdBIGxpc3Qgb2YgZHJpdmVycyB0byBhY3RpdmF0ZS4gQ2FuIGJlIGEgY29tbWEtZGVsaW1pdGVkIHN0cmluZyBvciBwYXRoIHRvIENTViBmaWxlLiBCeSBkZWZhdWx0LCBhbGwgaW5zdGFsbGVkIGRyaXZlcnMgd2lsbCBiZSBhY3RpdmF0ZWQuJyxcbiAgICAgIGRlZmF1bHQ6IFtdLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdBIGxpc3Qgb2YgZHJpdmVycyB0byBhY3RpdmF0ZS4gQnkgZGVmYXVsdCwgYWxsIGluc3RhbGxlZCBkcml2ZXJzIHdpbGwgYmUgYWN0aXZhdGVkLicsXG4gICAgICBpdGVtczoge3R5cGU6ICdzdHJpbmcnfSxcbiAgICAgIHRpdGxlOiAndXNlLWRyaXZlcnMgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAndXNlLXBsdWdpbnMnLFxuICAgICAgZGVmYXVsdFZhbHVlOiBbXSxcbiAgICAgIGRlc3Q6ICd1c2VQbHVnaW5zJyxcbiAgICAgIGV4dE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIGV4dFR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6ICd1c2UtcGx1Z2lucycsXG4gICAgICByZWY6ICdhcHBpdW0uanNvbiMvcHJvcGVydGllcy9zZXJ2ZXIvcHJvcGVydGllcy91c2UtcGx1Z2lucycsXG4gICAgfSxcbiAgICBzY2hlbWE6IHtcbiAgICAgIGFwcGl1bUNsaURlc2NyaXB0aW9uOlxuICAgICAgICAnQSBsaXN0IG9mIHBsdWdpbnMgdG8gYWN0aXZhdGUuIENhbiBiZSBhIGNvbW1hLWRlbGltaXRlZCBzdHJpbmcsIHBhdGggdG8gQ1NWIGZpbGUsIG9yIHRoZSBzdHJpbmcgXCJhbGxcIiB0byB1c2UgYWxsIGluc3RhbGxlZCBwbHVnaW5zLicsXG4gICAgICBkZWZhdWx0OiBbXSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnQSBsaXN0IG9mIHBsdWdpbnMgdG8gYWN0aXZhdGUuIFRvIGFjdGl2YXRlIGFsbCBwbHVnaW5zLCB0aGUgdmFsdWUgc2hvdWxkIGJlIGFuIGFycmF5IHdpdGggYSBzaW5nbGUgaXRlbSBcImFsbFwiLicsXG4gICAgICBpdGVtczoge3R5cGU6ICdzdHJpbmcnfSxcbiAgICAgIHRpdGxlOiAndXNlLXBsdWdpbnMgY29uZmlnJyxcbiAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICB1bmlxdWVJdGVtczogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgYXJnU3BlYzoge1xuICAgICAgYXJnOiAnd2ViaG9vaycsXG4gICAgICBkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGRlc3Q6ICd3ZWJob29rJyxcbiAgICAgIGV4dE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIGV4dFR5cGU6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6ICd3ZWJob29rJyxcbiAgICAgIHJlZjogJ2FwcGl1bS5qc29uIy9wcm9wZXJ0aWVzL3NlcnZlci9wcm9wZXJ0aWVzL3dlYmhvb2snLFxuICAgIH0sXG4gICAgc2NoZW1hOiB7XG4gICAgICAkY29tbWVudDpcbiAgICAgICAgJ1RoaXMgc2hvdWxkIHByb2JhYmx5IHVzZSBhIHVyaS10ZW1wbGF0ZSBmb3JtYXQgdG8gcmVzdHJpY3QgdGhlIHByb3RvY29sIHRvIGh0dHAvaHR0cHMnLFxuICAgICAgYXBwaXVtQ2xpQWxpYXNlczogWydHJ10sXG4gICAgICBkZXNjcmlwdGlvbjogJ0Fsc28gc2VuZCBsb2cgb3V0cHV0IHRvIHRoaXMgaHR0cCBsaXN0ZW5lcicsXG4gICAgICBmb3JtYXQ6ICd1cmknLFxuICAgICAgdGl0bGU6ICd3ZWJob29rIGNvbmZpZycsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9LFxuICB9LFxuXTtcbiJdLCJmaWxlIjoidGVzdC9maXh0dXJlcy9mbGF0dGVuZWQtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -1,20 +0,0 @@
1
- "use strict";
2
-
3
- require("source-map-support/register");
4
-
5
- module.exports = {
6
- type: 'object',
7
- required: ['answer'],
8
- properties: {
9
- answer: {
10
- type: 'number',
11
- minimum: 0,
12
- maximum: 100,
13
- default: 50,
14
- description: 'The answer to the Ultimate Question of Life, The Universe, and Everything'
15
- }
16
- }
17
- };require('source-map-support').install();
18
-
19
-
20
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZml4dHVyZXMvcGx1Z2luLnNjaGVtYS5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwidHlwZSIsInJlcXVpcmVkIiwicHJvcGVydGllcyIsImFuc3dlciIsIm1pbmltdW0iLCJtYXhpbXVtIiwiZGVmYXVsdCIsImRlc2NyaXB0aW9uIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUFBLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjtBQUNmQyxFQUFBQSxJQUFJLEVBQUUsUUFEUztBQUVmQyxFQUFBQSxRQUFRLEVBQUUsQ0FBQyxRQUFELENBRks7QUFHZkMsRUFBQUEsVUFBVSxFQUFFO0FBQ1ZDLElBQUFBLE1BQU0sRUFBRTtBQUNOSCxNQUFBQSxJQUFJLEVBQUUsUUFEQTtBQUVOSSxNQUFBQSxPQUFPLEVBQUUsQ0FGSDtBQUdOQyxNQUFBQSxPQUFPLEVBQUUsR0FISDtBQUlOQyxNQUFBQSxPQUFPLEVBQUUsRUFKSDtBQUtOQyxNQUFBQSxXQUFXLEVBQ1Q7QUFOSTtBQURFO0FBSEcsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgdHlwZTogJ29iamVjdCcsXG4gIHJlcXVpcmVkOiBbJ2Fuc3dlciddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgYW5zd2VyOiB7XG4gICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgIG1pbmltdW06IDAsXG4gICAgICBtYXhpbXVtOiAxMDAsXG4gICAgICBkZWZhdWx0OiA1MCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnVGhlIGFuc3dlciB0byB0aGUgVWx0aW1hdGUgUXVlc3Rpb24gb2YgTGlmZSwgVGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZycsXG4gICAgfSxcbiAgfSxcbn07XG4iXSwiZmlsZSI6InRlc3QvZml4dHVyZXMvcGx1Z2luLnNjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- require("source-map-support/register");
11
-
12
- var _lodash = _interopRequireDefault(require("lodash"));
13
-
14
- var _appiumConfigSchema = _interopRequireDefault(require("../../lib/schema/appium-config-schema"));
15
-
16
- const {
17
- default: fakeDriverSchema
18
- } = require('@appium/fake-driver/build/lib/fake-driver-schema');
19
-
20
- const schema = _lodash.default.cloneDeep(_appiumConfigSchema.default);
21
-
22
- _lodash.default.set(schema, 'properties.driver.properties.fake', fakeDriverSchema);
23
-
24
- var _default = schema;
25
- exports.default = _default;require('source-map-support').install();
26
-
27
-
28
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZml4dHVyZXMvc2NoZW1hLXdpdGgtZXh0ZW5zaW9ucy5qcyJdLCJuYW1lcyI6WyJkZWZhdWx0IiwiZmFrZURyaXZlclNjaGVtYSIsInJlcXVpcmUiLCJzY2hlbWEiLCJfIiwiY2xvbmVEZWVwIiwiYXBwaXVtQ29uZmlnU2NoZW1hIiwic2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUlBLE1BQU07QUFBQ0EsRUFBQUEsT0FBTyxFQUFFQztBQUFWLElBQThCQyxPQUFPLENBQUMsa0RBQUQsQ0FBM0M7O0FBRUEsTUFBTUMsTUFBTSxHQUFHQyxnQkFBRUMsU0FBRixDQUFZQywyQkFBWixDQUFmOztBQUNBRixnQkFBRUcsR0FBRixDQUFNSixNQUFOLEVBQWMsbUNBQWQsRUFBbURGLGdCQUFuRDs7ZUFFZUUsTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoaXMgZml4dHVyZSBjb21iaW5lcyB0aGUgYmFzZSBjb25maWcgc2NoZW1hIGFuZCB0aGUgZmFrZS1kcml2ZXIgc2NoZW1hLCBhcyB3b3VsZCBoYXBwZW4gaW4gYSByZWFsIHVzZSBjYXNlLlxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBhcHBpdW1Db25maWdTY2hlbWEgZnJvbSAnLi4vLi4vbGliL3NjaGVtYS9hcHBpdW0tY29uZmlnLXNjaGVtYSc7XG5cbi8vIHRoaXMgbXVzdCBiZSBhIGByZXF1aXJlYCBiZWNhdXNlIGJhYmVsIHdpbGwgbm90IGNvbXBpbGUgYG5vZGVfbW9kdWxlc2Bcbi8vIFRPT0Q6IGNvbnNpZGVyIGp1c3QgY29weWluZyB0aGlzIGludG8gZml4dHVyZXMgc28gd2UgY2FuIG1ha2UgaXQgRVNNXG5jb25zdCB7ZGVmYXVsdDogZmFrZURyaXZlclNjaGVtYX0gPSByZXF1aXJlKCdAYXBwaXVtL2Zha2UtZHJpdmVyL2J1aWxkL2xpYi9mYWtlLWRyaXZlci1zY2hlbWEnKTtcblxuY29uc3Qgc2NoZW1hID0gXy5jbG9uZURlZXAoYXBwaXVtQ29uZmlnU2NoZW1hKTtcbl8uc2V0KHNjaGVtYSwgJ3Byb3BlcnRpZXMuZHJpdmVyLnByb3BlcnRpZXMuZmFrZScsIGZha2VEcml2ZXJTY2hlbWEpO1xuXG5leHBvcnQgZGVmYXVsdCBzY2hlbWE7XG4iXSwiZmlsZSI6InRlc3QvZml4dHVyZXMvc2NoZW1hLXdpdGgtZXh0ZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9