@seniorsistemas/angular-components 17.9.5 → 17.9.6

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 (107) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +371 -136
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/custom-fields/custom-fields.component.d.ts +1 -0
  6. package/components/dynamic-form/components/dynamic-field/dynamic-field.component.d.ts +0 -1
  7. package/components/dynamic-form/components/field-label/field-label.component.d.ts +6 -0
  8. package/components/dynamic-form/components/field-label/field-label.module.d.ts +2 -0
  9. package/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.d.ts +7 -0
  10. package/components/dynamic-form/components/fields/bignumber/bignumber-field.component.d.ts +5 -2
  11. package/components/dynamic-form/components/fields/calendar/calendar-field.component.d.ts +9 -2
  12. package/components/dynamic-form/components/fields/chips/chips-field.component.d.ts +7 -1
  13. package/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.d.ts +7 -0
  14. package/components/dynamic-form/components/fields/currency/currency-field.component.d.ts +6 -3
  15. package/components/dynamic-form/components/fields/file-upload/file-upload.component.d.ts +10 -0
  16. package/components/dynamic-form/components/fields/number/number-field.component.d.ts +7 -2
  17. package/components/dynamic-form/components/fields/password/password-field.component.d.ts +6 -2
  18. package/components/dynamic-form/components/fields/text/text-field.component.d.ts +6 -2
  19. package/components/dynamic-form/components/fields/text-area/text-area-field.component.d.ts +5 -0
  20. package/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.d.ts +2 -1
  21. package/components/dynamic-form/configurations/fields/field.d.ts +2 -0
  22. package/components/dynamic-form/configurations/form-field.d.ts +1 -0
  23. package/components/dynamic-form/dynamic-form.component.d.ts +0 -1
  24. package/components/dynamic-form/dynamic-form.directive.d.ts +0 -1
  25. package/components/info-sign/info-sign.directive.d.ts +4 -2
  26. package/components/tooltip/tooltip.directive.d.ts +1 -0
  27. package/esm2015/components/custom-fields/custom-fields.component.js +8 -2
  28. package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -5
  29. package/esm2015/components/dynamic-form/components/field-label/field-label.component.js +24 -0
  30. package/esm2015/components/dynamic-form/components/field-label/field-label.module.js +19 -0
  31. package/esm2015/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +18 -3
  32. package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +13 -5
  33. package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +3 -1
  34. package/esm2015/components/dynamic-form/components/fields/boolean/boolean-field.component.js +2 -2
  35. package/esm2015/components/dynamic-form/components/fields/calendar/calendar-field.component.js +19 -5
  36. package/esm2015/components/dynamic-form/components/fields/chips/chips-field.component.js +16 -5
  37. package/esm2015/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +18 -3
  38. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.component.js +14 -6
  39. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.module.js +12 -2
  40. package/esm2015/components/dynamic-form/components/fields/file-upload/file-upload.component.js +36 -3
  41. package/esm2015/components/dynamic-form/components/fields/lookup/lookup-field.component.js +2 -2
  42. package/esm2015/components/dynamic-form/components/fields/number/number-field.component.js +17 -5
  43. package/esm2015/components/dynamic-form/components/fields/number/number-field.module.js +3 -1
  44. package/esm2015/components/dynamic-form/components/fields/password/password-field.component.js +14 -4
  45. package/esm2015/components/dynamic-form/components/fields/password/password-field.module.js +3 -1
  46. package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +2 -2
  47. package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +3 -1
  48. package/esm2015/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +2 -2
  49. package/esm2015/components/dynamic-form/components/fields/select/select-field.component.js +2 -2
  50. package/esm2015/components/dynamic-form/components/fields/slider/slider-field.component.js +2 -2
  51. package/esm2015/components/dynamic-form/components/fields/text/text-field.component.js +15 -5
  52. package/esm2015/components/dynamic-form/components/fields/text/text-field.module.js +3 -1
  53. package/esm2015/components/dynamic-form/components/fields/text-area/text-area-field.component.js +15 -3
  54. package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +6 -3
  55. package/esm2015/components/dynamic-form/components/grid/row/row.component.js +1 -9
  56. package/esm2015/components/dynamic-form/configurations/fields/field.js +2 -1
  57. package/esm2015/components/dynamic-form/configurations/form-field.js +1 -1
  58. package/esm2015/components/dynamic-form/dynamic-form.component.js +2 -5
  59. package/esm2015/components/dynamic-form/dynamic-form.directive.js +1 -4
  60. package/esm2015/components/dynamic-form/dynamic-form.module.js +3 -1
  61. package/esm2015/components/info-sign/info-sign.directive.js +14 -8
  62. package/esm2015/components/tooltip/tooltip.directive.js +33 -2
  63. package/esm2015/seniorsistemas-angular-components.js +76 -73
  64. package/esm5/components/custom-fields/custom-fields.component.js +9 -2
  65. package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -5
  66. package/esm5/components/dynamic-form/components/field-label/field-label.component.js +25 -0
  67. package/esm5/components/dynamic-form/components/field-label/field-label.module.js +22 -0
  68. package/esm5/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +17 -4
  69. package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +13 -5
  70. package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +3 -1
  71. package/esm5/components/dynamic-form/components/fields/boolean/boolean-field.component.js +2 -2
  72. package/esm5/components/dynamic-form/components/fields/calendar/calendar-field.component.js +19 -5
  73. package/esm5/components/dynamic-form/components/fields/chips/chips-field.component.js +16 -5
  74. package/esm5/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +17 -4
  75. package/esm5/components/dynamic-form/components/fields/currency/currency-field.component.js +14 -6
  76. package/esm5/components/dynamic-form/components/fields/currency/currency-field.module.js +12 -2
  77. package/esm5/components/dynamic-form/components/fields/file-upload/file-upload.component.js +37 -5
  78. package/esm5/components/dynamic-form/components/fields/lookup/lookup-field.component.js +2 -2
  79. package/esm5/components/dynamic-form/components/fields/number/number-field.component.js +17 -5
  80. package/esm5/components/dynamic-form/components/fields/number/number-field.module.js +3 -1
  81. package/esm5/components/dynamic-form/components/fields/password/password-field.component.js +14 -4
  82. package/esm5/components/dynamic-form/components/fields/password/password-field.module.js +3 -1
  83. package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +2 -2
  84. package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +3 -1
  85. package/esm5/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +2 -2
  86. package/esm5/components/dynamic-form/components/fields/select/select-field.component.js +2 -2
  87. package/esm5/components/dynamic-form/components/fields/slider/slider-field.component.js +2 -2
  88. package/esm5/components/dynamic-form/components/fields/text/text-field.component.js +15 -5
  89. package/esm5/components/dynamic-form/components/fields/text/text-field.module.js +3 -1
  90. package/esm5/components/dynamic-form/components/fields/text-area/text-area-field.component.js +14 -4
  91. package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +6 -3
  92. package/esm5/components/dynamic-form/components/grid/row/row.component.js +2 -2
  93. package/esm5/components/dynamic-form/configurations/fields/field.js +2 -1
  94. package/esm5/components/dynamic-form/configurations/form-field.js +1 -1
  95. package/esm5/components/dynamic-form/dynamic-form.component.js +2 -5
  96. package/esm5/components/dynamic-form/dynamic-form.directive.js +1 -4
  97. package/esm5/components/dynamic-form/dynamic-form.module.js +3 -1
  98. package/esm5/components/info-sign/info-sign.directive.js +14 -8
  99. package/esm5/components/tooltip/tooltip.directive.js +40 -8
  100. package/esm5/seniorsistemas-angular-components.js +76 -73
  101. package/fesm2015/seniorsistemas-angular-components.js +287 -62
  102. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  103. package/fesm5/seniorsistemas-angular-components.js +298 -66
  104. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  105. package/package.json +1 -1
  106. package/seniorsistemas-angular-components.d.ts +75 -72
  107. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -54,13 +54,14 @@ var TooltipDirective = /** @class */ (function () {
54
54
  TooltipDirective.prototype.updateTooltipVisibilityWhenFocusOnInput = function () {
55
55
  var _this = this;
56
56
  if (this.focusedInputRef) {
57
+ var inputFocus = this.focusedInputRef;
57
58
  var icon_1 = this.getIconFromFocusedInput();
58
59
  this.renderer.listen(this.focusedInputRef, 'focus', function () {
59
60
  if (icon_1 && _this.isMatchingTooltip(icon_1)) {
60
61
  _this.createTootipByFocus(icon_1);
61
62
  }
62
63
  });
63
- this.renderer.listen(this.focusedInputRef, 'blur', function () {
64
+ this.renderer.listen(inputFocus, 'blur', function () {
64
65
  if (icon_1 && _this.isMatchingTooltip(icon_1)) {
65
66
  _this.removeTooltip(icon_1);
66
67
  _this.destroy();
@@ -180,6 +181,7 @@ var TooltipDirective = /** @class */ (function () {
180
181
  * @param icon O ícone do input em focus.
181
182
  */
182
183
  TooltipDirective.prototype.createTootipByFocus = function (icon) {
184
+ var _this = this;
183
185
  var _a;
184
186
  if (this.componentRef === null && ((_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.length)) {
185
187
  var domElem = this.getDomElement();
@@ -187,6 +189,36 @@ var TooltipDirective = /** @class */ (function () {
187
189
  icon.appendChild(tooltip_1);
188
190
  this.setTooltipComponentProperties();
189
191
  setTimeout(function () { return tooltip_1.classList.add("tooltip--visible"); }, 0);
192
+ this.renderer.listen(window, 'scroll', function () {
193
+ _this.updateTooltipPosition();
194
+ });
195
+ }
196
+ };
197
+ TooltipDirective.prototype.updateTooltipPosition = function () {
198
+ if (this.componentRef) {
199
+ var _a = this.elementRef.nativeElement.getBoundingClientRect(), left = _a.left, right = _a.right, top_1 = _a.top, bottom = _a.bottom;
200
+ var tooltipWidth = right - left;
201
+ var tooltipHeight = bottom - top_1;
202
+ switch (this.position) {
203
+ case TooltipPosition.Top:
204
+ this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);
205
+ this.componentRef.instance.top = Math.round(top_1 - 20 - 5);
206
+ break;
207
+ case TooltipPosition.Bottom:
208
+ this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);
209
+ this.componentRef.instance.top = Math.round(bottom + 20);
210
+ break;
211
+ case TooltipPosition.Left:
212
+ this.componentRef.instance.left = Math.round(left - 20);
213
+ this.componentRef.instance.top = Math.round(top_1 + tooltipHeight / 2 - 5);
214
+ break;
215
+ case TooltipPosition.Right:
216
+ this.componentRef.instance.left = Math.round(right + 20);
217
+ this.componentRef.instance.top = Math.round(top_1 + tooltipHeight / 2 - 5);
218
+ break;
219
+ default:
220
+ break;
221
+ }
190
222
  }
191
223
  };
192
224
  TooltipDirective.prototype.showTooltip = function () {
@@ -201,8 +233,8 @@ var TooltipDirective = /** @class */ (function () {
201
233
  if (this.componentRef !== null) {
202
234
  this.componentRef.instance.tooltip = this.tooltip;
203
235
  this.componentRef.instance.escape = this.escape;
204
- var _a = this.elementRef.nativeElement.getBoundingClientRect(), left = _a.left, right = _a.right, top_1 = _a.top, bottom = _a.bottom;
205
- var tooltipHeight = bottom - top_1;
236
+ var _a = this.elementRef.nativeElement.getBoundingClientRect(), left = _a.left, right = _a.right, top_2 = _a.top, bottom = _a.bottom;
237
+ var tooltipHeight = bottom - top_2;
206
238
  var tooltipWidth = right - left;
207
239
  var safeSpace = 150;
208
240
  var positioned = false;
@@ -221,7 +253,7 @@ var TooltipDirective = /** @class */ (function () {
221
253
  this.position = TooltipPosition.Left;
222
254
  break;
223
255
  }
224
- var topShift = top_1;
256
+ var topShift = top_2;
225
257
  if (topShift <= tooltipHeight + safeSpace) {
226
258
  this.position = TooltipPosition.Bottom;
227
259
  invalidOptions.push(TooltipPosition.Top);
@@ -229,7 +261,7 @@ var TooltipDirective = /** @class */ (function () {
229
261
  break;
230
262
  }
231
263
  this.componentRef.instance.left = Math.round(tooltipWidth / 2 + left);
232
- this.componentRef.instance.top = Math.round(top_1 - margin - anchorSize);
264
+ this.componentRef.instance.top = Math.round(top_2 - margin - anchorSize);
233
265
  positioned = true;
234
266
  break;
235
267
  }
@@ -262,7 +294,7 @@ var TooltipDirective = /** @class */ (function () {
262
294
  break;
263
295
  }
264
296
  this.componentRef.instance.left = Math.round(left - margin);
265
- this.componentRef.instance.top = Math.round(top_1 + tooltipHeight / 2 - anchorSize);
297
+ this.componentRef.instance.top = Math.round(top_2 + tooltipHeight / 2 - anchorSize);
266
298
  positioned = true;
267
299
  break;
268
300
  }
@@ -279,7 +311,7 @@ var TooltipDirective = /** @class */ (function () {
279
311
  break;
280
312
  }
281
313
  this.componentRef.instance.left = Math.round(right + margin);
282
- this.componentRef.instance.top = Math.round(top_1 + tooltipHeight / 2 - anchorSize);
314
+ this.componentRef.instance.top = Math.round(top_2 + tooltipHeight / 2 - anchorSize);
283
315
  positioned = true;
284
316
  break;
285
317
  }
@@ -370,4 +402,4 @@ var TooltipDirective = /** @class */ (function () {
370
402
  return TooltipDirective;
371
403
  }());
372
404
  export { TooltipDirective };
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osY0FBYyxFQUNkLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU12RDtJQW1DRywwQkFDb0IsVUFBc0IsRUFDdEIsTUFBc0IsRUFDdEIsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFFBQW1CO1FBTnZDLGlCQVVDO1FBVG1CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFwQ2hDLGFBQVEsR0FBb0IsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUdoRCxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBTWhCLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUdsQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YsWUFBTyxHQUFHLElBQUksQ0FBQztRQUdmLG1C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QUFDLFlBQVksQ0FBQzt3REFTMUI7SUFHRDtRQURDLFlBQVksQ0FBQyxVQUFVLENBQUM7c0RBUXhCO0lBck1TLGdCQUFnQjtRQUg1QixTQUFTLENBQUM7WUFDUixRQUFRLEVBQUUsWUFBWTtTQUN4QixDQUFDO09BQ1csZ0JBQWdCLENBbVk1QjtJQUFELHVCQUFDO0NBQUEsQUFuWUQsSUFtWUM7U0FuWVksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIEFwcGxpY2F0aW9uUmVmLFxuICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgQ29tcG9uZW50UmVmLFxuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEVtYmVkZGVkVmlld1JlZixcbiAgIEhvc3RMaXN0ZW5lcixcbiAgIEluamVjdG9yLFxuICAgSW5wdXQsXG4gICBPbkRlc3Ryb3ksXG4gICBPbkluaXQsXG4gICBSZW5kZXJlcjJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERlYm91bmNlVXRpbHMgfSBmcm9tIFwiLi4vdXRpbHMvZGVib3VjZVwiO1xuaW1wb3J0IHsgTW9iaWxlQmVoYXZpb3IsIFRvb2x0aXBFdmVudCwgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSBcIi4vdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEVsZW1lbnRBcmVhIH0gZnJvbSBcIi4vbW9kZWxzL2VsZW1lbnQtYXJlYVwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgIHNlbGVjdG9yOiBcIltzVG9vbHRpcF1cIixcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgIEBJbnB1dChcInNUb29sdGlwXCIpXG4gICBwdWJsaWMgdG9vbHRpcDogc3RyaW5nO1xuXG4gICBASW5wdXQoXCJ0b29sdGlwUG9zaXRpb25cIilcbiAgIHB1YmxpYyBwb3NpdGlvbjogVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBzaG93RGVsYXkgPSA1MDA7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZGlzcGxheVRpbWU6IG51bWJlcjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyB0b29sdGlwRXZlbnQgPSBUb29sdGlwRXZlbnQuSG92ZXI7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgZXNjYXBlID0gZmFsc2U7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgdmlzaWJsZSA9IHRydWU7XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgbW9iaWxlQmVoYXZpb3IgPSBNb2JpbGVCZWhhdmlvci5QcmVzc2luZztcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBmb2N1c2VkSW5wdXRSZWY6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XG4gICBwcml2YXRlIHNob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgcHJpdmF0ZSB0b3VjaFRpbWVvdXQ/OiBudW1iZXI7XG4gICBwcml2YXRlIHRvb2x0aXBEaXZFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kT25XaW5kb3dNb3VzZU1vdmVGdW5jdGlvbjogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgcHJpdmF0ZSByZWFkb25seSBkZWJvdW5jZUNyZWF0ZVRvb2x0aXBGdW5jdGlvbjogKCkgPT4gdm9pZDtcblxuICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlVXRpbHM6IERlYm91bmNlVXRpbHMsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICkge1xuICAgICAgdGhpcy5ib3VuZE9uV2luZG93TW91c2VNb3ZlRnVuY3Rpb24gPSB0aGlzLm9uV2luZG93TW91c2VNb3ZlLmJpbmQodGhpcyk7XG4gICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uID0gdGhpcy5kZWJvdW5jZVV0aWxzLmRlYm91bmNlTGVhZGluZygoKSA9PiB0aGlzLmNyZWF0ZVRvb3RpcCgpKTtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy52YWxpZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB0aGlzLnVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBvbldpbmRvd01vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvb2xUaXBSZWN0ID0gdGhpcy50b29sdGlwRGl2RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgY29uc3QgdG90YWxFbGVtZW50QXJlYSA9IHtcbiAgICAgICAgIHRvcDogTWF0aC5taW4oZWxlbWVudFJlY3QudG9wLCB0b29sVGlwUmVjdC50b3ApLFxuICAgICAgICAgcmlnaHQ6IE1hdGgubWF4KGVsZW1lbnRSZWN0LnJpZ2h0LCB0b29sVGlwUmVjdC5yaWdodCksXG4gICAgICAgICBsZWZ0OiBNYXRoLm1pbihlbGVtZW50UmVjdC5sZWZ0LCB0b29sVGlwUmVjdC5sZWZ0KSxcbiAgICAgICAgIGJvdHRvbTogTWF0aC5tYXgoZWxlbWVudFJlY3QuYm90dG9tLCB0b29sVGlwUmVjdC5ib3R0b20pXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5pc01vdXNlUG9zaXRpb25PdXRzaWRlT2ZFbGVtZW50KGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFksIHRvdGFsRWxlbWVudEFyZWEpKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBpc01vdXNlUG9zaXRpb25PdXRzaWRlT2ZFbGVtZW50KG1vdXNlWDogbnVtYmVyLCBtb3VzZVk6IG51bWJlciwgZWxlbWVudEFyZWE6IEVsZW1lbnRBcmVhKSB7XG4gICAgICByZXR1cm4gbW91c2VYIDwgZWxlbWVudEFyZWEubGVmdCB8fCBtb3VzZVggPj0gZWxlbWVudEFyZWEucmlnaHQgfHwgbW91c2VZIDwgZWxlbWVudEFyZWEudG9wIHx8IG1vdXNlWSA+PSBlbGVtZW50QXJlYS5ib3R0b207XG4gICB9XG5cbiAgIC8qKlxuICAgICogTWFuaXB1bGEgYSB2aXNpYmlsaWRhZGUgZG8gdG9vbHRpcCBxdWFuZG8gaG91dmVyIHVtYSByZWZlcsOqbmNpYSBkZSBpbnB1dC5cbiAgICAqL1xuICAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwVmlzaWJpbGl0eVdoZW5Gb2N1c09uSW5wdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRJbnB1dFJlZikge1xuICAgICAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMuZ2V0SWNvbkZyb21Gb2N1c2VkSW5wdXQoKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5mb2N1c2VkSW5wdXRSZWYsICdmb2N1cycsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbiAmJiB0aGlzLmlzTWF0Y2hpbmdUb29sdGlwKGljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vdGlwQnlGb2N1cyhpY29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZm9jdXNlZElucHV0UmVmLCAnYmx1cicsICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbiAmJiB0aGlzLmlzTWF0Y2hpbmdUb29sdGlwKGljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlVG9vbHRpcChpY29uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnTDqW0gbyBlbGVtZW50byBkbyDDrWNvbmUgYXNzb2NpYWRvIGFvIGxhYmVsIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqIEByZXR1cm5zIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0SWNvbkZyb21Gb2N1c2VkSW5wdXQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmVyaWZpY2Egc2UgbyDDrWNvbmUgdGVtIG8gdG9vbHRpcCBjb3JyZXNwb25kZW50ZSBhbyBhdHVhbC5cbiAgICAgKiBAcGFyYW0gaWNvbiBPIMOtY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAgKiBAcmV0dXJucyB0cnVlIHNlIG8gdG9vbHRpcCBjb3JyZXNwb25kZTsgY2FzbyBjb250csOhcmlvLCBmYWxzZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGlzTWF0Y2hpbmdUb29sdGlwKGljb246IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHRvb2x0aXBUZXh0ID0gaWNvbi5nZXRBdHRyaWJ1dGUoJ25nLXJlZmxlY3QtdG9vbHRpcCcpO1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwID09PSB0b29sdGlwVGV4dDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgbyB0b29sdGlwIGFzc29jaWFkbyBhbyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHBhcmFtIGljb24gTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZW1vdmVUb29sdGlwKGljb246IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvb2x0aXAgPSBpY29uLnF1ZXJ5U2VsZWN0b3IoJy50b29sdGlwJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICh0b29sdGlwKSB7XG4gICAgICAgICAgICB0b29sdGlwLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAvLyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHdpdGggdGhlIHRvb2x0aXAgaXMgY2xpY2tlZCBJIGRlc3Ryb3kgdGhlIHRvb2x0aXAuXG4gICAvLyB3aGVuZXZlciBhIGtleSBpcyBwcmVzc2VkIG9uIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgdG9vbHRpcCBJIGRlc3Ryb3kgdGhlIHRvb2x0aXAuXG4gICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcbiAgIEBIb3N0TGlzdGVuZXIoXCJrZXlkb3duXCIpXG4gICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyICYmXG4gICAgICAgICAhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvQW5kcm9pZC9pKSAmJlxuICAgICAgICAgIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL2lQaG9uZS9pKSkge1xuICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICB9XG5cbiAgIC8vIHdoZW5ldmVyIHlvdSB0b3VjaCBvdXRzaWRlIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgdG9vbHRpcCBJIGRlc3Ryb3kgdGhlIHRvb2x0aXAuXG4gICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6dG91Y2hzdGFydFwiKVxuICAgcHVibGljIG9uRG9jdW1lbnRUb3VjaFN0YXJ0KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwiZm9jdXNcIilcbiAgIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuRm9jdXMpIHtcbiAgICAgICAgIHRoaXMuY3JlYXRlVG9vdGlwKCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJibHVyXCIpXG4gICBwdWJsaWMgb25CbHVyKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuRm9jdXMpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwibW91c2VlbnRlclwiKVxuICAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyKSB7XG4gICAgICAgICB0aGlzLmRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uKCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIpXG4gICBASG9zdExpc3RlbmVyKFwid2hlZWxcIilcbiAgIHB1YmxpYyBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIpXG4gICBwdWJsaWMgb25Ub3VjaFN0YXJ0KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpO1xuICAgICAgICAgdGhpcy50b3VjaFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dChcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlVG9vdGlwLmJpbmQodGhpcyksXG4gICAgICAgICAgICB0aGlzLm1vYmlsZUJlaGF2aW9yID09PSBNb2JpbGVCZWhhdmlvci5QcmVzc2luZyA/IHRoaXMuc2hvd0RlbGF5IDogMFxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcInRvdWNoZW5kXCIpXG4gICBwdWJsaWMgb25Ub3VjaEVuZCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyKSB7XG4gICAgICAgICBpZiAodGhpcy5tb2JpbGVCZWhhdmlvciA9PT0gTW9iaWxlQmVoYXZpb3IuUHJlc3NpbmcpIHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgdmFsaWRhdGVQb3NpdGlvbigpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5zUG9zaXRpb24gPSBbXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uVG9wLFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLlJpZ2h0LFxuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLkJvdHRvbSxcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5MZWZ0LFxuICAgICAgXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKTtcblxuICAgICAgaWYgKCFjb250YWluc1Bvc2l0aW9uKSB7XG4gICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLlRvcDtcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVG9vbHRpcCAke3RoaXMucG9zaXRpb259IHBvc2l0aW9uIGlzIHVuZXhwZWN0ZWRgKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBjcmVhdGVUb290aXAoKSB7XG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT09IG51bGwgJiYgdGhpcy50b29sdGlwPy5sZW5ndGgpIHtcbiAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSB0aGlzLmdldERvbUVsZW1lbnQoKTtcbiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICAgICB0aGlzLnNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCk7XG4gICAgICAgICB0aGlzLnNob3dUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQodGhpcy5zaG93VG9vbHRpcC5iaW5kKHRoaXMpLCB0aGlzLnNob3dEZWxheSk7XG5cbiAgICAgICAgIHRoaXMudG9vbHRpcERpdkVsZW1lbnQgPSBkb21FbGVtLnF1ZXJ5U2VsZWN0b3IoJy50b29sdGlwJyk7XG5cbiAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlUaW1lKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCh0aGlzLmRlc3Ryb3kuYmluZCh0aGlzKSwgdGhpcy5kaXNwbGF5VGltZSk7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgZ2V0RG9tRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUb29sdGlwQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIHJldHVybiAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBDcmlhIHVtIHRvb2x0aXAgcGFyYSBvIGljb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICpcbiAgICAqIEBwYXJhbSBpY29uIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICovXG4gICBwcml2YXRlIGNyZWF0ZVRvb3RpcEJ5Rm9jdXMoaWNvbjogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmID09PSBudWxsICYmIHRoaXMudG9vbHRpcD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBkb21FbGVtID0gdGhpcy5nZXREb21FbGVtZW50KCk7XG4gICAgICAgICAgICBjb25zdCB0b29sdGlwID0gZG9tRWxlbS5xdWVyeVNlbGVjdG9yKCcudG9vbHRpcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgaWNvbi5hcHBlbmRDaGlsZCh0b29sdGlwKTtcbiAgICAgICAgICAgIHRoaXMuc2V0VG9vbHRpcENvbXBvbmVudFByb3BlcnRpZXMoKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0b29sdGlwLmNsYXNzTGlzdC5hZGQoXCJ0b29sdGlwLS12aXNpYmxlXCIpLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgcHJpdmF0ZSBzaG93VG9vbHRpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRoaXMudmlzaWJsZTtcblxuICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRPbldpbmRvd01vdXNlTW92ZUZ1bmN0aW9uKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBzZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpIHtcbiAgICAgIGNvbnN0IG1hcmdpbiA9IDIwO1xuICAgICAgY29uc3QgYW5jaG9yU2l6ZSA9IDU7XG5cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcDtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVzY2FwZSA9IHRoaXMuZXNjYXBlO1xuXG4gICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgIGNvbnN0IHRvb2x0aXBIZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICBjb25zdCB0b29sdGlwV2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICBjb25zdCBzYWZlU3BhY2UgPSAxNTA7XG5cbiAgICAgICAgIGxldCBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICBjb25zdCBpbnZhbGlkT3B0aW9uczogVG9vbHRpcFBvc2l0aW9uW10gPSBbXTtcblxuICAgICAgICAgd2hpbGUgKCFwb3NpdGlvbmVkKSB7XG4gICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlRvcClcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pXG4gICAgICAgICAgICAgICAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uTGVmdClcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5SaWdodCkpIHtcbiAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gc3BhY2UgdG8gc2hvdyB0b29sdGlwXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLlRvcDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Ub3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgdG9wU2hpZnQgPSB0b3A7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh0b3BTaGlmdCA8PSB0b29sdGlwSGVpZ2h0ICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLlRvcCk7XG4gICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQodG9vbHRpcFdpZHRoIC8gMiArIGxlZnQpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgLSBtYXJnaW4gLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5Cb3R0b206IHtcblxuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgYm90dG9tU2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCAtIGJvdHRvbTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGJvdHRvbVNoaWZ0IDw9IHRvb2x0aXBIZWlnaHQgKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uQm90dG9tKTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKGJvdHRvbSArIG1hcmdpbik7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uTGVmdDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdFNoaWZ0ID0gbGVmdDtcblxuICAgICAgICAgICAgICAgICAgaWYgKGxlZnRTaGlmdCA8PSB0b29sdGlwV2lkdGggKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChsZWZ0IC0gbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgdG9vbHRpcEhlaWdodCAvIDIgLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5SaWdodDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5SaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gcmlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChyaWdodFNoaWZ0IDw9IHRvb2x0aXBXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5MZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uUmlnaHQpO1xuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHJpZ2h0ICsgbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgdG9vbHRpcEhlaWdodCAvIDIgLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XG4gICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgIHRoaXMudG9vbHRpcERpdkVsZW1lbnQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZE9uV2luZG93TW91c2VNb3ZlRnVuY3Rpb24pO1xuICAgfVxufVxuIl19
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0osY0FBYyxFQUNkLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU12RDtJQW1DRywwQkFDb0IsVUFBc0IsRUFDdEIsTUFBc0IsRUFDdEIsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLGFBQTRCLEVBQzVCLFFBQW1CO1FBTnZDLGlCQVVDO1FBVG1CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFwQ2hDLGFBQVEsR0FBb0IsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUdoRCxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBTWhCLGlCQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUdsQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBR2YsWUFBTyxHQUFHLElBQUksQ0FBQztRQUdmLG1C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S0FBSyxFQUFFO3VEQUNlO0lBR3ZCO1FBREMsS0FBSyxFQUFFO3lEQUNtQjtJQUczQjtRQURDLEtBQUssRUFBRTswREFDaUM7SUFHekM7UUFEQyxLQUFLLEVBQUU7b0RBQ2M7SUFHdEI7UUFEQyxLQUFLLEVBQUU7cURBQ2M7SUFHdEI7UUFEQyxLQUFLLEVBQUU7NERBQ3dDO0lBR2hEO1FBREMsS0FBSyxFQUFFOzZEQUNpQztJQTRHekM7UUFGQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3JCLFlBQVksQ0FBQyxTQUFTLENBQUM7bURBT3ZCO0lBSUQ7UUFEQyxZQUFZLENBQUMscUJBQXFCLENBQUM7Z0VBS25DO0lBR0Q7UUFEQyxZQUFZLENBQUMsT0FBTyxDQUFDO21EQUtyQjtJQUdEO1FBREMsWUFBWSxDQUFDLE1BQU0sQ0FBQztrREFLcEI7SUFHRDtRQURDLFlBQVksQ0FBQyxZQUFZLENBQUM7d0RBSzFCO0lBSUQ7UUFGQyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQzFCLFlBQVksQ0FBQyxPQUFPLENBQUM7d0RBS3JCO0lBR0Q7UUFEQyxZQUFZLENBQUMsWUFBWSxDQUFDO3dEQVMxQjtJQUdEO1FBREMsWUFBWSxDQUFDLFVBQVUsQ0FBQztzREFReEI7SUF0TVMsZ0JBQWdCO1FBSDVCLFNBQVMsQ0FBQztZQUNSLFFBQVEsRUFBRSxZQUFZO1NBQ3hCLENBQUM7T0FDVyxnQkFBZ0IsQ0FvYTVCO0lBQUQsdUJBQUM7Q0FBQSxBQXBhRCxJQW9hQztTQXBhWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgQXBwbGljYXRpb25SZWYsXG4gICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICBDb21wb25lbnRSZWYsXG4gICBEaXJlY3RpdmUsXG4gICBFbGVtZW50UmVmLFxuICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgSG9zdExpc3RlbmVyLFxuICAgSW5qZWN0b3IsXG4gICBJbnB1dCxcbiAgIE9uRGVzdHJveSxcbiAgIE9uSW5pdCxcbiAgIFJlbmRlcmVyMlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRGVib3VuY2VVdGlscyB9IGZyb20gXCIuLi91dGlscy9kZWJvdWNlXCI7XG5pbXBvcnQgeyBNb2JpbGVCZWhhdmlvciwgVG9vbHRpcEV2ZW50LCBUb29sdGlwUG9zaXRpb24gfSBmcm9tIFwiLi9tb2RlbHNcIjtcbmltcG9ydCB7IFRvb2x0aXBDb21wb25lbnQgfSBmcm9tIFwiLi90b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRWxlbWVudEFyZWEgfSBmcm9tIFwiLi9tb2RlbHMvZWxlbWVudC1hcmVhXCI7XG5cbkBEaXJlY3RpdmUoe1xuICAgc2VsZWN0b3I6IFwiW3NUb29sdGlwXVwiLFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgQElucHV0KFwic1Rvb2x0aXBcIilcbiAgIHB1YmxpYyB0b29sdGlwOiBzdHJpbmc7XG5cbiAgIEBJbnB1dChcInRvb2x0aXBQb3NpdGlvblwiKVxuICAgcHVibGljIHBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHNob3dEZWxheSA9IDUwMDtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBkaXNwbGF5VGltZTogbnVtYmVyO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIHRvb2x0aXBFdmVudCA9IFRvb2x0aXBFdmVudC5Ib3ZlcjtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBlc2NhcGUgPSBmYWxzZTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyB2aXNpYmxlID0gdHJ1ZTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBtb2JpbGVCZWhhdmlvciA9IE1vYmlsZUJlaGF2aW9yLlByZXNzaW5nO1xuXG4gICBASW5wdXQoKVxuICAgcHVibGljIGZvY3VzZWRJbnB1dFJlZjogSFRNTElucHV0RWxlbWVudDtcblxuICAgcHJpdmF0ZSBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gbnVsbDtcbiAgIHByaXZhdGUgc2hvd1RpbWVvdXQ/OiBudW1iZXI7XG4gICBwcml2YXRlIHRvdWNoVGltZW91dD86IG51bWJlcjtcbiAgIHByaXZhdGUgdG9vbHRpcERpdkVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgIHByaXZhdGUgcmVhZG9ubHkgYm91bmRPbldpbmRvd01vdXNlTW92ZUZ1bmN0aW9uOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IGRlYm91bmNlQ3JlYXRlVG9vbHRpcEZ1bmN0aW9uOiAoKSA9PiB2b2lkO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVib3VuY2VVdGlsczogRGVib3VuY2VVdGlscyxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgKSB7XG4gICAgICB0aGlzLmJvdW5kT25XaW5kb3dNb3VzZU1vdmVGdW5jdGlvbiA9IHRoaXMub25XaW5kb3dNb3VzZU1vdmUuYmluZCh0aGlzKTtcbiAgICAgIHRoaXMuZGVib3VuY2VDcmVhdGVUb29sdGlwRnVuY3Rpb24gPSB0aGlzLmRlYm91bmNlVXRpbHMuZGVib3VuY2VMZWFkaW5nKCgpID0+IHRoaXMuY3JlYXRlVG9vdGlwKCkpO1xuICAgfVxuXG4gICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICB0aGlzLnZhbGlkYXRlUG9zaXRpb24oKTtcbiAgICAgIHRoaXMudXBkYXRlVG9vbHRpcFZpc2liaWxpdHlXaGVuRm9jdXNPbklucHV0KCk7XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgfVxuXG4gICBwcml2YXRlIG9uV2luZG93TW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBlbGVtZW50UmVjdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgdG9vbFRpcFJlY3QgPSB0aGlzLnRvb2x0aXBEaXZFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBjb25zdCB0b3RhbEVsZW1lbnRBcmVhID0ge1xuICAgICAgICAgdG9wOiBNYXRoLm1pbihlbGVtZW50UmVjdC50b3AsIHRvb2xUaXBSZWN0LnRvcCksXG4gICAgICAgICByaWdodDogTWF0aC5tYXgoZWxlbWVudFJlY3QucmlnaHQsIHRvb2xUaXBSZWN0LnJpZ2h0KSxcbiAgICAgICAgIGxlZnQ6IE1hdGgubWluKGVsZW1lbnRSZWN0LmxlZnQsIHRvb2xUaXBSZWN0LmxlZnQpLFxuICAgICAgICAgYm90dG9tOiBNYXRoLm1heChlbGVtZW50UmVjdC5ib3R0b20sIHRvb2xUaXBSZWN0LmJvdHRvbSlcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmlzTW91c2VQb3NpdGlvbk91dHNpZGVPZkVsZW1lbnQoZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSwgdG90YWxFbGVtZW50QXJlYSkpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGlzTW91c2VQb3NpdGlvbk91dHNpZGVPZkVsZW1lbnQobW91c2VYOiBudW1iZXIsIG1vdXNlWTogbnVtYmVyLCBlbGVtZW50QXJlYTogRWxlbWVudEFyZWEpIHtcbiAgICAgIHJldHVybiBtb3VzZVggPCBlbGVtZW50QXJlYS5sZWZ0IHx8IG1vdXNlWCA+PSBlbGVtZW50QXJlYS5yaWdodCB8fCBtb3VzZVkgPCBlbGVtZW50QXJlYS50b3AgfHwgbW91c2VZID49IGVsZW1lbnRBcmVhLmJvdHRvbTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBNYW5pcHVsYSBhIHZpc2liaWxpZGFkZSBkbyB0b29sdGlwIHF1YW5kbyBob3V2ZXIgdW1hIHJlZmVyw6puY2lhIGRlIGlucHV0LlxuICAgICovXG4gICBwcml2YXRlIHVwZGF0ZVRvb2x0aXBWaXNpYmlsaXR5V2hlbkZvY3VzT25JbnB1dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZElucHV0UmVmKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dEZvY3VzID0gdGhpcy5mb2N1c2VkSW5wdXRSZWY7XG4gICAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5nZXRJY29uRnJvbUZvY3VzZWRJbnB1dCgpO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmZvY3VzZWRJbnB1dFJlZiwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpY29uICYmIHRoaXMuaXNNYXRjaGluZ1Rvb2x0aXAoaWNvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVUb290aXBCeUZvY3VzKGljb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oaW5wdXRGb2N1cywgJ2JsdXInLCAoKSA9PiB7XG4gICAgICAgICAgICAgICBpZiAoaWNvbiAmJiB0aGlzLmlzTWF0Y2hpbmdUb29sdGlwKGljb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlVG9vbHRpcChpY29uKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnTDqW0gbyBlbGVtZW50byBkbyDDrWNvbmUgYXNzb2NpYWRvIGFvIGxhYmVsIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqIEByZXR1cm5zIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0SWNvbkZyb21Gb2N1c2VkSW5wdXQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWNhIHNlIG8gw61jb25lIHRlbSBvIHRvb2x0aXAgY29ycmVzcG9uZGVudGUgYW8gYXR1YWwuXG4gICAgICogQHBhcmFtIGljb24gTyDDrWNvbmUgZG8gaW5wdXQgZW0gZm9jdXMuXG4gICAgICogQHJldHVybnMgdHJ1ZSBzZSBvIHRvb2x0aXAgY29ycmVzcG9uZGU7IGNhc28gY29udHLDoXJpbywgZmFsc2UuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc01hdGNoaW5nVG9vbHRpcChpY29uOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0b29sdGlwVGV4dCA9IGljb24uZ2V0QXR0cmlidXRlKCduZy1yZWZsZWN0LXRvb2x0aXAnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcCA9PT0gdG9vbHRpcFRleHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIG8gdG9vbHRpcCBhc3NvY2lhZG8gYW8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqIEBwYXJhbSBpY29uIE8gw61jb25lIGRvIGlucHV0IGVtIGZvY3VzLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVtb3ZlVG9vbHRpcChpY29uOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b29sdGlwID0gaWNvbi5xdWVyeVNlbGVjdG9yKCcudG9vbHRpcCcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAodG9vbHRpcCkge1xuICAgICAgICAgICAgdG9vbHRpcC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgLy8gd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSB0b29sdGlwIGlzIGNsaWNrZWQgSSBkZXN0cm95IHRoZSB0b29sdGlwLlxuICAgLy8gd2hlbmV2ZXIgYSBrZXkgaXMgcHJlc3NlZCBvbiB0aGUgY29tcG9uZW50IHdpdGggdGhlIHRvb2x0aXAgSSBkZXN0cm95IHRoZSB0b29sdGlwLlxuICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiKVxuICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3ZlciAmJlxuICAgICAgICAgIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0FuZHJvaWQvaSkgJiZcbiAgICAgICAgICFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9pUGhvbmUvaSkpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICAvLyB3aGVuZXZlciB5b3UgdG91Y2ggb3V0c2lkZSB0aGUgY29tcG9uZW50IHdpdGggdGhlIHRvb2x0aXAgSSBkZXN0cm95IHRoZSB0b29sdGlwLlxuICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OnRvdWNoc3RhcnRcIilcbiAgIHB1YmxpYyBvbkRvY3VtZW50VG91Y2hTdGFydCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcImZvY3VzXCIpXG4gICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkZvY3VzKSB7XG4gICAgICAgICB0aGlzLmNyZWF0ZVRvb3RpcCgpO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwiYmx1clwiKVxuICAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkZvY3VzKSB7XG4gICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgIH1cblxuICAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIilcbiAgIHB1YmxpYyBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgdGhpcy5kZWJvdW5jZUNyZWF0ZVRvb2x0aXBGdW5jdGlvbigpO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiKVxuICAgQEhvc3RMaXN0ZW5lcihcIndoZWVsXCIpXG4gICBwdWJsaWMgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMudG9vbHRpcEV2ZW50ID09PSBUb29sdGlwRXZlbnQuSG92ZXIpIHtcbiAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgfVxuICAgfVxuXG4gICBASG9zdExpc3RlbmVyKFwidG91Y2hzdGFydFwiKVxuICAgcHVibGljIG9uVG91Y2hTdGFydCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRvb2x0aXBFdmVudCA9PT0gVG9vbHRpcEV2ZW50LkhvdmVyKSB7XG4gICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcbiAgICAgICAgIHRoaXMudG91Y2hUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVRvb3RpcC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdGhpcy5tb2JpbGVCZWhhdmlvciA9PT0gTW9iaWxlQmVoYXZpb3IuUHJlc3NpbmcgPyB0aGlzLnNob3dEZWxheSA6IDBcbiAgICAgICAgICk7XG4gICAgICB9XG4gICB9XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJ0b3VjaGVuZFwiKVxuICAgcHVibGljIG9uVG91Y2hFbmQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy50b29sdGlwRXZlbnQgPT09IFRvb2x0aXBFdmVudC5Ib3Zlcikge1xuICAgICAgICAgaWYgKHRoaXMubW9iaWxlQmVoYXZpb3IgPT09IE1vYmlsZUJlaGF2aW9yLlByZXNzaW5nKSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMudG91Y2hUaW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIHZhbGlkYXRlUG9zaXRpb24oKSB7XG4gICAgICBjb25zdCBjb250YWluc1Bvc2l0aW9uID0gW1xuICAgICAgICAgVG9vbHRpcFBvc2l0aW9uLlRvcCxcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5SaWdodCxcbiAgICAgICAgIFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20sXG4gICAgICAgICBUb29sdGlwUG9zaXRpb24uTGVmdCxcbiAgICAgIF0uaW5jbHVkZXModGhpcy5wb3NpdGlvbik7XG5cbiAgICAgIGlmICghY29udGFpbnNQb3NpdGlvbikge1xuICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRvb2x0aXAgJHt0aGlzLnBvc2l0aW9ufSBwb3NpdGlvbiBpcyB1bmV4cGVjdGVkYCk7XG4gICAgICB9XG4gICB9XG5cbiAgIHByaXZhdGUgY3JlYXRlVG9vdGlwKCkge1xuICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmID09PSBudWxsICYmIHRoaXMudG9vbHRpcD8ubGVuZ3RoKSB7XG4gICAgICAgICBjb25zdCBkb21FbGVtID0gdGhpcy5nZXREb21FbGVtZW50KCk7XG4gICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICAgICAgICAgdGhpcy5zZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpO1xuICAgICAgICAgdGhpcy5zaG93VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuc2hvd1Rvb2x0aXAuYmluZCh0aGlzKSwgdGhpcy5zaG93RGVsYXkpO1xuXG4gICAgICAgICB0aGlzLnRvb2x0aXBEaXZFbGVtZW50ID0gZG9tRWxlbS5xdWVyeVNlbGVjdG9yKCcudG9vbHRpcCcpO1xuXG4gICAgICAgICBpZiAodGhpcy5kaXNwbGF5VGltZSkge1xuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQodGhpcy5kZXN0cm95LmJpbmQodGhpcyksIHRoaXMuZGlzcGxheVRpbWUpO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGdldERvbUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoVG9vbHRpcENvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICByZXR1cm4gKHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQ3JpYSB1bSB0b29sdGlwIHBhcmEgbyBpY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAqXG4gICAgKiBAcGFyYW0gaWNvbiBPIMOtY29uZSBkbyBpbnB1dCBlbSBmb2N1cy5cbiAgICAqL1xuICAgcHJpdmF0ZSBjcmVhdGVUb290aXBCeUZvY3VzKGljb246IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gbnVsbCAmJiB0aGlzLnRvb2x0aXA/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZG9tRWxlbSA9IHRoaXMuZ2V0RG9tRWxlbWVudCgpO1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcCA9IGRvbUVsZW0ucXVlcnlTZWxlY3RvcignLnRvb2x0aXAnKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGljb24uYXBwZW5kQ2hpbGQodG9vbHRpcCk7XG4gICAgICAgICAgICB0aGlzLnNldFRvb2x0aXBDb21wb25lbnRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdG9vbHRpcC5jbGFzc0xpc3QuYWRkKFwidG9vbHRpcC0tdmlzaWJsZVwiKSwgMCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csICdzY3JvbGwnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwUG9zaXRpb24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUb29sdGlwUG9zaXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgICAgICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20gfSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcFdpZHRoID0gcmlnaHQgLSBsZWZ0O1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcEhlaWdodCA9IGJvdHRvbSAtIHRvcDtcblxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uVG9wOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wIC0gMjAgLSA1KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uQm90dG9tOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQoYm90dG9tICsgMjApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5MZWZ0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChsZWZ0IC0gMjApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKHRvcCArIHRvb2x0aXBIZWlnaHQgLyAyIC0gNSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLlJpZ2h0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChyaWdodCArIDIwKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgKyB0b29sdGlwSGVpZ2h0IC8gMiAtIDUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgcHJpdmF0ZSBzaG93VG9vbHRpcCgpIHtcbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudmlzaWJsZSA9IHRoaXMudmlzaWJsZTtcblxuICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRPbldpbmRvd01vdXNlTW92ZUZ1bmN0aW9uKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBzZXRUb29sdGlwQ29tcG9uZW50UHJvcGVydGllcygpIHtcbiAgICAgIGNvbnN0IG1hcmdpbiA9IDIwO1xuICAgICAgY29uc3QgYW5jaG9yU2l6ZSA9IDU7XG5cbiAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9vbHRpcCA9IHRoaXMudG9vbHRpcDtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmVzY2FwZSA9IHRoaXMuZXNjYXBlO1xuXG4gICAgICAgICBjb25zdCB7IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSB9ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgIGNvbnN0IHRvb2x0aXBIZWlnaHQgPSBib3R0b20gLSB0b3A7XG4gICAgICAgICBjb25zdCB0b29sdGlwV2lkdGggPSByaWdodCAtIGxlZnQ7XG4gICAgICAgICBjb25zdCBzYWZlU3BhY2UgPSAxNTA7XG5cbiAgICAgICAgIGxldCBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICBjb25zdCBpbnZhbGlkT3B0aW9uczogVG9vbHRpcFBvc2l0aW9uW10gPSBbXTtcblxuICAgICAgICAgd2hpbGUgKCFwb3NpdGlvbmVkKSB7XG4gICAgICAgICAgICBpZiAoaW52YWxpZE9wdGlvbnMuaW5jbHVkZXMoVG9vbHRpcFBvc2l0aW9uLlRvcClcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pXG4gICAgICAgICAgICAgICAmJiBpbnZhbGlkT3B0aW9ucy5pbmNsdWRlcyhUb29sdGlwUG9zaXRpb24uTGVmdClcbiAgICAgICAgICAgICAgICYmIGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5SaWdodCkpIHtcbiAgICAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gc3BhY2UgdG8gc2hvdyB0b29sdGlwXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMucG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgIGNhc2UgVG9vbHRpcFBvc2l0aW9uLlRvcDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Ub3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgdG9wU2hpZnQgPSB0b3A7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh0b3BTaGlmdCA8PSB0b29sdGlwSGVpZ2h0ICsgc2FmZVNwYWNlKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgIGludmFsaWRPcHRpb25zLnB1c2goVG9vbHRpcFBvc2l0aW9uLlRvcCk7XG4gICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1hdGgucm91bmQodG9vbHRpcFdpZHRoIC8gMiArIGxlZnQpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5yb3VuZCh0b3AgLSBtYXJnaW4gLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5Cb3R0b206IHtcblxuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5Cb3R0b20pKSB7XG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uLkxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgYm90dG9tU2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCAtIGJvdHRvbTtcblxuICAgICAgICAgICAgICAgICAgaWYgKGJvdHRvbVNoaWZ0IDw9IHRvb2x0aXBIZWlnaHQgKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uQm90dG9tKTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZCh0b29sdGlwV2lkdGggLyAyICsgbGVmdCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLnJvdW5kKGJvdHRvbSArIG1hcmdpbik7XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgY2FzZSBUb29sdGlwUG9zaXRpb24uTGVmdDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5Ub3A7XG4gICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdFNoaWZ0ID0gbGVmdDtcblxuICAgICAgICAgICAgICAgICAgaWYgKGxlZnRTaGlmdCA8PSB0b29sdGlwV2lkdGggKyBzYWZlU3BhY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uUmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICBpbnZhbGlkT3B0aW9ucy5wdXNoKFRvb2x0aXBQb3NpdGlvbi5MZWZ0KTtcbiAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gTWF0aC5yb3VuZChsZWZ0IC0gbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgdG9vbHRpcEhlaWdodCAvIDIgLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBjYXNlIFRvb2x0aXBQb3NpdGlvbi5SaWdodDoge1xuICAgICAgICAgICAgICAgICAgaWYgKGludmFsaWRPcHRpb25zLmluY2x1ZGVzKFRvb2x0aXBQb3NpdGlvbi5SaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb24uVG9wO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJpZ2h0U2hpZnQgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIC0gcmlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChyaWdodFNoaWZ0IDw9IHRvb2x0aXBXaWR0aCArIHNhZmVTcGFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IFRvb2x0aXBQb3NpdGlvbi5MZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE9wdGlvbnMucHVzaChUb29sdGlwUG9zaXRpb24uUmlnaHQpO1xuICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBNYXRoLnJvdW5kKHJpZ2h0ICsgbWFyZ2luKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnRvcCA9IE1hdGgucm91bmQodG9wICsgdG9vbHRpcEhlaWdodCAvIDIgLSBhbmNob3JTaXplKTtcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UucG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uO1xuICAgICAgICAgfVxuICAgICAgfVxuICAgfVxuXG4gICBwcml2YXRlIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dCk7XG4gICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgIHRoaXMudG9vbHRpcERpdkVsZW1lbnQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZE9uV2luZG93TW91c2VNb3ZlRnVuY3Rpb24pO1xuICAgfVxufVxuIl19
@@ -2,100 +2,103 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { BignumberInputModule as ɵbi } from './components/bignumber-input';
5
+ export { BignumberInputModule as ɵbl } from './components/bignumber-input';
6
6
  export { CoreFacade as ɵg } from './components/code-editor/core/facades/core-facade';
7
7
  export { CodeMirror6Core as ɵh } from './components/code-editor/infra/cores/codemirror-6/codemirror-6-core';
8
8
  export { CustomTranslationsModule as ɵe } from './components/code-editor/infra/utils/custom-translations/custom-translations.module';
9
9
  export { CodeEditorComponent as ɵf } from './components/code-editor/presentation/code-editor-component';
10
10
  export { CountryPhonePickerService as ɵi } from './components/country-phone-picker/country-phone-picker.service';
11
- export { DynamicFieldComponent as ɵbw } from './components/dynamic-form/components/dynamic-field/dynamic-field.component';
12
- export { AutocompleteFieldComponent as ɵbq } from './components/dynamic-form/components/fields/autocomplete/autocomplete-field.component';
13
- export { BignumberFieldComponent as ɵbj } from './components/dynamic-form/components/fields/bignumber/bignumber-field.component';
14
- export { BignumberFieldModule as ɵbh } from './components/dynamic-form/components/fields/bignumber/bignumber-field.module';
15
- export { BooleanFieldComponent as ɵbr } from './components/dynamic-form/components/fields/boolean/boolean-field.component';
16
- export { BooleanSwitchFieldComponent as ɵbs } from './components/dynamic-form/components/fields/boolean/boolean-switch-field.component';
17
- export { CalendarFieldComponent as ɵbt } from './components/dynamic-form/components/fields/calendar/calendar-field.component';
18
- export { ChipsFieldComponent as ɵbu } from './components/dynamic-form/components/fields/chips/chips-field.component';
19
- export { CountryPhonePickerFieldComponent as ɵbv } from './components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component';
20
- export { CurrencyFieldComponent as ɵbg } from './components/dynamic-form/components/fields/currency/currency-field.component';
21
- export { CurrencyFieldModule as ɵbf } from './components/dynamic-form/components/fields/currency/currency-field.module';
22
- export { FileUploadComponent as ɵbz } from './components/dynamic-form/components/fields/file-upload/file-upload.component';
23
- export { LookupFieldComponent as ɵca } from './components/dynamic-form/components/fields/lookup/lookup-field.component';
24
- export { NumberFieldComponent as ɵbe } from './components/dynamic-form/components/fields/number/number-field.component';
25
- export { NumberFieldModule as ɵbb } from './components/dynamic-form/components/fields/number/number-field.module';
26
- export { PasswordFieldComponent as ɵy } from './components/dynamic-form/components/fields/password/password-field.component';
11
+ export { DynamicFieldComponent as ɵbz } from './components/dynamic-form/components/dynamic-field/dynamic-field.component';
12
+ export { FieldLabelComponent as ɵba } from './components/dynamic-form/components/field-label/field-label.component';
13
+ export { FieldLabelModule as ɵy } from './components/dynamic-form/components/field-label/field-label.module';
14
+ export { AutocompleteFieldComponent as ɵbt } from './components/dynamic-form/components/fields/autocomplete/autocomplete-field.component';
15
+ export { BignumberFieldComponent as ɵbm } from './components/dynamic-form/components/fields/bignumber/bignumber-field.component';
16
+ export { BignumberFieldModule as ɵbk } from './components/dynamic-form/components/fields/bignumber/bignumber-field.module';
17
+ export { BooleanFieldComponent as ɵbu } from './components/dynamic-form/components/fields/boolean/boolean-field.component';
18
+ export { BooleanSwitchFieldComponent as ɵbv } from './components/dynamic-form/components/fields/boolean/boolean-switch-field.component';
19
+ export { CalendarFieldComponent as ɵbw } from './components/dynamic-form/components/fields/calendar/calendar-field.component';
20
+ export { ChipsFieldComponent as ɵbx } from './components/dynamic-form/components/fields/chips/chips-field.component';
21
+ export { CountryPhonePickerFieldComponent as ɵby } from './components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component';
22
+ export { CurrencyFieldComponent as ɵbj } from './components/dynamic-form/components/fields/currency/currency-field.component';
23
+ export { CurrencyFieldModule as ɵbi } from './components/dynamic-form/components/fields/currency/currency-field.module';
24
+ export { FileUploadComponent as ɵcc } from './components/dynamic-form/components/fields/file-upload/file-upload.component';
25
+ export { LookupFieldComponent as ɵcd } from './components/dynamic-form/components/fields/lookup/lookup-field.component';
26
+ export { NumberFieldComponent as ɵbh } from './components/dynamic-form/components/fields/number/number-field.component';
27
+ export { NumberFieldModule as ɵbe } from './components/dynamic-form/components/fields/number/number-field.module';
28
+ export { PasswordFieldComponent as ɵbb } from './components/dynamic-form/components/fields/password/password-field.component';
27
29
  export { PasswordFieldModule as ɵx } from './components/dynamic-form/components/fields/password/password-field.module';
28
- export { ProfilePictureFieldComponent as ɵbp } from './components/dynamic-form/components/fields/profile-picture/profile-picture-field.component';
29
- export { ProfilePictureModule as ɵbk } from './components/dynamic-form/components/fields/profile-picture/profile-picture-field.module';
30
- export { RadioButtonComponent as ɵcb } from './components/dynamic-form/components/fields/radio-button/radio-button-field.component';
31
- export { SelectFieldComponent as ɵce } from './components/dynamic-form/components/fields/select/select-field.component';
32
- export { SliderFieldComponent as ɵcf } from './components/dynamic-form/components/fields/slider/slider-field.component';
33
- export { TextAreaIAFieldComponent as ɵch } from './components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component';
34
- export { TextAreaFieldComponent as ɵcg } from './components/dynamic-form/components/fields/text-area/text-area-field.component';
35
- export { TextFieldComponent as ɵba } from './components/dynamic-form/components/fields/text/text-field.component';
36
- export { TextFieldModule as ɵz } from './components/dynamic-form/components/fields/text/text-field.module';
37
- export { RowComponent as ɵcc } from './components/dynamic-form/components/grid/row/row.component';
38
- export { FieldsetComponent as ɵby } from './components/dynamic-form/components/structure/fieldset/fieldset.component';
39
- export { SectionComponent as ɵcd } from './components/dynamic-form/components/structure/section/section.component';
40
- export { DecimalField as ɵck } from './components/dynamic-form/configurations/fields/decimal-field';
41
- export { DynamicFormDirective as ɵbx } from './components/dynamic-form/dynamic-form.directive';
42
- export { IAssistService as ɵci } from './components/dynamic-form/services/IAssist/iassist.service';
30
+ export { ProfilePictureFieldComponent as ɵbs } from './components/dynamic-form/components/fields/profile-picture/profile-picture-field.component';
31
+ export { ProfilePictureModule as ɵbn } from './components/dynamic-form/components/fields/profile-picture/profile-picture-field.module';
32
+ export { RadioButtonComponent as ɵce } from './components/dynamic-form/components/fields/radio-button/radio-button-field.component';
33
+ export { SelectFieldComponent as ɵch } from './components/dynamic-form/components/fields/select/select-field.component';
34
+ export { SliderFieldComponent as ɵci } from './components/dynamic-form/components/fields/slider/slider-field.component';
35
+ export { TextAreaIAFieldComponent as ɵck } from './components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component';
36
+ export { TextAreaFieldComponent as ɵcj } from './components/dynamic-form/components/fields/text-area/text-area-field.component';
37
+ export { TextFieldComponent as ɵbd } from './components/dynamic-form/components/fields/text/text-field.component';
38
+ export { TextFieldModule as ɵbc } from './components/dynamic-form/components/fields/text/text-field.module';
39
+ export { RowComponent as ɵcf } from './components/dynamic-form/components/grid/row/row.component';
40
+ export { FieldsetComponent as ɵcb } from './components/dynamic-form/components/structure/fieldset/fieldset.component';
41
+ export { SectionComponent as ɵcg } from './components/dynamic-form/components/structure/section/section.component';
42
+ export { DecimalField as ɵcn } from './components/dynamic-form/configurations/fields/decimal-field';
43
+ export { DynamicFormDirective as ɵca } from './components/dynamic-form/dynamic-form.directive';
44
+ export { IAssistService as ɵcl } from './components/dynamic-form/services/IAssist/iassist.service';
43
45
  export { EmptyStateGoBackComponent as ɵo } from './components/empty-state/go-back/go-back.component';
44
46
  export { FileUploadService as ɵt } from './components/file-upload/file-upload.service';
45
- export { SideTableComponent as ɵcl } from './components/gantt/components/side-table/side-table.component';
46
- export { IAInsightCardLoaderComponent as ɵcq } from './components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component';
47
- export { IAInsightCardComponent as ɵcp } from './components/ia-insight/components/ia-insight-card/ia-insight-card.component';
48
- export { IAInsightSidebarComponent as ɵco } from './components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component';
49
- export { InfiniteScrollDirective as ɵcn } from './components/infinite-scroll/infinite-scroll.directive';
50
- export { InfiniteScrollModule as ɵcm } from './components/infinite-scroll/infinite-scroll.module';
47
+ export { SideTableComponent as ɵco } from './components/gantt/components/side-table/side-table.component';
48
+ export { IAInsightCardLoaderComponent as ɵct } from './components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component';
49
+ export { IAInsightCardComponent as ɵcs } from './components/ia-insight/components/ia-insight-card/ia-insight-card.component';
50
+ export { IAInsightSidebarComponent as ɵcr } from './components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component';
51
+ export { InfiniteScrollDirective as ɵcq } from './components/infinite-scroll/infinite-scroll.directive';
52
+ export { InfiniteScrollModule as ɵcp } from './components/infinite-scroll/infinite-scroll.module';
53
+ export { InfoSignModule as ɵz } from './components/info-sign';
51
54
  export { InfoSignComponent as ɵu } from './components/info-sign/info-sign.component';
52
- export { KanbanColumnComponent as ɵct } from './components/kanban/components/kanban-column/kanban-column.component';
53
- export { KanbanItemDraggingComponent as ɵcu } from './components/kanban/components/kanban-item-dragging/kanban-item-dragging.component';
54
- export { KanbanItemComponent as ɵcs } from './components/kanban/components/kanban-item/kanban-item.component';
55
- export { KanbanEventService as ɵcr } from './components/kanban/kanban-event.service';
55
+ export { KanbanColumnComponent as ɵcw } from './components/kanban/components/kanban-column/kanban-column.component';
56
+ export { KanbanItemDraggingComponent as ɵcx } from './components/kanban/components/kanban-item-dragging/kanban-item-dragging.component';
57
+ export { KanbanItemComponent as ɵcv } from './components/kanban/components/kanban-item/kanban-item.component';
58
+ export { KanbanEventService as ɵcu } from './components/kanban/kanban-event.service';
56
59
  export { DotsIndicatorComponent as ɵr } from './components/loading-state/components/dots-indicator/dots-indicator.components';
57
60
  export { LoadingIndicatorComponent as ɵs } from './components/loading-state/components/logo-indicator/logo-indicator.component';
58
- export { NumberLocaleOptions as ɵcv } from './components/locale/options';
61
+ export { NumberLocaleOptions as ɵcy } from './components/locale/options';
59
62
  export { LocalizedBignumberImpurePipe as ɵl } from './components/locale/pipes/localized-bignumber-impure.pipe';
60
63
  export { LocalizedBignumberPipe as ɵk } from './components/locale/pipes/localized-bignumber.pipe';
61
64
  export { LocalizedCurrencyImpurePipe as ɵj } from './components/locale/pipes/localized-currency-impure.pipe';
62
65
  export { NumericPipe as ɵm } from './components/locale/pipes/numeric.pipe';
63
66
  export { NumericService as ɵn } from './components/locale/services/numeric.service';
64
- export { LocalizedNumberInputModule as ɵbc } from './components/localized-number-input';
65
- export { NumberInputModule as ɵbd } from './components/number-input';
66
- export { ProgressBarDeterminateComponent as ɵdf } from './components/progressbar/components/progressbar-determinate/progressbar-determinate.component';
67
- export { ProgressBarIndeterminateComponent as ɵdg } from './components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component';
68
- export { SelectButtonItemComponent as ɵdh } from './components/select-button/components/select-button-item/select-button-item.component';
69
- export { BorderButtonComponent as ɵde } from './components/shared/border-button/border-button.component';
70
- export { BorderButtonModule as ɵdd } from './components/shared/border-button/border-button.module';
71
- export { SlidePanelService as ɵdi } from './components/slide-panel/slide-panel.service';
72
- export { FooterComponent as ɵbo } from './components/structure/footer.component';
73
- export { HeaderComponent as ɵbn } from './components/structure/header.component';
74
- export { StructureModule as ɵbm } from './components/structure/structure.module';
67
+ export { LocalizedNumberInputModule as ɵbf } from './components/localized-number-input';
68
+ export { NumberInputModule as ɵbg } from './components/number-input';
69
+ export { ProgressBarDeterminateComponent as ɵdi } from './components/progressbar/components/progressbar-determinate/progressbar-determinate.component';
70
+ export { ProgressBarIndeterminateComponent as ɵdj } from './components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component';
71
+ export { SelectButtonItemComponent as ɵdk } from './components/select-button/components/select-button-item/select-button-item.component';
72
+ export { BorderButtonComponent as ɵdh } from './components/shared/border-button/border-button.component';
73
+ export { BorderButtonModule as ɵdg } from './components/shared/border-button/border-button.module';
74
+ export { SlidePanelService as ɵdl } from './components/slide-panel/slide-panel.service';
75
+ export { FooterComponent as ɵbr } from './components/structure/footer.component';
76
+ export { HeaderComponent as ɵbq } from './components/structure/header.component';
77
+ export { StructureModule as ɵbp } from './components/structure/structure.module';
75
78
  export { TableColumnsComponent as ɵv } from './components/table/table-column/table-columns.component';
76
79
  export { TablePagingComponent as ɵw } from './components/table/table-paging/table-paging.component';
77
80
  export { TemplateDirective as ɵc } from './components/template/template.directive';
78
81
  export { TemplateModule as ɵd } from './components/template/template.module';
79
- export { ThumbnailService as ɵbl } from './components/thumbnail/thumbnail.service';
80
- export { TieredMenuDividerComponent as ɵdc } from './components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component';
81
- export { TieredMenuItemComponent as ɵdb } from './components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component';
82
- export { TieredMenuNestedComponent as ɵda } from './components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component';
83
- export { TieredMenuComponent as ɵcz } from './components/tiered-menu/components/tiered-menu/tiered-menu.component';
84
- export { TieredMenuEventService as ɵcw } from './components/tiered-menu/services/tiered-menu.event.service';
85
- export { TieredMenuGlobalService as ɵcy } from './components/tiered-menu/services/tiered-menu.global.service';
86
- export { TieredMenuService as ɵcx } from './components/tiered-menu/services/tiered-menu.service';
87
- export { HorizontalTimelineComponent as ɵdm } from './components/timeline/components/horizontal-timeline/horizontal-timeline.component';
88
- export { HorizontalTimelineModule as ɵdl } from './components/timeline/components/horizontal-timeline/horizontal-timeline.module';
89
- export { TimelineIconItemComponent as ɵdk } from './components/timeline/components/timeline-icon-item/timeline-icon-item.component';
90
- export { TimelineItemModule as ɵdj } from './components/timeline/components/timeline-icon-item/timeline-icon-item.module';
91
- export { CollapseOptionComponent as ɵdq } from './components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component';
92
- export { CollapsedItemsComponent as ɵdr } from './components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component';
93
- export { RangeLineComponent as ɵdp } from './components/timeline/components/vertical-timeline/components/range-line/range-line.component';
94
- export { VerticalItemsComponent as ɵds } from './components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component';
95
- export { VerticalTimelineComponent as ɵdo } from './components/timeline/components/vertical-timeline/vertical-timeline.component';
96
- export { VerticalTimelineModule as ɵdn } from './components/timeline/components/vertical-timeline/vertical-timeline.module';
82
+ export { ThumbnailService as ɵbo } from './components/thumbnail/thumbnail.service';
83
+ export { TieredMenuDividerComponent as ɵdf } from './components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component';
84
+ export { TieredMenuItemComponent as ɵde } from './components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component';
85
+ export { TieredMenuNestedComponent as ɵdd } from './components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component';
86
+ export { TieredMenuComponent as ɵdc } from './components/tiered-menu/components/tiered-menu/tiered-menu.component';
87
+ export { TieredMenuEventService as ɵcz } from './components/tiered-menu/services/tiered-menu.event.service';
88
+ export { TieredMenuGlobalService as ɵdb } from './components/tiered-menu/services/tiered-menu.global.service';
89
+ export { TieredMenuService as ɵda } from './components/tiered-menu/services/tiered-menu.service';
90
+ export { HorizontalTimelineComponent as ɵdp } from './components/timeline/components/horizontal-timeline/horizontal-timeline.component';
91
+ export { HorizontalTimelineModule as ɵdo } from './components/timeline/components/horizontal-timeline/horizontal-timeline.module';
92
+ export { TimelineIconItemComponent as ɵdn } from './components/timeline/components/timeline-icon-item/timeline-icon-item.component';
93
+ export { TimelineItemModule as ɵdm } from './components/timeline/components/timeline-icon-item/timeline-icon-item.module';
94
+ export { CollapseOptionComponent as ɵdt } from './components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component';
95
+ export { CollapsedItemsComponent as ɵdu } from './components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component';
96
+ export { RangeLineComponent as ɵds } from './components/timeline/components/vertical-timeline/components/range-line/range-line.component';
97
+ export { VerticalItemsComponent as ɵdv } from './components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component';
98
+ export { VerticalTimelineComponent as ɵdr } from './components/timeline/components/vertical-timeline/vertical-timeline.component';
99
+ export { VerticalTimelineModule as ɵdq } from './components/timeline/components/vertical-timeline/vertical-timeline.module';
97
100
  export { TooltipComponent as ɵa } from './components/tooltip/tooltip.component';
98
101
  export { TooltipDirective as ɵb } from './components/tooltip/tooltip.directive';
99
102
  export { IAssistIconComponent as ɵp } from './utils/svg-factory/components/iassist-icon/iassist-icon.component';
100
103
  export { SeniorIconComponent as ɵq } from './utils/svg-factory/components/senior-icon/senior-icon.component';
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlbmlvcnNpc3RlbWFzLWFuZ3VsYXItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsVUFBVSxJQUFJLEVBQUUsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLHFGQUFxRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUN0RyxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLHFCQUFxQixJQUFJLEdBQUcsRUFBQyxNQUFNLDRFQUE0RSxDQUFDO0FBQ3hILE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSx1RkFBdUYsQ0FBQztBQUN4SSxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0saUZBQWlGLENBQUM7QUFDL0gsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBQ3pILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUN6SCxPQUFPLEVBQUMsMkJBQTJCLElBQUksR0FBRyxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7QUFDdEksT0FBTyxFQUFDLHNCQUFzQixJ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RUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQzlHLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtCaWdudW1iZXJJbnB1dE1vZHVsZSBhcyDJtWJpfSBmcm9tICcuL2NvbXBvbmVudHMvYmlnbnVtYmVyLWlucHV0JztcbmV4cG9ydCB7Q29yZUZhY2FkZSBhcyDJtWd9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWVkaXRvci9jb3JlL2ZhY2FkZXMvY29yZS1mYWNhZGUnO1xuZXhwb3J0IHtDb2RlTWlycm9yNkNvcmUgYXMgybVofSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2NvZGVtaXJyb3ItNi1jb3JlJztcbmV4cG9ydCB7Q3VzdG9tVHJhbnNsYXRpb25zTW9kdWxlIGFzIMm1ZX0gZnJvbSAnLi9jb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL3V0aWxzL2N1c3RvbS10cmFuc2xhdGlvbnMvY3VzdG9tLXRyYW5zbGF0aW9ucy5tb2R1bGUnO1xuZXhwb3J0IHtDb2RlRWRpdG9yQ29tcG9uZW50IGFzIMm1Zn0gZnJvbSAnLi9jb21wb25lbnRzL2NvZGUtZWRpdG9yL3ByZXNlbnRhdGlvbi9jb2RlLWVkaXRvci1jb21wb25lbnQnO1xuZXhwb3J0IHtDb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlIGFzIMm1aX0gZnJvbSAnLi9jb21wb25lbnRzL2NvdW50cnktcGhvbmUtcGlja2VyL2NvdW50cnktcGhvbmUtcGlja2VyLnNlcnZpY2UnO1xuZXhwb3J0IHtEeW5hbWljRmllbGRDb21wb25lbnQgYXMgybVid30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZmllbGQvZHluYW1pYy1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCBhcyDJtWJxfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7QmlnbnVtYmVyRmllbGRDb21wb25lbnQgYXMgybVian0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9iaWdudW1iZXIvYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0JpZ251bWJlckZpZWxkTW9kdWxlIGFzIMm1Ymh9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5tb2R1bGUnO1xuZXhwb3J0IHtCb29sZWFuRmllbGRDb21wb25lbnQgYXMgybVicn0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9ib29sZWFuL2Jvb2xlYW4tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7Qm9vbGVhblN3aXRjaEZpZWxkQ29tcG9uZW50IGFzIMm1YnN9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYm9vbGVhbi9ib29sZWFuLXN3aXRjaC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDYWxlbmRhckZpZWxkQ29tcG9uZW50IGFzIMm1YnR9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXIvY2FsZW5kYXItZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7Q2hpcHNGaWVsZENvbXBvbmVudCBhcyDJtWJ1fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2NoaXBzL2NoaXBzLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0NvdW50cnlQaG9uZVBpY2tlckZpZWxkQ29tcG9uZW50IGFzIMm1YnZ9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXItZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7Q3VycmVuY3lGaWVsZENvbXBvbmVudCBhcyDJtWJnfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0N1cnJlbmN5RmllbGRNb2R1bGUgYXMgybViZn0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5tb2R1bGUnO1xuZXhwb3J0IHtGaWxlVXBsb2FkQ29tcG9uZW50IGFzIMm1Ynp9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7TG9va3VwRmllbGRDb21wb25lbnQgYXMgybVjYX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9sb29rdXAvbG9va3VwLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge051bWJlckZpZWxkQ29tcG9uZW50IGFzIMm1YmV9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJGaWVsZE1vZHVsZSBhcyDJtWJifSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL251bWJlci9udW1iZXItZmllbGQubW9kdWxlJztcbmV4cG9ydCB7UGFzc3dvcmRGaWVsZENvbXBvbmVudCBhcyDJtXl9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvcGFzc3dvcmQvcGFzc3dvcmQtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7UGFzc3dvcmRGaWVsZE1vZHVsZSBhcyDJtXh9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvcGFzc3dvcmQvcGFzc3dvcmQtZmllbGQubW9kdWxlJztcbmV4cG9ydCB7UHJvZmlsZVBpY3R1cmVGaWVsZENvbXBvbmVudCBhcyDJtWJwfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3Byb2ZpbGUtcGljdHVyZS9wcm9maWxlLXBpY3R1cmUtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7UHJvZmlsZVBpY3R1cmVNb2R1bGUgYXMgybVia30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9wcm9maWxlLXBpY3R1cmUvcHJvZmlsZS1waWN0dXJlLWZpZWxkLm1vZHVsZSc7XG5leHBvcnQge1JhZGlvQnV0dG9uQ29tcG9uZW50IGFzIMm1Y2J9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWxlY3RGaWVsZENvbXBvbmVudCBhcyDJtWNlfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3NlbGVjdC9zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7U2xpZGVyRmllbGRDb21wb25lbnQgYXMgybVjZn0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9zbGlkZXIvc2xpZGVyLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1RleHRBcmVhSUFGaWVsZENvbXBvbmVudCBhcyDJtWNofSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3RleHQtYXJlYS1pYS90ZXh0LWFyZWEtaWEtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7VGV4dEFyZWFGaWVsZENvbXBvbmVudCBhcyDJtWNnfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3RleHQtYXJlYS90ZXh0LWFyZWEtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7VGV4dEZpZWxkQ29tcG9uZW50IGFzIMm1YmF9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1RleHRGaWVsZE1vZHVsZSBhcyDJtXp9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvdGV4dC90ZXh0LWZpZWxkLm1vZHVsZSc7XG5leHBvcnQge1Jvd0NvbXBvbmVudCBhcyDJtWNjfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZ3JpZC9yb3cvcm93LmNvbXBvbmVudCc7XG5leHBvcnQge0ZpZWxkc2V0Q29tcG9uZW50IGFzIMm1Ynl9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9zdHJ1Y3R1cmUvZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcbmV4cG9ydCB7U2VjdGlvbkNvbXBvbmVudCBhcyDJtWNkfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvc3RydWN0dXJlL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtEZWNpbWFsRmllbGQgYXMgybVjayxEZWNpbWFsRmllbGRDb25maWcgYXMgybVjan0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb25maWd1cmF0aW9ucy9maWVsZHMvZGVjaW1hbC1maWVsZCc7XG5leHBvcnQge0R5bmFtaWNGb3JtRGlyZWN0aXZlIGFzIMm1Ynh9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmRpcmVjdGl2ZSc7XG5leHBvcnQge0lBc3Npc3RTZXJ2aWNlIGFzIMm1Y2l9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vc2VydmljZXMvSUFzc2lzdC9pYXNzaXN0LnNlcnZpY2UnO1xuZXhwb3J0IHtFbXB0eVN0YXRlR29CYWNrQ29tcG9uZW50IGFzIMm1b30gZnJvbSAnLi9jb21wb25lbnRzL2VtcHR5LXN0YXRlL2dvLWJhY2svZ28tYmFjay5jb21wb25lbnQnO1xuZXhwb3J0IHtGaWxlVXBsb2FkU2VydmljZSBhcyDJtXR9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCB7U2lkZVRhYmxlQ29tcG9uZW50IGFzIMm1Y2x9IGZyb20gJy4vY29tcG9uZW50cy9nYW50dC9jb21wb25lbnRzL3NpZGUtdGFibGUvc2lkZS10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0IHtJQUluc2lnaHRDYXJkTG9hZGVyQ29tcG9uZW50IGFzIMm1Y3F9IGZyb20gJy4vY29tcG9uZW50cy9pYS1pbnNpZ2h0L2NvbXBvbmVudHMvaWEtaW5zaWdodC1jYXJkL2NvbXBvbmVudHMvaWEtaW5zaWdodC1jYXJkLWxvYWRlci9pYS1pbnNpZ2h0LWNhcmQtbG9hZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge0lBSW5zaWdodENhcmRDb21wb25lbnQgYXMgybVjcH0gZnJvbSAnLi9jb21wb25lbnRzL2lhLWluc2lnaHQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LWNhcmQvaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQge0lBSW5zaWdodFNpZGViYXJDb21wb25lbnQgYXMgybVjb30gZnJvbSAnLi9jb21wb25lbnRzL2lhLWluc2lnaHQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LXNpZGViYXIvaWEtaW5zaWdodC1zaWRlYmFyLmNvbXBvbmVudCc7XG5leHBvcnQge0luZmluaXRlU2Nyb2xsRGlyZWN0aXZlIGFzIMm1Y259IGZyb20gJy4vY29tcG9uZW50cy9pbmZpbml0ZS1zY3JvbGwvaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZSc7XG5leHBvcnQge0luZmluaXRlU2Nyb2xsTW9kdWxlIGFzIMm1Y219IGZyb20gJy4vY29tcG9uZW50cy9pbmZpbml0ZS1zY3JvbGwvaW5maW5pdGUtc2Nyb2xsLm1vZHVsZSc7XG5leHBvcnQge0luZm9TaWduQ29tcG9uZW50IGFzIMm1dX0gZnJvbSAnLi9jb21wb25lbnRzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50JztcbmV4cG9ydCB7S2FuYmFuQ29sdW1uQ29tcG9uZW50IGFzIMm1Y3R9IGZyb20gJy4vY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4tY29sdW1uL2thbmJhbi1jb2x1bW4uY29tcG9uZW50JztcbmV4cG9ydCB7S2FuYmFuSXRlbURyYWdnaW5nQ29tcG9uZW50IGFzIMm1Y3V9IGZyb20gJy4vY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4taXRlbS1kcmFnZ2luZy9rYW5iYW4taXRlbS1kcmFnZ2luZy5jb21wb25lbnQnO1xuZXhwb3J0IHtLYW5iYW5JdGVtQ29tcG9uZW50IGFzIMm1Y3N9IGZyb20gJy4vY29tcG9uZW50cy9rYW5iYW4vY29tcG9uZW50cy9rYW5iYW4taXRlbS9rYW5iYW4taXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHtLYW5iYW5FdmVudFNlcnZpY2UgYXMgybVjcn0gZnJvbSAnLi9jb21wb25lbnRzL2thbmJhbi9rYW5iYW4tZXZlbnQuc2VydmljZSc7XG5leHBvcnQge0RvdHNJbmRpY2F0b3JDb21wb25lbnQgYXMgybVyfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9jb21wb25lbnRzL2RvdHMtaW5kaWNhdG9yL2RvdHMtaW5kaWNhdG9yLmNvbXBvbmVudHMnO1xuZXhwb3J0IHtMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50IGFzIMm1c30gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmctc3RhdGUvY29tcG9uZW50cy9sb2dvLWluZGljYXRvci9sb2dvLWluZGljYXRvci5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJMb2NhbGVPcHRpb25zIGFzIMm1Y3Z9IGZyb20gJy4vY29tcG9uZW50cy9sb2NhbGUvb3B0aW9ucyc7XG5leHBvcnQge0xvY2FsaXplZEJpZ251bWJlckltcHVyZVBpcGUgYXMgybVsfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxlL3BpcGVzL2xvY2FsaXplZC1iaWdudW1iZXItaW1wdXJlLnBpcGUnO1xuZXhwb3J0IHtMb2NhbGl6ZWRCaWdudW1iZXJQaXBlIGFzIMm1a30gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9waXBlcy9sb2NhbGl6ZWQtYmlnbnVtYmVyLnBpcGUnO1xuZXhwb3J0IHtMb2NhbGl6ZWRDdXJyZW5jeUltcHVyZVBpcGUgYXMgybVqfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxlL3BpcGVzL2xvY2FsaXplZC1jdXJyZW5jeS1pbXB1cmUucGlwZSc7XG5leHBvcnQge051bWVyaWNQaXBlIGFzIMm1bX0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9waXBlcy9udW1lcmljLnBpcGUnO1xuZXhwb3J0IHtOdW1lcmljU2VydmljZSBhcyDJtW59IGZyb20gJy4vY29tcG9uZW50cy9sb2NhbGUvc2VydmljZXMvbnVtZXJpYy5zZXJ2aWNlJztcbmV4cG9ydCB7TG9jYWxpemVkTnVtYmVySW5wdXRNb2R1bGUgYXMgybViY30gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsaXplZC1udW1iZXItaW5wdXQnO1xuZXhwb3J0IHtOdW1iZXJJbnB1dE1vZHVsZSBhcyDJtWJkfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVyLWlucHV0JztcbmV4cG9ydCB7UHJvZ3Jlc3NCYXJEZXRlcm1pbmF0ZUNvbXBvbmVudCBhcyDJtWRmfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZ3Jlc3NiYXIvY29tcG9uZW50cy9wcm9ncmVzc2Jhci1kZXRlcm1pbmF0ZS9wcm9ncmVzc2Jhci1kZXRlcm1pbmF0ZS5jb21wb25lbnQnO1xuZXhwb3J0IHtQcm9ncmVzc0JhckluZGV0ZXJtaW5hdGVDb21wb25lbnQgYXMgybVkZ30gZnJvbSAnLi9jb21wb25lbnRzL3Byb2dyZXNzYmFyL2NvbXBvbmVudHMvcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZS9wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlLmNvbXBvbmVudCc7XG5leHBvcnQge1NlbGVjdEJ1dHRvbkl0ZW1Db21wb25lbnQgYXMgybVkaH0gZnJvbSAnLi9jb21wb25lbnRzL3NlbGVjdC1idXR0b24vY29tcG9uZW50cy9zZWxlY3QtYnV0dG9uLWl0ZW0vc2VsZWN0LWJ1dHRvbi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0JvcmRlckJ1dHRvbkNvbXBvbmVudCBhcyDJtWRlfSBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmVkL2JvcmRlci1idXR0b24vYm9yZGVyLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtCb3JkZXJCdXR0b25Nb2R1bGUgYXMgybVkZH0gZnJvbSAnLi9jb21wb25lbnRzL3NoYXJlZC9ib3JkZXItYnV0dG9uL2JvcmRlci1idXR0b24ubW9kdWxlJztcbmV4cG9ydCB7U2xpZGVQYW5lbFNlcnZpY2UgYXMgybVkaX0gZnJvbSAnLi9jb21wb25lbnRzL3NsaWRlLXBhbmVsL3NsaWRlLXBhbmVsLnNlcnZpY2UnO1xuZXhwb3J0IHtGb290ZXJDb21wb25lbnQgYXMgybVib30gZnJvbSAnLi9jb21wb25lbnRzL3N0cnVjdHVyZS9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7SGVhZGVyQ29tcG9uZW50IGFzIMm1Ym59IGZyb20gJy4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1N0cnVjdHVyZU1vZHVsZSBhcyDJtWJtfSBmcm9tICcuL2NvbXBvbmVudHMvc3RydWN0dXJlL3N0cnVjdHVyZS5tb2R1bGUnO1xuZXhwb3J0IHtUYWJsZUNvbHVtbnNDb21wb25lbnQgYXMgybV2fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUtY29sdW1uL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50JztcbmV4cG9ydCB7VGFibGVQYWdpbmdDb21wb25lbnQgYXMgybV3fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUtcGFnaW5nL3RhYmxlLXBhZ2luZy5jb21wb25lbnQnO1xuZXhwb3J0IHtUZW1wbGF0ZURpcmVjdGl2ZSBhcyDJtWN9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHtUZW1wbGF0ZU1vZHVsZSBhcyDJtWR9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0IHtUaHVtYm5haWxTZXJ2aWNlIGFzIMm1Ymx9IGZyb20gJy4vY29tcG9uZW50cy90aHVtYm5haWwvdGh1bWJuYWlsLnNlcnZpY2UnO1xuZXhwb3J0IHtUaWVyZWRNZW51RGl2aWRlckNvbXBvbmVudCBhcyDJtWRjfSBmcm9tICcuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvY29tcG9uZW50cy90aWVyZWQtbWVudS1kaXZpZGVyL3RpZXJlZC1tZW51LWRpdmlkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VGllcmVkTWVudUl0ZW1Db21wb25lbnQgYXMgybVkYn0gZnJvbSAnLi9jb21wb25lbnRzL3RpZXJlZC1tZW51L2NvbXBvbmVudHMvdGllcmVkLW1lbnUtaXRlbS90aWVyZWQtbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge1RpZXJlZE1lbnVOZXN0ZWRDb21wb25lbnQgYXMgybVkYX0gZnJvbSAnLi9jb21wb25lbnRzL3RpZXJlZC1tZW51L2NvbXBvbmVudHMvdGllcmVkLW1lbnUtbmVzdGVkL3RpZXJlZC1tZW51LW5lc3RlZC5jb21wb25lbnQnO1xuZXhwb3J0IHtUaWVyZWRNZW51Q29tcG9uZW50IGFzIMm1Y3p9IGZyb20gJy4vY29tcG9uZW50cy90aWVyZWQtbWVudS9jb21wb25lbnRzL3RpZXJlZC1tZW51L3RpZXJlZC1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQge1RpZXJlZE1lbnVFdmVudFNlcnZpY2UgYXMgybVjd30gZnJvbSAnLi9jb21wb25lbnRzL3RpZXJlZC1tZW51L3NlcnZpY2VzL3RpZXJlZC1tZW51LmV2ZW50LnNlcnZpY2UnO1xuZXhwb3J0IHtUaWVyZWRNZW51R2xvYmFsU2VydmljZSBhcyDJtWN5fSBmcm9tICcuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvc2VydmljZXMvdGllcmVkLW1lbnUuZ2xvYmFsLnNlcnZpY2UnO1xuZXhwb3J0IHtUaWVyZWRNZW51U2VydmljZSBhcyDJtWN4fSBmcm9tICcuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvc2VydmljZXMvdGllcmVkLW1lbnUuc2VydmljZSc7XG5leHBvcnQge0hvcml6b250YWxUaW1lbGluZUNvbXBvbmVudCBhcyDJtWRtfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUvY29tcG9uZW50cy9ob3Jpem9udGFsLXRpbWVsaW5lL2hvcml6b250YWwtdGltZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCB7SG9yaXpvbnRhbFRpbWVsaW5lTW9kdWxlIGFzIMm1ZGx9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL2hvcml6b250YWwtdGltZWxpbmUvaG9yaXpvbnRhbC10aW1lbGluZS5tb2R1bGUnO1xuZXhwb3J0IHtUaW1lbGluZUljb25JdGVtQ29tcG9uZW50IGFzIMm1ZGt9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL3RpbWVsaW5lLWljb24taXRlbS90aW1lbGluZS1pY29uLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7VGltZWxpbmVJdGVtTW9kdWxlIGFzIMm1ZGp9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL3RpbWVsaW5lLWljb24taXRlbS90aW1lbGluZS1pY29uLWl0ZW0ubW9kdWxlJztcbmV4cG9ydCB7Q29sbGFwc2VPcHRpb25Db21wb25lbnQgYXMgybVkcX0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvdmVydGljYWwtdGltZWxpbmUvY29tcG9uZW50cy9jb2xsYXBzZS1vcHRpb24vY29sbGFwc2Utb3B0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge0NvbGxhcHNlZEl0ZW1zQ29tcG9uZW50IGFzIMm1ZHJ9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL3ZlcnRpY2FsLXRpbWVsaW5lL2NvbXBvbmVudHMvY29sbGFwc2VkLWl0ZW1zL2NvbGxhcHNlZC1pdGVtcy5jb21wb25lbnQnO1xuZXhwb3J0IHtSYW5nZUxpbmVDb21wb25lbnQgYXMgybVkcH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvdmVydGljYWwtdGltZWxpbmUvY29tcG9uZW50cy9yYW5nZS1saW5lL3JhbmdlLWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCB7VmVydGljYWxJdGVtc0NvbXBvbmVudCBhcyDJtWRzfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUvY29tcG9uZW50cy92ZXJ0aWNhbC10aW1lbGluZS9jb21wb25lbnRzL3ZlcnRpY2FsLWl0ZW1zL3ZlcnRpY2FsLWl0ZW1zLmNvbXBvbmVudCc7XG5leHBvcnQge1ZlcnRpY2FsVGltZWxpbmVDb21wb25lbnQgYXMgybVkb30gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvdmVydGljYWwtdGltZWxpbmUvdmVydGljYWwtdGltZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCB7VmVydGljYWxUaW1lbGluZU1vZHVsZSBhcyDJtWRufSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUvY29tcG9uZW50cy92ZXJ0aWNhbC10aW1lbGluZS92ZXJ0aWNhbC10aW1lbGluZS5tb2R1bGUnO1xuZXhwb3J0IHtUb29sdGlwQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuZXhwb3J0IHtUb29sdGlwRGlyZWN0aXZlIGFzIMm1Yn0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtJQXNzaXN0SWNvbkNvbXBvbmVudCBhcyDJtXB9IGZyb20gJy4vdXRpbHMvc3ZnLWZhY3RvcnkvY29tcG9uZW50cy9pYXNzaXN0LWljb24vaWFzc2lzdC1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQge1Nlbmlvckljb25Db21wb25lbnQgYXMgybVxfSBmcm9tICcuL3V0aWxzL3N2Zy1mYWN0b3J5L2NvbXBvbmVudHMvc2VuaW9yLWljb24vc2VuaW9yLWljb24uY29tcG9uZW50JzsiXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlbmlvcnNpc3RlbWFzLWFuZ3VsYXItY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsVUFBVSxJQUFJLEVBQUUsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLHFGQUFxRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUN0RyxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFDLHFCQUFxQixJQUFJLEdBQUcsRUFBQyxNQUFNLDRFQUE0RSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUNsSCxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFDM0csT0FBTyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLHVGQUF1RixDQUFDO0FBQ3hJLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxHQUFHLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUMvSCxPQUFPLEVBQUMsb0JBQW9CLElBQUksR0FBRyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDekgsT0FBTyxFQUFDLHFCQUFxQixJ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QUMsTUFBTSw2RUFBNkUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUM5RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0sa0VBQWtFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QmlnbnVtYmVySW5wdXRNb2R1bGUgYXMgybVibH0gZnJvbSAnLi9jb21wb25lbnRzL2JpZ251bWJlci1pbnB1dCc7XG5leHBvcnQge0NvcmVGYWNhZGUgYXMgybVnfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1lZGl0b3IvY29yZS9mYWNhZGVzL2NvcmUtZmFjYWRlJztcbmV4cG9ydCB7Q29kZU1pcnJvcjZDb3JlIGFzIMm1aH0gZnJvbSAnLi9jb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi9jb2RlbWlycm9yLTYtY29yZSc7XG5leHBvcnQge0N1c3RvbVRyYW5zbGF0aW9uc01vZHVsZSBhcyDJtWV9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS91dGlscy9jdXN0b20tdHJhbnNsYXRpb25zL2N1c3RvbS10cmFuc2xhdGlvbnMubW9kdWxlJztcbmV4cG9ydCB7Q29kZUVkaXRvckNvbXBvbmVudCBhcyDJtWZ9IGZyb20gJy4vY29tcG9uZW50cy9jb2RlLWVkaXRvci9wcmVzZW50YXRpb24vY29kZS1lZGl0b3ItY29tcG9uZW50JztcbmV4cG9ydCB7Q291bnRyeVBob25lUGlja2VyU2VydmljZSBhcyDJtWl9IGZyb20gJy4vY29tcG9uZW50cy9jb3VudHJ5LXBob25lLXBpY2tlci9jb3VudHJ5LXBob25lLXBpY2tlci5zZXJ2aWNlJztcbmV4cG9ydCB7RHluYW1pY0ZpZWxkQ29tcG9uZW50IGFzIMm1Ynp9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZpZWxkL2R5bmFtaWMtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7RmllbGRMYWJlbENvbXBvbmVudCBhcyDJtWJhfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCB7RmllbGRMYWJlbE1vZHVsZSBhcyDJtXl9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZC1sYWJlbC9maWVsZC1sYWJlbC5tb2R1bGUnO1xuZXhwb3J0IHtBdXRvY29tcGxldGVGaWVsZENvbXBvbmVudCBhcyDJtWJ0fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7QmlnbnVtYmVyRmllbGRDb21wb25lbnQgYXMgybVibX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9iaWdudW1iZXIvYmlnbnVtYmVyLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0JpZ251bWJlckZpZWxkTW9kdWxlIGFzIMm1Ymt9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYmlnbnVtYmVyL2JpZ251bWJlci1maWVsZC5tb2R1bGUnO1xuZXhwb3J0IHtCb29sZWFuRmllbGRDb21wb25lbnQgYXMgybVidX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9ib29sZWFuL2Jvb2xlYW4tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7Qm9vbGVhblN3aXRjaEZpZWxkQ29tcG9uZW50IGFzIMm1YnZ9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvYm9vbGVhbi9ib29sZWFuLXN3aXRjaC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtDYWxlbmRhckZpZWxkQ29tcG9uZW50IGFzIMm1Ynd9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXIvY2FsZW5kYXItZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7Q2hpcHNGaWVsZENvbXBvbmVudCBhcyDJtWJ4fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2NoaXBzL2NoaXBzLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0NvdW50cnlQaG9uZVBpY2tlckZpZWxkQ29tcG9uZW50IGFzIMm1Ynl9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXItZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7Q3VycmVuY3lGaWVsZENvbXBvbmVudCBhcyDJtWJqfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL2N1cnJlbmN5L2N1cnJlbmN5LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge0N1cnJlbmN5RmllbGRNb2R1bGUgYXMgybViaX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9jdXJyZW5jeS9jdXJyZW5jeS1maWVsZC5tb2R1bGUnO1xuZXhwb3J0IHtGaWxlVXBsb2FkQ29tcG9uZW50IGFzIMm1Y2N9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCB7TG9va3VwRmllbGRDb21wb25lbnQgYXMgybVjZH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9sb29rdXAvbG9va3VwLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge051bWJlckZpZWxkQ29tcG9uZW50IGFzIMm1Ymh9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvbnVtYmVyL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtOdW1iZXJGaWVsZE1vZHVsZSBhcyDJtWJlfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL251bWJlci9udW1iZXItZmllbGQubW9kdWxlJztcbmV4cG9ydCB7UGFzc3dvcmRGaWVsZENvbXBvbmVudCBhcyDJtWJifSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3Bhc3N3b3JkL3Bhc3N3b3JkLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1Bhc3N3b3JkRmllbGRNb2R1bGUgYXMgybV4fSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3Bhc3N3b3JkL3Bhc3N3b3JkLWZpZWxkLm1vZHVsZSc7XG5leHBvcnQge1Byb2ZpbGVQaWN0dXJlRmllbGRDb21wb25lbnQgYXMgybVic30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9wcm9maWxlLXBpY3R1cmUvcHJvZmlsZS1waWN0dXJlLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1Byb2ZpbGVQaWN0dXJlTW9kdWxlIGFzIMm1Ym59IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvcHJvZmlsZS1waWN0dXJlL3Byb2ZpbGUtcGljdHVyZS1maWVsZC5tb2R1bGUnO1xuZXhwb3J0IHtSYWRpb0J1dHRvbkNvbXBvbmVudCBhcyDJtWNlfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCB7U2VsZWN0RmllbGRDb21wb25lbnQgYXMgybVjaH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3Qvc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1NsaWRlckZpZWxkQ29tcG9uZW50IGFzIMm1Y2l9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9maWVsZHMvc2xpZGVyL3NsaWRlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtUZXh0QXJlYUlBRmllbGRDb21wb25lbnQgYXMgybVja30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEtaWEvdGV4dC1hcmVhLWlhLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1RleHRBcmVhRmllbGRDb21wb25lbnQgYXMgybVjan0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWFyZWEvdGV4dC1hcmVhLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQge1RleHRGaWVsZENvbXBvbmVudCBhcyDJtWJkfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZmllbGRzL3RleHQvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0IHtUZXh0RmllbGRNb2R1bGUgYXMgybViY30gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy90ZXh0L3RleHQtZmllbGQubW9kdWxlJztcbmV4cG9ydCB7Um93Q29tcG9uZW50IGFzIMm1Y2Z9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50JztcbmV4cG9ydCB7RmllbGRzZXRDb21wb25lbnQgYXMgybVjYn0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL3N0cnVjdHVyZS9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZWN0aW9uQ29tcG9uZW50IGFzIMm1Y2d9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9zdHJ1Y3R1cmUvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge0RlY2ltYWxGaWVsZCBhcyDJtWNuLERlY2ltYWxGaWVsZENvbmZpZyBhcyDJtWNtfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9kZWNpbWFsLWZpZWxkJztcbmV4cG9ydCB7RHluYW1pY0Zvcm1EaXJlY3RpdmUgYXMgybVjYX0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uZGlyZWN0aXZlJztcbmV4cG9ydCB7SUFzc2lzdFNlcnZpY2UgYXMgybVjbH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zZXJ2aWNlcy9JQXNzaXN0L2lhc3Npc3Quc2VydmljZSc7XG5leHBvcnQge0VtcHR5U3RhdGVHb0JhY2tDb21wb25lbnQgYXMgybVvfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktc3RhdGUvZ28tYmFjay9nby1iYWNrLmNvbXBvbmVudCc7XG5leHBvcnQge0ZpbGVVcGxvYWRTZXJ2aWNlIGFzIMm1dH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xuZXhwb3J0IHtTaWRlVGFibGVDb21wb25lbnQgYXMgybVjb30gZnJvbSAnLi9jb21wb25lbnRzL2dhbnR0L2NvbXBvbmVudHMvc2lkZS10YWJsZS9zaWRlLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQge0lBSW5zaWdodENhcmRMb2FkZXJDb21wb25lbnQgYXMgybVjdH0gZnJvbSAnLi9jb21wb25lbnRzL2lhLWluc2lnaHQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LWNhcmQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LWNhcmQtbG9hZGVyL2lhLWluc2lnaHQtY2FyZC1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7SUFJbnNpZ2h0Q2FyZENvbXBvbmVudCBhcyDJtWNzfSBmcm9tICcuL2NvbXBvbmVudHMvaWEtaW5zaWdodC9jb21wb25lbnRzL2lhLWluc2lnaHQtY2FyZC9pYS1pbnNpZ2h0LWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCB7SUFJbnNpZ2h0U2lkZWJhckNvbXBvbmVudCBhcyDJtWNyfSBmcm9tICcuL2NvbXBvbmVudHMvaWEtaW5zaWdodC9jb21wb25lbnRzL2lhLWluc2lnaHQtc2lkZWJhci9pYS1pbnNpZ2h0LXNpZGViYXIuY29tcG9uZW50JztcbmV4cG9ydCB7SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgYXMgybVjcX0gZnJvbSAnLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcbmV4cG9ydCB7SW5maW5pdGVTY3JvbGxNb2R1bGUgYXMgybVjcH0gZnJvbSAnLi9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC9pbmZpbml0ZS1zY3JvbGwubW9kdWxlJztcbmV4cG9ydCB7SW5mb1NpZ25Nb2R1bGUgYXMgybV6fSBmcm9tICcuL2NvbXBvbmVudHMvaW5mby1zaWduJztcbmV4cG9ydCB7SW5mb1NpZ25Db21wb25lbnQgYXMgybV1fSBmcm9tICcuL2NvbXBvbmVudHMvaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQnO1xuZXhwb3J0IHtLYW5iYW5Db2x1bW5Db21wb25lbnQgYXMgybVjd30gZnJvbSAnLi9jb21wb25lbnRzL2thbmJhbi9jb21wb25lbnRzL2thbmJhbi1jb2x1bW4va2FuYmFuLWNvbHVtbi5jb21wb25lbnQnO1xuZXhwb3J0IHtLYW5iYW5JdGVtRHJhZ2dpbmdDb21wb25lbnQgYXMgybVjeH0gZnJvbSAnLi9jb21wb25lbnRzL2thbmJhbi9jb21wb25lbnRzL2thbmJhbi1pdGVtLWRyYWdnaW5nL2thbmJhbi1pdGVtLWRyYWdnaW5nLmNvbXBvbmVudCc7XG5leHBvcnQge0thbmJhbkl0ZW1Db21wb25lbnQgYXMgybVjdn0gZnJvbSAnLi9jb21wb25lbnRzL2thbmJhbi9jb21wb25lbnRzL2thbmJhbi1pdGVtL2thbmJhbi1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQge0thbmJhbkV2ZW50U2VydmljZSBhcyDJtWN1fSBmcm9tICcuL2NvbXBvbmVudHMva2FuYmFuL2thbmJhbi1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7RG90c0luZGljYXRvckNvbXBvbmVudCBhcyDJtXJ9IGZyb20gJy4vY29tcG9uZW50cy9sb2FkaW5nLXN0YXRlL2NvbXBvbmVudHMvZG90cy1pbmRpY2F0b3IvZG90cy1pbmRpY2F0b3IuY29tcG9uZW50cyc7XG5leHBvcnQge0xvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQgYXMgybVzfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGluZy1zdGF0ZS9jb21wb25lbnRzL2xvZ28taW5kaWNhdG9yL2xvZ28taW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQge051bWJlckxvY2FsZU9wdGlvbnMgYXMgybVjeX0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9vcHRpb25zJztcbmV4cG9ydCB7TG9jYWxpemVkQmlnbnVtYmVySW1wdXJlUGlwZSBhcyDJtWx9IGZyb20gJy4vY29tcG9uZW50cy9sb2NhbGUvcGlwZXMvbG9jYWxpemVkLWJpZ251bWJlci1pbXB1cmUucGlwZSc7XG5leHBvcnQge0xvY2FsaXplZEJpZ251bWJlclBpcGUgYXMgybVrfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxlL3BpcGVzL2xvY2FsaXplZC1iaWdudW1iZXIucGlwZSc7XG5leHBvcnQge0xvY2FsaXplZEN1cnJlbmN5SW1wdXJlUGlwZSBhcyDJtWp9IGZyb20gJy4vY29tcG9uZW50cy9sb2NhbGUvcGlwZXMvbG9jYWxpemVkLWN1cnJlbmN5LWltcHVyZS5waXBlJztcbmV4cG9ydCB7TnVtZXJpY1BpcGUgYXMgybVtfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxlL3BpcGVzL251bWVyaWMucGlwZSc7XG5leHBvcnQge051bWVyaWNTZXJ2aWNlIGFzIMm1bn0gZnJvbSAnLi9jb21wb25lbnRzL2xvY2FsZS9zZXJ2aWNlcy9udW1lcmljLnNlcnZpY2UnO1xuZXhwb3J0IHtMb2NhbGl6ZWROdW1iZXJJbnB1dE1vZHVsZSBhcyDJtWJmfSBmcm9tICcuL2NvbXBvbmVudHMvbG9jYWxpemVkLW51bWJlci1pbnB1dCc7XG5leHBvcnQge051bWJlcklucHV0TW9kdWxlIGFzIMm1Ymd9IGZyb20gJy4vY29tcG9uZW50cy9udW1iZXItaW5wdXQnO1xuZXhwb3J0IHtQcm9ncmVzc0JhckRldGVybWluYXRlQ29tcG9uZW50IGFzIMm1ZGl9IGZyb20gJy4vY29tcG9uZW50cy9wcm9ncmVzc2Jhci9jb21wb25lbnRzL3Byb2dyZXNzYmFyLWRldGVybWluYXRlL3Byb2dyZXNzYmFyLWRldGVybWluYXRlLmNvbXBvbmVudCc7XG5leHBvcnQge1Byb2dyZXNzQmFySW5kZXRlcm1pbmF0ZUNvbXBvbmVudCBhcyDJtWRqfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZ3Jlc3NiYXIvY29tcG9uZW50cy9wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlL3Byb2dyZXNzYmFyLWluZGV0ZXJtaW5hdGUuY29tcG9uZW50JztcbmV4cG9ydCB7U2VsZWN0QnV0dG9uSXRlbUNvbXBvbmVudCBhcyDJtWRrfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0LWJ1dHRvbi9jb21wb25lbnRzL3NlbGVjdC1idXR0b24taXRlbS9zZWxlY3QtYnV0dG9uLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7Qm9yZGVyQnV0dG9uQ29tcG9uZW50IGFzIMm1ZGh9IGZyb20gJy4vY29tcG9uZW50cy9zaGFyZWQvYm9yZGVyLWJ1dHRvbi9ib3JkZXItYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQge0JvcmRlckJ1dHRvbk1vZHVsZSBhcyDJtWRnfSBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmVkL2JvcmRlci1idXR0b24vYm9yZGVyLWJ1dHRvbi5tb2R1bGUnO1xuZXhwb3J0IHtTbGlkZVBhbmVsU2VydmljZSBhcyDJtWRsfSBmcm9tICcuL2NvbXBvbmVudHMvc2xpZGUtcGFuZWwvc2xpZGUtcGFuZWwuc2VydmljZSc7XG5leHBvcnQge0Zvb3RlckNvbXBvbmVudCBhcyDJtWJyfSBmcm9tICcuL2NvbXBvbmVudHMvc3RydWN0dXJlL2Zvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0IHtIZWFkZXJDb21wb25lbnQgYXMgybVicX0gZnJvbSAnLi9jb21wb25lbnRzL3N0cnVjdHVyZS9oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7U3RydWN0dXJlTW9kdWxlIGFzIMm1YnB9IGZyb20gJy4vY29tcG9uZW50cy9zdHJ1Y3R1cmUvc3RydWN0dXJlLm1vZHVsZSc7XG5leHBvcnQge1RhYmxlQ29sdW1uc0NvbXBvbmVudCBhcyDJtXZ9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQnO1xuZXhwb3J0IHtUYWJsZVBhZ2luZ0NvbXBvbmVudCBhcyDJtXd9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1wYWdpbmcvdGFibGUtcGFnaW5nLmNvbXBvbmVudCc7XG5leHBvcnQge1RlbXBsYXRlRGlyZWN0aXZlIGFzIMm1Y30gZnJvbSAnLi9jb21wb25lbnRzL3RlbXBsYXRlL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQge1RlbXBsYXRlTW9kdWxlIGFzIMm1ZH0gZnJvbSAnLi9jb21wb25lbnRzL3RlbXBsYXRlL3RlbXBsYXRlLm1vZHVsZSc7XG5leHBvcnQge1RodW1ibmFpbFNlcnZpY2UgYXMgybVib30gZnJvbSAnLi9jb21wb25lbnRzL3RodW1ibmFpbC90aHVtYm5haWwuc2VydmljZSc7XG5leHBvcnQge1RpZXJlZE1lbnVEaXZpZGVyQ29tcG9uZW50IGFzIMm1ZGZ9IGZyb20gJy4vY29tcG9uZW50cy90aWVyZWQtbWVudS9jb21wb25lbnRzL3RpZXJlZC1tZW51LWRpdmlkZXIvdGllcmVkLW1lbnUtZGl2aWRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUaWVyZWRNZW51SXRlbUNvbXBvbmVudCBhcyDJtWRlfSBmcm9tICcuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvY29tcG9uZW50cy90aWVyZWQtbWVudS1pdGVtL3RpZXJlZC1tZW51LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCB7VGllcmVkTWVudU5lc3RlZENvbXBvbmVudCBhcyDJtWRkfSBmcm9tICcuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvY29tcG9uZW50cy90aWVyZWQtbWVudS1uZXN0ZWQvdGllcmVkLW1lbnUtbmVzdGVkLmNvbXBvbmVudCc7XG5leHBvcnQge1RpZXJlZE1lbnVDb21wb25lbnQgYXMgybVkY30gZnJvbSAnLi9jb21wb25lbnRzL3RpZXJlZC1tZW51L2NvbXBvbmVudHMvdGllcmVkLW1lbnUvdGllcmVkLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCB7VGllcmVkTWVudUV2ZW50U2VydmljZSBhcyDJtWN6fSBmcm9tICcuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvc2VydmljZXMvdGllcmVkLW1lbnUuZXZlbnQuc2VydmljZSc7XG5leHBvcnQge1RpZXJlZE1lbnVHbG9iYWxTZXJ2aWNlIGFzIMm1ZGJ9IGZyb20gJy4vY29tcG9uZW50cy90aWVyZWQtbWVudS9zZXJ2aWNlcy90aWVyZWQtbWVudS5nbG9iYWwuc2VydmljZSc7XG5leHBvcnQge1RpZXJlZE1lbnVTZXJ2aWNlIGFzIMm1ZGF9IGZyb20gJy4vY29tcG9uZW50cy90aWVyZWQtbWVudS9zZXJ2aWNlcy90aWVyZWQtbWVudS5zZXJ2aWNlJztcbmV4cG9ydCB7SG9yaXpvbnRhbFRpbWVsaW5lQ29tcG9uZW50IGFzIMm1ZHB9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL2hvcml6b250YWwtdGltZWxpbmUvaG9yaXpvbnRhbC10aW1lbGluZS5jb21wb25lbnQnO1xuZXhwb3J0IHtIb3Jpem9udGFsVGltZWxpbmVNb2R1bGUgYXMgybVkb30gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvaG9yaXpvbnRhbC10aW1lbGluZS9ob3Jpem9udGFsLXRpbWVsaW5lLm1vZHVsZSc7XG5leHBvcnQge1RpbWVsaW5lSWNvbkl0ZW1Db21wb25lbnQgYXMgybVkbn0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvdGltZWxpbmUtaWNvbi1pdGVtL3RpbWVsaW5lLWljb24taXRlbS5jb21wb25lbnQnO1xuZXhwb3J0IHtUaW1lbGluZUl0ZW1Nb2R1bGUgYXMgybVkbX0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvdGltZWxpbmUtaWNvbi1pdGVtL3RpbWVsaW5lLWljb24taXRlbS5tb2R1bGUnO1xuZXhwb3J0IHtDb2xsYXBzZU9wdGlvbkNvbXBvbmVudCBhcyDJtWR0fSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUvY29tcG9uZW50cy92ZXJ0aWNhbC10aW1lbGluZS9jb21wb25lbnRzL2NvbGxhcHNlLW9wdGlvbi9jb2xsYXBzZS1vcHRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7Q29sbGFwc2VkSXRlbXNDb21wb25lbnQgYXMgybVkdX0gZnJvbSAnLi9jb21wb25lbnRzL3RpbWVsaW5lL2NvbXBvbmVudHMvdmVydGljYWwtdGltZWxpbmUvY29tcG9uZW50cy9jb2xsYXBzZWQtaXRlbXMvY29sbGFwc2VkLWl0ZW1zLmNvbXBvbmVudCc7XG5leHBvcnQge1JhbmdlTGluZUNvbXBvbmVudCBhcyDJtWRzfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUvY29tcG9uZW50cy92ZXJ0aWNhbC10aW1lbGluZS9jb21wb25lbnRzL3JhbmdlLWxpbmUvcmFuZ2UtbGluZS5jb21wb25lbnQnO1xuZXhwb3J0IHtWZXJ0aWNhbEl0ZW1zQ29tcG9uZW50IGFzIMm1ZHZ9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL3ZlcnRpY2FsLXRpbWVsaW5lL2NvbXBvbmVudHMvdmVydGljYWwtaXRlbXMvdmVydGljYWwtaXRlbXMuY29tcG9uZW50JztcbmV4cG9ydCB7VmVydGljYWxUaW1lbGluZUNvbXBvbmVudCBhcyDJtWRyfSBmcm9tICcuL2NvbXBvbmVudHMvdGltZWxpbmUvY29tcG9uZW50cy92ZXJ0aWNhbC10aW1lbGluZS92ZXJ0aWNhbC10aW1lbGluZS5jb21wb25lbnQnO1xuZXhwb3J0IHtWZXJ0aWNhbFRpbWVsaW5lTW9kdWxlIGFzIMm1ZHF9IGZyb20gJy4vY29tcG9uZW50cy90aW1lbGluZS9jb21wb25lbnRzL3ZlcnRpY2FsLXRpbWVsaW5lL3ZlcnRpY2FsLXRpbWVsaW5lLm1vZHVsZSc7XG5leHBvcnQge1Rvb2x0aXBDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5leHBvcnQge1Rvb2x0aXBEaXJlY3RpdmUgYXMgybVifSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5leHBvcnQge0lBc3Npc3RJY29uQ29tcG9uZW50IGFzIMm1cH0gZnJvbSAnLi91dGlscy9zdmctZmFjdG9yeS9jb21wb25lbnRzL2lhc3Npc3QtaWNvbi9pYXNzaXN0LWljb24uY29tcG9uZW50JztcbmV4cG9ydCB7U2VuaW9ySWNvbkNvbXBvbmVudCBhcyDJtXF9IGZyb20gJy4vdXRpbHMvc3ZnLWZhY3RvcnkvY29tcG9uZW50cy9zZW5pb3ItaWNvbi9zZW5pb3ItaWNvbi5jb21wb25lbnQnOyJdfQ==