primeng 18.0.6-lts → 18.0.7-lts

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 (236) hide show
  1. package/LICENSE.md +3 -3
  2. package/api/translation.d.ts +1 -0
  3. package/confirmdialog/confirmdialog.d.ts +1 -0
  4. package/dialog/dialog.d.ts +1 -0
  5. package/dynamicdialog/dynamicdialog-config.d.ts +1 -1
  6. package/editor/editor.d.ts +25 -4
  7. package/editor/editor.interface.d.ts +67 -9
  8. package/esm2022/api/translation.mjs +1 -1
  9. package/esm2022/autocomplete/autocomplete.mjs +1 -4
  10. package/esm2022/config/primeng.mjs +3 -2
  11. package/esm2022/confirmdialog/confirmdialog.mjs +41 -3
  12. package/esm2022/contextmenu/contextmenu.mjs +3 -3
  13. package/esm2022/datepicker/datepicker.mjs +10 -4
  14. package/esm2022/dialog/dialog.mjs +15 -4
  15. package/esm2022/dock/dock.mjs +2 -2
  16. package/esm2022/dynamicdialog/dynamicdialog-config.mjs +2 -2
  17. package/esm2022/editor/editor.interface.mjs +1 -1
  18. package/esm2022/editor/editor.mjs +61 -3
  19. package/esm2022/listbox/listbox.mjs +85 -10
  20. package/esm2022/listbox/style/listboxstyle.mjs +23 -1
  21. package/esm2022/megamenu/megamenu.mjs +2 -2
  22. package/esm2022/menu/menu.mjs +2 -2
  23. package/esm2022/menubar/menubar.mjs +2 -2
  24. package/esm2022/message/message.mjs +1 -1
  25. package/esm2022/multiselect/multiselect.mjs +6 -3
  26. package/esm2022/picklist/picklist.mjs +105 -32
  27. package/esm2022/radiobutton/radiobutton.mjs +4 -5
  28. package/esm2022/select/select.mjs +29 -14
  29. package/esm2022/table/style/tablestyle.mjs +2 -2
  30. package/esm2022/table/table.mjs +56 -22
  31. package/esm2022/tabs/tablist.mjs +2 -2
  32. package/esm2022/tag/tag.mjs +1 -1
  33. package/esm2022/terminal/terminal.mjs +22 -12
  34. package/esm2022/tieredmenu/tieredmenu.mjs +2 -2
  35. package/esm2022/treetable/treetable.mjs +9 -9
  36. package/fesm2022/primeng-accordion.mjs.map +1 -1
  37. package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
  38. package/fesm2022/primeng-api.mjs.map +1 -1
  39. package/fesm2022/primeng-autocomplete.mjs +0 -3
  40. package/fesm2022/primeng-autocomplete.mjs.map +1 -1
  41. package/fesm2022/primeng-autofocus.mjs.map +1 -1
  42. package/fesm2022/primeng-avatar.mjs.map +1 -1
  43. package/fesm2022/primeng-avatargroup.mjs.map +1 -1
  44. package/fesm2022/primeng-badge.mjs.map +1 -1
  45. package/fesm2022/primeng-base.mjs.map +1 -1
  46. package/fesm2022/primeng-basecomponent.mjs.map +1 -1
  47. package/fesm2022/primeng-blockui.mjs.map +1 -1
  48. package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
  49. package/fesm2022/primeng-button.mjs.map +1 -1
  50. package/fesm2022/primeng-buttongroup.mjs.map +1 -1
  51. package/fesm2022/primeng-calendar.mjs.map +1 -1
  52. package/fesm2022/primeng-card.mjs.map +1 -1
  53. package/fesm2022/primeng-carousel.mjs.map +1 -1
  54. package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
  55. package/fesm2022/primeng-chart.mjs.map +1 -1
  56. package/fesm2022/primeng-checkbox.mjs.map +1 -1
  57. package/fesm2022/primeng-chip.mjs.map +1 -1
  58. package/fesm2022/primeng-chips.mjs.map +1 -1
  59. package/fesm2022/primeng-colorpicker.mjs.map +1 -1
  60. package/fesm2022/primeng-config.mjs +2 -1
  61. package/fesm2022/primeng-config.mjs.map +1 -1
  62. package/fesm2022/primeng-confirmdialog.mjs +40 -2
  63. package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
  64. package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
  65. package/fesm2022/primeng-contextmenu.mjs +2 -2
  66. package/fesm2022/primeng-contextmenu.mjs.map +1 -1
  67. package/fesm2022/primeng-dataview.mjs.map +1 -1
  68. package/fesm2022/primeng-datepicker.mjs +9 -3
  69. package/fesm2022/primeng-datepicker.mjs.map +1 -1
  70. package/fesm2022/primeng-defer.mjs.map +1 -1
  71. package/fesm2022/primeng-dialog.mjs +14 -3
  72. package/fesm2022/primeng-dialog.mjs.map +1 -1
  73. package/fesm2022/primeng-divider.mjs.map +1 -1
  74. package/fesm2022/primeng-dock.mjs +1 -1
  75. package/fesm2022/primeng-dock.mjs.map +1 -1
  76. package/fesm2022/primeng-dom.mjs.map +1 -1
  77. package/fesm2022/primeng-dragdrop.mjs.map +1 -1
  78. package/fesm2022/primeng-drawer.mjs.map +1 -1
  79. package/fesm2022/primeng-dropdown.mjs.map +1 -1
  80. package/fesm2022/primeng-dynamicdialog.mjs +1 -1
  81. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
  82. package/fesm2022/primeng-editor.mjs +60 -2
  83. package/fesm2022/primeng-editor.mjs.map +1 -1
  84. package/fesm2022/primeng-fieldset.mjs.map +1 -1
  85. package/fesm2022/primeng-fileupload.mjs.map +1 -1
  86. package/fesm2022/primeng-floatlabel.mjs.map +1 -1
  87. package/fesm2022/primeng-fluid.mjs.map +1 -1
  88. package/fesm2022/primeng-focustrap.mjs.map +1 -1
  89. package/fesm2022/primeng-galleria.mjs.map +1 -1
  90. package/fesm2022/primeng-iconfield.mjs.map +1 -1
  91. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
  92. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
  93. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
  94. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
  95. package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
  96. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
  97. package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
  98. package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
  99. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
  100. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
  101. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
  102. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
  103. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
  104. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
  105. package/fesm2022/primeng-icons-ban.mjs.map +1 -1
  106. package/fesm2022/primeng-icons-bars.mjs.map +1 -1
  107. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
  108. package/fesm2022/primeng-icons-blank.mjs.map +1 -1
  109. package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
  110. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
  111. package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
  112. package/fesm2022/primeng-icons-check.mjs.map +1 -1
  113. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
  114. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
  115. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
  116. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
  117. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
  118. package/fesm2022/primeng-icons-eye.mjs.map +1 -1
  119. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
  120. package/fesm2022/primeng-icons-filter.mjs.map +1 -1
  121. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
  122. package/fesm2022/primeng-icons-home.mjs.map +1 -1
  123. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
  124. package/fesm2022/primeng-icons-minus.mjs.map +1 -1
  125. package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
  126. package/fesm2022/primeng-icons-plus.mjs.map +1 -1
  127. package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
  128. package/fesm2022/primeng-icons-search.mjs.map +1 -1
  129. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
  130. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
  131. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
  132. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
  133. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
  134. package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
  135. package/fesm2022/primeng-icons-star.mjs.map +1 -1
  136. package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
  137. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
  138. package/fesm2022/primeng-icons-times.mjs.map +1 -1
  139. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
  140. package/fesm2022/primeng-icons-trash.mjs.map +1 -1
  141. package/fesm2022/primeng-icons-undo.mjs.map +1 -1
  142. package/fesm2022/primeng-icons-upload.mjs.map +1 -1
  143. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
  144. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
  145. package/fesm2022/primeng-iftalabel.mjs.map +1 -1
  146. package/fesm2022/primeng-image.mjs.map +1 -1
  147. package/fesm2022/primeng-imagecompare.mjs.map +1 -1
  148. package/fesm2022/primeng-inplace.mjs.map +1 -1
  149. package/fesm2022/primeng-inputgroup.mjs.map +1 -1
  150. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
  151. package/fesm2022/primeng-inputicon.mjs.map +1 -1
  152. package/fesm2022/primeng-inputmask.mjs.map +1 -1
  153. package/fesm2022/primeng-inputnumber.mjs.map +1 -1
  154. package/fesm2022/primeng-inputotp.mjs.map +1 -1
  155. package/fesm2022/primeng-inputswitch.mjs.map +1 -1
  156. package/fesm2022/primeng-inputtext.mjs.map +1 -1
  157. package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
  158. package/fesm2022/primeng-keyfilter.mjs.map +1 -1
  159. package/fesm2022/primeng-knob.mjs.map +1 -1
  160. package/fesm2022/primeng-listbox.mjs +107 -10
  161. package/fesm2022/primeng-listbox.mjs.map +1 -1
  162. package/fesm2022/primeng-megamenu.mjs +1 -1
  163. package/fesm2022/primeng-megamenu.mjs.map +1 -1
  164. package/fesm2022/primeng-menu.mjs +1 -1
  165. package/fesm2022/primeng-menu.mjs.map +1 -1
  166. package/fesm2022/primeng-menubar.mjs +1 -1
  167. package/fesm2022/primeng-menubar.mjs.map +1 -1
  168. package/fesm2022/primeng-message.mjs.map +1 -1
  169. package/fesm2022/primeng-messages.mjs.map +1 -1
  170. package/fesm2022/primeng-metergroup.mjs.map +1 -1
  171. package/fesm2022/primeng-multiselect.mjs +5 -2
  172. package/fesm2022/primeng-multiselect.mjs.map +1 -1
  173. package/fesm2022/primeng-orderlist.mjs.map +1 -1
  174. package/fesm2022/primeng-organizationchart.mjs.map +1 -1
  175. package/fesm2022/primeng-overlay.mjs.map +1 -1
  176. package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
  177. package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
  178. package/fesm2022/primeng-paginator.mjs.map +1 -1
  179. package/fesm2022/primeng-panel.mjs.map +1 -1
  180. package/fesm2022/primeng-panelmenu.mjs.map +1 -1
  181. package/fesm2022/primeng-password.mjs.map +1 -1
  182. package/fesm2022/primeng-picklist.mjs +104 -31
  183. package/fesm2022/primeng-picklist.mjs.map +1 -1
  184. package/fesm2022/primeng-popover.mjs.map +1 -1
  185. package/fesm2022/primeng-progressbar.mjs.map +1 -1
  186. package/fesm2022/primeng-progressspinner.mjs.map +1 -1
  187. package/fesm2022/primeng-radiobutton.mjs +3 -4
  188. package/fesm2022/primeng-radiobutton.mjs.map +1 -1
  189. package/fesm2022/primeng-rating.mjs.map +1 -1
  190. package/fesm2022/primeng-ripple.mjs.map +1 -1
  191. package/fesm2022/primeng-scroller.mjs.map +1 -1
  192. package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
  193. package/fesm2022/primeng-scrolltop.mjs.map +1 -1
  194. package/fesm2022/primeng-select.mjs +28 -13
  195. package/fesm2022/primeng-select.mjs.map +1 -1
  196. package/fesm2022/primeng-selectbutton.mjs.map +1 -1
  197. package/fesm2022/primeng-sidebar.mjs.map +1 -1
  198. package/fesm2022/primeng-skeleton.mjs.map +1 -1
  199. package/fesm2022/primeng-slider.mjs.map +1 -1
  200. package/fesm2022/primeng-speeddial.mjs.map +1 -1
  201. package/fesm2022/primeng-splitbutton.mjs.map +1 -1
  202. package/fesm2022/primeng-splitter.mjs.map +1 -1
  203. package/fesm2022/primeng-stepper.mjs.map +1 -1
  204. package/fesm2022/primeng-steps.mjs.map +1 -1
  205. package/fesm2022/primeng-styleclass.mjs.map +1 -1
  206. package/fesm2022/primeng-table.mjs +57 -23
  207. package/fesm2022/primeng-table.mjs.map +1 -1
  208. package/fesm2022/primeng-tabmenu.mjs.map +1 -1
  209. package/fesm2022/primeng-tabs.mjs +1 -1
  210. package/fesm2022/primeng-tabs.mjs.map +1 -1
  211. package/fesm2022/primeng-tabview.mjs.map +1 -1
  212. package/fesm2022/primeng-tag.mjs.map +1 -1
  213. package/fesm2022/primeng-terminal.mjs +21 -11
  214. package/fesm2022/primeng-terminal.mjs.map +1 -1
  215. package/fesm2022/primeng-textarea.mjs.map +1 -1
  216. package/fesm2022/primeng-tieredmenu.mjs +1 -1
  217. package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
  218. package/fesm2022/primeng-timeline.mjs.map +1 -1
  219. package/fesm2022/primeng-toast.mjs.map +1 -1
  220. package/fesm2022/primeng-togglebutton.mjs.map +1 -1
  221. package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
  222. package/fesm2022/primeng-toolbar.mjs.map +1 -1
  223. package/fesm2022/primeng-tooltip.mjs.map +1 -1
  224. package/fesm2022/primeng-tree.mjs.map +1 -1
  225. package/fesm2022/primeng-treeselect.mjs.map +1 -1
  226. package/fesm2022/primeng-treetable.mjs +8 -8
  227. package/fesm2022/primeng-treetable.mjs.map +1 -1
  228. package/fesm2022/primeng-usestyle.mjs.map +1 -1
  229. package/fesm2022/primeng-utils.mjs.map +1 -1
  230. package/listbox/listbox.d.ts +27 -1
  231. package/message/message.d.ts +1 -1
  232. package/multiselect/multiselect.d.ts +1 -1
  233. package/package.json +335 -335
  234. package/table/table.d.ts +10 -2
  235. package/tag/tag.d.ts +1 -1
  236. package/terminal/terminal.d.ts +2 -1
@@ -164,7 +164,7 @@ export class TabList extends BaseComponent {
164
164
  const scrollLeft = Math.abs(_content.scrollLeft);
165
165
  const [width, height] = [getWidth(_content), getHeight(_content)];
166
166
  this.isPrevButtonEnabled.set(scrollLeft !== 0);
167
- this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && scrollLeft !== scrollWidth - width);
167
+ this.isNextButtonEnabled.set(_list.offsetWidth >= offsetWidth && Math.abs(scrollLeft - scrollWidth + width) > 1);
168
168
  }
169
169
  updateInkBar() {
170
170
  const _content = this.content.nativeElement;
@@ -302,4 +302,4 @@ export class TabList extends BaseComponent {
302
302
  args: ['tabs']
303
303
  }] }); })();
304
304
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TabList, { className: "TabList" }); })();
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sRUFBZSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDblAsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBY1Ysd0JBQXVGOzs7SUFBdkYsdUdBQXdFOzs7SUFBekQsc0ZBQXVEOzs7SUFFdEUsa0NBQW1COzs7O0lBSjNCLHFDQUF5TztJQUE5QiwyS0FBUywwQkFBbUIsS0FBQztJQUdsTyxBQUZGLG9GQUE2QywwRUFFcEM7SUFHYixpQkFBUzs7OztJQUxMLGVBSUM7SUFKRCw2RUFJQzs7O0lBWUcsd0JBQXVGOzs7SUFBdkYsdUdBQXdFOzs7SUFBekQsc0ZBQXVEOzs7SUFFdEUsbUNBQW9COzs7O0lBSjVCLHFDQUF5TztJQUE5QiwyS0FBUywwQkFB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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIGluamVjdCwgUXVlcnlMaXN0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaW5kU2luZ2xlLCBnZXRIZWlnaHQsIGdldE9mZnNldCwgZ2V0T3V0ZXJXaWR0aCwgZ2V0V2lkdGgsIGlzUlRMIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hldnJvbkxlZnRJY29uLCBDaGV2cm9uUmlnaHRJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBSaXBwbGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBUYWJzIH0gZnJvbSAnLi90YWJzJztcblxuLyoqXG4gKiBUYWJMaXN0IGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgVGFicyBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtdGFibGlzdCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBDaGV2cm9uTGVmdEljb24sIENoZXZyb25SaWdodEljb24sIFJpcHBsZU1vZHVsZSwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICBAaWYgKHNob3dOYXZpZ2F0b3JzKCkgJiYgaXNQcmV2QnV0dG9uRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjcHJldkJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwicC10YWJsaXN0LW5hdi1idXR0b24gcC10YWJsaXN0LXByZXYtYnV0dG9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJwcmV2QnV0dG9uQXJpYUxhYmVsXCIgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbYXR0ci5kYXRhLXBjLWdyb3VwLXNlY3Rpb25dPVwiJ25hdmlnYXRvcidcIiAoY2xpY2spPVwib25QcmV2QnV0dG9uQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIEBpZiAocHJldkljb25UZW1wbGF0ZSB8fCBfcHJldkljb25UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJldkljb25UZW1wbGF0ZSB8fCBfcHJldkljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkxlZnRJY29uIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiAjY29udGVudCBjbGFzcz1cInAtdGFibGlzdC1jb250ZW50XCIgW25nQ2xhc3NdPVwieyAncC10YWJsaXN0LXZpZXdwb3J0Jzogc2Nyb2xsYWJsZSgpIH1cIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgI3RhYnMgY2xhc3M9XCJwLXRhYmxpc3QtdGFiLWxpc3RcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICA8c3BhbiAjaW5rYmFyIHJvbGU9XCJwcmVzZW50YXRpb25cIiBjbGFzcz1cInAtdGFibGlzdC1hY3RpdmUtYmFyXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidpbmtiYXInXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKHNob3dOYXZpZ2F0b3JzKCkgJiYgaXNOZXh0QnV0dG9uRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjbmV4dEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwicC10YWJsaXN0LW5hdi1idXR0b24gcC10YWJsaXN0LW5leHQtYnV0dG9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXh0QnV0dG9uQXJpYUxhYmVsXCIgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbYXR0ci5kYXRhLXBjLWdyb3VwLXNlY3Rpb25dPVwiJ25hdmlnYXRvcidcIiAoY2xpY2spPVwib25OZXh0QnV0dG9uQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIEBpZiAobmV4dEljb25UZW1wbGF0ZSB8fCBfbmV4dEljb25UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibmV4dEljb25UZW1wbGF0ZSB8fCBfbmV4dEljb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXRhYmxpc3RdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJ0YWJsaXN0XCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJMaXN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIEEgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyB0aGUgcHJldmlvdXMgaWNvbiBpbiBhIFVJIGNvbXBvbmVudC5cbiAgICAgKiBAdHlwZSB7VGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZH1cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncHJldmljb24nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBwcmV2SWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEEgdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyB0aGUgbmV4dCBpY29uIGluIGEgVUkgY29tcG9uZW50LlxuICAgICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkfVxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCduZXh0aWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIG5leHRJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgncHJldkJ1dHRvbicpIHByZXZCdXR0b246IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnbmV4dEJ1dHRvbicpIG5leHRCdXR0b246IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnaW5rYmFyJykgaW5rYmFyOiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCd0YWJzJykgdGFiczogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBwY1RhYnMgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBUYWJzKSk7XG5cbiAgICBpc1ByZXZCdXR0b25FbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGlzTmV4dEJ1dHRvbkVuYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIHNob3dOYXZpZ2F0b3JzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY1RhYnMuc2hvd05hdmlnYXRvcnMoKSk7XG5cbiAgICB0YWJpbmRleCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNUYWJzLnRhYmluZGV4KCkpO1xuXG4gICAgc2Nyb2xsYWJsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNUYWJzLnNjcm9sbGFibGUoKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGNUYWJzLnZhbHVlKCk7XG4gICAgICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlua0JhcigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgcHJldkJ1dHRvbkFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEucHJldmlvdXM7XG4gICAgfVxuXG4gICAgZ2V0IG5leHRCdXR0b25BcmlhTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLm5leHQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd05hdmlnYXRvcnMoKSAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvblN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLmJpbmRSZXNpemVPYnNlcnZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3ByZXZJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfbmV4dEljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0LmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXZpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJldkljb25UZW1wbGF0ZSA9IHQudGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ25leHRpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmV4dEljb25UZW1wbGF0ZSA9IHQudGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmRSZXNpemVPYnNlcnZlcigpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIG9uU2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2hvd05hdmlnYXRvcnMoKSAmJiB0aGlzLnVwZGF0ZUJ1dHRvblN0YXRlKCk7XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvblByZXZCdXR0b25DbGljaygpIHtcbiAgICAgICAgY29uc3QgX2NvbnRlbnQgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBnZXRXaWR0aChfY29udGVudCk7XG4gICAgICAgIGNvbnN0IHBvcyA9IE1hdGguYWJzKF9jb250ZW50LnNjcm9sbExlZnQpIC0gd2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSBwb3MgPD0gMCA/IDAgOiBwb3M7XG5cbiAgICAgICAgX2NvbnRlbnQuc2Nyb2xsTGVmdCA9IGlzUlRMKF9jb250ZW50KSA/IC0xICogc2Nyb2xsTGVmdCA6IHNjcm9sbExlZnQ7XG4gICAgfVxuXG4gICAgb25OZXh0QnV0dG9uQ2xpY2soKSB7XG4gICAgICAgIGNvbnN0IF9jb250ZW50ID0gdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gZ2V0V2lkdGgoX2NvbnRlbnQpIC0gdGhpcy5nZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCk7XG4gICAgICAgIGNvbnN0IHBvcyA9IF9jb250ZW50LnNjcm9sbExlZnQgKyB3aWR0aDtcbiAgICAgICAgY29uc3QgbGFzdFBvcyA9IF9jb250ZW50LnNjcm9sbFdpZHRoIC0gd2lkdGg7XG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSBwb3MgPj0gbGFzdFBvcyA/IGxhc3RQb3MgOiBwb3M7XG5cbiAgICAgICAgX2NvbnRlbnQuc2Nyb2xsTGVmdCA9IGlzUlRMKF9jb250ZW50KSA/IC0xICogc2Nyb2xsTGVmdCA6IHNjcm9sbExlZnQ7XG4gICAgfVxuXG4gICAgdXBkYXRlQnV0dG9uU3RhdGUoKSB7XG4gICAgICAgIGNvbnN0IF9jb250ZW50ID0gdGhpcy5jb250ZW50Py5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBfbGlzdCA9IHRoaXMuZWw/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbFdpZHRoLCBzY3JvbGxIZWlnaHQsIG9mZnNldFdpZHRoLCBvZmZzZXRIZWlnaHQgfSA9IF9jb250ZW50O1xuICAgICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gTWF0aC5hYnMoX2NvbnRlbnQuc2Nyb2xsTGVmdCk7XG4gICAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IFtnZXRXaWR0aChfY29udGVudCksIGdldEhlaWdodChfY29udGVudCldO1xuXG4gICAgICAgIHRoaXMuaXNQcmV2QnV0dG9uRW5hYmxlZC5zZXQoc2Nyb2xsTGVmdCAhPT0gMCk7XG4gICAgICAgIHRoaXMuaXNOZXh0QnV0dG9uRW5hYmxlZC5zZXQoX2xpc3Qub2Zmc2V0V2lkdGggPj0gb2Zmc2V0V2lkdGggJiYgc2Nyb2xsTGVmdCAhPT0gc2Nyb2xsV2lkdGggLSB3aWR0aCk7XG4gICAgfVxuXG4gICAgdXBkYXRlSW5rQmFyKCkge1xuICAgICAgICBjb25zdCBfY29udGVudCA9IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBfaW5rYmFyID0gdGhpcy5pbmtiYXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgX3RhYnMgPSB0aGlzLnRhYnMubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSBmaW5kU2luZ2xlKF9jb250ZW50LCAnW2RhdGEtcGMtbmFtZT1cInRhYlwiXVtkYXRhLXAtYWN0aXZlPVwidHJ1ZVwiXScpO1xuXG4gICAgICAgIF9pbmtiYXIuc3R5bGUud2lkdGggPSBnZXRPdXRlcldpZHRoKGFjdGl2ZVRhYikgKyAncHgnO1xuICAgICAgICBfaW5rYmFyLnN0eWxlLmxlZnQgPSA8YW55PmdldE9mZnNldChhY3RpdmVUYWIpLmxlZnQgLSA8YW55PmdldE9mZnNldChfdGFicykubGVmdCArICdweCc7XG4gICAgfVxuXG4gICAgZ2V0VmlzaWJsZUJ1dHRvbldpZHRocygpIHtcbiAgICAgICAgY29uc3QgX3ByZXZCdG4gPSB0aGlzLnByZXZCdXR0b24/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IF9uZXh0QnRuID0gdGhpcy5uZXh0QnV0dG9uPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHJldHVybiBbX3ByZXZCdG4sIF9uZXh0QnRuXS5yZWR1Y2UoKGFjYywgZWwpID0+IChlbCA/IGFjYyArIGdldFdpZHRoKGVsKSA6IGFjYyksIDApO1xuICAgIH1cblxuICAgIGJpbmRSZXNpemVPYnNlcnZlcigpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLnVwZGF0ZUJ1dHRvblN0YXRlKCkpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICB1bmJpbmRSZXNpemVPYnNlcnZlcigpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90YWJzL3RhYmxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBbUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sRUFBZSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDblAsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBY1Ysd0JBQXVGOzs7SUFBdkYsdUdBQXdFOzs7SUFBekQsc0ZBQXVEOzs7SUFFdEUsa0NBQW1COzs7O0lBSjNCLHFDQUF5TztJQUE5QiwyS0FBUywwQkFBbUIsS0FBQztJQUdsTyxBQUZGLG9GQUE2QywwRUFFcEM7SUFHYixpQkFBUzs7OztJQUxMLGVBSUM7SUFKRCw2RUFJQzs7O0lBWUcsd0JBQXVGOzs7SUFBdkYsdUdBQXdFOzs7SUFBekQsc0ZBQXVEOzs7SUFFdEUsbUNBQW9COzs7O0lBSjVCLHFDQUF5TztJQUE5QiwyS0FBUywwQkFBbUIsS0FBQztJQUdsTyxBQUZGLG9GQUE2QywyRUFFcEM7SUFHYixpQkFBUzs7OztJQUxMLGVBSUM7SUFKRCw2RUFJQzs7QUE5QmpCOzs7R0FHRztBQXVDSCxNQUFNLE9BQU8sT0FBUSxTQUFRLGFBQWE7SUFDdEM7Ozs7T0FJRztJQUMrQyxnQkFBZ0IsQ0FBK0I7SUFDakc7Ozs7T0FJRztJQUMrQyxnQkFBZ0IsQ0FBK0I7SUFFakUsU0FBUyxDQUF1QztJQUUxRCxPQUFPLENBQTZCO0lBRWpDLFVBQVUsQ0FBZ0M7SUFFMUMsVUFBVSxDQUFnQztJQUU5QyxNQUFNLENBQThCO0lBRXRDLElBQUksQ0FBNkI7SUFFcEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUV4QyxtQkFBbUIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFN0MsbUJBQW1CLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTdDLGNBQWMsQ0FBa0I7SUFFaEMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFFOUQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFbEQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFdEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BCLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUErQjtJQUVoRCxpQkFBaUIsQ0FBK0I7SUFFaEQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QixRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixLQUFLLFVBQVU7b0JBQ1gsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7b0JBQ3BDLE1BQU07Z0JBQ1YsS0FBSyxVQUFVO29CQUNYLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO29CQUNwQyxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRWxELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDNUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUV0QyxRQUFRLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDekUsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNqRSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVsRCxRQUFRLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDekUsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDO1FBRXJDLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsUUFBUSxDQUFDO1FBQ3JGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxXQUFXLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUV0QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFFckYsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN0RCxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBUSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxHQUFRLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQzVGLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUM7UUFFaEQsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0wsQ0FBQztpR0EzSlEsT0FBTzs2REFBUCxPQUFPOzs7d0NBY0MsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MkNBZHJCLFNBQVM7WUFBVCw0QkFBQSxJQUFJLENBQUcsZ0JBQVAsSUFBSSxDQUFHOzs7O1lBakNaLG1FQUFpRDtZQVNqRCxpQ0FBdUg7WUFBNUIsK0hBQVUsb0JBQWdCLEtBQUM7WUFDbEgsaUNBQXFEO1lBQ2pELGtCQUF5QjtZQUN6Qiw2QkFBd0c7WUFFaEgsQUFESSxpQkFBTSxFQUNKO1lBQ04sbUVBQWlEOztZQWZqRCw0RUFRQztZQUN1QyxjQUFrRDtZQUFsRCxzRUFBa0Q7WUFHbkIsZUFBaUM7O1lBR3hHLGVBUUM7WUFSRCw0RUFRQzs0QkF6QkssWUFBWSxtQ0FBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxhQUFFLFlBQVk7O2lGQW1DNUUsT0FBTztjQXRDbkIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDO2dCQUN0RixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5QlQ7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxJQUFJLEVBQUU7b0JBQ0YsbUJBQW1CLEVBQUUsTUFBTTtvQkFDM0IscUJBQXFCLEVBQUUsTUFBTTtvQkFDN0IscUJBQXFCLEVBQUUsV0FBVztpQkFDckM7YUFDSjtvQkFPcUQsZ0JBQWdCO2tCQUFqRSxZQUFZO21CQUFDLFVBQVUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFNRSxnQkFBZ0I7a0JBQWpFLFlBQVk7bUJBQUMsVUFBVSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtZQUVoQixTQUFTO2tCQUF4QyxlQUFlO21CQUFDLGFBQWE7WUFFUixPQUFPO2tCQUE1QixTQUFTO21CQUFDLFNBQVM7WUFFSyxVQUFVO2tCQUFsQyxTQUFTO21CQUFDLFlBQVk7WUFFRSxVQUFVO2tCQUFsQyxTQUFTO21CQUFDLFlBQVk7WUFFRixNQUFNO2tCQUExQixTQUFTO21CQUFDLFFBQVE7WUFFQSxJQUFJO2tCQUF0QixTQUFTO21CQUFDLE1BQU07O2tGQXhCUixPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIGVmZmVjdCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgaW5qZWN0LCBRdWVyeUxpc3QsIHNpZ25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmRTaW5nbGUsIGdldEhlaWdodCwgZ2V0T2Zmc2V0LCBnZXRPdXRlcldpZHRoLCBnZXRXaWR0aCwgaXNSVEwgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGV2cm9uTGVmdEljb24sIENoZXZyb25SaWdodEljb24gfSBmcm9tICdwcmltZW5nL2ljb25zJztcbmltcG9ydCB7IFJpcHBsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7IFRhYnMgfSBmcm9tICcuL3RhYnMnO1xuXG4vKipcbiAqIFRhYkxpc3QgaXMgYSBoZWxwZXIgY29tcG9uZW50IGZvciBUYWJzIGNvbXBvbmVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC10YWJsaXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoZXZyb25MZWZ0SWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgUmlwcGxlTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZiAoc2hvd05hdmlnYXRvcnMoKSAmJiBpc1ByZXZCdXR0b25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNwcmV2QnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJwLXRhYmxpc3QtbmF2LWJ1dHRvbiBwLXRhYmxpc3QtcHJldi1idXR0b25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInByZXZCdXR0b25BcmlhTGFiZWxcIiBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiIFthdHRyLmRhdGEtcGMtZ3JvdXAtc2VjdGlvbl09XCInbmF2aWdhdG9yJ1wiIChjbGljayk9XCJvblByZXZCdXR0b25DbGljaygpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcmV2SWNvblRlbXBsYXRlIHx8IF9wcmV2SWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmV2SWNvblRlbXBsYXRlIHx8IF9wcmV2SWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uTGVmdEljb24gLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2ICNjb250ZW50IGNsYXNzPVwicC10YWJsaXN0LWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdwLXRhYmxpc3Qtdmlld3BvcnQnOiBzY3JvbGxhYmxlKCkgfVwiIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiAjdGFicyBjbGFzcz1cInAtdGFibGlzdC10YWItbGlzdFwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxzcGFuICNpbmtiYXIgcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwicC10YWJsaXN0LWFjdGl2ZS1iYXJcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2lua2JhcidcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2hvd05hdmlnYXRvcnMoKSAmJiBpc05leHRCdXR0b25FbmFibGVkKCkpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNuZXh0QnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJwLXRhYmxpc3QtbmF2LWJ1dHRvbiBwLXRhYmxpc3QtbmV4dC1idXR0b25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm5leHRCdXR0b25BcmlhTGFiZWxcIiBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiIFthdHRyLmRhdGEtcGMtZ3JvdXAtc2VjdGlvbl09XCInbmF2aWdhdG9yJ1wiIChjbGljayk9XCJvbk5leHRCdXR0b25DbGljaygpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChuZXh0SWNvblRlbXBsYXRlIHx8IF9uZXh0SWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuZXh0SWNvblRlbXBsYXRlIHx8IF9uZXh0SWNvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHRJY29uIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtdGFibGlzdF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1wYy1uYW1lXSc6ICdcInRhYmxpc3RcIidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYkxpc3QgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqXG4gICAgICogQSB0ZW1wbGF0ZSByZWZlcmVuY2UgdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZSBwcmV2aW91cyBpY29uIGluIGEgVUkgY29tcG9uZW50LlxuICAgICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkfVxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdwcmV2aWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIHByZXZJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQSB0ZW1wbGF0ZSByZWZlcmVuY2UgdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZSBuZXh0IGljb24gaW4gYSBVSSBjb21wb25lbnQuXG4gICAgICogQHR5cGUge1RlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWR9XG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ25leHRpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgbmV4dEljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdwcmV2QnV0dG9uJykgcHJldkJ1dHRvbjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCduZXh0QnV0dG9uJykgbmV4dEJ1dHRvbjogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdpbmtiYXInKSBpbmtiYXI6IEVsZW1lbnRSZWY8SFRNTFNwYW5FbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3RhYnMnKSB0YWJzOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIHBjVGFicyA9IGluamVjdChmb3J3YXJkUmVmKCgpID0+IFRhYnMpKTtcblxuICAgIGlzUHJldkJ1dHRvbkVuYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgaXNOZXh0QnV0dG9uRW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICByZXNpemVPYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgc2hvd05hdmlnYXRvcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjVGFicy5zaG93TmF2aWdhdG9ycygpKTtcblxuICAgIHRhYmluZGV4ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY1RhYnMudGFiaW5kZXgoKSk7XG5cbiAgICBzY3JvbGxhYmxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY1RhYnMuc2Nyb2xsYWJsZSgpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wY1RhYnMudmFsdWUoKTtcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW5rQmFyKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBwcmV2QnV0dG9uQXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNsYXRpb24uYXJpYS5wcmV2aW91cztcbiAgICB9XG5cbiAgICBnZXQgbmV4dEJ1dHRvbkFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEubmV4dDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5zaG93TmF2aWdhdG9ycygpICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQnV0dG9uU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuYmluZFJlc2l6ZU9ic2VydmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfcHJldkljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9uZXh0SWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKHQuZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAncHJldmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmV2SWNvblRlbXBsYXRlID0gdC50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbmV4dGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZXh0SWNvblRlbXBsYXRlID0gdC50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuYmluZFJlc2l6ZU9ic2VydmVyKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgb25TY3JvbGwoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zaG93TmF2aWdhdG9ycygpICYmIHRoaXMudXBkYXRlQnV0dG9uU3RhdGUoKTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uUHJldkJ1dHRvbkNsaWNrKCkge1xuICAgICAgICBjb25zdCBfY29udGVudCA9IHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCB3aWR0aCA9IGdldFdpZHRoKF9jb250ZW50KTtcbiAgICAgICAgY29uc3QgcG9zID0gTWF0aC5hYnMoX2NvbnRlbnQuc2Nyb2xsTGVmdCkgLSB3aWR0aDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHBvcyA8PSAwID8gMCA6IHBvcztcblxuICAgICAgICBfY29udGVudC5zY3JvbGxMZWZ0ID0gaXNSVEwoX2NvbnRlbnQpID8gLTEgKiBzY3JvbGxMZWZ0IDogc2Nyb2xsTGVmdDtcbiAgICB9XG5cbiAgICBvbk5leHRCdXR0b25DbGljaygpIHtcbiAgICAgICAgY29uc3QgX2NvbnRlbnQgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBnZXRXaWR0aChfY29udGVudCkgLSB0aGlzLmdldFZpc2libGVCdXR0b25XaWR0aHMoKTtcbiAgICAgICAgY29uc3QgcG9zID0gX2NvbnRlbnQuc2Nyb2xsTGVmdCArIHdpZHRoO1xuICAgICAgICBjb25zdCBsYXN0UG9zID0gX2NvbnRlbnQuc2Nyb2xsV2lkdGggLSB3aWR0aDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHBvcyA+PSBsYXN0UG9zID8gbGFzdFBvcyA6IHBvcztcblxuICAgICAgICBfY29udGVudC5zY3JvbGxMZWZ0ID0gaXNSVEwoX2NvbnRlbnQpID8gLTEgKiBzY3JvbGxMZWZ0IDogc2Nyb2xsTGVmdDtcbiAgICB9XG5cbiAgICB1cGRhdGVCdXR0b25TdGF0ZSgpIHtcbiAgICAgICAgY29uc3QgX2NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IF9saXN0ID0gdGhpcy5lbD8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsV2lkdGgsIHNjcm9sbEhlaWdodCwgb2Zmc2V0V2lkdGgsIG9mZnNldEhlaWdodCB9ID0gX2NvbnRlbnQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnQgPSBNYXRoLmFicyhfY29udGVudC5zY3JvbGxMZWZ0KTtcbiAgICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID0gW2dldFdpZHRoKF9jb250ZW50KSwgZ2V0SGVpZ2h0KF9jb250ZW50KV07XG5cbiAgICAgICAgdGhpcy5pc1ByZXZCdXR0b25FbmFibGVkLnNldChzY3JvbGxMZWZ0ICE9PSAwKTtcbiAgICAgICAgdGhpcy5pc05leHRCdXR0b25FbmFibGVkLnNldChfbGlzdC5vZmZzZXRXaWR0aCA+PSBvZmZzZXRXaWR0aCAmJiBNYXRoLmFicyhzY3JvbGxMZWZ0IC0gc2Nyb2xsV2lkdGggKyB3aWR0aCkgPiAxKTtcbiAgICB9XG5cbiAgICB1cGRhdGVJbmtCYXIoKSB7XG4gICAgICAgIGNvbnN0IF9jb250ZW50ID0gdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IF9pbmtiYXIgPSB0aGlzLmlua2Jhci5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBfdGFicyA9IHRoaXMudGFicy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IGZpbmRTaW5nbGUoX2NvbnRlbnQsICdbZGF0YS1wYy1uYW1lPVwidGFiXCJdW2RhdGEtcC1hY3RpdmU9XCJ0cnVlXCJdJyk7XG5cbiAgICAgICAgX2lua2Jhci5zdHlsZS53aWR0aCA9IGdldE91dGVyV2lkdGgoYWN0aXZlVGFiKSArICdweCc7XG4gICAgICAgIF9pbmtiYXIuc3R5bGUubGVmdCA9IDxhbnk+Z2V0T2Zmc2V0KGFjdGl2ZVRhYikubGVmdCAtIDxhbnk+Z2V0T2Zmc2V0KF90YWJzKS5sZWZ0ICsgJ3B4JztcbiAgICB9XG5cbiAgICBnZXRWaXNpYmxlQnV0dG9uV2lkdGhzKCkge1xuICAgICAgICBjb25zdCBfcHJldkJ0biA9IHRoaXMucHJldkJ1dHRvbj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgX25leHRCdG4gPSB0aGlzLm5leHRCdXR0b24/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgcmV0dXJuIFtfcHJldkJ0biwgX25leHRCdG5dLnJlZHVjZSgoYWNjLCBlbCkgPT4gKGVsID8gYWNjICsgZ2V0V2lkdGgoZWwpIDogYWNjKSwgMCk7XG4gICAgfVxuXG4gICAgYmluZFJlc2l6ZU9ic2VydmVyKCkge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHRoaXMudXBkYXRlQnV0dG9uU3RhdGUoKSk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHVuYmluZFJlc2l6ZU9ic2VydmVyKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -188,4 +188,4 @@ export class TagModule {
188
188
  }]
189
189
  }], null, null); })();
190
190
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TagModule, { imports: [Tag, SharedModule], exports: [Tag, SharedModule] }); })();
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhZy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQTBCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFNLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztJQWFoQywwQkFBOEQ7OztJQUFyQyxxQ0FBZ0I7OztJQUQ3Qyw2QkFBc0Q7SUFDbEQscUVBQXVEOzs7O0lBQVosY0FBVTtJQUFWLGtDQUFVOzs7O0lBR3JELDBFQUErRDs7O0lBRG5FLCtCQUErRDtJQUMzRCxzREFBK0Q7SUFDbkUsaUJBQU87OztJQURXLGNBQStDO0lBQS9DLDhFQUErQzs7QUFkekU7OztHQUdHO0FBdUJILE1BQU0sT0FBTyxHQUFJLFNBQVEsYUFBYTtJQUNsQzs7O09BR0c7SUFDSCxJQUFhLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWtEO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNEOzs7T0FHRztJQUNNLFVBQVUsQ0FBcUI7SUFDeEM7OztPQUdHO0lBQ00sUUFBUSxDQUFnRztJQUNqSDs7O09BR0c7SUFDTSxLQUFLLENBQXFCO0lBQ25D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QUNZLFNBQVMsY0FqRlQsR0FBRyxFQThFRyxZQUFZLGFBOUVsQixHQUFHLEVBK0VHLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdTdHlsZSB9IGZyb20gJy4vc3R5bGUvdGFnc3R5bGUnO1xuXG4vKipcbiAqIFRhZyBjb21wb25lbnQgaXMgdXNlZCB0byBjYXRlZ29yaXplIGNvbnRlbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtdGFnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWljb25UZW1wbGF0ZSAmJiAhX2ljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXRhZy1pY29uXCIgW25nQ2xhc3NdPVwiaWNvblwiICpuZ0lmPVwiaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicC10YWctaWNvblwiICpuZ0lmPVwiaWNvblRlbXBsYXRlIHx8IF9pY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZSB8fCBfaWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInAtdGFnLWxhYmVsXCI+e3sgdmFsdWUgfX08L3NwYW4+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1RhZ1N0eWxlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3NdJzogJ2NvbnRhaW5lckNsYXNzKCknLFxuICAgICAgICAnW3N0eWxlXSc6ICdzdHlsZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhZyBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgc3R5bGUoKTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZTtcbiAgICB9XG4gICAgc2V0IHN0eWxlKHZhbHVlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNldmVyaXR5IHR5cGUgb2YgdGhlIHRhZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXZlcml0eTogc3RyaW5nIHwgJ3N1Y2Nlc3MnIHwgJ3NlY29uZGFyeScgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJyB8ICdjb250cmFzdCcgfCB1bmRlZmluZWQgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIHRoZSB0YWcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJY29uIG9mIHRoZSB0YWcgdG8gZGlzcGxheSBuZXh0IHRvIHRoZSB2YWx1ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29ybmVycyBvZiB0aGUgdGFnIGFyZSByb3VuZGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByb3VuZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX3N0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFRhZ1N0eWxlKTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICBsZXQgY2xhc3NlcyA9ICdwLXRhZyBwLWNvbXBvbmVudCc7XG5cbiAgICAgICAgaWYgKHRoaXMuc2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gYCBwLXRhZy0ke3RoaXMuc2V2ZXJpdHl9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJvdW5kZWQpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gJyBwLXRhZy1yb3VuZGVkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnN0eWxlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gYCAke3RoaXMuc3R5bGVDbGFzc31gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUYWcsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1RhZywgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWdNb2R1bGUge31cbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RhZy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQTBCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFNLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztJQWFoQywwQkFBOEQ7OztJQUFyQyxxQ0FBZ0I7OztJQUQ3Qyw2QkFBc0Q7SUFDbEQscUVBQXVEOzs7O0lBQVosY0FBVTtJQUFWLGtDQUFVOzs7O0lBR3JELDBFQUErRDs7O0lBRG5FLCtCQUErRDtJQUMzRCxzREFBK0Q7SUFDbkUsaUJBQU87OztJQURXLGNBQStDO0lBQS9DLDhFQUErQzs7QUFkekU7OztHQUdHO0FBdUJILE1BQU0sT0FBTyxHQUFJLFNBQVEsYUFBYTtJQUNsQzs7O09BR0c7SUFDSCxJQUFhLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWtEO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNEOzs7T0FHRztJQUNNLFVBQVUsQ0FBcUI7SUFDeEM7OztPQUdHO0lBQ00sUUFBUSxDQUF1RjtJQUN4Rzs7O09BR0c7SUFDTSxLQUFLLENBQXFCO0lBQ25D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QUNZLFNBQVMsY0FqRlQsR0FBRyxFQThFRyxZQUFZLGFBOUVsQixHQUFHLEVBK0VHLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgYm9vbGVhbkF0dHJpYnV0ZSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWdTdHlsZSB9IGZyb20gJy4vc3R5bGUvdGFnc3R5bGUnO1xuXG4vKipcbiAqIFRhZyBjb21wb25lbnQgaXMgdXNlZCB0byBjYXRlZ29yaXplIGNvbnRlbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtdGFnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWljb25UZW1wbGF0ZSAmJiAhX2ljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXRhZy1pY29uXCIgW25nQ2xhc3NdPVwiaWNvblwiICpuZ0lmPVwiaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicC10YWctaWNvblwiICpuZ0lmPVwiaWNvblRlbXBsYXRlIHx8IF9pY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZSB8fCBfaWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInAtdGFnLWxhYmVsXCI+e3sgdmFsdWUgfX08L3NwYW4+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1RhZ1N0eWxlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3NdJzogJ2NvbnRhaW5lckNsYXNzKCknLFxuICAgICAgICAnW3N0eWxlXSc6ICdzdHlsZSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhZyBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgc3R5bGUoKTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZTtcbiAgICB9XG4gICAgc2V0IHN0eWxlKHZhbHVlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFNldmVyaXR5IHR5cGUgb2YgdGhlIHRhZy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ3NlY29uZGFyeScgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJyB8ICdjb250cmFzdCcgfCB1bmRlZmluZWQgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIFZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIHRoZSB0YWcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJY29uIG9mIHRoZSB0YWcgdG8gZGlzcGxheSBuZXh0IHRvIHRoZSB2YWx1ZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29ybmVycyBvZiB0aGUgdGFnIGFyZSByb3VuZGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByb3VuZGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnaWNvbicsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfaWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgX3N0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFRhZ1N0eWxlKTtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnRhaW5lckNsYXNzKCkge1xuICAgICAgICBsZXQgY2xhc3NlcyA9ICdwLXRhZyBwLWNvbXBvbmVudCc7XG5cbiAgICAgICAgaWYgKHRoaXMuc2V2ZXJpdHkpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gYCBwLXRhZy0ke3RoaXMuc2V2ZXJpdHl9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJvdW5kZWQpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gJyBwLXRhZy1yb3VuZGVkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnN0eWxlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgKz0gYCAke3RoaXMuc3R5bGVDbGFzc31gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUYWcsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW1RhZywgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWdNb2R1bGUge31cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, inject, Input, NgModule, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, inject, Input, NgModule, ViewChild, ViewEncapsulation } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { find } from '@primeuix/utils';
5
5
  import { SharedModule } from 'primeng/api';
@@ -9,14 +9,15 @@ import * as i0 from "@angular/core";
9
9
  import * as i1 from "./terminalservice";
10
10
  import * as i2 from "@angular/common";
11
11
  import * as i3 from "@angular/forms";
12
+ const _c0 = ["in"];
12
13
  function Terminal_div_1_Template(rf, ctx) { if (rf & 1) {
13
14
  i0.ɵɵelementStart(0, "div", 8);
14
15
  i0.ɵɵtext(1);
15
16
  i0.ɵɵelementEnd();
16
17
  } if (rf & 2) {
17
- const ctx_r2 = i0.ɵɵnextContext();
18
+ const ctx_r1 = i0.ɵɵnextContext();
18
19
  i0.ɵɵadvance();
19
- i0.ɵɵtextInterpolate(ctx_r2.welcomeMessage);
20
+ i0.ɵɵtextInterpolate(ctx_r1.welcomeMessage);
20
21
  } }
21
22
  function Terminal_div_3_Template(rf, ctx) { if (rf & 1) {
22
23
  i0.ɵɵelementStart(0, "div", 9)(1, "span", 6);
@@ -29,16 +30,16 @@ function Terminal_div_3_Template(rf, ctx) { if (rf & 1) {
29
30
  i0.ɵɵtext(6);
30
31
  i0.ɵɵelementEnd()();
31
32
  } if (rf & 2) {
32
- const command_r4 = ctx.$implicit;
33
- const ctx_r2 = i0.ɵɵnextContext();
33
+ const command_r3 = ctx.$implicit;
34
+ const ctx_r1 = i0.ɵɵnextContext();
34
35
  i0.ɵɵadvance(2);
35
- i0.ɵɵtextInterpolate(ctx_r2.prompt);
36
+ i0.ɵɵtextInterpolate(ctx_r1.prompt);
36
37
  i0.ɵɵadvance(2);
37
- i0.ɵɵtextInterpolate(command_r4.text);
38
+ i0.ɵɵtextInterpolate(command_r3.text);
38
39
  i0.ɵɵadvance();
39
40
  i0.ɵɵattribute("aria-live", "polite");
40
41
  i0.ɵɵadvance();
41
- i0.ɵɵtextInterpolate(command_r4.response);
42
+ i0.ɵɵtextInterpolate(command_r3.response);
42
43
  } }
43
44
  /**
44
45
  * Terminal is a text based user interface.
@@ -72,6 +73,7 @@ export class Terminal extends BaseComponent {
72
73
  commandProcessed;
73
74
  subscription;
74
75
  _componentStyle = inject(TerminalStyle);
76
+ inputRef;
75
77
  constructor(terminalService) {
76
78
  super();
77
79
  this.terminalService = terminalService;
@@ -113,10 +115,15 @@ export class Terminal extends BaseComponent {
113
115
  super.ngOnDestroy();
114
116
  }
115
117
  static ɵfac = function Terminal_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Terminal)(i0.ɵɵdirectiveInject(i1.TerminalService)); };
116
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Terminal, selectors: [["p-terminal"]], inputs: { welcomeMessage: "welcomeMessage", prompt: "prompt", style: "style", styleClass: "styleClass", response: "response" }, standalone: true, features: [i0.ɵɵProvidersFeature([TerminalStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 9, vars: 8, consts: [["in", ""], [3, "click", "ngClass", "ngStyle"], ["class", "p-terminal-welcome-message", 4, "ngIf"], [1, "p-terminal-command-list"], ["class", "p-terminal-command", 4, "ngFor", "ngForOf"], [1, "p-terminal-prompt"], [1, "p-terminal-prompt-label"], ["type", "text", "autocomplete", "off", "autofocus", "", 1, "p-terminal-prompt-value", 3, "ngModelChange", "keydown", "ngModel"], [1, "p-terminal-welcome-message"], [1, "p-terminal-command"], [1, "p-terminal-command-value"], [1, "p-terminal-command-response"]], template: function Terminal_Template(rf, ctx) { if (rf & 1) {
118
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Terminal, selectors: [["p-terminal"]], viewQuery: function Terminal_Query(rf, ctx) { if (rf & 1) {
119
+ i0.ɵɵviewQuery(_c0, 5);
120
+ } if (rf & 2) {
121
+ let _t;
122
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputRef = _t.first);
123
+ } }, inputs: { welcomeMessage: "welcomeMessage", prompt: "prompt", style: "style", styleClass: "styleClass", response: "response" }, standalone: true, features: [i0.ɵɵProvidersFeature([TerminalStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 9, vars: 8, consts: [["in", ""], [3, "click", "ngClass", "ngStyle"], ["class", "p-terminal-welcome-message", 4, "ngIf"], [1, "p-terminal-command-list"], ["class", "p-terminal-command", 4, "ngFor", "ngForOf"], [1, "p-terminal-prompt"], [1, "p-terminal-prompt-label"], ["type", "text", "autocomplete", "off", "autofocus", "", 1, "p-terminal-prompt-value", 3, "ngModelChange", "keydown", "ngModel"], [1, "p-terminal-welcome-message"], [1, "p-terminal-command"], [1, "p-terminal-command-value"], [1, "p-terminal-command-response"]], template: function Terminal_Template(rf, ctx) { if (rf & 1) {
117
124
  const _r1 = i0.ɵɵgetCurrentView();
118
125
  i0.ɵɵelementStart(0, "div", 1);
119
- i0.ɵɵlistener("click", function Terminal_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const in_r2 = i0.ɵɵreference(8); return i0.ɵɵresetView(ctx.focus(in_r2)); });
126
+ i0.ɵɵlistener("click", function Terminal_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.focus(ctx.inputRef.nativeElement)); });
120
127
  i0.ɵɵtemplate(1, Terminal_div_1_Template, 2, 1, "div", 2);
121
128
  i0.ɵɵelementStart(2, "div", 3);
122
129
  i0.ɵɵtemplate(3, Terminal_div_3_Template, 7, 4, "div", 4);
@@ -148,7 +155,7 @@ export class Terminal extends BaseComponent {
148
155
  standalone: true,
149
156
  imports: [CommonModule, FormsModule, SharedModule],
150
157
  template: `
151
- <div [ngClass]="'p-terminal p-component'" [ngStyle]="style" [class]="styleClass" (click)="focus(in)">
158
+ <div [ngClass]="'p-terminal p-component'" [ngStyle]="style" [class]="styleClass" (click)="focus(inputRef.nativeElement)">
152
159
  <div class="p-terminal-welcome-message" *ngIf="welcomeMessage">{{ welcomeMessage }}</div>
153
160
  <div class="p-terminal-command-list">
154
161
  <div class="p-terminal-command" *ngFor="let command of commands">
@@ -175,6 +182,9 @@ export class Terminal extends BaseComponent {
175
182
  type: Input
176
183
  }], styleClass: [{
177
184
  type: Input
185
+ }], inputRef: [{
186
+ type: ViewChild,
187
+ args: ['in']
178
188
  }], response: [{
179
189
  type: Input
180
190
  }] }); })();
@@ -192,4 +202,4 @@ export class TerminalModule {
192
202
  }]
193
203
  }], null, null); })();
194
204
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(TerminalModule, { imports: [Terminal, SharedModule], exports: [Terminal, SharedModule] }); })();
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVybWluYWwvdGVybWluYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBbUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7SUFhMUMsOEJBQStEO0lBQUEsWUFBb0I7SUFBQSxpQkFBTTs7O0lBQTFCLGNBQW9CO0lBQXBCLDJDQUFvQjs7O0lBRzNFLEFBREosOEJBQWlFLGNBQ3ZCO0lBQUEsWUFBWTtJQUFBLGlCQUFPO0lBQ3pELGdDQUF1QztJQUFBLFlBQWtCO0lBQUEsaUJBQU87SUFDaEUsK0JBQXFFO0lBQUEsWUFBc0I7SUFDL0YsQUFEK0YsaUJBQU0sRUFDL0Y7Ozs7SUFIb0MsZUFBWTtJQUFaLG1DQUFZO0lBQ1gsZUFBa0I7SUFBbEIscUNBQWtCO0lBQ2hCLGNBQTJCOztJQUFDLGNBQXNCO0lBQXRCLHlDQUFzQjs7QUFmL0c7OztHQUdHO0FBeUJILE1BQU0sT0FBTyxRQUFTLFNBQVEsYUFBYTtJQWtDcEI7SUFqQ25COzs7T0FHRztJQUNNLGNBQWMsQ0FBcUI7SUFDNUM7OztPQUdHO0lBQ00sTUFBTSxDQUFxQjtJQUNwQzs7O09BR0c7SUFDTSxLQUFLLENBQThDO0lBQzVEOzs7T0FHRztJQUNNLFVBQVUsQ0FBcUI7SUFFeEMsUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUVyQixPQUFPLENBQVU7SUFFakIsU0FBUyxDQUFXO0lBRXBCLGdCQUFnQixDQUFXO0lBRTNCLFlBQVksQ0FBZTtJQUUzQixlQUFlLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXhDLFlBQW1CLGVBQWdDO1FBQy9DLEtBQUssRUFBRSxDQUFDO1FBRE8sb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRS9DLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDNUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDekQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFvQjtRQUM5QixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQW9CO1FBQ3RCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUVELEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO2tHQWhGUSxRQUFROzZEQUFSLFFBQVEsa05BRk4sQ0FBQyxhQUFhLENBQUM7O1lBakJ0Qiw4QkFBcUc7WUFBcEIseUpBQVMsZ0JBQVMsS0FBQztZQUNoRyx5REFBK0Q7WUFDL0QsOEJBQXFDO1lBQ2pDLHlEQUFpRTtZQUtyRSxpQkFBTTtZQUVGLEFBREosOEJBQStCLGNBQ1c7WUFBQSxZQUFZO1lBQUEsaUJBQU87WUFDekQsbUNBQThJO1lBQXZILHVPQUFxQjtZQUFvRCxvSUFBVyx5QkFBcUIsS0FBQztZQUV6SSxBQURJLEFBREksaUJBQThJLEVBQzVJLEVBQ0o7O1lBYnNELDZCQUFvQjtZQUF0QyxBQUFyQyxrREFBb0Msc0JBQWtCO1lBQ2QsY0FBb0I7WUFBcEIseUNBQW9CO1lBRUwsZUFBVztZQUFYLHNDQUFXO1lBT3pCLGVBQVk7WUFBWixnQ0FBWTtZQUMzQixjQUFxQjtZQUFyQiwyQ0FBcUI7NEJBYjlDLFlBQVksK0NBQUUsV0FBVywyREFBRSxZQUFZOztpRkFxQnhDLFFBQVE7Y0F4QnBCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO2dCQUNsRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztLQWVUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO2FBQzdCO2dEQU1ZLGNBQWM7a0JBQXRCLEtBQUs7WUFLRyxNQUFNO2tCQUFkLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxVQUFVO2tCQUFsQixLQUFLO1lBbUNGLFFBQVE7a0JBRFgsS0FBSzs7a0ZBdERHLFFBQVE7QUF1RnJCLE1BQU0sT0FBTyxjQUFjO3dHQUFkLGNBQWM7NERBQWQsY0FBYztnRUFGYixRQUFRLEVBQUUsWUFBWSxFQURaLFlBQVk7O2lGQUd2QixjQUFjO2NBSjFCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO2FBQ3BDOzt3RkFDWSxjQUFjLGNBdkZkLFFBQVEsRUFxRkcsWUFBWSxhQXJGdkIsUUFBUSxFQW9GRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbmQgfSBmcm9tICdAcHJpbWV1aXgvdXRpbHMnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlcm1pbmFsU3R5bGUgfSBmcm9tICcuL3N0eWxlL3Rlcm1pbmFsc3R5bGUnO1xuaW1wb3J0IHsgVGVybWluYWxTZXJ2aWNlIH0gZnJvbSAnLi90ZXJtaW5hbHNlcnZpY2UnO1xuXG4vKipcbiAqIFRlcm1pbmFsIGlzIGEgdGV4dCBiYXNlZCB1c2VyIGludGVyZmFjZS5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC10ZXJtaW5hbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIidwLXRlcm1pbmFsIHAtY29tcG9uZW50J1wiIFtuZ1N0eWxlXT1cInN0eWxlXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIiAoY2xpY2spPVwiZm9jdXMoaW4pXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10ZXJtaW5hbC13ZWxjb21lLW1lc3NhZ2VcIiAqbmdJZj1cIndlbGNvbWVNZXNzYWdlXCI+e3sgd2VsY29tZU1lc3NhZ2UgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRlcm1pbmFsLWNvbW1hbmQtbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRlcm1pbmFsLWNvbW1hbmRcIiAqbmdGb3I9XCJsZXQgY29tbWFuZCBvZiBjb21tYW5kc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtdGVybWluYWwtcHJvbXB0LWxhYmVsXCI+e3sgcHJvbXB0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtdGVybWluYWwtY29tbWFuZC12YWx1ZVwiPnt7IGNvbW1hbmQudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdGVybWluYWwtY29tbWFuZC1yZXNwb25zZVwiIFthdHRyLmFyaWEtbGl2ZV09XCIncG9saXRlJ1wiPnt7IGNvbW1hbmQucmVzcG9uc2UgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdGVybWluYWwtcHJvbXB0XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXRlcm1pbmFsLXByb21wdC1sYWJlbFwiPnt7IHByb21wdCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgI2luIHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJjb21tYW5kXCIgY2xhc3M9XCJwLXRlcm1pbmFsLXByb21wdC12YWx1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIChrZXlkb3duKT1cImhhbmRsZUNvbW1hbmQoJGV2ZW50KVwiIGF1dG9mb2N1cyAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtUZXJtaW5hbFN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBUZXJtaW5hbCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEluaXRpYWwgdGV4dCB0byBkaXNwbGF5IG9uIHRlcm1pbmFsLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHdlbGNvbWVNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogUHJvbXB0IHRleHQgZm9yIGVhY2ggY29tbWFuZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwcm9tcHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGNvbW1hbmRzOiBhbnlbXSA9IFtdO1xuXG4gICAgY29tbWFuZCE6IHN0cmluZztcblxuICAgIGNvbnRhaW5lciE6IEVsZW1lbnQ7XG5cbiAgICBjb21tYW5kUHJvY2Vzc2VkITogYm9vbGVhbjtcblxuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFRlcm1pbmFsU3R5bGUpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlcm1pbmFsU2VydmljZTogVGVybWluYWxTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGVybWluYWxTZXJ2aWNlLnJlc3BvbnNlSGFuZGxlci5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRzW3RoaXMuY29tbWFuZHMubGVuZ3RoIC0gMV0ucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZFByb2Nlc3NlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gZmluZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICcucC10ZXJtaW5hbCcpWzBdO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tbWFuZFByb2Nlc3NlZCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc2Nyb2xsVG9wID0gdGhpcy5jb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kUHJvY2Vzc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCByZXNwb25zZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kc1t0aGlzLmNvbW1hbmRzLmxlbmd0aCAtIDFdLnJlc3BvbnNlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRQcm9jZXNzZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQ29tbWFuZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykge1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kcy5wdXNoKHsgdGV4dDogdGhpcy5jb21tYW5kIH0pO1xuICAgICAgICAgICAgdGhpcy50ZXJtaW5hbFNlcnZpY2Uuc2VuZENvbW1hbmQodGhpcy5jb21tYW5kKTtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZCA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBleHBvcnRzOiBbVGVybWluYWwsIFNoYXJlZE1vZHVsZV0sXG4gICAgaW1wb3J0czogW1Rlcm1pbmFsLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsTW9kdWxlIHt9XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVybWluYWwvdGVybWluYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBbUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsTCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztJQWExQyw4QkFBK0Q7SUFBQSxZQUFvQjtJQUFBLGlCQUFNOzs7SUFBMUIsY0FBb0I7SUFBcEIsMkNBQW9COzs7SUFHM0UsQUFESiw4QkFBaUUsY0FDdkI7SUFBQSxZQUFZO0lBQUEsaUJBQU87SUFDekQsZ0NBQXVDO0lBQUEsWUFBa0I7SUFBQSxpQkFBTztJQUNoRSwrQkFBcUU7SUFBQSxZQUFzQjtJQUMvRixBQUQrRixpQkFBTSxFQUMvRjs7OztJQUhvQyxlQUFZO0lBQVosbUNBQVk7SUFDWCxlQUFrQjtJQUFsQixxQ0FBa0I7SUFDaEIsY0FBMkI7O0lBQUMsY0FBc0I7SUFBdEIseUNBQXNCOztBQWYvRzs7O0dBR0c7QUF5QkgsTUFBTSxPQUFPLFFBQVMsU0FBUSxhQUFhO0lBb0NwQjtJQW5DbkI7OztPQUdHO0lBQ00sY0FBYyxDQUFxQjtJQUM1Qzs7O09BR0c7SUFDTSxNQUFNLENBQXFCO0lBQ3BDOzs7T0FHRztJQUNNLEtBQUss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QW9CO1lBRUwsZUFBVztZQUFYLHNDQUFXO1lBT3pCLGVBQVk7WUFBWixnQ0FBWTtZQUMzQixjQUFxQjtZQUFyQiwyQ0FBcUI7NEJBYjlDLFlBQVksK0NBQUUsV0FBVywyREFBRSxZQUFZOztpRkFxQnhDLFFBQVE7Y0F4QnBCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDO2dCQUNsRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztLQWVUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDO2FBQzdCO2dEQU1ZLGNBQWM7a0JBQXRCLEtBQUs7WUFLRyxNQUFNO2tCQUFkLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxVQUFVO2tCQUFsQixLQUFLO1lBY1csUUFBUTtrQkFBeEIsU0FBUzttQkFBQyxJQUFJO1lBdUJYLFFBQVE7a0JBRFgsS0FBSzs7a0ZBeERHLFFBQVE7QUF5RnJCLE1BQU0sT0FBTyxjQUFjO3dHQUFkLGNBQWM7NERBQWQsY0FBYztnRUFGYixRQUFRLEVBQUUsWUFBWSxFQURaLFlBQVk7O2lGQUd2QixjQUFjO2NBSjFCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO2FBQ3BDOzt3RkFDWSxjQUFjLGNBekZkLFFBQVEsRUF1RkcsWUFBWSxhQXZGdkIsUUFBUSxFQXNGRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE5nTW9kdWxlLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmluZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGVybWluYWxTdHlsZSB9IGZyb20gJy4vc3R5bGUvdGVybWluYWxzdHlsZSc7XG5pbXBvcnQgeyBUZXJtaW5hbFNlcnZpY2UgfSBmcm9tICcuL3Rlcm1pbmFsc2VydmljZSc7XG5cbi8qKlxuICogVGVybWluYWwgaXMgYSB0ZXh0IGJhc2VkIHVzZXIgaW50ZXJmYWNlLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXRlcm1pbmFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJ3AtdGVybWluYWwgcC1jb21wb25lbnQnXCIgW25nU3R5bGVdPVwic3R5bGVcIiBbY2xhc3NdPVwic3R5bGVDbGFzc1wiIChjbGljayk9XCJmb2N1cyhpbnB1dFJlZi5uYXRpdmVFbGVtZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtdGVybWluYWwtd2VsY29tZS1tZXNzYWdlXCIgKm5nSWY9XCJ3ZWxjb21lTWVzc2FnZVwiPnt7IHdlbGNvbWVNZXNzYWdlIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10ZXJtaW5hbC1jb21tYW5kLWxpc3RcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC10ZXJtaW5hbC1jb21tYW5kXCIgKm5nRm9yPVwibGV0IGNvbW1hbmQgb2YgY29tbWFuZHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXRlcm1pbmFsLXByb21wdC1sYWJlbFwiPnt7IHByb21wdCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXRlcm1pbmFsLWNvbW1hbmQtdmFsdWVcIj57eyBjb21tYW5kLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRlcm1pbmFsLWNvbW1hbmQtcmVzcG9uc2VcIiBbYXR0ci5hcmlhLWxpdmVdPVwiJ3BvbGl0ZSdcIj57eyBjb21tYW5kLnJlc3BvbnNlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRlcm1pbmFsLXByb21wdFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC10ZXJtaW5hbC1wcm9tcHQtbGFiZWxcIj57eyBwcm9tcHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0ICNpbiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY29tbWFuZFwiIGNsYXNzPVwicC10ZXJtaW5hbC1wcm9tcHQtdmFsdWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoa2V5ZG93bik9XCJoYW5kbGVDb21tYW5kKCRldmVudClcIiBhdXRvZm9jdXMgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbVGVybWluYWxTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGVybWluYWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHRleHQgdG8gZGlzcGxheSBvbiB0ZXJtaW5hbC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB3ZWxjb21lTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFByb21wdCB0ZXh0IGZvciBlYWNoIGNvbW1hbmQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcHJvbXB0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb21tYW5kczogYW55W10gPSBbXTtcblxuICAgIGNvbW1hbmQhOiBzdHJpbmc7XG5cbiAgICBjb250YWluZXIhOiBFbGVtZW50O1xuXG4gICAgY29tbWFuZFByb2Nlc3NlZCE6IGJvb2xlYW47XG5cbiAgICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChUZXJtaW5hbFN0eWxlKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2luJykgaW5wdXRSZWYhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlcm1pbmFsU2VydmljZTogVGVybWluYWxTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGVybWluYWxTZXJ2aWNlLnJlc3BvbnNlSGFuZGxlci5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRzW3RoaXMuY29tbWFuZHMubGVuZ3RoIC0gMV0ucmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZFByb2Nlc3NlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gZmluZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICcucC10ZXJtaW5hbCcpWzBdO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tbWFuZFByb2Nlc3NlZCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXIuc2Nyb2xsVG9wID0gdGhpcy5jb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kUHJvY2Vzc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCByZXNwb25zZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kc1t0aGlzLmNvbW1hbmRzLmxlbmd0aCAtIDFdLnJlc3BvbnNlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRQcm9jZXNzZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlQ29tbWFuZChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykge1xuICAgICAgICAgICAgdGhpcy5jb21tYW5kcy5wdXNoKHsgdGV4dDogdGhpcy5jb21tYW5kIH0pO1xuICAgICAgICAgICAgdGhpcy50ZXJtaW5hbFNlcnZpY2Uuc2VuZENvbW1hbmQodGhpcy5jb21tYW5kKTtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZCA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBleHBvcnRzOiBbVGVybWluYWwsIFNoYXJlZE1vZHVsZV0sXG4gICAgaW1wb3J0czogW1Rlcm1pbmFsLCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFRlcm1pbmFsTW9kdWxlIHt9XG4iXX0=