@smartbit4all/ng-client 3.3.57 → 3.3.59

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 (94) hide show
  1. package/esm2020/lib/session/api/api/session.service.mjs +1 -1
  2. package/esm2020/lib/session/api/encoder.mjs +1 -1
  3. package/esm2020/lib/session/api/model/accountInfo.mjs +1 -1
  4. package/esm2020/lib/session/api/model/apiError.mjs +1 -1
  5. package/esm2020/lib/session/api/model/authenticationProviderData.mjs +1 -1
  6. package/esm2020/lib/session/api/model/getAuthenticationProvidersResponse.mjs +1 -1
  7. package/esm2020/lib/session/api/model/models.mjs +1 -1
  8. package/esm2020/lib/session/api/model/refreshSessionRequest.mjs +1 -1
  9. package/esm2020/lib/session/api/model/session.mjs +1 -1
  10. package/esm2020/lib/session/api/model/sessionInfoData.mjs +1 -1
  11. package/esm2020/lib/session/api/model/userActivityLog.mjs +1 -1
  12. package/esm2020/lib/session/api/param.mjs +1 -1
  13. package/esm2020/lib/session/api/variables.mjs +1 -1
  14. package/esm2020/lib/shared/shared.module.mjs +1 -1
  15. package/esm2020/lib/shared/smart-tooltip.directive.mjs +1 -1
  16. package/esm2020/lib/smart-client/smart-component-api-client.mjs +90 -47
  17. package/esm2020/lib/smart-component-layout/api/api/api.mjs +1 -1
  18. package/esm2020/lib/smart-component-layout/api/api/default.service.mjs +1 -1
  19. package/esm2020/lib/smart-component-layout/api/api.module.mjs +1 -1
  20. package/esm2020/lib/smart-component-layout/api/configuration.mjs +1 -1
  21. package/esm2020/lib/smart-component-layout/api/encoder.mjs +1 -1
  22. package/esm2020/lib/smart-component-layout/api/index.mjs +1 -1
  23. package/esm2020/lib/smart-component-layout/api/model/componentType.mjs +1 -1
  24. package/esm2020/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
  25. package/esm2020/lib/smart-component-layout/api/model/layoutDirection.mjs +1 -1
  26. package/esm2020/lib/smart-component-layout/api/model/models.mjs +1 -1
  27. package/esm2020/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +1 -1
  28. package/esm2020/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +1 -1
  29. package/esm2020/lib/smart-component-layout/api/param.mjs +1 -1
  30. package/esm2020/lib/smart-component-layout/api/variables.mjs +1 -1
  31. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
  32. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
  33. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
  34. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
  35. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
  36. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
  37. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
  38. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
  39. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
  40. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
  41. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
  42. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
  43. package/esm2020/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
  44. package/esm2020/lib/smart-form/api/model/models.mjs +2 -1
  45. package/esm2020/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
  46. package/esm2020/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
  47. package/esm2020/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
  48. package/esm2020/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  49. package/esm2020/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
  50. package/esm2020/lib/smart-form/api/model/valueChangeMode.mjs +20 -0
  51. package/esm2020/lib/smart-form/services/smartform.layout-definition.service.mjs +23 -3
  52. package/esm2020/lib/smart-form/smartform.form-model.mjs +1 -1
  53. package/esm2020/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +2 -2
  54. package/esm2020/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  55. package/esm2020/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
  56. package/esm2020/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  57. package/esm2020/lib/smart-ng-client.module.mjs +2 -2
  58. package/esm2020/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
  59. package/esm2020/lib/smart-tree/tree-api/configuration.mjs +1 -1
  60. package/esm2020/lib/smart-tree/tree-api/encoder.mjs +1 -1
  61. package/esm2020/lib/smart-tree/tree-api/param.mjs +1 -1
  62. package/esm2020/lib/smart-tree/tree-api/variables.mjs +1 -1
  63. package/esm2020/lib/view-context/api/model/openPendingData.mjs +1 -1
  64. package/esm2020/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +4 -1
  65. package/esm2020/lib/view-context/value-api/api/api.mjs +1 -1
  66. package/esm2020/lib/view-context/value-api/api/value.service.mjs +1 -1
  67. package/esm2020/lib/view-context/value-api/api.module.mjs +1 -1
  68. package/esm2020/lib/view-context/value-api/configuration.mjs +1 -1
  69. package/esm2020/lib/view-context/value-api/encoder.mjs +1 -1
  70. package/esm2020/lib/view-context/value-api/index.mjs +1 -1
  71. package/esm2020/lib/view-context/value-api/model/genericValue.mjs +1 -1
  72. package/esm2020/lib/view-context/value-api/model/models.mjs +1 -1
  73. package/esm2020/lib/view-context/value-api/model/value.mjs +1 -1
  74. package/esm2020/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
  75. package/esm2020/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
  76. package/esm2020/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
  77. package/esm2020/lib/view-context/value-api/param.mjs +1 -1
  78. package/esm2020/lib/view-context/value-api/variables.mjs +1 -1
  79. package/fesm2015/smartbit4all-ng-client.mjs +145 -59
  80. package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
  81. package/fesm2020/smartbit4all-ng-client.mjs +135 -50
  82. package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
  83. package/lib/smart-client/smart-component-api-client.d.ts +12 -14
  84. package/lib/smart-form/api/model/models.d.ts +1 -0
  85. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +2 -0
  86. package/lib/smart-form/api/model/valueChangeMode.d.ts +18 -0
  87. package/lib/smart-form/smartform.form-model.d.ts +29 -1
  88. package/package.json +1 -1
  89. package/smartbit4all-ng-client-3.3.59.tgz +0 -0
  90. package/src/lib/session/api/README.md +226 -226
  91. package/src/lib/smart-component-layout/api/README.md +226 -226
  92. package/src/lib/smart-tree/tree-api/README.md +226 -226
  93. package/src/lib/view-context/value-api/README.md +226 -226
  94. package/smartbit4all-ng-client-3.3.57.tgz +0 -0
@@ -58,7 +58,7 @@ export class SmartformLayoutDefinitionService {
58
58
  if (!config.layoutDefinition.uploadCallback) {
59
59
  throw Error('No upload function injected.');
60
60
  }
61
- return this.createFileUploader(config.layoutDefinition, config.uploadCallback);
61
+ return this.createFileUploader(config.layoutDefinition);
62
62
  case SmartFormWidgetType.MATRIX:
63
63
  return this.createMatrix(config.layoutDefinition);
64
64
  case SmartFormWidgetType.SORTABLE:
@@ -71,6 +71,7 @@ export class SmartformLayoutDefinitionService {
71
71
  createMonthPicker(layoutDefinition) {
72
72
  let widget = {
73
73
  key: layoutDefinition.key,
74
+ valueChangeMode: layoutDefinition.valueChangeMode,
74
75
  type: SmartFormWidgetType.MONTH_PICKER,
75
76
  label: layoutDefinition.label,
76
77
  showLabel: layoutDefinition.showLabel,
@@ -82,6 +83,7 @@ export class SmartformLayoutDefinitionService {
82
83
  type: SmartFormWidgetType.MATRIX,
83
84
  label: layoutDefinition.label,
84
85
  key: layoutDefinition.key,
86
+ valueChangeMode: layoutDefinition.valueChangeMode,
85
87
  showLabel: layoutDefinition.showLabel,
86
88
  //TODO set isMultiple variable from layoutDefinition
87
89
  isMultiple: false,
@@ -92,6 +94,7 @@ export class SmartformLayoutDefinitionService {
92
94
  createSortable(layoutDefinition) {
93
95
  let widget = {
94
96
  key: layoutDefinition.key,
97
+ valueChangeMode: layoutDefinition.valueChangeMode,
95
98
  label: layoutDefinition.label,
96
99
  showLabel: layoutDefinition.showLabel,
97
100
  type: SmartFormWidgetType.SORTABLE,
@@ -119,6 +122,7 @@ export class SmartformLayoutDefinitionService {
119
122
  });
120
123
  let widget = {
121
124
  key: layoutDefinition.key,
125
+ valueChangeMode: layoutDefinition.valueChangeMode,
122
126
  type: SmartFormWidgetType.CONTAINER,
123
127
  cssClass: layoutDefinition.cssClass,
124
128
  direction: layoutDefinition.direction ?? SmartFormWidgetDirection.COL,
@@ -130,6 +134,7 @@ export class SmartformLayoutDefinitionService {
130
134
  let widget = {
131
135
  type: SmartFormWidgetType.TEXT_FIELD,
132
136
  key: layoutDefinition.key,
137
+ valueChangeMode: layoutDefinition.valueChangeMode,
133
138
  label: layoutDefinition.label,
134
139
  placeholder: layoutDefinition.placeholder,
135
140
  prefix: layoutDefinition.prefix,
@@ -152,6 +157,7 @@ export class SmartformLayoutDefinitionService {
152
157
  let widget = {
153
158
  type: SmartFormWidgetType.TEXT_FIELD_CHIPS,
154
159
  key: layoutDefinition.key,
160
+ valueChangeMode: layoutDefinition.valueChangeMode,
155
161
  label: layoutDefinition.label,
156
162
  placeholder: layoutDefinition.placeholder,
157
163
  showLabel: layoutDefinition.showLabel,
@@ -175,6 +181,7 @@ export class SmartformLayoutDefinitionService {
175
181
  let widget = {
176
182
  type: SmartFormWidgetType.TEXT_FIELD_NUMBER,
177
183
  key: layoutDefinition.key,
184
+ valueChangeMode: layoutDefinition.valueChangeMode,
178
185
  label: layoutDefinition.label,
179
186
  placeholder: layoutDefinition.placeholder,
180
187
  prefix: layoutDefinition.prefix,
@@ -192,6 +199,7 @@ export class SmartformLayoutDefinitionService {
192
199
  let widget = {
193
200
  type: SmartFormWidgetType.TEXT_BOX,
194
201
  key: layoutDefinition.key,
202
+ valueChangeMode: layoutDefinition.valueChangeMode,
195
203
  label: layoutDefinition.label,
196
204
  placeholder: layoutDefinition.placeholder,
197
205
  showLabel: layoutDefinition.showLabel,
@@ -205,6 +213,7 @@ export class SmartformLayoutDefinitionService {
205
213
  let widget = {
206
214
  type: SmartFormWidgetType.RICH_TEXT,
207
215
  key: layoutDefinition.key,
216
+ valueChangeMode: layoutDefinition.valueChangeMode,
208
217
  label: layoutDefinition.label,
209
218
  placeholder: layoutDefinition.placeholder,
210
219
  showLabel: layoutDefinition.showLabel,
@@ -228,6 +237,7 @@ export class SmartformLayoutDefinitionService {
228
237
  let widget = {
229
238
  type: SmartFormWidgetType.TOGGLE,
230
239
  key: layoutDefinition.key,
240
+ valueChangeMode: layoutDefinition.valueChangeMode,
231
241
  label: layoutDefinition.label,
232
242
  showLabel: layoutDefinition.showLabel,
233
243
  cssClass: layoutDefinition.cssClass,
@@ -240,6 +250,7 @@ export class SmartformLayoutDefinitionService {
240
250
  let widget = {
241
251
  type: SmartFormWidgetType.RADIO_BUTTON,
242
252
  key: layoutDefinition.key,
253
+ valueChangeMode: layoutDefinition.valueChangeMode,
243
254
  label: layoutDefinition.label,
244
255
  showLabel: layoutDefinition.showLabel,
245
256
  cssClass: layoutDefinition.cssClass,
@@ -263,6 +274,7 @@ export class SmartformLayoutDefinitionService {
263
274
  let widget = {
264
275
  type: SmartFormWidgetType.CHECK_BOX_2,
265
276
  key: layoutDefinition.key,
277
+ valueChangeMode: layoutDefinition.valueChangeMode,
266
278
  label: layoutDefinition.label,
267
279
  showLabel: layoutDefinition.showLabel,
268
280
  cssClass: layoutDefinition.cssClass,
@@ -286,6 +298,7 @@ export class SmartformLayoutDefinitionService {
286
298
  let widget = {
287
299
  type: SmartFormWidgetType.SELECT,
288
300
  key: layoutDefinition.key,
301
+ valueChangeMode: layoutDefinition.valueChangeMode,
289
302
  label: layoutDefinition.label,
290
303
  showLabel: layoutDefinition.showLabel,
291
304
  cssClass: layoutDefinition.cssClass,
@@ -310,6 +323,7 @@ export class SmartformLayoutDefinitionService {
310
323
  let widget = {
311
324
  type: SmartFormWidgetType.SELECT_MULTIPLE,
312
325
  key: layoutDefinition.key,
326
+ valueChangeMode: layoutDefinition.valueChangeMode,
313
327
  label: layoutDefinition.label,
314
328
  showLabel: layoutDefinition.showLabel,
315
329
  cssClass: layoutDefinition.cssClass,
@@ -333,6 +347,7 @@ export class SmartformLayoutDefinitionService {
333
347
  let widget = {
334
348
  type: SmartFormWidgetType.DATE_PICKER,
335
349
  key: layoutDefinition.key,
350
+ valueChangeMode: layoutDefinition.valueChangeMode,
336
351
  label: layoutDefinition.label,
337
352
  showLabel: layoutDefinition.showLabel,
338
353
  cssClass: layoutDefinition.cssClass,
@@ -345,6 +360,7 @@ export class SmartformLayoutDefinitionService {
345
360
  let widget = {
346
361
  type: SmartFormWidgetType.DATE_TIME_PICKER,
347
362
  key: layoutDefinition.key,
363
+ valueChangeMode: layoutDefinition.valueChangeMode,
348
364
  label: layoutDefinition.label,
349
365
  showLabel: layoutDefinition.showLabel,
350
366
  cssClass: layoutDefinition.cssClass,
@@ -357,6 +373,7 @@ export class SmartformLayoutDefinitionService {
357
373
  let widget = {
358
374
  type: SmartFormWidgetType.IMAGE,
359
375
  key: layoutDefinition.key,
376
+ valueChangeMode: layoutDefinition.valueChangeMode,
360
377
  label: layoutDefinition.label,
361
378
  showLabel: layoutDefinition.showLabel,
362
379
  cssClass: layoutDefinition.cssClass,
@@ -368,6 +385,7 @@ export class SmartformLayoutDefinitionService {
368
385
  let widget = {
369
386
  type: SmartFormWidgetType.BUTTON,
370
387
  key: config.layoutDefinition?.key,
388
+ valueChangeMode: config.layoutDefinition?.valueChangeMode,
371
389
  label: config.layoutDefinition?.label,
372
390
  showLabel: config.layoutDefinition?.showLabel,
373
391
  cssClass: config.layoutDefinition?.cssClass,
@@ -381,16 +399,18 @@ export class SmartformLayoutDefinitionService {
381
399
  let widget = {
382
400
  type: SmartFormWidgetType.DIVIDER,
383
401
  key: layoutDefinition.key,
402
+ valueChangeMode: layoutDefinition.valueChangeMode,
384
403
  label: layoutDefinition.label,
385
404
  showLabel: layoutDefinition.showLabel,
386
405
  cssClass: layoutDefinition.cssClass,
387
406
  };
388
407
  return widget;
389
408
  }
390
- createFileUploader(layoutDefinition, uploadCallback) {
409
+ createFileUploader(layoutDefinition) {
391
410
  let widget = {
392
411
  type: SmartFormWidgetType.FILE_UPLOADER,
393
412
  key: layoutDefinition.key,
413
+ valueChangeMode: layoutDefinition.valueChangeMode,
394
414
  label: layoutDefinition.label,
395
415
  showLabel: layoutDefinition.showLabel,
396
416
  cssClass: layoutDefinition.cssClass,
@@ -407,4 +427,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
407
427
  providedIn: 'root',
408
428
  }]
409
429
  }], ctorParameters: function () { return []; } });
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQzs7QUFpQjlGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxNQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxnQkFBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FDbEIsTUFBeUM7UUFFekMsUUFBUSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEtBQUssbUJBQW1CLENBQUMsU0FBUztnQkFDaEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMvRCxLQUFLLG1CQUFtQixDQUFDLEtBQUs7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNuRCxLQUFLLG1CQUFtQixDQUFDLFVBQVU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxLQUFLLG1CQUFtQixDQUFDLGdCQUFnQjtnQkFDdkMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDNUQsS0FBSyxtQkFBbUIsQ0FBQyxpQkFBaUI7Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdELEtBQUssbUJBQW1CLENBQUMsVUFBVTtnQkFDakMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELEtBQUssbUJBQW1CLENBQUMsUUFBUTtnQkFDL0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JELEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BELEtBQUssbUJBQW1CLENBQUMsWUFBWTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekQsS0FBSyxtQkFBbUIsQ0FBQyxTQUFTO2dCQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEQsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO2dCQUM3QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxLQUFLLG1CQUFtQixDQUFDLGVBQWU7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVELEtBQUssbUJBQW1CLENBQUMsV0FBVztnQkFDbEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDeEQsS0FBSyxtQkFBbUIsQ0FBQyxnQkFBZ0I7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVELEtBQUssbUJBQW1CLENBQUMsS0FBSztnQkFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25ELEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLEtBQUssbUJBQW1CLENBQUMsT0FBTztnQkFDOUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JELEtBQUssbUJBQW1CLENBQUMsU0FBUztnQkFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RELEtBQUssbUJBQW1CLENBQUMsYUFBYTtnQkFDcEMsSUFBSSxDQUFFLE1BQU0sQ0FBQyxnQkFBc0MsQ0FBQyxjQUFjLEVBQUU7b0JBQ2xFLE1BQU0sS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7aUJBQzdDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUM1QixNQUFNLENBQUMsZ0JBQXFDLEVBQzVDLE1BQU0sQ0FBQyxjQUFlLENBQ3ZCLENBQUM7WUFDSixLQUFLLG1CQUFtQixDQUFDLE1BQU07Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNwRCxLQUFLLG1CQUFtQixDQUFDLFFBQVE7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RCxLQUFLLG1CQUFtQixDQUFDLFlBQVk7Z0JBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsT0FBTztJQUNULENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxnQkFBdUM7UUFDL0QsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3RDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1NBQ3RDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sWUFBWSxDQUFDLGdCQUF1QztRQUMxRCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07WUFDaEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsb0RBQW9EO1lBQ3BELFVBQVUsRUFBRSxLQUFLO1lBQ2pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1NBQy9CLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUFDLGdCQUF1QztRQUM1RCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFFBQVE7U0FDbkMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxXQUFXLENBQUMsZ0JBQXVDO1FBQ3pELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsS0FBSztZQUMvQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxpQkFBaUI7U0FDdEQsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxlQUFlLENBQ3JCLE1BQXlDLEVBQ3pDLGdCQUF1QztRQUV2QyxJQUFJLFNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBRTNDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDLGdCQUF1QyxFQUFFLEVBQUU7WUFDdkYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDN0IsR0FBRyxNQUFNO2dCQUNULGdCQUFnQjthQUNqQixDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sRUFBRTtnQkFDVixTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFNBQVM7WUFDbkMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsSUFBSSx3QkFBd0IsQ0FBQyxHQUFHO1lBQ3JFLFNBQVM7U0FDVixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxnQkFBdUM7UUFDN0QsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxVQUFVO1lBQ3BDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO1lBQ3pDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9CLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9CLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzNCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzNCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZO1lBQzNDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVO1lBQ3ZDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1lBQzNCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1NBQ3RDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sb0JBQW9CLENBQUMsZ0JBQXVDO1FBQ2xFLElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsZ0JBQWdCO1lBQzFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO1lBQ3pDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztRQUNGLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUM5RCxPQUFPO29CQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSztvQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtvQkFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNsQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxxQkFBcUIsQ0FBQyxnQkFBdUM7UUFDbkUsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxpQkFBaUI7WUFDM0MsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07WUFDL0IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07WUFDL0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxhQUFhLENBQUMsZ0JBQXVDO1FBQzNELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUTtZQUNsQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztZQUN6QyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtTQUM1QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLGNBQWMsQ0FBQyxnQkFBdUM7UUFDNUQsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTO1lBQ25DLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO1lBQ3pDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFlBQVksRUFBRTtnQkFDWixPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFO3dCQUNULENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQzt3QkFDakQsQ0FBQyxZQUFZLENBQUM7d0JBQ2QsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDOUIsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzt3QkFDekMsQ0FBQyxPQUFPLENBQUM7cUJBQ1Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sWUFBWSxDQUFDLGdCQUF1QztRQUMxRCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07WUFDaEMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxpQkFBaUIsQ0FBQyxnQkFBdUM7UUFDL0QsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3RDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFNBQVMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUVGLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUM5RCxPQUFPO29CQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSztvQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtvQkFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNsQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxjQUFjLENBQUMsZ0JBQXVDO1FBQzVELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsV0FBVztZQUNyQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxTQUFTLEVBQUUsRUFBRTtZQUNiLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUM7UUFDRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDOUQsT0FBTztvQkFDTCxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUs7b0JBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWTtvQkFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7b0JBQzlCLEtBQUssRUFBRSxLQUFLO2lCQUNiLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLFlBQVksQ0FBQyxnQkFBdUMsRUFBRSxLQUFXO1FBQ3ZFLElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtZQUNoQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxTQUFTLEVBQUUsRUFBRTtZQUNiLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUM7UUFFRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDOUQsT0FBTztvQkFDTCxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUs7b0JBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWTtvQkFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7b0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDbEIsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sb0JBQW9CLENBQUMsZ0JBQXVDO1FBQ2xFLElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsZUFBZTtZQUN6QyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxTQUFTLEVBQUUsRUFBRTtZQUNiLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUM7UUFDRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDOUQsT0FBTztvQkFDTCxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUs7b0JBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsWUFBWTtvQkFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7b0JBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSTtpQkFDbEIsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sZ0JBQWdCLENBQUMsZ0JBQXVDO1FBQzlELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsV0FBVztZQUNyQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtTQUM1QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLG9CQUFvQixDQUFDLGdCQUF1QztRQUNsRSxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQjtZQUMxQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtTQUM1QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLFdBQVcsQ0FBQyxnQkFBdUM7UUFDekQsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1NBQ3BDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sWUFBWSxDQUFDLE1BQXlDO1FBQzVELElBQUksUUFBUSxHQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUN4QyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUNsRSxDQUFDO1FBQ0YsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO1lBQ2hDLEdBQUcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsR0FBSTtZQUNsQyxLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEtBQU07WUFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO1lBQzdDLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsUUFBUTtZQUMzQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGNBQWU7WUFDaEMsUUFBUTtZQUNSLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxtQkFBb0IsQ0FBQyxRQUFRLENBQUM7U0FDMUQsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxhQUFhLENBQUMsZ0JBQXVDO1FBQzNELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsT0FBTztZQUNqQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtTQUNwQyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLGtCQUFrQixDQUN4QixnQkFBbUMsRUFDbkMsY0FBbUQ7UUFFbkQsSUFBSSxNQUFNLEdBQXNCO1lBQzlCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxhQUFhO1lBQ3ZDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxjQUFjO1NBQ2hELENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs2SEF4YVUsZ0NBQWdDO2lJQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTsyRkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24sIFNtYXJ0Rm9ybVdpZGdldFR5cGUsIFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbiB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IFNtYXJ0RmlsZVVwbG9hZGVyLCBTbWFydEZvcm1XaWRnZXQgfSBmcm9tICcuLi9zbWFydGZvcm0uZm9ybS1tb2RlbCc7XHJcbmltcG9ydCB7IFZhbHVlIH0gZnJvbSAnLi4vc21hcnRmb3JtLm1vZGVsJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnIHtcclxuICBsYXlvdXREZWZpbml0aW9ucz86IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbltdO1xyXG4gIGxheW91dERlZmluaXRpb24/OiBTbWFydFdpZGdldERlZmluaXRpb247XHJcbiAgdXBsb2FkQ2FsbGJhY2s/OiAoa2V5OiBzdHJpbmcsIGZpbGVzOiBhbnlbXSkgPT4gdm9pZDtcclxuICBidXR0b25DYWxsYmFjaz86ICgodWlBY3Rpb246IGFueSkgPT4gdm9pZCkgfCAoKGtleTogc3RyaW5nKSA9PiB2b2lkKTtcclxuICB1aUFjdGlvbnM/OiBhbnlbXTtcclxuICB1aUFjdGlvbkRlc2NyaXB0b3JzPzogKHVpQWN0aW9uOiBhbnkpID0+IGFueTtcclxuICBtb2RlbD86IGFueTtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0Zm9ybUxheW91dERlZmluaXRpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHB1YmxpYyByZW5kZXIoY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcpOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdIHtcclxuICAgIGxldCB3aWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XHJcblxyXG4gICAgY29uZmlnLmxheW91dERlZmluaXRpb25zPy5mb3JFYWNoKChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pID0+IHtcclxuICAgICAgbGV0IHdpZGdldCA9IHRoaXMuY3JlYXRlV2lkZ2V0KHtcclxuICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgbGF5b3V0RGVmaW5pdGlvbixcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh3aWRnZXQpIHtcclxuICAgICAgICB3aWRnZXRzLnB1c2god2lkZ2V0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHdpZGdldHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdpZGdldChcclxuICAgIGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnXHJcbiAgKTogU21hcnRGb3JtV2lkZ2V0PGFueT4gfCB1bmRlZmluZWQge1xyXG4gICAgc3dpdGNoIChjb25maWcubGF5b3V0RGVmaW5pdGlvbj8udHlwZSkge1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbnRhaW5lcihjb25maWcsIGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFM6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkQ2hpcHMoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkTnVtYmVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRCb3goY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVE9HR0xFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRvZ2dsZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5SQURJT19CVVRUT046XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmFkaW9CdXR0b24oY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNoZWNrQm94KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTZWxlY3QoY29uZmlnLmxheW91dERlZmluaXRpb24sIGNvbmZpZy5tb2RlbCk7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VsZWN0TXVsdGlwbGUoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZVBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1RJTUVfUElDS0VSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGVUaW1lUGlja2VyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUltYWdlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVCdXR0b24oY29uZmlnKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGl2aWRlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5SSUNIX1RFWFQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmljaFRleHQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUjpcclxuICAgICAgICBpZiAoIShjb25maWcubGF5b3V0RGVmaW5pdGlvbiBhcyBTbWFydEZpbGVVcGxvYWRlcikudXBsb2FkQ2FsbGJhY2spIHtcclxuICAgICAgICAgIHRocm93IEVycm9yKCdObyB1cGxvYWQgZnVuY3Rpb24gaW5qZWN0ZWQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbGVVcGxvYWRlcihcclxuICAgICAgICAgIGNvbmZpZy5sYXlvdXREZWZpbml0aW9uIGFzIFNtYXJ0RmlsZVVwbG9hZGVyLFxyXG4gICAgICAgICAgY29uZmlnLnVwbG9hZENhbGxiYWNrIVxyXG4gICAgICAgICk7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVg6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTWF0cml4KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvcnRhYmxlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb250aFBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZU1vbnRoUGlja2VyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUixcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTWF0cml4KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1BVFJJWCxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIC8vVE9ETyBzZXQgaXNNdWx0aXBsZSB2YXJpYWJsZSBmcm9tIGxheW91dERlZmluaXRpb25cclxuICAgICAgaXNNdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgIHZhbHVlOiBsYXlvdXREZWZpbml0aW9uLm1hdHJpeCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTb3J0YWJsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pIHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMYWJlbChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5MQUJFTCxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHdpZGdldERlc2NyaXB0aW9uOiBsYXlvdXREZWZpbml0aW9uLndpZGdldERlc2NyaXB0aW9uLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNvbnRhaW5lcihcclxuICAgIGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnLFxyXG4gICAgbGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uXHJcbiAgKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHZhbHVlTGlzdDogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGxheW91dERlZmluaXRpb24uY2hpbGRyZW5Db21wb25lbnRzPy5mb3JFYWNoKChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pID0+IHtcclxuICAgICAgbGV0IHdpZGdldCA9IHRoaXMuY3JlYXRlV2lkZ2V0KHtcclxuICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgbGF5b3V0RGVmaW5pdGlvbixcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh3aWRnZXQpIHtcclxuICAgICAgICB2YWx1ZUxpc3QucHVzaCh3aWRnZXQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVIsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBkaXJlY3Rpb246IGxheW91dERlZmluaXRpb24uZGlyZWN0aW9uID8/IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbi5DT0wsXHJcbiAgICAgIHZhbHVlTGlzdCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgcHJlZml4OiBsYXlvdXREZWZpbml0aW9uLnByZWZpeCxcclxuICAgICAgc3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnN1ZmZpeCxcclxuICAgICAgbWFzazogbGF5b3V0RGVmaW5pdGlvbi5tYXNrLFxyXG4gICAgICBpY29uOiBsYXlvdXREZWZpbml0aW9uLmljb24sXHJcbiAgICAgIGljb25Db2xvcjogbGF5b3V0RGVmaW5pdGlvbi5pY29uQ29sb3IsXHJcbiAgICAgIGljb25Qb3NpdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5pY29uUG9zaXRpb24sXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIGlzUGFzc3dvcmQ6IGxheW91dERlZmluaXRpb24uaXNQYXNzd29yZCxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICBtYXhMZW5ndGg6IGxheW91dERlZmluaXRpb24ubWF4TGVuZ3RoLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkQ2hpcHMobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUyxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkTnVtYmVyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHByZWZpeDogbGF5b3V0RGVmaW5pdGlvbi5wcmVmaXgsXHJcbiAgICAgIHN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zdWZmaXgsXHJcbiAgICAgIGljb246IGxheW91dERlZmluaXRpb24uaWNvbixcclxuICAgICAgaWNvbkNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmljb25Db2xvcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEJveChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVSaWNoVGV4dChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SSUNIX1RFWFQsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgcXVpbGxNb2R1bGVzOiB7XHJcbiAgICAgICAgdG9vbGJhcjoge1xyXG4gICAgICAgICAgY29udGFpbmVyOiBbXHJcbiAgICAgICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZScsICdsaW5rJ10sXHJcbiAgICAgICAgICAgIFsnY29kZS1ibG9jayddLFxyXG4gICAgICAgICAgICBbeyBoZWFkZXI6IDEgfSwgeyBoZWFkZXI6IDIgfV0sXHJcbiAgICAgICAgICAgIFt7IGxpc3Q6ICdvcmRlcmVkJyB9LCB7IGxpc3Q6ICdidWxsZXQnIH1dLFxyXG4gICAgICAgICAgICBbJ2NsZWFuJ10sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUb2dnbGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVE9HR0xFLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlUmFkaW9CdXR0b24obGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUkFESU9fQlVUVE9OLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZUNoZWNrQm94KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWF8yLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVNlbGVjdChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24sIG1vZGVsPzogYW55KTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVNlbGVjdE11bHRpcGxlKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVF9NVUxUSVBMRSxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHZhbHVlTGlzdDogW10sXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVEYXRlVGltZVBpY2tlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1RJTUVfUElDS0VSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlSW1hZ2UobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU1BR0UsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZUJ1dHRvbihjb25maWc6IFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB1aUFjdGlvbjogYW55ID0gY29uZmlnLnVpQWN0aW9ucz8uZmluZChcclxuICAgICAgKHVpQWN0aW9uOiBhbnkpID0+IHVpQWN0aW9uLmNvZGUgPT09IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5rZXlcclxuICAgICk7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT04sXHJcbiAgICAgIGtleTogY29uZmlnLmxheW91dERlZmluaXRpb24/LmtleSEsXHJcbiAgICAgIGxhYmVsOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ubGFiZWwhLFxyXG4gICAgICBzaG93TGFiZWw6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uY3NzQ2xhc3MsXHJcbiAgICAgIGNhbGxiYWNrOiBjb25maWcuYnV0dG9uQ2FsbGJhY2shLFxyXG4gICAgICB1aUFjdGlvbixcclxuICAgICAgdWlBY3Rpb25EZXNjcmlwdG9yOiBjb25maWcudWlBY3Rpb25EZXNjcmlwdG9ycyEodWlBY3Rpb24pLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRGl2aWRlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVGaWxlVXBsb2FkZXIoXHJcbiAgICBsYXlvdXREZWZpbml0aW9uOiBTbWFydEZpbGVVcGxvYWRlcixcclxuICAgIHVwbG9hZENhbGxiYWNrOiAoa2V5OiBzdHJpbmcsIGZpbGVzOiBhbnlbXSkgPT4gdm9pZFxyXG4gICk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0RmlsZVVwbG9hZGVyID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgdXBsb2FkQ2FsbGJhY2s6IGxheW91dERlZmluaXRpb24udXBsb2FkQ2FsbGJhY2ssXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbn1cclxuIl19
430
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQzs7QUFpQjlGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxNQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxnQkFBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FDbEIsTUFBeUM7UUFFekMsUUFBUSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEtBQUssbUJBQW1CLENBQUMsU0FBUztnQkFDaEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMvRCxLQUFLLG1CQUFtQixDQUFDLEtBQUs7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNuRCxLQUFLLG1CQUFtQixDQUFDLFVBQVU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxLQUFLLG1CQUFtQixDQUFDLGdCQUFnQjtnQkFDdkMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDNUQsS0FBSyxtQkFBbUIsQ0FBQyxpQkFBaUI7Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdELEtBQUssbUJBQW1CLENBQUMsVUFBVTtnQkFDakMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZELEtBQUssbUJBQW1CLENBQUMsUUFBUTtnQkFDL0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JELEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BELEtBQUssbUJBQW1CLENBQUMsWUFBWTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDekQsS0FBSyxtQkFBbUIsQ0FBQyxTQUFTO2dCQUNoQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEQsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNO2dCQUM3QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSxLQUFLLG1CQUFtQixDQUFDLGVBQWU7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVELEtBQUssbUJBQW1CLENBQUMsV0FBVztnQkFDbEMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDeEQsS0FBSyxtQkFBbUIsQ0FBQyxnQkFBZ0I7Z0JBQ3ZDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVELEtBQUssbUJBQW1CLENBQUMsS0FBSztnQkFDNUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25ELEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLEtBQUssbUJBQW1CLENBQUMsT0FBTztnQkFDOUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JELEtBQUssbUJBQW1CLENBQUMsU0FBUztnQkFDaEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RELEtBQUssbUJBQW1CLENBQUMsYUFBYTtnQkFDcEMsSUFBSSxDQUFFLE1BQU0sQ0FBQyxnQkFBc0MsQ0FBQyxjQUFjLEVBQUU7b0JBQ2xFLE1BQU0sS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7aUJBQzdDO2dCQUNELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxnQkFBcUMsQ0FBQyxDQUFDO1lBQy9FLEtBQUssbUJBQW1CLENBQUMsTUFBTTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BELEtBQUssbUJBQW1CLENBQUMsUUFBUTtnQkFDL0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RELEtBQUssbUJBQW1CLENBQUMsWUFBWTtnQkFDbkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDMUQ7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUVPLGlCQUFpQixDQUFDLGdCQUF1QztRQUMvRCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFlBQVk7WUFDdEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7U0FDdEMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxZQUFZLENBQUMsZ0JBQXVDO1FBQzFELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtZQUNoQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtZQUNqRCxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxvREFBb0Q7WUFDcEQsVUFBVSxFQUFFLEtBQUs7WUFDakIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU07U0FDL0IsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxjQUFjLENBQUMsZ0JBQXVDO1FBQzVELElBQUksTUFBTSxHQUF5QjtZQUNqQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtZQUNqRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUTtTQUNuQyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxnQkFBdUM7UUFDekQsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLGlCQUFpQjtTQUN0RCxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGVBQWUsQ0FDckIsTUFBeUMsRUFDekMsZ0JBQXVDO1FBRXZDLElBQUksU0FBUyxHQUEyQixFQUFFLENBQUM7UUFFM0MsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUMsZ0JBQXVDLEVBQUUsRUFBRTtZQUN2RixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUM3QixHQUFHLE1BQU07Z0JBQ1QsZ0JBQWdCO2FBQ2pCLENBQUMsQ0FBQztZQUNILElBQUksTUFBTSxFQUFFO2dCQUNWLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDeEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksTUFBTSxHQUF5QjtZQUNqQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtZQUNqRCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsU0FBUztZQUNuQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLHdCQUF3QixDQUFDLEdBQUc7WUFDckUsU0FBUztTQUNWLENBQUM7UUFFRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sZUFBZSxDQUFDLGdCQUF1QztRQUM3RCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFVBQVU7WUFDcEMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07WUFDL0IsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07WUFDL0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFlBQVk7WUFDM0MsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDdkMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7U0FDdEMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxvQkFBb0IsQ0FBQyxnQkFBdUM7UUFDbEUsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxnQkFBZ0I7WUFDMUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsU0FBUyxFQUFFLEVBQUU7U0FDZCxDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQzlELE9BQU87b0JBQ0wsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFLO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVk7b0JBQ3pCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO29CQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ2xCLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLHFCQUFxQixDQUFDLGdCQUF1QztRQUNuRSxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLGlCQUFpQjtZQUMzQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtZQUNqRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztZQUN6QyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUMvQixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUMvQixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUMzQixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtTQUM1QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLGFBQWEsQ0FBQyxnQkFBdUM7UUFDM0QsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxRQUFRO1lBQ2xDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1lBQ2pELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO1lBQ3pDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sY0FBYyxDQUFDLGdCQUF1QztRQUM1RCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFNBQVM7WUFDbkMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7WUFDekMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUU7d0JBQ1QsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO3dCQUNqRCxDQUFDLFlBQVksQ0FBQzt3QkFDZCxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO3dCQUM5QixDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUN6QyxDQUFDLE9BQU8sQ0FBQztxQkFDVjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxZQUFZLENBQUMsZ0JBQXVDO1FBQzFELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTtZQUNoQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtZQUNqRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtTQUM1QixDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLGlCQUFpQixDQUFDLGdCQUF1QztRQUMvRCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFlBQVk7WUFDdEMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLGFBQWE7WUFDN0MsU0FBUyxFQUFFLEVBQUU7WUFDYixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtTQUM1QixDQUFDO1FBRUYsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsTUFBTSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQzlELE9BQU87b0JBQ0wsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFLO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLFlBQVk7b0JBQ3pCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO29CQUM5QixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQ2xCLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLGNBQWMsQ0FBQyxnQkFBdUM7UUFDNUQsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxXQUFXO1lBQ3JDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1lBQ2pELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFNBQVMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUNGLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUM5RCxPQUFPO29CQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSztvQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtvQkFDOUIsS0FBSyxFQUFFLEtBQUs7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sWUFBWSxDQUFDLGdCQUF1QyxFQUFFLEtBQVc7UUFDdkUsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO1lBQ2hDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1lBQ2pELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUVGLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUM5RCxPQUFPO29CQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSztvQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtvQkFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNsQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxvQkFBb0IsQ0FBQyxnQkFBdUM7UUFDbEUsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxlQUFlO1lBQ3pDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1lBQ2pELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLFNBQVMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7U0FDNUIsQ0FBQztRQUNGLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUM5RCxPQUFPO29CQUNMLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSztvQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZO29CQUN6QixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtvQkFDOUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNsQixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxnQkFBZ0IsQ0FBQyxnQkFBdUM7UUFDOUQsSUFBSSxNQUFNLEdBQXlCO1lBQ2pDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxXQUFXO1lBQ3JDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1lBQ2pELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sb0JBQW9CLENBQUMsZ0JBQXVDO1FBQ2xFLElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsZ0JBQWdCO1lBQzFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO1lBQ3pCLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1lBQ2pELEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQzdCLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTO1lBQ3JDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRO1lBQ25DLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxhQUFhO1lBQzdDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO1NBQzVCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ08sV0FBVyxDQUFDLGdCQUF1QztRQUN6RCxJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUs7WUFDL0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7U0FDcEMsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxZQUFZLENBQUMsTUFBeUM7UUFDNUQsSUFBSSxRQUFRLEdBQVEsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQ3hDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQ2xFLENBQUM7UUFDRixJQUFJLE1BQU0sR0FBeUI7WUFDakMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07WUFDaEMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxHQUFJO1lBQ2xDLGVBQWUsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsZUFBZTtZQUN6RCxLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEtBQU07WUFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTO1lBQzdDLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsUUFBUTtZQUMzQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGNBQWU7WUFDaEMsUUFBUTtZQUNSLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxtQkFBb0IsQ0FBQyxRQUFRLENBQUM7U0FDMUQsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDTyxhQUFhLENBQUMsZ0JBQXVDO1FBQzNELElBQUksTUFBTSxHQUF5QjtZQUNqQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsT0FBTztZQUNqQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsR0FBRztZQUN6QixlQUFlLEVBQUUsZ0JBQWdCLENBQUMsZUFBZTtZQUNqRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtTQUNwQyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNPLGtCQUFrQixDQUFDLGdCQUFtQztRQUM1RCxJQUFJLE1BQU0sR0FBc0I7WUFDOUIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLGFBQWE7WUFDdkMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLEdBQUc7WUFDekIsZUFBZSxFQUFFLGdCQUFnQixDQUFDLGVBQWU7WUFDakQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7WUFDN0IsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7WUFDckMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLGNBQWM7U0FDaEQsQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OzZIQXRiVSxnQ0FBZ0M7aUlBQWhDLGdDQUFnQyxjQUYvQixNQUFNOzJGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiwgU21hcnRGb3JtV2lkZ2V0VHlwZSwgU21hcnRXaWRnZXREZWZpbml0aW9uIH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXIsIFNtYXJ0Rm9ybVdpZGdldCB9IGZyb20gJy4uL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsJztcclxuaW1wb3J0IHsgVmFsdWUgfSBmcm9tICcuLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcge1xyXG4gIGxheW91dERlZmluaXRpb25zPzogU21hcnRXaWRnZXREZWZpbml0aW9uW107XHJcbiAgbGF5b3V0RGVmaW5pdGlvbj86IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbjtcclxuICB1cGxvYWRDYWxsYmFjaz86IChrZXk6IHN0cmluZywgZmlsZXM6IGFueVtdKSA9PiB2b2lkO1xyXG4gIGJ1dHRvbkNhbGxiYWNrPzogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG4gIHVpQWN0aW9ucz86IGFueVtdO1xyXG4gIHVpQWN0aW9uRGVzY3JpcHRvcnM/OiAodWlBY3Rpb246IGFueSkgPT4gYW55O1xyXG4gIG1vZGVsPzogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgcHVibGljIHJlbmRlcihjb25maWc6IFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10ge1xyXG4gICAgbGV0IHdpZGdldHM6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+W10gPSBbXTtcclxuXHJcbiAgICBjb25maWcubGF5b3V0RGVmaW5pdGlvbnM/LmZvckVhY2goKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbikgPT4ge1xyXG4gICAgICBsZXQgd2lkZ2V0ID0gdGhpcy5jcmVhdGVXaWRnZXQoe1xyXG4gICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICBsYXlvdXREZWZpbml0aW9uLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHdpZGdldCkge1xyXG4gICAgICAgIHdpZGdldHMucHVzaCh3aWRnZXQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gd2lkZ2V0cztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV2lkZ2V0KFxyXG4gICAgY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWdcclxuICApOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB8IHVuZGVmaW5lZCB7XHJcbiAgICBzd2l0Y2ggKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy50eXBlKSB7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29udGFpbmVyKGNvbmZpZywgY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUw6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTGFiZWwoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUzpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGRDaGlwcyhjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX05VTUJFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGROdW1iZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0RmllbGQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9CT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEJveChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVG9nZ2xlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSYWRpb0J1dHRvbihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5DSEVDS19CT1g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ2hlY2tCb3goY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNlbGVjdChjb25maWcubGF5b3V0RGVmaW5pdGlvbiwgY29uZmlnLm1vZGVsKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVF9NVUxUSVBMRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTZWxlY3RNdWx0aXBsZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlUGlja2VyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGF0ZVRpbWVQaWNrZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU1BR0U6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlSW1hZ2UoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUJ1dHRvbihjb25maWcpO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEaXZpZGVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSaWNoVGV4dChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5GSUxFX1VQTE9BREVSOlxyXG4gICAgICAgIGlmICghKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uIGFzIFNtYXJ0RmlsZVVwbG9hZGVyKS51cGxvYWRDYWxsYmFjaykge1xyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ05vIHVwbG9hZCBmdW5jdGlvbiBpbmplY3RlZC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRmlsZVVwbG9hZGVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uIGFzIFNtYXJ0RmlsZVVwbG9hZGVyKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLk1BVFJJWDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNYXRyaXgoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU09SVEFCTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU29ydGFibGUoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vbnRoUGlja2VyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTW9udGhQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNYXRyaXgobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTUFUUklYLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgLy9UT0RPIHNldCBpc011bHRpcGxlIHZhcmlhYmxlIGZyb20gbGF5b3V0RGVmaW5pdGlvblxyXG4gICAgICBpc011bHRpcGxlOiBmYWxzZSxcclxuICAgICAgdmFsdWU6IGxheW91dERlZmluaXRpb24ubWF0cml4LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVNvcnRhYmxlKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbikge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxhYmVsKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgd2lkZ2V0RGVzY3JpcHRpb246IGxheW91dERlZmluaXRpb24ud2lkZ2V0RGVzY3JpcHRpb24sXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29udGFpbmVyKFxyXG4gICAgY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcsXHJcbiAgICBsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb25cclxuICApOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgdmFsdWVMaXN0OiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XHJcblxyXG4gICAgbGF5b3V0RGVmaW5pdGlvbi5jaGlsZHJlbkNvbXBvbmVudHM/LmZvckVhY2goKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbikgPT4ge1xyXG4gICAgICBsZXQgd2lkZ2V0ID0gdGhpcy5jcmVhdGVXaWRnZXQoe1xyXG4gICAgICAgIC4uLmNvbmZpZyxcclxuICAgICAgICBsYXlvdXREZWZpbml0aW9uLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHdpZGdldCkge1xyXG4gICAgICAgIHZhbHVlTGlzdC5wdXNoKHdpZGdldCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTlRBSU5FUixcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGRpcmVjdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5kaXJlY3Rpb24gPz8gU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLkNPTCxcclxuICAgICAgdmFsdWVMaXN0LFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGQobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBwcmVmaXg6IGxheW91dERlZmluaXRpb24ucHJlZml4LFxyXG4gICAgICBzdWZmaXg6IGxheW91dERlZmluaXRpb24uc3VmZml4LFxyXG4gICAgICBtYXNrOiBsYXlvdXREZWZpbml0aW9uLm1hc2ssXHJcbiAgICAgIGljb246IGxheW91dERlZmluaXRpb24uaWNvbixcclxuICAgICAgaWNvbkNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmljb25Db2xvcixcclxuICAgICAgaWNvblBvc2l0aW9uOiBsYXlvdXREZWZpbml0aW9uLmljb25Qb3NpdGlvbixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgaXNQYXNzd29yZDogbGF5b3V0RGVmaW5pdGlvbi5pc1Bhc3N3b3JkLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIG1heExlbmd0aDogbGF5b3V0RGVmaW5pdGlvbi5tYXhMZW5ndGgsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGRDaGlwcyhsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0NISVBTLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHZhbHVlTGlzdDogW10sXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZS5jb2RlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGROdW1iZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgcHJlZml4OiBsYXlvdXREZWZpbml0aW9uLnByZWZpeCxcclxuICAgICAgc3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnN1ZmZpeCxcclxuICAgICAgaWNvbjogbGF5b3V0RGVmaW5pdGlvbi5pY29uLFxyXG4gICAgICBpY29uQ29sb3I6IGxheW91dERlZmluaXRpb24uaWNvbkNvbG9yLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0Qm94KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVJpY2hUZXh0KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBxdWlsbE1vZHVsZXM6IHtcclxuICAgICAgICB0b29sYmFyOiB7XHJcbiAgICAgICAgICBjb250YWluZXI6IFtcclxuICAgICAgICAgICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnLCAnc3RyaWtlJywgJ2xpbmsnXSxcclxuICAgICAgICAgICAgWydjb2RlLWJsb2NrJ10sXHJcbiAgICAgICAgICAgIFt7IGhlYWRlcjogMSB9LCB7IGhlYWRlcjogMiB9XSxcclxuICAgICAgICAgICAgW3sgbGlzdDogJ29yZGVyZWQnIH0sIHsgbGlzdDogJ2J1bGxldCcgfV0sXHJcbiAgICAgICAgICAgIFsnY2xlYW4nXSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRvZ2dsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEUsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVSYWRpb0J1dHRvbihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5SQURJT19CVVRUT04sXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlQ2hlY2tCb3gobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YXzIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbiwgbW9kZWw/OiBhbnkpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0TXVsdGlwbGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUX01VTFRJUExFLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogdmFsdWUuY29kZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRGF0ZVBpY2tlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVUaW1lUGlja2VyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVJbWFnZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRSxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlQnV0dG9uKGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHVpQWN0aW9uOiBhbnkgPSBjb25maWcudWlBY3Rpb25zPy5maW5kKFxyXG4gICAgICAodWlBY3Rpb246IGFueSkgPT4gdWlBY3Rpb24uY29kZSA9PT0gY29uZmlnLmxheW91dERlZmluaXRpb24/LmtleVxyXG4gICAgKTtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTixcclxuICAgICAga2V5OiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ua2V5ISxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogY29uZmlnLmxheW91dERlZmluaXRpb24/LmxhYmVsISxcclxuICAgICAgc2hvd0xhYmVsOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogY29uZmlnLmxheW91dERlZmluaXRpb24/LmNzc0NsYXNzLFxyXG4gICAgICBjYWxsYmFjazogY29uZmlnLmJ1dHRvbkNhbGxiYWNrISxcclxuICAgICAgdWlBY3Rpb24sXHJcbiAgICAgIHVpQWN0aW9uRGVzY3JpcHRvcjogY29uZmlnLnVpQWN0aW9uRGVzY3JpcHRvcnMhKHVpQWN0aW9uKSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURpdmlkZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRmlsZVVwbG9hZGVyKGxheW91dERlZmluaXRpb246IFNtYXJ0RmlsZVVwbG9hZGVyKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGaWxlVXBsb2FkZXIgPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICB1cGxvYWRDYWxsYmFjazogbGF5b3V0RGVmaW5pdGlvbi51cGxvYWRDYWxsYmFjayxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGlvbkRlZmluaXRpb24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldFR5cGUsXHJcbiAgU21hcnRXaWRnZXRIaW50LFxyXG59IGZyb20gJy4vYXBpJztcclxuaW1wb3J0IHtcclxuICBTbWFydEZvcm1UZXh0RmllbGRCdXR0b24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0V2lkdGgsXHJcbiAgU21hcnRJbmRpY2F0b3IsXHJcbiAgU21hcnRWYWxpZGF0b3IsXHJcbiAgVG9nZ2xlTGFiZWxQb3NpdGlvbixcclxufSBmcm9tICcuL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFNtYXJ0Rm9ybVdpZGdldDxUPiA9XHJcbiAgfCBTbWFydFRleHRGaWVsZDxUPlxyXG4gIHwgU21hcnRUZXh0RmllbGROdW1iZXI8VD5cclxuICB8IFNtYXJ0VGV4dEZpZWxkQ2hpcHM8VD5cclxuICB8IFNtYXJ0VGV4dEJveDxUPlxyXG4gIHwgU21hcnRTZWxlY3Q8VD5cclxuICB8IFNtYXJ0U2VsZWN0TXVsdGlwbGU8VD5cclxuICB8IFNtYXJ0Q2hlY2tCb3g8VD5cclxuICB8IFNtYXJ0Q2hlY2tCb3gyPFQ+XHJcbiAgfCBTbWFydFJhZGlvQnV0dG9uPFQ+XHJcbiAgfCBTbWFydERhdGVQaWNrZXI8VD5cclxuICB8IFNtYXJ0RGF0ZVRpbWVQaWNrZXI8VD5cclxuICB8IFNtYXJ0Q29udGFpbmVyPFQ+XHJcbiAgfCBTbWFydExhYmVsXHJcbiAgfCBTbWFydFRpbWU8VD5cclxuICB8IFNtYXJ0VG9nZ2xlPFQ+XHJcbiAgfCBTbWFydEluZGljYXRvckl0ZW1cclxuICB8IFNtYXJ0RmlsZVVwbG9hZGVyXHJcbiAgfCBTbWFydEltYWdlXHJcbiAgfCBTbWFydERpdmlkZXJcclxuICB8IFNtYXJ0QnV0dG9uXHJcbiAgfCBTbWFydEZvcm1JbmxpbmVDb21wb25lbnRcclxuICB8IFNtYXJ0UmljaFRleHRcclxuICB8IFNtYXJ0U29ydGFibGU8VD5cclxuICB8IFNtYXJ0TWF0cml4XHJcbiAgfCBTbWFydFlvdXR1YmVQbGF5ZXJcclxuICB8IFNtYXJ0TW9udGhQaWNrZXI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlciB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNQYXNzd29yZD86IGJvb2xlYW47XHJcbiAgdGV4dEZpZWxkQnV0dG9uPzogU21hcnRGb3JtVGV4dEZpZWxkQnV0dG9uO1xyXG4gIGNhcHNMb2NrV2FybmluZz86IHN0cmluZztcclxuICBjYXBzTG9ja1dhcm5pbmdJY29uPzogc3RyaW5nO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgbWFzaz86IHN0cmluZztcclxuICBlcnJvcj86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGljb25Db2xvcj86IHN0cmluZztcclxuICBpY29uUG9zaXRpb24/OiAnUFJFJyB8ICdQT1NUJztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0PzogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkTnVtYmVyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHRleHRGaWVsZEJ1dHRvbj86IFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0RmllbGRDaGlwczxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0NISVBTO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEJveDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0U2VsZWN0PFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVDtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtczxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBjb21wYXJlV2l0aD86IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTZWxlY3RNdWx0aXBsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEU7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbXM8VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgY29tcGFyZVdpdGg/OiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q2hlY2tCb3g8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGRpcmVjdGlvbj86IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDaGVja0JveDI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YXzI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJhZGlvQnV0dG9uPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTjtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGF0ZVBpY2tlcjxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUjtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGRhdGVGb3JtYXRIaW50Pzogc3RyaW5nO1xyXG4gIG1pbkRhdGU/OiBEYXRlO1xyXG4gIG1heERhdGU/OiBEYXRlO1xyXG4gIGZpbHRlcj86IChkOiBEYXRlIHwgbnVsbCkgPT4gYm9vbGVhbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREYXRlVGltZVBpY2tlcjxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1RJTUVfUElDS0VSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgZGF0ZUZvcm1hdEhpbnQ/OiBzdHJpbmc7XHJcbiAgZmlsdGVyPzogKGQ6IERhdGUgfCBudWxsKSA9PiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENvbnRhaW5lcjxUPiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgdmFsdWVMaXN0OiBTbWFydEZvcm1XaWRnZXQ8VD5bXTtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydExhYmVsIHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5MQUJFTDtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICB3aWRnZXREZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIG1hcmtBc1JlcXVpcmVkPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGltZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5USU1FO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VG9nZ2xlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRPR0dMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHRvZ2dsZUxhYmVsUG9zaXRpb24/OiBUb2dnbGVMYWJlbFBvc2l0aW9uO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJbmRpY2F0b3JJdGVtIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklORElDQVRPUjtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpbmRpY2F0b3I6IFNtYXJ0SW5kaWNhdG9yO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgU21hcnRJdGVtczxUPiA9IFNtYXJ0SXRlbTxUPiB8IFNtYXJ0SXRlbUdyb3VwPFQ+O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEl0ZW08VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTTtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGltYWdlVXJsPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJdGVtR3JvdXA8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTV9HUk9VUDtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEZpbGVVcGxvYWRlciB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5GSUxFX1VQTE9BREVSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgdXBsb2FkQ2FsbGJhY2s6IChrZXk6IHN0cmluZywgZmlsZXM6IGFueVtdKSA9PiB2b2lkO1xyXG4gIGZpbGVGb3JtYXRzPzogc3RyaW5nW107XHJcbiAgbWF4U2l6ZU1iPzogbnVtYmVyO1xyXG4gIGkxOG4/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJbWFnZSB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRTtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIGltYWdlQ3NzPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGl2aWRlciB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRCdXR0b24ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgdWlBY3Rpb24/OiBhbnk7XHJcbiAgdWlBY3Rpb25EZXNjcmlwdG9yOiBhbnk7XHJcbiAgY2FsbGJhY2s6ICgodWlBY3Rpb246IGFueSkgPT4gdm9pZCkgfCAoKGtleTogc3RyaW5nKSA9PiB2b2lkKTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Rm9ybUlubGluZUNvbXBvbmVudCB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DT01QT05FTlQ7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjb21wb25lbnQ6IGFueTtcclxuICBpbnB1dDogTWFwPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJpY2hUZXh0IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVDtcclxuICBrZXk6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBxdWlsbE1vZHVsZXM6IFF1aWxsTW9kdWxlcztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNvcnRhYmxlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgdmFsdWVMaXN0PzogU21hcnRJdGVtPFQ+W107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1hdHJpeCB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVg7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IGFueTtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGJ1dHRvbj86IFNtYXJ0TWF0cml4QnV0dG9uO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TWF0cml4QnV0dG9uIHtcclxuICBpY29uQ29kZT86IHN0cmluZztcclxuICBjYWxsYmFjazogKHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4sIHJvdzogYW55KSA9PiBhbnk7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRZb3V0dWJlUGxheWVyIHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ZT1VUVUJFX1BMQVlFUjtcclxuICBsaW5rPzogc3RyaW5nO1xyXG4gIHZpZGVvSWQ/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIHN0YXJ0U2Vjb25kcz86IG51bWJlciB8IDA7XHJcbiAgZW5kU2Vjb25kcz86IG51bWJlcjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1vbnRoUGlja2VyIHtcclxuICBrZXk6IHN0cmluZztcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGlvbkRlZmluaXRpb24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldFR5cGUsXHJcbiAgU21hcnRXaWRnZXRIaW50LFxyXG4gIFZhbHVlQ2hhbmdlTW9kZSxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRGb3JtVGV4dEZpZWxkQnV0dG9uLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldFdpZHRoLFxyXG4gIFNtYXJ0SW5kaWNhdG9yLFxyXG4gIFNtYXJ0VmFsaWRhdG9yLFxyXG4gIFRvZ2dsZUxhYmVsUG9zaXRpb24sXHJcbn0gZnJvbSAnLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEZvcm1XaWRnZXQ8VD4gPVxyXG4gIHwgU21hcnRUZXh0RmllbGQ8VD5cclxuICB8IFNtYXJ0VGV4dEZpZWxkTnVtYmVyPFQ+XHJcbiAgfCBTbWFydFRleHRGaWVsZENoaXBzPFQ+XHJcbiAgfCBTbWFydFRleHRCb3g8VD5cclxuICB8IFNtYXJ0U2VsZWN0PFQ+XHJcbiAgfCBTbWFydFNlbGVjdE11bHRpcGxlPFQ+XHJcbiAgfCBTbWFydENoZWNrQm94PFQ+XHJcbiAgfCBTbWFydENoZWNrQm94MjxUPlxyXG4gIHwgU21hcnRSYWRpb0J1dHRvbjxUPlxyXG4gIHwgU21hcnREYXRlUGlja2VyPFQ+XHJcbiAgfCBTbWFydERhdGVUaW1lUGlja2VyPFQ+XHJcbiAgfCBTbWFydENvbnRhaW5lcjxUPlxyXG4gIHwgU21hcnRMYWJlbFxyXG4gIHwgU21hcnRUaW1lPFQ+XHJcbiAgfCBTbWFydFRvZ2dsZTxUPlxyXG4gIHwgU21hcnRJbmRpY2F0b3JJdGVtXHJcbiAgfCBTbWFydEZpbGVVcGxvYWRlclxyXG4gIHwgU21hcnRJbWFnZVxyXG4gIHwgU21hcnREaXZpZGVyXHJcbiAgfCBTbWFydEJ1dHRvblxyXG4gIHwgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50XHJcbiAgfCBTbWFydFJpY2hUZXh0XHJcbiAgfCBTbWFydFNvcnRhYmxlPFQ+XHJcbiAgfCBTbWFydE1hdHJpeFxyXG4gIHwgU21hcnRZb3V0dWJlUGxheWVyXHJcbiAgfCBTbWFydE1vbnRoUGlja2VyO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHByZWZpeD86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Bhc3N3b3JkPzogYm9vbGVhbjtcclxuICB0ZXh0RmllbGRCdXR0b24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b247XHJcbiAgY2Fwc0xvY2tXYXJuaW5nPzogc3RyaW5nO1xyXG4gIGNhcHNMb2NrV2FybmluZ0ljb24/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBtYXNrPzogc3RyaW5nO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGljb25Qb3NpdGlvbj86ICdQUkUnIHwgJ1BPU1QnO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q/OiBTbWFydEl0ZW08VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0RmllbGROdW1iZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHRleHRGaWVsZEJ1dHRvbj86IFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0RmllbGRDaGlwczxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0NISVBTO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRCb3g8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9CT1g7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIG1heExlbmd0aD86IG51bWJlcjtcclxuICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTZWxlY3Q8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtczxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBjb21wYXJlV2l0aD86IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTZWxlY3RNdWx0aXBsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEU7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW1zPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGNvbXBhcmVXaXRoPzogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENoZWNrQm94PFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENoZWNrQm94MjxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DSEVDS19CT1hfMjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJhZGlvQnV0dG9uPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydERhdGVQaWNrZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgZGF0ZUZvcm1hdEhpbnQ/OiBzdHJpbmc7XHJcbiAgbWluRGF0ZT86IERhdGU7XHJcbiAgbWF4RGF0ZT86IERhdGU7XHJcbiAgZmlsdGVyPzogKGQ6IERhdGUgfCBudWxsKSA9PiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydERhdGVUaW1lUGlja2VyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgZGF0ZUZvcm1hdEhpbnQ/OiBzdHJpbmc7XHJcbiAgZmlsdGVyPzogKGQ6IERhdGUgfCBudWxsKSA9PiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENvbnRhaW5lcjxUPiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTlRBSU5FUjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIHZhbHVlTGlzdDogU21hcnRGb3JtV2lkZ2V0PFQ+W107XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRMYWJlbCB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHdpZGdldERlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgbWFya0FzUmVxdWlyZWQ/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUaW1lPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRJTUU7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VG9nZ2xlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRPR0dMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB0b2dnbGVMYWJlbFBvc2l0aW9uPzogVG9nZ2xlTGFiZWxQb3NpdGlvbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SW5kaWNhdG9ySXRlbSB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JTkRJQ0FUT1I7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGluZGljYXRvcjogU21hcnRJbmRpY2F0b3I7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEl0ZW1zPFQ+ID0gU21hcnRJdGVtPFQ+IHwgU21hcnRJdGVtR3JvdXA8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SXRlbTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGltYWdlVXJsPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRJdGVtR3JvdXA8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTV9HUk9VUDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGaWxlVXBsb2FkZXIge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICB1cGxvYWRDYWxsYmFjazogKGtleTogc3RyaW5nLCBmaWxlczogYW55W10pID0+IHZvaWQ7XHJcbiAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXTtcclxuICBtYXhTaXplTWI/OiBudW1iZXI7XHJcbiAgaTE4bj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEltYWdlIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIGltYWdlQ3NzPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGl2aWRlciB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0QnV0dG9uIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB1aUFjdGlvbj86IGFueTtcclxuICB1aUFjdGlvbkRlc2NyaXB0b3I6IGFueTtcclxuICBjYWxsYmFjazogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTVBPTkVOVDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjb21wb25lbnQ6IGFueTtcclxuICBpbnB1dDogTWFwPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJpY2hUZXh0IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgcXVpbGxNb2R1bGVzOiBRdWlsbE1vZHVsZXM7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTb3J0YWJsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICB2YWx1ZUxpc3Q/OiBTbWFydEl0ZW08VD5bXTtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TWF0cml4IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1BVFJJWDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IGFueTtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGJ1dHRvbj86IFNtYXJ0TWF0cml4QnV0dG9uO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TWF0cml4QnV0dG9uIHtcclxuICBpY29uQ29kZT86IHN0cmluZztcclxuICBjYWxsYmFjazogKHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4sIHJvdzogYW55KSA9PiBhbnk7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRZb3V0dWJlUGxheWVyIHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuWU9VVFVCRV9QTEFZRVI7XHJcbiAgbGluaz86IHN0cmluZztcclxuICB2aWRlb0lkPzogc3RyaW5nO1xyXG4gIGhlaWdodD86IG51bWJlcjtcclxuICB3aWR0aD86IG51bWJlcjtcclxuICBzdGFydFNlY29uZHM/OiBudW1iZXIgfCAwO1xyXG4gIGVuZFNlY29uZHM/OiBudW1iZXI7XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBsYWJlbD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNb250aFBpY2tlciB7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuIl19