@ardium-ui/ui 1.0.1 → 1.0.3

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 (229) hide show
  1. package/README.md +25 -25
  2. package/esm2022/lib/_internal/boolean-component.mjs +4 -4
  3. package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +4 -4
  4. package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +5 -5
  5. package/esm2022/lib/_internal/disablable-component.mjs +4 -4
  6. package/esm2022/lib/_internal/focusable-component.mjs +4 -4
  7. package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +1 -1
  8. package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +1 -1
  9. package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +1 -1
  10. package/esm2022/lib/_internal/models/pagination.model.mjs +1 -1
  11. package/esm2022/lib/_internal/ngmodel-component.mjs +4 -4
  12. package/esm2022/lib/_internal/queue.mjs +1 -1
  13. package/esm2022/lib/_internal/selectable-list-component.mjs +4 -4
  14. package/esm2022/lib/badge/badge.directive.mjs +4 -4
  15. package/esm2022/lib/badge/badge.module.mjs +5 -5
  16. package/esm2022/lib/badge/badge.types.mjs +1 -1
  17. package/esm2022/lib/buttons/_button-base.mjs +4 -4
  18. package/esm2022/lib/buttons/button/button.component.mjs +4 -4
  19. package/esm2022/lib/buttons/button/button.module.mjs +5 -5
  20. package/esm2022/lib/buttons/fab/fab.component.mjs +4 -4
  21. package/esm2022/lib/buttons/fab/fab.module.mjs +5 -5
  22. package/esm2022/lib/buttons/general-button.types.mjs +1 -1
  23. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +4 -4
  24. package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +5 -5
  25. package/esm2022/lib/calendar/calendar.component.mjs +4 -4
  26. package/esm2022/lib/calendar/calendar.directives.mjs +25 -25
  27. package/esm2022/lib/calendar/calendar.helpers.mjs +1 -1
  28. package/esm2022/lib/calendar/calendar.module.mjs +5 -5
  29. package/esm2022/lib/calendar/calendar.types.mjs +1 -1
  30. package/esm2022/lib/card/card.children.mjs +25 -25
  31. package/esm2022/lib/card/card.component.mjs +7 -7
  32. package/esm2022/lib/card/card.module.mjs +5 -5
  33. package/esm2022/lib/card/card.types.mjs +1 -1
  34. package/esm2022/lib/checkbox/checkbox.component.mjs +4 -4
  35. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  36. package/esm2022/lib/checkbox/checkbox.types.mjs +1 -1
  37. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +4 -4
  38. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +5 -5
  39. package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +1 -1
  40. package/esm2022/lib/chip/chip.component.mjs +4 -4
  41. package/esm2022/lib/chip/chip.module.mjs +5 -5
  42. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +4 -4
  43. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +4 -4
  44. package/esm2022/lib/color/color-display/color-display.component.mjs +4 -4
  45. package/esm2022/lib/color/color-display/color-display.module.mjs +5 -5
  46. package/esm2022/lib/color/color-display/color-display.types.mjs +1 -1
  47. package/esm2022/lib/color/color-picker/color-picker.component.mjs +4 -4
  48. package/esm2022/lib/color/color-picker/color-picker.directives.mjs +13 -13
  49. package/esm2022/lib/color/color-picker/color-picker.module.mjs +5 -5
  50. package/esm2022/lib/color/color-picker/color-picker.types.mjs +1 -1
  51. package/esm2022/lib/dialog/dialog.component.mjs +4 -4
  52. package/esm2022/lib/dialog/dialog.directives.mjs +4 -4
  53. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  54. package/esm2022/lib/dialog/dialog.types.mjs +1 -1
  55. package/esm2022/lib/divider/divider.component.mjs +4 -4
  56. package/esm2022/lib/divider/divider.module.mjs +5 -5
  57. package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +4 -4
  58. package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +5 -5
  59. package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +1 -1
  60. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +4 -4
  61. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +10 -10
  62. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +5 -5
  63. package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +4 -4
  64. package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +19 -19
  65. package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +5 -5
  66. package/esm2022/lib/file-inputs/file-input-base.mjs +4 -4
  67. package/esm2022/lib/file-inputs/file-input-types.mjs +1 -1
  68. package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +4 -4
  69. package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +7 -7
  70. package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +5 -5
  71. package/esm2022/lib/icon/icon.component.mjs +4 -4
  72. package/esm2022/lib/icon/icon.module.mjs +5 -5
  73. package/esm2022/lib/icon/icon.pipe.mjs +4 -4
  74. package/esm2022/lib/inputs/color-input/color-input.component.mjs +4 -4
  75. package/esm2022/lib/inputs/color-input/color-input.directives.mjs +25 -25
  76. package/esm2022/lib/inputs/color-input/color-input.module.mjs +5 -5
  77. package/esm2022/lib/inputs/color-input/color-input.types.mjs +1 -1
  78. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +4 -4
  79. package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +1 -1
  80. package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +5 -5
  81. package/esm2022/lib/inputs/digit-input/digit-input.types.mjs +1 -1
  82. package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
  83. package/esm2022/lib/inputs/hex-input/hex-input.component.mjs +4 -4
  84. package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +10 -10
  85. package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +5 -5
  86. package/esm2022/lib/inputs/hex-input.model.mjs +1 -1
  87. package/esm2022/lib/inputs/input/input.component.mjs +4 -4
  88. package/esm2022/lib/inputs/input/input.directives.mjs +16 -16
  89. package/esm2022/lib/inputs/input/input.module.mjs +5 -5
  90. package/esm2022/lib/inputs/input-transformers.mjs +1 -1
  91. package/esm2022/lib/inputs/input-types.mjs +1 -1
  92. package/esm2022/lib/inputs/input-utils.mjs +1 -1
  93. package/esm2022/lib/inputs/number-input/number-input.component.mjs +4 -4
  94. package/esm2022/lib/inputs/number-input/number-input.directives.mjs +4 -4
  95. package/esm2022/lib/inputs/number-input/number-input.module.mjs +5 -5
  96. package/esm2022/lib/inputs/password-input/password-input.component.mjs +4 -4
  97. package/esm2022/lib/inputs/password-input/password-input.directives.mjs +13 -13
  98. package/esm2022/lib/inputs/password-input/password-input.module.mjs +5 -5
  99. package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
  100. package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +4 -4
  101. package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +10 -10
  102. package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +5 -5
  103. package/esm2022/lib/kbd/kbd.component.mjs +4 -4
  104. package/esm2022/lib/kbd/kbd.module.mjs +5 -5
  105. package/esm2022/lib/kbd/kbd.pipe.mjs +4 -4
  106. package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +4 -4
  107. package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +5 -5
  108. package/esm2022/lib/modal/modal.component.mjs +4 -4
  109. package/esm2022/lib/modal/modal.module.mjs +5 -5
  110. package/esm2022/lib/option/option.component.mjs +4 -4
  111. package/esm2022/lib/option/option.module.mjs +5 -5
  112. package/esm2022/lib/progress-bar/progress-bar.component.mjs +4 -4
  113. package/esm2022/lib/progress-bar/progress-bar.directive.mjs +4 -4
  114. package/esm2022/lib/progress-bar/progress-bar.module.mjs +5 -5
  115. package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
  116. package/esm2022/lib/progress-circle/progress-circle.component.mjs +4 -4
  117. package/esm2022/lib/progress-circle/progress-circle.directive.mjs +4 -4
  118. package/esm2022/lib/progress-circle/progress-circle.module.mjs +5 -5
  119. package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
  120. package/esm2022/lib/radio/radio/radio.component.mjs +4 -4
  121. package/esm2022/lib/radio/radio-group.component.mjs +4 -4
  122. package/esm2022/lib/radio/radio.module.mjs +5 -5
  123. package/esm2022/lib/search-functions.mjs +1 -1
  124. package/esm2022/lib/segment/segment.component.mjs +4 -4
  125. package/esm2022/lib/segment/segment.directives.mjs +4 -4
  126. package/esm2022/lib/segment/segment.module.mjs +5 -5
  127. package/esm2022/lib/segment/segment.types.mjs +1 -1
  128. package/esm2022/lib/select/select.component.mjs +4 -4
  129. package/esm2022/lib/select/select.directive.mjs +46 -46
  130. package/esm2022/lib/select/select.module.mjs +5 -5
  131. package/esm2022/lib/select/select.types.mjs +1 -1
  132. package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +4 -4
  133. package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +5 -5
  134. package/esm2022/lib/slider/abstract-slider.mjs +4 -4
  135. package/esm2022/lib/slider/range-slider/range-slider.component.mjs +4 -4
  136. package/esm2022/lib/slider/range-slider/range-slider.module.mjs +5 -5
  137. package/esm2022/lib/slider/slider.component.mjs +4 -4
  138. package/esm2022/lib/slider/slider.directive.mjs +4 -4
  139. package/esm2022/lib/slider/slider.module.mjs +5 -5
  140. package/esm2022/lib/slider/slider.types.mjs +1 -1
  141. package/esm2022/lib/snackbar/index.mjs +1 -1
  142. package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
  143. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  144. package/esm2022/lib/snackbar/snackbar.service.mjs +4 -4
  145. package/esm2022/lib/snackbar/snackbar.token.mjs +1 -1
  146. package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
  147. package/esm2022/lib/spinner/spinner.component.mjs +4 -4
  148. package/esm2022/lib/spinner/spinner.module.mjs +5 -5
  149. package/esm2022/lib/star/star-button/star-button.component.mjs +4 -4
  150. package/esm2022/lib/star/star-button/star-button.module.mjs +5 -5
  151. package/esm2022/lib/star/star-display/star-display.component.mjs +4 -4
  152. package/esm2022/lib/star/star-display/star-display.module.mjs +5 -5
  153. package/esm2022/lib/star/star-input/star-input.component.mjs +4 -4
  154. package/esm2022/lib/star/star-input/star-input.module.mjs +5 -5
  155. package/esm2022/lib/star/star.component.mjs +4 -4
  156. package/esm2022/lib/star/star.module.mjs +5 -5
  157. package/esm2022/lib/star/star.types.mjs +1 -1
  158. package/esm2022/lib/statebox/statebox.component.mjs +4 -4
  159. package/esm2022/lib/statebox/statebox.module.mjs +5 -5
  160. package/esm2022/lib/statebox/statebox.types.mjs +1 -1
  161. package/esm2022/lib/table/table-item-storage.mjs +1 -1
  162. package/esm2022/lib/table/table.component.mjs +4 -4
  163. package/esm2022/lib/table/table.directives.mjs +16 -16
  164. package/esm2022/lib/table/table.module.mjs +5 -5
  165. package/esm2022/lib/table/table.types.mjs +1 -1
  166. package/esm2022/lib/table/utils.mjs +1 -1
  167. package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +4 -4
  168. package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +5 -5
  169. package/esm2022/lib/table-pagination/table-pagination.component.mjs +4 -4
  170. package/esm2022/lib/table-pagination/table-pagination.module.mjs +5 -5
  171. package/esm2022/lib/table-pagination/table-pagination.types.mjs +1 -1
  172. package/esm2022/lib/types/alignment.types.mjs +1 -1
  173. package/esm2022/lib/types/colors.types.mjs +1 -1
  174. package/esm2022/lib/types/item-storage.types.mjs +1 -1
  175. package/esm2022/lib/types/theming.types.mjs +1 -1
  176. package/esm2022/lib/types/utility.types.mjs +1 -1
  177. package/esm2022/public-api.mjs +1 -1
  178. package/fesm2022/ardium-ui-ui.mjs +618 -618
  179. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  180. package/package.json +7 -5
  181. package/themes/_variables.scss +121 -121
  182. package/themes/default/_clear-button.scss +73 -73
  183. package/themes/default/_coloring.scss +137 -137
  184. package/themes/default/_dropdown-arrow.scss +12 -12
  185. package/themes/default/_mixins.scss +70 -70
  186. package/themes/default/badge.scss +94 -94
  187. package/themes/default/buttons/_button-mixins.scss +144 -144
  188. package/themes/default/buttons/button.scss +62 -62
  189. package/themes/default/buttons/fab.scss +72 -72
  190. package/themes/default/buttons/icon-button.scss +59 -59
  191. package/themes/default/calendar.scss +182 -182
  192. package/themes/default/card.scss +126 -126
  193. package/themes/default/checkbox-list.scss +83 -83
  194. package/themes/default/checkbox.scss +109 -109
  195. package/themes/default/chips.scss +206 -206
  196. package/themes/default/color-display.scss +41 -41
  197. package/themes/default/color-picker.scss +111 -111
  198. package/themes/default/core.scss +96 -96
  199. package/themes/default/dialog.scss +16 -16
  200. package/themes/default/divider.scss +13 -13
  201. package/themes/default/dropdown-panel.scss +45 -45
  202. package/themes/default/file-drop-area.scss +162 -162
  203. package/themes/default/form-field-frame.scss +78 -78
  204. package/themes/default/inputs/_shared.scss +46 -46
  205. package/themes/default/inputs/color-input.scss +46 -46
  206. package/themes/default/inputs/digit-input.scss +56 -56
  207. package/themes/default/inputs/file-input.scss +78 -78
  208. package/themes/default/inputs/hex-input.scss +27 -27
  209. package/themes/default/inputs/input.scss +52 -52
  210. package/themes/default/inputs/number-input.scss +121 -121
  211. package/themes/default/inputs/password-input.scss +43 -43
  212. package/themes/default/inputs/search-bar.scss +19 -19
  213. package/themes/default/inputs/simple-input.scss +19 -19
  214. package/themes/default/kbd-shortcut.scss +13 -13
  215. package/themes/default/kbd.scss +20 -20
  216. package/themes/default/modal.scss +93 -93
  217. package/themes/default/progress-bar.scss +166 -166
  218. package/themes/default/progress-circle.scss +56 -56
  219. package/themes/default/radio.scss +112 -112
  220. package/themes/default/segment.scss +339 -339
  221. package/themes/default/select.scss +253 -253
  222. package/themes/default/slide-toggle.scss +151 -151
  223. package/themes/default/slider.scss +224 -224
  224. package/themes/default/snackbar.scss +60 -60
  225. package/themes/default/spinner.scss +21 -21
  226. package/themes/default/stars.scss +122 -122
  227. package/themes/default/statebox.scss +109 -109
  228. package/themes/default/table-pagination.scss +56 -56
  229. package/themes/default/table.scss +403 -403
@@ -395,10 +395,10 @@ export class ArdiumColorPickerComponent extends _NgModelComponentBase {
395
395
  const newValClamped = Math.max(0, Math.min(1, newVal));
396
396
  this.value = Color(v).alpha(newValClamped);
397
397
  }
398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ArdiumColorPickerComponent, selector: "ard-color-picker", inputs: { withOpacity: "withOpacity", referenceColor: "referenceColor", wrapperClasses: "wrapperClasses", variant: "variant", vertical: "vertical", value: "value", colorHue: "colorHue", colorSaturation: "colorSaturation", colorValue: "colorValue", colorOpacity: "colorOpacity", shadeIndicatorTemplate: "shadeIndicatorTemplate", hueIndicatorTemplate: "hueIndicatorTemplate", opacityIndicatorTemplate: "opacityIndicatorTemplate", colorReferenceTemplate: "colorReferenceTemplate" }, outputs: { valueChange: "valueChange", colorHueChange: "colorHueChange", colorSaturationChange: "colorSaturationChange", colorValueChange: "colorValueChange", colorOpacityChange: "colorOpacityChange" }, host: { listeners: { "document:pointerup": "onDocumentMouseUp()", "document:touchend": "onDocumentMouseUp()", "document:pointermove": "onDocumentMousemove($event)", "document:touchmove": "onDocumentMousemove($event)" } }, queries: [{ propertyName: "shadeIndicatorTemplateChild", first: true, predicate: ArdColorPickerShadeIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "hueIndicatorTemplateChild", first: true, predicate: ArdColorPickerHueIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "opacityIndicatorTemplateChild", first: true, predicate: ArdColorPickerOpacityIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "colorReferenceTemplateChild", first: true, predicate: ArdColorPickerColorReferenceTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "shadeMapEl", first: true, predicate: ["shadeMap"], descendants: true, read: ElementRef }, { propertyName: "hueMapEl", first: true, predicate: ["hueMap"], descendants: true, read: ElementRef }, { propertyName: "opacityMapEl", first: true, predicate: ["opacityMap"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"ard-color-picker\" [ngClass]=\"ngClasses\" (keydown)=\"onKeydown($event)\">\r\n <div class=\"ard-color-picker-click-areas\"\r\n [style]=\"{\r\n '--ard-color-picker-current-hue': currentShadeMapColor,\r\n '--ard-color-picker-current-color': currentOpacityMapColor\r\n }\"\r\n >\r\n <div #shadeMap\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-shade-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'shade'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onShadeAreaMouseDown($event)\"\r\n (pointerdown)=\"onShadeAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-shade-indicator-container\" [style]=\"getShadeIndicatorPosition()\">\r\n <ng-template #defaultShadeIndicatorTemplate>\r\n <div class=\"ard-color-picker-shade-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"shadeIndicatorTemplate || shadeIndicatorTemplateChild || defaultShadeIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n <div #hueMap\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-hue-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'hue'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onHueAreaMouseDown($event)\"\r\n (pointerdown)=\"onHueAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-hue-indicator-container\" [style]=\"getHueIndicatorPosition()\">\r\n <ng-template #defaultHueIndicatorTemplate>\r\n <div class=\"ard-color-picker-hue-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"hueIndicatorTemplate || hueIndicatorTemplateChild || defaultHueIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n <div #opacityMap\r\n *ngIf=\"withOpacity\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-opacity-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'opacity'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onOpacityAreaMouseDown($event)\"\r\n (pointerdown)=\"onOpacityAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-opacity-indicator-container\" [style]=\"getOpacityIndicatorPosition()\">\r\n <ng-template #defaultOpacityIndicatorTemplate>\r\n <div class=\"ard-color-picker-opacity-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"opacityIndicatorTemplate || opacityIndicatorTemplateChild || defaultOpacityIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ard-color-picker-input-panel\">\r\n <div class=\"ard-color-picker-inputs\">\r\n <div class=\"ard-color-picker-input-type\">\r\n <ard-select\r\n compact\r\n clearable=\"false\"\r\n appearance=\"transparent\"\r\n [items]=\"inputTypes\"\r\n [value]=\"currentInputType\"\r\n (valueChange)=\"onCurrentInputTypeChange($event)\"\r\n ></ard-select>\r\n </div>\r\n <div class=\"ard-color-picker-reference-container\">\r\n <ng-template #defaultColorReferenceTemplate let-col let-refcol=\"referenceColor\">\r\n <div class=\"ard-color-picker-reference\">\r\n <div class=\"ard-color-picker-reference-reference\" [style]=\"{ background: refcol.rgb().toString() }\"></div>\r\n <div class=\"ard-color-picker-reference-current\" [style]=\"{ background: col.rgb().toString() }\"></div>\r\n </div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"colorReferenceTemplate || colorReferenceTemplateChild || defaultColorReferenceTemplate\"\r\n [ngTemplateOutletContext]=\"getColorReferenceContext()\"\r\n ></ng-template>\r\n </div>\r\n <div class=\"ard-color-picker-inputs-container\"\r\n [ngClass]=\"{\r\n 'ard-mode-hex': currentInputType == 'HEX',\r\n 'ard-mode-triple': currentInputType != 'HEX',\r\n 'ard-mode-opacity': withOpacity\r\n }\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"currentInputType == 'HEX' ? hexInput : tripleInput\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #hexInput>\r\n <ard-hex-input\r\n class=\"ard-color-picker-hex-input\"\r\n maxDigits=\"6\"\r\n [value]=\"hexInputValue\"\r\n (valueChange)=\"onHexInputChange($event)\"\r\n ></ard-hex-input>\r\n <ard-number-input\r\n *ngIf=\"withOpacity\"\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData4.max\"\r\n [value]=\"tripleInputData4.value\"\r\n (valueChange)=\"onTripleInputChange($event, 4)\"\r\n ></ard-number-input>\r\n</ng-template>\r\n\r\n<ng-template #tripleInput> \r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData1.max\"\r\n [value]=\"tripleInputData1.value\"\r\n (valueChange)=\"onTripleInputChange($event, 1)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData2.max\"\r\n [value]=\"tripleInputData2.value\"\r\n (valueChange)=\"onTripleInputChange($event, 2)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData3.max\"\r\n [value]=\"tripleInputData3.value\"\r\n (valueChange)=\"onTripleInputChange($event, 3)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n *ngIf=\"withOpacity\"\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData4.max\"\r\n [value]=\"tripleInputData4.value\"\r\n (valueChange)=\"onTripleInputChange($event, 4)\"\r\n ></ard-number-input>\r\n</ng-template>", styles: [".ard-color-picker{display:flex;flex-direction:column}.ard-color-picker-click-areas{display:flex;flex-direction:row}.ard-color-picker-click-areas.ard-vertical .ard-color-picker-click-areas{flex-direction:column}.ard-color-picker-shade-map,.ard-color-picker-hue-map,.ard-color-picker-opacity-map{position:relative}.ard-color-picker-shade-map{background:linear-gradient(to bottom,transparent,rgb(0,0,0)),linear-gradient(to right,transparent,var(--ard-color-picker-current-hue)),#fff}.ard-color-picker-hue-map{background:linear-gradient(to bottom,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}.ard-color-picker-opacity-map{--ard-color-picker-opacity-checkerboard-color: #ccc;--ard-color-picker-opacity-checkerboard-size: 10px;background-image:linear-gradient(45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%);background-size:var(--ard-color-picker-opacity-checkerboard-size) var(--ard-color-picker-opacity-checkerboard-size);background-position:0 0,0 calc(var(--ard-color-picker-opacity-checkerboard-size) / 2),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2) calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1) 0}.ard-color-picker-opacity-map:before{content:\"\";position:absolute;inset:0;background:linear-gradient(to bottom,var(--ard-color-picker-current-color),transparent)}.ard-color-picker-shade-indicator-container,.ard-color-picker-hue-indicator-container,.ard-color-picker-opacity-indicator-container{position:absolute;transform:translate(-50%,-50%)}.ard-color-picker-reference{--ard-color-picker-opacity-checkerboard-color: #ccc;--ard-color-picker-opacity-checkerboard-size: 10px;background-image:linear-gradient(45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%);background-size:var(--ard-color-picker-opacity-checkerboard-size) var(--ard-color-picker-opacity-checkerboard-size);background-position:0 0,0 calc(var(--ard-color-picker-opacity-checkerboard-size) / 2),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2) calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1) 0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumSelectComponent, selector: "ard-select", inputs: ["valueFrom", "labelFrom", "disabledFrom", "groupLabelFrom", "groupDisabledFrom", "childrenFrom", "placeholder", "searchPlaceholder", "dropdownPosition", "clearButtonTitle", "noItemsFoundText", "loadingPlaceholderText", "searchInputId", "isLoading", "inputAttrs", "htmlId", "itemsAlreadyGrouped", "invertDisabled", "noGroupActions", "autoHighlightFirst", "autoFocus", "keepOpen", "hideSelected", "noBackspaceClear", "sortMultipleValues", "searchCaseSensitive", "keepSearchAfterSelect", "maxSelectedItems", "itemDisplayLimit", "searchFn", "compareWith", "appearance", "variant", "compact", "dropdowonAppearance", "dropdowonVariant", "groupItems", "items", "multiselectable", "clearable", "searchable", "addCustom", "value", "isOpen"], outputs: ["valueChange", "change", "add", "failedToAdd", "remove", "clear", "open", "close", "scroll", "scrollToEnd", "search", "isOpenChange"] }, { kind: "component", type: i3.ArdiumNumberInputComponent, selector: "ard-number-input", inputs: ["inputId", "placeholder", "appearance", "variant", "alignText", "compact", "inputAttrs", "value", "min", "max", "allowFloat", "allowQuickChange", "stepSize"], outputs: ["valueChange", "input", "change", "clear", "quickChange"] }, { kind: "component", type: i4.ArdiumHexInputComponent, selector: "ard-hex-input", inputs: ["inputId", "placeholder", "appearance", "variant", "compact", "case", "maxDigits", "hideHash", "clearable", "clearButtonTitle", "inputAttrs", "value"], outputs: ["valueChange", "input", "change", "clear"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
398
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumColorPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
399
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: ArdiumColorPickerComponent, selector: "ard-color-picker", inputs: { withOpacity: "withOpacity", referenceColor: "referenceColor", wrapperClasses: "wrapperClasses", variant: "variant", vertical: "vertical", value: "value", colorHue: "colorHue", colorSaturation: "colorSaturation", colorValue: "colorValue", colorOpacity: "colorOpacity", shadeIndicatorTemplate: "shadeIndicatorTemplate", hueIndicatorTemplate: "hueIndicatorTemplate", opacityIndicatorTemplate: "opacityIndicatorTemplate", colorReferenceTemplate: "colorReferenceTemplate" }, outputs: { valueChange: "valueChange", colorHueChange: "colorHueChange", colorSaturationChange: "colorSaturationChange", colorValueChange: "colorValueChange", colorOpacityChange: "colorOpacityChange" }, host: { listeners: { "document:pointerup": "onDocumentMouseUp()", "document:touchend": "onDocumentMouseUp()", "document:pointermove": "onDocumentMousemove($event)", "document:touchmove": "onDocumentMousemove($event)" } }, queries: [{ propertyName: "shadeIndicatorTemplateChild", first: true, predicate: ArdColorPickerShadeIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "hueIndicatorTemplateChild", first: true, predicate: ArdColorPickerHueIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "opacityIndicatorTemplateChild", first: true, predicate: ArdColorPickerOpacityIndicatorTemplateDirective, descendants: true, read: TemplateRef }, { propertyName: "colorReferenceTemplateChild", first: true, predicate: ArdColorPickerColorReferenceTemplateDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "shadeMapEl", first: true, predicate: ["shadeMap"], descendants: true, read: ElementRef }, { propertyName: "hueMapEl", first: true, predicate: ["hueMap"], descendants: true, read: ElementRef }, { propertyName: "opacityMapEl", first: true, predicate: ["opacityMap"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"ard-color-picker\" [ngClass]=\"ngClasses\" (keydown)=\"onKeydown($event)\">\r\n <div class=\"ard-color-picker-click-areas\"\r\n [style]=\"{\r\n '--ard-color-picker-current-hue': currentShadeMapColor,\r\n '--ard-color-picker-current-color': currentOpacityMapColor\r\n }\"\r\n >\r\n <div #shadeMap\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-shade-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'shade'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onShadeAreaMouseDown($event)\"\r\n (pointerdown)=\"onShadeAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-shade-indicator-container\" [style]=\"getShadeIndicatorPosition()\">\r\n <ng-template #defaultShadeIndicatorTemplate>\r\n <div class=\"ard-color-picker-shade-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"shadeIndicatorTemplate || shadeIndicatorTemplateChild || defaultShadeIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n <div #hueMap\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-hue-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'hue'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onHueAreaMouseDown($event)\"\r\n (pointerdown)=\"onHueAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-hue-indicator-container\" [style]=\"getHueIndicatorPosition()\">\r\n <ng-template #defaultHueIndicatorTemplate>\r\n <div class=\"ard-color-picker-hue-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"hueIndicatorTemplate || hueIndicatorTemplateChild || defaultHueIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n <div #opacityMap\r\n *ngIf=\"withOpacity\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-opacity-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'opacity'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onOpacityAreaMouseDown($event)\"\r\n (pointerdown)=\"onOpacityAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-opacity-indicator-container\" [style]=\"getOpacityIndicatorPosition()\">\r\n <ng-template #defaultOpacityIndicatorTemplate>\r\n <div class=\"ard-color-picker-opacity-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"opacityIndicatorTemplate || opacityIndicatorTemplateChild || defaultOpacityIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ard-color-picker-input-panel\">\r\n <div class=\"ard-color-picker-inputs\">\r\n <div class=\"ard-color-picker-input-type\">\r\n <ard-select\r\n compact\r\n clearable=\"false\"\r\n appearance=\"transparent\"\r\n [items]=\"inputTypes\"\r\n [value]=\"currentInputType\"\r\n (valueChange)=\"onCurrentInputTypeChange($event)\"\r\n ></ard-select>\r\n </div>\r\n <div class=\"ard-color-picker-reference-container\">\r\n <ng-template #defaultColorReferenceTemplate let-col let-refcol=\"referenceColor\">\r\n <div class=\"ard-color-picker-reference\">\r\n <div class=\"ard-color-picker-reference-reference\" [style]=\"{ background: refcol.rgb().toString() }\"></div>\r\n <div class=\"ard-color-picker-reference-current\" [style]=\"{ background: col.rgb().toString() }\"></div>\r\n </div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"colorReferenceTemplate || colorReferenceTemplateChild || defaultColorReferenceTemplate\"\r\n [ngTemplateOutletContext]=\"getColorReferenceContext()\"\r\n ></ng-template>\r\n </div>\r\n <div class=\"ard-color-picker-inputs-container\"\r\n [ngClass]=\"{\r\n 'ard-mode-hex': currentInputType == 'HEX',\r\n 'ard-mode-triple': currentInputType != 'HEX',\r\n 'ard-mode-opacity': withOpacity\r\n }\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"currentInputType == 'HEX' ? hexInput : tripleInput\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #hexInput>\r\n <ard-hex-input\r\n class=\"ard-color-picker-hex-input\"\r\n maxDigits=\"6\"\r\n [value]=\"hexInputValue\"\r\n (valueChange)=\"onHexInputChange($event)\"\r\n ></ard-hex-input>\r\n <ard-number-input\r\n *ngIf=\"withOpacity\"\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData4.max\"\r\n [value]=\"tripleInputData4.value\"\r\n (valueChange)=\"onTripleInputChange($event, 4)\"\r\n ></ard-number-input>\r\n</ng-template>\r\n\r\n<ng-template #tripleInput> \r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData1.max\"\r\n [value]=\"tripleInputData1.value\"\r\n (valueChange)=\"onTripleInputChange($event, 1)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData2.max\"\r\n [value]=\"tripleInputData2.value\"\r\n (valueChange)=\"onTripleInputChange($event, 2)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData3.max\"\r\n [value]=\"tripleInputData3.value\"\r\n (valueChange)=\"onTripleInputChange($event, 3)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n *ngIf=\"withOpacity\"\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData4.max\"\r\n [value]=\"tripleInputData4.value\"\r\n (valueChange)=\"onTripleInputChange($event, 4)\"\r\n ></ard-number-input>\r\n</ng-template>", styles: [".ard-color-picker{display:flex;flex-direction:column}.ard-color-picker-click-areas{display:flex;flex-direction:row}.ard-color-picker-click-areas.ard-vertical .ard-color-picker-click-areas{flex-direction:column}.ard-color-picker-shade-map,.ard-color-picker-hue-map,.ard-color-picker-opacity-map{position:relative}.ard-color-picker-shade-map{background:linear-gradient(to bottom,transparent,rgb(0,0,0)),linear-gradient(to right,transparent,var(--ard-color-picker-current-hue)),#fff}.ard-color-picker-hue-map{background:linear-gradient(to bottom,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}.ard-color-picker-opacity-map{--ard-color-picker-opacity-checkerboard-color: #ccc;--ard-color-picker-opacity-checkerboard-size: 10px;background-image:linear-gradient(45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%);background-size:var(--ard-color-picker-opacity-checkerboard-size) var(--ard-color-picker-opacity-checkerboard-size);background-position:0 0,0 calc(var(--ard-color-picker-opacity-checkerboard-size) / 2),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2) calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1) 0}.ard-color-picker-opacity-map:before{content:\"\";position:absolute;inset:0;background:linear-gradient(to bottom,var(--ard-color-picker-current-color),transparent)}.ard-color-picker-shade-indicator-container,.ard-color-picker-hue-indicator-container,.ard-color-picker-opacity-indicator-container{position:absolute;transform:translate(-50%,-50%)}.ard-color-picker-reference{--ard-color-picker-opacity-checkerboard-color: #ccc;--ard-color-picker-opacity-checkerboard-size: 10px;background-image:linear-gradient(45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%);background-size:var(--ard-color-picker-opacity-checkerboard-size) var(--ard-color-picker-opacity-checkerboard-size);background-position:0 0,0 calc(var(--ard-color-picker-opacity-checkerboard-size) / 2),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2) calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1) 0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumSelectComponent, selector: "ard-select", inputs: ["valueFrom", "labelFrom", "disabledFrom", "groupLabelFrom", "groupDisabledFrom", "childrenFrom", "placeholder", "searchPlaceholder", "dropdownPosition", "clearButtonTitle", "noItemsFoundText", "loadingPlaceholderText", "searchInputId", "isLoading", "inputAttrs", "htmlId", "itemsAlreadyGrouped", "invertDisabled", "noGroupActions", "autoHighlightFirst", "autoFocus", "keepOpen", "hideSelected", "noBackspaceClear", "sortMultipleValues", "searchCaseSensitive", "keepSearchAfterSelect", "maxSelectedItems", "itemDisplayLimit", "searchFn", "compareWith", "appearance", "variant", "compact", "dropdowonAppearance", "dropdowonVariant", "groupItems", "items", "multiselectable", "clearable", "searchable", "addCustom", "value", "isOpen"], outputs: ["valueChange", "change", "add", "failedToAdd", "remove", "clear", "open", "close", "scroll", "scrollToEnd", "search", "isOpenChange"] }, { kind: "component", type: i3.ArdiumNumberInputComponent, selector: "ard-number-input", inputs: ["inputId", "placeholder", "appearance", "variant", "alignText", "compact", "inputAttrs", "value", "min", "max", "allowFloat", "allowQuickChange", "stepSize"], outputs: ["valueChange", "input", "change", "clear", "quickChange"] }, { kind: "component", type: i4.ArdiumHexInputComponent, selector: "ard-hex-input", inputs: ["inputId", "placeholder", "appearance", "variant", "compact", "case", "maxDigits", "hideHash", "clearable", "clearButtonTitle", "inputAttrs", "value"], outputs: ["valueChange", "input", "change", "clear"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
400
400
  }
401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerComponent, decorators: [{
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumColorPickerComponent, decorators: [{
402
402
  type: Component,
403
403
  args: [{ selector: 'ard-color-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ard-color-picker\" [ngClass]=\"ngClasses\" (keydown)=\"onKeydown($event)\">\r\n <div class=\"ard-color-picker-click-areas\"\r\n [style]=\"{\r\n '--ard-color-picker-current-hue': currentShadeMapColor,\r\n '--ard-color-picker-current-color': currentOpacityMapColor\r\n }\"\r\n >\r\n <div #shadeMap\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-shade-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'shade'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onShadeAreaMouseDown($event)\"\r\n (pointerdown)=\"onShadeAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-shade-indicator-container\" [style]=\"getShadeIndicatorPosition()\">\r\n <ng-template #defaultShadeIndicatorTemplate>\r\n <div class=\"ard-color-picker-shade-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"shadeIndicatorTemplate || shadeIndicatorTemplateChild || defaultShadeIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n <div #hueMap\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-hue-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'hue'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onHueAreaMouseDown($event)\"\r\n (pointerdown)=\"onHueAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-hue-indicator-container\" [style]=\"getHueIndicatorPosition()\">\r\n <ng-template #defaultHueIndicatorTemplate>\r\n <div class=\"ard-color-picker-hue-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"hueIndicatorTemplate || hueIndicatorTemplateChild || defaultHueIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n <div #opacityMap\r\n *ngIf=\"withOpacity\"\r\n [tabIndex]=\"tabIndex\"\r\n class=\"ard-color-picker-opacity-map\"\r\n (focus)=\"onFocus($event)\"\r\n (focus)=\"focusedArea = 'opacity'\"\r\n (blur)=\"onBlur($event)\"\r\n (blur)=\"focusedArea = null\"\r\n (mousedown)=\"onOpacityAreaMouseDown($event)\"\r\n (pointerdown)=\"onOpacityAreaMouseDown($event)\"\r\n >\r\n <div class=\"ard-color-picker-opacity-indicator-container\" [style]=\"getOpacityIndicatorPosition()\">\r\n <ng-template #defaultOpacityIndicatorTemplate>\r\n <div class=\"ard-color-picker-opacity-indicator\"></div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"opacityIndicatorTemplate || opacityIndicatorTemplateChild || defaultOpacityIndicatorTemplate\"\r\n [ngTemplateOutletContext]=\"getIndicatorContext()\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"ard-color-picker-input-panel\">\r\n <div class=\"ard-color-picker-inputs\">\r\n <div class=\"ard-color-picker-input-type\">\r\n <ard-select\r\n compact\r\n clearable=\"false\"\r\n appearance=\"transparent\"\r\n [items]=\"inputTypes\"\r\n [value]=\"currentInputType\"\r\n (valueChange)=\"onCurrentInputTypeChange($event)\"\r\n ></ard-select>\r\n </div>\r\n <div class=\"ard-color-picker-reference-container\">\r\n <ng-template #defaultColorReferenceTemplate let-col let-refcol=\"referenceColor\">\r\n <div class=\"ard-color-picker-reference\">\r\n <div class=\"ard-color-picker-reference-reference\" [style]=\"{ background: refcol.rgb().toString() }\"></div>\r\n <div class=\"ard-color-picker-reference-current\" [style]=\"{ background: col.rgb().toString() }\"></div>\r\n </div>\r\n </ng-template>\r\n \r\n <ng-template [ngTemplateOutlet]=\"colorReferenceTemplate || colorReferenceTemplateChild || defaultColorReferenceTemplate\"\r\n [ngTemplateOutletContext]=\"getColorReferenceContext()\"\r\n ></ng-template>\r\n </div>\r\n <div class=\"ard-color-picker-inputs-container\"\r\n [ngClass]=\"{\r\n 'ard-mode-hex': currentInputType == 'HEX',\r\n 'ard-mode-triple': currentInputType != 'HEX',\r\n 'ard-mode-opacity': withOpacity\r\n }\"\r\n >\r\n <ng-template\r\n [ngTemplateOutlet]=\"currentInputType == 'HEX' ? hexInput : tripleInput\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #hexInput>\r\n <ard-hex-input\r\n class=\"ard-color-picker-hex-input\"\r\n maxDigits=\"6\"\r\n [value]=\"hexInputValue\"\r\n (valueChange)=\"onHexInputChange($event)\"\r\n ></ard-hex-input>\r\n <ard-number-input\r\n *ngIf=\"withOpacity\"\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData4.max\"\r\n [value]=\"tripleInputData4.value\"\r\n (valueChange)=\"onTripleInputChange($event, 4)\"\r\n ></ard-number-input>\r\n</ng-template>\r\n\r\n<ng-template #tripleInput> \r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData1.max\"\r\n [value]=\"tripleInputData1.value\"\r\n (valueChange)=\"onTripleInputChange($event, 1)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData2.max\"\r\n [value]=\"tripleInputData2.value\"\r\n (valueChange)=\"onTripleInputChange($event, 2)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData3.max\"\r\n [value]=\"tripleInputData3.value\"\r\n (valueChange)=\"onTripleInputChange($event, 3)\"\r\n ></ard-number-input>\r\n <ard-number-input\r\n *ngIf=\"withOpacity\"\r\n allowQuickChange=\"false\"\r\n [max]=\"tripleInputData4.max\"\r\n [value]=\"tripleInputData4.value\"\r\n (valueChange)=\"onTripleInputChange($event, 4)\"\r\n ></ard-number-input>\r\n</ng-template>", styles: [".ard-color-picker{display:flex;flex-direction:column}.ard-color-picker-click-areas{display:flex;flex-direction:row}.ard-color-picker-click-areas.ard-vertical .ard-color-picker-click-areas{flex-direction:column}.ard-color-picker-shade-map,.ard-color-picker-hue-map,.ard-color-picker-opacity-map{position:relative}.ard-color-picker-shade-map{background:linear-gradient(to bottom,transparent,rgb(0,0,0)),linear-gradient(to right,transparent,var(--ard-color-picker-current-hue)),#fff}.ard-color-picker-hue-map{background:linear-gradient(to bottom,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red)}.ard-color-picker-opacity-map{--ard-color-picker-opacity-checkerboard-color: #ccc;--ard-color-picker-opacity-checkerboard-size: 10px;background-image:linear-gradient(45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%);background-size:var(--ard-color-picker-opacity-checkerboard-size) var(--ard-color-picker-opacity-checkerboard-size);background-position:0 0,0 calc(var(--ard-color-picker-opacity-checkerboard-size) / 2),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2) calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1) 0}.ard-color-picker-opacity-map:before{content:\"\";position:absolute;inset:0;background:linear-gradient(to bottom,var(--ard-color-picker-current-color),transparent)}.ard-color-picker-shade-indicator-container,.ard-color-picker-hue-indicator-container,.ard-color-picker-opacity-indicator-container{position:absolute;transform:translate(-50%,-50%)}.ard-color-picker-reference{--ard-color-picker-opacity-checkerboard-color: #ccc;--ard-color-picker-opacity-checkerboard-size: 10px;background-image:linear-gradient(45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(-45deg,var(--ard-color-picker-opacity-checkerboard-color) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%),linear-gradient(-45deg,transparent 75%,var(--ard-color-picker-opacity-checkerboard-color) 75%);background-size:var(--ard-color-picker-opacity-checkerboard-size) var(--ard-color-picker-opacity-checkerboard-size);background-position:0 0,0 calc(var(--ard-color-picker-opacity-checkerboard-size) / 2),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2) calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1),calc(var(--ard-color-picker-opacity-checkerboard-size) / 2 * -1) 0}\n"] }]
404
404
  }], propDecorators: { withOpacity: [{
@@ -481,4 +481,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
481
481
  read: TemplateRef,
482
482
  }]
483
483
  }] } });
484
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29sb3IvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbG9yL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUNMLDZDQUE2QyxFQUM3QywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQy9DLDZDQUE2QyxHQUM5QyxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBaUUsa0JBQWtCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBRXhKLE1BQU0sa0JBQWtCLEdBQUcsaUNBQWlDLENBQUM7QUFDN0QsTUFBTSx1QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQztBQWNsRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCO0lBUHJFOztRQVFVLGlCQUFZ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Q0FBQyxRQUFRLENBQUM7O3NCQUMvQyxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1NckMsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUlOLDJCQUEyQjtzQkFIMUIsWUFBWTt1QkFBQyw2Q0FBNkMsRUFBRTt3QkFDM0QsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCO2dCQUtELHlCQUF5QjtzQkFIeEIsWUFBWTt1QkFBQywyQ0FBMkMsRUFBRTt3QkFDekQsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCO2dCQUtELDZCQUE2QjtzQkFINUIsWUFBWTt1QkFBQywrQ0FBK0MsRUFBRTt3QkFDN0QsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCO2dCQUtELDJCQUEyQjtzQkFIMUIsWUFBWTt1QkFBQyw2Q0FBNkMsRUFBRTt3QkFDM0QsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5LCBnZXRFdmVudFJlbGF0aXZlUG9zIH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0ICogYXMgQ29sb3IgZnJvbSAnY29sb3InO1xuaW1wb3J0IHsgcm91bmQsIHJvdW5kVG9NdWx0aXBsZSwgcm91bmRUb1ByZWNpc2lvbiB9IGZyb20gJ21vcmUtcm91bmRpbmcnO1xuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9jb2xvci1waWNrZXIuZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dCwgQ29sb3JQaWNrZXJJbmRpY2F0b3JDb250ZXh0LCBDb2xvclBpY2tlclZhcmlhbnQsIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlIH0gZnJvbSAnLi9jb2xvci1waWNrZXIudHlwZXMnO1xuXG5jb25zdCB2YWxpZEhleENvbG9yUmVnZXggPSAvXiNbMC05YS1mXXszfSg/OlswLTlhLWZdezN9KT8kL2k7XG5jb25zdCB2YWxpZEhleEFscGhhQ29sb3JSZWdleCA9IC9eI1swLTlhLWZdezR9KD86WzAtOWEtZl17NH0pPyQvaTtcblxudHlwZSBUcmlwbGVJbnB1dE9iamVjdCA9IHtcbiAgdmFsdWU6IG51bWJlcjtcbiAgbWF4OiBudW1iZXI7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXJkaXVtQ29sb3JQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBfTmdNb2RlbENvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF93aXRoT3BhY2l0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKVxuICBnZXQgd2l0aE9wYWNpdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3dpdGhPcGFjaXR5O1xuICB9XG4gIHNldCB3aXRoT3BhY2l0eSh2OiBhbnkpIHtcbiAgICB0aGlzLl93aXRoT3BhY2l0eSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcblxuICAgIGlmICh0aGlzLmZvY3VzZWRBcmVhID09ICdvcGFjaXR5JykgdGhpcy5mb2N1c2VkQXJlYSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9yZWZlcmVuY2VDb2xvcjogQ29sb3IgPSBDb2xvcigndHJhbnNwYXJlbnQnKTtcbiAgcHJpdmF0ZSBfd2FzUmVmZXJlbmNlQ29sb3JTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KClcbiAgc2V0IHJlZmVyZW5jZUNvbG9yKHY6IGFueSkge1xuICAgIHRoaXMuX3JlZmVyZW5jZUNvbG9yID0gQ29sb3Iodik7XG4gICAgdGhpcy5fd2FzUmVmZXJlbmNlQ29sb3JTZXQgPSB0cnVlO1xuICB9XG4gIGdldCByZWZlcmVuY2VDb2xvcigpOiBDb2xvciB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZmVyZW5jZUNvbG9yO1xuICB9XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgQElucHV0KCkgd3JhcHBlckNsYXNzZXM6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IENvbG9yUGlja2VyVmFyaWFudCA9IENvbG9yUGlja2VyVmFyaWFudC5Sb3VuZGVkO1xuXG4gIHByaXZhdGUgX3ZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7IC8vVE9ETyBpbXBsZW1lbnQgaW4gQ1NTXG4gIEBJbnB1dCgpXG4gIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XG4gIH1cbiAgc2V0IHZlcnRpY2FsKHY6IGFueSkge1xuICAgIHRoaXMuX3ZlcnRpY2FsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xuICB9XG5cbiAgZ2V0IG5nQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBbdGhpcy53cmFwcGVyQ2xhc3NlcywgYGFyZC12YXJpYW50LSR7dGhpcy52YXJpYW50fWAsIHRoaXMudmVydGljYWwgPyAnYXJkLXZlcnRpY2FsJyA6ICcnXS5qb2luKCcgJyk7XG4gIH1cblxuICAvLyEgdmFsdWUtcmVsYXRlZFxuICBwcml2YXRlIF92YWx1ZTogQ29sb3IgPSBDb2xvcigncmVkJyk7XG4gIHByaXZhdGUgX2V4YWN0SHVlOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKVxuICBzZXQgdmFsdWUodjogYW55KSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHYpO1xuICB9XG4gIGdldCB2YWx1ZSgpOiBDb2xvciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbG9ySHVlKHY6IGFueSkge1xuICAgIGNvbnN0IGh1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDApO1xuICAgIHRoaXMudmFsdWUuaHVlKGh1ZSk7XG4gIH1cbiAgZ2V0IGNvbG9ySHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuaHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgY29sb3JTYXR1cmF0aW9uKHY6IGFueSkge1xuICAgIGNvbnN0IHNhdHVyYXRpb24gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxMDApO1xuICAgIHRoaXMudmFsdWUuc2F0dXJhdGlvbmwoc2F0dXJhdGlvbik7XG4gIH1cbiAgZ2V0IGNvbG9yU2F0dXJhdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnZhbHVlLnNhdHVyYXRpb25sKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgY29sb3JWYWx1ZSh2OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDEwMCk7XG4gICAgdGhpcy52YWx1ZS52YWx1ZSh2YWx1ZSk7XG4gIH1cbiAgZ2V0IGNvbG9yVmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZS52YWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbG9yT3BhY2l0eSh2OiBhbnkpIHtcbiAgICBjb25zdCBvcGFjaXR5ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMSk7XG4gICAgdGhpcy52YWx1ZS5hbHBoYShvcGFjaXR5KTtcbiAgfVxuICBnZXQgY29sb3JPcGFjaXR5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUuYWxwaGEoKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3I+KCk7XG4gIEBPdXRwdXQoKSBjb2xvckh1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgY29sb3JTYXR1cmF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBjb2xvclZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBjb2xvck9wYWNpdHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICB3cml0ZVZhbHVlKHY6IGFueSkge1xuICAgIHRoaXMuX3ZhbHVlID0gQ29sb3Iodik7XG5cbiAgICB0aGlzLl91cGRhdGVDdXJyZW50U2hhZGVNYXBDb2xvcigpO1xuICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRPcGFjaXR5TWFwQ29sb3IoKTtcbiAgICB0aGlzLl91cGRhdGVIZXhJbnB1dFZhbHVlKCk7XG4gICAgdGhpcy5fdXBkYXRlVHJpcGxlSW5wdXRWYWx1ZXMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl93YXNSZWZlcmVuY2VDb2xvclNldCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fd2FzUmVmZXJlbmNlQ29sb3JTZXQgPSB0cnVlO1xuICAgIHRoaXMucmVmZXJlbmNlQ29sb3IgPSBDb2xvcih0aGlzLnZhbHVlKTtcblxuICAgIHRoaXMuX3VwZGF0ZUhleElucHV0VmFsdWUoKTtcbiAgfVxuXG4gIC8vISBjcmVhdGluZyBuZXcgdmFsdWUgZnJvbSBpbnRlcmFjdGlvbnNcbiAgQFZpZXdDaGlsZCgnc2hhZGVNYXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgc2hhZGVNYXBFbCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdodWVNYXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgaHVlTWFwRWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnb3BhY2l0eU1hcCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBvcGFjaXR5TWFwRWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBmb2N1c2VkQXJlYTogJ3NoYWRlJyB8ICdodWUnIHwgJ29wYWNpdHknIHwgbnVsbCA9IG51bGw7XG5cbiAgb25TaGFkZUFyZWFNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9pc01vdXNlRG93biA9IHRydWU7XG4gICAgdGhpcy5fdXBkYXRlU2hhZGVGcm9tRXZlbnQoZXZlbnQpO1xuICB9XG4gIG9uSHVlQXJlYU1vdXNlRG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2lzTW91c2VEb3duID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVIdWVGcm9tRXZlbnQoZXZlbnQpO1xuICB9XG4gIG9uT3BhY2l0eUFyZWFNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9pc01vdXNlRG93biA9IHRydWU7XG4gICAgdGhpcy5fdXBkYXRlT3BhY2l0eUZyb21FdmVudChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIF9pc01vdXNlRG93bjogYm9vbGVhbiA9IGZhbHNlO1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaGVuZCcpXG4gIG9uRG9jdW1lbnRNb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuX2lzTW91c2VEb3duID0gZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVybW92ZScsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNobW92ZScsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRNb3VzZW1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWRBcmVhIHx8ICF0aGlzLl9pc01vdXNlRG93bikgcmV0dXJuO1xuXG4gICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBUb3VjaEV2ZW50KSkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICh0aGlzLmZvY3VzZWRBcmVhID09ICdzaGFkZScpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNoYWRlRnJvbUV2ZW50KGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9jdXNlZEFyZWEgPT0gJ2h1ZScpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUh1ZUZyb21FdmVudChldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZU9wYWNpdHlGcm9tRXZlbnQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2hhZGVGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20gfSA9IGdldEV2ZW50UmVsYXRpdmVQb3MoZXZlbnQsIHRoaXMuc2hhZGVNYXBFbCk7XG5cbiAgICBjb25zdCBzaGFkZU1hcFdpZHRoID0gbGVmdCArIHJpZ2h0O1xuICAgIGNvbnN0IG5ld1NhdHVyYXRpb25SYXcgPSAobGVmdCAvIHNoYWRlTWFwV2lkdGgpICogMTAwO1xuICAgIGNvbnN0IG5ld1NhdHVyYXRpb24gPSByb3VuZChNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIG5ld1NhdHVyYXRpb25SYXcpKSk7XG5cbiAgICBjb25zdCBzaGFkZU1hcEhlaWdodCA9IHRvcCArIGJvdHRvbTtcbiAgICBjb25zdCBuZXdWYWx1ZVJhdyA9IChib3R0b20gLyBzaGFkZU1hcEhlaWdodCkgKiAxMDA7XG4gICAgY29uc3QgbmV3VmFsdWUgPSByb3VuZChNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIG5ld1ZhbHVlUmF3KSkpO1xuXG4gICAgY29uc3Qgb2xkU2F0dXJhdGlvbiA9IHRoaXMudmFsdWUuc2F0dXJhdGlvbnYoKTtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMudmFsdWUudmFsdWUoKTtcblxuICAgIGlmIChvbGRTYXR1cmF0aW9uID09IG5ld1NhdHVyYXRpb24gJiYgb2xkVmFsdWUgPT0gbmV3VmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMudmFsdWUgPSBDb2xvcih0aGlzLnZhbHVlKS5zYXR1cmF0aW9udihuZXdTYXR1cmF0aW9uKS52YWx1ZShuZXdWYWx1ZSk7XG5cbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgdGhpcy5fdXBkYXRlQ3VycmVudE9wYWNpdHlNYXBDb2xvcigpO1xuICAgIC8vZW1pdCBzcGVjaWZpYyBldmVudHNcbiAgICBpZiAob2xkU2F0dXJhdGlvbiAhPSB0aGlzLnZhbHVlLnNhdHVyYXRpb252KCkpIHRoaXMuY29sb3JTYXR1cmF0aW9uQ2hhbmdlLm5leHQodGhpcy52YWx1ZS5zYXR1cmF0aW9udigpKTtcbiAgICBpZiAob2xkVmFsdWUgIT0gdGhpcy52YWx1ZS52YWx1ZSgpKSB0aGlzLmNvbG9yVmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlLnZhbHVlKCkpO1xuICB9XG4gIHByaXZhdGUgX3VwZGF0ZUh1ZUZyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB7IHRvcCwgYm90dG9tIH0gPSBnZXRFdmVudFJlbGF0aXZlUG9zKGV2ZW50LCB0aGlzLmh1ZU1hcEVsKTtcblxuICAgIGNvbnN0IGh1ZU1hcEhlaWdodCA9IHRvcCArIGJvdHRvbTtcbiAgICBjb25zdCBuZXdIdWVSYXcgPSAodG9wIC8gaHVlTWFwSGVpZ2h0KSAqIDM2MDtcbiAgICBjb25zdCBuZXdIdWUgPSByb3VuZChNYXRoLm1heCgwLCBNYXRoLm1pbigzNjAsIG5ld0h1ZVJhdykpKTtcbiAgICBjb25zdCBuZXdIdWVFeGFjdCA9IG5ld0h1ZSA9PSAzNjAgPyAzNTkuOTkgOiBuZXdIdWU7XG5cbiAgICBpZiAodGhpcy52YWx1ZS5odWUoKSA9PSBuZXdIdWVFeGFjdCkgcmV0dXJuO1xuXG4gICAgdGhpcy52YWx1ZSA9IENvbG9yKHRoaXMudmFsdWUpLmh1ZShuZXdIdWVFeGFjdCk7XG5cbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgdGhpcy5jb2xvckh1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUuaHVlKCkpO1xuICAgIHRoaXMuX3VwZGF0ZUN1cnJlbnRTaGFkZU1hcENvbG9yKCk7XG4gICAgdGhpcy5fdXBkYXRlQ3VycmVudE9wYWNpdHlNYXBDb2xvcigpO1xuICB9XG4gIHByaXZhdGUgX3VwZGF0ZU9wYWNpdHlGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLndpdGhPcGFjaXR5KSByZXR1cm47XG5cbiAgICBjb25zdCB7IHRvcCwgYm90dG9tIH0gPSBnZXRFdmVudFJlbGF0aXZlUG9zKGV2ZW50LCB0aGlzLm9wYWNpdHlNYXBFbCk7XG5cbiAgICBjb25zdCBodWVNYXBIZWlnaHQgPSB0b3AgKyBib3R0b207XG4gICAgY29uc3QgbmV3T3BhY2l0eVJhdyA9IGJvdHRvbSAvIGh1ZU1hcEhlaWdodDtcbiAgICBjb25zdCBuZXdPcGFjaXR5ID0gcm91bmRUb1ByZWNpc2lvbihNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBuZXdPcGFjaXR5UmF3KSksIDIpO1xuXG4gICAgaWYgKHRoaXMudmFsdWUuYWxwaGEoKSA9PSBuZXdPcGFjaXR5KSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlID0gQ29sb3IodGhpcy52YWx1ZSkuYWxwaGEobmV3T3BhY2l0eSk7XG5cbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XG4gICAgdGhpcy5jb2xvck9wYWNpdHlDaGFuZ2UubmV4dCh0aGlzLnZhbHVlLmFscGhhKCkpO1xuICB9XG5cbiAgLy8hIGRpc3BsYXlpbmcgdGhlIG1hcHMgY29ycmVjdGx5XG4gIGN1cnJlbnRTaGFkZU1hcENvbG9yOiBDb2xvciA9IHRoaXMudmFsdWU7XG4gIHByaXZhdGUgX3VwZGF0ZUN1cnJlbnRTaGFkZU1hcENvbG9yKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNoYWRlTWFwQ29sb3IgPSBDb2xvci5oc3YodGhpcy52YWx1ZS5odWUoKSwgMTAwLCAxMDApO1xuICB9XG4gIGN1cnJlbnRPcGFjaXR5TWFwQ29sb3I6IENvbG9yID0gdGhpcy52YWx1ZTtcbiAgcHJpdmF0ZSBfdXBkYXRlQ3VycmVudE9wYWNpdHlNYXBDb2xvcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMud2l0aE9wYWNpdHkpIHJldHVybjtcbiAgICB0aGlzLmN1cnJlbnRPcGFjaXR5TWFwQ29sb3IgPSBDb2xvci5oc3YodGhpcy52YWx1ZS5odWUoKSwgdGhpcy52YWx1ZS5zYXR1cmF0aW9udigpLCB0aGlzLnZhbHVlLnZhbHVlKCkpO1xuICB9XG5cbiAgZ2V0U2hhZGVJbmRpY2F0b3JQb3NpdGlvbigpOiB7ICctLXRvcCc6IHN0cmluZzsgJy0tbGVmdCc6IHN0cmluZyB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgJy0tdG9wJzogMTAwIC0gdGhpcy52YWx1ZS52YWx1ZSgpICsgJyUnLFxuICAgICAgJy0tbGVmdCc6IHRoaXMudmFsdWUuc2F0dXJhdGlvbnYoKSArICclJyxcbiAgICB9O1xuICB9XG4gIGdldEh1ZUluZGljYXRvclBvc2l0aW9uKCk6IHsgJy0tdG9wJzogc3RyaW5nIH0ge1xuICAgIHJldHVybiB7XG4gICAgICAnLS10b3AnOiB0aGlzLnZhbHVlLmh1ZSgpIC8gMy42ICsgJyUnLFxuICAgIH07XG4gIH1cbiAgZ2V0T3BhY2l0eUluZGljYXRvclBvc2l0aW9uKCk6IHsgJy0tdG9wJzogc3RyaW5nIH0ge1xuICAgIHJldHVybiB7XG4gICAgICAnLS10b3AnOiAxMDAgLSB0aGlzLnZhbHVlLmFscGhhKCkgKiAxMDAgKyAnJScsXG4gICAgfTtcbiAgfVxuXG4gIC8vISBpbnB1dHMgc2VjdGlvblxuICBpbnB1dFR5cGVzOiBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZVtdID0gT2JqZWN0LnZhbHVlcyhfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZSk7XG4gIGN1cnJlbnRJbnB1dFR5cGU6IF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlID0gX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGUuSEVYO1xuXG4gIG9uQ3VycmVudElucHV0VHlwZUNoYW5nZSh2YWx1ZTogX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGVbXSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudElucHV0VHlwZSA9IHZhbHVlWzBdO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudElucHV0VHlwZSAhPSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IRVgpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVRyaXBsZUlucHV0VmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgaGV4SW5wdXRWYWx1ZTogc3RyaW5nID0gdGhpcy52YWx1ZS5oZXgoKTtcbiAgcHJpdmF0ZSBfdXBkYXRlSGV4SW5wdXRWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50SW5wdXRUeXBlICE9IF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlLkhFWCkgcmV0dXJuO1xuXG4gICAgY29uc3QgSEVYID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLmhleElucHV0VmFsdWUgPSBIRVguaGV4KCkucmVwbGFjZSgnIycsICcnKTtcbiAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTQudmFsdWUgPSBIRVguYWxwaGEoKSAqIDEwMDtcbiAgfVxuXG4gIHRyaXBsZUlucHV0RGF0YTE6IFRyaXBsZUlucHV0T2JqZWN0ID0ge1xuICAgIHZhbHVlOiAwLFxuICAgIG1heDogMCAvKiB0ZW1wb3JhcnkgdmFsdWUgKi8sXG4gIH07XG4gIHRyaXBsZUlucHV0RGF0YTI6IFRyaXBsZUlucHV0T2JqZWN0ID0ge1xuICAgIHZhbHVlOiAwLFxuICAgIG1heDogMCAvKiB0ZW1wb3JhcnkgdmFsdWUgKi8sXG4gIH07XG4gIHRyaXBsZUlucHV0RGF0YTM6IFRyaXBsZUlucHV0T2JqZWN0ID0ge1xuICAgIHZhbHVlOiAwLFxuICAgIG1heDogMCAvKiB0ZW1wb3JhcnkgdmFsdWUgKi8sXG4gIH07XG4gIHRyaXBsZUlucHV0RGF0YTQ6IFRyaXBsZUlucHV0T2JqZWN0ID0geyB2YWx1ZTogMCwgbWF4OiAxMDAgfTtcbiAgcHJpdmF0ZSBfdXBkYXRlVHJpcGxlSW5wdXRWYWx1ZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudElucHV0VHlwZSA9PSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IRVgpIHJldHVybjtcblxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50SW5wdXRUeXBlKSB7XG4gICAgICBjYXNlIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlLlJHQjpcbiAgICAgICAgY29uc3QgUkdCID0gdGhpcy52YWx1ZS5yZ2IoKTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGExLnZhbHVlID0gUkdCLnJlZCgpO1xuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTEubWF4ID0gMjU1O1xuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTIudmFsdWUgPSBSR0IuZ3JlZW4oKTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLm1heCA9IDI1NTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEzLnZhbHVlID0gUkdCLmJsdWUoKTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEzLm1heCA9IDI1NTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGE0LnZhbHVlID0gUkdCLmFscGhhKCkgKiAxMDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IU0w6XG4gICAgICAgIGNvbnN0IEhTTCA9IHRoaXMudmFsdWUuaHNsKCk7XG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMS52YWx1ZSA9IEhTTC5odWUoKTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGExLm1heCA9IDM2MDtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLnZhbHVlID0gSFNMLnNhdHVyYXRpb25sKCk7XG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMi5tYXggPSAxMDA7XG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMy52YWx1ZSA9IEhTTC5saWdodG5lc3MoKTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEzLm1heCA9IDEwMDtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGE0LnZhbHVlID0gSFNMLmFscGhhKCkgKiAxMDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IU1Y6XG4gICAgICAgIGNvbnN0IEhTViA9IHRoaXMudmFsdWUuaHN2KCk7XG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMS52YWx1ZSA9IEhTVi5odWUoKTtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGExLm1heCA9IDM2MDtcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLnZhbHVlID0gSFNWLnNhdHVyYXRpb252KCk7XG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMi5tYXggPSAxMDA7XG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMy52YWx1ZSA9IEhTVi52YWx1ZSgpO1xuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTMubWF4ID0gMTAwO1xuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTQudmFsdWUgPSBIU1YuYWxwaGEoKSAqIDEwMDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uSGV4SW5wdXRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLndpdGhPcGFjaXR5KSB7XG4gICAgICBpZiAoIXZhbHVlLm1hdGNoKHZhbGlkSGV4QWxwaGFDb2xvclJlZ2V4KSkgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlLm1hdGNoKHZhbGlkSGV4Q29sb3JSZWdleCkpIHJldHVybjtcblxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIG9uVHJpcGxlSW5wdXRDaGFuZ2UodmFsdWU6IG51bWJlciB8IG51bGwsIGluZGV4OiBudW1iZXIpOiB2b2lkIHt9XG5cbiAgLy8hIGV2ZW50c1xuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKSB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odik7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHYpO1xuICB9XG5cbiAgLy8hIHRlbXBsYXRlIGN1c3RvbWl6YXRpb25cbiAgQElucHV0KCkgc2hhZGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGh1ZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgb3BhY2l0eUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgY29sb3JSZWZlcmVuY2VUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIHNoYWRlSW5kaWNhdG9yVGVtcGxhdGVDaGlsZD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBodWVJbmRpY2F0b3JUZW1wbGF0ZUNoaWxkPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQENvbnRlbnRDaGlsZChBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICB9KVxuICBvcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVDaGlsZD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIGNvbG9yUmVmZXJlbmNlVGVtcGxhdGVDaGlsZD86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0SW5kaWNhdG9yQ29udGV4dCgpOiBDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICAkaW1wbGljaXQ6IHRoaXMudmFsdWUsXG4gICAgfTtcbiAgfVxuICBnZXRDb2xvclJlZmVyZW5jZUNvbnRleHQoKTogQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZUNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogdGhpcy52YWx1ZSxcbiAgICAgICRpbXBsaWNpdDogdGhpcy52YWx1ZSxcbiAgICAgIHJlZmVyZW5jZUNvbG9yOiB0aGlzLnJlZmVyZW5jZUNvbG9yLFxuICAgIH07XG4gIH1cblxuICAvLyEga2V5Ym9hcmQgY29udHJvbHNcbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaGFzU2hpZnQgPSBldmVudC5zaGlmdEtleTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkQXJlYSAhPSAnc2hhZGUnKSByZXR1cm47XG4gICAgICAgIHRoaXMubnVkZ2VDb2xvclNhdHVyYXRpb24oZXZlbnQua2V5ID09ICdBcnJvd1JpZ2h0JyA/IDEgOiAtMSwgaGFzU2hpZnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBzd2l0Y2ggKHRoaXMuZm9jdXNlZEFyZWEpIHtcbiAgICAgICAgICBjYXNlICdzaGFkZSc6XG4gICAgICAgICAgICB0aGlzLm51ZGdlQ29sb3JWYWx1ZShldmVudC5rZXkgPT0gJ0Fycm93VXAnID8gMSA6IC0xLCBoYXNTaGlmdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdodWUnOlxuICAgICAgICAgICAgdGhpcy5udWRnZUNvbG9ySHVlKGV2ZW50LmtleSA9PSAnQXJyb3dEb3duJyA/IDEgOiAtMSwgaGFzU2hpZnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnb3BhY2l0eSc6XG4gICAgICAgICAgICB0aGlzLm51ZGdlQ29sb3JPcGFjaXR5KGV2ZW50LmtleSA9PSAnQXJyb3dVcCcgPyAxIDogLTEsIGhhc1NoaWZ0KTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKGBVbmV4cGVjdGVkIGFyZC1jb2xvci1waWNrZXIuX2ZvY3VzZWRBcmVhIHN0YXRlIFwiJHt0aGlzLmZvY3VzZWRBcmVhfVwiYCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIG51ZGdlQ29sb3JTYXR1cmF0aW9uKGRpcmVjdGlvbjogMSB8IC0xLCBoYXNTaGlmdD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcbiAgICBsZXQgZGlmZiA9IChkaXJlY3Rpb24gKiAxMDApIC8gMjU1O1xuICAgIGxldCBuZXdWYWw6IG51bWJlcjtcbiAgICBpZiAoaGFzU2hpZnQpIHtcbiAgICAgIGRpZmYgPSAoZGlmZiAqIDI1NSkgLyAxMDtcbiAgICAgIG5ld1ZhbCA9IHYuc2F0dXJhdGlvbnYoKSArIGRpZmY7XG4gICAgICBuZXdWYWwgPSByb3VuZFRvTXVsdGlwbGUobmV3VmFsLCBNYXRoLmFicyhkaWZmKSk7IC8vcm91bmQgdG8gdGVuc1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdWYWwgPSB2LnNhdHVyYXRpb252KCkgKyBkaWZmO1xuICAgIH1cbiAgICBjb25zdCBuZXdWYWxDbGFtcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBuZXdWYWwpKTtcbiAgICB0aGlzLnZhbHVlID0gQ29sb3Iodikuc2F0dXJhdGlvbnYobmV3VmFsQ2xhbXBlZCk7XG4gIH1cbiAgbnVkZ2VDb2xvclZhbHVlKGRpcmVjdGlvbjogMSB8IC0xLCBoYXNTaGlmdD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcbiAgICBsZXQgZGlmZiA9IChkaXJlY3Rpb24gKiAxMDApIC8gMjU1O1xuICAgIGxldCBuZXdWYWw6IG51bWJlcjtcbiAgICBpZiAoaGFzU2hpZnQpIHtcbiAgICAgIGRpZmYgPSAoZGlmZiAqIDI1NSkgLyAxMDtcbiAgICAgIG5ld1ZhbCA9IHYudmFsdWUoKSArIGRpZmY7XG4gICAgICBuZXdWYWwgPSByb3VuZFRvTXVsdGlwbGUobmV3VmFsLCBNYXRoLmFicyhkaWZmKSk7IC8vcm91bmQgdG8gdGVuc1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdWYWwgPSB2LnZhbHVlKCkgKyBkaWZmO1xuICAgIH1cbiAgICBjb25zdCBuZXdWYWxDbGFtcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBuZXdWYWwpKTtcbiAgICB0aGlzLnZhbHVlID0gQ29sb3IodikudmFsdWUobmV3VmFsQ2xhbXBlZCk7XG4gIH1cbiAgbnVkZ2VDb2xvckh1ZShkaXJlY3Rpb246IDEgfCAtMSwgaGFzU2hpZnQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XG4gICAgbGV0IGRpZmYgPSBkaXJlY3Rpb24gYXMgbnVtYmVyLFxuICAgICAgbmV3VmFsOiBudW1iZXI7XG4gICAgaWYgKGhhc1NoaWZ0KSB7XG4gICAgICBkaWZmID0gZGlyZWN0aW9uICogMzA7XG4gICAgICBuZXdWYWwgPSB2Lmh1ZSgpICsgZGlmZjtcbiAgICAgIG5ld1ZhbCA9IHJvdW5kVG9NdWx0aXBsZShuZXdWYWwsIE1hdGguYWJzKGRpZmYpKTsgLy9yb3VuZCB0byB0ZW5zXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbCA9IHYuaHVlKCkgKyBkaWZmO1xuICAgIH1cbiAgICBjb25zdCBuZXdWYWxDbGFtcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMzU5Ljk5LCBuZXdWYWwpKTtcbiAgICBjb25zb2xlLmxvZyhuZXdWYWxDbGFtcGVkKTtcbiAgICB0aGlzLnZhbHVlID0gQ29sb3IodikuaHVlKG5ld1ZhbENsYW1wZWQpO1xuICB9XG4gIG51ZGdlQ29sb3JPcGFjaXR5KGRpcmVjdGlvbjogMSB8IC0xLCBoYXNTaGlmdD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcbiAgICBsZXQgZGlmZiA9IGRpcmVjdGlvbiAqIDAuMDE7XG4gICAgbGV0IG5ld1ZhbDogbnVtYmVyO1xuICAgIGlmIChoYXNTaGlmdCkge1xuICAgICAgZGlmZiA9IGRpZmYgKiAxMDtcbiAgICAgIG5ld1ZhbCA9IHYuYWxwaGEoKSArIGRpZmY7XG4gICAgICBuZXdWYWwgPSByb3VuZFRvUHJlY2lzaW9uKG5ld1ZhbCwgMSk7IC8vcm91bmQgdG8gb25lIHBsYWNlXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbCA9IHYuYWxwaGEoKSArIGRpZmY7XG4gICAgfVxuICAgIGNvbnN0IG5ld1ZhbENsYW1wZWQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBuZXdWYWwpKTtcbiAgICB0aGlzLnZhbHVlID0gQ29sb3IodikuYWxwaGEobmV3VmFsQ2xhbXBlZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyXCIgW25nQ2xhc3NdPVwibmdDbGFzc2VzXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWNsaWNrLWFyZWFzXCJcclxuICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAnLS1hcmQtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlJzogY3VycmVudFNoYWRlTWFwQ29sb3IsXHJcbiAgICAgICAgICAgICctLWFyZC1jb2xvci1waWNrZXItY3VycmVudC1jb2xvcic6IGN1cnJlbnRPcGFjaXR5TWFwQ29sb3JcclxuICAgICAgICB9XCJcclxuICAgID5cclxuICAgICAgICA8ZGl2ICNzaGFkZU1hcFxyXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItc2hhZGUtbWFwXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJmb2N1c2VkQXJlYSA9ICdzaGFkZSdcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cImZvY3VzZWRBcmVhID0gbnVsbFwiXHJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25TaGFkZUFyZWFNb3VzZURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvblNoYWRlQXJlYU1vdXNlRG93bigkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXNoYWRlLWluZGljYXRvci1jb250YWluZXJcIiBbc3R5bGVdPVwiZ2V0U2hhZGVJbmRpY2F0b3JQb3NpdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTaGFkZUluZGljYXRvclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXNoYWRlLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNoYWRlSW5kaWNhdG9yVGVtcGxhdGUgfHwgc2hhZGVJbmRpY2F0b3JUZW1wbGF0ZUNoaWxkIHx8IGRlZmF1bHRTaGFkZUluZGljYXRvclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SW5kaWNhdG9yQ29udGV4dCgpXCJcclxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICNodWVNYXBcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWh1ZS1tYXBcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzZWRBcmVhID0gJ2h1ZSdcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cImZvY3VzZWRBcmVhID0gbnVsbFwiXHJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25IdWVBcmVhTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAocG9pbnRlcmRvd24pPVwib25IdWVBcmVhTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaHVlLWluZGljYXRvci1jb250YWluZXJcIiBbc3R5bGVdPVwiZ2V0SHVlSW5kaWNhdG9yUG9zaXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SHVlSW5kaWNhdG9yVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaHVlLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImh1ZUluZGljYXRvclRlbXBsYXRlIHx8IGh1ZUluZGljYXRvclRlbXBsYXRlQ2hpbGQgfHwgZGVmYXVsdEh1ZUluZGljYXRvclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SW5kaWNhdG9yQ29udGV4dCgpXCJcclxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICNvcGFjaXR5TWFwXHJcbiAgICAgICAgICAgICpuZ0lmPVwid2l0aE9wYWNpdHlcIlxyXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItb3BhY2l0eS1tYXBcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzZWRBcmVhID0gJ29wYWNpdHknXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJmb2N1c2VkQXJlYSA9IG51bGxcIlxyXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uT3BhY2l0eUFyZWFNb3VzZURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbk9wYWNpdHlBcmVhTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItb3BhY2l0eS1pbmRpY2F0b3ItY29udGFpbmVyXCIgW3N0eWxlXT1cImdldE9wYWNpdHlJbmRpY2F0b3JQb3NpdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItb3BhY2l0eS1pbmRpY2F0b3JcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGUgfHwgb3BhY2l0eUluZGljYXRvclRlbXBsYXRlQ2hpbGQgfHwgZGVmYXVsdE9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEluZGljYXRvckNvbnRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWlucHV0LXBhbmVsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaW5wdXRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWlucHV0LXR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxhcmQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGFjdFxyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJpbnB1dFR5cGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY3VycmVudElucHV0VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ3VycmVudElucHV0VHlwZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2FyZC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNvbG9yLXBpY2tlci1yZWZlcmVuY2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb2xvclJlZmVyZW5jZVRlbXBsYXRlIGxldC1jb2wgbGV0LXJlZmNvbD1cInJlZmVyZW5jZUNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItcmVmZXJlbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXJlZmVyZW5jZS1yZWZlcmVuY2VcIiBbc3R5bGVdPVwieyBiYWNrZ3JvdW5kOiByZWZjb2wucmdiKCkudG9TdHJpbmcoKSB9XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXJlZmVyZW5jZS1jdXJyZW50XCIgW3N0eWxlXT1cInsgYmFja2dyb3VuZDogY29sLnJnYigpLnRvU3RyaW5nKCkgfVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JSZWZlcmVuY2VUZW1wbGF0ZSB8fCBjb2xvclJlZmVyZW5jZVRlbXBsYXRlQ2hpbGQgfHwgZGVmYXVsdENvbG9yUmVmZXJlbmNlVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDb2xvclJlZmVyZW5jZUNvbnRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWlucHV0cy1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdhcmQtbW9kZS1oZXgnOiBjdXJyZW50SW5wdXRUeXBlID09ICdIRVgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdhcmQtbW9kZS10cmlwbGUnOiBjdXJyZW50SW5wdXRUeXBlICE9ICdIRVgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdhcmQtbW9kZS1vcGFjaXR5Jzogd2l0aE9wYWNpdHlcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXJyZW50SW5wdXRUeXBlID09ICdIRVgnID8gaGV4SW5wdXQgOiB0cmlwbGVJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2hleElucHV0PlxyXG4gICAgPGFyZC1oZXgtaW5wdXRcclxuICAgICAgICBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaGV4LWlucHV0XCJcclxuICAgICAgICBtYXhEaWdpdHM9XCI2XCJcclxuICAgICAgICBbdmFsdWVdPVwiaGV4SW5wdXRWYWx1ZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uSGV4SW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9hcmQtaGV4LWlucHV0PlxyXG4gICAgPGFyZC1udW1iZXItaW5wdXRcclxuICAgICAgICAqbmdJZj1cIndpdGhPcGFjaXR5XCJcclxuICAgICAgICBhbGxvd1F1aWNrQ2hhbmdlPVwiZmFsc2VcIlxyXG4gICAgICAgIFttYXhdPVwidHJpcGxlSW5wdXREYXRhNC5tYXhcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0cmlwbGVJbnB1dERhdGE0LnZhbHVlXCJcclxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25UcmlwbGVJbnB1dENoYW5nZSgkZXZlbnQsIDQpXCJcclxuICAgID48L2FyZC1udW1iZXItaW5wdXQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RyaXBsZUlucHV0PiAgICBcclxuICAgIDxhcmQtbnVtYmVyLWlucHV0XHJcbiAgICAgICAgYWxsb3dRdWlja0NoYW5nZT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4XT1cInRyaXBsZUlucHV0RGF0YTEubWF4XCJcclxuICAgICAgICBbdmFsdWVdPVwidHJpcGxlSW5wdXREYXRhMS52YWx1ZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVHJpcGxlSW5wdXRDaGFuZ2UoJGV2ZW50LCAxKVwiXHJcbiAgICA+PC9hcmQtbnVtYmVyLWlucHV0PlxyXG4gICAgPGFyZC1udW1iZXItaW5wdXRcclxuICAgICAgICBhbGxvd1F1aWNrQ2hhbmdlPVwiZmFsc2VcIlxyXG4gICAgICAgIFttYXhdPVwidHJpcGxlSW5wdXREYXRhMi5tYXhcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0cmlwbGVJbnB1dERhdGEyLnZhbHVlXCJcclxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25UcmlwbGVJbnB1dENoYW5nZSgkZXZlbnQsIDIpXCJcclxuICAgID48L2FyZC1udW1iZXItaW5wdXQ+XHJcbiAgICA8YXJkLW51bWJlci1pbnB1dFxyXG4gICAgICAgIGFsbG93UXVpY2tDaGFuZ2U9XCJmYWxzZVwiXHJcbiAgICAgICAgW21heF09XCJ0cmlwbGVJbnB1dERhdGEzLm1heFwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRyaXBsZUlucHV0RGF0YTMudmFsdWVcIlxyXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblRyaXBsZUlucHV0Q2hhbmdlKCRldmVudCwgMylcIlxyXG4gICAgPjwvYXJkLW51bWJlci1pbnB1dD5cclxuICAgIDxhcmQtbnVtYmVyLWlucHV0XHJcbiAgICAgICAgKm5nSWY9XCJ3aXRoT3BhY2l0eVwiXHJcbiAgICAgICAgYWxsb3dRdWlja0NoYW5nZT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4XT1cInRyaXBsZUlucHV0RGF0YTQubWF4XCJcclxuICAgICAgICBbdmFsdWVdPVwidHJpcGxlSW5wdXREYXRhNC52YWx1ZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVHJpcGxlSW5wdXRDaGFuZ2UoJGV2ZW50LCA0KVwiXHJcbiAgICA+PC9hcmQtbnVtYmVyLWlucHV0PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
484
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29sb3IvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbG9yL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUNMLDZDQUE2QyxFQUM3QywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQy9DLDZDQUE2QyxHQUM5QyxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBaUUsa0JBQWtCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBRXhKLE1BQU0sa0JBQWtCLEdBQUcsaUNBQWlDLENBQUM7QUFDN0QsTUFBTSx1QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQztBQWNsRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEscUJBQXFCO0lBUHJFOztRQVFVLGlCQUFZ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Q0FBQyxRQUFRLENBQUM7O3NCQUMvQyxZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1NckMsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUlOLDJCQUEyQjtzQkFIMUIsWUFBWTt1QkFBQyw2Q0FBNkMsRUFBRTt3QkFDM0QsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCO2dCQUtELHlCQUF5QjtzQkFIeEIsWUFBWTt1QkFBQywyQ0FBMkMsRUFBRTt3QkFDekQsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCO2dCQUtELDZCQUE2QjtzQkFINUIsWUFBWTt1QkFBQywrQ0FBK0MsRUFBRTt3QkFDN0QsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCO2dCQUtELDJCQUEyQjtzQkFIMUIsWUFBWTt1QkFBQyw2Q0FBNkMsRUFBRTt3QkFDM0QsSUFBSSxFQUFFLFdBQVc7cUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgZ2V0RXZlbnRSZWxhdGl2ZVBvcyB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0ICogYXMgQ29sb3IgZnJvbSAnY29sb3InO1xyXG5pbXBvcnQgeyByb3VuZCwgcm91bmRUb011bHRpcGxlLCByb3VuZFRvUHJlY2lzaW9uIH0gZnJvbSAnbW9yZS1yb3VuZGluZyc7XHJcbmltcG9ydCB7IF9OZ01vZGVsQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL19pbnRlcm5hbC9uZ21vZGVsLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vY29sb3ItcGlja2VyLmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dCwgQ29sb3JQaWNrZXJJbmRpY2F0b3JDb250ZXh0LCBDb2xvclBpY2tlclZhcmlhbnQsIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlIH0gZnJvbSAnLi9jb2xvci1waWNrZXIudHlwZXMnO1xyXG5cclxuY29uc3QgdmFsaWRIZXhDb2xvclJlZ2V4ID0gL14jWzAtOWEtZl17M30oPzpbMC05YS1mXXszfSk/JC9pO1xyXG5jb25zdCB2YWxpZEhleEFscGhhQ29sb3JSZWdleCA9IC9eI1swLTlhLWZdezR9KD86WzAtOWEtZl17NH0pPyQvaTtcclxuXHJcbnR5cGUgVHJpcGxlSW5wdXRPYmplY3QgPSB7XHJcbiAgdmFsdWU6IG51bWJlcjtcclxuICBtYXg6IG51bWJlcjtcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWNvbG9yLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIF93aXRoT3BhY2l0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHdpdGhPcGFjaXR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dpdGhPcGFjaXR5O1xyXG4gIH1cclxuICBzZXQgd2l0aE9wYWNpdHkodjogYW55KSB7XHJcbiAgICB0aGlzLl93aXRoT3BhY2l0eSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuXHJcbiAgICBpZiAodGhpcy5mb2N1c2VkQXJlYSA9PSAnb3BhY2l0eScpIHRoaXMuZm9jdXNlZEFyZWEgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVmZXJlbmNlQ29sb3I6IENvbG9yID0gQ29sb3IoJ3RyYW5zcGFyZW50Jyk7XHJcbiAgcHJpdmF0ZSBfd2FzUmVmZXJlbmNlQ29sb3JTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHNldCByZWZlcmVuY2VDb2xvcih2OiBhbnkpIHtcclxuICAgIHRoaXMuX3JlZmVyZW5jZUNvbG9yID0gQ29sb3Iodik7XHJcbiAgICB0aGlzLl93YXNSZWZlcmVuY2VDb2xvclNldCA9IHRydWU7XHJcbiAgfVxyXG4gIGdldCByZWZlcmVuY2VDb2xvcigpOiBDb2xvciB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVmZXJlbmNlQ29sb3I7XHJcbiAgfVxyXG5cclxuICAvLyEgYXBwZWFyYW5jZVxyXG4gIEBJbnB1dCgpIHdyYXBwZXJDbGFzc2VzOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgdmFyaWFudDogQ29sb3JQaWNrZXJWYXJpYW50ID0gQ29sb3JQaWNrZXJWYXJpYW50LlJvdW5kZWQ7XHJcblxyXG4gIHByaXZhdGUgX3ZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7IC8vVE9ETyBpbXBsZW1lbnQgaW4gQ1NTXHJcbiAgQElucHV0KClcclxuICBnZXQgdmVydGljYWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmVydGljYWw7XHJcbiAgfVxyXG4gIHNldCB2ZXJ0aWNhbCh2OiBhbnkpIHtcclxuICAgIHRoaXMuX3ZlcnRpY2FsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5nQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFt0aGlzLndyYXBwZXJDbGFzc2VzLCBgYXJkLXZhcmlhbnQtJHt0aGlzLnZhcmlhbnR9YCwgdGhpcy52ZXJ0aWNhbCA/ICdhcmQtdmVydGljYWwnIDogJyddLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIC8vISB2YWx1ZS1yZWxhdGVkXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IENvbG9yID0gQ29sb3IoJ3JlZCcpO1xyXG4gIHByaXZhdGUgX2V4YWN0SHVlOiBudW1iZXIgPSAwO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHY6IGFueSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHYpO1xyXG4gIH1cclxuICBnZXQgdmFsdWUoKTogQ29sb3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY29sb3JIdWUodjogYW55KSB7XHJcbiAgICBjb25zdCBodWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAwKTtcclxuICAgIHRoaXMudmFsdWUuaHVlKGh1ZSk7XHJcbiAgfVxyXG4gIGdldCBjb2xvckh1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWUuaHVlKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBjb2xvclNhdHVyYXRpb24odjogYW55KSB7XHJcbiAgICBjb25zdCBzYXR1cmF0aW9uID0gY29lcmNlTnVtYmVyUHJvcGVydHkodiwgMTAwKTtcclxuICAgIHRoaXMudmFsdWUuc2F0dXJhdGlvbmwoc2F0dXJhdGlvbik7XHJcbiAgfVxyXG4gIGdldCBjb2xvclNhdHVyYXRpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlLnNhdHVyYXRpb25sKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBjb2xvclZhbHVlKHY6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCAxMDApO1xyXG4gICAgdGhpcy52YWx1ZS52YWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBjb2xvclZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZS52YWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgY29sb3JPcGFjaXR5KHY6IGFueSkge1xyXG4gICAgY29uc3Qgb3BhY2l0eSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIDEpO1xyXG4gICAgdGhpcy52YWx1ZS5hbHBoYShvcGFjaXR5KTtcclxuICB9XHJcbiAgZ2V0IGNvbG9yT3BhY2l0eSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWUuYWxwaGEoKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sb3I+KCk7XHJcbiAgQE91dHB1dCgpIGNvbG9ySHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIGNvbG9yU2F0dXJhdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBjb2xvclZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIGNvbG9yT3BhY2l0eUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICB3cml0ZVZhbHVlKHY6IGFueSkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBDb2xvcih2KTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50U2hhZGVNYXBDb2xvcigpO1xyXG4gICAgdGhpcy5fdXBkYXRlQ3VycmVudE9wYWNpdHlNYXBDb2xvcigpO1xyXG4gICAgdGhpcy5fdXBkYXRlSGV4SW5wdXRWYWx1ZSgpO1xyXG4gICAgdGhpcy5fdXBkYXRlVHJpcGxlSW5wdXRWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3dhc1JlZmVyZW5jZUNvbG9yU2V0KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fd2FzUmVmZXJlbmNlQ29sb3JTZXQgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWZlcmVuY2VDb2xvciA9IENvbG9yKHRoaXMudmFsdWUpO1xyXG5cclxuICAgIHRoaXMuX3VwZGF0ZUhleElucHV0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8vISBjcmVhdGluZyBuZXcgdmFsdWUgZnJvbSBpbnRlcmFjdGlvbnNcclxuICBAVmlld0NoaWxkKCdzaGFkZU1hcCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxyXG4gIHNoYWRlTWFwRWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdodWVNYXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuICBodWVNYXBFbCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ29wYWNpdHlNYXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcclxuICBvcGFjaXR5TWFwRWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgZm9jdXNlZEFyZWE6ICdzaGFkZScgfCAnaHVlJyB8ICdvcGFjaXR5JyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBvblNoYWRlQXJlYU1vdXNlRG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5faXNNb3VzZURvd24gPSB0cnVlO1xyXG4gICAgdGhpcy5fdXBkYXRlU2hhZGVGcm9tRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxuICBvbkh1ZUFyZWFNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzTW91c2VEb3duID0gdHJ1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZUh1ZUZyb21FdmVudChldmVudCk7XHJcbiAgfVxyXG4gIG9uT3BhY2l0eUFyZWFNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzTW91c2VEb3duID0gdHJ1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZU9wYWNpdHlGcm9tRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNNb3VzZURvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnKVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoZW5kJylcclxuICBvbkRvY3VtZW50TW91c2VVcCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2lzTW91c2VEb3duID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVybW92ZScsIFsnJGV2ZW50J10pXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2htb3ZlJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50TW91c2Vtb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvY3VzZWRBcmVhIHx8ICF0aGlzLl9pc01vdXNlRG93bikgcmV0dXJuO1xyXG5cclxuICAgIGlmICghKGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCkpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9jdXNlZEFyZWEgPT0gJ3NoYWRlJykge1xyXG4gICAgICB0aGlzLl91cGRhdGVTaGFkZUZyb21FdmVudChldmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvY3VzZWRBcmVhID09ICdodWUnKSB7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZUh1ZUZyb21FdmVudChldmVudCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3VwZGF0ZU9wYWNpdHlGcm9tRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2hhZGVGcm9tRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGxlZnQsIHJpZ2h0LCB0b3AsIGJvdHRvbSB9ID0gZ2V0RXZlbnRSZWxhdGl2ZVBvcyhldmVudCwgdGhpcy5zaGFkZU1hcEVsKTtcclxuXHJcbiAgICBjb25zdCBzaGFkZU1hcFdpZHRoID0gbGVmdCArIHJpZ2h0O1xyXG4gICAgY29uc3QgbmV3U2F0dXJhdGlvblJhdyA9IChsZWZ0IC8gc2hhZGVNYXBXaWR0aCkgKiAxMDA7XHJcbiAgICBjb25zdCBuZXdTYXR1cmF0aW9uID0gcm91bmQoTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBuZXdTYXR1cmF0aW9uUmF3KSkpO1xyXG5cclxuICAgIGNvbnN0IHNoYWRlTWFwSGVpZ2h0ID0gdG9wICsgYm90dG9tO1xyXG4gICAgY29uc3QgbmV3VmFsdWVSYXcgPSAoYm90dG9tIC8gc2hhZGVNYXBIZWlnaHQpICogMTAwO1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSByb3VuZChNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIG5ld1ZhbHVlUmF3KSkpO1xyXG5cclxuICAgIGNvbnN0IG9sZFNhdHVyYXRpb24gPSB0aGlzLnZhbHVlLnNhdHVyYXRpb252KCk7XHJcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMudmFsdWUudmFsdWUoKTtcclxuXHJcbiAgICBpZiAob2xkU2F0dXJhdGlvbiA9PSBuZXdTYXR1cmF0aW9uICYmIG9sZFZhbHVlID09IG5ld1ZhbHVlKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IENvbG9yKHRoaXMudmFsdWUpLnNhdHVyYXRpb252KG5ld1NhdHVyYXRpb24pLnZhbHVlKG5ld1ZhbHVlKTtcclxuXHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50T3BhY2l0eU1hcENvbG9yKCk7XHJcbiAgICAvL2VtaXQgc3BlY2lmaWMgZXZlbnRzXHJcbiAgICBpZiAob2xkU2F0dXJhdGlvbiAhPSB0aGlzLnZhbHVlLnNhdHVyYXRpb252KCkpIHRoaXMuY29sb3JTYXR1cmF0aW9uQ2hhbmdlLm5leHQodGhpcy52YWx1ZS5zYXR1cmF0aW9udigpKTtcclxuICAgIGlmIChvbGRWYWx1ZSAhPSB0aGlzLnZhbHVlLnZhbHVlKCkpIHRoaXMuY29sb3JWYWx1ZUNoYW5nZS5uZXh0KHRoaXMudmFsdWUudmFsdWUoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3VwZGF0ZUh1ZUZyb21FdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgdG9wLCBib3R0b20gfSA9IGdldEV2ZW50UmVsYXRpdmVQb3MoZXZlbnQsIHRoaXMuaHVlTWFwRWwpO1xyXG5cclxuICAgIGNvbnN0IGh1ZU1hcEhlaWdodCA9IHRvcCArIGJvdHRvbTtcclxuICAgIGNvbnN0IG5ld0h1ZVJhdyA9ICh0b3AgLyBodWVNYXBIZWlnaHQpICogMzYwO1xyXG4gICAgY29uc3QgbmV3SHVlID0gcm91bmQoTWF0aC5tYXgoMCwgTWF0aC5taW4oMzYwLCBuZXdIdWVSYXcpKSk7XHJcbiAgICBjb25zdCBuZXdIdWVFeGFjdCA9IG5ld0h1ZSA9PSAzNjAgPyAzNTkuOTkgOiBuZXdIdWU7XHJcblxyXG4gICAgaWYgKHRoaXMudmFsdWUuaHVlKCkgPT0gbmV3SHVlRXhhY3QpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnZhbHVlID0gQ29sb3IodGhpcy52YWx1ZSkuaHVlKG5ld0h1ZUV4YWN0KTtcclxuXHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcbiAgICB0aGlzLmNvbG9ySHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZS5odWUoKSk7XHJcbiAgICB0aGlzLl91cGRhdGVDdXJyZW50U2hhZGVNYXBDb2xvcigpO1xyXG4gICAgdGhpcy5fdXBkYXRlQ3VycmVudE9wYWNpdHlNYXBDb2xvcigpO1xyXG4gIH1cclxuICBwcml2YXRlIF91cGRhdGVPcGFjaXR5RnJvbUV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLndpdGhPcGFjaXR5KSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgeyB0b3AsIGJvdHRvbSB9ID0gZ2V0RXZlbnRSZWxhdGl2ZVBvcyhldmVudCwgdGhpcy5vcGFjaXR5TWFwRWwpO1xyXG5cclxuICAgIGNvbnN0IGh1ZU1hcEhlaWdodCA9IHRvcCArIGJvdHRvbTtcclxuICAgIGNvbnN0IG5ld09wYWNpdHlSYXcgPSBib3R0b20gLyBodWVNYXBIZWlnaHQ7XHJcbiAgICBjb25zdCBuZXdPcGFjaXR5ID0gcm91bmRUb1ByZWNpc2lvbihNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBuZXdPcGFjaXR5UmF3KSksIDIpO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlLmFscGhhKCkgPT0gbmV3T3BhY2l0eSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSBDb2xvcih0aGlzLnZhbHVlKS5hbHBoYShuZXdPcGFjaXR5KTtcclxuXHJcbiAgICB0aGlzLl9lbWl0Q2hhbmdlKCk7XHJcbiAgICB0aGlzLmNvbG9yT3BhY2l0eUNoYW5nZS5uZXh0KHRoaXMudmFsdWUuYWxwaGEoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEgZGlzcGxheWluZyB0aGUgbWFwcyBjb3JyZWN0bHlcclxuICBjdXJyZW50U2hhZGVNYXBDb2xvcjogQ29sb3IgPSB0aGlzLnZhbHVlO1xyXG4gIHByaXZhdGUgX3VwZGF0ZUN1cnJlbnRTaGFkZU1hcENvbG9yKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50U2hhZGVNYXBDb2xvciA9IENvbG9yLmhzdih0aGlzLnZhbHVlLmh1ZSgpLCAxMDAsIDEwMCk7XHJcbiAgfVxyXG4gIGN1cnJlbnRPcGFjaXR5TWFwQ29sb3I6IENvbG9yID0gdGhpcy52YWx1ZTtcclxuICBwcml2YXRlIF91cGRhdGVDdXJyZW50T3BhY2l0eU1hcENvbG9yKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLndpdGhPcGFjaXR5KSByZXR1cm47XHJcbiAgICB0aGlzLmN1cnJlbnRPcGFjaXR5TWFwQ29sb3IgPSBDb2xvci5oc3YodGhpcy52YWx1ZS5odWUoKSwgdGhpcy52YWx1ZS5zYXR1cmF0aW9udigpLCB0aGlzLnZhbHVlLnZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2hhZGVJbmRpY2F0b3JQb3NpdGlvbigpOiB7ICctLXRvcCc6IHN0cmluZzsgJy0tbGVmdCc6IHN0cmluZyB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICctLXRvcCc6IDEwMCAtIHRoaXMudmFsdWUudmFsdWUoKSArICclJyxcclxuICAgICAgJy0tbGVmdCc6IHRoaXMudmFsdWUuc2F0dXJhdGlvbnYoKSArICclJyxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdldEh1ZUluZGljYXRvclBvc2l0aW9uKCk6IHsgJy0tdG9wJzogc3RyaW5nIH0ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJy0tdG9wJzogdGhpcy52YWx1ZS5odWUoKSAvIDMuNiArICclJyxcclxuICAgIH07XHJcbiAgfVxyXG4gIGdldE9wYWNpdHlJbmRpY2F0b3JQb3NpdGlvbigpOiB7ICctLXRvcCc6IHN0cmluZyB9IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICctLXRvcCc6IDEwMCAtIHRoaXMudmFsdWUuYWxwaGEoKSAqIDEwMCArICclJyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyEgaW5wdXRzIHNlY3Rpb25cclxuICBpbnB1dFR5cGVzOiBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZVtdID0gT2JqZWN0LnZhbHVlcyhfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZSk7XHJcbiAgY3VycmVudElucHV0VHlwZTogX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGUgPSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IRVg7XHJcblxyXG4gIG9uQ3VycmVudElucHV0VHlwZUNoYW5nZSh2YWx1ZTogX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGVbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50SW5wdXRUeXBlID0gdmFsdWVbMF07XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudElucHV0VHlwZSAhPSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IRVgpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlVHJpcGxlSW5wdXRWYWx1ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhleElucHV0VmFsdWU6IHN0cmluZyA9IHRoaXMudmFsdWUuaGV4KCk7XHJcbiAgcHJpdmF0ZSBfdXBkYXRlSGV4SW5wdXRWYWx1ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRJbnB1dFR5cGUgIT0gX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGUuSEVYKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgSEVYID0gdGhpcy52YWx1ZTtcclxuICAgIHRoaXMuaGV4SW5wdXRWYWx1ZSA9IEhFWC5oZXgoKS5yZXBsYWNlKCcjJywgJycpO1xyXG4gICAgdGhpcy50cmlwbGVJbnB1dERhdGE0LnZhbHVlID0gSEVYLmFscGhhKCkgKiAxMDA7XHJcbiAgfVxyXG5cclxuICB0cmlwbGVJbnB1dERhdGExOiBUcmlwbGVJbnB1dE9iamVjdCA9IHtcclxuICAgIHZhbHVlOiAwLFxyXG4gICAgbWF4OiAwIC8qIHRlbXBvcmFyeSB2YWx1ZSAqLyxcclxuICB9O1xyXG4gIHRyaXBsZUlucHV0RGF0YTI6IFRyaXBsZUlucHV0T2JqZWN0ID0ge1xyXG4gICAgdmFsdWU6IDAsXHJcbiAgICBtYXg6IDAgLyogdGVtcG9yYXJ5IHZhbHVlICovLFxyXG4gIH07XHJcbiAgdHJpcGxlSW5wdXREYXRhMzogVHJpcGxlSW5wdXRPYmplY3QgPSB7XHJcbiAgICB2YWx1ZTogMCxcclxuICAgIG1heDogMCAvKiB0ZW1wb3JhcnkgdmFsdWUgKi8sXHJcbiAgfTtcclxuICB0cmlwbGVJbnB1dERhdGE0OiBUcmlwbGVJbnB1dE9iamVjdCA9IHsgdmFsdWU6IDAsIG1heDogMTAwIH07XHJcbiAgcHJpdmF0ZSBfdXBkYXRlVHJpcGxlSW5wdXRWYWx1ZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50SW5wdXRUeXBlID09IF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlLkhFWCkgcmV0dXJuO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50SW5wdXRUeXBlKSB7XHJcbiAgICAgIGNhc2UgX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGUuUkdCOlxyXG4gICAgICAgIGNvbnN0IFJHQiA9IHRoaXMudmFsdWUucmdiKCk7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGExLnZhbHVlID0gUkdCLnJlZCgpO1xyXG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMS5tYXggPSAyNTU7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLnZhbHVlID0gUkdCLmdyZWVuKCk7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLm1heCA9IDI1NTtcclxuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTMudmFsdWUgPSBSR0IuYmx1ZSgpO1xyXG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMy5tYXggPSAyNTU7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGE0LnZhbHVlID0gUkdCLmFscGhhKCkgKiAxMDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgX0NvbG9yUGlja2VySW5wdXRzU2VjdGlvblR5cGUuSFNMOlxyXG4gICAgICAgIGNvbnN0IEhTTCA9IHRoaXMudmFsdWUuaHNsKCk7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGExLnZhbHVlID0gSFNMLmh1ZSgpO1xyXG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMS5tYXggPSAzNjA7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLnZhbHVlID0gSFNMLnNhdHVyYXRpb25sKCk7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEyLm1heCA9IDEwMDtcclxuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTMudmFsdWUgPSBIU0wubGlnaHRuZXNzKCk7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGEzLm1heCA9IDEwMDtcclxuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTQudmFsdWUgPSBIU0wuYWxwaGEoKSAqIDEwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZS5IU1Y6XHJcbiAgICAgICAgY29uc3QgSFNWID0gdGhpcy52YWx1ZS5oc3YoKTtcclxuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTEudmFsdWUgPSBIU1YuaHVlKCk7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGExLm1heCA9IDM2MDtcclxuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTIudmFsdWUgPSBIU1Yuc2F0dXJhdGlvbnYoKTtcclxuICAgICAgICB0aGlzLnRyaXBsZUlucHV0RGF0YTIubWF4ID0gMTAwO1xyXG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMy52YWx1ZSA9IEhTVi52YWx1ZSgpO1xyXG4gICAgICAgIHRoaXMudHJpcGxlSW5wdXREYXRhMy5tYXggPSAxMDA7XHJcbiAgICAgICAgdGhpcy50cmlwbGVJbnB1dERhdGE0LnZhbHVlID0gSFNWLmFscGhhKCkgKiAxMDA7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25IZXhJbnB1dENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy53aXRoT3BhY2l0eSkge1xyXG4gICAgICBpZiAoIXZhbHVlLm1hdGNoKHZhbGlkSGV4QWxwaGFDb2xvclJlZ2V4KSkgcmV0dXJuO1xyXG4gICAgfSBlbHNlIGlmICghdmFsdWUubWF0Y2godmFsaWRIZXhDb2xvclJlZ2V4KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uVHJpcGxlSW5wdXRDaGFuZ2UodmFsdWU6IG51bWJlciB8IG51bGwsIGluZGV4OiBudW1iZXIpOiB2b2lkIHt9XHJcblxyXG4gIC8vISBldmVudHNcclxuICBwcm90ZWN0ZWQgX2VtaXRDaGFuZ2UoKSB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcclxuICAgIHRoaXMuX29uQ2hhbmdlUmVnaXN0ZXJlZD8uKHYpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5uZXh0KHYpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHRlbXBsYXRlIGN1c3RvbWl6YXRpb25cclxuICBASW5wdXQoKSBzaGFkZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBodWVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgb3BhY2l0eUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBjb2xvclJlZmVyZW5jZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSwge1xyXG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXHJcbiAgfSlcclxuICBzaGFkZUluZGljYXRvclRlbXBsYXRlQ2hpbGQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSwge1xyXG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXHJcbiAgfSlcclxuICBodWVJbmRpY2F0b3JUZW1wbGF0ZUNoaWxkPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEFyZENvbG9yUGlja2VyT3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLCB7XHJcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcclxuICB9KVxyXG4gIG9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZUNoaWxkPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSwge1xyXG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXHJcbiAgfSlcclxuICBjb2xvclJlZmVyZW5jZVRlbXBsYXRlQ2hpbGQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBnZXRJbmRpY2F0b3JDb250ZXh0KCk6IENvbG9yUGlja2VySW5kaWNhdG9yQ29udGV4dCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAkaW1wbGljaXQ6IHRoaXMudmFsdWUsXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRDb2xvclJlZmVyZW5jZUNvbnRleHQoKTogQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZUNvbnRleHQge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29sb3I6IHRoaXMudmFsdWUsXHJcbiAgICAgICRpbXBsaWNpdDogdGhpcy52YWx1ZSxcclxuICAgICAgcmVmZXJlbmNlQ29sb3I6IHRoaXMucmVmZXJlbmNlQ29sb3IsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8hIGtleWJvYXJkIGNvbnRyb2xzXHJcbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBoYXNTaGlmdCA9IGV2ZW50LnNoaWZ0S2V5O1xyXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZEFyZWEgIT0gJ3NoYWRlJykgcmV0dXJuO1xyXG4gICAgICAgIHRoaXMubnVkZ2VDb2xvclNhdHVyYXRpb24oZXZlbnQua2V5ID09ICdBcnJvd1JpZ2h0JyA/IDEgOiAtMSwgaGFzU2hpZnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmZvY3VzZWRBcmVhKSB7XHJcbiAgICAgICAgICBjYXNlICdzaGFkZSc6XHJcbiAgICAgICAgICAgIHRoaXMubnVkZ2VDb2xvclZhbHVlKGV2ZW50LmtleSA9PSAnQXJyb3dVcCcgPyAxIDogLTEsIGhhc1NoaWZ0KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdodWUnOlxyXG4gICAgICAgICAgICB0aGlzLm51ZGdlQ29sb3JIdWUoZXZlbnQua2V5ID09ICdBcnJvd0Rvd24nID8gMSA6IC0xLCBoYXNTaGlmdCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnb3BhY2l0eSc6XHJcbiAgICAgICAgICAgIHRoaXMubnVkZ2VDb2xvck9wYWNpdHkoZXZlbnQua2V5ID09ICdBcnJvd1VwJyA/IDEgOiAtMSwgaGFzU2hpZnQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKG5ldyBFcnJvcihgVW5leHBlY3RlZCBhcmQtY29sb3ItcGlja2VyLl9mb2N1c2VkQXJlYSBzdGF0ZSBcIiR7dGhpcy5mb2N1c2VkQXJlYX1cImApKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBudWRnZUNvbG9yU2F0dXJhdGlvbihkaXJlY3Rpb246IDEgfCAtMSwgaGFzU2hpZnQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcclxuICAgIGxldCBkaWZmID0gKGRpcmVjdGlvbiAqIDEwMCkgLyAyNTU7XHJcbiAgICBsZXQgbmV3VmFsOiBudW1iZXI7XHJcbiAgICBpZiAoaGFzU2hpZnQpIHtcclxuICAgICAgZGlmZiA9IChkaWZmICogMjU1KSAvIDEwO1xyXG4gICAgICBuZXdWYWwgPSB2LnNhdHVyYXRpb252KCkgKyBkaWZmO1xyXG4gICAgICBuZXdWYWwgPSByb3VuZFRvTXVsdGlwbGUobmV3VmFsLCBNYXRoLmFicyhkaWZmKSk7IC8vcm91bmQgdG8gdGVuc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3VmFsID0gdi5zYXR1cmF0aW9udigpICsgZGlmZjtcclxuICAgIH1cclxuICAgIGNvbnN0IG5ld1ZhbENsYW1wZWQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxMDAsIG5ld1ZhbCkpO1xyXG4gICAgdGhpcy52YWx1ZSA9IENvbG9yKHYpLnNhdHVyYXRpb252KG5ld1ZhbENsYW1wZWQpO1xyXG4gIH1cclxuICBudWRnZUNvbG9yVmFsdWUoZGlyZWN0aW9uOiAxIHwgLTEsIGhhc1NoaWZ0PzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XHJcbiAgICBsZXQgZGlmZiA9IChkaXJlY3Rpb24gKiAxMDApIC8gMjU1O1xyXG4gICAgbGV0IG5ld1ZhbDogbnVtYmVyO1xyXG4gICAgaWYgKGhhc1NoaWZ0KSB7XHJcbiAgICAgIGRpZmYgPSAoZGlmZiAqIDI1NSkgLyAxMDtcclxuICAgICAgbmV3VmFsID0gdi52YWx1ZSgpICsgZGlmZjtcclxuICAgICAgbmV3VmFsID0gcm91bmRUb011bHRpcGxlKG5ld1ZhbCwgTWF0aC5hYnMoZGlmZikpOyAvL3JvdW5kIHRvIHRlbnNcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld1ZhbCA9IHYudmFsdWUoKSArIGRpZmY7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdWYWxDbGFtcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMTAwLCBuZXdWYWwpKTtcclxuICAgIHRoaXMudmFsdWUgPSBDb2xvcih2KS52YWx1ZShuZXdWYWxDbGFtcGVkKTtcclxuICB9XHJcbiAgbnVkZ2VDb2xvckh1ZShkaXJlY3Rpb246IDEgfCAtMSwgaGFzU2hpZnQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcclxuICAgIGxldCBkaWZmID0gZGlyZWN0aW9uIGFzIG51bWJlcixcclxuICAgICAgbmV3VmFsOiBudW1iZXI7XHJcbiAgICBpZiAoaGFzU2hpZnQpIHtcclxuICAgICAgZGlmZiA9IGRpcmVjdGlvbiAqIDMwO1xyXG4gICAgICBuZXdWYWwgPSB2Lmh1ZSgpICsgZGlmZjtcclxuICAgICAgbmV3VmFsID0gcm91bmRUb011bHRpcGxlKG5ld1ZhbCwgTWF0aC5hYnMoZGlmZikpOyAvL3JvdW5kIHRvIHRlbnNcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld1ZhbCA9IHYuaHVlKCkgKyBkaWZmO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3VmFsQ2xhbXBlZCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDM1OS45OSwgbmV3VmFsKSk7XHJcbiAgICBjb25zb2xlLmxvZyhuZXdWYWxDbGFtcGVkKTtcclxuICAgIHRoaXMudmFsdWUgPSBDb2xvcih2KS5odWUobmV3VmFsQ2xhbXBlZCk7XHJcbiAgfVxyXG4gIG51ZGdlQ29sb3JPcGFjaXR5KGRpcmVjdGlvbjogMSB8IC0xLCBoYXNTaGlmdD86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlO1xyXG4gICAgbGV0IGRpZmYgPSBkaXJlY3Rpb24gKiAwLjAxO1xyXG4gICAgbGV0IG5ld1ZhbDogbnVtYmVyO1xyXG4gICAgaWYgKGhhc1NoaWZ0KSB7XHJcbiAgICAgIGRpZmYgPSBkaWZmICogMTA7XHJcbiAgICAgIG5ld1ZhbCA9IHYuYWxwaGEoKSArIGRpZmY7XHJcbiAgICAgIG5ld1ZhbCA9IHJvdW5kVG9QcmVjaXNpb24obmV3VmFsLCAxKTsgLy9yb3VuZCB0byBvbmUgcGxhY2VcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld1ZhbCA9IHYuYWxwaGEoKSArIGRpZmY7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdWYWxDbGFtcGVkID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgbmV3VmFsKSk7XHJcbiAgICB0aGlzLnZhbHVlID0gQ29sb3IodikuYWxwaGEobmV3VmFsQ2xhbXBlZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyXCIgW25nQ2xhc3NdPVwibmdDbGFzc2VzXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWNsaWNrLWFyZWFzXCJcclxuICAgICAgICBbc3R5bGVdPVwie1xyXG4gICAgICAgICAgICAnLS1hcmQtY29sb3ItcGlja2VyLWN1cnJlbnQtaHVlJzogY3VycmVudFNoYWRlTWFwQ29sb3IsXHJcbiAgICAgICAgICAgICctLWFyZC1jb2xvci1waWNrZXItY3VycmVudC1jb2xvcic6IGN1cnJlbnRPcGFjaXR5TWFwQ29sb3JcclxuICAgICAgICB9XCJcclxuICAgID5cclxuICAgICAgICA8ZGl2ICNzaGFkZU1hcFxyXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItc2hhZGUtbWFwXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChmb2N1cyk9XCJmb2N1c2VkQXJlYSA9ICdzaGFkZSdcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cImZvY3VzZWRBcmVhID0gbnVsbFwiXHJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25TaGFkZUFyZWFNb3VzZURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvblNoYWRlQXJlYU1vdXNlRG93bigkZXZlbnQpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXNoYWRlLWluZGljYXRvci1jb250YWluZXJcIiBbc3R5bGVdPVwiZ2V0U2hhZGVJbmRpY2F0b3JQb3NpdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTaGFkZUluZGljYXRvclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXNoYWRlLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNoYWRlSW5kaWNhdG9yVGVtcGxhdGUgfHwgc2hhZGVJbmRpY2F0b3JUZW1wbGF0ZUNoaWxkIHx8IGRlZmF1bHRTaGFkZUluZGljYXRvclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SW5kaWNhdG9yQ29udGV4dCgpXCJcclxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICNodWVNYXBcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWh1ZS1tYXBcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzZWRBcmVhID0gJ2h1ZSdcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChibHVyKT1cImZvY3VzZWRBcmVhID0gbnVsbFwiXHJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25IdWVBcmVhTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAocG9pbnRlcmRvd24pPVwib25IdWVBcmVhTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaHVlLWluZGljYXRvci1jb250YWluZXJcIiBbc3R5bGVdPVwiZ2V0SHVlSW5kaWNhdG9yUG9zaXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SHVlSW5kaWNhdG9yVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaHVlLWluZGljYXRvclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImh1ZUluZGljYXRvclRlbXBsYXRlIHx8IGh1ZUluZGljYXRvclRlbXBsYXRlQ2hpbGQgfHwgZGVmYXVsdEh1ZUluZGljYXRvclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZ2V0SW5kaWNhdG9yQ29udGV4dCgpXCJcclxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICNvcGFjaXR5TWFwXHJcbiAgICAgICAgICAgICpuZ0lmPVwid2l0aE9wYWNpdHlcIlxyXG4gICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItb3BhY2l0eS1tYXBcIlxyXG4gICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzZWRBcmVhID0gJ29wYWNpdHknXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAoYmx1cik9XCJmb2N1c2VkQXJlYSA9IG51bGxcIlxyXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uT3BhY2l0eUFyZWFNb3VzZURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbk9wYWNpdHlBcmVhTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItb3BhY2l0eS1pbmRpY2F0b3ItY29udGFpbmVyXCIgW3N0eWxlXT1cImdldE9wYWNpdHlJbmRpY2F0b3JQb3NpdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItb3BhY2l0eS1pbmRpY2F0b3JcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGUgfHwgb3BhY2l0eUluZGljYXRvclRlbXBsYXRlQ2hpbGQgfHwgZGVmYXVsdE9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImdldEluZGljYXRvckNvbnRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWlucHV0LXBhbmVsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaW5wdXRzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWlucHV0LXR5cGVcIj5cclxuICAgICAgICAgICAgICAgIDxhcmQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcGFjdFxyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyYWJsZT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJpbnB1dFR5cGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY3VycmVudElucHV0VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ3VycmVudElucHV0VHlwZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2FyZC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNvbG9yLXBpY2tlci1yZWZlcmVuY2UtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb2xvclJlZmVyZW5jZVRlbXBsYXRlIGxldC1jb2wgbGV0LXJlZmNvbD1cInJlZmVyZW5jZUNvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItcmVmZXJlbmNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXJlZmVyZW5jZS1yZWZlcmVuY2VcIiBbc3R5bGVdPVwieyBiYWNrZ3JvdW5kOiByZWZjb2wucmdiKCkudG9TdHJpbmcoKSB9XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLXJlZmVyZW5jZS1jdXJyZW50XCIgW3N0eWxlXT1cInsgYmFja2dyb3VuZDogY29sLnJnYigpLnRvU3RyaW5nKCkgfVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JSZWZlcmVuY2VUZW1wbGF0ZSB8fCBjb2xvclJlZmVyZW5jZVRlbXBsYXRlQ2hpbGQgfHwgZGVmYXVsdENvbG9yUmVmZXJlbmNlVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJnZXRDb2xvclJlZmVyZW5jZUNvbnRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY29sb3ItcGlja2VyLWlucHV0cy1jb250YWluZXJcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdhcmQtbW9kZS1oZXgnOiBjdXJyZW50SW5wdXRUeXBlID09ICdIRVgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdhcmQtbW9kZS10cmlwbGUnOiBjdXJyZW50SW5wdXRUeXBlICE9ICdIRVgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdhcmQtbW9kZS1vcGFjaXR5Jzogd2l0aE9wYWNpdHlcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXJyZW50SW5wdXRUeXBlID09ICdIRVgnID8gaGV4SW5wdXQgOiB0cmlwbGVJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2hleElucHV0PlxyXG4gICAgPGFyZC1oZXgtaW5wdXRcclxuICAgICAgICBjbGFzcz1cImFyZC1jb2xvci1waWNrZXItaGV4LWlucHV0XCJcclxuICAgICAgICBtYXhEaWdpdHM9XCI2XCJcclxuICAgICAgICBbdmFsdWVdPVwiaGV4SW5wdXRWYWx1ZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uSGV4SW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC9hcmQtaGV4LWlucHV0PlxyXG4gICAgPGFyZC1udW1iZXItaW5wdXRcclxuICAgICAgICAqbmdJZj1cIndpdGhPcGFjaXR5XCJcclxuICAgICAgICBhbGxvd1F1aWNrQ2hhbmdlPVwiZmFsc2VcIlxyXG4gICAgICAgIFttYXhdPVwidHJpcGxlSW5wdXREYXRhNC5tYXhcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0cmlwbGVJbnB1dERhdGE0LnZhbHVlXCJcclxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25UcmlwbGVJbnB1dENoYW5nZSgkZXZlbnQsIDQpXCJcclxuICAgID48L2FyZC1udW1iZXItaW5wdXQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RyaXBsZUlucHV0PiAgICBcclxuICAgIDxhcmQtbnVtYmVyLWlucHV0XHJcbiAgICAgICAgYWxsb3dRdWlja0NoYW5nZT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4XT1cInRyaXBsZUlucHV0RGF0YTEubWF4XCJcclxuICAgICAgICBbdmFsdWVdPVwidHJpcGxlSW5wdXREYXRhMS52YWx1ZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVHJpcGxlSW5wdXRDaGFuZ2UoJGV2ZW50LCAxKVwiXHJcbiAgICA+PC9hcmQtbnVtYmVyLWlucHV0PlxyXG4gICAgPGFyZC1udW1iZXItaW5wdXRcclxuICAgICAgICBhbGxvd1F1aWNrQ2hhbmdlPVwiZmFsc2VcIlxyXG4gICAgICAgIFttYXhdPVwidHJpcGxlSW5wdXREYXRhMi5tYXhcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0cmlwbGVJbnB1dERhdGEyLnZhbHVlXCJcclxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25UcmlwbGVJbnB1dENoYW5nZSgkZXZlbnQsIDIpXCJcclxuICAgID48L2FyZC1udW1iZXItaW5wdXQ+XHJcbiAgICA8YXJkLW51bWJlci1pbnB1dFxyXG4gICAgICAgIGFsbG93UXVpY2tDaGFuZ2U9XCJmYWxzZVwiXHJcbiAgICAgICAgW21heF09XCJ0cmlwbGVJbnB1dERhdGEzLm1heFwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRyaXBsZUlucHV0RGF0YTMudmFsdWVcIlxyXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblRyaXBsZUlucHV0Q2hhbmdlKCRldmVudCwgMylcIlxyXG4gICAgPjwvYXJkLW51bWJlci1pbnB1dD5cclxuICAgIDxhcmQtbnVtYmVyLWlucHV0XHJcbiAgICAgICAgKm5nSWY9XCJ3aXRoT3BhY2l0eVwiXHJcbiAgICAgICAgYWxsb3dRdWlja0NoYW5nZT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4XT1cInRyaXBsZUlucHV0RGF0YTQubWF4XCJcclxuICAgICAgICBbdmFsdWVdPVwidHJpcGxlSW5wdXREYXRhNC52YWx1ZVwiXHJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVHJpcGxlSW5wdXRDaGFuZ2UoJGV2ZW50LCA0KVwiXHJcbiAgICA+PC9hcmQtbnVtYmVyLWlucHV0PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -4,10 +4,10 @@ export class ArdColorPickerShadeIndicatorTemplateDirective {
4
4
  constructor(template) {
5
5
  this.template = template;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerShadeIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-shade-indicator-tmp]", ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: ArdColorPickerShadeIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-shade-indicator-tmp]", ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerShadeIndicatorTemplateDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: 'ard-color-picker > ng-template[ard-shade-indicator-tmp]',
@@ -17,10 +17,10 @@ export class ArdColorPickerHueIndicatorTemplateDirective {
17
17
  constructor(template) {
18
18
  this.template = template;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerHueIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-hue-indicator-tmp]", ngImport: i0 }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: ArdColorPickerHueIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-hue-indicator-tmp]", ngImport: i0 }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerHueIndicatorTemplateDirective, decorators: [{
24
24
  type: Directive,
25
25
  args: [{
26
26
  selector: 'ard-color-picker > ng-template[ard-hue-indicator-tmp]',
@@ -30,10 +30,10 @@ export class ArdColorPickerOpacityIndicatorTemplateDirective {
30
30
  constructor(template) {
31
31
  this.template = template;
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerOpacityIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-opacity-indicator-tmp]", ngImport: i0 }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: ArdColorPickerOpacityIndicatorTemplateDirective, selector: "ard-color-picker > ng-template[ard-opacity-indicator-tmp]", ngImport: i0 }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerOpacityIndicatorTemplateDirective, decorators: [{
37
37
  type: Directive,
38
38
  args: [{
39
39
  selector: 'ard-color-picker > ng-template[ard-opacity-indicator-tmp]',
@@ -43,13 +43,13 @@ export class ArdColorPickerColorReferenceTemplateDirective {
43
43
  constructor(template) {
44
44
  this.template = template;
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.7", type: ArdColorPickerColorReferenceTemplateDirective, selector: "ard-color-picker > ng-template[ard-color-reference-tmp]", ngImport: i0 }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: ArdColorPickerColorReferenceTemplateDirective, selector: "ard-color-picker > ng-template[ard-color-reference-tmp]", ngImport: i0 }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdColorPickerColorReferenceTemplateDirective, decorators: [{
50
50
  type: Directive,
51
51
  args: [{
52
52
  selector: 'ard-color-picker > ng-template[ard-color-reference-tmp]',
53
53
  }]
54
54
  }], ctorParameters: () => [{ type: i0.TemplateRef }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbG9yL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQU12RCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQWtEO1FBQWxELGFBQVEsR0FBUixRQUFRLENBQTBDO0lBQUcsQ0FBQzs4R0FEOUQsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEU7O0FBUUQsTUFBTSxPQUFPLDJDQUEyQztJQUN0RCxZQUFtQixRQUFrRDtRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUEwQztJQUFHLENBQUM7OEdBRDlELDJDQUEyQztrR0FBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQUh2RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1REFBdUQ7aUJBQ2xFOztBQVFELE1BQU0sT0FBTywrQ0FBK0M7SUFDMUQsWUFBbUIsUUFBa0Q7UUFBbEQsYUFBUSxHQUFSLFFBQVEsQ0FBMEM7SUFBRyxDQUFDOzhHQUQ5RCwrQ0FBK0M7a0dBQS9DLCtDQUErQzs7MkZBQS9DLCtDQUErQztrQkFIM0QsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkRBQTJEO2lCQUN0RTs7QUFRRCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQXVEO1FBQXZELGFBQVEsR0FBUixRQUFRLENBQStDO0lBQUcsQ0FBQzs4R0FEbkUsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dCwgQ29sb3JQaWNrZXJJbmRpY2F0b3JDb250ZXh0IH0gZnJvbSAnLi9jb2xvci1waWNrZXIudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLXNoYWRlLWluZGljYXRvci10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWh1ZS1pbmRpY2F0b3ItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENvbG9yUGlja2VySW5kaWNhdG9yQ29udGV4dD4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1waWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtb3BhY2l0eS1pbmRpY2F0b3ItdG1wXScsXG59KVxuZXhwb3J0IGNsYXNzIEFyZENvbG9yUGlja2VyT3BhY2l0eUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhcmQtY29sb3ItcGlja2VyID4gbmctdGVtcGxhdGVbYXJkLWNvbG9yLXJlZmVyZW5jZS10bXBdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlQ29udGV4dD4pIHt9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbG9yL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQU12RCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQWtEO1FBQWxELGFBQVEsR0FBUixRQUFRLENBQTBDO0lBQUcsQ0FBQzs4R0FEOUQsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEU7O0FBUUQsTUFBTSxPQUFPLDJDQUEyQztJQUN0RCxZQUFtQixRQUFrRDtRQUFsRCxhQUFRLEdBQVIsUUFBUSxDQUEwQztJQUFHLENBQUM7OEdBRDlELDJDQUEyQztrR0FBM0MsMkNBQTJDOzsyRkFBM0MsMkNBQTJDO2tCQUh2RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1REFBdUQ7aUJBQ2xFOztBQVFELE1BQU0sT0FBTywrQ0FBK0M7SUFDMUQsWUFBbUIsUUFBa0Q7UUFBbEQsYUFBUSxHQUFSLFFBQVEsQ0FBMEM7SUFBRyxDQUFDOzhHQUQ5RCwrQ0FBK0M7a0dBQS9DLCtDQUErQzs7MkZBQS9DLCtDQUErQztrQkFIM0QsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkRBQTJEO2lCQUN0RTs7QUFRRCxNQUFNLE9BQU8sNkNBQTZDO0lBQ3hELFlBQW1CLFFBQXVEO1FBQXZELGFBQVEsR0FBUixRQUFRLENBQStDO0lBQUcsQ0FBQzs4R0FEbkUsNkNBQTZDO2tHQUE3Qyw2Q0FBNkM7OzJGQUE3Qyw2Q0FBNkM7a0JBSHpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlEQUF5RDtpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VDb250ZXh0LCBDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQgfSBmcm9tICcuL2NvbG9yLXBpY2tlci50eXBlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1waWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtc2hhZGUtaW5kaWNhdG9yLXRtcF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENvbG9yUGlja2VySW5kaWNhdG9yQ29udGV4dD4pIHt9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnYXJkLWNvbG9yLXBpY2tlciA+IG5nLXRlbXBsYXRlW2FyZC1odWUtaW5kaWNhdG9yLXRtcF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1waWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtb3BhY2l0eS1pbmRpY2F0b3ItdG1wXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxDb2xvclBpY2tlckluZGljYXRvckNvbnRleHQ+KSB7fVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ2FyZC1jb2xvci1waWNrZXIgPiBuZy10ZW1wbGF0ZVthcmQtY29sb3ItcmVmZXJlbmNlLXRtcF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VDb250ZXh0Pikge31cclxufVxyXG4iXX0=
@@ -8,8 +8,8 @@ import { ArdiumColorPickerComponent } from './color-picker.component';
8
8
  import { ArdColorPickerColorReferenceTemplateDirective, ArdColorPickerHueIndicatorTemplateDirective, ArdColorPickerOpacityIndicatorTemplateDirective, ArdColorPickerShadeIndicatorTemplateDirective, } from './color-picker.directives';
9
9
  import * as i0 from "@angular/core";
10
10
  export class ArdiumColorPickerModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, declarations: [ArdiumColorPickerComponent,
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumColorPickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: ArdiumColorPickerModule, declarations: [ArdiumColorPickerComponent,
13
13
  ArdColorPickerHueIndicatorTemplateDirective,
14
14
  ArdColorPickerShadeIndicatorTemplateDirective,
15
15
  ArdColorPickerColorReferenceTemplateDirective,
@@ -18,9 +18,9 @@ export class ArdiumColorPickerModule {
18
18
  ArdColorPickerShadeIndicatorTemplateDirective,
19
19
  ArdColorPickerColorReferenceTemplateDirective,
20
20
  ArdColorPickerOpacityIndicatorTemplateDirective] }); }
21
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule] }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumColorPickerModule, imports: [CommonModule, ArdiumSelectModule, ArdiumOptionModule, ArdiumNumberInputModule, ArdiumHexInputModule] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArdiumColorPickerModule, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ArdiumColorPickerModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  declarations: [
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
40
40
  ],
41
41
  }]
42
42
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29sb3IvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUNMLDZDQUE2QyxFQUM3QywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQy9DLDZDQUE2QyxHQUM5QyxNQUFNLDJCQUEyQixDQUFDOztBQW1CbkMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsaUJBZmhDLDBCQUEwQjtZQUMxQiwyQ0FBMkM7WUFDM0MsNkNBQTZDO1lBQzdDLDZDQUE2QztZQUM3QywrQ0FBK0MsYUFFdkMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixhQUUzRywwQkFBMEI7WUFDMUIsMkNBQTJDO1lBQzNDLDZDQUE2QztZQUM3Qyw2Q0FBNkM7WUFDN0MsK0NBQStDOytHQUd0Qyx1QkFBdUIsWUFUeEIsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQjs7MkZBU2xHLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsMkNBQTJDO3dCQUMzQyw2Q0FBNkM7d0JBQzdDLDZDQUE2Qzt3QkFDN0MsK0NBQStDO3FCQUNoRDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7b0JBQzlHLE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLDJDQUEyQzt3QkFDM0MsNkNBQTZDO3dCQUM3Qyw2Q0FBNkM7d0JBQzdDLCtDQUErQztxQkFDaEQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFyZGl1bUhleElucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL2hleC1pbnB1dC9oZXgtaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bU51bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bU9wdGlvbk1vZHVsZSB9IGZyb20gJy4uLy4uL29wdGlvbi9vcHRpb24ubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bVNlbGVjdE1vZHVsZSB9IGZyb20gJy4uLy4uL3NlbGVjdC9zZWxlY3QubW9kdWxlJztcbmltcG9ydCB7IEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9jb2xvci1waWNrZXIuZGlyZWN0aXZlcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZENvbG9yUGlja2VyQ29sb3JSZWZlcmVuY2VUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQXJkaXVtU2VsZWN0TW9kdWxlLCBBcmRpdW1PcHRpb25Nb2R1bGUsIEFyZGl1bU51bWJlcklucHV0TW9kdWxlLCBBcmRpdW1IZXhJbnB1dE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBBcmRpdW1Db2xvclBpY2tlckNvbXBvbmVudCxcbiAgICBBcmRDb2xvclBpY2tlckh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIEFyZENvbG9yUGlja2VyU2hhZGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBBcmRDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNvbG9yUGlja2VyTW9kdWxlIHt9XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29sb3IvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUNMLDZDQUE2QyxFQUM3QywyQ0FBMkMsRUFDM0MsK0NBQStDLEVBQy9DLDZDQUE2QyxHQUM5QyxNQUFNLDJCQUEyQixDQUFDOztBQW1CbkMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCOytHQUF2Qix1QkFBdUIsaUJBZmhDLDBCQUEwQjtZQUMxQiwyQ0FBMkM7WUFDM0MsNkNBQTZDO1lBQzdDLDZDQUE2QztZQUM3QywrQ0FBK0MsYUFFdkMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixhQUUzRywwQkFBMEI7WUFDMUIsMkNBQTJDO1lBQzNDLDZDQUE2QztZQUM3Qyw2Q0FBNkM7WUFDN0MsK0NBQStDOytHQUd0Qyx1QkFBdUIsWUFUeEIsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG9CQUFvQjs7MkZBU2xHLHVCQUF1QjtrQkFqQm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjt3QkFDMUIsMkNBQTJDO3dCQUMzQyw2Q0FBNkM7d0JBQzdDLDZDQUE2Qzt3QkFDN0MsK0NBQStDO3FCQUNoRDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7b0JBQzlHLE9BQU8sRUFBRTt3QkFDUCwwQkFBMEI7d0JBQzFCLDJDQUEyQzt3QkFDM0MsNkNBQTZDO3dCQUM3Qyw2Q0FBNkM7d0JBQzdDLCtDQUErQztxQkFDaEQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1IZXhJbnB1dE1vZHVsZSB9IGZyb20gJy4uLy4uL2lucHV0cy9oZXgtaW5wdXQvaGV4LWlucHV0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEFyZGl1bU51bWJlcklucHV0TW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5wdXRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQubW9kdWxlJztcclxuaW1wb3J0IHsgQXJkaXVtT3B0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vb3B0aW9uL29wdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBBcmRpdW1TZWxlY3RNb2R1bGUgfSBmcm9tICcuLi8uLi9zZWxlY3Qvc2VsZWN0Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEFyZGl1bUNvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBBcmRDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgQXJkQ29sb3JQaWNrZXJIdWVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDb2xvclBpY2tlclNoYWRlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnLi9jb2xvci1waWNrZXIuZGlyZWN0aXZlcyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQXJkaXVtQ29sb3JQaWNrZXJDb21wb25lbnQsXHJcbiAgICBBcmRDb2xvclBpY2tlckh1ZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ29sb3JQaWNrZXJTaGFkZUluZGljYXRvclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ29sb3JQaWNrZXJPcGFjaXR5SW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBcmRpdW1TZWxlY3RNb2R1bGUsIEFyZGl1bU9wdGlvbk1vZHVsZSwgQXJkaXVtTnVtYmVySW5wdXRNb2R1bGUsIEFyZGl1bUhleElucHV0TW9kdWxlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBcmRpdW1Db2xvclBpY2tlckNvbXBvbmVudCxcclxuICAgIEFyZENvbG9yUGlja2VySHVlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDb2xvclBpY2tlclNoYWRlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDb2xvclBpY2tlckNvbG9yUmVmZXJlbmNlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDb2xvclBpY2tlck9wYWNpdHlJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtQ29sb3JQaWNrZXJNb2R1bGUge31cclxuIl19
@@ -8,4 +8,4 @@ export const ColorPickerVariant = {
8
8
  Rounded: 'rounded',
9
9
  Sharp: 'sharp',
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb2xvci9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0NBQ0YsQ0FBQztBQUdYLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIENvbG9yIGZyb20gJ2NvbG9yJztcblxuZXhwb3J0IHR5cGUgQ29sb3JQaWNrZXJJbmRpY2F0b3JDb250ZXh0ID0ge1xuICAkaW1wbGljaXQ6IENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZUNvbnRleHQgPSB7XG4gIGNvbG9yOiBDb2xvcjtcbiAgJGltcGxpY2l0OiBDb2xvcjtcbiAgcmVmZXJlbmNlQ29sb3I6IENvbG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlID0ge1xuICBIRVg6ICdIRVgnLFxuICBSR0I6ICdSR0InLFxuICBIU0w6ICdIU0wnLFxuICBIU1Y6ICdIU1YnLFxufSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlID0gKHR5cGVvZiBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZSlba2V5b2YgdHlwZW9mIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlXTtcblxuZXhwb3J0IGNvbnN0IENvbG9yUGlja2VyVmFyaWFudCA9IHtcbiAgUm91bmRlZDogJ3JvdW5kZWQnLFxuICBTaGFycDogJ3NoYXJwJyxcbn0gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBDb2xvclBpY2tlclZhcmlhbnQgPSAodHlwZW9mIENvbG9yUGlja2VyVmFyaWFudClba2V5b2YgdHlwZW9mIENvbG9yUGlja2VyVmFyaWFudF07XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb2xvci9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0NBQ0YsQ0FBQztBQUdYLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIENvbG9yIGZyb20gJ2NvbG9yJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbG9yUGlja2VySW5kaWNhdG9yQ29udGV4dCA9IHtcclxuICAkaW1wbGljaXQ6IENvbG9yO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgQ29sb3JQaWNrZXJDb2xvclJlZmVyZW5jZUNvbnRleHQgPSB7XHJcbiAgY29sb3I6IENvbG9yO1xyXG4gICRpbXBsaWNpdDogQ29sb3I7XHJcbiAgcmVmZXJlbmNlQ29sb3I6IENvbG9yO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlID0ge1xyXG4gIEhFWDogJ0hFWCcsXHJcbiAgUkdCOiAnUkdCJyxcclxuICBIU0w6ICdIU0wnLFxyXG4gIEhTVjogJ0hTVicsXHJcbn0gYXMgY29uc3Q7XHJcbmV4cG9ydCB0eXBlIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlID0gKHR5cGVvZiBfQ29sb3JQaWNrZXJJbnB1dHNTZWN0aW9uVHlwZSlba2V5b2YgdHlwZW9mIF9Db2xvclBpY2tlcklucHV0c1NlY3Rpb25UeXBlXTtcclxuXHJcbmV4cG9ydCBjb25zdCBDb2xvclBpY2tlclZhcmlhbnQgPSB7XHJcbiAgUm91bmRlZDogJ3JvdW5kZWQnLFxyXG4gIFNoYXJwOiAnc2hhcnAnLFxyXG59IGFzIGNvbnN0O1xyXG5leHBvcnQgdHlwZSBDb2xvclBpY2tlclZhcmlhbnQgPSAodHlwZW9mIENvbG9yUGlja2VyVmFyaWFudClba2V5b2YgdHlwZW9mIENvbG9yUGlja2VyVmFyaWFudF07XHJcbiJdfQ==