valtech-components 2.0.418 → 2.0.420

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/esm2022/lib/components/atoms/button/button.component.mjs +30 -102
  2. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +2 -7
  3. package/esm2022/lib/components/atoms/display/display.component.mjs +18 -101
  4. package/esm2022/lib/components/atoms/image/image.component.mjs +2 -5
  5. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +2 -12
  6. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +4 -29
  7. package/esm2022/lib/components/atoms/text/text.component.mjs +49 -171
  8. package/esm2022/lib/components/atoms/title/title.component.mjs +23 -65
  9. package/esm2022/lib/components/atoms/title/types.mjs +7 -19
  10. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +7 -53
  11. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +7 -26
  12. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +7 -42
  13. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +12 -41
  14. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -28
  15. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +2 -5
  16. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -6
  17. package/esm2022/lib/components/molecules/comment/comment.component.mjs +5 -31
  18. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +2 -23
  19. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +2 -29
  20. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -6
  21. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +16 -40
  22. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +25 -125
  23. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +4 -6
  24. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +2 -10
  25. package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +2 -4
  26. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +2 -23
  27. package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +3 -6
  28. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +9 -12
  29. package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +3 -11
  30. package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +4 -25
  31. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -34
  32. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +11 -20
  33. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +4 -6
  34. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +1 -6
  35. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -28
  36. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +7 -41
  37. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +2 -27
  38. package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +2 -10
  39. package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +7 -37
  40. package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +1 -12
  41. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +8 -54
  42. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +1 -3
  43. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -5
  44. package/esm2022/lib/services/locale.service.mjs +75 -0
  45. package/esm2022/lib/services/types.mjs +5 -3
  46. package/esm2022/public-api.mjs +2 -7
  47. package/fesm2022/valtech-components.mjs +366 -2279
  48. package/fesm2022/valtech-components.mjs.map +1 -1
  49. package/lib/components/atoms/button/button.component.d.ts +12 -37
  50. package/lib/components/atoms/countdown/countdown.component.d.ts +0 -1
  51. package/lib/components/atoms/display/display.component.d.ts +8 -60
  52. package/lib/components/atoms/image/image.component.d.ts +0 -2
  53. package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -1
  54. package/lib/components/atoms/qr-code/qr-code.component.d.ts +2 -6
  55. package/lib/components/atoms/text/text.component.d.ts +20 -68
  56. package/lib/components/atoms/title/title.component.d.ts +7 -12
  57. package/lib/components/atoms/title/types.d.ts +11 -24
  58. package/lib/components/molecules/accordion/accordion.component.d.ts +2 -9
  59. package/lib/components/molecules/alert-box/alert-box.component.d.ts +3 -8
  60. package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +2 -8
  61. package/lib/components/molecules/check-input/check-input.component.d.ts +2 -10
  62. package/lib/components/molecules/chip-group/chip-group.component.d.ts +2 -8
  63. package/lib/components/molecules/code-display/code-display.component.d.ts +0 -2
  64. package/lib/components/molecules/command-display/command-display.component.d.ts +0 -3
  65. package/lib/components/molecules/comment/comment.component.d.ts +2 -6
  66. package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -3
  67. package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -3
  68. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -1
  69. package/lib/components/molecules/glow-card/glow-card.component.d.ts +5 -9
  70. package/lib/components/molecules/language-selector/language-selector.component.d.ts +7 -19
  71. package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -2
  72. package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -1
  73. package/lib/components/molecules/participant-card/participant-card.component.d.ts +0 -1
  74. package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -3
  75. package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -3
  76. package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +3 -4
  77. package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +0 -1
  78. package/lib/components/molecules/range-input/range-input.component.d.ts +3 -8
  79. package/lib/components/molecules/segment-control/segment-control.component.d.ts +2 -8
  80. package/lib/components/molecules/select-input/select-input.component.d.ts +2 -3
  81. package/lib/components/molecules/select-search/select-search.component.d.ts +0 -2
  82. package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -1
  83. package/lib/components/molecules/stepper/stepper.component.d.ts +2 -8
  84. package/lib/components/molecules/tabs/tabs.component.d.ts +2 -8
  85. package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +2 -6
  86. package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +0 -1
  87. package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +2 -8
  88. package/lib/components/molecules/winner-display/winner-display.component.d.ts +0 -1
  89. package/lib/components/organisms/comment-section/comment-section.component.d.ts +2 -6
  90. package/lib/components/organisms/data-table/data-table.component.d.ts +0 -1
  91. package/lib/components/organisms/wizard/wizard.component.d.ts +0 -2
  92. package/lib/services/locale.service.d.ts +52 -0
  93. package/lib/services/types.d.ts +1 -6
  94. package/package.json +1 -3
  95. package/public-api.d.ts +1 -5
  96. package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +0 -13
  97. package/esm2022/lib/services/lang-provider/content.mjs +0 -156
  98. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +0 -530
  99. package/esm2022/lib/services/lang-provider/types.mjs +0 -23
  100. package/esm2022/lib/shared/utils/content.mjs +0 -186
  101. package/esm2022/lib/shared/utils/simple-content.mjs +0 -119
  102. package/lib/services/lang-provider/components/lang-settings.d.ts +0 -3
  103. package/lib/services/lang-provider/content.d.ts +0 -17
  104. package/lib/services/lang-provider/lang-provider.service.d.ts +0 -264
  105. package/lib/services/lang-provider/types.d.ts +0 -30
  106. package/lib/shared/utils/content.d.ts +0 -199
  107. package/lib/shared/utils/simple-content.d.ts +0 -120
@@ -1,7 +1,6 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, HostListener, inject, Input } from '@angular/core';
2
+ import { Component, HostListener, Input } from '@angular/core';
3
3
  import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonModal, IonTitle, IonToolbar, } from '@ionic/angular/standalone';
4
- import { LangService } from '../../../services/lang-provider/lang-provider.service';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@angular/common";
7
6
  /**
@@ -61,8 +60,6 @@ export class ImageComponent {
61
60
  this.initialDistance = 0;
62
61
  this.initialZoom = 1;
63
62
  this.touches = [];
64
- // Lang service
65
- this.langService = inject(LangService);
66
63
  // Math for template
67
64
  this.Math = Math;
68
65
  }
@@ -507,4 +504,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
507
504
  type: HostListener,
508
505
  args: ['document:keydown', ['$event']]
509
506
  }] } });
510
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFVBQVUsR0FDWCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7O0FBcUpwRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0NHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFnQ3pCO1FBNUJBLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFMUIsMEJBQTBCO1FBQzFCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsWUFBTyxHQUFXLEdBQUcsQ0FBQztRQUN0QixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFDakIsU0FBSSxHQUFXLENBQUMsQ0FBQztRQUVqQix5Q0FBeUM7UUFDekMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUNuQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBRW5CLDJCQUEyQjtRQUMzQixvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixZQUFPLEdBQVksRUFBRSxDQUFDO1FBRXRCLGVBQWU7UUFDZixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQyxvQkFBb0I7UUFDcEIsU0FBSSxHQUFHLElBQUksQ0FBQztJQUVHLENBQUM7SUFFaEIsUUFBUTtRQUNOLHFCQUFxQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDbEMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtJQUNmLE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlELHdDQUF3QztZQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxlQUFlO0lBQ2YsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUVoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN4QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRXBELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsWUFBWSxDQUFDLEtBQWlCO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsZ0NBQWdDO1lBQ2hDLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxpQ0FBaUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkUsc0JBQXNCO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDcEQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckMsMkJBQTJCO1lBQzNCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0UsTUFBTSxLQUFLLEdBQUcsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUUxRix3Q0FBd0M7WUFDeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBaUI7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLE9BQU8sQ0FBQyxLQUFpQjtRQUN2QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdkIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUM7UUFFbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3Rix3Q0FBd0M7UUFDeEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7SUFDVCxXQUFXLENBQUMsTUFBYSxFQUFFLE1BQWE7UUFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELHFCQUFxQjtJQUVyQixTQUFTLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUVoQyxRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwQixNQUFNO1lBQ1IsS0FBSyxHQUFHLENBQUM7WUFDVCxLQUFLLEdBQUc7Z0JBQ04sS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLEtBQUssR0FBRztnQkFDTixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZixNQUFNO1lBQ1IsS0FBSyxHQUFHO2dCQUNOLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7K0dBM01VLGNBQWM7bUdBQWQsY0FBYyxtS0FuTGY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EySVQsNGtMQTVJUyxZQUFZLGtOQUFFLFFBQVEsc0RBQUUsU0FBUyxvR0FBRSxVQUFVLG1GQUFZLFVBQVUsd0tBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVU7OzRGQW9MbEcsY0FBYztrQkF2TDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLFlBQ3BHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMklUO3dEQTBDRCxLQUFLO3NCQURKLEtBQUs7Z0JBcUxOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uTW9kYWwsXG4gIElvblRpdGxlLFxuICBJb25Ub29sYmFyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaW1hZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25Nb2RhbCwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25UaXRsZSwgSW9uQ29udGVudCwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25CdXR0b25zXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZmlndXJlXG4gICAgICBjbGFzcz1cInZhbC1pbWFnZS1jb250YWluZXJcIlxuICAgICAgW2NsYXNzXT1cInByb3BzLmNvbnRhaW5lckNsYXNzXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ3ZhbC1pbWFnZS1jb250YWluZXItLWxlZnQnOiBwcm9wcy5hbGlnbm1lbnQgPT09ICdsZWZ0JyxcbiAgICAgICAgJ3ZhbC1pbWFnZS1jb250YWluZXItLWNlbnRlcic6IHByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcicgfHwgIXByb3BzLmFsaWdubWVudCxcbiAgICAgICAgJ3ZhbC1pbWFnZS1jb250YWluZXItLXJpZ2h0JzogcHJvcHMuYWxpZ25tZW50ID09PSAncmlnaHQnLFxuICAgICAgfVwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGRpc3BsYXk6IHByb3BzLmZsZXggPyAnZmxleCcgOiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtaW1hZ2Utd3JhcHBlclwiPlxuICAgICAgICBAaWYgKHByb3BzLnNyYy5pbmNsdWRlcygnLS0nKSkge1xuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICAgcHJvcHMubW9kZSxcbiAgICAgICAgICAgICAgIXByb3BzLndpZHRoID8gcHJvcHMuc2l6ZSA6ICcnLFxuICAgICAgICAgICAgICBwcm9wcy5wcmV2aWV3TW9kZSA/ICd2YWwtaW1hZ2UtLXByZXZpZXctZW5hYmxlZCcgOiAnJyxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjb250ZW50OiAndmFyKCcgKyBwcm9wcy5zcmMgKyAnKScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtjbGFzcy5ib3JkZXJlZF09XCJwcm9wcy5ib3JkZXJlZFwiXG4gICAgICAgICAgICBbY2xhc3Muc2hhZGVkXT1cInByb3BzLnNoYWRlZFwiXG4gICAgICAgICAgICBbY2xhc3MuZGFya109XCJwcm9wcy5kYXJrXCJcbiAgICAgICAgICAgIFtjbGFzcy5saW1pdGVkXT1cInByb3BzLmxpbWl0ZWRcIlxuICAgICAgICAgICAgW2NsYXNzLmNlbnRlcl09XCJwcm9wcy5hbGlnbm1lbnQgPT09ICdjZW50ZXInXCJcbiAgICAgICAgICAgIFthbHRdPVwicHJvcHMuYWx0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC5yZW1dPVwicHJvcHMud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLm1heC13aWR0aC5yZW1dPVwicHJvcHMud2lkdGhcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJwcm9wcy5oZWlnaHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByb3BzLnByZXZpZXdNb2RlID8gb3BlblByZXZpZXcoKSA6IG51bGxcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICAgICAgICAgcHJvcHMubW9kZSxcbiAgICAgICAgICAgICAgIXByb3BzLndpZHRoID8gcHJvcHMuc2l6ZSA6ICcnLFxuICAgICAgICAgICAgICBwcm9wcy5wcmV2aWV3TW9kZSA/ICd2YWwtaW1hZ2UtLXByZXZpZXctZW5hYmxlZCcgOiAnJyxcbiAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zaGFkZWRdPVwicHJvcHMuc2hhZGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXJrXT1cInByb3BzLmRhcmtcIlxuICAgICAgICAgICAgW2NsYXNzLmxpbWl0ZWRdPVwicHJvcHMubGltaXRlZFwiXG4gICAgICAgICAgICBbY2xhc3MuY2VudGVyXT1cInByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcIlxuICAgICAgICAgICAgW3NyY109XCJwcm9wcy5zcmNcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInByb3BzLmhlaWdodFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicHJvcHMucHJldmlld01vZGUgPyBvcGVuUHJldmlldygpIDogbnVsbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAocHJvcHMuY2FwdGlvbikge1xuICAgICAgICA8ZmlnY2FwdGlvblxuICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlLWNhcHRpb25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICd2YWwtaW1hZ2UtY2FwdGlvbi0tc21hbGwnOiBwcm9wcy5jYXB0aW9uU2l6ZSA9PT0gJ3NtYWxsJyxcbiAgICAgICAgICAgICd2YWwtaW1hZ2UtY2FwdGlvbi0tbWVkaXVtJzogcHJvcHMuY2FwdGlvblNpemUgPT09ICdtZWRpdW0nIHx8ICFwcm9wcy5jYXB0aW9uU2l6ZSxcbiAgICAgICAgICAgICd2YWwtaW1hZ2UtY2FwdGlvbi0tbGFyZ2UnOiBwcm9wcy5jYXB0aW9uU2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHByb3BzLmNhcHRpb24gfX1cbiAgICAgICAgPC9maWdjYXB0aW9uPlxuICAgICAgfVxuICAgIDwvZmlndXJlPlxuXG4gICAgPCEtLSBNb2RhbCBkZSBwcmV2aXN1YWxpemFjacOzbiBjb24gaW9uLW1vZGFsIC0tPlxuICAgIDxpb24tbW9kYWwgW2lzT3Blbl09XCJpc1ByZXZpZXdPcGVuXCIgKGRpZERpc21pc3MpPVwiY2xvc2VQcmV2aWV3KClcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1oZWFkZXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPCEtLSA8aW9uLXRpdGxlPnt7IHByb3BzLmFsdCB8fCAnUHJldmlzdWFsaXphY2nDs24gZGUgaW1hZ2VuJyB9fTwvaW9uLXRpdGxlPiAtLT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiIGZpbGw9XCJjbGVhclwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuXG4gICAgICAgIDxpb24tY29udGVudD5cbiAgICAgICAgICA8IS0tIENvbnRyb2xlcyBkZSB6b29tIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtaW1hZ2UtcHJldmlldy1jb250cm9sc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21PdXQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21MZXZlbCA8PSBtaW5ab29tXCJcbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJyZW1vdmUtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLWltYWdlLXByZXZpZXctem9vbS1sZXZlbFwiPnt7IE1hdGgucm91bmQoem9vbUxldmVsICogMTAwKSB9fSU8L3NwYW4+XG5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJ6b29tSW4oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInpvb21MZXZlbCA+PSBtYXhab29tXCJcbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhZGQtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIEltYWdlbiBhbXBsaWFkYSAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZhbC1pbWFnZS1wcmV2aWV3LXZpZXdwb3J0XCJcbiAgICAgICAgICAgICh0b3VjaHN0YXJ0KT1cIm9uVG91Y2hTdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b3VjaG1vdmUpPVwib25Ub3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAodG91Y2hlbmQpPVwib25Ub3VjaEVuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh3aGVlbCk9XCJvbldoZWVsKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlVXAoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAjcHJldmlld0ltYWdlXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlLXByZXZpZXctaW1nXCJcbiAgICAgICAgICAgICAgW3NyY109XCJwcm9wcy5zcmMuaW5jbHVkZXMoJy0tJykgPyBudWxsIDogcHJvcHMuc3JjXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHByb3BzLnNyYy5pbmNsdWRlcygnLS0nKSA/ICd2YXIoJyArIHByb3BzLnNyYyArICcpJyA6IG51bGwsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoJyArIHpvb21MZXZlbCArICcpIHRyYW5zbGF0ZSgnICsgcGFuWCArICdweCwgJyArIHBhblkgKyAncHgpJyxcbiAgICAgICAgICAgICAgICBjdXJzb3I6IGlzRHJhZ2dpbmcgPyAnZ3JhYmJpbmcnIDogem9vbUxldmVsID4gMSA/ICdncmFiJyA6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFthbHRdPVwicHJvcHMuYWx0XCJcbiAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwiZmFsc2VcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtaW1hZ2VcbiAqXG4gKiBEaXNwbGF5cyBhbiBpbWFnZSB3aXRoIHZhcmlvdXMgZGlzcGxheSBvcHRpb25zIChib3JkZXJlZCwgc2hhZGVkLCBkYXJrLCBldGMpLlxuICogTm93IGluY2x1ZGVzIGEgY29udGFpbmVyIHdyYXBwZXIgZm9yIGJldHRlciBmbGV4Ym94IHN1cHBvcnQgYW5kIGFsaWdubWVudCBvcHRpb25zLlxuICpcbiAqIE5FVzogT3B0aW9uYWwgcHJldmlldyBtb2RlIHdpdGggZnVsbC1zY3JlZW4gem9vbSBjYXBhYmlsaXRpZXM6XG4gKiAtIENsaWNrIHRvIG9wZW4gZnVsbC1zY3JlZW4gcHJldmlldyAod2hlbiBwcmV2aWV3TW9kZSBpcyBlbmFibGVkKVxuICogLSBQaW5jaC10by16b29tIG9uIG1vYmlsZSBkZXZpY2VzXG4gKiAtIE1vdXNlIHdoZWVsIHpvb20gb24gZGVza3RvcFxuICogLSBQYW4vZHJhZyB0byBuYXZpZ2F0ZSB6b29tZWQgaW1hZ2VzXG4gKiAtIFpvb20gY29udHJvbHMgd2l0aCBidXR0b25zXG4gKiAtIEtleWJvYXJkIHNob3J0Y3V0cyAoRXNjIHRvIGNsb3NlLCArLy0gdG8gem9vbSwgMCB0byByZXNldClcbiAqIC0gVG91Y2gtZnJpZW5kbHkgaW50ZXJmYWNlIHdpdGggZ2VzdHVyZSBzdXBwb3J0XG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2U6XG4gKiA8dmFsLWltYWdlIFtwcm9wc109XCJ7XG4gKiAgIHNyYzogJ3VybCcsXG4gKiAgIGFsdDogJ2Rlc2MnLFxuICogICB3aWR0aDogMTAwLFxuICogICBoZWlnaHQ6IDEwMCxcbiAqICAgYm9yZGVyZWQ6IHRydWUsXG4gKiAgIGFsaWdubWVudDogJ2NlbnRlcicsXG4gKiAgIGNhcHRpb246ICdJbWFnZSBkZXNjcmlwdGlvbidcbiAqIH1cIj48L3ZhbC1pbWFnZT5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHByZXZpZXcgbW9kZTpcbiAqIDx2YWwtaW1hZ2UgW3Byb3BzXT1cIntcbiAqICAgc3JjOiAndXJsJyxcbiAqICAgYWx0OiAnZGVzYycsXG4gKiAgIHByZXZpZXdNb2RlOiB0cnVlLFxuICogICBib3JkZXJlZDogdHJ1ZSxcbiAqICAgYWxpZ25tZW50OiAnY2VudGVyJ1xuICogfVwiPjwvdmFsLWltYWdlPlxuICpcbiAqIEBpbnB1dCBwcm9wczogSW1hZ2VNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbWFnZSAoc3JjLCBhbHQsIHNpemUsIG1vZGUsIGFsaWdubWVudCwgY2FwdGlvbiwgcHJldmlld01vZGUsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHByb3BzITogSW1hZ2VNZXRhZGF0YTtcblxuICBhdmFpbGFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8vIFByZXZpZXcgbW9kZSBwcm9wZXJ0aWVzXG4gIGlzUHJldmlld09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgem9vbUxldmVsOiBudW1iZXIgPSAxO1xuICBtaW5ab29tOiBudW1iZXIgPSAwLjU7XG4gIG1heFpvb206IG51bWJlciA9IDU7XG4gIHBhblg6IG51bWJlciA9IDA7XG4gIHBhblk6IG51bWJlciA9IDA7XG5cbiAgLy8gVG91Y2ggYW5kIG1vdXNlIGludGVyYWN0aW9uIHByb3BlcnRpZXNcbiAgaXNEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBsYXN0UGFuWDogbnVtYmVyID0gMDtcbiAgbGFzdFBhblk6IG51bWJlciA9IDA7XG4gIHN0YXJ0WDogbnVtYmVyID0gMDtcbiAgc3RhcnRZOiBudW1iZXIgPSAwO1xuXG4gIC8vIFRvdWNoIGdlc3R1cmUgcHJvcGVydGllc1xuICBpbml0aWFsRGlzdGFuY2U6IG51bWJlciA9IDA7XG4gIGluaXRpYWxab29tOiBudW1iZXIgPSAxO1xuICB0b3VjaGVzOiBUb3VjaFtdID0gW107XG5cbiAgLy8gTGFuZyBzZXJ2aWNlXG4gIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICAvLyBNYXRoIGZvciB0ZW1wbGF0ZVxuICBNYXRoID0gTWF0aDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzXG4gICAgaWYgKCF0aGlzLnByb3BzLmFsaWdubWVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hbGlnbm1lbnQgPSAnY2VudGVyJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnByb3BzLmNhcHRpb25TaXplKSB7XG4gICAgICB0aGlzLnByb3BzLmNhcHRpb25TaXplID0gJ21lZGl1bSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5tb2RlKSB7XG4gICAgICB0aGlzLnByb3BzLm1vZGUgPSAnYm94JztcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VUb1Zpc2libGUoKSB7XG4gICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5hdmFpbGFibGUgPSB0cnVlO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICAvLyBQcmV2aWV3IG1vZGUgbWV0aG9kc1xuICBvcGVuUHJldmlldygpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucHJldmlld01vZGUpIHJldHVybjtcbiAgICB0aGlzLmlzUHJldmlld09wZW4gPSB0cnVlO1xuICAgIHRoaXMucmVzZXRab29tKCk7XG4gIH1cblxuICBjbG9zZVByZXZpZXcoKSB7XG4gICAgdGhpcy5pc1ByZXZpZXdPcGVuID0gZmFsc2U7XG4gIH1cblxuICAvLyBab29tIG1ldGhvZHNcbiAgem9vbUluKCkge1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA8IHRoaXMubWF4Wm9vbSkge1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1pbih0aGlzLnpvb21MZXZlbCAqIDEuMiwgdGhpcy5tYXhab29tKTtcbiAgICB9XG4gIH1cblxuICB6b29tT3V0KCkge1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA+IHRoaXMubWluWm9vbSkge1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1heCh0aGlzLnpvb21MZXZlbCAvIDEuMiwgdGhpcy5taW5ab29tKTtcbiAgICAgIC8vIFJlc2V0IHBhbiBpZiB6b29tZWQgb3V0IHRvIDF4IG9yIGxlc3NcbiAgICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICAgIHRoaXMucGFuWCA9IDA7XG4gICAgICAgIHRoaXMucGFuWSA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVzZXRab29tKCkge1xuICAgIHRoaXMuem9vbUxldmVsID0gMTtcbiAgICB0aGlzLnBhblggPSAwO1xuICAgIHRoaXMucGFuWSA9IDA7XG4gIH1cblxuICAvLyBNb3VzZSBldmVudHNcbiAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy56b29tTGV2ZWwgPD0gMSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnBhblg7XG4gICAgdGhpcy5zdGFydFkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5wYW5ZO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nIHx8IHRoaXMuem9vbUxldmVsIDw9IDEpIHJldHVybjtcblxuICAgIHRoaXMucGFuWCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnN0YXJ0WDtcbiAgICB0aGlzLnBhblkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5zdGFydFk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uTW91c2VVcChldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICB9XG5cbiAgLy8gVG91Y2ggZXZlbnRzIGZvciBtb2JpbGVcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnRvdWNoZXMgPSBBcnJheS5mcm9tKGV2ZW50LnRvdWNoZXMpO1xuXG4gICAgaWYgKHRoaXMudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIFNpbmdsZSB0b3VjaCAtIHN0YXJ0IGRyYWdnaW5nXG4gICAgICBpZiAodGhpcy56b29tTGV2ZWwgPiAxKSB7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RhcnRYID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLnBhblg7XG4gICAgICAgIHRoaXMuc3RhcnRZID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLnBhblk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAvLyBUd28gdG91Y2hlcyAtIHN0YXJ0IHBpbmNoIHpvb21cbiAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5pbml0aWFsRGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHRoaXMudG91Y2hlc1swXSwgdGhpcy50b3VjaGVzWzFdKTtcbiAgICAgIHRoaXMuaW5pdGlhbFpvb20gPSB0aGlzLnpvb21MZXZlbDtcbiAgICB9XG4gIH1cblxuICBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcblxuICAgIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAxICYmIHRoaXMuaXNEcmFnZ2luZyAmJiB0aGlzLnpvb21MZXZlbCA+IDEpIHtcbiAgICAgIC8vIFNpbmdsZSB0b3VjaCAtIGRyYWdcbiAgICAgIHRoaXMucGFuWCA9IHRoaXMudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5zdGFydFg7XG4gICAgICB0aGlzLnBhblkgPSB0aGlzLnRvdWNoZXNbMF0uY2xpZW50WSAtIHRoaXMuc3RhcnRZO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b3VjaGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgLy8gVHdvIHRvdWNoZXMgLSBwaW5jaCB6b29tXG4gICAgICBjb25zdCBjdXJyZW50RGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHRoaXMudG91Y2hlc1swXSwgdGhpcy50b3VjaGVzWzFdKTtcbiAgICAgIGNvbnN0IHNjYWxlID0gY3VycmVudERpc3RhbmNlIC8gdGhpcy5pbml0aWFsRGlzdGFuY2U7XG4gICAgICB0aGlzLnpvb21MZXZlbCA9IE1hdGgubWluKE1hdGgubWF4KHRoaXMuaW5pdGlhbFpvb20gKiBzY2FsZSwgdGhpcy5taW5ab29tKSwgdGhpcy5tYXhab29tKTtcblxuICAgICAgLy8gUmVzZXQgcGFuIGlmIHpvb21lZCBvdXQgdG8gMXggb3IgbGVzc1xuICAgICAgaWYgKHRoaXMuem9vbUxldmVsIDw9IDEpIHtcbiAgICAgICAgdGhpcy5wYW5YID0gMDtcbiAgICAgICAgdGhpcy5wYW5ZID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcbiAgfVxuXG4gIC8vIE1vdXNlIHdoZWVsIHpvb21cbiAgb25XaGVlbChldmVudDogV2hlZWxFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBkZWx0YSA9IGV2ZW50LmRlbHRhWSA+IDAgPyAtMSA6IDE7XG4gICAgY29uc3Qgem9vbUZhY3RvciA9IDEgKyBkZWx0YSAqIDAuMTtcblxuICAgIHRoaXMuem9vbUxldmVsID0gTWF0aC5taW4oTWF0aC5tYXgodGhpcy56b29tTGV2ZWwgKiB6b29tRmFjdG9yLCB0aGlzLm1pblpvb20pLCB0aGlzLm1heFpvb20pO1xuXG4gICAgLy8gUmVzZXQgcGFuIGlmIHpvb21lZCBvdXQgdG8gMXggb3IgbGVzc1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICB0aGlzLnBhblggPSAwO1xuICAgICAgdGhpcy5wYW5ZID0gMDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kc1xuICBwcml2YXRlIGdldERpc3RhbmNlKHRvdWNoMTogVG91Y2gsIHRvdWNoMjogVG91Y2gpOiBudW1iZXIge1xuICAgIGNvbnN0IGR4ID0gdG91Y2gxLmNsaWVudFggLSB0b3VjaDIuY2xpZW50WDtcbiAgICBjb25zdCBkeSA9IHRvdWNoMS5jbGllbnRZIC0gdG91Y2gyLmNsaWVudFk7XG4gICAgcmV0dXJuIE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gIH1cblxuICAvLyBLZXlib2FyZCBzaG9ydGN1dHNcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICghdGhpcy5pc1ByZXZpZXdPcGVuKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcrJzpcbiAgICAgIGNhc2UgJz0nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnpvb21JbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnpvb21PdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5yZXNldFpvb20oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
507
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL2ltYWdlL2ltYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7OztBQXFKbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBNkJ6QjtRQXpCQSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUMxQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLFlBQU8sR0FBVyxHQUFHLENBQUM7UUFDdEIsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFFakIseUNBQXlDO1FBQ3pDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsV0FBTSxHQUFXLENBQUMsQ0FBQztRQUVuQiwyQkFBMkI7UUFDM0Isb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDNUIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUV0QixvQkFB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Y0FBYztrQkF2TDFCLFNBQVM7K0JBQ0UsV0FBVyxjQUNULElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLFlBQ3BHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMklUO3dEQTBDRCxLQUFLO3NCQURKLEtBQUs7Z0JBa0xOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1vZGFsLFxuICBJb25UaXRsZSxcbiAgSW9uVG9vbGJhcixcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJbWFnZU1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1pbWFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbk1vZGFsLCBJb25IZWFkZXIsIElvblRvb2xiYXIsIElvblRpdGxlLCBJb25Db250ZW50LCBJb25CdXR0b24sIElvbkljb24sIElvbkJ1dHRvbnNdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmaWd1cmVcbiAgICAgIGNsYXNzPVwidmFsLWltYWdlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY29udGFpbmVyQ2xhc3NcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAndmFsLWltYWdlLWNvbnRhaW5lci0tbGVmdCc6IHByb3BzLmFsaWdubWVudCA9PT0gJ2xlZnQnLFxuICAgICAgICAndmFsLWltYWdlLWNvbnRhaW5lci0tY2VudGVyJzogcHJvcHMuYWxpZ25tZW50ID09PSAnY2VudGVyJyB8fCAhcHJvcHMuYWxpZ25tZW50LFxuICAgICAgICAndmFsLWltYWdlLWNvbnRhaW5lci0tcmlnaHQnOiBwcm9wcy5hbGlnbm1lbnQgPT09ICdyaWdodCcsXG4gICAgICB9XCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgZGlzcGxheTogcHJvcHMuZmxleCA/ICdmbGV4JyA6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbC1pbWFnZS13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAocHJvcHMuc3JjLmluY2x1ZGVzKCctLScpKSB7XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgICBwcm9wcy5tb2RlLFxuICAgICAgICAgICAgICAhcHJvcHMud2lkdGggPyBwcm9wcy5zaXplIDogJycsXG4gICAgICAgICAgICAgIHByb3BzLnByZXZpZXdNb2RlID8gJ3ZhbC1pbWFnZS0tcHJldmlldy1lbmFibGVkJyA6ICcnLFxuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICd2YXIoJyArIHByb3BzLnNyYyArICcpJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zaGFkZWRdPVwicHJvcHMuc2hhZGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5kYXJrXT1cInByb3BzLmRhcmtcIlxuICAgICAgICAgICAgW2NsYXNzLmxpbWl0ZWRdPVwicHJvcHMubGltaXRlZFwiXG4gICAgICAgICAgICBbY2xhc3MuY2VudGVyXT1cInByb3BzLmFsaWdubWVudCA9PT0gJ2NlbnRlcidcIlxuICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUubWF4LXdpZHRoLnJlbV09XCJwcm9wcy53aWR0aFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cInByb3BzLmhlaWdodFwiXG4gICAgICAgICAgICAoY2xpY2spPVwicHJvcHMucHJldmlld01vZGUgPyBvcGVuUHJldmlldygpIDogbnVsbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2VcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAgICAgICBwcm9wcy5tb2RlLFxuICAgICAgICAgICAgICAhcHJvcHMud2lkdGggPyBwcm9wcy5zaXplIDogJycsXG4gICAgICAgICAgICAgIHByb3BzLnByZXZpZXdNb2RlID8gJ3ZhbC1pbWFnZS0tcHJldmlldy1lbmFibGVkJyA6ICcnLFxuICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICBbY2xhc3MuYm9yZGVyZWRdPVwicHJvcHMuYm9yZGVyZWRcIlxuICAgICAgICAgICAgW2NsYXNzLnNoYWRlZF09XCJwcm9wcy5zaGFkZWRcIlxuICAgICAgICAgICAgW2NsYXNzLmRhcmtdPVwicHJvcHMuZGFya1wiXG4gICAgICAgICAgICBbY2xhc3MubGltaXRlZF09XCJwcm9wcy5saW1pdGVkXCJcbiAgICAgICAgICAgIFtjbGFzcy5jZW50ZXJdPVwicHJvcHMuYWxpZ25tZW50ID09PSAnY2VudGVyJ1wiXG4gICAgICAgICAgICBbc3JjXT1cInByb3BzLnNyY1wiXG4gICAgICAgICAgICBbYWx0XT1cInByb3BzLmFsdFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGgucmVtXT1cInByb3BzLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5tYXgtd2lkdGgucmVtXT1cInByb3BzLndpZHRoXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwicHJvcHMuaGVpZ2h0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcm9wcy5wcmV2aWV3TW9kZSA/IG9wZW5QcmV2aWV3KCkgOiBudWxsXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChwcm9wcy5jYXB0aW9uKSB7XG4gICAgICAgIDxmaWdjYXB0aW9uXG4gICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2UtY2FwdGlvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3ZhbC1pbWFnZS1jYXB0aW9uLS1zbWFsbCc6IHByb3BzLmNhcHRpb25TaXplID09PSAnc21hbGwnLFxuICAgICAgICAgICAgJ3ZhbC1pbWFnZS1jYXB0aW9uLS1tZWRpdW0nOiBwcm9wcy5jYXB0aW9uU2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLmNhcHRpb25TaXplLFxuICAgICAgICAgICAgJ3ZhbC1pbWFnZS1jYXB0aW9uLS1sYXJnZSc6IHByb3BzLmNhcHRpb25TaXplID09PSAnbGFyZ2UnLFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgcHJvcHMuY2FwdGlvbiB9fVxuICAgICAgICA8L2ZpZ2NhcHRpb24+XG4gICAgICB9XG4gICAgPC9maWd1cmU+XG5cbiAgICA8IS0tIE1vZGFsIGRlIHByZXZpc3VhbGl6YWNpw7NuIGNvbiBpb24tbW9kYWwgLS0+XG4gICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzUHJldmlld09wZW5cIiAoZGlkRGlzbWlzcyk9XCJjbG9zZVByZXZpZXcoKVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8IS0tIDxpb24tdGl0bGU+e3sgcHJvcHMuYWx0IHx8ICdQcmV2aXN1YWxpemFjacOzbiBkZSBpbWFnZW4nIH19PC9pb24tdGl0bGU+IC0tPlxuICAgICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCIgZmlsbD1cImNsZWFyXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICAgICAgPGlvbi1jb250ZW50PlxuICAgICAgICAgIDwhLS0gQ29udHJvbGVzIGRlIHpvb20gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1pbWFnZS1wcmV2aWV3LWNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiem9vbU91dCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiem9vbUxldmVsIDw9IG1pblpvb21cIlxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInJlbW92ZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWwtaW1hZ2UtcHJldmlldy16b29tLWxldmVsXCI+e3sgTWF0aC5yb3VuZCh6b29tTGV2ZWwgKiAxMDApIH19JTwvc3Bhbj5cblxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInpvb21JbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiem9vbUxldmVsID49IG1heFpvb21cIlxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFkZC1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gSW1hZ2VuIGFtcGxpYWRhIC0tPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWltYWdlLXByZXZpZXctdmlld3BvcnRcIlxuICAgICAgICAgICAgKHRvdWNoc3RhcnQpPVwib25Ub3VjaFN0YXJ0KCRldmVudClcIlxuICAgICAgICAgICAgKHRvdWNobW92ZSk9XCJvblRvdWNoTW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvblRvdWNoRW5kKCRldmVudClcIlxuICAgICAgICAgICAgKHdoZWVsKT1cIm9uV2hlZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgICAgICAgKG1vdXNlbW92ZSk9XCJvbk1vdXNlTW92ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZXVwKT1cIm9uTW91c2VVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VVcCgkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICNwcmV2aWV3SW1hZ2VcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtaW1hZ2UtcHJldmlldy1pbWdcIlxuICAgICAgICAgICAgICBbc3JjXT1cInByb3BzLnNyYy5pbmNsdWRlcygnLS0nKSA/IG51bGwgOiBwcm9wcy5zcmNcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogcHJvcHMuc3JjLmluY2x1ZGVzKCctLScpID8gJ3ZhcignICsgcHJvcHMuc3JjICsgJyknIDogbnVsbCxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgnICsgem9vbUxldmVsICsgJykgdHJhbnNsYXRlKCcgKyBwYW5YICsgJ3B4LCAnICsgcGFuWSArICdweCknLFxuICAgICAgICAgICAgICAgIGN1cnNvcjogaXNEcmFnZ2luZyA/ICdncmFiYmluZycgOiB6b29tTGV2ZWwgPiAxID8gJ2dyYWInIDogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHRcIlxuICAgICAgICAgICAgICBkcmFnZ2FibGU9XCJmYWxzZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2lvbi1tb2RhbD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1pbWFnZVxuICpcbiAqIERpc3BsYXlzIGFuIGltYWdlIHdpdGggdmFyaW91cyBkaXNwbGF5IG9wdGlvbnMgKGJvcmRlcmVkLCBzaGFkZWQsIGRhcmssIGV0YykuXG4gKiBOb3cgaW5jbHVkZXMgYSBjb250YWluZXIgd3JhcHBlciBmb3IgYmV0dGVyIGZsZXhib3ggc3VwcG9ydCBhbmQgYWxpZ25tZW50IG9wdGlvbnMuXG4gKlxuICogTkVXOiBPcHRpb25hbCBwcmV2aWV3IG1vZGUgd2l0aCBmdWxsLXNjcmVlbiB6b29tIGNhcGFiaWxpdGllczpcbiAqIC0gQ2xpY2sgdG8gb3BlbiBmdWxsLXNjcmVlbiBwcmV2aWV3ICh3aGVuIHByZXZpZXdNb2RlIGlzIGVuYWJsZWQpXG4gKiAtIFBpbmNoLXRvLXpvb20gb24gbW9iaWxlIGRldmljZXNcbiAqIC0gTW91c2Ugd2hlZWwgem9vbSBvbiBkZXNrdG9wXG4gKiAtIFBhbi9kcmFnIHRvIG5hdmlnYXRlIHpvb21lZCBpbWFnZXNcbiAqIC0gWm9vbSBjb250cm9scyB3aXRoIGJ1dHRvbnNcbiAqIC0gS2V5Ym9hcmQgc2hvcnRjdXRzIChFc2MgdG8gY2xvc2UsICsvLSB0byB6b29tLCAwIHRvIHJlc2V0KVxuICogLSBUb3VjaC1mcmllbmRseSBpbnRlcmZhY2Ugd2l0aCBnZXN0dXJlIHN1cHBvcnRcbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZTpcbiAqIDx2YWwtaW1hZ2UgW3Byb3BzXT1cIntcbiAqICAgc3JjOiAndXJsJyxcbiAqICAgYWx0OiAnZGVzYycsXG4gKiAgIHdpZHRoOiAxMDAsXG4gKiAgIGhlaWdodDogMTAwLFxuICogICBib3JkZXJlZDogdHJ1ZSxcbiAqICAgYWxpZ25tZW50OiAnY2VudGVyJyxcbiAqICAgY2FwdGlvbjogJ0ltYWdlIGRlc2NyaXB0aW9uJ1xuICogfVwiPjwvdmFsLWltYWdlPlxuICpcbiAqIEBleGFtcGxlIFdpdGggcHJldmlldyBtb2RlOlxuICogPHZhbC1pbWFnZSBbcHJvcHNdPVwie1xuICogICBzcmM6ICd1cmwnLFxuICogICBhbHQ6ICdkZXNjJyxcbiAqICAgcHJldmlld01vZGU6IHRydWUsXG4gKiAgIGJvcmRlcmVkOiB0cnVlLFxuICogICBhbGlnbm1lbnQ6ICdjZW50ZXInXG4gKiB9XCI+PC92YWwtaW1hZ2U+XG4gKlxuICogQGlucHV0IHByb3BzOiBJbWFnZU1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGltYWdlIChzcmMsIGFsdCwgc2l6ZSwgbW9kZSwgYWxpZ25tZW50LCBjYXB0aW9uLCBwcmV2aWV3TW9kZSwgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHJvcHMhOiBJbWFnZU1ldGFkYXRhO1xuXG4gIGF2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gUHJldmlldyBtb2RlIHByb3BlcnRpZXNcbiAgaXNQcmV2aWV3T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICB6b29tTGV2ZWw6IG51bWJlciA9IDE7XG4gIG1pblpvb206IG51bWJlciA9IDAuNTtcbiAgbWF4Wm9vbTogbnVtYmVyID0gNTtcbiAgcGFuWDogbnVtYmVyID0gMDtcbiAgcGFuWTogbnVtYmVyID0gMDtcblxuICAvLyBUb3VjaCBhbmQgbW91c2UgaW50ZXJhY3Rpb24gcHJvcGVydGllc1xuICBpc0RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGxhc3RQYW5YOiBudW1iZXIgPSAwO1xuICBsYXN0UGFuWTogbnVtYmVyID0gMDtcbiAgc3RhcnRYOiBudW1iZXIgPSAwO1xuICBzdGFydFk6IG51bWJlciA9IDA7XG5cbiAgLy8gVG91Y2ggZ2VzdHVyZSBwcm9wZXJ0aWVzXG4gIGluaXRpYWxEaXN0YW5jZTogbnVtYmVyID0gMDtcbiAgaW5pdGlhbFpvb206IG51bWJlciA9IDE7XG4gIHRvdWNoZXM6IFRvdWNoW10gPSBbXTtcblxuICAvLyBNYXRoIGZvciB0ZW1wbGF0ZVxuICBNYXRoID0gTWF0aDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWVzXG4gICAgaWYgKCF0aGlzLnByb3BzLmFsaWdubWVudCkge1xuICAgICAgdGhpcy5wcm9wcy5hbGlnbm1lbnQgPSAnY2VudGVyJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnByb3BzLmNhcHRpb25TaXplKSB7XG4gICAgICB0aGlzLnByb3BzLmNhcHRpb25TaXplID0gJ21lZGl1bSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5wcm9wcy5tb2RlKSB7XG4gICAgICB0aGlzLnByb3BzLm1vZGUgPSAnYm94JztcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VUb1Zpc2libGUoKSB7XG4gICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5hdmFpbGFibGUgPSB0cnVlO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICAvLyBQcmV2aWV3IG1vZGUgbWV0aG9kc1xuICBvcGVuUHJldmlldygpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucHJldmlld01vZGUpIHJldHVybjtcbiAgICB0aGlzLmlzUHJldmlld09wZW4gPSB0cnVlO1xuICAgIHRoaXMucmVzZXRab29tKCk7XG4gIH1cblxuICBjbG9zZVByZXZpZXcoKSB7XG4gICAgdGhpcy5pc1ByZXZpZXdPcGVuID0gZmFsc2U7XG4gIH1cblxuICAvLyBab29tIG1ldGhvZHNcbiAgem9vbUluKCkge1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA8IHRoaXMubWF4Wm9vbSkge1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1pbih0aGlzLnpvb21MZXZlbCAqIDEuMiwgdGhpcy5tYXhab29tKTtcbiAgICB9XG4gIH1cblxuICB6b29tT3V0KCkge1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA+IHRoaXMubWluWm9vbSkge1xuICAgICAgdGhpcy56b29tTGV2ZWwgPSBNYXRoLm1heCh0aGlzLnpvb21MZXZlbCAvIDEuMiwgdGhpcy5taW5ab29tKTtcbiAgICAgIC8vIFJlc2V0IHBhbiBpZiB6b29tZWQgb3V0IHRvIDF4IG9yIGxlc3NcbiAgICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICAgIHRoaXMucGFuWCA9IDA7XG4gICAgICAgIHRoaXMucGFuWSA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVzZXRab29tKCkge1xuICAgIHRoaXMuem9vbUxldmVsID0gMTtcbiAgICB0aGlzLnBhblggPSAwO1xuICAgIHRoaXMucGFuWSA9IDA7XG4gIH1cblxuICAvLyBNb3VzZSBldmVudHNcbiAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy56b29tTGV2ZWwgPD0gMSkgcmV0dXJuO1xuXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnBhblg7XG4gICAgdGhpcy5zdGFydFkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5wYW5ZO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nIHx8IHRoaXMuem9vbUxldmVsIDw9IDEpIHJldHVybjtcblxuICAgIHRoaXMucGFuWCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLnN0YXJ0WDtcbiAgICB0aGlzLnBhblkgPSBldmVudC5jbGllbnRZIC0gdGhpcy5zdGFydFk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uTW91c2VVcChldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICB9XG5cbiAgLy8gVG91Y2ggZXZlbnRzIGZvciBtb2JpbGVcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnRvdWNoZXMgPSBBcnJheS5mcm9tKGV2ZW50LnRvdWNoZXMpO1xuXG4gICAgaWYgKHRoaXMudG91Y2hlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIC8vIFNpbmdsZSB0b3VjaCAtIHN0YXJ0IGRyYWdnaW5nXG4gICAgICBpZiAodGhpcy56b29tTGV2ZWwgPiAxKSB7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RhcnRYID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLnBhblg7XG4gICAgICAgIHRoaXMuc3RhcnRZID0gdGhpcy50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLnBhblk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAvLyBUd28gdG91Y2hlcyAtIHN0YXJ0IHBpbmNoIHpvb21cbiAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5pbml0aWFsRGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHRoaXMudG91Y2hlc1swXSwgdGhpcy50b3VjaGVzWzFdKTtcbiAgICAgIHRoaXMuaW5pdGlhbFpvb20gPSB0aGlzLnpvb21MZXZlbDtcbiAgICB9XG4gIH1cblxuICBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcblxuICAgIGlmICh0aGlzLnRvdWNoZXMubGVuZ3RoID09PSAxICYmIHRoaXMuaXNEcmFnZ2luZyAmJiB0aGlzLnpvb21MZXZlbCA+IDEpIHtcbiAgICAgIC8vIFNpbmdsZSB0b3VjaCAtIGRyYWdcbiAgICAgIHRoaXMucGFuWCA9IHRoaXMudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5zdGFydFg7XG4gICAgICB0aGlzLnBhblkgPSB0aGlzLnRvdWNoZXNbMF0uY2xpZW50WSAtIHRoaXMuc3RhcnRZO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b3VjaGVzLmxlbmd0aCA9PT0gMikge1xuICAgICAgLy8gVHdvIHRvdWNoZXMgLSBwaW5jaCB6b29tXG4gICAgICBjb25zdCBjdXJyZW50RGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKHRoaXMudG91Y2hlc1swXSwgdGhpcy50b3VjaGVzWzFdKTtcbiAgICAgIGNvbnN0IHNjYWxlID0gY3VycmVudERpc3RhbmNlIC8gdGhpcy5pbml0aWFsRGlzdGFuY2U7XG4gICAgICB0aGlzLnpvb21MZXZlbCA9IE1hdGgubWluKE1hdGgubWF4KHRoaXMuaW5pdGlhbFpvb20gKiBzY2FsZSwgdGhpcy5taW5ab29tKSwgdGhpcy5tYXhab29tKTtcblxuICAgICAgLy8gUmVzZXQgcGFuIGlmIHpvb21lZCBvdXQgdG8gMXggb3IgbGVzc1xuICAgICAgaWYgKHRoaXMuem9vbUxldmVsIDw9IDEpIHtcbiAgICAgICAgdGhpcy5wYW5YID0gMDtcbiAgICAgICAgdGhpcy5wYW5ZID0gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy50b3VjaGVzID0gQXJyYXkuZnJvbShldmVudC50b3VjaGVzKTtcbiAgfVxuXG4gIC8vIE1vdXNlIHdoZWVsIHpvb21cbiAgb25XaGVlbChldmVudDogV2hlZWxFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBjb25zdCBkZWx0YSA9IGV2ZW50LmRlbHRhWSA+IDAgPyAtMSA6IDE7XG4gICAgY29uc3Qgem9vbUZhY3RvciA9IDEgKyBkZWx0YSAqIDAuMTtcblxuICAgIHRoaXMuem9vbUxldmVsID0gTWF0aC5taW4oTWF0aC5tYXgodGhpcy56b29tTGV2ZWwgKiB6b29tRmFjdG9yLCB0aGlzLm1pblpvb20pLCB0aGlzLm1heFpvb20pO1xuXG4gICAgLy8gUmVzZXQgcGFuIGlmIHpvb21lZCBvdXQgdG8gMXggb3IgbGVzc1xuICAgIGlmICh0aGlzLnpvb21MZXZlbCA8PSAxKSB7XG4gICAgICB0aGlzLnBhblggPSAwO1xuICAgICAgdGhpcy5wYW5ZID0gMDtcbiAgICB9XG4gIH1cblxuICAvLyBIZWxwZXIgbWV0aG9kc1xuICBwcml2YXRlIGdldERpc3RhbmNlKHRvdWNoMTogVG91Y2gsIHRvdWNoMjogVG91Y2gpOiBudW1iZXIge1xuICAgIGNvbnN0IGR4ID0gdG91Y2gxLmNsaWVudFggLSB0b3VjaDIuY2xpZW50WDtcbiAgICBjb25zdCBkeSA9IHRvdWNoMS5jbGllbnRZIC0gdG91Y2gyLmNsaWVudFk7XG4gICAgcmV0dXJuIE1hdGguc3FydChkeCAqIGR4ICsgZHkgKiBkeSk7XG4gIH1cblxuICAvLyBLZXlib2FyZCBzaG9ydGN1dHNcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICghdGhpcy5pc1ByZXZpZXdPcGVuKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcrJzpcbiAgICAgIGNhc2UgJz0nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnpvb21JbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnpvb21PdXQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICcwJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5yZXNldFpvb20oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, Input, inject } from '@angular/core';
3
- import { LangService } from '../../../services/lang-provider/lang-provider.service';
2
+ import { Component, Input } from '@angular/core';
4
3
  import { CURRENCY_INFO } from './types';
5
4
  import * as i0 from "@angular/core";
6
5
  /**
@@ -52,9 +51,6 @@ import * as i0 from "@angular/core";
52
51
  * ```
53
52
  */
54
53
  export class PriceTagComponent {
55
- constructor() {
56
- this.langService = inject(LangService);
57
- }
58
54
  get currencyInfo() {
59
55
  const currency = this.props.currency || 'MXN';
60
56
  return CURRENCY_INFO[currency] || CURRENCY_INFO['USD'];
@@ -94,15 +90,9 @@ export class PriceTagComponent {
94
90
  return `${formattedNumber}${symbol}`;
95
91
  }
96
92
  getPrefix() {
97
- if (this.props.prefixContentKey && this.props.contentClass) {
98
- return this.langService.getText(this.props.contentClass, this.props.prefixContentKey, this.props.prefix || '');
99
- }
100
93
  return this.props.prefix || '';
101
94
  }
102
95
  getPeriod() {
103
- if (this.props.periodContentKey && this.props.contentClass) {
104
- return this.langService.getText(this.props.contentClass, this.props.periodContentKey, this.props.period || '');
105
- }
106
96
  return this.props.period || '';
107
97
  }
108
98
  getColor() {
@@ -242,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
242
232
  }], propDecorators: { props: [{
243
233
  type: Input
244
234
  }] } });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9wcmljZS10YWcvcHJpY2UtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRixPQUFPLEVBQWtDLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFzRXhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUFwSDlCO1FBdUhVLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBZ0YzQztJQTlFQyxJQUFJLFlBQVk7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDOUMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYztZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWTtR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TUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPLG1CQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7K0dBbEZVLGlCQUFpQjttR0FBakIsaUJBQWlCLHFHQWhIbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2RFQscWtGQTlEUyxZQUFZOzs0RkFpSFgsaUJBQWlCO2tCQXBIN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2RFQ7OEJBb0RRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJpY2VUYWdNZXRhZGF0YSwgQ3VycmVuY3lJbmZvLCBDVVJSRU5DWV9JTkZPIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wcmljZS10YWcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByaWNlLXRhZ1wiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1tZWRpdW1dPVwicHJvcHMuc2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLnNpemVcIlxuICAgICAgW2NsYXNzLnNpemUtbGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS14bGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ3hsYXJnZSdcIlxuICAgICAgW2NsYXNzLnZhcmlhbnQtZGVmYXVsdF09XCJwcm9wcy52YXJpYW50ID09PSAnZGVmYXVsdCcgfHwgIXByb3BzLnZhcmlhbnRcIlxuICAgICAgW2NsYXNzLnZhcmlhbnQtaGlnaGxpZ2h0XT1cInByb3BzLnZhcmlhbnQgPT09ICdoaWdobGlnaHQnXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LXNhbGVdPVwicHJvcHMudmFyaWFudCA9PT0gJ3NhbGUnXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LWZyZWVdPVwicHJvcHMudmFyaWFudCA9PT0gJ2ZyZWUnXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LWJhZGdlXT1cInByb3BzLnZhcmlhbnQgPT09ICdiYWRnZSdcIlxuICAgICAgW2NsYXNzLmhhcy1kaXNjb3VudF09XCJoYXNEaXNjb3VudFwiXG4gICAgICBbY2xhc3MuYWxpZ24tbGVmdF09XCJwcm9wcy5hbGlnbiA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5hbGlnbi1jZW50ZXJdPVwicHJvcHMuYWxpZ24gPT09ICdjZW50ZXInIHx8ICFwcm9wcy5hbGlnblwiXG4gICAgICBbY2xhc3MuYWxpZ24tcmlnaHRdPVwicHJvcHMuYWxpZ24gPT09ICdyaWdodCdcIlxuICAgICAgW3N0eWxlLi0tcHJpY2UtY29sb3JdPVwiZ2V0Q29sb3IoKVwiXG4gICAgPlxuICAgICAgQGlmIChwcm9wcy5wcmVmaXgpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS1wcmVmaXhcIj57eyBnZXRQcmVmaXgoKSB9fTwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNEaXNjb3VudCAmJiBwcm9wcy5vcmlnaW5hbEFtb3VudCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIm9yaWdpbmFsLXByaWNlXCI+XG4gICAgICAgICAge3sgZm9ybWF0UHJpY2UocHJvcHMub3JpZ2luYWxBbW91bnQpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXByaWNlXCI+XG4gICAgICAgIEBpZiAocHJvcHMudmFyaWFudCA9PT0gJ2ZyZWUnIHx8IHByb3BzLmFtb3VudCA9PT0gMCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnJlZS10ZXh0XCI+R3JhdGlzPC9zcGFuPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAaWYgKGN1cnJlbmN5SW5mby5zeW1ib2xQb3NpdGlvbiA9PT0gJ3ByZWZpeCcgJiYgcHJvcHMuc2hvd1N5bWJvbCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVuY3ktc3ltYm9sXCI+e3sgZ2V0U3ltYm9sKCkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYW1vdW50XCI+e3sgZm9ybWF0QW1vdW50KCkgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChjdXJyZW5jeUluZm8uc3ltYm9sUG9zaXRpb24gPT09ICdzdWZmaXgnICYmIHByb3BzLnNob3dTeW1ib2wgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnJlbmN5LXN5bWJvbCBzdWZmaXhcIj57eyBnZXRTeW1ib2woKSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgQGlmIChwcm9wcy5zaG93Q3VycmVuY3lDb2RlICYmIHByb3BzLmN1cnJlbmN5KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVuY3ktY29kZVwiPnt7IHByb3BzLmN1cnJlbmN5IH19PC9zcGFuPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLnN1ZmZpeCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLXN1ZmZpeFwiPnt7IHByb3BzLnN1ZmZpeCB9fTwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5wZXJpb2QpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS1wZXJpb2RcIj57eyBnZXRQZXJpb2QoKSB9fTwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5kaXNjb3VudFBlcmNlbnRhZ2UgJiYgcHJvcHMuZGlzY291bnRQZXJjZW50YWdlID4gMCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImRpc2NvdW50LWJhZGdlXCI+XG4gICAgICAgICAgLXt7IHByb3BzLmRpc2NvdW50UGVyY2VudGFnZSB9fSVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9wcmljZS10YWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1wcmljZS10YWdcbiAqXG4gKiBBIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBwcmljZXMgd2l0aCBjdXJyZW5jeSBmb3JtYXR0aW5nIGFuZCBkaXNjb3VudCBzdXBwb3J0LlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXByaWNlLXRhZyBbcHJvcHNdPVwieyBhbW91bnQ6IDk5Ljk5LCBjdXJyZW5jeTogJ01YTicgfVwiPjwvdmFsLXByaWNlLXRhZz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggZGlzY291bnRcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcHJpY2UtdGFnXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgYW1vdW50OiA3OS45OSxcbiAqICAgICBvcmlnaW5hbEFtb3VudDogOTkuOTksXG4gKiAgICAgY3VycmVuY3k6ICdNWE4nLFxuICogICAgIHZhcmlhbnQ6ICdzYWxlJyxcbiAqICAgICBkaXNjb3VudFBlcmNlbnRhZ2U6IDIwXG4gKiAgIH1cIlxuICogPjwvdmFsLXByaWNlLXRhZz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggcGVyaW9kXG4gKiBgYGBodG1sXG4gKiA8dmFsLXByaWNlLXRhZ1xuICogICBbcHJvcHNdPVwie1xuICogICAgIGFtb3VudDogMTAsXG4gKiAgICAgY3VycmVuY3k6ICdNWE4nLFxuICogICAgIHBlcmlvZDogJ3BvciBib2xldG8nLFxuICogICAgIHNpemU6ICdsYXJnZSdcbiAqICAgfVwiXG4gKiA+PC92YWwtcHJpY2UtdGFnPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgSGlnaGxpZ2h0IHZhcmlhbnRcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcHJpY2UtdGFnXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgYW1vdW50OiA1MDAsXG4gKiAgICAgY3VycmVuY3k6ICdNWE4nLFxuICogICAgIHByZWZpeDogJ0Rlc2RlJyxcbiAqICAgICB2YXJpYW50OiAnaGlnaGxpZ2h0JyxcbiAqICAgICBzaXplOiAneGxhcmdlJ1xuICogICB9XCJcbiAqID48L3ZhbC1wcmljZS10YWc+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFByaWNlVGFnQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHJvcHM6IFByaWNlVGFnTWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSBsYW5nU2VydmljZSA9IGluamVjdChMYW5nU2VydmljZSk7XG5cbiAgZ2V0IGN1cnJlbmN5SW5mbygpOiBDdXJyZW5jeUluZm8ge1xuICAgIGNvbnN0IGN1cnJlbmN5ID0gdGhpcy5wcm9wcy5jdXJyZW5jeSB8fCAnTVhOJztcbiAgICByZXR1cm4gQ1VSUkVOQ1lfSU5GT1tjdXJyZW5jeV0gfHwgQ1VSUkVOQ1lfSU5GT1snVVNEJ107XG4gIH1cblxuICBnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5wcm9wcy5vcmlnaW5hbEFtb3VudCAmJlxuICAgICAgdGhpcy5wcm9wcy5vcmlnaW5hbEFtb3VudCA+IHRoaXMucHJvcHMuYW1vdW50XG4gICAgKTtcbiAgfVxuXG4gIGdldFN5bWJvbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmN1cnJlbmN5U3ltYm9sIHx8IHRoaXMuY3VycmVuY3lJbmZvLnN5bWJvbDtcbiAgfVxuXG4gIGZvcm1hdEFtb3VudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY2ltYWxzID0gdGhpcy5wcm9wcy5kZWNpbWFscyA/PyB0aGlzLmN1cnJlbmN5SW5mby5kZWNpbWFscztcbiAgICBjb25zdCBpbmZvID0gdGhpcy5jdXJyZW5jeUluZm87XG5cbiAgICAvLyBGb3JtYXQgbnVtYmVyXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnByb3BzLmFtb3VudC50b0ZpeGVkKGRlY2ltYWxzKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGludGVnZXJQYXJ0ID0gcGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgaW5mby50aG91c2FuZHNTZXBhcmF0b3IpO1xuXG4gICAgaWYgKGRlY2ltYWxzID4gMCAmJiBwYXJ0c1sxXSkge1xuICAgICAgcmV0dXJuIGAke2ludGVnZXJQYXJ0fSR7aW5mby5kZWNpbWFsU2VwYXJhdG9yfSR7cGFydHNbMV19YDtcbiAgICB9XG5cbiAgICByZXR1cm4gaW50ZWdlclBhcnQ7XG4gIH1cblxuICBmb3JtYXRQcmljZShhbW91bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjaW1hbHMgPSB0aGlzLnByb3BzLmRlY2ltYWxzID8/IHRoaXMuY3VycmVuY3lJbmZvLmRlY2ltYWxzO1xuICAgIGNvbnN0IGluZm8gPSB0aGlzLmN1cnJlbmN5SW5mbztcbiAgICBjb25zdCBzeW1ib2wgPSB0aGlzLmdldFN5bWJvbCgpO1xuXG4gICAgLy8gRm9ybWF0IG51bWJlclxuICAgIGNvbnN0IHBhcnRzID0gYW1vdW50LnRvRml4ZWQoZGVjaW1hbHMpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgaW50ZWdlclBhcnQgPSBwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBpbmZvLnRob3VzYW5kc1NlcGFyYXRvcik7XG4gICAgY29uc3QgZm9ybWF0dGVkTnVtYmVyID0gZGVjaW1hbHMgPiAwICYmIHBhcnRzWzFdXG4gICAgICA/IGAke2ludGVnZXJQYXJ0fSR7aW5mby5kZWNpbWFsU2VwYXJhdG9yfSR7cGFydHNbMV19YFxuICAgICAgOiBpbnRlZ2VyUGFydDtcblxuICAgIC8vIEFkZCBzeW1ib2xcbiAgICBpZiAoaW5mby5zeW1ib2xQb3NpdGlvbiA9PT0gJ3ByZWZpeCcpIHtcbiAgICAgIHJldHVybiBgJHtzeW1ib2x9JHtmb3JtYXR0ZWROdW1iZXJ9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2Zvcm1hdHRlZE51bWJlcn0ke3N5bWJvbH1gO1xuICB9XG5cbiAgZ2V0UHJlZml4KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMucHJlZml4Q29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMucHJlZml4Q29udGVudEtleSxcbiAgICAgICAgdGhpcy5wcm9wcy5wcmVmaXggfHwgJydcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLnByZWZpeCB8fCAnJztcbiAgfVxuXG4gIGdldFBlcmlvZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLnBlcmlvZENvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICB0aGlzLnByb3BzLnBlcmlvZENvbnRlbnRLZXksXG4gICAgICAgIHRoaXMucHJvcHMucGVyaW9kIHx8ICcnXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wZXJpb2QgfHwgJyc7XG4gIH1cblxuICBnZXRDb2xvcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbG9yKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke3RoaXMucHJvcHMuY29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLWRhcmspJztcbiAgfVxufVxuIl19
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9wcmljZS10YWcvcHJpY2UtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFrQyxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBc0V4RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLElBQUksWUFBWTtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUM5QyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sQ0FBQyxDQUFDLENBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQy9ELENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDbkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUUvQixnQkFBZ0I7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXZGLElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RCxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ25FLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWhDLGdCQUFnQjtRQUNoQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sZUFBZSxHQUFHLFFBQVEsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNyRCxDQUFDLENBQUMsV0FBVyxDQUFDO1FBRWhCLGFBQWE7UUFDYixJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckMsT0FBTyxHQUFHLE1BQU0sR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLGVBQWUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTyxtQkFBbUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDOytHQWxFVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixxR0FoSGxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRULHFrRkE5RFMsWUFBWTs7NEZBaUhYLGlCQUFpQjtrQkFwSDdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRUOzhCQW9EUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJpY2VUYWdNZXRhZGF0YSwgQ3VycmVuY3lJbmZvLCBDVVJSRU5DWV9JTkZPIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wcmljZS10YWcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByaWNlLXRhZ1wiXG4gICAgICBbY2xhc3NdPVwicHJvcHMuY3NzQ2xhc3NcIlxuICAgICAgW2NsYXNzLnNpemUtc21hbGxdPVwicHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS1tZWRpdW1dPVwicHJvcHMuc2l6ZSA9PT0gJ21lZGl1bScgfHwgIXByb3BzLnNpemVcIlxuICAgICAgW2NsYXNzLnNpemUtbGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICBbY2xhc3Muc2l6ZS14bGFyZ2VdPVwicHJvcHMuc2l6ZSA9PT0gJ3hsYXJnZSdcIlxuICAgICAgW2NsYXNzLnZhcmlhbnQtZGVmYXVsdF09XCJwcm9wcy52YXJpYW50ID09PSAnZGVmYXVsdCcgfHwgIXByb3BzLnZhcmlhbnRcIlxuICAgICAgW2NsYXNzLnZhcmlhbnQtaGlnaGxpZ2h0XT1cInByb3BzLnZhcmlhbnQgPT09ICdoaWdobGlnaHQnXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LXNhbGVdPVwicHJvcHMudmFyaWFudCA9PT0gJ3NhbGUnXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LWZyZWVdPVwicHJvcHMudmFyaWFudCA9PT0gJ2ZyZWUnXCJcbiAgICAgIFtjbGFzcy52YXJpYW50LWJhZGdlXT1cInByb3BzLnZhcmlhbnQgPT09ICdiYWRnZSdcIlxuICAgICAgW2NsYXNzLmhhcy1kaXNjb3VudF09XCJoYXNEaXNjb3VudFwiXG4gICAgICBbY2xhc3MuYWxpZ24tbGVmdF09XCJwcm9wcy5hbGlnbiA9PT0gJ2xlZnQnXCJcbiAgICAgIFtjbGFzcy5hbGlnbi1jZW50ZXJdPVwicHJvcHMuYWxpZ24gPT09ICdjZW50ZXInIHx8ICFwcm9wcy5hbGlnblwiXG4gICAgICBbY2xhc3MuYWxpZ24tcmlnaHRdPVwicHJvcHMuYWxpZ24gPT09ICdyaWdodCdcIlxuICAgICAgW3N0eWxlLi0tcHJpY2UtY29sb3JdPVwiZ2V0Q29sb3IoKVwiXG4gICAgPlxuICAgICAgQGlmIChwcm9wcy5wcmVmaXgpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS1wcmVmaXhcIj57eyBnZXRQcmVmaXgoKSB9fTwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNEaXNjb3VudCAmJiBwcm9wcy5vcmlnaW5hbEFtb3VudCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIm9yaWdpbmFsLXByaWNlXCI+XG4gICAgICAgICAge3sgZm9ybWF0UHJpY2UocHJvcHMub3JpZ2luYWxBbW91bnQpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgPHNwYW4gY2xhc3M9XCJjdXJyZW50LXByaWNlXCI+XG4gICAgICAgIEBpZiAocHJvcHMudmFyaWFudCA9PT0gJ2ZyZWUnIHx8IHByb3BzLmFtb3VudCA9PT0gMCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnJlZS10ZXh0XCI+R3JhdGlzPC9zcGFuPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAaWYgKGN1cnJlbmN5SW5mby5zeW1ib2xQb3NpdGlvbiA9PT0gJ3ByZWZpeCcgJiYgcHJvcHMuc2hvd1N5bWJvbCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVuY3ktc3ltYm9sXCI+e3sgZ2V0U3ltYm9sKCkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYW1vdW50XCI+e3sgZm9ybWF0QW1vdW50KCkgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChjdXJyZW5jeUluZm8uc3ltYm9sUG9zaXRpb24gPT09ICdzdWZmaXgnICYmIHByb3BzLnNob3dTeW1ib2wgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnJlbmN5LXN5bWJvbCBzdWZmaXhcIj57eyBnZXRTeW1ib2woKSB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgQGlmIChwcm9wcy5zaG93Q3VycmVuY3lDb2RlICYmIHByb3BzLmN1cnJlbmN5KSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY3VycmVuY3ktY29kZVwiPnt7IHByb3BzLmN1cnJlbmN5IH19PC9zcGFuPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLnN1ZmZpeCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInByaWNlLXN1ZmZpeFwiPnt7IHByb3BzLnN1ZmZpeCB9fTwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5wZXJpb2QpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwcmljZS1wZXJpb2RcIj57eyBnZXRQZXJpb2QoKSB9fTwvc3Bhbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5kaXNjb3VudFBlcmNlbnRhZ2UgJiYgcHJvcHMuZGlzY291bnRQZXJjZW50YWdlID4gMCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImRpc2NvdW50LWJhZGdlXCI+XG4gICAgICAgICAgLXt7IHByb3BzLmRpc2NvdW50UGVyY2VudGFnZSB9fSVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9wcmljZS10YWcuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1wcmljZS10YWdcbiAqXG4gKiBBIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBwcmljZXMgd2l0aCBjdXJyZW5jeSBmb3JtYXR0aW5nIGFuZCBkaXNjb3VudCBzdXBwb3J0LlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXByaWNlLXRhZyBbcHJvcHNdPVwieyBhbW91bnQ6IDk5Ljk5LCBjdXJyZW5jeTogJ01YTicgfVwiPjwvdmFsLXByaWNlLXRhZz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggZGlzY291bnRcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcHJpY2UtdGFnXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgYW1vdW50OiA3OS45OSxcbiAqICAgICBvcmlnaW5hbEFtb3VudDogOTkuOTksXG4gKiAgICAgY3VycmVuY3k6ICdNWE4nLFxuICogICAgIHZhcmlhbnQ6ICdzYWxlJyxcbiAqICAgICBkaXNjb3VudFBlcmNlbnRhZ2U6IDIwXG4gKiAgIH1cIlxuICogPjwvdmFsLXByaWNlLXRhZz5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggcGVyaW9kXG4gKiBgYGBodG1sXG4gKiA8dmFsLXByaWNlLXRhZ1xuICogICBbcHJvcHNdPVwie1xuICogICAgIGFtb3VudDogMTAsXG4gKiAgICAgY3VycmVuY3k6ICdNWE4nLFxuICogICAgIHBlcmlvZDogJ3BvciBib2xldG8nLFxuICogICAgIHNpemU6ICdsYXJnZSdcbiAqICAgfVwiXG4gKiA+PC92YWwtcHJpY2UtdGFnPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgSGlnaGxpZ2h0IHZhcmlhbnRcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcHJpY2UtdGFnXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgYW1vdW50OiA1MDAsXG4gKiAgICAgY3VycmVuY3k6ICdNWE4nLFxuICogICAgIHByZWZpeDogJ0Rlc2RlJyxcbiAqICAgICB2YXJpYW50OiAnaGlnaGxpZ2h0JyxcbiAqICAgICBzaXplOiAneGxhcmdlJ1xuICogICB9XCJcbiAqID48L3ZhbC1wcmljZS10YWc+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFByaWNlVGFnQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHJvcHM6IFByaWNlVGFnTWV0YWRhdGE7XG5cbiAgZ2V0IGN1cnJlbmN5SW5mbygpOiBDdXJyZW5jeUluZm8ge1xuICAgIGNvbnN0IGN1cnJlbmN5ID0gdGhpcy5wcm9wcy5jdXJyZW5jeSB8fCAnTVhOJztcbiAgICByZXR1cm4gQ1VSUkVOQ1lfSU5GT1tjdXJyZW5jeV0gfHwgQ1VSUkVOQ1lfSU5GT1snVVNEJ107XG4gIH1cblxuICBnZXQgaGFzRGlzY291bnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5wcm9wcy5vcmlnaW5hbEFtb3VudCAmJlxuICAgICAgdGhpcy5wcm9wcy5vcmlnaW5hbEFtb3VudCA+IHRoaXMucHJvcHMuYW1vdW50XG4gICAgKTtcbiAgfVxuXG4gIGdldFN5bWJvbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmN1cnJlbmN5U3ltYm9sIHx8IHRoaXMuY3VycmVuY3lJbmZvLnN5bWJvbDtcbiAgfVxuXG4gIGZvcm1hdEFtb3VudCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY2ltYWxzID0gdGhpcy5wcm9wcy5kZWNpbWFscyA/PyB0aGlzLmN1cnJlbmN5SW5mby5kZWNpbWFscztcbiAgICBjb25zdCBpbmZvID0gdGhpcy5jdXJyZW5jeUluZm87XG5cbiAgICAvLyBGb3JtYXQgbnVtYmVyXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLnByb3BzLmFtb3VudC50b0ZpeGVkKGRlY2ltYWxzKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGludGVnZXJQYXJ0ID0gcGFydHNbMF0ucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgaW5mby50aG91c2FuZHNTZXBhcmF0b3IpO1xuXG4gICAgaWYgKGRlY2ltYWxzID4gMCAmJiBwYXJ0c1sxXSkge1xuICAgICAgcmV0dXJuIGAke2ludGVnZXJQYXJ0fSR7aW5mby5kZWNpbWFsU2VwYXJhdG9yfSR7cGFydHNbMV19YDtcbiAgICB9XG5cbiAgICByZXR1cm4gaW50ZWdlclBhcnQ7XG4gIH1cblxuICBmb3JtYXRQcmljZShhbW91bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjaW1hbHMgPSB0aGlzLnByb3BzLmRlY2ltYWxzID8/IHRoaXMuY3VycmVuY3lJbmZvLmRlY2ltYWxzO1xuICAgIGNvbnN0IGluZm8gPSB0aGlzLmN1cnJlbmN5SW5mbztcbiAgICBjb25zdCBzeW1ib2wgPSB0aGlzLmdldFN5bWJvbCgpO1xuXG4gICAgLy8gRm9ybWF0IG51bWJlclxuICAgIGNvbnN0IHBhcnRzID0gYW1vdW50LnRvRml4ZWQoZGVjaW1hbHMpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgaW50ZWdlclBhcnQgPSBwYXJ0c1swXS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBpbmZvLnRob3VzYW5kc1NlcGFyYXRvcik7XG4gICAgY29uc3QgZm9ybWF0dGVkTnVtYmVyID0gZGVjaW1hbHMgPiAwICYmIHBhcnRzWzFdXG4gICAgICA/IGAke2ludGVnZXJQYXJ0fSR7aW5mby5kZWNpbWFsU2VwYXJhdG9yfSR7cGFydHNbMV19YFxuICAgICAgOiBpbnRlZ2VyUGFydDtcblxuICAgIC8vIEFkZCBzeW1ib2xcbiAgICBpZiAoaW5mby5zeW1ib2xQb3NpdGlvbiA9PT0gJ3ByZWZpeCcpIHtcbiAgICAgIHJldHVybiBgJHtzeW1ib2x9JHtmb3JtYXR0ZWROdW1iZXJ9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2Zvcm1hdHRlZE51bWJlcn0ke3N5bWJvbH1gO1xuICB9XG5cbiAgZ2V0UHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucHJlZml4IHx8ICcnO1xuICB9XG5cbiAgZ2V0UGVyaW9kKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucGVyaW9kIHx8ICcnO1xuICB9XG5cbiAgZ2V0Q29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb2xvcikge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHt0aGlzLnByb3BzLmNvbG9yfSlgO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZhcigtLWlvbi1jb2xvci1kYXJrKSc7XG4gIH1cbn1cbiJdfQ==
@@ -4,7 +4,6 @@ import { IonButton, IonIcon, IonSpinner } from '@ionic/angular/standalone';
4
4
  import { addIcons } from 'ionicons';
5
5
  import { downloadOutline, copyOutline, shareOutline } from 'ionicons/icons';
6
6
  import { QrGeneratorService } from '../../../services/qr-generator/qr-generator.service';
7
- import { LangService } from '../../../services/lang-provider/lang-provider.service';
8
7
  import * as i0 from "@angular/core";
9
8
  addIcons({ downloadOutline, copyOutline, shareOutline });
10
9
  /**
@@ -49,26 +48,11 @@ export class QrCodeComponent {
49
48
  this.imageError = new EventEmitter();
50
49
  this.canShare = false;
51
50
  this.canCopy = false;
52
- this.langSubscription = null;
53
- this.langService = inject(LangService);
54
51
  this.qrService = inject(QrGeneratorService);
55
52
  }
56
53
  ngOnInit() {
57
54
  this.canShare = this.qrService.canShare();
58
55
  this.canCopy = this.qrService.canCopyToClipboard();
59
- if (this.hasReactiveContent()) {
60
- this.langSubscription = this.langService.currentLang$.subscribe(() => {
61
- // Trigger change detection for labels
62
- });
63
- }
64
- }
65
- ngOnDestroy() {
66
- this.langSubscription?.unsubscribe();
67
- }
68
- hasReactiveContent() {
69
- return !!((this.props.downloadLabelContentKey && this.props.contentClass) ||
70
- (this.props.copyLabelContentKey && this.props.contentClass) ||
71
- (this.props.shareLabelContentKey && this.props.contentClass));
72
56
  }
73
57
  getDisplaySize() {
74
58
  if (this.props.displaySize) {
@@ -133,22 +117,13 @@ export class QrCodeComponent {
133
117
  return !!(this.props.showDownload || this.props.showCopy || this.props.showShare);
134
118
  }
135
119
  getDownloadLabel() {
136
- if (this.props.downloadLabelContentKey && this.props.contentClass) {
137
- return this.langService.getText(this.props.contentClass, this.props.downloadLabelContentKey, this.props.downloadLabel || 'Download');
138
- }
139
- return this.props.downloadLabel || 'Download';
120
+ return this.props.downloadLabel || 'Descargar';
140
121
  }
141
122
  getCopyLabel() {
142
- if (this.props.copyLabelContentKey && this.props.contentClass) {
143
- return this.langService.getText(this.props.contentClass, this.props.copyLabelContentKey, this.props.copyLabel || 'Copy');
144
- }
145
- return this.props.copyLabel || 'Copy';
123
+ return this.props.copyLabel || 'Copiar';
146
124
  }
147
125
  getShareLabel() {
148
- if (this.props.shareLabelContentKey && this.props.contentClass) {
149
- return this.langService.getText(this.props.contentClass, this.props.shareLabelContentKey, this.props.shareLabel || 'Share');
150
- }
151
- return this.props.shareLabel || 'Share';
126
+ return this.props.shareLabel || 'Compartir';
152
127
  }
153
128
  async onDownload() {
154
129
  try {
@@ -414,4 +389,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
414
389
  }], imageError: [{
415
390
  type: Output
416
391
  }] } });
417
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQUVwRixRQUFRLENBQUMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFrR3pEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFuSTVCO1FBc0lZLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDdkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFakQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRVIscUJBQWdCLEdBQXdCLElBQUksQ0FBQztRQUM3QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FxTWhEO0lBbk1DLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNuRSxzQ0FBc0M7WUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixPQUFPLENBQUMsQ0FBQyxDQUNQLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUMvRCxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDM0QsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQzdELENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbEQsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RSxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzlELENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM1RSxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxTQUFTLEdBQUcsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDdkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixPQUFPLG1CQUFtQixZQUFZLEtBQUssSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUNwRSxDQUFDO1lBQ0QsT0FBTyxtQkFBbUIsWUFBWSxLQUFLLElBQUksS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLGFBQWEsQ0FBQztJQUN6RCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sU0FBUyxHQUEyQjtZQUN4QyxJQUFJLEVBQUUsTUFBTTtZQUNaLEVBQUUsRUFBRSxpQ0FBaUM7WUFDckMsRUFBRSxFQUFFLHVFQUF1RTtZQUMzRSxFQUFFLEVBQUUseUVBQXlFO1lBQzdFLEVBQUUsRUFBRSwyRUFBMkU7U0FDaEYsQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUN0QyxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hGLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksVUFBVSxDQUN2QyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksVUFBVSxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FDL0IsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQ2pDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0I7Z0JBQ3pDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFO2dCQUMzQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2QsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDdkIsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssRUFBRSxLQUFjO2FBQ3RCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE9BQU87Z0JBQ1AsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLEVBQUUsS0FBYzthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQXlELEVBQUUsQ0FBQztZQUN6RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtnQkFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ2pFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7Z0JBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUUxRSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN0RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxPQUFPO2dCQUNmLE9BQU87Z0JBQ1AsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixNQUFNLEVBQUUsT0FBTztnQkFDZixPQUFPLEVBQUUsS0FBSztnQkFDZCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLEVBQUUsS0FBYzthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBaE5VLGVBQWU7bUdBQWYsZUFBZSxvTUEvSGhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVCxzN0pBMUZTLFlBQVksK0JBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVU7OzRGQWdJM0MsZUFBZTtrQkFuSTNCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxZQUM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQ7OEJBdUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBRckNvZGVNZXRhZGF0YSwgUXJDb2RlQWN0aW9uRXZlbnQsIFFyRGlzcGxheVRoZW1lIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBRckdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9xci1nZW5lcmF0b3IvcXItZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5cbmFkZEljb25zKHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItY29kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJxci1jb2RlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1yYWRpdXNdPVwiZ2V0Qm9yZGVyUmFkaXVzKClcIlxuICAgICAgW3N0eWxlLi0tcGFkZGluZ109XCJnZXRQYWRkaW5nKClcIlxuICAgICAgW3N0eWxlLi0tY29udGFpbmVyLWJnXT1cImdldENvbnRhaW5lckJhY2tncm91bmQoKVwiXG4gICAgICBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwicHJvcHMuYm9yZGVyQ29sb3IgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSknXCJcbiAgICAgIFtzdHlsZS4tLXNoYWRvd109XCJnZXRTaGFkb3coKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yXT1cInByb3BzLmdsb3dDb2xvciB8fCAnIzhiNWNmNidcIlxuICAgICAgW3N0eWxlLi0tcXItYm9yZGVyLXJhZGl1c109XCJnZXRRckJvcmRlclJhZGl1cygpXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWxhYmVsIHFyLWxhYmVsLS10b3BcIiBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIiBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cInFyLWltYWdlLXdyYXBwZXJcIiBbc3R5bGUuLS1zaXplXT1cImdldERpc3BsYXlTaXplKClcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwicHJvcHMucXIuZGF0YVVybFwiXG4gICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHQgfHwgJ1FSIENvZGUnXCJcbiAgICAgICAgICBjbGFzcz1cInFyLWltYWdlXCJcbiAgICAgICAgICAobG9hZCk9XCJvbkltYWdlTG9hZCgpXCJcbiAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAocHJvcHMubGFiZWwgJiYgcHJvcHMubGFiZWwucG9zaXRpb24gIT09ICd0b3AnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1sYWJlbCBxci1sYWJlbC0tYm90dG9tXCIgW3N0eWxlLi0tbGFiZWwtY29sb3JdPVwicHJvcHMubGFiZWwuY29sb3IgfHwgJ2luaGVyaXQnXCIgW3N0eWxlLi0tbGFiZWwtc2l6ZV09XCJnZXRMYWJlbEZvbnRTaXplKClcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uICE9PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2ZvbnQtd2VpZ2h0LS0nICsgKHByb3BzLmxhYmVsLmZvbnRXZWlnaHQgfHwgJ21lZGl1bScpXCI+e3sgcHJvcHMubGFiZWwudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaGFzQWN0aW9ucygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93RG93bmxvYWQpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkRvd25sb2FkKClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0RG93bmxvYWRMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93Q29weSAmJiBjYW5Db3B5KSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3B5KClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0Q29weUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NoYXJlICYmIGNhblNoYXJlKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TaGFyZSgpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImdldFNoYXJlTGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2hhcmUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3FyLWNvZGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1xci1jb2RlXG4gKlxuICogQSBjb21wb25lbnQgdG8gZGlzcGxheSBRUiBjb2RlcyBnZW5lcmF0ZWQgYnkgUXJHZW5lcmF0b3JTZXJ2aWNlLlxuICogUHJvdmlkZXMgb3B0aW9uYWwgYWN0aW9uIGJ1dHRvbnMgZm9yIGRvd25sb2FkLCBjb3B5LCBhbmQgc2hhcmUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHFyID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuZ2VuZXJhdGUoeyBkYXRhOiAnaHR0cHM6Ly9leGFtcGxlLmNvbScgfSk7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItY29kZSBbcHJvcHNdPVwieyBxcjogcXIgfVwiPjwvdmFsLXFyLWNvZGU+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGFjdGlvbnNcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItY29kZVxuICogICBbcHJvcHNdPVwie1xuICogICAgIHFyOiBxcixcbiAqICAgICBzaG93RG93bmxvYWQ6IHRydWUsXG4gKiAgICAgc2hvd0NvcHk6IHRydWUsXG4gKiAgICAgc2hvd1NoYXJlOiB0cnVlLFxuICogICAgIGRpc3BsYXlTaXplOiAyMDAsXG4gKiAgICAgc2hvd0JvcmRlcjogdHJ1ZSxcbiAqICAgICBib3JkZXJSYWRpdXM6IDEyXG4gKiAgIH1cIlxuICogICAoYWN0aW9uQ29tcGxldGUpPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gKiA+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogUXJDb2RlTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgUVIgZGlzcGxheVxuICogQG91dHB1dCBhY3Rpb25Db21wbGV0ZSAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIChkb3dubG9hZC9jb3B5L3NoYXJlKSBjb21wbGV0ZXNcbiAqIEBvdXRwdXQgaW1hZ2VMb2FkIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgbG9hZHNcbiAqIEBvdXRwdXQgaW1hZ2VFcnJvciAtIEVtaXRzIHdoZW4gdGhlIFFSIGltYWdlIGZhaWxzIHRvIGxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIFFyQ29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyQ29kZU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UXJDb2RlQWN0aW9uRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcblxuICBjYW5TaGFyZSA9IGZhbHNlO1xuICBjYW5Db3B5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBsYW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsYW5nU2VydmljZSA9IGluamVjdChMYW5nU2VydmljZSk7XG4gIHByaXZhdGUgcXJTZXJ2aWNlID0gaW5qZWN0KFFyR2VuZXJhdG9yU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5TaGFyZSA9IHRoaXMucXJTZXJ2aWNlLmNhblNoYXJlKCk7XG4gICAgdGhpcy5jYW5Db3B5ID0gdGhpcy5xclNlcnZpY2UuY2FuQ29weVRvQ2xpcGJvYXJkKCk7XG5cbiAgICBpZiAodGhpcy5oYXNSZWFjdGl2ZUNvbnRlbnQoKSkge1xuICAgICAgdGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy5sYW5nU2VydmljZS5jdXJyZW50TGFuZyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBsYWJlbHNcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVhY3RpdmVDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgICh0aGlzLnByb3BzLmRvd25sb2FkTGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKSB8fFxuICAgICAgKHRoaXMucHJvcHMuY29weUxhYmVsQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykgfHxcbiAgICAgICh0aGlzLnByb3BzLnNoYXJlTGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5U2l6ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmRpc3BsYXlTaXplKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5kaXNwbGF5U2l6ZX1weGA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnByb3BzLnFyLmNvbmZpZy53aWR0aCB8fCAzMDB9cHhgO1xuICB9XG5cbiAgZ2V0Qm9yZGVyUmFkaXVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5ib3JkZXJSYWRpdXN9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0UGFkZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBhZGRpbmcgPyBgJHt0aGlzLnByb3BzLnBhZGRpbmd9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0UXJCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5xckJvcmRlclJhZGl1cyA/IGAke3RoaXMucHJvcHMucXJCb3JkZXJSYWRpdXN9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jc3NDbGFzcykgY2xhc3Nlcy5wdXNoKHRoaXMucHJvcHMuY3NzQ2xhc3MpO1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dCb3JkZXIpIGNsYXNzZXMucHVzaCgnd2l0aC1ib3JkZXInKTtcbiAgICBpZiAodGhpcy5wcm9wcy5sb2FkaW5nKSBjbGFzc2VzLnB1c2goJ2xvYWRpbmcnKTtcbiAgICBpZiAodGhpcy5wcm9wcy50aGVtZSkgY2xhc3Nlcy5wdXNoKGB0aGVtZS0tJHt0aGlzLnByb3BzLnRoZW1lfWApO1xuICAgIGlmICh0aGlzLnByb3BzLnB1bHNlT25Ib3ZlcikgY2xhc3Nlcy5wdXNoKCdwdWxzZS1vbi1ob3ZlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLnNjYWxlT25Ib3ZlcikgY2xhc3Nlcy5wdXNoKCdzY2FsZS1vbi1ob3ZlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSBjbGFzc2VzLnB1c2goJ2hhcy1ncmFkaWVudCcpO1xuXG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyQmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSB7XG4gICAgICBjb25zdCB7IGZyb20sIHRvLCB2aWEsIGRpcmVjdGlvbiA9ICd0by1ib3R0b20nIH0gPSB0aGlzLnByb3BzLmdyYWRpZW50O1xuICAgICAgY29uc3QgY3NzRGlyZWN0aW9uID0gZGlyZWN0aW9uLnJlcGxhY2UoLy0vZywgJyAnKTtcbiAgICAgIGlmICh2aWEpIHtcbiAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtjc3NEaXJlY3Rpb259LCAke2Zyb219LCAke3ZpYX0sICR7dG99KWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dG99KWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRhaW5lckJhY2tncm91bmQgfHwgJ3RyYW5zcGFyZW50JztcbiAgfVxuXG4gIGdldFNoYWRvdygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNoYWRvd01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIG5vbmU6ICdub25lJyxcbiAgICAgIHNtOiAnMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KScsXG4gICAgICBtZDogJzAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjA2KScsXG4gICAgICBsZzogJzAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIHhsOiAnMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KScsXG4gICAgfTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5zaGFkb3cpIHJldHVybiAnbm9uZSc7XG4gICAgcmV0dXJuIHNoYWRvd01hcFt0aGlzLnByb3BzLnNoYWRvd10gfHwgdGhpcy5wcm9wcy5zaGFkb3c7XG4gIH1cblxuICBnZXRMYWJlbEZvbnRTaXplKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubGFiZWw/LmZvbnRTaXplID8gYCR7dGhpcy5wcm9wcy5sYWJlbC5mb250U2l6ZX1weGAgOiAnMTRweCc7XG4gIH1cblxuICBoYXNBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnByb3BzLnNob3dEb3dubG9hZCB8fCB0aGlzLnByb3BzLnNob3dDb3B5IHx8IHRoaXMucHJvcHMuc2hvd1NoYXJlKTtcbiAgfVxuXG4gIGdldERvd25sb2FkTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5kb3dubG9hZExhYmVsQ29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgcmV0dXJuIHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMuZG93bmxvYWRMYWJlbENvbnRlbnRLZXksXG4gICAgICAgIHRoaXMucHJvcHMuZG93bmxvYWRMYWJlbCB8fCAnRG93bmxvYWQnXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kb3dubG9hZExhYmVsIHx8ICdEb3dubG9hZCc7XG4gIH1cblxuICBnZXRDb3B5TGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb3B5TGFiZWxDb250ZW50S2V5ICYmIHRoaXMucHJvcHMuY29udGVudENsYXNzKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYW5nU2VydmljZS5nZXRUZXh0KFxuICAgICAgICB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcyxcbiAgICAgICAgdGhpcy5wcm9wcy5jb3B5TGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLmNvcHlMYWJlbCB8fCAnQ29weSdcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvcHlMYWJlbCB8fCAnQ29weSc7XG4gIH1cblxuICBnZXRTaGFyZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hhcmVMYWJlbENvbnRlbnRLZXkgJiYgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmdTZXJ2aWNlLmdldFRleHQoXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudENsYXNzLFxuICAgICAgICB0aGlzLnByb3BzLnNoYXJlTGFiZWxDb250ZW50S2V5LFxuICAgICAgICB0aGlzLnByb3BzLnNoYXJlTGFiZWwgfHwgJ1NoYXJlJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2hhcmVMYWJlbCB8fCAnU2hhcmUnO1xuICB9XG5cbiAgYXN5bmMgb25Eb3dubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZVxuICAgICAgICA/IHsgZmlsZW5hbWU6IHRoaXMucHJvcHMuZG93bmxvYWRGaWxlbmFtZSB9XG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgYXdhaXQgdGhpcy5xclNlcnZpY2UuZG93bmxvYWQodGhpcy5wcm9wcy5xciwgb3B0aW9ucyk7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2Rvd25sb2FkJyxcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgICBlcnJvcjogZXJyb3IgYXMgRXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvbkNvcHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5jb3B5VG9DbGlwYm9hcmQodGhpcy5wcm9wcy5xcik7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdjb3B5JyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25TaGFyZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9uczogeyB0aXRsZT86IHN0cmluZzsgdGV4dD86IHN0cmluZzsgZmlsZW5hbWU/OiBzdHJpbmcgfSA9IHt9O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVUaXRsZSkgb3B0aW9ucy50aXRsZSA9IHRoaXMucHJvcHMuc2hhcmVUaXRsZTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGV4dCkgb3B0aW9ucy50ZXh0ID0gdGhpcy5wcm9wcy5zaGFyZVRleHQ7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lKSBvcHRpb25zLmZpbGVuYW1lID0gdGhpcy5wcm9wcy5zaGFyZUZpbGVuYW1lO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2Uuc2hhcmUoXG4gICAgICAgIHRoaXMucHJvcHMucXIsXG4gICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCA+IDAgPyBvcHRpb25zIDogdW5kZWZpbmVkXG4gICAgICApO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdzaGFyZScsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25JbWFnZUxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZUxvYWQuZW1pdCgpO1xuICB9XG5cbiAgb25JbWFnZUVycm9yKF9ldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgUVIgY29kZSBpbWFnZScpO1xuICAgIHRoaXMuaW1hZ2VFcnJvci5lbWl0KGVycm9yKTtcbiAgfVxufVxuIl19
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7QUFFekYsUUFBUSxDQUFDLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBa0d6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBbkk1QjtRQXNJWSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3ZELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVSLGNBQVMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQThKaEQ7SUE1SkMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNB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ZCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLEVBQUUsS0FBYzthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBdktVLGVBQWU7bUdBQWYsZUFBZSxvTUEvSGhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVCxzN0pBMUZTLFlBQVksK0JBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVU7OzRGQWdJM0MsZUFBZTtrQkFuSTNCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxZQUM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQ7OEJBdUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhLCBRckNvZGVBY3Rpb25FdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcblxuYWRkSWNvbnMoeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1xci1jb2RlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInFyLWNvZGUtY29udGFpbmVyXCJcbiAgICAgIFtjbGFzc109XCJnZXRDb250YWluZXJDbGFzc2VzKClcIlxuICAgICAgW3N0eWxlLi0tYm9yZGVyLXJhZGl1c109XCJnZXRCb3JkZXJSYWRpdXMoKVwiXG4gICAgICBbc3R5bGUuLS1wYWRkaW5nXT1cImdldFBhZGRpbmcoKVwiXG4gICAgICBbc3R5bGUuLS1jb250YWluZXItYmddPVwiZ2V0Q29udGFpbmVyQmFja2dyb3VuZCgpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJwcm9wcy5ib3JkZXJDb2xvciB8fCAndmFyKC0taW9uLWNvbG9yLWxpZ2h0LXNoYWRlKSdcIlxuICAgICAgW3N0eWxlLi0tc2hhZG93XT1cImdldFNoYWRvdygpXCJcbiAgICAgIFtzdHlsZS4tLWdsb3ctY29sb3JdPVwicHJvcHMuZ2xvd0NvbG9yIHx8ICcjOGI1Y2Y2J1wiXG4gICAgICBbc3R5bGUuLS1xci1ib3JkZXItcmFkaXVzXT1cImdldFFyQm9yZGVyUmFkaXVzKClcIlxuICAgID5cbiAgICAgIEBpZiAocHJvcHMubG9hZGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1vdmVybGF5XCI+XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLmxhYmVsICYmIHByb3BzLmxhYmVsLnBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicXItbGFiZWwgcXItbGFiZWwtLXRvcFwiIFtzdHlsZS4tLWxhYmVsLWNvbG9yXT1cInByb3BzLmxhYmVsLmNvbG9yIHx8ICdpbmhlcml0J1wiIFtzdHlsZS4tLWxhYmVsLXNpemVdPVwiZ2V0TGFiZWxGb250U2l6ZSgpXCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5sYWJlbC5pY29uICYmIHByb3BzLmxhYmVsLmljb25Qb3NpdGlvbiAhPT0gJ2VuZCcpIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJwcm9wcy5sYWJlbC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidmb250LXdlaWdodC0tJyArIChwcm9wcy5sYWJlbC5mb250V2VpZ2h0IHx8ICdtZWRpdW0nKVwiPnt7IHByb3BzLmxhYmVsLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChwcm9wcy5sYWJlbC5pY29uICYmIHByb3BzLmxhYmVsLmljb25Qb3NpdGlvbiA9PT0gJ2VuZCcpIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJwcm9wcy5sYWJlbC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwicXItaW1hZ2Utd3JhcHBlclwiIFtzdHlsZS4tLXNpemVdPVwiZ2V0RGlzcGxheVNpemUoKVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3NyY109XCJwcm9wcy5xci5kYXRhVXJsXCJcbiAgICAgICAgICBbYWx0XT1cInByb3BzLmFsdCB8fCAnUVIgQ29kZSdcIlxuICAgICAgICAgIGNsYXNzPVwicXItaW1hZ2VcIlxuICAgICAgICAgIChsb2FkKT1cIm9uSW1hZ2VMb2FkKClcIlxuICAgICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiAhPT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWxhYmVsIHFyLWxhYmVsLS1ib3R0b21cIiBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIiBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNBY3Rpb25zKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWFjdGlvbnNcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dEb3dubG9hZCkge1xuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJnZXREb3dubG9hZExhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dDb3B5ICYmIGNhbkNvcHkpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNvcHkoKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJnZXRDb3B5TGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY29weS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93U2hhcmUgJiYgY2FuU2hhcmUpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblNoYXJlKClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0U2hhcmVMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcXItY29kZS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXFyLWNvZGVcbiAqXG4gKiBBIGNvbXBvbmVudCB0byBkaXNwbGF5IFFSIGNvZGVzIGdlbmVyYXRlZCBieSBRckdlbmVyYXRvclNlcnZpY2UuXG4gKiBQcm92aWRlcyBvcHRpb25hbCBhY3Rpb24gYnV0dG9ucyBmb3IgZG93bmxvYWQsIGNvcHksIGFuZCBzaGFyZS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogcXIgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZSh7IGRhdGE6ICdodHRwczovL2V4YW1wbGUuY29tJyB9KTtcbiAqIGBgYFxuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlIFtwcm9wc109XCJ7IHFyOiBxciB9XCI+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggYWN0aW9uc1xuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgcXI6IHFyLFxuICogICAgIHNob3dEb3dubG9hZDogdHJ1ZSxcbiAqICAgICBzaG93Q29weTogdHJ1ZSxcbiAqICAgICBzaG93U2hhcmU6IHRydWUsXG4gKiAgICAgZGlzcGxheVNpemU6IDIwMCxcbiAqICAgICBzaG93Qm9yZGVyOiB0cnVlLFxuICogICAgIGJvcmRlclJhZGl1czogMTJcbiAqICAgfVwiXG4gKiAgIChhY3Rpb25Db21wbGV0ZSk9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAqID48L3ZhbC1xci1jb2RlPlxuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBRckNvZGVNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBRUiBkaXNwbGF5XG4gKiBAb3V0cHV0IGFjdGlvbkNvbXBsZXRlIC0gRW1pdHMgd2hlbiBhbiBhY3Rpb24gKGRvd25sb2FkL2NvcHkvc2hhcmUpIGNvbXBsZXRlc1xuICogQG91dHB1dCBpbWFnZUxvYWQgLSBFbWl0cyB3aGVuIHRoZSBRUiBpbWFnZSBsb2Fkc1xuICogQG91dHB1dCBpbWFnZUVycm9yIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgZmFpbHMgdG8gbG9hZFxuICovXG5leHBvcnQgY2xhc3MgUXJDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyQ29kZU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UXJDb2RlQWN0aW9uRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcblxuICBjYW5TaGFyZSA9IGZhbHNlO1xuICBjYW5Db3B5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBxclNlcnZpY2UgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhblNoYXJlID0gdGhpcy5xclNlcnZpY2UuY2FuU2hhcmUoKTtcbiAgICB0aGlzLmNhbkNvcHkgPSB0aGlzLnFyU2VydmljZS5jYW5Db3B5VG9DbGlwYm9hcmQoKTtcbiAgfVxuXG4gIGdldERpc3BsYXlTaXplKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZGlzcGxheVNpemUpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnByb3BzLmRpc3BsYXlTaXplfXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMucXIuY29uZmlnLndpZHRoIHx8IDMwMH1weGA7XG4gIH1cblxuICBnZXRCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5ib3JkZXJSYWRpdXMgPyBgJHt0aGlzLnByb3BzLmJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRQYWRkaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucGFkZGluZyA/IGAke3RoaXMucHJvcHMucGFkZGluZ31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRRckJvcmRlclJhZGl1cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnFyQm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5xckJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRDb250YWluZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNzc0NsYXNzKSBjbGFzc2VzLnB1c2godGhpcy5wcm9wcy5jc3NDbGFzcyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0JvcmRlcikgY2xhc3Nlcy5wdXNoKCd3aXRoLWJvcmRlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmxvYWRpbmcpIGNsYXNzZXMucHVzaCgnbG9hZGluZycpO1xuICAgIGlmICh0aGlzLnByb3BzLnRoZW1lKSBjbGFzc2VzLnB1c2goYHRoZW1lLS0ke3RoaXMucHJvcHMudGhlbWV9YCk7XG4gICAgaWYgKHRoaXMucHJvcHMucHVsc2VPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3B1bHNlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2NhbGVPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3NjYWxlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIGNsYXNzZXMucHVzaCgnaGFzLWdyYWRpZW50Jyk7XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXRDb250YWluZXJCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgZnJvbSwgdG8sIHZpYSwgZGlyZWN0aW9uID0gJ3RvLWJvdHRvbScgfSA9IHRoaXMucHJvcHMuZ3JhZGllbnQ7XG4gICAgICBjb25zdCBjc3NEaXJlY3Rpb24gPSBkaXJlY3Rpb24ucmVwbGFjZSgvLS9nLCAnICcpO1xuICAgICAgaWYgKHZpYSkge1xuICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dmlhfSwgJHt0b30pYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KCR7Y3NzRGlyZWN0aW9ufSwgJHtmcm9tfSwgJHt0b30pYDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGFpbmVyQmFja2dyb3VuZCB8fCAndHJhbnNwYXJlbnQnO1xuICB9XG5cbiAgZ2V0U2hhZG93KCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2hhZG93TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbm9uZTogJ25vbmUnLFxuICAgICAgc206ICcwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIG1kOiAnMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpJyxcbiAgICAgIGxnOiAnMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSknLFxuICAgICAgeGw6ICcwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpJyxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLnByb3BzLnNoYWRvdykgcmV0dXJuICdub25lJztcbiAgICByZXR1cm4gc2hhZG93TWFwW3RoaXMucHJvcHMuc2hhZG93XSB8fCB0aGlzLnByb3BzLnNoYWRvdztcbiAgfVxuXG4gIGdldExhYmVsRm9udFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sYWJlbD8uZm9udFNpemUgPyBgJHt0aGlzLnByb3BzLmxhYmVsLmZvbnRTaXplfXB4YCA6ICcxNHB4JztcbiAgfVxuXG4gIGhhc0FjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuc2hvd0Rvd25sb2FkIHx8IHRoaXMucHJvcHMuc2hvd0NvcHkgfHwgdGhpcy5wcm9wcy5zaG93U2hhcmUpO1xuICB9XG5cbiAgZ2V0RG93bmxvYWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRvd25sb2FkTGFiZWwgfHwgJ0Rlc2Nhcmdhcic7XG4gIH1cblxuICBnZXRDb3B5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb3B5TGFiZWwgfHwgJ0NvcGlhcic7XG4gIH1cblxuICBnZXRTaGFyZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2hhcmVMYWJlbCB8fCAnQ29tcGFydGlyJztcbiAgfVxuXG4gIGFzeW5jIG9uRG93bmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnByb3BzLmRvd25sb2FkRmlsZW5hbWVcbiAgICAgICAgPyB7IGZpbGVuYW1lOiB0aGlzLnByb3BzLmRvd25sb2FkRmlsZW5hbWUgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGF3YWl0IHRoaXMucXJTZXJ2aWNlLmRvd25sb2FkKHRoaXMucHJvcHMucXIsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnZG93bmxvYWQnLFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25Db3B5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHRoaXMucHJvcHMucXIpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2NvcHknLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uU2hhcmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IHsgdGl0bGU/OiBzdHJpbmc7IHRleHQ/OiBzdHJpbmc7IGZpbGVuYW1lPzogc3RyaW5nIH0gPSB7fTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGl0bGUpIG9wdGlvbnMudGl0bGUgPSB0aGlzLnByb3BzLnNoYXJlVGl0bGU7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZVRleHQpIG9wdGlvbnMudGV4dCA9IHRoaXMucHJvcHMuc2hhcmVUZXh0O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVGaWxlbmFtZSkgb3B0aW9ucy5maWxlbmFtZSA9IHRoaXMucHJvcHMuc2hhcmVGaWxlbmFtZTtcblxuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLnNoYXJlKFxuICAgICAgICB0aGlzLnByb3BzLnFyLFxuICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5sZW5ndGggPiAwID8gb3B0aW9ucyA6IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ3NoYXJlJyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uSW1hZ2VMb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VMb2FkLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW1hZ2VFcnJvcihfZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIFFSIGNvZGUgaW1hZ2UnKTtcbiAgICB0aGlzLmltYWdlRXJyb3IuZW1pdChlcnJvcik7XG4gIH1cbn1cbiJdfQ==