@simpleangularcontrols/sac-bootstrap5 10.0.0-rc.26 → 10.0.0-rc.28

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/bundles/simpleangularcontrols-sac-bootstrap5.umd.js +223 -265
  2. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.js.map +1 -1
  3. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js +1 -1
  4. package/bundles/simpleangularcontrols-sac-bootstrap5.umd.min.js.map +1 -1
  5. package/controls/buttons/button.d.ts.map +1 -1
  6. package/controls/buttons/button.module.d.ts.map +1 -1
  7. package/controls/buttons/button.module.ngfactory.d.ts.map +1 -1
  8. package/controls/checkbox/checkbox.d.ts +1 -1
  9. package/controls/checkbox/checkbox.d.ts.map +1 -1
  10. package/controls/checkbox/checkbox.module.d.ts.map +1 -1
  11. package/controls/checkbox/checkbox.module.ngfactory.d.ts.map +1 -1
  12. package/controls/checkbox/radiobuttons.d.ts +1 -1
  13. package/controls/checkbox/radiobuttons.d.ts.map +1 -1
  14. package/controls/confirm/confirm.service.d.ts +1 -1
  15. package/controls/confirm/confirm.service.d.ts.map +1 -1
  16. package/controls/contextmenu/contextmenu.module.d.ts.map +1 -1
  17. package/controls/contextmenu/contextmenu.module.ngfactory.d.ts.map +1 -1
  18. package/controls/datetime/date.d.ts.map +1 -1
  19. package/controls/datetime/datetime.module.d.ts.map +1 -1
  20. package/controls/datetime/datetime.module.ngfactory.d.ts.map +1 -1
  21. package/controls/dialog/dialog.d.ts +4 -4
  22. package/controls/dialog/dialog.d.ts.map +1 -1
  23. package/controls/dialog/dialog.module.d.ts.map +1 -1
  24. package/controls/dialog/dialog.module.ngfactory.d.ts.map +1 -1
  25. package/controls/form/form.d.ts +4 -4
  26. package/controls/form/form.d.ts.map +1 -1
  27. package/controls/form/inheritform.directive.d.ts +11 -11
  28. package/controls/form/inheritform.directive.d.ts.map +1 -1
  29. package/controls/grid/grid.d.ts +4 -4
  30. package/controls/grid/grid.d.ts.map +1 -1
  31. package/controls/grid/grid.module.d.ts.map +1 -1
  32. package/controls/grid/grid.module.ngfactory.d.ts.map +1 -1
  33. package/controls/grid/gridbutton.d.ts +5 -2
  34. package/controls/grid/gridbutton.d.ts.map +1 -1
  35. package/controls/grid/gridcolumn.d.ts +1 -1
  36. package/controls/grid/gridcolumn.d.ts.map +1 -1
  37. package/controls/grid/gridcolumnaction.d.ts +1 -1
  38. package/controls/grid/gridcolumnaction.d.ts.map +1 -1
  39. package/controls/grid/gridimage.d.ts +0 -5
  40. package/controls/grid/gridimage.d.ts.map +1 -1
  41. package/controls/grid/paging.d.ts.map +1 -1
  42. package/controls/input/input.d.ts +1 -1
  43. package/controls/input/input.d.ts.map +1 -1
  44. package/controls/input/input.module.d.ts.map +1 -1
  45. package/controls/input/input.module.ngfactory.d.ts.map +1 -1
  46. package/controls/input/inputarea.d.ts +1 -1
  47. package/controls/input/inputarea.d.ts.map +1 -1
  48. package/controls/input/inputcurrency.d.ts +1 -1
  49. package/controls/input/inputcurrency.d.ts.map +1 -1
  50. package/controls/input/inputdecimal.d.ts +1 -1
  51. package/controls/input/inputdecimal.d.ts.map +1 -1
  52. package/controls/input/inputemail.d.ts +1 -1
  53. package/controls/input/inputemail.d.ts.map +1 -1
  54. package/controls/input/inputinteger.d.ts +1 -1
  55. package/controls/input/inputinteger.d.ts.map +1 -1
  56. package/controls/input/inputpassword.d.ts +1 -1
  57. package/controls/input/inputpassword.d.ts.map +1 -1
  58. package/controls/input/inputsearch.d.ts +1 -1
  59. package/controls/input/inputsearch.d.ts.map +1 -1
  60. package/controls/layout/tocontrolheight.pipe.d.ts.map +1 -1
  61. package/controls/layout/tocontrolwidthcss.pipe.d.ts.map +1 -1
  62. package/controls/layout/tolabelheight.pipe.d.ts.map +1 -1
  63. package/controls/layout/tolabelwidthcss.pipe.d.ts.map +1 -1
  64. package/controls/list/dropdown.d.ts +1 -13
  65. package/controls/list/dropdown.d.ts.map +1 -1
  66. package/controls/list/dropdown.module.d.ts.map +1 -1
  67. package/controls/list/dropdown.module.ngfactory.d.ts.map +1 -1
  68. package/controls/list/dropdownoption.directive.d.ts +15 -0
  69. package/controls/list/dropdownoption.directive.d.ts.map +1 -0
  70. package/controls/list/dropdownoption.directive.ngfactory.d.ts +2 -0
  71. package/controls/list/dropdownoption.directive.ngfactory.d.ts.map +1 -0
  72. package/controls/list/list.module.d.ts.map +1 -1
  73. package/controls/list/list.module.ngfactory.d.ts.map +1 -1
  74. package/controls/list/list.token.d.ts +4 -0
  75. package/controls/list/list.token.d.ts.map +1 -0
  76. package/controls/list/list.token.ngfactory.d.ts +2 -0
  77. package/controls/list/list.token.ngfactory.d.ts.map +1 -0
  78. package/controls/list/listbox.d.ts +2 -14
  79. package/controls/list/listbox.d.ts.map +1 -1
  80. package/controls/list/listboxoption.directive.d.ts +15 -0
  81. package/controls/list/listboxoption.directive.d.ts.map +1 -0
  82. package/controls/list/listboxoption.directive.ngfactory.d.ts +2 -0
  83. package/controls/list/listboxoption.directive.ngfactory.d.ts.map +1 -0
  84. package/controls/multilanguage/multilanguage.module.d.ts.map +1 -1
  85. package/controls/multilanguage/multilanguage.module.ngfactory.d.ts.map +1 -1
  86. package/controls/multilanguage/multilanguageinput.d.ts +1 -1
  87. package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
  88. package/controls/multilanguage/multilanguageinputarea.d.ts +1 -1
  89. package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
  90. package/controls/multilanguage/multilanguagemenu.d.ts.map +1 -1
  91. package/controls/multilanguage/multilanguagemenuanchor.d.ts.map +1 -1
  92. package/controls/multilanguage/multilanguagemenucontainer.d.ts.map +1 -1
  93. package/controls/static/staticlabel.d.ts +1 -1
  94. package/controls/static/staticlabel.d.ts.map +1 -1
  95. package/controls/static/staticlabel.module.d.ts.map +1 -1
  96. package/controls/static/staticlabel.module.ngfactory.d.ts.map +1 -1
  97. package/controls/tabs/tab.d.ts +1 -1
  98. package/controls/tabs/tab.d.ts.map +1 -1
  99. package/controls/tabs/tabs.module.d.ts.map +1 -1
  100. package/controls/tabs/tabs.module.ngfactory.d.ts.map +1 -1
  101. package/controls/tinymce/tinymce.module.d.ts.map +1 -1
  102. package/controls/tinymce/tinymce.module.ngfactory.d.ts.map +1 -1
  103. package/controls/tooltip/tooltip.d.ts.map +1 -1
  104. package/controls/tooltip/tooltip.module.d.ts.map +1 -1
  105. package/controls/tooltip/tooltip.module.ngfactory.d.ts.map +1 -1
  106. package/controls/treeview/treeview.module.d.ts.map +1 -1
  107. package/controls/treeview/treeview.module.ngfactory.d.ts.map +1 -1
  108. package/controls/upload/upload.d.ts +1 -1
  109. package/controls/upload/upload.d.ts.map +1 -1
  110. package/controls/upload/upload.module.d.ts.map +1 -1
  111. package/controls/upload/upload.module.ngfactory.d.ts.map +1 -1
  112. package/controls/validation/validationsummary.d.ts +1 -1
  113. package/controls/validation/validationsummary.d.ts.map +1 -1
  114. package/controls/validation/validationsummary.module.d.ts.map +1 -1
  115. package/controls/validation/validationsummary.module.ngfactory.d.ts.map +1 -1
  116. package/controls/wizard/wizard.d.ts +1 -1
  117. package/controls/wizard/wizard.d.ts.map +1 -1
  118. package/controls/wizard/wizard.module.d.ts.map +1 -1
  119. package/controls/wizard/wizard.module.ngfactory.d.ts.map +1 -1
  120. package/esm2015/controls/buttons/button.js +2 -2
  121. package/esm2015/controls/buttons/button.module.js +5 -6
  122. package/esm2015/controls/buttons/button.module.ngfactory.js +1 -1
  123. package/esm2015/controls/checkbox/checkbox.js +4 -4
  124. package/esm2015/controls/checkbox/checkbox.module.js +7 -18
  125. package/esm2015/controls/checkbox/checkbox.module.ngfactory.js +1 -1
  126. package/esm2015/controls/checkbox/radiobuttons.js +4 -4
  127. package/esm2015/controls/confirm/confirm.js +2 -2
  128. package/esm2015/controls/confirm/confirm.service.js +3 -3
  129. package/esm2015/controls/contextmenu/contextmenu.js +2 -2
  130. package/esm2015/controls/contextmenu/contextmenu.module.js +7 -6
  131. package/esm2015/controls/contextmenu/contextmenu.module.ngfactory.js +1 -1
  132. package/esm2015/controls/datetime/date.js +10 -10
  133. package/esm2015/controls/datetime/dateselector.js +2 -2
  134. package/esm2015/controls/datetime/datetime.js +2 -2
  135. package/esm2015/controls/datetime/datetime.module.js +8 -16
  136. package/esm2015/controls/datetime/datetime.module.ngfactory.js +1 -1
  137. package/esm2015/controls/datetime/time.js +2 -2
  138. package/esm2015/controls/dialog/dialog.js +14 -10
  139. package/esm2015/controls/dialog/dialog.module.js +6 -7
  140. package/esm2015/controls/dialog/dialog.module.ngfactory.js +1 -1
  141. package/esm2015/controls/form/form.js +4 -1
  142. package/esm2015/controls/form/form.module.js +3 -3
  143. package/esm2015/controls/form/inheritform.directive.js +20 -20
  144. package/esm2015/controls/grid/grid.js +4 -3
  145. package/esm2015/controls/grid/grid.module.js +21 -8
  146. package/esm2015/controls/grid/grid.module.ngfactory.js +1 -1
  147. package/esm2015/controls/grid/gridbutton.js +12 -25
  148. package/esm2015/controls/grid/gridcolumn.js +5 -4
  149. package/esm2015/controls/grid/gridcolumnaction.js +5 -4
  150. package/esm2015/controls/grid/gridimage.js +2 -16
  151. package/esm2015/controls/grid/paging.js +4 -3
  152. package/esm2015/controls/input/input.js +4 -4
  153. package/esm2015/controls/input/input.module.js +5 -8
  154. package/esm2015/controls/input/input.module.ngfactory.js +1 -1
  155. package/esm2015/controls/input/inputarea.js +4 -4
  156. package/esm2015/controls/input/inputcurrency.js +4 -4
  157. package/esm2015/controls/input/inputdecimal.js +4 -4
  158. package/esm2015/controls/input/inputemail.js +4 -4
  159. package/esm2015/controls/input/inputinteger.js +4 -4
  160. package/esm2015/controls/input/inputpassword.js +4 -4
  161. package/esm2015/controls/input/inputsearch.js +4 -4
  162. package/esm2015/controls/layout/formlayout.directive.js +1 -1
  163. package/esm2015/controls/layout/layout.module.js +3 -3
  164. package/esm2015/controls/layout/tocontrolheight.pipe.js +1 -1
  165. package/esm2015/controls/layout/tocontrolwidthcss.pipe.js +1 -1
  166. package/esm2015/controls/layout/tolabelheight.pipe.js +1 -1
  167. package/esm2015/controls/layout/tolabelwidthcss.pipe.js +1 -1
  168. package/esm2015/controls/list/dropdown.js +6 -29
  169. package/esm2015/controls/list/dropdown.module.js +7 -9
  170. package/esm2015/controls/list/dropdown.module.ngfactory.js +1 -1
  171. package/esm2015/controls/list/dropdownoption.directive.js +27 -0
  172. package/esm2015/controls/list/dropdownoption.directive.ngfactory.js +7 -0
  173. package/esm2015/controls/list/list.module.js +7 -9
  174. package/esm2015/controls/list/list.module.ngfactory.js +1 -1
  175. package/esm2015/controls/list/list.token.js +6 -0
  176. package/esm2015/controls/list/list.token.ngfactory.js +7 -0
  177. package/esm2015/controls/list/listbox.js +6 -29
  178. package/esm2015/controls/list/listboxoption.directive.js +27 -0
  179. package/esm2015/controls/list/listboxoption.directive.ngfactory.js +7 -0
  180. package/esm2015/controls/multilanguage/multilanguage.module.js +5 -8
  181. package/esm2015/controls/multilanguage/multilanguage.module.ngfactory.js +1 -1
  182. package/esm2015/controls/multilanguage/multilanguageinput.js +5 -5
  183. package/esm2015/controls/multilanguage/multilanguageinputarea.js +5 -5
  184. package/esm2015/controls/multilanguage/multilanguagemenu.js +3 -3
  185. package/esm2015/controls/multilanguage/multilanguagemenuanchor.js +1 -1
  186. package/esm2015/controls/multilanguage/multilanguagemenucontainer.js +1 -1
  187. package/esm2015/controls/multilanguage/multilanguagemenuitembutton.js +2 -2
  188. package/esm2015/controls/static/formcontainer.js +2 -2
  189. package/esm2015/controls/static/staticlabel.js +4 -4
  190. package/esm2015/controls/static/staticlabel.module.js +5 -8
  191. package/esm2015/controls/static/staticlabel.module.ngfactory.js +1 -1
  192. package/esm2015/controls/tabs/tab.js +5 -3
  193. package/esm2015/controls/tabs/tabitem.js +2 -2
  194. package/esm2015/controls/tabs/tabs.module.js +5 -4
  195. package/esm2015/controls/tabs/tabs.module.ngfactory.js +1 -1
  196. package/esm2015/controls/tinymce/tinymce.js +3 -3
  197. package/esm2015/controls/tinymce/tinymce.module.js +7 -5
  198. package/esm2015/controls/tinymce/tinymce.module.ngfactory.js +1 -1
  199. package/esm2015/controls/tooltip/tooltip.js +2 -2
  200. package/esm2015/controls/tooltip/tooltip.module.js +4 -3
  201. package/esm2015/controls/tooltip/tooltip.module.ngfactory.js +1 -1
  202. package/esm2015/controls/treeview/treeview.js +2 -2
  203. package/esm2015/controls/treeview/treeview.module.js +9 -2
  204. package/esm2015/controls/treeview/treeview.module.ngfactory.js +1 -1
  205. package/esm2015/controls/upload/dropzonemultiple.js +2 -2
  206. package/esm2015/controls/upload/dropzonesingle.js +2 -2
  207. package/esm2015/controls/upload/upload.js +4 -4
  208. package/esm2015/controls/upload/upload.module.js +7 -10
  209. package/esm2015/controls/upload/upload.module.ngfactory.js +1 -1
  210. package/esm2015/controls/upload/uploadmultiple.js +2 -2
  211. package/esm2015/controls/validation/validationsummary.js +3 -3
  212. package/esm2015/controls/validation/validationsummary.module.js +5 -6
  213. package/esm2015/controls/validation/validationsummary.module.ngfactory.js +1 -1
  214. package/esm2015/controls/wizard/wizard.js +7 -7
  215. package/esm2015/controls/wizard/wizard.module.js +5 -4
  216. package/esm2015/controls/wizard/wizard.module.ngfactory.js +1 -1
  217. package/esm2015/controls/wizard/wizarditem.js +1 -1
  218. package/esm2015/public-api.js +3 -1
  219. package/esm2015/simpleangularcontrols-sac-bootstrap5.js +6 -5
  220. package/fesm2015/simpleangularcontrols-sac-bootstrap5.js +209 -250
  221. package/fesm2015/simpleangularcontrols-sac-bootstrap5.js.map +1 -1
  222. package/package.json +2 -2
  223. package/public-api.d.ts +2 -0
  224. package/public-api.d.ts.map +1 -1
  225. package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.28.tgz +0 -0
  226. package/simpleangularcontrols-sac-bootstrap5.d.ts +5 -4
  227. package/simpleangularcontrols-sac-bootstrap5.d.ts.map +1 -1
  228. package/simpleangularcontrols-sac-bootstrap5.metadata.json +1 -1
  229. package/simpleangularcontrols-sac-bootstrap5-10.0.0-rc.26.tgz +0 -0
@@ -1,8 +1,8 @@
1
1
  import { SacFormLayoutDirective } from '../layout/formlayout.directive';
2
- import { Component, Directive, ElementRef, Host, Injector, Optional, Renderer2, forwardRef } from '@angular/core';
2
+ import { LISTBOX_TOKEN } from './list.token';
3
+ import { Component, Host, Injector, Optional, forwardRef } from '@angular/core';
3
4
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { SacListboxCommon, SacListboxOptionCommon } from '@simpleangularcontrols/sac-common';
5
- // #region Classes
5
+ import { SacListboxCommon } from '@simpleangularcontrols/sac-common';
6
6
  /**
7
7
  * Listbox Komponente
8
8
  */
@@ -20,9 +20,10 @@ export class SacListboxComponent extends SacListboxCommon {
20
20
  SacListboxComponent.decorators = [
21
21
  { type: Component, args: [{
22
22
  selector: 'sac-listbox',
23
- template: "<div\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\"\n ><span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <select\n multiple\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n class=\"form-select\"\n [class.form-select-sm]=\"componentHeight === ControlHeight.Small\"\n [class.form-select-lg]=\"componentHeight === ControlHeight.Large\"\n [size]=\"rowsize\"\n [ngClass]=\"{ 'is-invalid': invalid && (dirty || touched) }\"\n (blur)=\"onTouch()\"\n (change)=\"getSelectedItems($event.target)\"\n [disabled]=\"isdisabled\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupitems === ''\">\n <option\n *ngFor=\"let option of options\"\n [value]=\"option[optionvalue]\"\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\">\n {{ option[optionlabel] }}\n </option>\n </ng-container>\n <ng-container *ngIf=\"groupitems !== ''\">\n <optgroup\n *ngFor=\"let option of options\"\n [attr.label]=\"option[grouplabel]\">\n <option\n *ngFor=\"let item of option[groupitems]\"\n [value]=\"item[optionvalue]\"\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\">\n {{ item[optionlabel] }}\n </option>\n </optgroup>\n </ng-container>\n </select>\n <div\n class=\"invalid-feedback\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n",
23
+ template: "<div\n [attr.data-e2e-key]=\"name | testingattribute : e2eidentifier\"\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\"\n ><span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <select\n multiple\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n class=\"form-select\"\n [class.form-select-sm]=\"componentHeight === ControlHeight.Small\"\n [class.form-select-lg]=\"componentHeight === ControlHeight.Large\"\n [size]=\"rowsize\"\n [ngClass]=\"{ 'is-invalid': invalid && (dirty || touched) }\"\n (blur)=\"onTouch()\"\n (change)=\"getSelectedItems($event.target)\"\n [disabled]=\"isdisabled\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"groupitems === ''\">\n <option\n *ngFor=\"let option of options\"\n [value]=\"option[optionvalue]\"\n [disabled]=\"optionenabled !== '' && option[optionenabled] === false\"\n >{{ option[optionlabel] }}</option\n >\n </ng-container>\n <ng-container *ngIf=\"groupitems !== ''\">\n <optgroup\n *ngFor=\"let option of options\"\n [attr.label]=\"option[grouplabel]\">\n <option\n *ngFor=\"let item of option[groupitems]\"\n [value]=\"item[optionvalue]\"\n [disabled]=\"optionenabled !== '' && item[optionenabled] === false\"\n >{{ item[optionlabel] }}</option\n >\n </optgroup>\n </ng-container>\n </select>\n <div\n class=\"invalid-feedback\"\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\">\n {{ GetErrorMessage() | async }}\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n",
24
24
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
25
25
  providers: [
26
+ { provide: LISTBOX_TOKEN, useExisting: SacListboxComponent },
26
27
  {
27
28
  provide: NG_VALUE_ACCESSOR,
28
29
  multi: true,
@@ -40,28 +41,4 @@ SacListboxComponent.ctorParameters = () => [
40
41
  { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
41
42
  { type: Injector }
42
43
  ];
43
- /**
44
- * Option Item in Listbox
45
- */
46
- export class SacListboxOptionDirective extends SacListboxOptionCommon {
47
- // #region Constructors
48
- /**
49
- * Konstruktor
50
- * @param elementRef Referenz auf DOM Element
51
- * @param renderer Angular Rendering Engine
52
- * @param listbox Referenz auf Listbox Komponente
53
- */
54
- constructor(elementRef, renderer, listbox) {
55
- super(elementRef, renderer, listbox);
56
- }
57
- }
58
- SacListboxOptionDirective.decorators = [
59
- { type: Directive, args: [{ selector: '[sacOption],option' },] }
60
- ];
61
- SacListboxOptionDirective.ctorParameters = () => [
62
- { type: ElementRef },
63
- { type: Renderer2 },
64
- { type: SacListboxComponent, decorators: [{ type: Optional }, { type: Host }] }
65
- ];
66
- // #endregion Classes
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9saXN0L2xpc3Rib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdGLGtCQUFrQjtBQUVsQjs7R0FFRztBQWtCSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZ0JBQWdCO0lBQ3JELHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFBZ0MsVUFBa0MsRUFBRSxRQUFrQjtRQUNsRixLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OztZQTNCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLGlzSEFBNkI7Z0JBQzdCLCtGQUErRjtnQkFDL0YsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxtQkFBbUI7cUJBQ25DO29CQUNEO3dCQUNJLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3FCQUNyRDtpQkFDSjthQUNKOzs7WUExQlEsc0JBQXNCLHVCQW1DZCxJQUFJLFlBQUksUUFBUTtZQWxDZ0IsUUFBUTs7QUF5Q3pEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQUNqRSx1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUFZLFVBQXNCLEVBQUUsUUFBbUIsRUFBc0IsT0FBNEI7UUFDckcsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7O1lBWkosU0FBUyxTQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFOzs7WUE1Q2QsVUFBVTtZQUE0QixTQUFTO1lBc0RZLG1CQUFtQix1QkFBL0MsUUFBUSxZQUFJLElBQUk7O0FBTzlFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgUmVuZGVyZXIyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNhY0xpc3Rib3hDb21tb24sIFNhY0xpc3Rib3hPcHRpb25Db21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vLyAjcmVnaW9uIENsYXNzZXNcblxuLyoqXG4gKiBMaXN0Ym94IEtvbXBvbmVudGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYWMtbGlzdGJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3Rib3guaHRtbCcsXG4gICAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBTYWNMaXN0Ym94Q29tcG9uZW50LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNMaXN0Ym94Q29tcG9uZW50KSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNMaXN0Ym94Q29tcG9uZW50IGV4dGVuZHMgU2FjTGlzdGJveENvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IpO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG5cbi8qKlxuICogT3B0aW9uIEl0ZW0gaW4gTGlzdGJveFxuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc2FjT3B0aW9uXSxvcHRpb24nIH0pXG5leHBvcnQgY2xhc3MgU2FjTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSBleHRlbmRzIFNhY0xpc3Rib3hPcHRpb25Db21tb24ge1xuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBLb25zdHJ1a3RvclxuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW56IGF1ZiBET00gRWxlbWVudFxuICAgICAqIEBwYXJhbSByZW5kZXJlciBBbmd1bGFyIFJlbmRlcmluZyBFbmdpbmVcbiAgICAgKiBAcGFyYW0gbGlzdGJveCBSZWZlcmVueiBhdWYgTGlzdGJveCBLb21wb25lbnRlXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcmVuZGVyZXI6IFJlbmRlcmVyMiwgQE9wdGlvbmFsKCkgQEhvc3QoKSBsaXN0Ym94OiBTYWNMaXN0Ym94Q29tcG9uZW50KSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyLCBsaXN0Ym94KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuXG4vLyAjZW5kcmVnaW9uIENsYXNzZXNcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9saXN0L2xpc3Rib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFckU7O0dBRUc7QUFtQkgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQUNyRCx1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQWdDLFVBQWtDLEVBQUUsUUFBa0I7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7WUE1QkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2Qixzd0hBQTZCO2dCQUM3QiwrRkFBK0Y7Z0JBQy9GLFNBQVMsRUFBRTtvQkFDUCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO29CQUM1RDt3QkFDSSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsbUJBQW1CO3FCQUNuQztvQkFDRDt3QkFDSSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztxQkFDckQ7aUJBQ0o7YUFDSjs7O1lBMUJRLHNCQUFzQix1QkFtQ2QsSUFBSSxZQUFJLFFBQVE7WUFqQ1AsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTElTVEJPWF9UT0tFTiB9IGZyb20gJy4vbGlzdC50b2tlbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTYWNMaXN0Ym94Q29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuLyoqXG4gKiBMaXN0Ym94IEtvbXBvbmVudGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYWMtbGlzdGJveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3Rib3guaHRtbCcsXG4gICAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBMSVNUQk9YX1RPS0VOLCB1c2VFeGlzdGluZzogU2FjTGlzdGJveENvbXBvbmVudCB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNhY0xpc3Rib3hDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY0xpc3Rib3hDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhY0xpc3Rib3hDb21wb25lbnQgZXh0ZW5kcyBTYWNMaXN0Ym94Q29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXG4gICAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { LISTBOX_TOKEN } from './list.token';
2
+ import { Directive, ElementRef, Inject, Optional, Renderer2 } from '@angular/core';
3
+ import { SacListboxOptionCommon } from '@simpleangularcontrols/sac-common';
4
+ /**
5
+ * Option Item in Listbox
6
+ */
7
+ export class SacListboxOptionDirective extends SacListboxOptionCommon {
8
+ // #region Constructors
9
+ /**
10
+ * Konstruktor
11
+ * @param elementRef Referenz auf DOM Element
12
+ * @param renderer Angular Rendering Engine
13
+ * @param listbox Referenz auf Listbox Komponente
14
+ */
15
+ constructor(elementRef, renderer, listbox) {
16
+ super(elementRef, renderer, listbox);
17
+ }
18
+ }
19
+ SacListboxOptionDirective.decorators = [
20
+ { type: Directive, args: [{ selector: '[sacOption],option' },] }
21
+ ];
22
+ SacListboxOptionDirective.ctorParameters = () => [
23
+ { type: ElementRef },
24
+ { type: Renderer2 },
25
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [LISTBOX_TOKEN,] }] }
26
+ ];
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveG9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbGlzdC9saXN0Ym94b3B0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTNFOztHQUVHO0FBRUgsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHNCQUFzQjtJQUNqRSx1QkFBdUI7SUFFdkI7Ozs7O09BS0c7SUFDSCxZQUFZLFVBQXNCLEVBQUUsUUFBbUIsRUFBcUMsT0FBWTtRQUNwRyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7WUFaSixTQUFTLFNBQUMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7OztZQU56QixVQUFVO1lBQW9CLFNBQVM7NENBZ0JHLFFBQVEsWUFBSSxNQUFNLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExJU1RCT1hfVE9LRU4gfSBmcm9tICcuL2xpc3QudG9rZW4nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9wdGlvbmFsLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhY0xpc3Rib3hPcHRpb25Db21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vKipcbiAqIE9wdGlvbiBJdGVtIGluIExpc3Rib3hcbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NhY09wdGlvbl0sb3B0aW9uJyB9KVxuZXhwb3J0IGNsYXNzIFNhY0xpc3Rib3hPcHRpb25EaXJlY3RpdmUgZXh0ZW5kcyBTYWNMaXN0Ym94T3B0aW9uQ29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogS29uc3RydWt0b3JcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgRE9NIEVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciBSZW5kZXJpbmcgRW5naW5lXG4gICAgICogQHBhcmFtIGxpc3Rib3ggUmVmZXJlbnogYXVmIExpc3Rib3ggS29tcG9uZW50ZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHJlbmRlcmVyOiBSZW5kZXJlcjIsIEBPcHRpb25hbCgpIEBJbmplY3QoTElTVEJPWF9UT0tFTikgbGlzdGJveDogYW55KSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyLCBsaXN0Ym94KTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveG9wdGlvbi5kaXJlY3RpdmUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL2xpc3QvbGlzdGJveG9wdGlvbi5kaXJlY3RpdmUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmkwLkNvbXBvbmVudEZhY3Rvcnk7XG4iXX0=
@@ -1,5 +1,3 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
1
  import { SACBootstrap5LayoutModule } from '../layout/layout.module';
4
2
  import { SACBootstrap5TooltipModule } from '../tooltip/tooltip.module';
5
3
  import { SacMultilanguageInputComponent } from './multilanguageinput';
@@ -8,6 +6,9 @@ import { SacMultilanguagemenuComponent } from './multilanguagemenu';
8
6
  import { SacMultilanguagemenuAnchorDirective } from './multilanguagemenuanchor';
9
7
  import { SacMultilanguagemenuContainerDirective } from './multilanguagemenucontainer';
10
8
  import { SacMultilanguagemenuItemButtonComponent } from './multilanguagemenuitembutton';
9
+ import { CommonModule } from '@angular/common';
10
+ import { NgModule } from '@angular/core';
11
+ import { SACCommonUtliltiesModule } from '@simpleangularcontrols/sac-common';
11
12
  export class SACBootstrap5MultilanguageModule {
12
13
  }
13
14
  SACBootstrap5MultilanguageModule.decorators = [
@@ -20,12 +21,8 @@ SACBootstrap5MultilanguageModule.decorators = [
20
21
  SacMultilanguagemenuContainerDirective,
21
22
  SacMultilanguagemenuItemButtonComponent,
22
23
  ],
23
- imports: [
24
- CommonModule,
25
- SACBootstrap5LayoutModule,
26
- SACBootstrap5TooltipModule,
27
- ],
24
+ imports: [CommonModule, SACBootstrap5LayoutModule, SACBootstrap5TooltipModule, SACCommonUtliltiesModule],
28
25
  exports: [SacMultilanguageInputComponent, SacMultilanguageInputAreaComponent],
29
26
  },] }
30
27
  ];
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQWtCeEYsTUFBTSxPQUFPLGdDQUFnQzs7O1lBaEI1QyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLDhCQUE4QjtvQkFDOUIsa0NBQWtDO29CQUNsQyw2QkFBNkI7b0JBQzdCLG1DQUFtQztvQkFDbkMsc0NBQXNDO29CQUN0Qyx1Q0FBdUM7aUJBQ3hDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLHlCQUF5QjtvQkFDekIsMEJBQTBCO2lCQUMzQjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxrQ0FBa0MsQ0FBQzthQUM5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZSB9IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCB7IFNBQ0Jvb3RzdHJhcDVUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VpbnB1dCc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXRhcmVhJztcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudSc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVhbmNob3InO1xuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51Y29udGFpbmVyJztcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxuICAgIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnQsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb250YWluZXJEaXJlY3RpdmUsXG4gICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNBQ0Jvb3RzdHJhcDVMYXlvdXRNb2R1bGUsXG4gICAgU0FDQm9vdHN0cmFwNVRvb2x0aXBNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQsIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTQUNCb290c3RyYXA1TXVsdGlsYW5ndWFnZU1vZHVsZSB7fVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQWM3RSxNQUFNLE9BQU8sZ0NBQWdDOzs7WUFaNUMsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRTtvQkFDViw4QkFBOEI7b0JBQzlCLGtDQUFrQztvQkFDbEMsNkJBQTZCO29CQUM3QixtQ0FBbUM7b0JBQ25DLHNDQUFzQztvQkFDdEMsdUNBQXVDO2lCQUMxQztnQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUseUJBQXlCLEVBQUUsMEJBQTBCLEVBQUUsd0JBQXdCLENBQUM7Z0JBQ3hHLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixFQUFFLGtDQUFrQyxDQUFDO2FBQ2hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZSB9IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCB7IFNBQ0Jvb3RzdHJhcDVUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VpbnB1dCc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXRhcmVhJztcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudSc7XG5pbXBvcnQgeyBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVhbmNob3InO1xuaW1wb3J0IHsgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51Y29udGFpbmVyJztcbmltcG9ydCB7IFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU0FDQ29tbW9uVXRsaWx0aWVzTW9kdWxlIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LFxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50LFxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCxcbiAgICAgICAgU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUsXG4gICAgICAgIFNhY011bHRpbGFuZ3VhZ2VtZW51Q29udGFpbmVyRGlyZWN0aXZlLFxuICAgICAgICBTYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTQUNCb290c3RyYXA1TGF5b3V0TW9kdWxlLCBTQUNCb290c3RyYXA1VG9vbHRpcE1vZHVsZSwgU0FDQ29tbW9uVXRsaWx0aWVzTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50LCBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNU11bHRpbGFuZ3VhZ2VNb2R1bGUge31cbiJdfQ==
@@ -4,4 +4,4 @@
4
4
  * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
5
  * tslint:disable
6
6
  */
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZS5tb2R1bGUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZS5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vbXVsdGlsYW5ndWFnZS5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNCBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXQnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXRhcmVhJztcbmltcG9ydCAqIGFzIGk3IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudWFuY2hvcic7XG5pbXBvcnQgKiBhcyBpOSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51Y29udGFpbmVyJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51aXRlbWJ1dHRvbic7XG5pbXBvcnQgKiBhcyBpMTEgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMiBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTQgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICcuLi9sYXlvdXQvbGF5b3V0Lm1vZHVsZSc7XG5pbXBvcnQgKiBhcyBpMTYgZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XG5leHBvcnQgY29uc3QgU0FDQm9vdHN0cmFwNU11bHRpbGFuZ3VhZ2VNb2R1bGVOZ0ZhY3Rvcnk6aTAuTmdNb2R1bGVGYWN0b3J5PGkxLlNBQ0Jvb3RzdHJhcDVNdWx0aWxhbmd1YWdlTW9kdWxlPiA9IChudWxsIGFzIGFueSk7XG52YXIgX2RlY2wwXzA6aTIuTmdDbGFzcyA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOmkyLk5nQ29tcG9uZW50T3V0bGV0ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI6aTIuTmdGb3JPZjxhbnksYW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOmkyLk5nSWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80OmkyLk5nVGVtcGxhdGVPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNTppMi5OZ1N0eWxlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzY6aTIuTmdTd2l0Y2ggPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNzppMi5OZ1N3aXRjaENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfODppMi5OZ1N3aXRjaERlZmF1bHQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfOTppMi5OZ1BsdXJhbCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMDppMi5OZ1BsdXJhbENhc2UgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTE6aTMuU2FjRm9ybUxheW91dERpcmVjdGl2ZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMjppNC5TYWNUb29sdGlwQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEzOmk1LlNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xNDppNi5TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE1Omk3LlNhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE2Omk4LlNhY011bHRpbGFuZ3VhZ2VtZW51QW5jaG9yRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE3Omk5LlNhY011bHRpbGFuZ3VhZ2VtZW51Q29udGFpbmVyRGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE4OmkxMC5TYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTk6aTIuQXN5bmNQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIwOmkyLlVwcGVyQ2FzZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjE6aTIuTG93ZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMjppMi5Kc29uUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMzppMi5TbGljZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjQ6aTIuRGVjaW1hbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjU6aTIuUGVyY2VudFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjY6aTIuVGl0bGVDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNzppMi5DdXJyZW5jeVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjg6aTIuRGF0ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjk6aTIuSTE4blBsdXJhbFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzA6aTIuSTE4blNlbGVjdFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzE6aTIuS2V5VmFsdWVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMyOmkxMS5TYWNUb0NvbnRyb2xIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzMzOmkxMi5TYWNUb0NvbnRyb2xXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzQ6aTEzLlNhY1RvTGFiZWxIZWlnaHRQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM1OmkxNC5TYWNUb0xhYmVsV2lkdGhDc3NQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM2OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNzppMTUuU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zODppMTYuU0FDQm9vdHN0cmFwNVRvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzk6aTAuVGVtcGxhdGVSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MDppMC5FbGVtZW50UmVmPGFueT4gPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF9Ib3N0XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTMuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xMy5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTMuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ21zLTEnO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzEzLkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF8zO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8yKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnZm9ybS1jb250cm9sJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzEzLmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzEzLm5hbWUsJycpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzEzLm5hbWUsJycpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTMuTGFuZ3VhZ2VWYWx1ZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEzLnBsYWNlaG9sZGVyO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTMubWF4dGV4dGxlbmd0aDtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKF9kZWNsMF8xMy5pbnZhbGlkICYmIChfZGVjbDBfMTMuZGlydHkgfHwgX2RlY2wwXzEzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gX2RlY2wwXzEzLmlzZGlzYWJsZWQ7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgcGRfOTphbnkgPSAoKDxhbnk+X2RlY2wwXzEzLm9uVG91Y2goKSkgIT09IGZhbHNlKTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8xMy5TZXRMYW5ndWFnZVZhbHVlKF9hbnkudGFyZ2V0LnZhbHVlKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF8xXzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTMuU2VsZWN0ZWRJY29uVHlwZSA9PT0gX2RlY2wwXzEzLkljb25UeXBlLkltYWdlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTMuU2VsZWN0ZWRJY29uLCcnKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF8xXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTMuU2VsZWN0ZWRJY29uVHlwZSA9PT0gX2RlY2wwXzEzLkljb25UeXBlLkNzc1Nwcml0ZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnYWxpZ24tYmFzZWxpbmUgbXItMSBtbC0xJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xMy5TZWxlY3RlZEljb247XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8zKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnYnRuIGRyb3Bkb3duLXRvZ2dsZSc7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IFsoX2RlY2wwXzEzLklzQW55RW1wdHkoKT8gJ2J0bi13YXJuaW5nJzogJ2J0bi1zZWNvbmRhcnknKV07XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IChfZGVjbDBfMTMubmFtZSArICdfZHJvcGRvd25pdGVtJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IChfZGVjbDBfMTMuU2VsZWN0ZWRJY29uVHlwZSA9PT0gX2RlY2wwXzEzLkljb25UeXBlLkltYWdlKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gKF9kZWNsMF8xMy5TZWxlY3RlZEljb25UeXBlID09PSBfZGVjbDBfMTMuSWNvblR5cGUuQ3NzU3ByaXRlKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBwZF81OmFueSA9ICgoPGFueT5fZGVjbDBfMTUudG9nZ2xlKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xMy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTMuaW52YWxpZCkgJiYgKF9kZWNsMF8xMy5kaXJ0eSB8fCBfZGVjbDBfMTMudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE5LnRyYW5zZm9ybShfZGVjbDBfMTMuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfNigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTMuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzEzLmludmFsaWQpICYmIChfZGVjbDBfMTMuZGlydHkgfHwgX2RlY2wwXzEzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfOSgpOnZvaWQge1xuICBpZiAoKF9hbnkuSWNvblR5cGUgPT09IF9kZWNsMF8xMy5JY29uVHlwZS5JbWFnZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzEzLklzRW1wdHkoX2FueSk/ICd0ZXh0LWRhbmdlciBib3JkZXItbGVmdCBib3JkZXItZGFuZ2VyJzogJycpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9hbnkuSWNvbiwnJyk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2FueS5UZXh0LCcnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzEzLlNlbGVjdExhbmd1YWdlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8xMCgpOnZvaWQge1xuICBpZiAoKF9hbnkuSWNvblR5cGUgPT09IF9kZWNsMF8xMy5JY29uVHlwZS5Dc3NTcHJpdGUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xMy5Jc0VtcHR5KF9hbnkpPyAndGV4dC1kYW5nZXIgYm9yZGVyLWxlZnQgYm9yZGVyLWRhbmdlcic6ICcnKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfYW55Lkljb24sJycpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9hbnkuVGV4dCwnJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8xMy5TZWxlY3RMYW5ndWFnZShfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfOCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9hbnkuSWNvblR5cGUgPT09IF9kZWNsMF8xMy5JY29uVHlwZS5JbWFnZSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfYW55Lkljb25UeXBlID09PSBfZGVjbDBfMTMuSWNvblR5cGUuQ3NzU3ByaXRlKTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfMTEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzEzLmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTMuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEzLmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfMTIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8xMy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzEzLmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTMuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzEzLmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzEzLmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMy5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzEzLmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCBkLWZsZXgnO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBbKChfZGVjbDBfMTMuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zNS50cmFuc2Zvcm0oX2RlY2wwXzEzLmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICBfZGVjbDBfMzQudHJhbnNmb3JtKF9kZWNsMF8xMy5jb21wb25lbnRIZWlnaHQpXTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xMy5uYW1lLCcnKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gX2RlY2wwXzEzLmlzcmVxdWlyZWQ7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xMy5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMy5sYWJlbDtcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gKChfZGVjbDBfMTMuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xMy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9ICdjb2wtMTInO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSBbKChfZGVjbDBfMTMuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zMy50cmFuc2Zvcm0oX2RlY2wwXzEzLmxhYmVsU2l6ZXMpOiAnJyldO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gKCgoX2RlY2wwXzEzLmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTMuaGVscHRleHQpICYmIF9kZWNsMF8xMy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzEwO1xuICBjb25zdCBjdXJyVmFsXzExOmFueSA9ICgoKF9kZWNsMF8xMy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzEzLmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTMuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8xMTtcbiAgY29uc3QgY3VyclZhbF8xMjphbnkgPSBfZGVjbDBfMzk7XG4gIGN1cnJWYWxfMTI7XG4gIGNvbnN0IGN1cnJWYWxfMTM6YW55ID0gJ2JvdHRvbS1yaWdodCc7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gX2RlY2wwXzM5O1xuICBjdXJyVmFsXzE0O1xuICBjb25zdCBjdXJyVmFsXzE1OmFueSA9IF9kZWNsMF8zOTtcbiAgY3VyclZhbF8xNTtcbiAgY29uc3QgY3VyclZhbF8xNjphbnkgPSAoX2RlY2wwXzEzLmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzEzLkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IChfZGVjbDBfMTMuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTMuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gKChfZGVjbDBfMTMuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzEzLmludmFsaWQpICYmIChfZGVjbDBfMTMuZGlydHkgfHwgX2RlY2wwXzEzLnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSBfZGVjbDBfMTMuTGFuZ3VhZ2VzO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9ICgoX2RlY2wwXzEzLmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTMuaGVscHRleHQpO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoKF9kZWNsMF8xMy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzEzLmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTMuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8yMTtcbiAgY29uc3QgcGRfMjI6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5vbkNsaWNrKF9hbnkudGFyZ2V0KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfSG9zdF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnbXMtMSc7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTQuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzM7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl8yKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnZm9ybS1jb250cm9sJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzE0LmNvbXBvbmVudEhlaWdodCldO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE0Lm5hbWUsJycpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2RlY2wwXzE0Lm5hbWUsJycpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSBfZGVjbDBfMTQuTGFuZ3VhZ2VWYWx1ZTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE0LnBsYWNlaG9sZGVyO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTQucm93cztcbiAgY3VyclZhbF82O1xuICBjb25zdCBjdXJyVmFsXzc6YW55ID0gX2RlY2wwXzE0Lm1heHRleHRsZW5ndGg7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9IChfZGVjbDBfMTQuaW52YWxpZCAmJiAoX2RlY2wwXzE0LmRpcnR5IHx8IF9kZWNsMF8xNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9IF9kZWNsMF8xNC5pc2Rpc2FibGVkO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IHBkXzEwOmFueSA9ICgoPGFueT5fZGVjbDBfMTQub25Ub3VjaCgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMTphbnkgPSAoKDxhbnk+X2RlY2wwXzE0LlNldExhbmd1YWdlVmFsdWUoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzQoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTQuU2VsZWN0ZWRJY29uVHlwZSA9PT0gX2RlY2wwXzE0Lkljb25UeXBlLkltYWdlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTQuU2VsZWN0ZWRJY29uLCcnKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl81KCk6dm9pZCB7XG4gIGlmICgoX2RlY2wwXzE0LlNlbGVjdGVkSWNvblR5cGUgPT09IF9kZWNsMF8xNC5JY29uVHlwZS5Dc3NTcHJpdGUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2FsaWduLWJhc2VsaW5lIG1yLTEgbWwtMSc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTQuU2VsZWN0ZWRJY29uO1xuICAgIGN1cnJWYWxfMTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdidG4gZHJvcGRvd24tdG9nZ2xlJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWyhfZGVjbDBfMTQuSXNBbnlFbXB0eSgpPyAnYnRuLXdhcm5pbmcnOiAnYnRuLXNlY29uZGFyeScpXTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8xNC5uYW1lICsgJ19kcm9wZG93bml0ZW0nKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8xNC5TZWxlY3RlZEljb25UeXBlID09PSBfZGVjbDBfMTQuSWNvblR5cGUuSW1hZ2UpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoX2RlY2wwXzE0LlNlbGVjdGVkSWNvblR5cGUgPT09IF9kZWNsMF8xNC5JY29uVHlwZS5Dc3NTcHJpdGUpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS50b2dnbGUoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl83KCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNC5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTQuaW52YWxpZCkgJiYgKF9kZWNsMF8xNC5kaXJ0eSB8fCBfZGVjbDBfMTQudG91Y2hlZCkpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE5LnRyYW5zZm9ybShfZGVjbDBfMTQuR2V0RXJyb3JNZXNzYWdlKCkpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzYoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICgoX2RlY2wwXzE0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzE0LmRpcnR5IHx8IF9kZWNsMF8xNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMDtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl85KCk6dm9pZCB7XG4gIGlmICgoX2FueS5JY29uVHlwZSA9PT0gX2RlY2wwXzE0Lkljb25UeXBlLkltYWdlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTQuSXNFbXB0eShfYW55KT8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInOiAnJyk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2FueS5JY29uLCcnKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfYW55LlRleHQsJycpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMTQuU2VsZWN0TGFuZ3VhZ2UoX2FueSkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl8xMCgpOnZvaWQge1xuICBpZiAoKF9hbnkuSWNvblR5cGUgPT09IF9kZWNsMF8xNC5JY29uVHlwZS5Dc3NTcHJpdGUpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xNC5Jc0VtcHR5KF9hbnkpPyAndGV4dC1kYW5nZXIgYm9yZGVyLWxlZnQgYm9yZGVyLWRhbmdlcic6ICcnKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfYW55Lkljb24sJycpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9hbnkuVGV4dCwnJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5TZWxlY3RMYW5ndWFnZShfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzgoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfYW55Lkljb25UeXBlID09PSBfZGVjbDBfMTQuSWNvblR5cGUuSW1hZ2UpO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSAoX2FueS5JY29uVHlwZSA9PT0gX2RlY2wwXzE0Lkljb25UeXBlLkNzc1Nwcml0ZSk7XG4gIGN1cnJWYWxfMTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl8xMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XzJfMTIoKTp2b2lkIHtcbiAgaWYgKCgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTQuZGlzYWJsZWxhYmVsKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wtcGxhaW50ZXh0IGFsaWduLXNlbGYtdG9wIG1zLTIgbWUtMSB3LWF1dG8nO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gW19kZWNsMF8zMi50cmFuc2Zvcm0oX2RlY2wwXzE0LmNvbXBvbmVudEhlaWdodCldO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gX2RlY2wwXzE0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBjdXJyVmFsXzM6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzM7XG4gICAgY29uc3QgY3VyclZhbF80OmFueSA9ICdtbC0xJztcbiAgICBjdXJyVmFsXzQ7XG4gICAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNC5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfNTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNC5kaXNhYmxlbGFiZWw7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwgZC1mbGV4JztcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gWygoX2RlY2wwXzE0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzUudHJhbnNmb3JtKF9kZWNsMF8xNC5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgX2RlY2wwXzM0LnRyYW5zZm9ybShfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0KV07XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTQubmFtZSwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNC5pc3JlcXVpcmVkO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTQubGFiZWw7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9ICgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gWygoX2RlY2wwXzE0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzMudHJhbnNmb3JtKF9kZWNsMF8xNC5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9ICgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTQuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzE0LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gX2RlY2wwXzM5O1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9ICdib3R0b20tcmlnaHQnO1xuICBjdXJyVmFsXzEzO1xuICBjb25zdCBjdXJyVmFsXzE0OmFueSA9IF9kZWNsMF8zOTtcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfMzk7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gKF9kZWNsMF8xNC5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8xNC5Db250cm9sSGVpZ2h0LlNtYWxsKTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSAoX2RlY2wwXzE0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE0LkNvbnRyb2xIZWlnaHQuTGFyZ2UpO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9ICgoX2RlY2wwXzE0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzE0LmRpcnR5IHx8IF9kZWNsMF8xNC50b3VjaGVkKSk7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gX2RlY2wwXzE0Lkxhbmd1YWdlcztcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSAoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KTtcbiAgY3VyclZhbF8yMDtcbiAgY29uc3QgY3VyclZhbF8yMTphbnkgPSAoKChfZGVjbDBfMTQuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xNC5oZWxwdGV4dCkgJiYgX2RlY2wwXzE0LmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IHBkXzIyOmFueSA9ICgoPGFueT5fZGVjbDBfMTUub25DbGljayhfYW55LnRhcmdldCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudF9Ib3N0XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBwZF8wOmFueSA9ICgoPGFueT5fZGVjbDBfMTUub25DbGljayhfYW55LnRhcmdldCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudF8zXzEoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgcGRfMDphbnkgPSAoKDxhbnk+X2RlY2wwXzE1LnRvZ2dsZSgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnRfM18yKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudF8zXzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50XzNfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xNS5pbnB1dHRlbXBsYXRlIHx8IF9kZWNsMF8zOSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfZGVjbDBfMTUuYnV0dG9udGVtcGxhdGUgfHwgX2RlY2wwXzM5KTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8xNS52YWxpZGF0aW9udGVtcGxhdGUgfHwgX2RlY2wwXzM5KTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gX2RlY2wwXzE1Lmlzb3BlbjtcbiAgY3VyclZhbF8zO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50X0hvc3RfNF8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnRfNF8yKCk6dm9pZCB7XG4gIGlmICgoIV9kZWNsMF8xOC5pc2ljb25kaXNhYmxlZCAmJiBfZGVjbDBfMTguaW1hZ2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE4LmltYWdlO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50XzRfMygpOnZvaWQge1xuICBpZiAoKCFfZGVjbDBfMTguaXNpY29uZGlzYWJsZWQgJiYgX2RlY2wwXzE4Lmljb24pKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTguaWNvbnN0eWxlICsgJyAnKSArIF9kZWNsMF8xOC5pY29uKTtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudF80XzEoKTp2b2lkIHtcbiAgaWYgKCFfZGVjbDBfMTguaXNpY29uZGlzYWJsZWQpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTguaW1hZ2U7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTguaWNvbjtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdkcm9wZG93bi1pdGVtJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzE4LmNzc2NsYXNzO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTguaXNkaXNhYmxlZDtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8xOC5pc2Rpc2FibGVkPyAnZGlzYWJsZWQnOiBudWxsKTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gIV9kZWNsMF8xOC5pc2ljb25kaXNhYmxlZDtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE4LnRleHQ7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgcGRfNjphbnkgPSAoKDxhbnk+X2RlY2wwXzE4LmNhbGxhY3Rpb24oX2FueSkpICE9PSBmYWxzZSk7XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZS5tb2R1bGUubmdmYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZS5tb2R1bGUubmdmYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpMCBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIGkxIGZyb20gJy4vbXVsdGlsYW5ndWFnZS5tb2R1bGUnO1xuaW1wb3J0ICogYXMgaTIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCAqIGFzIGkzIGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgKiBhcyBpNCBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAnO1xuaW1wb3J0ICogYXMgaTUgZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXQnO1xuaW1wb3J0ICogYXMgaTYgZnJvbSAnLi9tdWx0aWxhbmd1YWdlaW5wdXRhcmVhJztcbmltcG9ydCAqIGFzIGk3IGZyb20gJy4vbXVsdGlsYW5ndWFnZW1lbnUnO1xuaW1wb3J0ICogYXMgaTggZnJvbSAnLi9tdWx0aWxhbmd1YWdlbWVudWFuY2hvcic7XG5pbXBvcnQgKiBhcyBpOSBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51Y29udGFpbmVyJztcbmltcG9ydCAqIGFzIGkxMCBmcm9tICcuL211bHRpbGFuZ3VhZ2VtZW51aXRlbWJ1dHRvbic7XG5pbXBvcnQgKiBhcyBpMTEgZnJvbSAnLi4vbGF5b3V0L3RvY29udHJvbGhlaWdodC5waXBlJztcbmltcG9ydCAqIGFzIGkxMiBmcm9tICcuLi9sYXlvdXQvdG9jb250cm9sd2lkdGhjc3MucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTMgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWxoZWlnaHQucGlwZSc7XG5pbXBvcnQgKiBhcyBpMTQgZnJvbSAnLi4vbGF5b3V0L3RvbGFiZWx3aWR0aGNzcy5waXBlJztcbmltcG9ydCAqIGFzIGkxNSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuaW1wb3J0ICogYXMgaTE2IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcbmltcG9ydCAqIGFzIGkxNyBmcm9tICcuLi90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCBjb25zdCBTQUNCb290c3RyYXA1TXVsdGlsYW5ndWFnZU1vZHVsZU5nRmFjdG9yeTppMC5OZ01vZHVsZUZhY3Rvcnk8aTEuU0FDQm9vdHN0cmFwNU11bHRpbGFuZ3VhZ2VNb2R1bGU+ID0gKG51bGwgYXMgYW55KTtcbnZhciBfZGVjbDBfMDppMi5OZ0NsYXNzID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE6aTIuTmdDb21wb25lbnRPdXRsZXQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjppMi5OZ0Zvck9mPGFueSxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM6aTIuTmdJZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQ6aTIuTmdUZW1wbGF0ZU91dGxldCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF81OmkyLk5nU3R5bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNjppMi5OZ1N3aXRjaCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF83OmkyLk5nU3dpdGNoQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF84OmkyLk5nU3dpdGNoRGVmYXVsdCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF85OmkyLk5nUGx1cmFsID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEwOmkyLk5nUGx1cmFsQ2FzZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xMTppMy5TYWNGb3JtTGF5b3V0RGlyZWN0aXZlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzEyOmk0LlNhY1Rvb2x0aXBDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTM6aTUuU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzE0Omk2LlNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTU6aTcuU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTY6aTguU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTc6aTkuU2FjTXVsdGlsYW5ndWFnZW1lbnVDb250YWluZXJEaXJlY3RpdmUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMTg6aTEwLlNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8xOTppMi5Bc3luY1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMjA6aTIuVXBwZXJDYXNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yMTppMi5Mb3dlckNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIyOmkyLkpzb25QaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzIzOmkyLlNsaWNlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNDppMi5EZWNpbWFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNTppMi5QZXJjZW50UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yNjppMi5UaXRsZUNhc2VQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzI3OmkyLkN1cnJlbmN5UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yODppMi5EYXRlUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8yOTppMi5JMThuUGx1cmFsUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMDppMi5JMThuU2VsZWN0UGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zMTppMi5LZXlWYWx1ZVBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzI6aTExLlNhY1RvQ29udHJvbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzM6aTEyLlNhY1RvQ29udHJvbFdpZHRoQ3NzUGlwZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zNDppMTMuU2FjVG9MYWJlbEhlaWdodFBpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzU6aTE0LlNhY1RvTGFiZWxXaWR0aENzc1BpcGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfMzY6aTE1LlNhY1Rlc3RpbmdBdHRyaWJ1dGVQaXBlID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzM3OmkyLkNvbW1vbk1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zODppMTYuU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF8zOTppMTcuU0FDQm9vdHN0cmFwNVRvb2x0aXBNb2R1bGUgPSAoPGFueT4obnVsbCBhcyBhbnkpKTtcbnZhciBfZGVjbDBfNDA6aTE1LlNBQ0NvbW1vblV0bGlsdGllc01vZHVsZSA9ICg8YW55PihudWxsIGFzIGFueSkpO1xudmFyIF9kZWNsMF80MTppMC5UZW1wbGF0ZVJlZjxhbnk+ID0gKDxhbnk+KG51bGwgYXMgYW55KSk7XG52YXIgX2RlY2wwXzQyOmkwLkVsZW1lbnRSZWY8YW55PiA9ICg8YW55PihudWxsIGFzIGFueSkpO1xuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50X0hvc3RfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8xKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xMy5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzEzLmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xMy5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IHRydWU7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAnbXMtMSc7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTMuSGVscHRleHRUb29sdGlwSWNvbjtcbiAgICBjdXJyVmFsXzM7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF8xXzIoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbX2RlY2wwXzMyLnRyYW5zZm9ybShfZGVjbDBfMTMuY29tcG9uZW50SGVpZ2h0KV07XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTMubmFtZSwnJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTMubmFtZSwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xMy5MYW5ndWFnZVZhbHVlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTMucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMy5tYXh0ZXh0bGVuZ3RoO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSAoX2RlY2wwXzEzLmludmFsaWQgJiYgKF9kZWNsMF8xMy5kaXJ0eSB8fCBfZGVjbDBfMTMudG91Y2hlZCkpO1xuICBjdXJyVmFsXzc7XG4gIGNvbnN0IGN1cnJWYWxfODphbnkgPSBfZGVjbDBfMTMuaXNkaXNhYmxlZDtcbiAgY3VyclZhbF84O1xuICBjb25zdCBwZF85OmFueSA9ICgoPGFueT5fZGVjbDBfMTMub25Ub3VjaCgpKSAhPT0gZmFsc2UpO1xuICBjb25zdCBwZF8xMDphbnkgPSAoKDxhbnk+X2RlY2wwXzEzLlNldExhbmd1YWdlVmFsdWUoX2FueS50YXJnZXQudmFsdWUpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8xMy5TZWxlY3RlZEljb25UeXBlID09PSBfZGVjbDBfMTMuSWNvblR5cGUuSW1hZ2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xMy5TZWxlY3RlZEljb24sJycpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50XzFfNSgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8xMy5TZWxlY3RlZEljb25UeXBlID09PSBfZGVjbDBfMTMuSWNvblR5cGUuQ3NzU3ByaXRlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdhbGlnbi1iYXNlbGluZSBtci0xIG1sLTEnO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEzLlNlbGVjdGVkSWNvbjtcbiAgICBjdXJyVmFsXzE7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF8xXzMoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdidG4gZHJvcGRvd24tdG9nZ2xlJztcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gWyhfZGVjbDBfMTMuSXNBbnlFbXB0eSgpPyAnYnRuLXdhcm5pbmcnOiAnYnRuLXNlY29uZGFyeScpXTtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gKF9kZWNsMF8xMy5uYW1lICsgJ19kcm9wZG93bml0ZW0nKTtcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gKF9kZWNsMF8xMy5TZWxlY3RlZEljb25UeXBlID09PSBfZGVjbDBfMTMuSWNvblR5cGUuSW1hZ2UpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAoX2RlY2wwXzEzLlNlbGVjdGVkSWNvblR5cGUgPT09IF9kZWNsMF8xMy5JY29uVHlwZS5Dc3NTcHJpdGUpO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IHBkXzU6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS50b2dnbGUoKSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF8xXzcoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzEzLmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xMy5pbnZhbGlkKSAmJiAoX2RlY2wwXzEzLmRpcnR5IHx8IF9kZWNsMF8xMy50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTkudHJhbnNmb3JtKF9kZWNsMF8xMy5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV82KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8xMy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTMuaW52YWxpZCkgJiYgKF9kZWNsMF8xMy5kaXJ0eSB8fCBfZGVjbDBfMTMudG91Y2hlZCkpO1xuICBjdXJyVmFsXzA7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV85KCk6dm9pZCB7XG4gIGlmICgoX2FueS5JY29uVHlwZSA9PT0gX2RlY2wwXzEzLkljb25UeXBlLkltYWdlKSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IChfZGVjbDBfMTMuSXNFbXB0eShfYW55KT8gJ3RleHQtZGFuZ2VyIGJvcmRlci1sZWZ0IGJvcmRlci1kYW5nZXInOiAnJyk7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2FueS5JY29uLCcnKTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfYW55LlRleHQsJycpO1xuICAgIGN1cnJWYWxfMjtcbiAgICBjb25zdCBwZF8zOmFueSA9ICgoPGFueT5fZGVjbDBfMTMuU2VsZWN0TGFuZ3VhZ2UoX2FueSkpICE9PSBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudF8xXzEwKCk6dm9pZCB7XG4gIGlmICgoX2FueS5JY29uVHlwZSA9PT0gX2RlY2wwXzEzLkljb25UeXBlLkNzc1Nwcml0ZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzEzLklzRW1wdHkoX2FueSk/ICd0ZXh0LWRhbmdlciBib3JkZXItbGVmdCBib3JkZXItZGFuZ2VyJzogJycpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9hbnkuSWNvbiwnJyk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2FueS5UZXh0LCcnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzEzLlNlbGVjdExhbmd1YWdlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV84KCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2FueS5JY29uVHlwZSA9PT0gX2RlY2wwXzEzLkljb25UeXBlLkltYWdlKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9hbnkuSWNvblR5cGUgPT09IF9kZWNsMF8xMy5JY29uVHlwZS5Dc3NTcHJpdGUpO1xuICBjdXJyVmFsXzE7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8xMSgpOnZvaWQge1xuICBpZiAoKChfZGVjbDBfMTMuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xMy5oZWxwdGV4dCkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTMuaGVscHRleHQ7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8xMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzEzLmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTMuaGVscHRleHQpICYmIF9kZWNsMF8xMy5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2Zvcm0tY29udHJvbC1wbGFpbnRleHQgYWxpZ24tc2VsZi10b3AgbXMtMiBtZS0xIHctYXV0byc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbX2RlY2wwXzMyLnRyYW5zZm9ybShfZGVjbDBfMTMuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTMuaGVscHRleHQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ21sLTEnO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEzLkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF81O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnRfMV8wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMzYudHJhbnNmb3JtKF9kZWNsMF8xMy5uYW1lLF9kZWNsMF8xMy5lMmVpZGVudGlmaWVyKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gX2RlY2wwXzEzLmRpc2FibGVsYWJlbDtcbiAgY3VyclZhbF8xO1xuICBjb25zdCBjdXJyVmFsXzI6YW55ID0gJ2NvbC0xMiBjb2wtZm9ybS1sYWJlbCBkLWZsZXgnO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBbKChfZGVjbDBfMTMuZGlzYWJsZWxhYmVsID09PSBmYWxzZSk/IF9kZWNsMF8zNS50cmFuc2Zvcm0oX2RlY2wwXzEzLmxhYmVsU2l6ZXMpOiAndmlzdWFsbHktaGlkZGVuJyksXG4gICAgICBfZGVjbDBfMzQudHJhbnNmb3JtKF9kZWNsMF8xMy5jb21wb25lbnRIZWlnaHQpXTtcbiAgY3VyclZhbF8zO1xuICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xMy5uYW1lLCcnKTtcbiAgY3VyclZhbF80O1xuICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzEzLmlzcmVxdWlyZWQ7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xMy5zcGxpdGxhYmVsYW5kaGVscHRleHQ7XG4gIGN1cnJWYWxfNjtcbiAgY29uc3QgY3VyclZhbF83OmFueSA9IF9kZWNsMF8xMy5sYWJlbDtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKChfZGVjbDBfMTMuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xMy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfODtcbiAgY29uc3QgY3VyclZhbF85OmFueSA9ICdjb2wtMTInO1xuICBjdXJyVmFsXzk7XG4gIGNvbnN0IGN1cnJWYWxfMTA6YW55ID0gWygoX2RlY2wwXzEzLmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzMudHJhbnNmb3JtKF9kZWNsMF8xMy5sYWJlbFNpemVzKTogJycpXTtcbiAgY3VyclZhbF8xMDtcbiAgY29uc3QgY3VyclZhbF8xMTphbnkgPSAoKChfZGVjbDBfMTMuaGVscHRleHRtb2RlID09PSAndG9vbHRpcCcpICYmIF9kZWNsMF8xMy5oZWxwdGV4dCkgJiYgX2RlY2wwXzEzLmRpc2FibGVsYWJlbCk7XG4gIGN1cnJWYWxfMTE7XG4gIGNvbnN0IGN1cnJWYWxfMTI6YW55ID0gKCgoX2RlY2wwXzEzLmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTMuaGVscHRleHQpICYmIF9kZWNsMF8xMy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzEyO1xuICBjb25zdCBjdXJyVmFsXzEzOmFueSA9IF9kZWNsMF80MTtcbiAgY3VyclZhbF8xMztcbiAgY29uc3QgY3VyclZhbF8xNDphbnkgPSAnYm90dG9tLXJpZ2h0JztcbiAgY3VyclZhbF8xNDtcbiAgY29uc3QgY3VyclZhbF8xNTphbnkgPSBfZGVjbDBfNDE7XG4gIGN1cnJWYWxfMTU7XG4gIGNvbnN0IGN1cnJWYWxfMTY6YW55ID0gX2RlY2wwXzQxO1xuICBjdXJyVmFsXzE2O1xuICBjb25zdCBjdXJyVmFsXzE3OmFueSA9IChfZGVjbDBfMTMuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTMuQ29udHJvbEhlaWdodC5TbWFsbCk7XG4gIGN1cnJWYWxfMTc7XG4gIGNvbnN0IGN1cnJWYWxfMTg6YW55ID0gKF9kZWNsMF8xMy5jb21wb25lbnRIZWlnaHQgPT09IF9kZWNsMF8xMy5Db250cm9sSGVpZ2h0LkxhcmdlKTtcbiAgY3VyclZhbF8xODtcbiAgY29uc3QgY3VyclZhbF8xOTphbnkgPSAoKF9kZWNsMF8xMy5pc2lubGluZWVycm9yZW5hYmxlZCAmJiBfZGVjbDBfMTMuaW52YWxpZCkgJiYgKF9kZWNsMF8xMy5kaXJ0eSB8fCBfZGVjbDBfMTMudG91Y2hlZCkpO1xuICBjdXJyVmFsXzE5O1xuICBjb25zdCBjdXJyVmFsXzIwOmFueSA9IF9kZWNsMF8xMy5MYW5ndWFnZXM7XG4gIGN1cnJWYWxfMjA7XG4gIGNvbnN0IGN1cnJWYWxfMjE6YW55ID0gKChfZGVjbDBfMTMuaGVscHRleHRtb2RlID09PSAndGV4dCcpICYmIF9kZWNsMF8xMy5oZWxwdGV4dCk7XG4gIGN1cnJWYWxfMjE7XG4gIGNvbnN0IGN1cnJWYWxfMjI6YW55ID0gKCgoX2RlY2wwXzEzLmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTMuaGVscHRleHQpICYmIF9kZWNsMF8xMy5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzIyO1xuICBjb25zdCBwZF8yMzphbnkgPSAoKDxhbnk+X2RlY2wwXzE1Lm9uQ2xpY2soX2FueS50YXJnZXQpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF9Ib3N0XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzEoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzE0LmhlbHB0ZXh0O1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gdHJ1ZTtcbiAgICBjdXJyVmFsXzE7XG4gICAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdtcy0xJztcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgY3VyclZhbF8zOmFueSA9IF9kZWNsMF8xNC5IZWxwdGV4dFRvb2x0aXBJY29uO1xuICAgIGN1cnJWYWxfMztcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzIoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgY29uc3QgY3VyclZhbF8wOmFueSA9ICdmb3JtLWNvbnRyb2wnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbX2RlY2wwXzMyLnRyYW5zZm9ybShfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0KV07XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTQubmFtZSwnJyk7XG4gIGN1cnJWYWxfMjtcbiAgY29uc3QgY3VyclZhbF8zOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTQubmFtZSwnJyk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IF9kZWNsMF8xNC5MYW5ndWFnZVZhbHVlO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTQucGxhY2Vob2xkZXI7XG4gIGN1cnJWYWxfNTtcbiAgY29uc3QgY3VyclZhbF82OmFueSA9IF9kZWNsMF8xNC5yb3dzO1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMTQubWF4dGV4dGxlbmd0aDtcbiAgY3VyclZhbF83O1xuICBjb25zdCBjdXJyVmFsXzg6YW55ID0gKF9kZWNsMF8xNC5pbnZhbGlkICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF84O1xuICBjb25zdCBjdXJyVmFsXzk6YW55ID0gX2RlY2wwXzE0LmlzZGlzYWJsZWQ7XG4gIGN1cnJWYWxfOTtcbiAgY29uc3QgcGRfMTA6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5vblRvdWNoKCkpICE9PSBmYWxzZSk7XG4gIGNvbnN0IHBkXzExOmFueSA9ICgoPGFueT5fZGVjbDBfMTQuU2V0TGFuZ3VhZ2VWYWx1ZShfYW55LnRhcmdldC52YWx1ZSkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XzJfNCgpOnZvaWQge1xuICBpZiAoKF9kZWNsMF8xNC5TZWxlY3RlZEljb25UeXBlID09PSBfZGVjbDBfMTQuSWNvblR5cGUuSW1hZ2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9kZWNsMF8xNC5TZWxlY3RlZEljb24sJycpO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzUoKTp2b2lkIHtcbiAgaWYgKChfZGVjbDBfMTQuU2VsZWN0ZWRJY29uVHlwZSA9PT0gX2RlY2wwXzE0Lkljb25UeXBlLkNzc1Nwcml0ZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAnYWxpZ24tYmFzZWxpbmUgbXItMSBtbC0xJztcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xNC5TZWxlY3RlZEljb247XG4gICAgY3VyclZhbF8xO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XzJfMygpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2J0biBkcm9wZG93bi10b2dnbGUnO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbKF9kZWNsMF8xNC5Jc0FueUVtcHR5KCk/ICdidG4td2FybmluZyc6ICdidG4tc2Vjb25kYXJ5JyldO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzE0Lm5hbWUgKyAnX2Ryb3Bkb3duaXRlbScpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzE0LlNlbGVjdGVkSWNvblR5cGUgPT09IF9kZWNsMF8xNC5JY29uVHlwZS5JbWFnZSk7XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IChfZGVjbDBfMTQuU2VsZWN0ZWRJY29uVHlwZSA9PT0gX2RlY2wwXzE0Lkljb25UeXBlLkNzc1Nwcml0ZSk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgcGRfNTphbnkgPSAoKDxhbnk+X2RlY2wwXzE1LnRvZ2dsZSgpKSAhPT0gZmFsc2UpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzcoKTp2b2lkIHtcbiAgaWYgKCgoX2RlY2wwXzE0LmlzaW5saW5lZXJyb3JlbmFibGVkICYmIF9kZWNsMF8xNC5pbnZhbGlkKSAmJiAoX2RlY2wwXzE0LmRpcnR5IHx8IF9kZWNsMF8xNC50b3VjaGVkKSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTkudHJhbnNmb3JtKF9kZWNsMF8xNC5HZXRFcnJvck1lc3NhZ2UoKSk7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XzJfNigpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKChfZGVjbDBfMTQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE0LmludmFsaWQpICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8wO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzkoKTp2b2lkIHtcbiAgaWYgKChfYW55Lkljb25UeXBlID09PSBfZGVjbDBfMTQuSWNvblR5cGUuSW1hZ2UpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9kZWNsMF8xNC5Jc0VtcHR5KF9hbnkpPyAndGV4dC1kYW5nZXIgYm9yZGVyLWxlZnQgYm9yZGVyLWRhbmdlcic6ICcnKTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfYW55Lkljb24sJycpO1xuICAgIGN1cnJWYWxfMTtcbiAgICBjb25zdCBjdXJyVmFsXzI6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9hbnkuVGV4dCwnJyk7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IHBkXzM6YW55ID0gKCg8YW55Pl9kZWNsMF8xNC5TZWxlY3RMYW5ndWFnZShfYW55KSkgIT09IGZhbHNlKTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzEwKCk6dm9pZCB7XG4gIGlmICgoX2FueS5JY29uVHlwZSA9PT0gX2RlY2wwXzE0Lkljb25UeXBlLkNzc1Nwcml0ZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzE0LklzRW1wdHkoX2FueSk/ICd0ZXh0LWRhbmdlciBib3JkZXItbGVmdCBib3JkZXItZGFuZ2VyJzogJycpO1xuICAgIGN1cnJWYWxfMDtcbiAgICBjb25zdCBjdXJyVmFsXzE6YW55ID0gaTAuybVpbmxpbmVJbnRlcnBvbGF0ZSgxLCcnLF9hbnkuSWNvbiwnJyk7XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBpMC7JtWlubGluZUludGVycG9sYXRlKDEsJycsX2FueS5UZXh0LCcnKTtcbiAgICBjdXJyVmFsXzI7XG4gICAgY29uc3QgcGRfMzphbnkgPSAoKDxhbnk+X2RlY2wwXzE0LlNlbGVjdExhbmd1YWdlKF9hbnkpKSAhPT0gZmFsc2UpO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XzJfOCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gKF9hbnkuSWNvblR5cGUgPT09IF9kZWNsMF8xNC5JY29uVHlwZS5JbWFnZSk7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IChfYW55Lkljb25UeXBlID09PSBfZGVjbDBfMTQuSWNvblR5cGUuQ3NzU3ByaXRlKTtcbiAgY3VyclZhbF8xO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudF8yXzExKCk6dm9pZCB7XG4gIGlmICgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0ZXh0JykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xNC5oZWxwdGV4dDtcbiAgICBjdXJyVmFsXzA7XG4gIH1cbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnRfMl8xMigpOnZvaWQge1xuICBpZiAoKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpICYmIF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwpKSB7XG4gICAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbiAgICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2Zvcm0tY29udHJvbC1wbGFpbnRleHQgYWxpZ24tc2VsZi10b3AgbXMtMiBtZS0xIHctYXV0byc7XG4gICAgY3VyclZhbF8wO1xuICAgIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBbX2RlY2wwXzMyLnRyYW5zZm9ybShfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0KV07XG4gICAgY3VyclZhbF8xO1xuICAgIGNvbnN0IGN1cnJWYWxfMjphbnkgPSBfZGVjbDBfMTQuaGVscHRleHQ7XG4gICAgY3VyclZhbF8yO1xuICAgIGNvbnN0IGN1cnJWYWxfMzphbnkgPSB0cnVlO1xuICAgIGN1cnJWYWxfMztcbiAgICBjb25zdCBjdXJyVmFsXzQ6YW55ID0gJ21sLTEnO1xuICAgIGN1cnJWYWxfNDtcbiAgICBjb25zdCBjdXJyVmFsXzU6YW55ID0gX2RlY2wwXzE0LkhlbHB0ZXh0VG9vbHRpcEljb247XG4gICAgY3VyclZhbF81O1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50XzJfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gX2RlY2wwXzM2LnRyYW5zZm9ybShfZGVjbDBfMTQubmFtZSxfZGVjbDBfMTQuZTJlaWRlbnRpZmllcik7XG4gIGN1cnJWYWxfMDtcbiAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xNC5kaXNhYmxlbGFiZWw7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9ICdjb2wtMTIgY29sLWZvcm0tbGFiZWwgZC1mbGV4JztcbiAgY3VyclZhbF8yO1xuICBjb25zdCBjdXJyVmFsXzM6YW55ID0gWygoX2RlY2wwXzE0LmRpc2FibGVsYWJlbCA9PT0gZmFsc2UpPyBfZGVjbDBfMzUudHJhbnNmb3JtKF9kZWNsMF8xNC5sYWJlbFNpemVzKTogJ3Zpc3VhbGx5LWhpZGRlbicpLFxuICAgICAgX2RlY2wwXzM0LnRyYW5zZm9ybShfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0KV07XG4gIGN1cnJWYWxfMztcbiAgY29uc3QgY3VyclZhbF80OmFueSA9IGkwLsm1aW5saW5lSW50ZXJwb2xhdGUoMSwnJyxfZGVjbDBfMTQubmFtZSwnJyk7XG4gIGN1cnJWYWxfNDtcbiAgY29uc3QgY3VyclZhbF81OmFueSA9IF9kZWNsMF8xNC5pc3JlcXVpcmVkO1xuICBjdXJyVmFsXzU7XG4gIGNvbnN0IGN1cnJWYWxfNjphbnkgPSBfZGVjbDBfMTQuc3BsaXRsYWJlbGFuZGhlbHB0ZXh0O1xuICBjdXJyVmFsXzY7XG4gIGNvbnN0IGN1cnJWYWxfNzphbnkgPSBfZGVjbDBfMTQubGFiZWw7XG4gIGN1cnJWYWxfNztcbiAgY29uc3QgY3VyclZhbF84OmFueSA9ICgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpO1xuICBjdXJyVmFsXzg7XG4gIGNvbnN0IGN1cnJWYWxfOTphbnkgPSAnY29sLTEyJztcbiAgY3VyclZhbF85O1xuICBjb25zdCBjdXJyVmFsXzEwOmFueSA9IFsoKF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwgPT09IGZhbHNlKT8gX2RlY2wwXzMzLnRyYW5zZm9ybShfZGVjbDBfMTQubGFiZWxTaXplcyk6ICcnKV07XG4gIGN1cnJWYWxfMTA7XG4gIGNvbnN0IGN1cnJWYWxfMTE6YW55ID0gKCgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3Rvb2x0aXAnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpICYmIF9kZWNsMF8xNC5kaXNhYmxlbGFiZWwpO1xuICBjdXJyVmFsXzExO1xuICBjb25zdCBjdXJyVmFsXzEyOmFueSA9ICgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTQuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8xMjtcbiAgY29uc3QgY3VyclZhbF8xMzphbnkgPSBfZGVjbDBfNDE7XG4gIGN1cnJWYWxfMTM7XG4gIGNvbnN0IGN1cnJWYWxfMTQ6YW55ID0gJ2JvdHRvbS1yaWdodCc7XG4gIGN1cnJWYWxfMTQ7XG4gIGNvbnN0IGN1cnJWYWxfMTU6YW55ID0gX2RlY2wwXzQxO1xuICBjdXJyVmFsXzE1O1xuICBjb25zdCBjdXJyVmFsXzE2OmFueSA9IF9kZWNsMF80MTtcbiAgY3VyclZhbF8xNjtcbiAgY29uc3QgY3VyclZhbF8xNzphbnkgPSAoX2RlY2wwXzE0LmNvbXBvbmVudEhlaWdodCA9PT0gX2RlY2wwXzE0LkNvbnRyb2xIZWlnaHQuU21hbGwpO1xuICBjdXJyVmFsXzE3O1xuICBjb25zdCBjdXJyVmFsXzE4OmFueSA9IChfZGVjbDBfMTQuY29tcG9uZW50SGVpZ2h0ID09PSBfZGVjbDBfMTQuQ29udHJvbEhlaWdodC5MYXJnZSk7XG4gIGN1cnJWYWxfMTg7XG4gIGNvbnN0IGN1cnJWYWxfMTk6YW55ID0gKChfZGVjbDBfMTQuaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgX2RlY2wwXzE0LmludmFsaWQpICYmIChfZGVjbDBfMTQuZGlydHkgfHwgX2RlY2wwXzE0LnRvdWNoZWQpKTtcbiAgY3VyclZhbF8xOTtcbiAgY29uc3QgY3VyclZhbF8yMDphbnkgPSBfZGVjbDBfMTQuTGFuZ3VhZ2VzO1xuICBjdXJyVmFsXzIwO1xuICBjb25zdCBjdXJyVmFsXzIxOmFueSA9ICgoX2RlY2wwXzE0LmhlbHB0ZXh0bW9kZSA9PT0gJ3RleHQnKSAmJiBfZGVjbDBfMTQuaGVscHRleHQpO1xuICBjdXJyVmFsXzIxO1xuICBjb25zdCBjdXJyVmFsXzIyOmFueSA9ICgoKF9kZWNsMF8xNC5oZWxwdGV4dG1vZGUgPT09ICd0b29sdGlwJykgJiYgX2RlY2wwXzE0LmhlbHB0ZXh0KSAmJiBfZGVjbDBfMTQuZGlzYWJsZWxhYmVsKTtcbiAgY3VyclZhbF8yMjtcbiAgY29uc3QgcGRfMjM6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5vbkNsaWNrKF9hbnkudGFyZ2V0KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50X0hvc3RfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IHBkXzA6YW55ID0gKCg8YW55Pl9kZWNsMF8xNS5vbkNsaWNrKF9hbnkudGFyZ2V0KSkgIT09IGZhbHNlKTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50XzNfMSgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBwZF8wOmFueSA9ICgoPGFueT5fZGVjbDBfMTUudG9nZ2xlKCkpICE9PSBmYWxzZSk7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudF8zXzIoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50XzNfMygpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnRfM18wKCk6dm9pZCB7XG4gIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoX2RlY2wwXzE1LmlucHV0dGVtcGxhdGUgfHwgX2RlY2wwXzQxKTtcbiAgY3VyclZhbF8wO1xuICBjb25zdCBjdXJyVmFsXzE6YW55ID0gKF9kZWNsMF8xNS5idXR0b250ZW1wbGF0ZSB8fCBfZGVjbDBfNDEpO1xuICBjdXJyVmFsXzE7XG4gIGNvbnN0IGN1cnJWYWxfMjphbnkgPSAoX2RlY2wwXzE1LnZhbGlkYXRpb250ZW1wbGF0ZSB8fCBfZGVjbDBfNDEpO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSBfZGVjbDBfMTUuaXNvcGVuO1xuICBjdXJyVmFsXzM7XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnRfSG9zdF80XzAoKTp2b2lkIHtcbiAgdmFyIF9hbnk6YW55ID0gKG51bGwgYXMgYW55KTtcbn1cbmZ1bmN0aW9uIF9WaWV3X1NhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudF80XzIoKTp2b2lkIHtcbiAgaWYgKCghX2RlY2wwXzE4LmlzaWNvbmRpc2FibGVkICYmIF9kZWNsMF8xOC5pbWFnZSkpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSBfZGVjbDBfMTguaW1hZ2U7XG4gICAgY3VyclZhbF8wO1xuICB9XG59XG5mdW5jdGlvbiBfVmlld19TYWNNdWx0aWxhbmd1YWdlbWVudUl0ZW1CdXR0b25Db21wb25lbnRfNF8zKCk6dm9pZCB7XG4gIGlmICgoIV9kZWNsMF8xOC5pc2ljb25kaXNhYmxlZCAmJiBfZGVjbDBfMTguaWNvbikpIHtcbiAgICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICAgIGNvbnN0IGN1cnJWYWxfMDphbnkgPSAoKF9kZWNsMF8xOC5pY29uc3R5bGUgKyAnICcpICsgX2RlY2wwXzE4Lmljb24pO1xuICAgIGN1cnJWYWxfMDtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50XzRfMSgpOnZvaWQge1xuICBpZiAoIV9kZWNsMF8xOC5pc2ljb25kaXNhYmxlZCkge1xuICAgIHZhciBfYW55OmFueSA9IChudWxsIGFzIGFueSk7XG4gICAgY29uc3QgY3VyclZhbF8wOmFueSA9IF9kZWNsMF8xOC5pbWFnZTtcbiAgICBjdXJyVmFsXzA7XG4gICAgY29uc3QgY3VyclZhbF8xOmFueSA9IF9kZWNsMF8xOC5pY29uO1xuICAgIGN1cnJWYWxfMTtcbiAgfVxufVxuZnVuY3Rpb24gX1ZpZXdfU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50XzRfMCgpOnZvaWQge1xuICB2YXIgX2FueTphbnkgPSAobnVsbCBhcyBhbnkpO1xuICBjb25zdCBjdXJyVmFsXzA6YW55ID0gJ2Ryb3Bkb3duLWl0ZW0nO1xuICBjdXJyVmFsXzA7XG4gIGNvbnN0IGN1cnJWYWxfMTphbnkgPSBfZGVjbDBfMTguY3NzY2xhc3M7XG4gIGN1cnJWYWxfMTtcbiAgY29uc3QgY3VyclZhbF8yOmFueSA9IF9kZWNsMF8xOC5pc2Rpc2FibGVkO1xuICBjdXJyVmFsXzI7XG4gIGNvbnN0IGN1cnJWYWxfMzphbnkgPSAoX2RlY2wwXzE4LmlzZGlzYWJsZWQ/ICdkaXNhYmxlZCc6IG51bGwpO1xuICBjdXJyVmFsXzM7XG4gIGNvbnN0IGN1cnJWYWxfNDphbnkgPSAhX2RlY2wwXzE4LmlzaWNvbmRpc2FibGVkO1xuICBjdXJyVmFsXzQ7XG4gIGNvbnN0IGN1cnJWYWxfNTphbnkgPSBfZGVjbDBfMTgudGV4dDtcbiAgY3VyclZhbF81O1xuICBjb25zdCBwZF82OmFueSA9ICgoPGFueT5fZGVjbDBfMTguY2FsbGFjdGlvbihfYW55KSkgIT09IGZhbHNlKTtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
- import { Component, forwardRef, Host, Injector, Optional } from '@angular/core';
2
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { IconType, SacMultilanguageInputCommon, } from '@simpleangularcontrols/sac-common';
4
1
  import { SacFormLayoutDirective } from '../layout/formlayout.directive';
2
+ import { Component, Host, Injector, Optional, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { IconType, SacMultilanguageInputCommon } from '@simpleangularcontrols/sac-common';
5
5
  /**
6
6
  * Componente für Mehrsprache Texte
7
7
  */
@@ -25,7 +25,7 @@ export class SacMultilanguageInputComponent extends SacMultilanguageInputCommon
25
25
  SacMultilanguageInputComponent.decorators = [
26
26
  { type: Component, args: [{
27
27
  selector: 'sac-multilanguageinput',
28
- template: "<div\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div\n class=\"input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n placement=\"bottom-right\"\n sac-multilanguagemenu\n [buttontemplate]=\"menuButton\"\n [inputtemplate]=\"menuInput\"\n [validationtemplate]=\"validationMessage\"\n #contextmenu>\n <ng-template #menuInput>\n <input\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"LanguageValue\"\n [attr.placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n (input)=\"SetLanguageValue($event.target.value)\"\n [attr.maxlength]=\"maxtextlength\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [disabled]=\"isdisabled\" />\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]=\"name + '_dropdownitem'\"\n type=\"button\"\n class=\"btn dropdown-toggle\"\n (click)=\"contextmenu.toggle()\"\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\">\n <img\n src=\"{{ SelectedIcon }}\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.Image\" />\n <span\n [ngClass]=\"SelectedIcon\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.CssSprite\"></span>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor=\"let sprache of Languages\">\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.Image\"\n text=\"{{ sprache.Text }}\"\n image=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\n text=\"{{ sprache.Text }}\"\n icon=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col text-right\"></div>\n</div>\n",
28
+ template: "<div\n [attr.data-e2e-key]=\"name | testingattribute : e2eidentifier\"\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div\n class=\"input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n placement=\"bottom-right\"\n sac-multilanguagemenu\n [buttontemplate]=\"menuButton\"\n [inputtemplate]=\"menuInput\"\n [validationtemplate]=\"validationMessage\"\n #contextmenu>\n <ng-template #menuInput>\n <input\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"LanguageValue\"\n [attr.placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n (input)=\"SetLanguageValue($event.target.value)\"\n [attr.maxlength]=\"maxtextlength\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [disabled]=\"isdisabled\" />\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]=\"name + '_dropdownitem'\"\n type=\"button\"\n class=\"btn dropdown-toggle\"\n (click)=\"contextmenu.toggle()\"\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\">\n <img\n src=\"{{ SelectedIcon }}\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.Image\" />\n <span\n [ngClass]=\"SelectedIcon\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.CssSprite\"></span>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor=\"let sprache of Languages\">\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.Image\"\n text=\"{{ sprache.Text }}\"\n image=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\n text=\"{{ sprache.Text }}\"\n icon=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col text-right\"></div>\n</div>\n",
29
29
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
30
30
  providers: [
31
31
  {
@@ -45,4 +45,4 @@ SacMultilanguageInputComponent.ctorParameters = () => [
45
45
  { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
46
46
  { type: Injector }
47
47
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsUUFBUSxFQUNSLDJCQUEyQixHQUM1QixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFOztHQUVHO0FBa0JILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwyQkFBMkI7SUFRN0Usd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7OztPQUlHO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0I7UUFFbEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQXBCOUIscUJBQXFCO1FBRXJCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLFFBQVEsQ0FBQztJQWdCM0IsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyw0OEtBQXdDO2dCQUN4QywrRkFBK0Y7Z0JBQy9GLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsOEJBQThCO3FCQUM1QztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztxQkFDOUQ7aUJBQ0Y7YUFDRjs7O1lBckJRLHNCQUFzQix1QkF3QzFCLElBQUksWUFBSSxRQUFRO1lBOUNpQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0LCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgSWNvblR5cGUsXG4gIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbW1vbixcbn0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZsO8ciBNZWhyc3ByYWNoZSBUZXh0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzYWMtbXVsdGlsYW5ndWFnZWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpbGFuZ3VhZ2VpbnB1dC5odG1sJyxcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNNdWx0aWxhbmd1YWdlSW5wdXRDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCBleHRlbmRzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbW1vbiB7XG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBFbnVtIGbDvHIgSWNvblR5cGUgaW4gSFRNTCBUZW1wbGF0ZVxuICAgKi9cbiAgcHVibGljIEljb25UeXBlID0gSWNvblR5cGU7XG5cbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3Rvcik7XG4gIH1cblxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUY7O0dBRUc7QUFrQkgsTUFBTSxPQUFPLDhCQUErQixTQUFRLDJCQUEyQjtJQVEzRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUFnQyxVQUFrQyxFQUFFLFFBQWtCO1FBQ2xGLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFqQmhDLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNJLGFBQVEsR0FBRyxRQUFRLENBQUM7SUFhM0IsQ0FBQzs7O1lBcENKLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxpaExBQXdDO2dCQUN4QywrRkFBK0Y7Z0JBQy9GLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsOEJBQThCO3FCQUM1QztvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztxQkFDOUQ7aUJBQ0Y7YUFDRjs7O1lBeEJRLHNCQUFzQix1QkEwQ2QsSUFBSSxZQUFJLFFBQVE7WUF6Q1AsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbmplY3RvciwgT3B0aW9uYWwsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWNvblR5cGUsIFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBmw7xyIE1laHJzcHJhY2hlIFRleHRlXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NhYy1tdWx0aWxhbmd1YWdlaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlsYW5ndWFnZWlucHV0Lmh0bWwnLFxuICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VJbnB1dENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgU2FjTXVsdGlsYW5ndWFnZUlucHV0Q29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEVudW0gZsO8ciBJY29uVHlwZSBpbiBIVE1MIFRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIEljb25UeXBlID0gSWNvblR5cGU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
@@ -1,7 +1,7 @@
1
- import { Component, forwardRef, Host, Injector, Optional } from '@angular/core';
2
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { IconType, SacMultilanguageInputAreaCommon, } from '@simpleangularcontrols/sac-common';
4
1
  import { SacFormLayoutDirective } from '../layout/formlayout.directive';
2
+ import { Component, Host, Injector, Optional, forwardRef } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { IconType, SacMultilanguageInputAreaCommon } from '@simpleangularcontrols/sac-common';
5
5
  /**
6
6
  * Componente für Mehrsprache Texte als mehrzeiliger Text
7
7
  */
@@ -25,7 +25,7 @@ export class SacMultilanguageInputAreaComponent extends SacMultilanguageInputAre
25
25
  SacMultilanguageInputAreaComponent.decorators = [
26
26
  { type: Component, args: [{
27
27
  selector: 'sac-multilanguageinputarea',
28
- template: "<div\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div\n class=\"input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n placement=\"bottom-right\"\n sac-multilanguagemenu\n [buttontemplate]=\"menuButton\"\n [inputtemplate]=\"menuInput\"\n [validationtemplate]=\"validationMessage\"\n #contextmenu>\n <ng-template #menuInput>\n <textarea\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"LanguageValue\"\n [attr.placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n style=\"height: auto\"\n (input)=\"SetLanguageValue($event.target.value)\"\n [attr.rows]=\"rows\"\n [attr.maxlength]=\"maxtextlength\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [disabled]=\"isdisabled\"></textarea>\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]=\"name + '_dropdownitem'\"\n type=\"button\"\n class=\"btn dropdown-toggle\"\n (click)=\"contextmenu.toggle()\"\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\">\n <img\n src=\"{{ SelectedIcon }}\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.Image\" />\n <i\n [ngClass]=\"SelectedIcon\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.CssSprite\"></i>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor=\"let sprache of Languages\">\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.Image\"\n text=\"{{ sprache.Text }}\"\n image=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\n text=\"{{ sprache.Text }}\"\n icon=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col text-right\"></div>\n</div>\n",
28
+ template: "<div\n [attr.data-e2e-key]=\"name | testingattribute : e2eidentifier\"\n class=\"row mb-3\"\n [class.g-0]=\"disablelabel\">\n <label\n for=\"{{ name }}\"\n class=\"col-12 col-form-label d-flex\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'visually-hidden', componentHeight | toLabelHeight]\"\n [class.required]=\"isrequired\">\n <div\n class=\"text flex-grow-0\"\n [class.flex-sm-grow-1]=\"splitlabelandhelptext\">\n {{ label }}\n </div>\n <sac-tooltip\n *ngIf=\"helptextmode === 'tooltip' && helptext\"\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ms-1\">\n </span>\n </sac-tooltip>\n </label>\n <div\n class=\"col-12\"\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\n [class.d-flex]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div [class.flex-grow-1]=\"helptextmode === 'tooltip' && helptext && disablelabel\">\n <div\n class=\"input-group\"\n [class.input-group-sm]=\"componentHeight === ControlHeight.Small\"\n [class.input-group-lg]=\"componentHeight === ControlHeight.Large\"\n [class.has-validation]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n placement=\"bottom-right\"\n sac-multilanguagemenu\n [buttontemplate]=\"menuButton\"\n [inputtemplate]=\"menuInput\"\n [validationtemplate]=\"validationMessage\"\n #contextmenu>\n <ng-template #menuInput>\n <textarea\n id=\"{{ name }}\"\n name=\"{{ name }}\"\n type=\"text\"\n class=\"form-control\"\n [value]=\"LanguageValue\"\n [attr.placeholder]=\"placeholder\"\n (blur)=\"onTouch()\"\n style=\"height: auto\"\n (input)=\"SetLanguageValue($event.target.value)\"\n [attr.rows]=\"rows\"\n [attr.maxlength]=\"maxtextlength\"\n [class.is-invalid]=\"invalid && (dirty || touched)\"\n [ngClass]=\"[componentHeight | toControlHeight]\"\n [disabled]=\"isdisabled\"></textarea>\n </ng-template>\n\n <ng-template #menuButton>\n <button\n sacMultilanguageMenuAnchor\n [id]=\"name + '_dropdownitem'\"\n type=\"button\"\n class=\"btn dropdown-toggle\"\n (click)=\"contextmenu.toggle()\"\n [ngClass]=\"[IsAnyEmpty() ? 'btn-warning' : 'btn-secondary']\">\n <img\n src=\"{{ SelectedIcon }}\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.Image\" />\n <i\n [ngClass]=\"SelectedIcon\"\n class=\"align-baseline mr-1 ml-1\"\n *ngIf=\"SelectedIconType === IconType.CssSprite\"></i>\n </button>\n </ng-template>\n\n <ng-template #validationMessage>\n <div\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\n class=\"invalid-feedback\">\n {{ GetErrorMessage() | async }}\n </div></ng-template\n >\n\n <ng-container *ngFor=\"let sprache of Languages\">\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.Image\"\n text=\"{{ sprache.Text }}\"\n image=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n <sac-multilanguagemenubutton\n *ngIf=\"sprache.IconType === IconType.CssSprite\"\n text=\"{{ sprache.Text }}\"\n icon=\"{{ sprache.Icon }}\"\n [cssclass]=\"IsEmpty(sprache) ? 'text-danger border-left border-danger' : ''\"\n (clicked)=\"SelectLanguage(sprache)\"></sac-multilanguagemenubutton>\n </ng-container>\n </div>\n <div\n *ngIf=\"helptextmode === 'text' && helptext\"\n class=\"form-text\">\n {{ helptext }}\n </div>\n </div>\n\n <div\n *ngIf=\"helptextmode === 'tooltip' && helptext && disablelabel\"\n class=\"form-control-plaintext align-self-top ms-2 me-1 w-auto\"\n [ngClass]=\"[componentHeight | toControlHeight]\">\n <sac-tooltip\n [tooltiptext]=\"helptext\"\n [inlinemode]=\"true\">\n <span\n [ngClass]=\"HelptextTooltipIcon\"\n class=\"ml-1\">\n </span>\n </sac-tooltip>\n </div>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col text-right\"></div>\n</div>\n",
29
29
  // Value Access Provider registrieren, damit Wert via Model geschrieben und gelesen werden kann
30
30
  providers: [
31
31
  {
@@ -45,4 +45,4 @@ SacMultilanguageInputAreaComponent.ctorParameters = () => [
45
45
  { type: SacFormLayoutDirective, decorators: [{ type: Host }, { type: Optional }] },
46
46
  { type: Injector }
47
47
  ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0YXJlYS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9tdWx0aWxhbmd1YWdlL211bHRpbGFuZ3VhZ2VpbnB1dGFyZWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCxRQUFRLEVBQ1IsK0JBQStCLEdBQ2hDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEU7O0dBRUc7QUFrQkgsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLCtCQUErQjtJQVFyRix3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7O09BSUc7SUFDSCxZQUNzQixVQUFrQyxFQUN0RCxRQUFrQjtRQUVsQixLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBcEI5QixxQkFBcUI7UUFFckI7O1dBRUc7UUFDSSxhQUFRLEdBQUcsUUFBUSxDQUFDO0lBZ0IzQixDQUFDOzs7WUF2Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLGdqTEFBNEM7Z0JBQzVDLCtGQUErRjtnQkFDL0YsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxrQ0FBa0M7cUJBQ2hEO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO3FCQUNsRTtpQkFDRjthQUNGOzs7WUFyQlEsc0JBQXNCLHVCQXdDMUIsSUFBSSxZQUFJLFFBQVE7WUE5Q2lCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJY29uVHlwZSxcbiAgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbW1vbixcbn0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZsO8ciBNZWhyc3ByYWNoZSBUZXh0ZSBhbHMgbWVocnplaWxpZ2VyIFRleHRcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2FjLW11bHRpbGFuZ3VhZ2VpbnB1dGFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlsYW5ndWFnZWlucHV0YXJlYS5odG1sJyxcbiAgLy8gVmFsdWUgQWNjZXNzIFByb3ZpZGVyIHJlZ2lzdHJpZXJlbiwgZGFtaXQgV2VydCB2aWEgTW9kZWwgZ2VzY2hyaWViZW4gdW5kIGdlbGVzZW4gd2VyZGVuIGthbm5cbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbXBvbmVudCBleHRlbmRzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21tb24ge1xuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAvKipcbiAgICogRW51bSBmw7xyIEljb25UeXBlIGluIEhUTUwgVGVtcGxhdGVcbiAgICovXG4gIHB1YmxpYyBJY29uVHlwZSA9IEljb25UeXBlO1xuXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybUxheW91dCwgaW5qZWN0b3IpO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZWlucHV0YXJlYS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9zaW1wbGVhbmd1bGFyY29udHJvbHMvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL2NoLmpuZXR3b3JrLnNhYy1jb250cm9scy9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvIiwic291cmNlcyI6WyJjb250cm9scy9tdWx0aWxhbmd1YWdlL211bHRpbGFuZ3VhZ2VpbnB1dGFyZWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU5Rjs7R0FFRztBQWtCSCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsK0JBQStCO0lBUW5GLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7T0FJRztJQUNILFlBQWdDLFVBQWtDLEVBQUUsUUFBa0I7UUFDbEYsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQWpCaEMscUJBQXFCO1FBRXJCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLFFBQVEsQ0FBQztJQWEzQixDQUFDOzs7WUFwQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLHFuTEFBNEM7Z0JBQzVDLCtGQUErRjtnQkFDL0YsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLEtBQUssRUFBRSxJQUFJO3dCQUNYLFdBQVcsRUFBRSxrQ0FBa0M7cUJBQ2xEO29CQUNEO3dCQUNJLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtDQUFrQyxDQUFDO3FCQUNwRTtpQkFDSjthQUNKOzs7WUF4QlEsc0JBQXNCLHVCQTBDZCxJQUFJLFlBQUksUUFBUTtZQXpDUCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIEluamVjdG9yLCBPcHRpb25hbCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJY29uVHlwZSwgU2FjTXVsdGlsYW5ndWFnZUlucHV0QXJlYUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBmw7xyIE1laHJzcHJhY2hlIFRleHRlIGFscyBtZWhyemVpbGlnZXIgVGV4dFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NhYy1tdWx0aWxhbmd1YWdlaW5wdXRhcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlsYW5ndWFnZWlucHV0YXJlYS5odG1sJyxcbiAgICAvLyBWYWx1ZSBBY2Nlc3MgUHJvdmlkZXIgcmVnaXN0cmllcmVuLCBkYW1pdCBXZXJ0IHZpYSBNb2RlbCBnZXNjaHJpZWJlbiB1bmQgZ2VsZXNlbiB3ZXJkZW4ga2FublxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VJbnB1dEFyZWFDb21wb25lbnQgZXh0ZW5kcyBTYWNNdWx0aWxhbmd1YWdlSW5wdXRBcmVhQ29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEVudW0gZsO8ciBJY29uVHlwZSBpbiBIVE1MIFRlbXBsYXRlXG4gICAgICovXG4gICAgcHVibGljIEljb25UeXBlID0gSWNvblR5cGU7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBmb3JtTGF5b3V0IFNhY0Zvcm1MYXlvdXQgdG8gZGVmaW5lIHNjb3BlZCBsYXlvdXQgc2V0dGluZ3NcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgZm9yIGluamVjdGluZyBzZXJ2aWNlc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBIb3N0KCkgQE9wdGlvbmFsKCkgZm9ybUxheW91dDogU2FjRm9ybUxheW91dERpcmVjdGl2ZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Component, ElementRef, forwardRef, Inject, Injector, Input, NgZone, Renderer2, TemplateRef, } from '@angular/core';
2
+ import { Component, ElementRef, Inject, Injector, Input, NgZone, Renderer2, TemplateRef, forwardRef, } from '@angular/core';
3
3
  import { SacContextmenuCommon } from '@simpleangularcontrols/sac-common';
4
4
  /**
5
5
  * Component für Contextmenü
@@ -22,7 +22,7 @@ export class SacMultilanguagemenuComponent extends SacContextmenuCommon {
22
22
  SacMultilanguagemenuComponent.decorators = [
23
23
  { type: Component, args: [{
24
24
  selector: '[sac-multilanguagemenu]',
25
- template: "<ng-container\n [ngTemplateOutlet]=\"inputtemplate || defaultInputTemplate\"\n></ng-container>\n<ng-container\n [ngTemplateOutlet]=\"buttontemplate || defaultButtonTemplate\"\n></ng-container>\n<ng-container\n [ngTemplateOutlet]=\"validationtemplate || defaultValidationTemplate\"\n></ng-container>\n\n<ul\n class=\"dropdown-menu dropdown-menu-right\"\n sacMultilanguageMenuContainer\n [class.show]=\"isopen\"\n>\n <ng-content></ng-content>\n</ul>\n\n<ng-template #defaultButtonTemplate>\n <button\n sacMultilanguageMenuAnchor\n class=\"btn btn-secondary dropdown-toggle\"\n type=\"button\"\n (click)=\"toggle()\"\n ></button>\n</ng-template>\n\n<ng-template #defaultInputTemplate>\n <input type=\"text\" class=\"form-control\" />\n</ng-template>\n\n<ng-template #defaultValidationTemplate></ng-template>\n",
25
+ template: "<ng-container [ngTemplateOutlet]=\"inputtemplate || defaultInputTemplate\"></ng-container>\n<ng-container [ngTemplateOutlet]=\"buttontemplate || defaultButtonTemplate\"></ng-container>\n<ng-container [ngTemplateOutlet]=\"validationtemplate || defaultValidationTemplate\"></ng-container>\n\n<ul\n class=\"dropdown-menu dropdown-menu-right\"\n sacMultilanguageMenuContainer\n [class.show]=\"isopen\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template #defaultButtonTemplate>\n <button\n sacMultilanguageMenuAnchor\n class=\"btn btn-secondary dropdown-toggle\"\n type=\"button\"\n (click)=\"toggle()\"></button>\n</ng-template>\n\n<ng-template #defaultInputTemplate>\n <input\n type=\"text\"\n class=\"form-control\" />\n</ng-template>\n\n<ng-template #defaultValidationTemplate></ng-template>\n",
26
26
  providers: [
27
27
  {
28
28
  provide: SacContextmenuCommon,
@@ -42,4 +42,4 @@ SacMultilanguagemenuComponent.propDecorators = {
42
42
  inputtemplate: [{ type: Input }],
43
43
  validationtemplate: [{ type: Input }]
44
44
  };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFOztHQUVHO0FBV0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG9CQUFvQjtJQWNyRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7Ozs7O09BT0c7SUFDSCxZQUNvQixRQUFhLEVBQy9CLE1BQWMsRUFDZCxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUFrQjtRQUVsQixLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUM7OztZQTVDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsdzBCQUF1QztnQkFDdkMsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxvQkFBb0I7d0JBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7cUJBQzdEO2lCQUNGO2FBQ0Y7Ozs0Q0E0QkksTUFBTSxTQUFDLFFBQVE7WUE5Q2xCLE1BQU07WUFMTixVQUFVO1lBTVYsU0FBUztZQUhULFFBQVE7Ozs0QkEyQlAsS0FBSztpQ0FLTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBSZW5kZXJlcjIsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhY0NvbnRleHRtZW51Q29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuLyoqXG4gKiBDb21wb25lbnQgZsO8ciBDb250ZXh0bWVuw7xcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3NhYy1tdWx0aWxhbmd1YWdlbWVudV0nLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IgLS0gYm9vdHN0cmFwIHJlcXVpcmVzIGFwcGVuZC1pdGVtcyBkaXJlY3QgYmVoaW5kIHRoZSBwcmV2aWV3cyBlbGVtZW50XG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlbWVudS5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU2FjQ29udGV4dG1lbnVDb21tb24sXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQgZXh0ZW5kcyBTYWNDb250ZXh0bWVudUNvbW1vbiB7XG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiB0ZW1wbGF0ZSB3aXRoIGlucHV0IGJveCBmb3IgbXVsdGlsYW5nYXVnZSBjb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbnB1dHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKipcbiAgICogdGVtcGxhdGUgd2l0aCBtYXJrdXAgZm9yIGlubGluZSB2YWxpZGF0aW9uIG1lc3NhZ2VzIGluIGNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRpb250ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gZG9jdW1lbnQgUmVmZXJlbnogYXVmIEhUTUwgRG9jdW1lbnRcbiAgICogQHBhcmFtIG5nWm9uZSBBbmd1bGFyIFpvbmUgU2VydmljZVxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgSFRNTCBFbGVtZW50IGRlciBha3R1ZWxsZW4gS29tcG9uZW50ZVxuICAgKiBAcGFyYW0gcmVuZGVyZXIgUmVuZGVyIFNlcnZpY2Ugdm9uIEFuZ3VsYXJcbiAgICogQHBhcmFtIGluamVjdG9yIGluamVjdG9yIHRvIHJlc29sdmUgc2VydmljZXMgaW4gYmFzZSBjb21wb25lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZG9jdW1lbnQsIG5nWm9uZSwgZWxlbWVudFJlZiwgcmVuZGVyZXIsIGluamVjdG9yKTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsVUFBVSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFOztHQUVHO0FBV0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG9CQUFvQjtJQWVuRSx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7Ozs7O09BT0c7SUFDSCxZQUNzQixRQUFhLEVBQy9CLE1BQWMsRUFDZCxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUFrQjtRQUVsQixLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELENBQUM7OztZQTdDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsaTJCQUF1QztnQkFDdkMsU0FBUyxFQUFFO29CQUNQO3dCQUNJLE9BQU8sRUFBRSxvQkFBb0I7d0JBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7cUJBQy9EO2lCQUNKO2FBQ0o7Ozs0Q0E2QlEsTUFBTSxTQUFDLFFBQVE7WUFoRHBCLE1BQU07WUFKTixVQUFVO1lBS1YsU0FBUztZQUhULFFBQVE7Ozs0QkE0QlAsS0FBSztpQ0FNTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIFJlbmRlcmVyMixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhY0NvbnRleHRtZW51Q29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuLyoqXG4gKiBDb21wb25lbnQgZsO8ciBDb250ZXh0bWVuw7xcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbc2FjLW11bHRpbGFuZ3VhZ2VtZW51XScsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvciAtLSBib290c3RyYXAgcmVxdWlyZXMgYXBwZW5kLWl0ZW1zIGRpcmVjdCBiZWhpbmQgdGhlIHByZXZpZXdzIGVsZW1lbnRcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlsYW5ndWFnZW1lbnUuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNhY0NvbnRleHRtZW51Q29tbW9uLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjTXVsdGlsYW5ndWFnZW1lbnVDb21wb25lbnQpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VtZW51Q29tcG9uZW50IGV4dGVuZHMgU2FjQ29udGV4dG1lbnVDb21tb24ge1xuICAgIC8vICNyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLyoqXG4gICAgICogdGVtcGxhdGUgd2l0aCBpbnB1dCBib3ggZm9yIG11bHRpbGFuZ2F1Z2UgY29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5wdXR0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIHRlbXBsYXRlIHdpdGggbWFya3VwIGZvciBpbmxpbmUgdmFsaWRhdGlvbiBtZXNzYWdlcyBpbiBjb21wb25lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB2YWxpZGF0aW9udGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RvclxuICAgICAqIEBwYXJhbSBkb2N1bWVudCBSZWZlcmVueiBhdWYgSFRNTCBEb2N1bWVudFxuICAgICAqIEBwYXJhbSBuZ1pvbmUgQW5ndWxhciBab25lIFNlcnZpY2VcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgSFRNTCBFbGVtZW50IGRlciBha3R1ZWxsZW4gS29tcG9uZW50ZVxuICAgICAqIEBwYXJhbSByZW5kZXJlciBSZW5kZXIgU2VydmljZSB2b24gQW5ndWxhclxuICAgICAqIEBwYXJhbSBpbmplY3RvciBpbmplY3RvciB0byByZXNvbHZlIHNlcnZpY2VzIGluIGJhc2UgY29tcG9uZW50XG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGRvY3VtZW50LCBuZ1pvbmUsIGVsZW1lbnRSZWYsIHJlbmRlcmVyLCBpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcbn1cbiJdfQ==
@@ -27,4 +27,4 @@ SacMultilanguagemenuAnchorDirective.decorators = [
27
27
  SacMultilanguagemenuAnchorDirective.ctorParameters = () => [
28
28
  { type: ElementRef }
29
29
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnVhbmNob3IuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlbWVudWFuY2hvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0U7O0dBRUc7QUFVSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsMEJBQTBCO0lBQ2pGLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLFVBQW1DO1FBQzdDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDOzs7WUFsQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsMEJBQTBCO3dCQUNuQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO3FCQUNuRTtpQkFDRjthQUNGOzs7WUFkbUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vKipcbiAqIEFua2VyIEtvbXBvbmVudGUgZsO8ciBDb250ZXh0IE1lbsO8LiBXaXJkIHp1bSBwb3NpdGlvbmllcmVuIGRlcyBDb250ZXh0IE1lbsO8IGluIGRlciBQYWdlIGJlbsO2dGlndC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NhY011bHRpbGFuZ3VhZ2VNZW51QW5jaG9yXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNhY0NvbnRleHRtZW51QW5jaG9yQ29tbW9uLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VtZW51QW5jaG9yRGlyZWN0aXZlIGV4dGVuZHMgU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb24ge1xuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gIC8qKlxuICAgKiBLb25zdHJ1a3RvclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBIVE1MIERPTSBSZWZlcmVuelxuICAgKi9cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnVhbmNob3IuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlbWVudWFuY2hvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0U7O0dBRUc7QUFVSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsMEJBQTBCO0lBQy9FLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLFVBQW1DO1FBQzNDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QixDQUFDOzs7WUFsQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsMEJBQTBCO3dCQUNuQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO3FCQUNyRTtpQkFDSjthQUNKOzs7WUFkbUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vKipcbiAqIEFua2VyIEtvbXBvbmVudGUgZsO8ciBDb250ZXh0IE1lbsO8LiBXaXJkIHp1bSBwb3NpdGlvbmllcmVuIGRlcyBDb250ZXh0IE1lbsO8IGluIGRlciBQYWdlIGJlbsO2dGlndC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbc2FjTXVsdGlsYW5ndWFnZU1lbnVBbmNob3JdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU2FjQ29udGV4dG1lbnVBbmNob3JDb21tb24sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNNdWx0aWxhbmd1YWdlbWVudUFuY2hvckRpcmVjdGl2ZSksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZW1lbnVBbmNob3JEaXJlY3RpdmUgZXh0ZW5kcyBTYWNDb250ZXh0bWVudUFuY2hvckNvbW1vbiB7XG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgSFRNTCBET00gUmVmZXJlbnpcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
@@ -27,4 +27,4 @@ SacMultilanguagemenuContainerDirective.decorators = [
27
27
  SacMultilanguagemenuContainerDirective.ctorParameters = () => [
28
28
  { type: ElementRef }
29
29
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnVjb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlbWVudWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkY7O0dBRUc7QUFVSCxNQUFNLE9BQU8sc0NBQXVDLFNBQVEsOEJBQThCO0lBQ3hGLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLFVBQW1DO1FBQzdDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDOzs7WUFsQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsOEJBQThCO3dCQUN2QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO3FCQUN0RTtpQkFDRjthQUNGOzs7WUFkbUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuLyoqXG4gKiBNYXJrZXIgS29tcG9uZW50ZSBmw7xyIENvbnRleHQgTWVuw7xcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NhY011bHRpbGFuZ3VhZ2VNZW51Q29udGFpbmVyXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNhY0NvbnRleHRNZW51Q29udHJhaW5lckNvbW1vbixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VtZW51Q29udGFpbmVyRGlyZWN0aXZlKSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTYWNNdWx0aWxhbmd1YWdlbWVudUNvbnRhaW5lckRpcmVjdGl2ZSBleHRlbmRzIFNhY0NvbnRleHRNZW51Q29udHJhaW5lckNvbW1vbiB7XG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgLyoqXG4gICAqIEtvbnN0cnVrdG9yXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFJlZmVyZW56IGF1ZiBET00gRWxlbWVudFxuICAgKi9cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgfVxuXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnVjb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NpbXBsZWFuZ3VsYXJjb250cm9scy9jaC5qbmV0d29yay5zYWMtY29udHJvbHMvcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjLyIsInNvdXJjZXMiOlsiY29udHJvbHMvbXVsdGlsYW5ndWFnZS9tdWx0aWxhbmd1YWdlbWVudWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFbkY7O0dBRUc7QUFVSCxNQUFNLE9BQU8sc0NBQXVDLFNBQVEsOEJBQThCO0lBQ3RGLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLFVBQW1DO1FBQzNDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QixDQUFDOzs7WUFsQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLFNBQVMsRUFBRTtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsOEJBQThCO3dCQUN2QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO3FCQUN4RTtpQkFDSjthQUNKOzs7WUFkbUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcblxuLyoqXG4gKiBNYXJrZXIgS29tcG9uZW50ZSBmw7xyIENvbnRleHQgTWVuw7xcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbc2FjTXVsdGlsYW5ndWFnZU1lbnVDb250YWluZXJdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjTXVsdGlsYW5ndWFnZW1lbnVDb250YWluZXJEaXJlY3RpdmUpLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNhY011bHRpbGFuZ3VhZ2VtZW51Q29udGFpbmVyRGlyZWN0aXZlIGV4dGVuZHMgU2FjQ29udGV4dE1lbnVDb250cmFpbmVyQ29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogS29uc3RydWt0b3JcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVueiBhdWYgRE9NIEVsZW1lbnRcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
@@ -15,7 +15,7 @@ export class SacMultilanguagemenuItemButtonComponent extends SacContextmenuItemB
15
15
  SacMultilanguagemenuItemButtonComponent.decorators = [
16
16
  { type: Component, args: [{
17
17
  selector: 'sac-multilanguagemenubutton',
18
- template: "<li>\n <button\n type=\"button\"\n class=\"dropdown-item\"\n (click)=\"callaction($event)\"\n [class.disabled]=\"isdisabled\"\n [ngClass]=\"cssclass\"\n [attr.disabled]=\"isdisabled ? 'disabled' : null\"\n >\n <div class=\"d-flex\">\n <div *ngIf=\"!isicondisabled\" style=\"min-width: 1.5rem\">\n <img *ngIf=\"image\" [src]=\"image\" class=\"align-baseline\" />\n <i *ngIf=\"icon\" [class]=\"iconstyle + ' ' + icon\"></i>\n </div>\n <div class=\"flex-grow-1\">{{ text }}</div>\n </div>\n </button>\n</li>\n",
18
+ template: "<li>\n <button\n type=\"button\"\n class=\"dropdown-item\"\n (click)=\"callaction($event)\"\n [class.disabled]=\"isdisabled\"\n [ngClass]=\"cssclass\"\n [attr.disabled]=\"isdisabled ? 'disabled' : null\">\n <div class=\"d-flex\">\n <div\n *ngIf=\"!isicondisabled\"\n style=\"min-width: 1.5rem\">\n <img\n *ngIf=\"image\"\n [src]=\"image\"\n class=\"align-baseline\" />\n <i\n *ngIf=\"icon\"\n [class]=\"iconstyle + ' ' + icon\"></i>\n </div>\n <div class=\"flex-grow-1\">{{ text }}</div>\n </div>\n </button>\n</li>\n",
19
19
  providers: [
20
20
  {
21
21
  provide: SacContextmenuItemCommon,
@@ -25,4 +25,4 @@ SacMultilanguagemenuItemButtonComponent.decorators = [
25
25
  },] }
26
26
  ];
27
27
  SacMultilanguagemenuItemButtonComponent.ctorParameters = () => [];
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdHOztHQUVHO0FBV0gsTUFBTSxPQUFPLHVDQUF3QyxTQUFRLDhCQUE4QjtJQUN2Rix1QkFBdUI7SUFFdkI7O09BRUc7SUFDSDtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBbEJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsNkJBQTZCO2dCQUN2Qyw4akJBQWlEO2dCQUNqRCxTQUFTLEVBQUU7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLHdCQUF3Qjt3QkFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDekU7aUJBQ0o7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQ29udGV4dG1lbnVJdGVtQnV0dG9uQ29tbW9uLCBTYWNDb250ZXh0bWVudUl0ZW1Db21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgbWVudSBlbnRyeSBpbiBjb250ZXh0IG1lbnVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlbWVudWl0ZW1idXR0b24uaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNhY0NvbnRleHRtZW51SXRlbUNvbW1vbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgU2FjQ29udGV4dG1lbnVJdGVtQnV0dG9uQ29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL3NpbXBsZWFuZ3VsYXJjb250cm9scy9zaW1wbGVhbmd1bGFyY29udHJvbHMvY2guam5ldHdvcmsuc2FjLWNvbnRyb2xzL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy8iLCJzb3VyY2VzIjpbImNvbnRyb2xzL211bHRpbGFuZ3VhZ2UvbXVsdGlsYW5ndWFnZW1lbnVpdGVtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdHOztHQUVHO0FBV0gsTUFBTSxPQUFPLHVDQUF3QyxTQUFRLDhCQUE4QjtJQUN2Rix1QkFBdUI7SUFFdkI7O09BRUc7SUFDSDtRQUNJLEtBQUssRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBbEJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsNkJBQTZCO2dCQUN2Qywyd0JBQWlEO2dCQUNqRCxTQUFTLEVBQUU7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLHdCQUF3Qjt3QkFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztxQkFDekU7aUJBQ0o7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FjQ29udGV4dG1lbnVJdGVtQnV0dG9uQ29tbW9uLCBTYWNDb250ZXh0bWVudUl0ZW1Db21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgbWVudSBlbnRyeSBpbiBjb250ZXh0IG1lbnVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYWMtbXVsdGlsYW5ndWFnZW1lbnVidXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aWxhbmd1YWdlbWVudWl0ZW1idXR0b24uaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFNhY0NvbnRleHRtZW51SXRlbUNvbW1vbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY011bHRpbGFuZ3VhZ2VtZW51SXRlbUJ1dHRvbkNvbXBvbmVudCksXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2FjTXVsdGlsYW5ndWFnZW1lbnVJdGVtQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgU2FjQ29udGV4dG1lbnVJdGVtQnV0dG9uQ29tbW9uIHtcbiAgICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0b3JcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xufVxuIl19