@taiga-ui/legacy 4.7.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/classes/control.d.ts +1 -1
  2. package/classes/interactive.d.ts +0 -1
  3. package/components/color-selector/flat-picker/flat-picker.component.d.ts +1 -1
  4. package/components/color-selector/linear-multi-picker/linear-multi-picker.component.d.ts +1 -1
  5. package/components/color-selector/linear-picker/linear-picker.component.d.ts +1 -1
  6. package/components/color-selector/services/picker.service.d.ts +3 -0
  7. package/components/input-date-range/input-date-range.component.d.ts +1 -1
  8. package/components/input-month/input-month.directive.d.ts +1 -1
  9. package/components/input-month-range/input-month-range.directive.d.ts +5 -1
  10. package/components/input-tag/input-tag.component.d.ts +3 -1
  11. package/components/sheet/directives/sheet-stop/sheet-stop.directive.d.ts +4 -1
  12. package/components/svg/svg.component.d.ts +0 -1
  13. package/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.d.ts +2 -1
  14. package/directives/wrapper/wrapper.directive.d.ts +2 -1
  15. package/esm2022/classes/control.mjs +1 -1
  16. package/esm2022/classes/interactive.mjs +4 -4
  17. package/esm2022/components/arrow/arrow.component.mjs +3 -2
  18. package/esm2022/components/color-selector/color-edit/color-edit.component.mjs +5 -3
  19. package/esm2022/components/color-selector/color-picker/color-picker.component.mjs +5 -3
  20. package/esm2022/components/color-selector/color-selector.component.mjs +5 -3
  21. package/esm2022/components/color-selector/flat-picker/flat-picker.component.mjs +9 -7
  22. package/esm2022/components/color-selector/linear-multi-picker/linear-multi-picker.component.mjs +7 -6
  23. package/esm2022/components/color-selector/linear-picker/linear-picker.component.mjs +9 -7
  24. package/esm2022/components/color-selector/palette/palette.component.mjs +5 -3
  25. package/esm2022/components/color-selector/services/picker.service.mjs +8 -8
  26. package/esm2022/components/combo-box/combo-box.component.mjs +3 -2
  27. package/esm2022/components/input/input.component.mjs +3 -2
  28. package/esm2022/components/input-color/input-color.component.mjs +3 -2
  29. package/esm2022/components/input-copy/input-copy.component.mjs +3 -2
  30. package/esm2022/components/input-date/input-date.component.mjs +3 -2
  31. package/esm2022/components/input-date-multi/input-date-multi.component.mjs +3 -2
  32. package/esm2022/components/input-date-range/input-date-range.component.mjs +9 -5
  33. package/esm2022/components/input-date-time/input-date-time.component.mjs +3 -2
  34. package/esm2022/components/input-month/input-month.component.mjs +3 -2
  35. package/esm2022/components/input-month/input-month.directive.mjs +5 -5
  36. package/esm2022/components/input-month-range/input-month-range.component.mjs +3 -2
  37. package/esm2022/components/input-month-range/input-month-range.directive.mjs +9 -9
  38. package/esm2022/components/input-number/input-number.component.mjs +3 -2
  39. package/esm2022/components/input-password/input-password.component.mjs +3 -2
  40. package/esm2022/components/input-phone/input-phone.component.mjs +3 -2
  41. package/esm2022/components/input-phone-international/input-phone-international.component.mjs +3 -2
  42. package/esm2022/components/input-range/input-range.component.mjs +3 -2
  43. package/esm2022/components/input-slider/input-slider.component.mjs +3 -2
  44. package/esm2022/components/input-tag/input-tag.component.mjs +16 -4
  45. package/esm2022/components/input-time/input-time.component.mjs +3 -2
  46. package/esm2022/components/input-time/native-time/native-time.component.mjs +3 -2
  47. package/esm2022/components/input-year/input-year.component.mjs +3 -2
  48. package/esm2022/components/multi-select/multi-select-group/multi-select-group.component.mjs +3 -2
  49. package/esm2022/components/multi-select/multi-select.component.mjs +3 -2
  50. package/esm2022/components/multi-select/native-multi-select/native-multi-select-group.component.mjs +3 -2
  51. package/esm2022/components/multi-select/native-multi-select/native-multi-select.component.mjs +3 -2
  52. package/esm2022/components/multi-select-option/multi-select-option.component.mjs +5 -3
  53. package/esm2022/components/primitive-textfield/primitive-textfield.component.mjs +5 -4
  54. package/esm2022/components/primitive-textfield/textfield/textfield.component.mjs +4 -3
  55. package/esm2022/components/primitive-textfield/value-decoration/value-decoration.component.mjs +3 -2
  56. package/esm2022/components/select/native-select/native-select-group.component.mjs +3 -2
  57. package/esm2022/components/select/native-select/native-select.component.mjs +3 -2
  58. package/esm2022/components/select/select.component.mjs +3 -2
  59. package/esm2022/components/select-option/select-option.component.mjs +5 -3
  60. package/esm2022/components/sheet/components/sheet/sheet.component.mjs +3 -2
  61. package/esm2022/components/sheet/components/sheet-bar/sheet-bar.component.mjs +5 -3
  62. package/esm2022/components/sheet/components/sheet-heading/sheet-heading.component.mjs +5 -3
  63. package/esm2022/components/sheet/components/sheets-host/sheets-host.component.mjs +5 -3
  64. package/esm2022/components/sheet/directives/sheet-stop/sheet-stop.directive.mjs +12 -12
  65. package/esm2022/components/svg/svg.component.mjs +6 -4
  66. package/esm2022/components/table-bar/table-bar.component.mjs +3 -2
  67. package/esm2022/components/table-bar/table-bars-host.component.mjs +5 -3
  68. package/esm2022/components/tag/tag.component.mjs +3 -2
  69. package/esm2022/components/textarea/textarea.component.mjs +3 -2
  70. package/esm2022/components/tooltip/tooltip.component.mjs +3 -2
  71. package/esm2022/directives/legacy-dropdown-open-monitor/legacy-dropdown-open-monitor.mjs +4 -4
  72. package/esm2022/directives/wrapper/wrapper.directive.mjs +1 -1
  73. package/fesm2022/taiga-ui-legacy-classes.mjs +3 -3
  74. package/fesm2022/taiga-ui-legacy-classes.mjs.map +1 -1
  75. package/fesm2022/taiga-ui-legacy-components-arrow.mjs +2 -1
  76. package/fesm2022/taiga-ui-legacy-components-arrow.mjs.map +1 -1
  77. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs +45 -32
  78. package/fesm2022/taiga-ui-legacy-components-color-selector.mjs.map +1 -1
  79. package/fesm2022/taiga-ui-legacy-components-combo-box.mjs +2 -1
  80. package/fesm2022/taiga-ui-legacy-components-combo-box.mjs.map +1 -1
  81. package/fesm2022/taiga-ui-legacy-components-input-color.mjs +2 -1
  82. package/fesm2022/taiga-ui-legacy-components-input-color.mjs.map +1 -1
  83. package/fesm2022/taiga-ui-legacy-components-input-copy.mjs +2 -1
  84. package/fesm2022/taiga-ui-legacy-components-input-copy.mjs.map +1 -1
  85. package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs +2 -1
  86. package/fesm2022/taiga-ui-legacy-components-input-date-multi.mjs.map +1 -1
  87. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs +8 -4
  88. package/fesm2022/taiga-ui-legacy-components-input-date-range.mjs.map +1 -1
  89. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs +2 -1
  90. package/fesm2022/taiga-ui-legacy-components-input-date-time.mjs.map +1 -1
  91. package/fesm2022/taiga-ui-legacy-components-input-date.mjs +2 -1
  92. package/fesm2022/taiga-ui-legacy-components-input-date.mjs.map +1 -1
  93. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs +9 -8
  94. package/fesm2022/taiga-ui-legacy-components-input-month-range.mjs.map +1 -1
  95. package/fesm2022/taiga-ui-legacy-components-input-month.mjs +6 -5
  96. package/fesm2022/taiga-ui-legacy-components-input-month.mjs.map +1 -1
  97. package/fesm2022/taiga-ui-legacy-components-input-number.mjs +2 -1
  98. package/fesm2022/taiga-ui-legacy-components-input-number.mjs.map +1 -1
  99. package/fesm2022/taiga-ui-legacy-components-input-password.mjs +2 -1
  100. package/fesm2022/taiga-ui-legacy-components-input-password.mjs.map +1 -1
  101. package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs +2 -1
  102. package/fesm2022/taiga-ui-legacy-components-input-phone-international.mjs.map +1 -1
  103. package/fesm2022/taiga-ui-legacy-components-input-phone.mjs +2 -1
  104. package/fesm2022/taiga-ui-legacy-components-input-phone.mjs.map +1 -1
  105. package/fesm2022/taiga-ui-legacy-components-input-range.mjs +2 -1
  106. package/fesm2022/taiga-ui-legacy-components-input-range.mjs.map +1 -1
  107. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs +2 -1
  108. package/fesm2022/taiga-ui-legacy-components-input-slider.mjs.map +1 -1
  109. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs +16 -5
  110. package/fesm2022/taiga-ui-legacy-components-input-tag.mjs.map +1 -1
  111. package/fesm2022/taiga-ui-legacy-components-input-time.mjs +4 -2
  112. package/fesm2022/taiga-ui-legacy-components-input-time.mjs.map +1 -1
  113. package/fesm2022/taiga-ui-legacy-components-input-year.mjs +2 -1
  114. package/fesm2022/taiga-ui-legacy-components-input-year.mjs.map +1 -1
  115. package/fesm2022/taiga-ui-legacy-components-input.mjs +2 -1
  116. package/fesm2022/taiga-ui-legacy-components-input.mjs.map +1 -1
  117. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs +4 -2
  118. package/fesm2022/taiga-ui-legacy-components-multi-select-option.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs +8 -4
  120. package/fesm2022/taiga-ui-legacy-components-multi-select.mjs.map +1 -1
  121. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs +9 -6
  122. package/fesm2022/taiga-ui-legacy-components-primitive-textfield.mjs.map +1 -1
  123. package/fesm2022/taiga-ui-legacy-components-select-option.mjs +4 -2
  124. package/fesm2022/taiga-ui-legacy-components-select-option.mjs.map +1 -1
  125. package/fesm2022/taiga-ui-legacy-components-select.mjs +6 -3
  126. package/fesm2022/taiga-ui-legacy-components-select.mjs.map +1 -1
  127. package/fesm2022/taiga-ui-legacy-components-sheet.mjs +25 -18
  128. package/fesm2022/taiga-ui-legacy-components-sheet.mjs.map +1 -1
  129. package/fesm2022/taiga-ui-legacy-components-svg.mjs +5 -3
  130. package/fesm2022/taiga-ui-legacy-components-svg.mjs.map +1 -1
  131. package/fesm2022/taiga-ui-legacy-components-table-bar.mjs +6 -3
  132. package/fesm2022/taiga-ui-legacy-components-table-bar.mjs.map +1 -1
  133. package/fesm2022/taiga-ui-legacy-components-tag.mjs +2 -1
  134. package/fesm2022/taiga-ui-legacy-components-tag.mjs.map +1 -1
  135. package/fesm2022/taiga-ui-legacy-components-textarea.mjs +2 -1
  136. package/fesm2022/taiga-ui-legacy-components-textarea.mjs.map +1 -1
  137. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs +2 -1
  138. package/fesm2022/taiga-ui-legacy-components-tooltip.mjs.map +1 -1
  139. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs +3 -3
  140. package/fesm2022/taiga-ui-legacy-directives-legacy-dropdown-open-monitor.mjs.map +1 -1
  141. package/fesm2022/taiga-ui-legacy-directives-wrapper.mjs.map +1 -1
  142. package/package.json +1 -1
  143. package/styles/mixins/textfield.less +0 -1
  144. package/utils/icons-path-factory.d.ts +1 -1
@@ -126,7 +126,7 @@ class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
126
126
  this.countryIsoCodeChange.emit(code);
127
127
  }
128
128
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneInternationalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
129
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputPhoneInternationalComponent, isStandalone: true, selector: "tui-input-phone-international", inputs: { countries: "countries", isoCode: ["countryIsoCode", "isoCode"] }, outputs: { countryIsoCodeChange: "countryIsoCodeChange" }, host: { listeners: { "paste.capture.prevent.stop": "onPaste($event)", "drop.capture.prevent.stop": "onPaste($event)" }, properties: { "attr.data-size": "size" } }, providers: [
129
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputPhoneInternationalComponent, isStandalone: true, selector: "tui-input-phone-international", inputs: { countries: "countries", isoCode: ["countryIsoCode", "isoCode"] }, outputs: { countryIsoCodeChange: "countryIsoCodeChange" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "paste.capture.prevent.stop": "onPaste($event)", "drop.capture.prevent.stop": "onPaste($event)" }, properties: { "attr.data-size": "size" } }, providers: [
130
130
  tuiAsFocusableItemAccessor(TuiInputPhoneInternationalComponent),
131
131
  tuiAsControl(TuiInputPhoneInternationalComponent),
132
132
  TuiToCountryCodePipe,
@@ -161,6 +161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
161
161
  tuiAsControl(TuiInputPhoneInternationalComponent),
162
162
  TuiToCountryCodePipe,
163
163
  ], viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], host: {
164
+ ngSkipHydration: 'true',
164
165
  '[attr.data-size]': 'size',
165
166
  '(paste.capture.prevent.stop)': 'onPaste($event)',
166
167
  '(drop.capture.prevent.stop)': 'onPaste($event)',
@@ -179,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
179
180
  type: Input,
180
181
  args: ['countryIsoCode']
181
182
  }], calculateMaskAfterCountryCode: [] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVB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QkFBQyxzQkFBc0I7Z0JBSWhCLGtCQUFrQjtzQkFEbEMsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBZWxDLFNBQVM7c0JBRGYsS0FBSztnQkFJVSxvQkFBb0I7c0JBRG5DLE1BQU07Z0JBTUksT0FBTztzQkFEakIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBaUdmLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q0hBUl9QTFVTLCBUVUlfTk9OX0RJR0lUU19SRUdFWFB9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VHVpQnV0dG9ufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1R1aURhdGFMaXN0fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2RhdGEtbGlzdCc7XG5pbXBvcnQge1R1aUFwcGVhcmFuY2V9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvYXBwZWFyYW5jZSc7XG5pbXBvcnQge1R1aURyb3Bkb3dufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2Ryb3Bkb3duJztcbmltcG9ydCB7VHVpR3JvdXB9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZ3JvdXAnO1xuaW1wb3J0IHtUdWlIaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2hpbnQnO1xuaW1wb3J0IHtUdWlGbGFnUGlwZX0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvcGlwZXMvZmxhZyc7XG5pbXBvcnQgdHlwZSB7VHVpU2l6ZUwsIFR1aVNpemVNLCBUdWlTaXplU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHR5cGUge1R1aUNvdW50cnlJc29Db2RlfSBmcm9tICdAdGFpZ2EtdWkvaTE4bi90eXBlcyc7XG5pbXBvcnQge1RVSV9DT1VOVFJJRVN9IGZyb20gJ0B0YWlnYS11aS9raXQvdG9rZW5zJztcbmltcG9ydCB7QWJzdHJhY3RUdWlDb250cm9sLCB0dWlBc0NvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1RVSV9BUlJPVywgVHVpQXJyb3dDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1xuICAgIFR1aUlucHV0UGhvbmVDb21wb25lbnQsXG4gICAgVHVpSW5wdXRQaG9uZU1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL2lucHV0LXBob25lJztcbmltcG9ydCB7XG4gICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZE1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL3ByaW1pdGl2ZS10ZXh0ZmllbGQnO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX1NJWkUsXG4gICAgVHVpTGVnYWN5RHJvcGRvd25PcGVuTW9uaXRvckRpcmVjdGl2ZSxcbiAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxufSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtUdWlJc29Ub0NvdW50cnlDb2RlUGlwZSwgVHVpVG9Db3VudHJ5Q29kZVBpcGV9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvcGlwZXMnO1xuaW1wb3J0IHR5cGUge1R1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTX01BU0tTLCB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIHR1aUdldE1heEFsbG93ZWRQaG9uZUxlbmd0aCxcbiAgICB0dWlJc29Ub0NvdW50cnlDb2RlLFxufSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3V0aWxzJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7UG9seW1vcnBoZXVzT3V0bGV0LCBQb2x5bW9ycGhldXNUZW1wbGF0ZX0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1BIT05FX0lOVEVSTkFUSU9OQUxfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLm9wdGlvbnMnO1xuaW1wb3J0IHt0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnR9IGZyb20gJy4vdXRpbHMvZXh0cmFjdC12YWx1ZS1mcm9tLWV2ZW50JztcblxuY29uc3QgTUFTS19TWU1CT0xTID0gL1sgXFwtXygpXS9nO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjAgdXNlIHtAbGluayBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbH1cbiAqIGh0dHBzOi8vdGFpZ2EtdWkuZGV2L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXBob25lLWludGVybmF0aW9uYWwnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUG9seW1vcnBoZXVzT3V0bGV0LFxuICAgICAgICBQb2x5bW9ycGhldXNUZW1wbGF0ZSxcbiAgICAgICAgVHVpQXBwZWFyYW5jZSxcbiAgICAgICAgVHVpQXJyb3dDb21wb25lbnQsXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpRGF0YUxpc3QsXG4gICAgICAgIFR1aURyb3Bkb3duLFxuICAgICAgICBUdWlGbGFnUGlwZSxcbiAgICAgICAgVHVpR3JvdXAsXG4gICAgICAgIFR1aUhpbnQsXG4gICAgICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG4gICAgICAgIFR1aUlzb1RvQ291bnRyeUNvZGVQaXBlLFxuICAgICAgICBUdWlMZWdhY3lEcm9wZG93bk9wZW5Nb25pdG9yRGlyZWN0aXZlLFxuICAgICAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnQpLFxuICAgICAgICBUdWlUb0NvdW50cnlDb2RlUGlwZSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUnLFxuICAgICAgICAnKHBhc3RlLmNhcHR1cmUucHJldmVudC5zdG9wKSc6ICdvblBhc3RlKCRldmVudCknLFxuICAgICAgICAnKGRyb3AuY2FwdHVyZS5wcmV2ZW50LnN0b3ApJzogJ29uUGFzdGUoJGV2ZW50KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aUlucHV0UGhvbmVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFBob25lQ29tcG9uZW50PzogVHVpSW5wdXRQaG9uZUNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlVGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9JTlBVVF9QSE9ORV9JTlRFUk5BVElPTkFMX09QVElPTlMpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXh0cmFjdENvdW50cnlDb2RlUGlwZSA9IGluamVjdChUdWlUb0NvdW50cnlDb2RlUGlwZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRTaXplID0gaW5qZWN0KFRVSV9URVhURklFTERfU0laRSk7XG5cbiAgICBwcm90ZWN0ZWQgb3BlbiA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb3VudHJpZXNOYW1lcyQgPSBpbmplY3QoVFVJX0NPVU5UUklFUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50cmllc01hc2tzID0gaW5qZWN0KFRVSV9DT1VOVFJJRVNfTUFTS1MpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhcnJvdzogUG9seW1vcnBoZXVzQ29udGVudDxcbiAgICAgICAgVHVpQ29udGV4dDxUdWlTaXplTCB8IFR1aVNpemVNIHwgVHVpU2l6ZVM+XG4gICAgPiA9IFRVSV9BUlJPVztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvdW50cmllcyA9IHRoaXMub3B0aW9ucy5jb3VudHJpZXM7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgY291bnRyeUlzb0NvZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFR1aUNvdW50cnlJc29Db2RlPigpO1xuXG4gICAgcHVibGljIGNvdW50cnlJc29Db2RlID0gdGhpcy5vcHRpb25zLmNvdW50cnlJc29Db2RlO1xuXG4gICAgQElucHV0KCdjb3VudHJ5SXNvQ29kZScpXG4gICAgcHVibGljIHNldCBpc29Db2RlKGNvZGU6IFR1aUNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgIGlmICh0aGlzLmNvdW50cnlJc29Db2RlID09PSBjb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlucHV0UGhvbmVDb21wb25lbnQ/LndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUgPSBjb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmICF0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gdGhpcy5pbnB1dFBob25lQ29tcG9uZW50Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnRcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoISF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCAmJiB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC5mb2N1c2VkKSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaW5wdXRQaG9uZUNvdW50cnlDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0dWlJc29Ub0NvdW50cnlDb2RlKHRoaXMuY291bnRyaWVzTWFza3MsIHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuaW5wdXRQaG9uZUNvdW50cnlDb2RlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGN1bGF0ZU1hc2tBZnRlckNvdW50cnlDb2RlKFxuICAgICAgICAgICAgdGhpcy5jb3VudHJpZXNNYXNrc1t0aGlzLmNvdW50cnlJc29Db2RlXSxcbiAgICAgICAgICAgIGNvdW50cnlDb2RlLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCB8IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsdWUgPSB0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnQoZXZlbnQpLnJlcGxhY2UoVFVJX05PTl9ESUdJVFNfUkVHRVhQLCAnJyk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gdGhpcy5leHRyYWN0Q291bnRyeUNvZGVQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgdGhpcy5jb3VudHJpZXMsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFjb3VudHJ5SXNvQ29kZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGAke3RoaXMuaW5wdXRQaG9uZUNvdW50cnlDb2RlfSR7dmFsdWV9YFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlQWxsKE1BU0tfU1lNQk9MUywgJycpXG4gICAgICAgICAgICAgICAgLnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgICB0dWlHZXRNYXhBbGxvd2VkUGhvbmVMZW5ndGgodGhpcy5jb3VudHJpZXNNYXNrcywgdGhpcy5jb3VudHJ5SXNvQ29kZSksXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvdW50cnlJc29Db2RlID09PSAnUlUnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL144LywgJzcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoY291bnRyeUlzb0NvZGUpO1xuICAgICAgICB0aGlzLnZhbHVlID0gYCR7Q0hBUl9QTFVTfSR7dmFsdWV9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25JdGVtQ2xpY2soaXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoaXNvQ29kZSk7XG4gICAgICAgIC8vIHJlY2FsY3VsYXRlcyBtYXNrIGluc2lkZSBpbnB1dFBob25lIHRvIHByZXZlbnQgaXNvQ29kZSBjb25mbGljdFxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoID0gdHVpR2V0TWF4QWxsb3dlZFBob25lTGVuZ3RoKHRoaXMuY291bnRyaWVzTWFza3MsIGlzb0NvZGUpO1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuc2xpY2UoMCwgbWF4TGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2l6ZSgpOiBUdWlTaXplTCB8IFR1aVNpemVTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dGZpZWxkU2l6ZS5zaXplO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWFza0FmdGVyQ291bnRyeUNvZGUobWFzazogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1hc2sucmVwbGFjZShjb3VudHJ5Q29kZSwgJycpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNvdW50cnlJc29Db2RlKGNvZGU6IFR1aUNvdW50cnlJc29Db2RlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGUgPSBjb2RlO1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlQ2hhbmdlLmVtaXQoY29kZSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwiY291bnRyaWVzTmFtZXMkIHwgYXN5bmMgYXMgY291bnRyaWVzTmFtZXNcIlxuICAgIHR1aURyb3Bkb3duT3Blbk1vbml0b3JcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bkVuYWJsZWRdPVwiIXJlYWRPbmx5XCJcbiAgICBbKHR1aURyb3Bkb3duT3BlbildPVwib3BlblwiXG4gICAgKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIlxuPlxuICAgIDxkaXYgdHVpR3JvdXA+XG4gICAgICAgIDx0dWktcHJpbWl0aXZlLXRleHRmaWVsZFxuICAgICAgICAgICAgdHVpSGludENvbnRlbnQ9XCJcIlxuICAgICAgICAgICAgdHVpVGV4dGZpZWxkUG9zdGZpeD1cIlwiXG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRQcmVmaXg9XCJcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWNvdW50cnktc2VsZWN0XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbZWRpdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW3BzZXVkb0ZvY3VzXT1cIm9wZW4gfHwgbnVsbFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0eWxlLmZsZXhdPVwiJzAgMCBhdXRvJ1wiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudF09XCJjb3VudHJ5VmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRJY29uXT1cImljb25cIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZExhYmVsT3V0c2lkZV09XCJ0cnVlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHR1aS1pbnB1dC1waG9uZVxuICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0LXBob25lXCJcbiAgICAgICAgICAgIFtjb3VudHJ5Q29kZV09XCJpbnB1dFBob25lQ291bnRyeUNvZGVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtmb2N1c2FibGVdPVwiZm9jdXNhYmxlXCJcbiAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICAgICAgW3Bob25lTWFza0FmdGVyQ291bnRyeUNvZGVdPVwicGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBbcHNldWRvRm9jdXNdPVwicHNldWRvRm9jdXNcIlxuICAgICAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgICAgIFtwc2V1ZG9JbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgW3N0eWxlLmZsZXhdPVwiJzAgMCBhdXRvJ1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm5ldy1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgdHVpVGV4dGZpZWxkTGVnYWN5XG4gICAgICAgICAgICAvPlxuICAgICAgICA8L3R1aS1pbnB1dC1waG9uZT5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZHJvcGRvd24+XG4gICAgICAgIDx0dWktZGF0YS1saXN0PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvdW50cmllc1wiXG4gICAgICAgICAgICAgICAgdHVpT3B0aW9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtIHwgdHVpRmxhZ1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY291bnRyeS1pdGVtLW5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgY291bnRyaWVzTmFtZXNbaXRlbV0gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0LWNvdW50cnktaXRlbS1jb2RlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfCB0dWlJc29Ub0NvdW50cnlDb2RlIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdHVpLWRhdGEtbGlzdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNjb3VudHJ5VmFsdWVDb250ZW50PlxuICAgICAgICA8aW1nXG4gICAgICAgICAgICBjbGFzcz1cInQtZmxhZyB0LWZsYWdfc2VsZWN0XCJcbiAgICAgICAgICAgIFthbHRdPVwiY291bnRyaWVzTmFtZXNbY291bnRyeUlzb0NvZGVdXCJcbiAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeUlzb0NvZGUgfCB0dWlGbGFnXCJcbiAgICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICA8ZGl2IHR1aUFwcGVhcmFuY2U9XCJpY29uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJhcnJvd1wiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVB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QixtQkFBbUI7c0JBRG5DLFNBQVM7dUJBQUMsc0JBQXNCO2dCQUloQixrQkFBa0I7c0JBRGxDLFNBQVM7dUJBQUMsOEJBQThCO2dCQWVsQyxTQUFTO3NCQURmLEtBQUs7Z0JBSVUsb0JBQW9CO3NCQURuQyxNQUFNO2dCQU1JLE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQWlHZiw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NIQVJfUExVUywgVFVJX05PTl9ESUdJVFNfUkVHRVhQfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7VHVpQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1R1aUJ1dHRvbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtUdWlEYXRhTGlzdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlBcHBlYXJhbmNlfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2FwcGVhcmFuY2UnO1xuaW1wb3J0IHtUdWlEcm9wZG93bn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge1R1aUdyb3VwfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2dyb3VwJztcbmltcG9ydCB7VHVpSGludH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9oaW50JztcbmltcG9ydCB7VHVpRmxhZ1BpcGV9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3BpcGVzL2ZsYWcnO1xuaW1wb3J0IHR5cGUge1R1aVNpemVMLCBUdWlTaXplTSwgVHVpU2l6ZVN9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3R5cGVzJztcbmltcG9ydCB0eXBlIHtUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4vdHlwZXMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTfSBmcm9tICdAdGFpZ2EtdWkva2l0L3Rva2Vucyc7XG5pbXBvcnQge0Fic3RyYWN0VHVpQ29udHJvbCwgdHVpQXNDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfQVJST1csIFR1aUFycm93Q29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvYXJyb3cnO1xuaW1wb3J0IHtcbiAgICBUdWlJbnB1dFBob25lQ29tcG9uZW50LFxuICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1waG9uZSc7XG5pbXBvcnQge1xuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRNb2R1bGUsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9wcmltaXRpdmUtdGV4dGZpZWxkJztcbmltcG9ydCB7XG4gICAgVFVJX1RFWFRGSUVMRF9TSVpFLFxuICAgIFR1aUxlZ2FjeURyb3Bkb3duT3Blbk1vbml0b3JEaXJlY3RpdmUsXG4gICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzJztcbmltcG9ydCB7VHVpSXNvVG9Db3VudHJ5Q29kZVBpcGUsIFR1aVRvQ291bnRyeUNvZGVQaXBlfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3BpcGVzJztcbmltcG9ydCB0eXBlIHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7VFVJX0NPVU5UUklFU19NQVNLUywgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7XG4gICAgRklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICB0dWlHZXRNYXhBbGxvd2VkUGhvbmVMZW5ndGgsXG4gICAgdHVpSXNvVG9Db3VudHJ5Q29kZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS91dGlscyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5pbXBvcnQge1BvbHltb3JwaGV1c091dGxldCwgUG9seW1vcnBoZXVzVGVtcGxhdGV9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9QSE9ORV9JTlRFUk5BVElPTkFMX09QVElPTlN9IGZyb20gJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5vcHRpb25zJztcbmltcG9ydCB7dHVpRXh0cmFjdFZhbHVlRnJvbUV2ZW50fSBmcm9tICcuL3V0aWxzL2V4dHJhY3QtdmFsdWUtZnJvbS1ldmVudCc7XG5cbmNvbnN0IE1BU0tfU1lNQk9MUyA9IC9bIFxcLV8oKV0vZztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZDogZHJvcCBpbiB2NS4wIHVzZSB7QGxpbmsgVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWx9XG4gKiBodHRwczovL3RhaWdhLXVpLmRldi9jb21wb25lbnRzL2lucHV0LXBob25lLWludGVybmF0aW9uYWxcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFBvbHltb3JwaGV1c091dGxldCxcbiAgICAgICAgUG9seW1vcnBoZXVzVGVtcGxhdGUsXG4gICAgICAgIFR1aUFwcGVhcmFuY2UsXG4gICAgICAgIFR1aUFycm93Q29tcG9uZW50LFxuICAgICAgICBUdWlCdXR0b24sXG4gICAgICAgIFR1aURhdGFMaXN0LFxuICAgICAgICBUdWlEcm9wZG93bixcbiAgICAgICAgVHVpRmxhZ1BpcGUsXG4gICAgICAgIFR1aUdyb3VwLFxuICAgICAgICBUdWlIaW50LFxuICAgICAgICBUdWlJbnB1dFBob25lTW9kdWxlLFxuICAgICAgICBUdWlJc29Ub0NvdW50cnlDb2RlUGlwZSxcbiAgICAgICAgVHVpTGVnYWN5RHJvcGRvd25PcGVuTW9uaXRvckRpcmVjdGl2ZSxcbiAgICAgICAgVHVpUHJpbWl0aXZlVGV4dGZpZWxkTW9kdWxlLFxuICAgICAgICBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlLFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgVHVpVG9Db3VudHJ5Q29kZVBpcGUsXG4gICAgXSxcbiAgICB2aWV3UHJvdmlkZXJzOiBbRklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUl0sXG4gICAgaG9zdDoge1xuICAgICAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZScsXG4gICAgICAgICcocGFzdGUuY2FwdHVyZS5wcmV2ZW50LnN0b3ApJzogJ29uUGFzdGUoJGV2ZW50KScsXG4gICAgICAgICcoZHJvcC5jYXB0dXJlLnByZXZlbnQuc3RvcCknOiAnb25QYXN0ZSgkZXZlbnQpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lSW50ZXJuYXRpb25hbENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPHN0cmluZz5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXRQaG9uZUNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0UGhvbmVDb21wb25lbnQ/OiBUdWlJbnB1dFBob25lQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltaXRpdmVUZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBpbmplY3QoVFVJX0lOUFVUX1BIT05FX0lOVEVSTkFUSU9OQUxfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0Q291bnRyeUNvZGVQaXBlID0gaW5qZWN0KFR1aVRvQ291bnRyeUNvZGVQaXBlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZFNpemUgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9TSVpFKTtcblxuICAgIHByb3RlY3RlZCBvcGVuID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvdW50cmllc05hbWVzJCA9IGluamVjdChUVUlfQ09VTlRSSUVTKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY291bnRyaWVzTWFza3MgPSBpbmplY3QoVFVJX0NPVU5UUklFU19NQVNLUyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFycm93OiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0PFR1aVNpemVMIHwgVHVpU2l6ZU0gfCBUdWlTaXplUz5cbiAgICA+ID0gVFVJX0FSUk9XO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY291bnRyaWVzID0gdGhpcy5vcHRpb25zLmNvdW50cmllcztcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpQ291bnRyeUlzb0NvZGU+KCk7XG5cbiAgICBwdWJsaWMgY291bnRyeUlzb0NvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUlzb0NvZGU7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlJc29Db2RlJylcbiAgICBwdWJsaWMgc2V0IGlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgaWYgKHRoaXMuY291bnRyeUlzb0NvZGUgPT09IGNvZGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudD8ud3JpdGVWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZSA9IGNvZGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0UGhvbmVDb21wb25lbnQgJiYgIXRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyB0aGlzLmlucHV0UGhvbmVDb21wb25lbnQubmF0aXZlRm9jdXNhYmxlRWxlbWVudFxuICAgICAgICAgICAgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICghIXRoaXMucHJpbWl0aXZlVGV4dGZpZWxkICYmIHRoaXMucHJpbWl0aXZlVGV4dGZpZWxkLmZvY3VzZWQpIHx8XG4gICAgICAgICAgICAoISF0aGlzLmlucHV0UGhvbmVDb21wb25lbnQgJiYgdGhpcy5pbnB1dFBob25lQ29tcG9uZW50LmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpbnB1dFBob25lQ291bnRyeUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzb1RvQ291bnRyeUNvZGUodGhpcy5jb3VudHJpZXNNYXNrcywgdGhpcy5jb3VudHJ5SXNvQ29kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5pbnB1dFBob25lQ291bnRyeUNvZGU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlTWFza0FmdGVyQ291bnRyeUNvZGUoXG4gICAgICAgICAgICB0aGlzLmNvdW50cmllc01hc2tzW3RoaXMuY291bnRyeUlzb0NvZGVdLFxuICAgICAgICAgICAgY291bnRyeUNvZGUsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50IHwgRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZSA9IHR1aUV4dHJhY3RWYWx1ZUZyb21FdmVudChldmVudCkucmVwbGFjZShUVUlfTk9OX0RJR0lUU19SRUdFWFAsICcnKTtcbiAgICAgICAgY29uc3QgY291bnRyeUlzb0NvZGUgPSB0aGlzLmV4dHJhY3RDb3VudHJ5Q29kZVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICB0aGlzLmNvdW50cmllcyxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIWNvdW50cnlJc29Db2RlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gYCR7dGhpcy5pbnB1dFBob25lQ291bnRyeUNvZGV9JHt2YWx1ZX1gXG4gICAgICAgICAgICAgICAgLnJlcGxhY2VBbGwoTUFTS19TWU1CT0xTLCAnJylcbiAgICAgICAgICAgICAgICAuc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgICAgIHR1aUdldE1heEFsbG93ZWRQaG9uZUxlbmd0aCh0aGlzLmNvdW50cmllc01hc2tzLCB0aGlzLmNvdW50cnlJc29Db2RlKSxcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY291bnRyeUlzb0NvZGUgPT09ICdSVScpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvXjgvLCAnNycpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVDb3VudHJ5SXNvQ29kZShjb3VudHJ5SXNvQ29kZSk7XG4gICAgICAgIHRoaXMudmFsdWUgPSBgJHtDSEFSX1BMVVN9JHt2YWx1ZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkl0ZW1DbGljayhpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVDb3VudHJ5SXNvQ29kZShpc29Db2RlKTtcbiAgICAgICAgLy8gcmVjYWxjdWxhdGVzIG1hc2sgaW5zaWRlIGlucHV0UGhvbmUgdG8gcHJldmVudCBpc29Db2RlIGNvbmZsaWN0XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0dWlHZXRNYXhBbGxvd2VkUGhvbmVMZW5ndGgodGhpcy5jb3VudHJpZXNNYXNrcywgaXNvQ29kZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzaXplKCk6IFR1aVNpemVMIHwgVHVpU2l6ZVMge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0ZmllbGRTaXplLnNpemU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVNYXNrQWZ0ZXJDb3VudHJ5Q29kZShtYXNrOiBzdHJpbmcsIGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gbWFzay5yZXBsYWNlKGNvdW50cnlDb2RlLCAnJykudHJpbSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ291bnRyeUlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nSWY9XCJjb3VudHJpZXNOYW1lcyQgfCBhc3luYyBhcyBjb3VudHJpZXNOYW1lc1wiXG4gICAgdHVpRHJvcGRvd25PcGVuTW9uaXRvclxuICAgIFt0dWlEcm9wZG93bl09XCJkcm9wZG93blwiXG4gICAgW3R1aURyb3Bkb3duRW5hYmxlZF09XCIhcmVhZE9ubHlcIlxuICAgIFsodHVpRHJvcGRvd25PcGVuKV09XCJvcGVuXCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4+XG4gICAgPGRpdiB0dWlHcm91cD5cbiAgICAgICAgPHR1aS1wcmltaXRpdmUtdGV4dGZpZWxkXG4gICAgICAgICAgICB0dWlIaW50Q29udGVudD1cIlwiXG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRQb3N0Zml4PVwiXCJcbiAgICAgICAgICAgIHR1aVRleHRmaWVsZFByZWZpeD1cIlwiXG4gICAgICAgICAgICBjbGFzcz1cInQtY291bnRyeS1zZWxlY3RcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtlZGl0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbZm9jdXNhYmxlXT1cImZvY3VzYWJsZVwiXG4gICAgICAgICAgICBbcHNldWRvRm9jdXNdPVwib3BlbiB8fCBudWxsXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3R5bGUuZmxleF09XCInMCAwIGF1dG8nXCJcbiAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRDdXN0b21Db250ZW50XT1cImNvdW50cnlWYWx1ZUNvbnRlbnRcIlxuICAgICAgICAgICAgW3R1aVRleHRmaWVsZEljb25dPVwiaWNvblwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkTGFiZWxPdXRzaWRlXT1cInRydWVcIlxuICAgICAgICAvPlxuICAgICAgICA8dHVpLWlucHV0LXBob25lXG4gICAgICAgICAgICBjbGFzcz1cInQtaW5wdXQtcGhvbmVcIlxuICAgICAgICAgICAgW2NvdW50cnlDb2RlXT1cImlucHV0UGhvbmVDb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgICAgICBbcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZV09XCJwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Gb2N1c109XCJwc2V1ZG9Gb2N1c1wiXG4gICAgICAgICAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgICAgICAgICAgW3BzZXVkb0ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbc3R5bGUuZmxleF09XCInMCAwIGF1dG8nXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRMZWdhY3lcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvdHVpLWlucHV0LXBob25lPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgICAgICAgPHR1aS1kYXRhLWxpc3Q+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY291bnRyaWVzXCJcbiAgICAgICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWZsYWdcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0gfCB0dWlGbGFnXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb3VudHJ5LWl0ZW0tbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudHJpZXNOYW1lc1tpdGVtXSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY291bnRyeS1pdGVtLWNvZGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB8IHR1aUlzb1RvQ291bnRyeUNvZGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NvdW50cnlWYWx1ZUNvbnRlbnQ+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnIHQtZmxhZ19zZWxlY3RcIlxuICAgICAgICAgICAgW2FsdF09XCJjb3VudHJpZXNOYW1lc1tjb3VudHJ5SXNvQ29kZV1cIlxuICAgICAgICAgICAgW3NyY109XCJjb3VudHJ5SXNvQ29kZSB8IHR1aUZsYWdcIlxuICAgICAgICAvPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2ljb24+XG4gICAgICAgIDxkaXYgdHVpQXBwZWFyYW5jZT1cImljb25cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImFycm93XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -153,7 +153,7 @@ class TuiInputRangeComponent extends AbstractTuiControl {
153
153
  this.rightTextfieldValue = rightValue;
154
154
  }
155
155
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputRangeComponent, selector: "tui-input-range", inputs: { min: "min", max: "max", quantum: "quantum", steps: "steps", segments: "segments", keySteps: "keySteps", leftValueContent: "leftValueContent", rightValueContent: "rightValueContent", pluralize: "pluralize" }, host: { properties: { "attr.data-size": "controller.size", "class._label-outside": "controller.labelOutside" } }, providers: [
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputRangeComponent, selector: "tui-input-range", inputs: { min: "min", max: "max", quantum: "quantum", steps: "steps", segments: "segments", keySteps: "keySteps", leftValueContent: "leftValueContent", rightValueContent: "rightValueContent", pluralize: "pluralize" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "attr.data-size": "controller.size", "class._label-outside": "controller.labelOutside" } }, providers: [
157
157
  tuiAsFocusableItemAccessor(TuiInputRangeComponent),
158
158
  tuiAsControl(TuiInputRangeComponent),
159
159
  tuiSliderOptionsProvider({ trackColor: 'transparent' }),
@@ -172,6 +172,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
172
172
  tuiSliderOptionsProvider({ trackColor: 'transparent' }),
173
173
  TEXTFIELD_CONTROLLER_PROVIDER,
174
174
  ], host: {
175
+ ngSkipHydration: 'true',
175
176
  '[attr.data-size]': 'controller.size',
176
177
  '[class._label-outside]': 'controller.labelOutside',
177
178
  }, template: "<div\n tuiWrapper\n class=\"t-wrapper\"\n [appearance]=\"appearance\"\n [disabled]=\"disabled\"\n [focus]=\"computedFocused\"\n [hover]=\"pseudoHover\"\n [invalid]=\"computedInvalid\"\n [readOnly]=\"readOnly\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <tui-input-number\n automation-id=\"tui-input-range__left-input\"\n tuiTextfieldAppearance=\"none\"\n class=\"t-left\"\n [disabled]=\"computedDisabled\"\n [max]=\"value[1]\"\n [min]=\"min\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly\"\n [tuiNumberFormat]=\"{precision}\"\n [tuiTextfieldPostfix]=\"pluralize ? (value[0] | i18nPlural: pluralize) : ''\"\n [(ngModel)]=\"leftTextfieldValue\"\n (focusedChange)=\"onTextInputFocused($event)\"\n (keydown.arrowDown)=\"changeByStep($event, [-1, 0])\"\n (keydown.arrowUp)=\"changeByStep($event, [1, 0])\"\n (ngModelChange)=\"onInputLeft($event)\"\n >\n <ng-content />\n <div\n *ngIf=\"showLeftValueContent\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"leftValueContent as text; context: {$implicit: value[0]}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-input-number>\n\n <tui-input-number\n automation-id=\"tui-input-range__right-input\"\n tuiTextfieldAppearance=\"none\"\n class=\"t-right\"\n [disabled]=\"computedDisabled\"\n [max]=\"max\"\n [min]=\"value[0]\"\n [ngModelOptions]=\"{standalone: true}\"\n [readOnly]=\"readOnly\"\n [tuiNumberFormat]=\"{precision}\"\n [tuiTextfieldPostfix]=\"pluralize ? (value[1] | i18nPlural: pluralize) : ''\"\n [(ngModel)]=\"rightTextfieldValue\"\n (focusedChange)=\"onTextInputFocused($event)\"\n (keydown.arrowDown)=\"changeByStep($event, [0, -1])\"\n (keydown.arrowUp)=\"changeByStep($event, [0, 1])\"\n (ngModelChange)=\"onInputRight($event)\"\n >\n <div\n *ngIf=\"showRightValueContent\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"rightValueContent as text; context: {$implicit: value[1]}\">\n {{ text }}\n </ng-container>\n </div>\n </tui-input-number>\n\n <tui-range\n class=\"t-range\"\n [disabled]=\"readOnly || disabled\"\n [focusable]=\"false\"\n [keySteps]=\"computeKeySteps(keySteps, min, max)\"\n [max]=\"max\"\n [min]=\"min\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n [segments]=\"segments\"\n [step]=\"step\"\n (activeThumbChange)=\"onActiveThumbChange($event)\"\n (mousedown.prevent)=\"focusToTextInput()\"\n (ngModelChange)=\"onExternalValueUpdate($event)\"\n />\n</div>\n", styles: [".t-wrapper{position:relative}.t-left{inline-size:100%}.t-right{position:absolute;right:0;top:0;display:flex;inline-size:50%;block-size:100%;text-align:end}:host{display:block;border-radius:var(--tui-radius-m)}.t-range{position:absolute;top:100%;left:0;right:0;z-index:1;margin:-.125rem 0 0}\n"] }]
@@ -200,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
200
201
  }], pluralize: [{
201
202
  type: Input
202
203
  }], computeKeySteps: [] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHdCQUF3QixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNq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QUFDLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBQyxDQUFDO1lBQ3JELDZCQUE2QjtTQUNoQyxpRUFhVSxRQUFRLDJCQUFTLFVBQVUsa0RBSHhCLHVCQUF1Qix1RUMxRHpDLG01RkFrRkE7O0FEK0VjO0lBRFQsT0FBTzs2REFZUDtTQXRIUSxzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFqQmxDLFNBQVM7aUNBQ00sS0FBSyxZQUNQLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLDBCQUEwQix3QkFBd0I7d0JBQ2xELFlBQVksd0JBQXdCO3dCQUNwQyx3QkFBd0IsQ0FBQyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUMsQ0FBQzt3QkFDckQsNkJBQTZCO3FCQUNoQyxRQUNLO3dCQUNGLGtCQUFrQixFQUFFLGlCQUFpQjt3QkFDckMsd0JBQXdCLEVBQUUseUJBQXlCO3FCQUN0RDs4QkFPZ0IsZUFBZTtzQkFEL0IsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBSXBCLEtBQUs7c0JBRHJCLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFZaEMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBaUVJLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUVUlfSVNfTU9CSUxFfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7VHVpQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUluamVjdEVsZW1lbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkLCB0dWlJc05hdGl2ZUZvY3VzZWRJbn0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aUNsYW1wLCB0dWlSb3VuZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9mb3JtYXQnO1xuaW1wb3J0IHtUdWlSYW5nZX0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3JhbmdlJztcbmltcG9ydCB0eXBlIHtUdWlLZXlTdGVwc30gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge1xuICAgIFRVSV9GTE9BVElOR19QUkVDSVNJT04sXG4gICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7QWJzdHJhY3RUdWlDb250cm9sLCB0dWlBc0NvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aUlucHV0TnVtYmVyQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyJztcbmltcG9ydCB7XG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7XG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7dHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1yYW5nZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1yYW5nZS5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRSYW5nZUNvbXBvbmVudCksXG4gICAgICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcih7dHJhY2tDb2xvcjogJ3RyYW5zcGFyZW50J30pLFxuICAgICAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnY29udHJvbGxlci5zaXplJyxcbiAgICAgICAgJ1tjbGFzcy5fbGFiZWwtb3V0c2lkZV0nOiAnY29udHJvbGxlci5sYWJlbE91dHNpZGUnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UmFuZ2VDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxbbnVtYmVyLCBudW1iZXJdPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZHJlbihUdWlJbnB1dE51bWJlckNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0TnVtYmVyUmVmczogUXVlcnlMaXN0PFR1aUlucHV0TnVtYmVyQ29tcG9uZW50PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQFZpZXdDaGlsZChUdWlSYW5nZSwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmFuZ2U/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNNb2JpbGUgPSBpbmplY3QoVFVJX0lTX01PQklMRSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbCA9IHR1aUluamVjdEVsZW1lbnQoKTtcblxuICAgIHByb3RlY3RlZCBsZWZ0VGV4dGZpZWxkVmFsdWUgPSB0aGlzLnNhZmVDdXJyZW50VmFsdWVbMF07XG4gICAgcHJvdGVjdGVkIHJpZ2h0VGV4dGZpZWxkVmFsdWUgPSB0aGlzLnNhZmVDdXJyZW50VmFsdWVbMV07XG4gICAgcHJvdGVjdGVkIGxhc3RBY3RpdmVTaWRlOiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb250cm9sbGVyID0gaW5qZWN0KFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1pbiA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtYXggPSAxMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBxdWFudHVtID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHN0ZXBzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlZ21lbnRzID0gMTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGVmdFZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0PG51bWJlcj4+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmlnaHRWYWx1ZUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsdXJhbGl6ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmxlZnRGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMucmlnaHRGb2N1c2FibGVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVRleHRmaWVsZFZhbHVlcyh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGxlZnRGb2N1c2FibGVFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXROdW1iZXJSZWZzLmZpcnN0Py5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCByaWdodEZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE51bWJlclJlZnMubGFzdD8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCBudWxsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYXBwZWFyYW5jZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmFwcGVhcmFuY2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzaG93TGVmdFZhbHVlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0aGlzLmxlZnRWYWx1ZUNvbnRlbnQgJiZcbiAgICAgICAgICAgICAgICAhdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubGVmdEZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5yYW5nZT8ubmF0aXZlRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0QWN0aXZlU2lkZSA9PT0gJ2xlZnQnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNob3dSaWdodFZhbHVlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgICB0aGlzLnJpZ2h0VmFsdWVDb250ZW50ICYmXG4gICAgICAgICAgICAgICAgIXR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLnJpZ2h0Rm9jdXNhYmxlRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbih0aGlzLnJhbmdlPy5uYXRpdmVFbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RBY3RpdmVTaWRlID09PSAncmlnaHQnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHByZWNpc2lvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkKHRoaXMucXVhbnR1bSkubGVuZ3RoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRTdGVwcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcyB8fCAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLnF1YW50dW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLmNvbXB1dGVkU3RlcHM7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcm90ZWN0ZWQgY29tcHV0ZUtleVN0ZXBzKFxuICAgICAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsLFxuICAgICAgICBtaW46IG51bWJlcixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAga2V5U3RlcHMgfHwgW1xuICAgICAgICAgICAgICAgIFswLCBtaW5dLFxuICAgICAgICAgICAgICAgIFsxMDAsIG1heF0sXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQWN0aXZlWm9uZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGV4dElucHV0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0ZmllbGRWYWx1ZXModGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2hhbmdlQnlTdGVwKFxuICAgICAgICBldmVudDogRXZlbnQgfCBLZXlib2FyZEV2ZW50LFxuICAgICAgICBbbGVmdENvZWZmaWNpZW50LCByaWdodENvZWZmaWNpZW50XTogW251bWJlciwgbnVtYmVyXSxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQoW1xuICAgICAgICAgICAgdGhpcy52YWx1ZVswXSArIGxlZnRDb2VmZmljaWVudCAqIHRoaXMuc3RlcCxcbiAgICAgICAgICAgIHRoaXMudmFsdWVbMV0gKyByaWdodENvZWZmaWNpZW50ICogdGhpcy5zdGVwLFxuICAgICAgICBdKTtcblxuICAgICAgICBpZiAobmV3VmFsdWVbMF0gIT09IHRoaXMudmFsdWVbMF0gfHwgbmV3VmFsdWVbMV0gIT09IHRoaXMudmFsdWVbMV0pIHtcbiAgICAgICAgICAgIHRoaXMub25FeHRlcm5hbFZhbHVlVXBkYXRlKG5ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbklucHV0TGVmdCh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKFt2YWx1ZSA/PyB0aGlzLnNhZmVDdXJyZW50VmFsdWVbMF0sIHRoaXMudmFsdWVbMV1dKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25JbnB1dFJpZ2h0KHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUoW3RoaXMudmFsdWVbMF0sIHZhbHVlID8/IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkV4dGVybmFsVmFsdWVVcGRhdGUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYWZlbHlVcGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVGV4dGZpZWxkVmFsdWVzKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb2N1c1RvVGV4dElucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdsZWZ0J1xuICAgICAgICAgICAgICAgID8gdGhpcy5sZWZ0Rm9jdXNhYmxlRWxlbWVudFxuICAgICAgICAgICAgICAgIDogdGhpcy5yaWdodEZvY3VzYWJsZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlICYmIGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFjdGl2ZVRodW1iQ2hhbmdlKGFjdGl2ZVRodW1iOiAnbGVmdCcgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGFzdEFjdGl2ZVNpZGUgPSBhY3RpdmVUaHVtYjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgICAgICAgcmV0dXJuIFswLCAwXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlOiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsdWVHdWFyZChbbGVmdFZhbHVlLCByaWdodFZhbHVlXTogW251bWJlciwgbnVtYmVyXSk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICBjb25zdCBsZWZ0Q2FsaWJyYXRlZFZhbHVlID0gdGhpcy5jYWxpYnJhdGUobGVmdFZhbHVlKTtcbiAgICAgICAgY29uc3QgcmlnaHRDYWxpYnJhdGVkVmFsdWUgPSB0aGlzLmNhbGlicmF0ZShyaWdodFZhbHVlKTtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgTWF0aC5taW4obGVmdENhbGlicmF0ZWRWYWx1ZSwgdGhpcy52YWx1ZVsxXSksXG4gICAgICAgICAgICBNYXRoLm1heChyaWdodENhbGlicmF0ZWRWYWx1ZSwgdGhpcy52YWx1ZVswXSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxpYnJhdGUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IHR1aVJvdW5kKFxuICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0dWlDbGFtcChyb3VuZGVkVmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVUZXh0ZmllbGRWYWx1ZXMoW2xlZnRWYWx1ZSwgcmlnaHRWYWx1ZV06IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sZWZ0VGV4dGZpZWxkVmFsdWUgPSBsZWZ0VmFsdWU7XG4gICAgICAgIHRoaXMucmlnaHRUZXh0ZmllbGRWYWx1ZSA9IHJpZ2h0VmFsdWU7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIHR1aVdyYXBwZXJcbiAgICBjbGFzcz1cInQtd3JhcHBlclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbZm9jdXNdPVwiY29tcHV0ZWRGb2N1c2VkXCJcbiAgICBbaG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAodHVpQWN0aXZlWm9uZUNoYW5nZSk9XCJvbkFjdGl2ZVpvbmUoJGV2ZW50KVwiXG4+XG4gICAgPHR1aS1pbnB1dC1udW1iZXJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1yYW5nZV9fbGVmdC1pbnB1dFwiXG4gICAgICAgIHR1aVRleHRmaWVsZEFwcGVhcmFuY2U9XCJub25lXCJcbiAgICAgICAgY2xhc3M9XCJ0LWxlZnRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFttYXhdPVwidmFsdWVbMV1cIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbdHVpTnVtYmVyRm9ybWF0XT1cIntwcmVjaXNpb259XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZFBvc3RmaXhdPVwicGx1cmFsaXplID8gKHZhbHVlWzBdIHwgaTE4blBsdXJhbDogcGx1cmFsaXplKSA6ICcnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJsZWZ0VGV4dGZpZWxkVmFsdWVcIlxuICAgICAgICAoZm9jdXNlZENoYW5nZSk9XCJvblRleHRJbnB1dEZvY3VzZWQoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJjaGFuZ2VCeVN0ZXAoJGV2ZW50LCBbLTEsIDBdKVwiXG4gICAgICAgIChrZXlkb3duLmFycm93VXApPVwiY2hhbmdlQnlTdGVwKCRldmVudCwgWzEsIDBdKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW5wdXRMZWZ0KCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93TGVmdFZhbHVlQ29udGVudFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJsZWZ0VmFsdWVDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlWzBdfVwiPlxuICAgICAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3R1aS1pbnB1dC1udW1iZXI+XG5cbiAgICA8dHVpLWlucHV0LW51bWJlclxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LXJhbmdlX19yaWdodC1pbnB1dFwiXG4gICAgICAgIHR1aVRleHRmaWVsZEFwcGVhcmFuY2U9XCJub25lXCJcbiAgICAgICAgY2xhc3M9XCJ0LXJpZ2h0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgIFttaW5dPVwidmFsdWVbMF1cIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgW3R1aU51bWJlckZvcm1hdF09XCJ7cHJlY2lzaW9ufVwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRQb3N0Zml4XT1cInBsdXJhbGl6ZSA/ICh2YWx1ZVsxXSB8IGkxOG5QbHVyYWw6IHBsdXJhbGl6ZSkgOiAnJ1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwicmlnaHRUZXh0ZmllbGRWYWx1ZVwiXG4gICAgICAgIChmb2N1c2VkQ2hhbmdlKT1cIm9uVGV4dElucHV0Rm9jdXNlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cImNoYW5nZUJ5U3RlcCgkZXZlbnQsIFswLCAtMV0pXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJjaGFuZ2VCeVN0ZXAoJGV2ZW50LCBbMCwgMV0pXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dFJpZ2h0KCRldmVudClcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93UmlnaHRWYWx1ZUNvbnRlbnRcIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJ0dWlDb250ZW50XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwicmlnaHRWYWx1ZUNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWVbMV19XCI+XG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvdHVpLWlucHV0LW51bWJlcj5cblxuICAgIDx0dWktcmFuZ2VcbiAgICAgICAgY2xhc3M9XCJ0LXJhbmdlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5IHx8IGRpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtrZXlTdGVwc109XCJjb21wdXRlS2V5U3RlcHMoa2V5U3RlcHMsIG1pbiwgbWF4KVwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICBbc2VnbWVudHNdPVwic2VnbWVudHNcIlxuICAgICAgICBbc3RlcF09XCJzdGVwXCJcbiAgICAgICAgKGFjdGl2ZVRodW1iQ2hhbmdlKT1cIm9uQWN0aXZlVGh1bWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChtb3VzZWRvd24ucHJldmVudCk9XCJmb2N1c1RvVGV4dElucHV0KClcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkV4dGVybmFsVmFsdWVVcGRhdGUoJGV2ZW50KVwiXG4gICAgLz5cbjwvZGl2PlxuIl19
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtcmFuZ2UvaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLHdCQUF3QixHQUMzQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNq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QUFDLEVBQUMsVUFBVSxFQUFFLGFBQWEsRUFBQyxDQUFDO1lBQ3JELDZCQUE2QjtTQUNoQyxpRUFjVSxRQUFRLDJCQUFTLFVBQVUsa0RBSHhCLHVCQUF1Qix1RUMzRHpDLG01RkFrRkE7O0FEZ0ZjO0lBRFQsT0FBTzs2REFZUDtTQXRIUSxzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFsQmxDLFNBQVM7aUNBQ00sS0FBSyxZQUNQLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLDBCQUEwQix3QkFBd0I7d0JBQ2xELFlBQVksd0JBQXdCO3dCQUNwQyx3QkFBd0IsQ0FBQyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUMsQ0FBQzt3QkFDckQsNkJBQTZCO3FCQUNoQyxRQUNLO3dCQUNGLGVBQWUsRUFBRSxNQUFNO3dCQUN2QixrQkFBa0IsRUFBRSxpQkFBaUI7d0JBQ3JDLHdCQUF3QixFQUFFLHlCQUF5QjtxQkFDdEQ7OEJBT2dCLGVBQWU7c0JBRC9CLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUlwQixLQUFLO3NCQURyQixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7Z0JBWWhDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxHQUFHO3NCQURULEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQWlFSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1F1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RU1QVFlfUVVFUll9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7VFVJX0lTX01PQklMRX0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1R1aUNvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZCwgdHVpSXNOYXRpdmVGb2N1c2VkSW59IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvZm9jdXMnO1xuaW1wb3J0IHt0dWlDbGFtcCwgdHVpUm91bmR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWF0aCc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUdldEZyYWN0aW9uUGFydFBhZGRlZH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvdXRpbHMvZm9ybWF0JztcbmltcG9ydCB7VHVpUmFuZ2V9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9yYW5nZSc7XG5pbXBvcnQgdHlwZSB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgIHR1aVNsaWRlck9wdGlvbnNQcm92aWRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL3NsaWRlcic7XG5pbXBvcnQge0Fic3RyYWN0VHVpQ29udHJvbCwgdHVpQXNDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NsYXNzZXMnO1xuaW1wb3J0IHtUdWlJbnB1dE51bWJlckNvbXBvbmVudH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jb21wb25lbnRzL2lucHV0LW51bWJlcic7XG5pbXBvcnQge1xuICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIFRVSV9URVhURklFTERfV0FUQ0hFRF9DT05UUk9MTEVSLFxufSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHR5cGUge1xuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50LFxufSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQge3R1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L3Rva2Vucyc7XG5pbXBvcnQgdHlwZSB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL3BvbHltb3JwaGV1cyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtcmFuZ2UudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcmFuZ2Uuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dFJhbmdlQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UmFuZ2VDb21wb25lbnQpLFxuICAgICAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIoe3RyYWNrQ29sb3I6ICd0cmFuc3BhcmVudCd9KSxcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdjb250cm9sbGVyLnNpemUnLFxuICAgICAgICAnW2NsYXNzLl9sYWJlbC1vdXRzaWRlXSc6ICdjb250cm9sbGVyLmxhYmVsT3V0c2lkZScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRSYW5nZUNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPFtudW1iZXIsIG51bWJlcl0+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkcmVuKFR1aUlucHV0TnVtYmVyQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXROdW1iZXJSZWZzOiBRdWVyeUxpc3Q8VHVpSW5wdXROdW1iZXJDb21wb25lbnQ+ID0gRU1QVFlfUVVFUlk7XG5cbiAgICBAVmlld0NoaWxkKFR1aVJhbmdlLCB7cmVhZDogRWxlbWVudFJlZn0pXG4gICAgcHJpdmF0ZSByZWFkb25seSByYW5nZT86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBpc01vYmlsZSA9IGluamVjdChUVUlfSVNfTU9CSUxFKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gdHVpSW5qZWN0RWxlbWVudCgpO1xuXG4gICAgcHJvdGVjdGVkIGxlZnRUZXh0ZmllbGRWYWx1ZSA9IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVswXTtcbiAgICBwcm90ZWN0ZWQgcmlnaHRUZXh0ZmllbGRWYWx1ZSA9IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVsxXTtcbiAgICBwcm90ZWN0ZWQgbGFzdEFjdGl2ZVNpZGU6ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRyb2xsZXIgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heCA9IDEwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHF1YW50dW0gPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsZWZ0VmFsdWVDb250ZW50OiBQb2x5bW9ycGhldXNDb250ZW50PFR1aUNvbnRleHQ8bnVtYmVyPj47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByaWdodFZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0PG51bWJlcj4+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGx1cmFsaXplOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMubGVmdEZvY3VzYWJsZUVsZW1lbnQgfHwgdGhpcy5yaWdodEZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHVpSXNOYXRpdmVGb2N1c2VkSW4odGhpcy5lbCk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlVGV4dGZpZWxkVmFsdWVzKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgbGVmdEZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE51bWJlclJlZnMuZmlyc3Q/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfHwgbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHJpZ2h0Rm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0TnVtYmVyUmVmcy5sYXN0Py5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBhcHBlYXJhbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuYXBwZWFyYW5jZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNob3dMZWZ0VmFsdWVDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgICAgIHRoaXMubGVmdFZhbHVlQ29udGVudCAmJlxuICAgICAgICAgICAgICAgICF0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5sZWZ0Rm9jdXNhYmxlRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWRJbih0aGlzLnJhbmdlPy5uYXRpdmVFbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RBY3RpdmVTaWRlID09PSAnbGVmdCdcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2hvd1JpZ2h0VmFsdWVDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgICAgIHRoaXMucmlnaHRWYWx1ZUNvbnRlbnQgJiZcbiAgICAgICAgICAgICAgICAhdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMucmlnaHRGb2N1c2FibGVFbGVtZW50KSAmJlxuICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMucmFuZ2U/Lm5hdGl2ZUVsZW1lbnQpICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdEFjdGl2ZVNpZGUgPT09ICdyaWdodCdcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcHJlY2lzaW9uKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0dWlHZXRGcmFjdGlvblBhcnRQYWRkZWQodGhpcy5xdWFudHVtKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZFN0ZXBzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzIHx8ICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMucXVhbnR1bTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMuY29tcHV0ZWRTdGVwcztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByb3RlY3RlZCBjb21wdXRlS2V5U3RlcHMoXG4gICAgICAgIGtleVN0ZXBzOiBUdWlLZXlTdGVwcyB8IG51bGwsXG4gICAgICAgIG1pbjogbnVtYmVyLFxuICAgICAgICBtYXg6IG51bWJlcixcbiAgICApOiBUdWlLZXlTdGVwcyB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBrZXlTdGVwcyB8fCBbXG4gICAgICAgICAgICAgICAgWzAsIG1pbl0sXG4gICAgICAgICAgICAgICAgWzEwMCwgbWF4XSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoYWN0aXZlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UZXh0SW5wdXRGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHRmaWVsZFZhbHVlcyh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGFuZ2VCeVN0ZXAoXG4gICAgICAgIGV2ZW50OiBFdmVudCB8IEtleWJvYXJkRXZlbnQsXG4gICAgICAgIFtsZWZ0Q29lZmZpY2llbnQsIHJpZ2h0Q29lZmZpY2llbnRdOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMudmFsdWVHdWFyZChbXG4gICAgICAgICAgICB0aGlzLnZhbHVlWzBdICsgbGVmdENvZWZmaWNpZW50ICogdGhpcy5zdGVwLFxuICAgICAgICAgICAgdGhpcy52YWx1ZVsxXSArIHJpZ2h0Q29lZmZpY2llbnQgKiB0aGlzLnN0ZXAsXG4gICAgICAgIF0pO1xuXG4gICAgICAgIGlmIChuZXdWYWx1ZVswXSAhPT0gdGhpcy52YWx1ZVswXSB8fCBuZXdWYWx1ZVsxXSAhPT0gdGhpcy52YWx1ZVsxXSkge1xuICAgICAgICAgICAgdGhpcy5vbkV4dGVybmFsVmFsdWVVcGRhdGUobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uSW5wdXRMZWZ0KHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUoW3ZhbHVlID8/IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZVswXSwgdGhpcy52YWx1ZVsxXV0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbklucHV0UmlnaHQodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYWZlbHlVcGRhdGVWYWx1ZShbdGhpcy52YWx1ZVswXSwgdmFsdWUgPz8gdGhpcy5zYWZlQ3VycmVudFZhbHVlWzFdXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZSh2YWx1ZTogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVUZXh0ZmllbGRWYWx1ZXModGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZvY3VzVG9UZXh0SW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPVxuICAgICAgICAgICAgdGhpcy5sYXN0QWN0aXZlU2lkZSA9PT0gJ2xlZnQnXG4gICAgICAgICAgICAgICAgPyB0aGlzLmxlZnRGb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICAgICAgOiB0aGlzLnJpZ2h0Rm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoIXRoaXMuaXNNb2JpbGUgJiYgZWxlbWVudCkge1xuICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQWN0aXZlVGh1bWJDaGFuZ2UoYWN0aXZlVGh1bWI6ICdsZWZ0JyB8ICdyaWdodCcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYXN0QWN0aXZlU2lkZSA9IGFjdGl2ZVRodW1iO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgICAgICByZXR1cm4gWzAsIDBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2FmZWx5VXBkYXRlVmFsdWUodmFsdWU6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWVHdWFyZCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZUd1YXJkKFtsZWZ0VmFsdWUsIHJpZ2h0VmFsdWVdOiBbbnVtYmVyLCBudW1iZXJdKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgICAgIGNvbnN0IGxlZnRDYWxpYnJhdGVkVmFsdWUgPSB0aGlzLmNhbGlicmF0ZShsZWZ0VmFsdWUpO1xuICAgICAgICBjb25zdCByaWdodENhbGlicmF0ZWRWYWx1ZSA9IHRoaXMuY2FsaWJyYXRlKHJpZ2h0VmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBNYXRoLm1pbihsZWZ0Q2FsaWJyYXRlZFZhbHVlLCB0aGlzLnZhbHVlWzFdKSxcbiAgICAgICAgICAgIE1hdGgubWF4KHJpZ2h0Q2FsaWJyYXRlZFZhbHVlLCB0aGlzLnZhbHVlWzBdKSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbGlicmF0ZSh2YWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3Qgcm91bmRlZFZhbHVlID0gdHVpUm91bmQoXG4gICAgICAgICAgICBNYXRoLnJvdW5kKHZhbHVlIC8gdGhpcy5xdWFudHVtKSAqIHRoaXMucXVhbnR1bSxcbiAgICAgICAgICAgIFRVSV9GTE9BVElOR19QUkVDSVNJT04sXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHR1aUNsYW1wKHJvdW5kZWRWYWx1ZSwgdGhpcy5taW4sIHRoaXMubWF4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRleHRmaWVsZFZhbHVlcyhbbGVmdFZhbHVlLCByaWdodFZhbHVlXTogW251bWJlciwgbnVtYmVyXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxlZnRUZXh0ZmllbGRWYWx1ZSA9IGxlZnRWYWx1ZTtcbiAgICAgICAgdGhpcy5yaWdodFRleHRmaWVsZFZhbHVlID0gcmlnaHRWYWx1ZTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgdHVpV3JhcHBlclxuICAgIGNsYXNzPVwidC13cmFwcGVyXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtmb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgIFtob3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLWlucHV0LW51bWJlclxuICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LXJhbmdlX19sZWZ0LWlucHV0XCJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cIm5vbmVcIlxuICAgICAgICBjbGFzcz1cInQtbGVmdFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW21heF09XCJ2YWx1ZVsxXVwiXG4gICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFt0dWlOdW1iZXJGb3JtYXRdPVwie3ByZWNpc2lvbn1cIlxuICAgICAgICBbdHVpVGV4dGZpZWxkUG9zdGZpeF09XCJwbHVyYWxpemUgPyAodmFsdWVbMF0gfCBpMThuUGx1cmFsOiBwbHVyYWxpemUpIDogJydcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImxlZnRUZXh0ZmllbGRWYWx1ZVwiXG4gICAgICAgIChmb2N1c2VkQ2hhbmdlKT1cIm9uVGV4dElucHV0Rm9jdXNlZCgkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cImNoYW5nZUJ5U3RlcCgkZXZlbnQsIFstMSwgMF0pXCJcbiAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJjaGFuZ2VCeVN0ZXAoJGV2ZW50LCBbMSwgMF0pXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnB1dExlZnQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dMZWZ0VmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwidHVpQ29udGVudFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImxlZnRWYWx1ZUNvbnRlbnQgYXMgdGV4dDsgY29udGV4dDogeyRpbXBsaWNpdDogdmFsdWVbMF19XCI+XG4gICAgICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvdHVpLWlucHV0LW51bWJlcj5cblxuICAgIDx0dWktaW5wdXQtbnVtYmVyXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtcmFuZ2VfX3JpZ2h0LWlucHV0XCJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cIm5vbmVcIlxuICAgICAgICBjbGFzcz1cInQtcmlnaHRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgW21pbl09XCJ2YWx1ZVswXVwiXG4gICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICBbdHVpTnVtYmVyRm9ybWF0XT1cIntwcmVjaXNpb259XCJcbiAgICAgICAgW3R1aVRleHRmaWVsZFBvc3RmaXhdPVwicGx1cmFsaXplID8gKHZhbHVlWzFdIHwgaTE4blBsdXJhbDogcGx1cmFsaXplKSA6ICcnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJyaWdodFRleHRmaWVsZFZhbHVlXCJcbiAgICAgICAgKGZvY3VzZWRDaGFuZ2UpPVwib25UZXh0SW5wdXRGb2N1c2VkKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwiY2hhbmdlQnlTdGVwKCRldmVudCwgWzAsIC0xXSlcIlxuICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cImNoYW5nZUJ5U3RlcCgkZXZlbnQsIFswLCAxXSlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0UmlnaHQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cInNob3dSaWdodFZhbHVlQ29udGVudFwiXG4gICAgICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJyaWdodFZhbHVlQ29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZVsxXX1cIj5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90dWktaW5wdXQtbnVtYmVyPlxuXG4gICAgPHR1aS1yYW5nZVxuICAgICAgICBjbGFzcz1cInQtcmFuZ2VcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHkgfHwgZGlzYWJsZWRcIlxuICAgICAgICBbZm9jdXNhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW2tleVN0ZXBzXT1cImNvbXB1dGVLZXlTdGVwcyhrZXlTdGVwcywgbWluLCBtYXgpXCJcbiAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFtzZWdtZW50c109XCJzZWdtZW50c1wiXG4gICAgICAgIFtzdGVwXT1cInN0ZXBcIlxuICAgICAgICAoYWN0aXZlVGh1bWJDaGFuZ2UpPVwib25BY3RpdmVUaHVtYkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG1vdXNlZG93bi5wcmV2ZW50KT1cImZvY3VzVG9UZXh0SW5wdXQoKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRXh0ZXJuYWxWYWx1ZVVwZGF0ZSgkZXZlbnQpXCJcbiAgICAvPlxuPC9kaXY+XG4iXX0=
@@ -104,7 +104,7 @@ class TuiInputSliderComponent extends AbstractTuiControl {
104
104
  return tuiClamp(roundedValue, this.min, this.max);
105
105
  }
106
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputSliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
107
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputSliderComponent, selector: "tui-input-slider", inputs: { min: "min", max: "max", quantum: "quantum", steps: "steps", segments: "segments", keySteps: "keySteps", valueContent: "valueContent" }, host: { properties: { "attr.data-size": "controller.size", "class._label-outside": "controller.labelOutside" } }, providers: [
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputSliderComponent, selector: "tui-input-slider", inputs: { min: "min", max: "max", quantum: "quantum", steps: "steps", segments: "segments", keySteps: "keySteps", valueContent: "valueContent" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "attr.data-size": "controller.size", "class._label-outside": "controller.labelOutside" } }, providers: [
108
108
  tuiAsFocusableItemAccessor(TuiInputSliderComponent),
109
109
  tuiAsControl(TuiInputSliderComponent),
110
110
  tuiSliderOptionsProvider({ trackColor: 'transparent' }),
@@ -123,6 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
123
123
  tuiSliderOptionsProvider({ trackColor: 'transparent' }),
124
124
  TEXTFIELD_CONTROLLER_PROVIDER,
125
125
  ], host: {
126
+ ngSkipHydration: 'true',
126
127
  '[attr.data-size]': 'controller.size',
127
128
  '[class._label-outside]': 'controller.labelOutside',
128
129
  }, template: "<tui-input-number\n [disabled]=\"computedDisabled\"\n [max]=\"max\"\n [min]=\"min\"\n [ngModelOptions]=\"{standalone: true}\"\n [pseudoActive]=\"pseudoActive\"\n [pseudoFocus]=\"computedFocused\"\n [pseudoHover]=\"pseudoHover\"\n [pseudoInvalid]=\"pseudoInvalid\"\n [readOnly]=\"readOnly\"\n [tuiNumberFormat]=\"{precision}\"\n [tuiTextfieldPostfix]=\"postfix\"\n [tuiTextfieldPrefix]=\"prefix\"\n [(ngModel)]=\"textfieldValue\"\n (focusedChange)=\"onFocused($event)\"\n (keydown.arrowDown.prevent)=\"onVerticalArrowKeyDown(-1)\"\n (keydown.arrowUp.prevent)=\"onVerticalArrowKeyDown(1)\"\n (ngModelChange)=\"safelyUpdateValue($event)\"\n>\n <ng-content />\n <div\n *ngIf=\"showValueContent\"\n automation-id=\"tui-input-slider__value-content\"\n ngProjectAs=\"tuiContent\"\n >\n <ng-container *polymorpheusOutlet=\"valueContent as text; context: {$implicit: value}\">\n {{ text }}\n </ng-container>\n </div>\n</tui-input-number>\n\n<input\n tabIndex=\"-1\"\n tuiSlider\n type=\"range\"\n [disabled]=\"readOnly || computedDisabled\"\n [keySteps]=\"computeKeySteps(keySteps, min, max)\"\n [max]=\"computedSteps\"\n [ngModel]=\"value\"\n [ngModelOptions]=\"{standalone: true}\"\n [segments]=\"segments\"\n (click)=\"focusTextInput()\"\n (ngModelChange)=\"onSliderChange($event)\"\n/>\n", styles: [":host{position:relative;display:block;block-size:-webkit-max-content;block-size:max-content;isolation:isolate;border-radius:var(--tui-radius);--tui-radius: var(--tui-radius-m)}:host[data-size=l]{--tui-radius: var(--tui-radius-l)}tui-input-number{border-radius:inherit}input[type=range]{position:absolute;top:100%;left:calc(var(--tui-radius) / 2);right:0;inline-size:calc(100% - calc(var(--tui-radius) / 2));box-sizing:border-box;block-size:1rem;margin:-.5625rem 0 0;border-start-start-radius:0;border-end-start-radius:calc(var(--tui-radius) * 10) calc(var(--tui-radius) * 2)}\n"] }]
@@ -147,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
147
148
  }], valueContent: [{
148
149
  type: Input
149
150
  }], computeKeySteps: [] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jb21wb25lbnRzL2lucHV0LXNsaWRlci9pbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtc2xpZGVyL2lucHV0LXNsaWRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUNILHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsd0JBQXdCLEdBQzNCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEdBQ25DLE1BQU0sNkJBQTZCLENBQUM7QUFLckMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQUduRSxNQWlCYSx1QkFDVCxTQUFRLGtCQUEwQjtJQWxCdEM7O1FBMkJjLG1CQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFn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VUFBVSxvREN4RHBELGs1Q0E0Q0E7O0FEa0ZjO0lBRFQsT0FBTzs4REFZUDtTQXhGUSx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFqQm5DLFNBQVM7aUNBQ00sS0FBSyxZQUNQLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLDBCQUEwQix5QkFBeUI7d0JBQ25ELFlBQVkseUJBQXlCO3dCQUNyQyx3QkFBd0IsQ0FBQyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUMsQ0FBQzt3QkFDckQsNkJBQTZCO3FCQUNoQyxRQUNLO3dCQUNGLGtCQUFrQixFQUFFLGlCQUFpQjt3QkFDckMsd0JBQXdCLEVBQUUseUJBQXlCO3FCQUN0RDs4QkFPZ0IsY0FBYztzQkFEOUIsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBSWpCLFNBQVM7c0JBRHpCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO2dCQU8xQyxHQUFHO3NCQURULEtBQUs7Z0JBSUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQThDSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlDb250ZXh0fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2ZvY3VzJztcbmltcG9ydCB7dHVpQ2xhbXAsIHR1aVJvdW5kfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuaW1wb3J0IHt0dWlQdXJlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHt0dWlHZXRGcmFjdGlvblBhcnRQYWRkZWR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQgdHlwZSB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtcbiAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgIFR1aVNsaWRlckNvbXBvbmVudCxcbiAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIsXG59IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuaW1wb3J0IHtBYnN0cmFjdFR1aUNvbnRyb2wsIHR1aUFzQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9jbGFzc2VzJztcbmltcG9ydCB7VHVpSW5wdXROdW1iZXJDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY29tcG9uZW50cy9pbnB1dC1udW1iZXInO1xuaW1wb3J0IHtcbiAgICBURVhURklFTERfQ09OVFJPTExFUl9QUk9WSURFUixcbiAgICBUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUixcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS9kaXJlY3RpdmVzJztcbmltcG9ydCB0eXBlIHtcbiAgICBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3IsXG4gICAgVHVpTmF0aXZlRm9jdXNhYmxlRWxlbWVudCxcbn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHt0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeS90b2tlbnMnO1xuaW1wb3J0IHR5cGUge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0YWlnYS11aS9wb2x5bW9ycGhldXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zbGlkZXIudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2xpZGVyLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IoVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRTbGlkZXJDb21wb25lbnQpLFxuICAgICAgICB0dWlTbGlkZXJPcHRpb25zUHJvdmlkZXIoe3RyYWNrQ29sb3I6ICd0cmFuc3BhcmVudCd9KSxcbiAgICAgICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ2NvbnRyb2xsZXIuc2l6ZScsXG4gICAgICAgICdbY2xhc3MuX2xhYmVsLW91dHNpZGVdJzogJ2NvbnRyb2xsZXIubGFiZWxPdXRzaWRlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFNsaWRlckNvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlDb250cm9sPG51bWJlcj5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvclxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSW5wdXROdW1iZXJDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dE51bWJlclJlZj86IFR1aUlucHV0TnVtYmVyQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlTbGlkZXJDb21wb25lbnQsIHtyZWFkOiBFbGVtZW50UmVmfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNsaWRlclJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcm90ZWN0ZWQgdGV4dGZpZWxkVmFsdWUgPSB0aGlzLnNhZmVDdXJyZW50VmFsdWU7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRyb2xsZXIgPSBpbmplY3QoVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWluID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1heCA9IDEwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHF1YW50dW0gPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3RlcHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2VnbWVudHMgPSAxO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWx1ZUNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dDxudW1iZXI+PjtcblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBUdWlOYXRpdmVGb2N1c2FibGVFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudCB8fCB0aGlzLmNvbXB1dGVkRGlzYWJsZWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLmlucHV0TnVtYmVyUmVmLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudCkgfHxcbiAgICAgICAgICAgIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLnNsaWRlclJlZj8ubmF0aXZlRWxlbWVudCB8fCBudWxsKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHByZWZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnByZWZpeDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHBvc3RmaXgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5wb3N0Zml4O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgY29tcHV0ZWRTdGVwcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGVwcyB8fCAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLnF1YW50dW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBwcmVjaXNpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHR1aUdldEZyYWN0aW9uUGFydFBhZGRlZCh0aGlzLnF1YW50dW0pLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHNob3dWYWx1ZUNvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRoaXMudmFsdWVDb250ZW50ICYmICF0aGlzLmZvY3VzZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKHRoaXMubWF4IC0gdGhpcy5taW4pIC8gdGhpcy5jb21wdXRlZFN0ZXBzO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJvdGVjdGVkIGNvbXB1dGVLZXlTdGVwcyhcbiAgICAgICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCxcbiAgICAgICAgbWluOiBudW1iZXIsXG4gICAgICAgIG1heDogbnVtYmVyLFxuICAgICk6IFR1aUtleVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGtleVN0ZXBzIHx8IFtcbiAgICAgICAgICAgICAgICBbMCwgbWluXSxcbiAgICAgICAgICAgICAgICBbMTAwLCBtYXhdLFxuICAgICAgICAgICAgXVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb2N1c1RleHRJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudCA9IHRoaXMuaW5wdXROdW1iZXJSZWY/Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzYWZlbHlVcGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZUd1YXJkKHZhbHVlID8/IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVmVydGljYWxBcnJvd0tleURvd24oY29lZmZpY2llbnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSB8fCAhdGhpcy5zdGVwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgKyBjb2VmZmljaWVudCAqIHRoaXMuc3RlcDtcblxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TbGlkZXJDaGFuZ2UobmV3VmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNhZmVseVVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgdGhpcy50ZXh0ZmllbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRm9jdXNlZChmb2N1c2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHt2YWx1ZSwgdGV4dGZpZWxkVmFsdWV9ID0gdGhpcztcblxuICAgICAgICBpZiAoIWZvY3VzZWQgJiYgdGV4dGZpZWxkVmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWQoZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZhbGxiYWNrVmFsdWUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWx1ZUd1YXJkKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBjb25zdCByb3VuZGVkVmFsdWUgPSB0dWlSb3VuZChcbiAgICAgICAgICAgIE1hdGgucm91bmQodmFsdWUgLyB0aGlzLnF1YW50dW0pICogdGhpcy5xdWFudHVtLFxuICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdHVpQ2xhbXAocm91bmRlZFZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cbn1cbiIsIjx0dWktaW5wdXQtbnVtYmVyXG4gICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgIFttYXhdPVwibWF4XCJcbiAgICBbbWluXT1cIm1pblwiXG4gICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgW3BzZXVkb0FjdGl2ZV09XCJwc2V1ZG9BY3RpdmVcIlxuICAgIFtwc2V1ZG9Gb2N1c109XCJjb21wdXRlZEZvY3VzZWRcIlxuICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgW3BzZXVkb0ludmFsaWRdPVwicHNldWRvSW52YWxpZFwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICBbdHVpTnVtYmVyRm9ybWF0XT1cIntwcmVjaXNpb259XCJcbiAgICBbdHVpVGV4dGZpZWxkUG9zdGZpeF09XCJwb3N0Zml4XCJcbiAgICBbdHVpVGV4dGZpZWxkUHJlZml4XT1cInByZWZpeFwiXG4gICAgWyhuZ01vZGVsKV09XCJ0ZXh0ZmllbGRWYWx1ZVwiXG4gICAgKGZvY3VzZWRDaGFuZ2UpPVwib25Gb2N1c2VkKCRldmVudClcIlxuICAgIChrZXlkb3duLmFycm93RG93bi5wcmV2ZW50KT1cIm9uVmVydGljYWxBcnJvd0tleURvd24oLTEpXCJcbiAgICAoa2V5ZG93bi5hcnJvd1VwLnByZXZlbnQpPVwib25WZXJ0aWNhbEFycm93S2V5RG93bigxKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwic2FmZWx5VXBkYXRlVmFsdWUoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2hvd1ZhbHVlQ29udGVudFwiXG4gICAgICAgIGF1dG9tYXRpb24taWQ9XCJ0dWktaW5wdXQtc2xpZGVyX192YWx1ZS1jb250ZW50XCJcbiAgICAgICAgbmdQcm9qZWN0QXM9XCJ0dWlDb250ZW50XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cInZhbHVlQ29udGVudCBhcyB0ZXh0OyBjb250ZXh0OiB7JGltcGxpY2l0OiB2YWx1ZX1cIj5cbiAgICAgICAgICAgIHt7IHRleHQgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L3R1aS1pbnB1dC1udW1iZXI+XG5cbjxpbnB1dFxuICAgIHRhYkluZGV4PVwiLTFcIlxuICAgIHR1aVNsaWRlclxuICAgIHR5cGU9XCJyYW5nZVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRPbmx5IHx8IGNvbXB1dGVkRGlzYWJsZWRcIlxuICAgIFtrZXlTdGVwc109XCJjb21wdXRlS2V5U3RlcHMoa2V5U3RlcHMsIG1pbiwgbWF4KVwiXG4gICAgW21heF09XCJjb21wdXRlZFN0ZXBzXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICAoY2xpY2spPVwiZm9jdXNUZXh0SW5wdXQoKVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TbGlkZXJDaGFuZ2UoJGV2ZW50KVwiXG4vPlxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xlZ2FjeS9jb21wb25lbnRzL2lucHV0LXNsaWRlci9pbnB1dC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtc2xpZGVyL2lucHV0LXNsaWRlci50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUNILHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsd0JBQXdCLEdBQzNCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEdBQ25DLE1BQU0sNkJBQTZCLENBQUM7QUFLckMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7OztBQUduRSxNQWtCYSx1QkFDVCxTQUFRLGtCQUEwQjtJQW5CdEM7O1FBNEJjLG1CQUFjLEdBQUcsSUFBSSxDQUFDLGdCQUFn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VUFBVSxvREN6RHBELGs1Q0E0Q0E7O0FEbUZjO0lBRFQsT0FBTzs4REFZUDtTQXhGUSx1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFsQm5DLFNBQVM7aUNBQ00sS0FBSyxZQUNQLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLDBCQUEwQix5QkFBeUI7d0JBQ25ELFlBQVkseUJBQXlCO3dCQUNyQyx3QkFBd0IsQ0FBQyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUMsQ0FBQzt3QkFDckQsNkJBQTZCO3FCQUNoQyxRQUNLO3dCQUNGLGVBQWUsRUFBRSxNQUFNO3dCQUN2QixrQkFBa0IsRUFBRSxpQkFBaUI7d0JBQ3JDLHdCQUF3QixFQUFFLHlCQUF5QjtxQkFDdEQ7OEJBT2dCLGNBQWM7c0JBRDlCLFNBQVM7dUJBQUMsdUJBQXVCO2dCQUlqQixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQztnQkFPMUMsR0FBRztzQkFEVCxLQUFLO2dCQUlDLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkE4Q0ksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7VHVpQ29udGV4dH0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aUlzTmF0aXZlRm9jdXNlZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cyc7XG5pbXBvcnQge3R1aUNsYW1wLCB0dWlSb3VuZH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9tYXRoJztcbmltcG9ydCB7dHVpUHVyZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7dHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkfSBmcm9tICdAdGFpZ2EtdWkvY29yZS91dGlscy9mb3JtYXQnO1xuaW1wb3J0IHR5cGUge1R1aUtleVN0ZXBzfSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7XG4gICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICBUdWlTbGlkZXJDb21wb25lbnQsXG4gICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyLFxufSBmcm9tICdAdGFpZ2EtdWkva2l0L2NvbXBvbmVudHMvc2xpZGVyJztcbmltcG9ydCB7QWJzdHJhY3RUdWlDb250cm9sLCB0dWlBc0NvbnRyb2x9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvY2xhc3Nlcyc7XG5pbXBvcnQge1R1aUlucHV0TnVtYmVyQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5L2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyJztcbmltcG9ydCB7XG4gICAgVEVYVEZJRUxEX0NPTlRST0xMRVJfUFJPVklERVIsXG4gICAgVFVJX1RFWFRGSUVMRF9XQVRDSEVEX0NPTlRST0xMRVIsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvZGlyZWN0aXZlcyc7XG5pbXBvcnQgdHlwZSB7XG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxuICAgIFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQsXG59IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB7dHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3kvdG9rZW5zJztcbmltcG9ydCB0eXBlIHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtc2xpZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtc2xpZGVyLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXNsaWRlci5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0U2xpZGVyQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0U2xpZGVyQ29tcG9uZW50KSxcbiAgICAgICAgdHVpU2xpZGVyT3B0aW9uc1Byb3ZpZGVyKHt0cmFja0NvbG9yOiAndHJhbnNwYXJlbnQnfSksXG4gICAgICAgIFRFWFRGSUVMRF9DT05UUk9MTEVSX1BST1ZJREVSLFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnY29udHJvbGxlci5zaXplJyxcbiAgICAgICAgJ1tjbGFzcy5fbGFiZWwtb3V0c2lkZV0nOiAnY29udHJvbGxlci5sYWJlbE91dHNpZGUnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0U2xpZGVyQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8bnVtYmVyPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yXG57XG4gICAgQFZpZXdDaGlsZChUdWlJbnB1dE51bWJlckNvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0TnVtYmVyUmVmPzogVHVpSW5wdXROdW1iZXJDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKFR1aVNsaWRlckNvbXBvbmVudCwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2xpZGVyUmVmPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAgIHByb3RlY3RlZCB0ZXh0ZmllbGRWYWx1ZSA9IHRoaXMuc2FmZUN1cnJlbnRWYWx1ZTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udHJvbGxlciA9IGluamVjdChUVUlfVEVYVEZJRUxEX1dBVENIRURfQ09OVFJPTExFUik7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWF4ID0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcXVhbnR1bSA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzdGVwcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZWdtZW50cyA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlQ29udGVudDogUG9seW1vcnBoZXVzQ29udGVudDxUdWlDb250ZXh0PG51bWJlcj4+O1xuXG4gICAgcHVibGljIGdldCBuYXRpdmVGb2N1c2FibGVFbGVtZW50KCk6IFR1aU5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlucHV0TnVtYmVyUmVmPy5uYXRpdmVGb2N1c2FibGVFbGVtZW50IHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMuaW5wdXROdW1iZXJSZWYubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB8fFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKHRoaXMuc2xpZGVyUmVmPy5uYXRpdmVFbGVtZW50IHx8IG51bGwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMudGV4dGZpZWxkVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcHJlZml4KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIucHJlZml4O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgcG9zdGZpeCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLnBvc3RmaXg7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBjb21wdXRlZFN0ZXBzKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0ZXBzIHx8ICh0aGlzLm1heCAtIHRoaXMubWluKSAvIHRoaXMucXVhbnR1bTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IHByZWNpc2lvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHVpR2V0RnJhY3Rpb25QYXJ0UGFkZGVkKHRoaXMucXVhbnR1bSkubGVuZ3RoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2hvd1ZhbHVlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy52YWx1ZUNvbnRlbnQgJiYgIXRoaXMuZm9jdXNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAodGhpcy5tYXggLSB0aGlzLm1pbikgLyB0aGlzLmNvbXB1dGVkU3RlcHM7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcm90ZWN0ZWQgY29tcHV0ZUtleVN0ZXBzKFxuICAgICAgICBrZXlTdGVwczogVHVpS2V5U3RlcHMgfCBudWxsLFxuICAgICAgICBtaW46IG51bWJlcixcbiAgICAgICAgbWF4OiBudW1iZXIsXG4gICAgKTogVHVpS2V5U3RlcHMge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAga2V5U3RlcHMgfHwgW1xuICAgICAgICAgICAgICAgIFswLCBtaW5dLFxuICAgICAgICAgICAgICAgIFsxMDAsIG1heF0sXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZvY3VzVGV4dElucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb2N1c2FibGVFbGVtZW50ID0gdGhpcy5pbnB1dE51bWJlclJlZj8ubmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICBpZiAoZm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNhZmVseVVwZGF0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlR3VhcmQodmFsdWUgPz8gdGhpcy5zYWZlQ3VycmVudFZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25WZXJ0aWNhbEFycm93S2V5RG93bihjb2VmZmljaWVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRPbmx5IHx8ICF0aGlzLnN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSArIGNvZWZmaWNpZW50ICogdGhpcy5zdGVwO1xuXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zYWZlbHlVcGRhdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblNsaWRlckNoYW5nZShuZXdWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZWx5VXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLnRleHRmaWVsZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCB0ZXh0ZmllbGRWYWx1ZX0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghZm9jdXNlZCAmJiB0ZXh0ZmllbGRWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dGZpZWxkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChmb2N1c2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmFsbGJhY2tWYWx1ZSgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbHVlR3VhcmQodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHJvdW5kZWRWYWx1ZSA9IHR1aVJvdW5kKFxuICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICBUVUlfRkxPQVRJTkdfUFJFQ0lTSU9OLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0dWlDbGFtcChyb3VuZGVkVmFsdWUsIHRoaXMubWluLCB0aGlzLm1heCk7XG4gICAgfVxufVxuIiwiPHR1aS1pbnB1dC1udW1iZXJcbiAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgW21heF09XCJtYXhcIlxuICAgIFttaW5dPVwibWluXCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICBbcHNldWRvQWN0aXZlXT1cInBzZXVkb0FjdGl2ZVwiXG4gICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICBbcHNldWRvSW52YWxpZF09XCJwc2V1ZG9JbnZhbGlkXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFt0dWlOdW1iZXJGb3JtYXRdPVwie3ByZWNpc2lvbn1cIlxuICAgIFt0dWlUZXh0ZmllbGRQb3N0Zml4XT1cInBvc3RmaXhcIlxuICAgIFt0dWlUZXh0ZmllbGRQcmVmaXhdPVwicHJlZml4XCJcbiAgICBbKG5nTW9kZWwpXT1cInRleHRmaWVsZFZhbHVlXCJcbiAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uYXJyb3dEb3duLnByZXZlbnQpPVwib25WZXJ0aWNhbEFycm93S2V5RG93bigtMSlcIlxuICAgIChrZXlkb3duLmFycm93VXAucHJldmVudCk9XCJvblZlcnRpY2FsQXJyb3dLZXlEb3duKDEpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJzYWZlbHlVcGRhdGVWYWx1ZSgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudCAvPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzaG93VmFsdWVDb250ZW50XCJcbiAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1zbGlkZXJfX3ZhbHVlLWNvbnRlbnRcIlxuICAgICAgICBuZ1Byb2plY3RBcz1cInR1aUNvbnRlbnRcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcG9seW1vcnBoZXVzT3V0bGV0PVwidmFsdWVDb250ZW50IGFzIHRleHQ7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHZhbHVlfVwiPlxuICAgICAgICAgICAge3sgdGV4dCB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvdHVpLWlucHV0LW51bWJlcj5cblxuPGlucHV0XG4gICAgdGFiSW5kZXg9XCItMVwiXG4gICAgdHVpU2xpZGVyXG4gICAgdHlwZT1cInJhbmdlXCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZE9ubHkgfHwgY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgW2tleVN0ZXBzXT1cImNvbXB1dGVLZXlTdGVwcyhrZXlTdGVwcywgbWluLCBtYXgpXCJcbiAgICBbbWF4XT1cImNvbXB1dGVkU3RlcHNcIlxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICBbc2VnbWVudHNdPVwic2VnbWVudHNcIlxuICAgIChjbGljayk9XCJmb2N1c1RleHRJbnB1dCgpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblNsaWRlckNoYW5nZSgkZXZlbnQpXCJcbi8+XG4iXX0=