@sbb-esta/lyne-elements-dev 4.11.0-dev.1776664166 → 4.11.0-dev.1776680277

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 (34) hide show
  1. package/autocomplete/autocomplete.component.js +2 -1
  2. package/calendar/calendar/calendar.component.js +1 -1
  3. package/calendar/calendar.js +1 -1
  4. package/{calendar.component-DjQOyRGl.js → calendar.component-Cq0m3E48.js} +2 -2
  5. package/calendar.js +1 -1
  6. package/calendar.pure.js +1 -1
  7. package/core/controllers/overlay-position-controller.js +4 -1
  8. package/development/autocomplete/autocomplete.component.js +3 -2
  9. package/development/calendar/calendar/calendar.component.js +1 -1
  10. package/development/calendar/calendar.js +1 -1
  11. package/development/{calendar.component-6p9vsp-V.js → calendar.component-Dto81mQ8.js} +3 -2
  12. package/development/calendar.js +1 -1
  13. package/development/calendar.pure.js +1 -1
  14. package/development/clock.component-CVPv4mCp.js +1 -1
  15. package/development/core/controllers/overlay-position-controller.js +3 -2
  16. package/development/form-field/form-field/form-field.component.js +1 -1
  17. package/development/form-field/form-field.js +1 -1
  18. package/development/{form-field.component-DfMO_ihX.js → form-field.component-D0NJclvI.js} +3 -2
  19. package/development/form-field.js +1 -1
  20. package/development/form-field.pure.js +1 -1
  21. package/development/toast/toast.component.js +1 -1
  22. package/development/{toast.component-BnbpuU9L.js → toast.component-Cuvs3VnH.js} +3 -2
  23. package/development/toast.js +1 -1
  24. package/development/toast.pure.js +1 -1
  25. package/form-field/form-field/form-field.component.js +1 -1
  26. package/form-field/form-field.js +1 -1
  27. package/{form-field.component-Cx5Keg_p.js → form-field.component-Bqw-VgJF.js} +2 -1
  28. package/form-field.js +1 -1
  29. package/form-field.pure.js +1 -1
  30. package/package.json +2 -2
  31. package/toast/toast.component.js +1 -1
  32. package/{toast.component-BDE1vYLS.js → toast.component-CkNywQOZ.js} +2 -2
  33. package/toast.js +1 -1
  34. package/toast.pure.js +1 -1
@@ -3,7 +3,7 @@ import { SbbCalendarMonthElement } from "./calendar/calendar-month/calendar-mont
3
3
  import { SbbCalendarYearElement } from "./calendar/calendar-year/calendar-year.component.js";
4
4
  import { SbbCalendarWeekdayElement } from "./calendar/calendar-weekday/calendar-weekday.component.js";
5
5
  import { SbbCalendarWeeknumberElement } from "./calendar/calendar-weeknumber/calendar-weeknumber.component.js";
6
- import { n as SbbMonthChangeEvent, t as SbbCalendarElement } from "./calendar.component-6p9vsp-V.js";
6
+ import { n as SbbMonthChangeEvent, t as SbbCalendarElement } from "./calendar.component-Dto81mQ8.js";
7
7
  import "./calendar.pure.js";
8
8
  //#region src/elements/calendar.ts
9
9
  /** @entrypoint */
@@ -3,5 +3,5 @@ import { SbbCalendarMonthElement } from "./calendar/calendar-month/calendar-mont
3
3
  import { SbbCalendarYearElement } from "./calendar/calendar-year/calendar-year.component.js";
4
4
  import { SbbCalendarWeekdayElement } from "./calendar/calendar-weekday/calendar-weekday.component.js";
5
5
  import { SbbCalendarWeeknumberElement } from "./calendar/calendar-weeknumber/calendar-weeknumber.component.js";
6
- import { n as SbbMonthChangeEvent, t as SbbCalendarElement } from "./calendar.component-6p9vsp-V.js";
6
+ import { n as SbbMonthChangeEvent, t as SbbCalendarElement } from "./calendar.component-Dto81mQ8.js";
7
7
  export { SbbCalendarDayElement, SbbCalendarElement, SbbCalendarMonthElement, SbbCalendarWeekdayElement, SbbCalendarWeeknumberElement, SbbCalendarYearElement, SbbMonthChangeEvent };
@@ -287,4 +287,4 @@ var SbbClockElement = (() => {
287
287
  //#endregion
288
288
  export { SbbClockElement as t };
289
289
 
290
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2suY29tcG9uZW50LUNWUHY0bUNwLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jbG9jay9hc3NldHMvc2JiX2Nsb2NrX2ZhY2Uuc3ZnP3JhdyIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jbG9jay9hc3NldHMvc2JiX2Nsb2NrX2hvdXJzLnN2Zz9yYXciLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY2xvY2svYXNzZXRzL3NiYl9jbG9ja19taW51dGVzLnN2Zz9yYXciLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY2xvY2svYXNzZXRzL3NiYl9jbG9ja19zZWNvbmRzLnN2Zz9yYXciLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY2xvY2svY2xvY2suc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY2xvY2svY2xvY2suY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmb2N1c2FibGU9XFxcImZhbHNlXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMDUgMTA1XFxcIj48ZyBjbGFzcz1cXFwiZmFjZVxcXCI+PGNpcmNsZSBmaWxsPVxcXCJ2YXIoLS1zYmItY2xvY2stYmFja2dyb3VuZC1jb2xvcilcXFwiIGN4PVxcXCI1Mi41XFxcIiBjeT1cXFwiNTIuNVxcXCIgcj1cXFwiNTIuNVxcXCIvPjxwYXRoIGQ9XFxcIk01MC43NSA0aDMuNXYxMmgtMy41ek01MC43NSA4OWgzLjV2MTJoLTMuNXpNNzUuMjMzIDkuNjIzbDMuMDMgMS43NS02IDEwLjM5Mi0zLjAzLTEuNzV6TTMyLjczNCA4My4yMzNsMy4wMyAxLjc1LTYgMTAuMzkyLTMuMDMtMS43NXpNOTMuNjI4IDI2LjczMmwxLjc1IDMuMDMxLTEwLjM5MiA2LTEuNzUtMy4wM3pNMjAuMDE3IDY5LjIzNGwxLjc1IDMuMDMxLTEwLjM5MiA2LTEuNzUtMy4wM3pNMTAxIDUwLjc1djMuNUg4OXYtMy41ek0xNiA1MC43NXYzLjVINHYtMy41ek05NS4zNzkgNzUuMjMybC0xLjc1IDMuMDMxLTEwLjM5Mi02IDEuNzUtMy4wM3pNMjEuNzY2IDMyLjczNGwtMS43NSAzLjAzMS0xMC4zOTItNiAxLjc1LTMuMDN6TTc4LjI2NyA5My42M2wtMy4wMyAxLjc1LTYtMTAuMzkzIDMuMDMtMS43NXpNMzUuNzY2IDIwLjAxNWwtMy4wMyAxLjc1LTYtMTAuMzkyIDMuMDMtMS43NXpcXFwiLz48Zz48cGF0aCBkPVxcXCJNNTYuODczIDQuMTlsMS4zOTIuMTQ3LS4zNjYgMy40OC0xLjM5Mi0uMTQ1ek00Ny4xMDEgOTcuMTc3bDEuMzkzLjE0Ni0uMzY2IDMuNDgxLTEuMzkyLS4xNDZ6TTYxLjg5NiA0LjkxNGwxLjM3LjI5LS43MjggMy40MjQtMS4zNy0uMjl6TTQyLjQ1OCA5Ni4zNjZsMS4zNy4yOS0uNzI4IDMuNDI0LTEuMzctLjI5MXpNNjYuODI1IDYuMTU3bDEuMzMyLjQzMi0xLjA4MiAzLjMzLTEuMzMxLS40MzR6TTM3LjkzMSA5NS4wODVsMS4zMzIuNDMyLTEuMDgyIDMuMzMtMS4zMzEtLjQzM3pNNzEuNTg0IDcuOTA2bDEuMjguNTY5LTEuNDI0IDMuMTk3LTEuMjgtLjU3ek0zMy41NiA5My4zMmwxLjI3OC41NjktMS40MjMgMy4xOTctMS4yOC0uNTd6TTgwLjQ0IDEyLjg1MmwxLjEzMy44MjMtMi4wNTggMi44MzEtMS4xMzItLjgyM3pNMjUuNDgxIDg4LjQ5NGwxLjEzMy44MjItMi4wNTcgMi44MzItMS4xMzMtLjgyM3pNODQuNDMgMTUuOTg2bDEuMDQuOTM3LTIuMzQyIDIuNi0xLjA0LS45MzZ6TTIxLjg3IDg1LjQ2OWwxLjA0LjkzNi0yLjM0MSAyLjYwMS0xLjA0LS45Mzd6TTg4LjA3MiAxOS41MjJsLjkzNyAxLjA0LTIuNiAyLjM0My0uOTM3LTEuMDR6TTE4LjU5MyA4Mi4wODhsLjkzNyAxLjA0LTIuNjAxIDIuMzQyLS45MzctMS4wNHpNOTEuMzI4IDIzLjQyNWwuODIzIDEuMTMzLTIuODMyIDIuMDU3LS44MjMtMS4xMzJ6TTE1LjY4NCA3OC4zODVsLjgyMyAxLjEzMi0yLjgzMiAyLjA1OC0uODIyLTEuMTMzek05Ni41MiAzMi4xMjhsLjU3IDEuMjc5LTMuMTk4IDEuNDIzLS41Ny0xLjI3OHpNMTEuMTA5IDcwLjE2MWwuNTY5IDEuMjc5LTMuMTk3IDEuNDIzLS41Ny0xLjI3OXpNOTguNDA3IDM2Ljg1bC40MzMgMS4zMzItMy4zMyAxLjA4MS0uNDMyLTEuMzMxek05LjQ4MyA2NS43NGwuNDMyIDEuMzMtMy4zMjkgMS4wODItLjQzMi0xLjMzMXpNOTkuNzk1IDQxLjcyNmwuMjkxIDEuMzctMy40MjMuNzI3LS4yOS0xLjM3ek04LjM0IDYxLjE3bC4yOTIgMS4zNy0zLjQyNC43MjgtLjI5LTEuMzd6TTEwMC42NiA0Ni43M2wuMTQ2IDEuMzkzLTMuNDguMzY2LS4xNDctMS4zOTJ6TTcuNjc0IDU2LjUwNmwuMTQ2IDEuMzkyLTMuNDguMzY2LS4xNDctMS4zOTJ6TTEwMC44MTEgNTYuODczbC0uMTQ2IDEuMzkyLTMuNDgtLjM2NS4xNDUtMS4zOTN6TTcuODIxIDQ3LjEwMWwtLjE0NiAxLjM5Mi0zLjQ4LS4zNjUuMTQ1LTEuMzkzek0xMDAuMDkgNjEuODk1bC0uMjkxIDEuMzY5LTMuNDI0LS43MjguMjkxLTEuMzY5ek04LjYzMSA0Mi40NmwtLjI5MSAxLjM3LTMuNDIzLS43MjguMjktMS4zN3pNOTguODQgNjYuODI3bC0uNDMyIDEuMzMxLTMuMzI5LTEuMDgxLjQzMy0xLjMzMnpNOS45MTggMzcuOTNsLS40MzMgMS4zMzEtMy4zMjktMS4wODIuNDMzLTEuMzMxek05Ny4wOTggNzEuNTg1bC0uNTY5IDEuMjgtMy4xOTctMS40MjQuNTctMS4yOHpNMTEuNjc3IDMzLjU1OGwtLjU3IDEuMjgtMy4xOTctMS40MjQuNTctMS4yNzl6TTkyLjE0OSA4MC40MzlsLS44MjMgMS4xMzMtMi44MzItMi4wNTguODIzLTEuMTMyek0xNi41MDYgMjUuNDgybC0uODIzIDEuMTMzLTIuODMxLTIuMDU3LjgyMy0xLjEzM3pNODkuMDE3IDg0LjQzMWwtLjkzNyAxLjA0LTIuNi0yLjM0MS45MzYtMS4wNHpNMTkuNTI4IDIxLjg2OWwtLjkzNiAxLjA0LTIuNjAxLTIuMzQyLjkzNi0xLjA0ek04NS40OCA4OC4wNzZsLTEuMDQxLjkzNi0yLjM0Mi0yLjYgMS4wNC0uOTM3ek0yMi45MSAxOC41OWwtMS4wNC45MzctMi4zNDEtMi42MDEgMS4wNC0uOTM3ek04MS41NzQgOTEuMzI4bC0xLjEzMy44MjMtMi4wNTctMi44MzEgMS4xMzItLjgyM3pNMjYuNjE3IDE1LjY4NGwtMS4xMzMuODIzLTIuMDU3LTIuODMyIDEuMTMyLS44MjN6TTcyLjg3MyA5Ni41MjRsLTEuMjc5LjU3LTEuNDIzLTMuMTk4IDEuMjc4LS41N3pNMzQuODM4IDExLjEwNWwtMS4yNzkuNTctMS40MjMtMy4xOTggMS4yNzktLjU3ek02OC4xNTEgOTguNDA1bC0xLjMzMS40MzItMS4wODItMy4zMjkgMS4zMzItLjQzMnpNMzkuMjU5IDkuNDg1bC0xLjMzMi40MzMtMS4wODEtMy4zMyAxLjMzMS0uNDMyek02My4yNzIgOTkuNzk5bC0xLjM2OS4yOS0uNzI4LTMuNDIyIDEuMzctLjI5MXpNNDMuODMgOC4zMzdsLTEuMzY5LjI5MS0uNzI3LTMuNDIzIDEuMzctLjI5MXpNNTguMjcgMTAwLjY2MmwtMS4zOTMuMTQ2LS4zNjYtMy40OCAxLjM5My0uMTQ3ek00OC40OTQgNy42NzJsLTEuMzkyLjE0Ny0uMzY2LTMuNDgxIDEuMzkyLS4xNDd6XFxcIi8+PC9nPjwvZz48L3N2Zz5cXG5cIiIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmb2N1c2FibGU9XFxcImZhbHNlXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMDUgMTA1XFxcIj48cGF0aCBpZD1cXFwibW9kX2Nsb2NrX3N2Z19ob3Vyc1xcXCIgZD1cXFwiTTU1LjcgNjQuNWgtNi40bC42LTQ0aDUuMnpcXFwiLz48L3N2Zz5cXG5cIiIsImV4cG9ydCBkZWZhdWx0IFwiPHN2ZyBmb2N1c2FibGU9XFxcImZhbHNlXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAxMDUgMTA1XFxcIj48cGF0aCBkPVxcXCJNNTUuMSw2NC41aC01LjJsMC44LTU4aDMuNkw1NS4xLDY0LjV6XFxcIi8+PC9zdmc+XFxuXCIiLCJleHBvcnQgZGVmYXVsdCBcIjxzdmcgZm9jdXNhYmxlPVxcXCJmYWxzZVxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMTA1IDEwNVxcXCI+PHBhdGggZD1cXFwiTTU3LjgsMjEuM2MwLTIuOS0yLjQtNS4yLTUuMi01LjJzLTUuMywyLjMtNS4zLDUuMmMwLDIuNywyLDQuOCw0LjUsNS4yVjY5aDEuNVYyNi41QzU1LjgsMjYuMiw1Ny44LDI0LDU3LjgsMjEuM3pcXFwiLz48L3N2Zz5cXG5cIiIsIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29udGFpbjogY29udGVudDtcbn1cblxuLnNiYi1jbG9ja19fZmFjZSxcbi5zYmItY2xvY2tfX2hhbmQtaG91cnMsXG4uc2JiLWNsb2NrX19oYW5kLW1pbnV0ZXMsXG4uc2JiLWNsb2NrX19oYW5kLXNlY29uZHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG4gIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNiYi1jbG9ja19faGFuZC1ob3Vycyxcbi5zYmItY2xvY2tfX2hhbmQtbWludXRlcyxcbi5zYmItY2xvY2tfX2ZhY2Uge1xuICBmaWxsOiB2YXIoLS1zYmItY2xvY2stZmFjZS1jb2xvcik7XG59XG5cbi5zYmItY2xvY2tfX2hhbmQtbWludXRlcyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIDAuMnMpXG4gICAgY3ViaWMtYmV6aWVyKDAuNCwgMi4wOCwgMC41NSwgMC40NCk7XG5cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxIC8gMSkge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA0OS42MjUlO1xuICB9XG59XG5cbi5zYmItY2xvY2tfX2hhbmQtaG91cnMge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IDQzMjAwcztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHZhcigtLXNiYi1jbG9jay1hbmltYXRpb24tcGxheS1zdGF0ZSwgJ3BhdXNlZCcpO1xufVxuXG4uc2JiLWNsb2NrX19oYW5kLWhvdXJzLS1pbml0aWFsLWhvdXIge1xuICBhbmltYXRpb24tbmFtZTogaGFuZC1ob3Vycy1hbmltYXRpb24taW5pdGlhbC1ob3VyO1xuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1jbG9jay1ob3Vycy1hbmltYXRpb24tZHVyYXRpb24sIDBzKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHZhcigtLXNiYi1jbG9jay1hbmltYXRpb24tcGxheS1zdGF0ZSwgJ3BhdXNlZCcpO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xufVxuXG4uc2JiLWNsb2NrX19oYW5kLW1pbnV0ZXMtLW5vLXRyYW5zaXRpb24ge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4uc2JiLWNsb2NrX19oYW5kLXNlY29uZHMge1xuICBhbmltYXRpb24tbmFtZTogaGFuZC1zZWNvbmRzLWFuaW1hdGlvbjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiA2MHM7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHZhcigtLXNiYi1jbG9jay1hbmltYXRpb24tcGxheS1zdGF0ZSwgJ3BhdXNlZCcpO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgZmlsbDogdmFyKC0tc2JiLWNsb2NrLXNlY29uZHMtaGFuZC1jb2xvcik7XG59XG5cbi5zYmItY2xvY2tfX2hhbmQtc2Vjb25kcy0taW5pdGlhbC1taW51dGUge1xuICBhbmltYXRpb24tbmFtZTogaGFuZC1zZWNvbmRzLWFuaW1hdGlvbi1pbml0aWFsLW1pbnV0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1zYmItY2xvY2stc2Vjb25kcy1hbmltYXRpb24tZHVyYXRpb24sIDBzKTtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHZhcigtLXNiYi1jbG9jay1hbmltYXRpb24tcGxheS1zdGF0ZSwgJ3BhdXNlZCcpO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxO1xufVxuXG46aXMoLnNiYi1jbG9ja19faGFuZC1ob3VycywgLnNiYi1jbG9ja19faGFuZC1taW51dGVzLCAuc2JiLWNsb2NrX19oYW5kLXNlY29uZHMpIHtcbiAgOmhvc3QoOm5vdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSkgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGFuZC1ob3Vycy1hbmltYXRpb24taW5pdGlhbC1ob3VyIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWih2YXIoLS1zYmItY2xvY2staG91cnMtYW5pbWF0aW9uLXN0YXJ0LWFuZ2xlLCAwZGVnKSk7XG4gIH1cblxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGhhbmQtc2Vjb25kcy1hbmltYXRpb24ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpO1xuICB9XG5cbiAgOTcuNSUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGFuZC1zZWNvbmRzLWFuaW1hdGlvbi1pbml0aWFsLW1pbnV0ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVoodmFyKC0tc2JiLWNsb2NrLXNlY29uZHMtYW5pbWF0aW9uLXN0YXJ0LWFuZ2xlLCAwZGVnKSk7XG4gIH1cblxuICA5Ny41JSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gIH1cbn1cbiIsImltcG9ydCB7XG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICB1bnNhZmVDU1MsXG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUaW1lIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uL2NvcmUvc3R5bGVzLnRzJztcblxuaW1wb3J0IGNsb2NrRmFjZVNWRyBmcm9tICcuL2Fzc2V0cy9zYmJfY2xvY2tfZmFjZS5zdmc/cmF3JztcbmltcG9ydCBjbG9ja0hhbmRsZUhvdXJzU1ZHIGZyb20gJy4vYXNzZXRzL3NiYl9jbG9ja19ob3Vycy5zdmc/cmF3JztcbmltcG9ydCBjbG9ja0hhbmRsZU1pbnV0ZXNTVkcgZnJvbSAnLi9hc3NldHMvc2JiX2Nsb2NrX21pbnV0ZXMuc3ZnP3Jhdyc7XG5pbXBvcnQgY2xvY2tIYW5kbGVTZWNvbmRzU1ZHIGZyb20gJy4vYXNzZXRzL3NiYl9jbG9ja19zZWNvbmRzLnN2Zz9yYXcnO1xuaW1wb3J0IHN0eWxlIGZyb20gJy4vY2xvY2suc2Nzcz9pbmxpbmUnO1xuXG4vKiogTnVtYmVyIG9mIGhvdXJzIG9uIHRoZSBjbG9jayBmYWNlLiAqL1xuY29uc3QgVE9UQUxfSE9VUlNfT05fQ0xPQ0tfRkFDRSA9IDEyO1xuXG4vKiogTnVtYmVyIG9mIG1pbnV0ZXMgb24gdGhlIGNsb2NrIGZhY2UuICovXG5jb25zdCBUT1RBTF9NSU5VVEVTX09OX0NMT0NLX0ZBQ0UgPSA2MDtcblxuLyoqIE51bWJlciBvZiBzZWNvbmRzIG9uIHRoZSBjbG9jayBmYWNlLiAqL1xuY29uc3QgVE9UQUxfU0VDT05EU19PTl9DTE9DS19GQUNFID0gNjA7XG5cbi8qKiBUaW1lb3V0IGZvciB0aGUgY2xvY2sgc3RhcnQuICovXG5jb25zdCBJTklUSUFMX1RJTUVPVVRfRFVSQVRJT04gPSA1MDtcblxuLyoqIEFuZ2xlIGluIGEgc2luZ2xlIHJvdGF0aW9uLiAqL1xuY29uc3QgRlVMTF9BTkdMRSA9IDM2MDtcblxuLyoqIEFuZ2xlIGJldHdlZW4gdHdvIGNvbnNlY3V0aXZlIGhvdXJzOiAzNjAvMTIsIG1lYW5zIGEgZnVsbCByb3RhdGlvbiAvIG51bWJlciBvZiBob3VycyBpbiBhIHJvdGF0aW9uLiAqL1xuY29uc3QgSE9VUlNfQU5HTEUgPSAzMDtcblxuLyoqIEFuZ2xlIGJldHdlZW4gdHdvIGNvbnNlY3V0aXZlIG1pbnV0ZXM6IDM2MC82MCwgbWVhbnMgYSBmdWxsIHJvdGF0aW9uIC8gbnVtYmVyIG9mIG1pbnV0ZXMgaW4gb25lIGhvdXIuICovXG5jb25zdCBNSU5VVEVTX0FOR0xFID0gNjtcblxuLyoqIEFuZ2xlIGJldHdlZW4gdHdvIGNvbnNlY3V0aXZlIHNlY29uZHMgZm9yIFNCQiBjbG9jayBjdXN0b20gYmVoYXZpb3IuICovXG5jb25zdCBTQkJfU0VDT05EU19BTkdMRSA9IDM2MCAvIDU4LjU7XG5cbi8qKiBOdW1iZXIgb2Ygc2Vjb25kcyBpbiBhIG1pbnV0ZS4gKi9cbmNvbnN0IFNFQ09ORFNfSU5fQV9NSU5VVEUgPSA2MDtcblxuLyoqIE51bWJlciBvZiBzZWNvbmRzIGluIGFuIGhvdXIuICovXG5jb25zdCBTRUNPTkRTX0lOX0FOX0hPVVIgPSAzNjAwO1xuXG4vKiogQXMgYSBmYWxsYmFjayBtZWFzdXJlLCByZXNldCB0aGUgY2xvY2sgZXZlcnkgaGFsZiBhbiBob3VyICovXG5jb25zdCBSRVNFVF9JTlRFUlZBTCA9IFNFQ09ORFNfSU5fQU5fSE9VUiAvIDI7XG5cbmNvbnN0IEFERF9FVkVOVF9MSVNURU5FUl9PUFRJT05TOiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyA9IHtcbiAgb25jZTogdHJ1ZSxcbiAgcGFzc2l2ZTogdHJ1ZSxcbn07XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gYW5hbG9nIGNsb2NrIHdpdGggdGhlIGNsYXNzaWMgU0JCIGZhY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDbG9ja0VsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1jbG9jayc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgYSBzcGVjaWZpYyB0aW1lIHdoaWNoIHRoZSBjbG9jayBzaG91bGQgc2hvdyBzdGF0aWNhbGx5LlxuICAgKiBAcGFyYW0gdmFsdWUgSEg6TU06c3NcbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBhY2Nlc3NvciBub3c6IFNiYlRpbWUgfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGUgY2xvY2sgaXMgdGlja2luZyBvciBub3QgKi9cbiAgcHJpdmF0ZSBfc3RhdGU6ICdydW5uaW5nJyB8ICdwYXVzZWQnID0gJ3BhdXNlZCc7XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgaG91ciBoYW5kLiAqL1xuICBwcml2YXRlIF9jbG9ja0hhbmRIb3VycyE6IEhUTUxFbGVtZW50O1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIG1pbnV0ZSBoYW5kLiAqL1xuICBwcml2YXRlIF9jbG9ja0hhbmRNaW51dGVzITogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgc2Vjb25kIGhhbmQuICovXG4gIHByaXZhdGUgX2Nsb2NrSGFuZFNlY29uZHMhOiBIVE1MRWxlbWVudDtcblxuICAvKiogSG91cnMgdmFsdWUgZm9yIHRoZSBjdXJyZW50IGRhdGUuICovXG4gIHByaXZhdGUgX2hvdXJzITogbnVtYmVyO1xuXG4gIC8qKiBNaW51dGVzIHZhbHVlIGZvciB0aGUgY3VycmVudCBkYXRlLiAqL1xuICBwcml2YXRlIF9taW51dGVzITogbnVtYmVyO1xuXG4gIC8qKiBTZWNvbmRzIHZhbHVlIGZvciB0aGUgY3VycmVudCBkYXRlLiAqL1xuICBwcml2YXRlIF9zZWNvbmRzITogbnVtYmVyO1xuXG4gIC8qKiBNb3ZlIHRoZSBtaW51dGVzIGhhbmQgZXZlcnkgbWludXRlLiAqL1xuICBwcml2YXRlIF9oYW5kTW92ZW1lbnQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG5cbiAgcHJpdmF0ZSBfcmVzZXRJbnRlcnZhbElkPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgaG91cnMgaGFuZC4gKi9cbiAgcHJpdmF0ZSBfbW92ZUhvdXJzSGFuZEZuID0gKCk6IHZvaWQgPT4gdGhpcy5fbW92ZUhvdXJzSGFuZCgpO1xuXG4gIC8qKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgbWludXRlcyBoYW5kLiAqL1xuICBwcml2YXRlIF9tb3ZlTWludXRlc0hhbmRGbiA9ICgpOiB2b2lkID0+IHRoaXMuX21vdmVNaW51dGVzSGFuZCgpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5fcmVzZXRJbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5fcmVzZXRDbG9jaygpLCBSRVNFVF9JTlRFUlZBTCAqIDEwMDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbm93JykpIHtcbiAgICAgIHRoaXMuX3N0YXJ0T3JDb25maWd1cmVDbG9jaygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLl9oYW5kbGVQYWdlVmlzaWJpbGl0eUNoYW5nZSwgZmFsc2UpO1xuICAgICAgdGhpcy5fc3RhcnRPckNvbmZpZ3VyZUNsb2NrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3Jlc2V0SW50ZXJ2YWxJZCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVQYWdlVmlzaWJpbGl0eUNoYW5nZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZiAodGhpcy5ub3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgYXdhaXQgdGhpcy5fc3RvcENsb2NrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuX3N0YXJ0Q2xvY2soKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBhc3luYyBfc3RhcnRPckNvbmZpZ3VyZUNsb2NrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm5vdykge1xuICAgICAgYXdhaXQgdGhpcy5fc3RvcENsb2NrKCk7XG4gICAgICB0aGlzLl9yZXNldFNlY29uZHNIYW5kQW5pbWF0aW9uKCk7XG4gICAgICB0aGlzLl9zZXRIYW5kc1N0YXJ0aW5nUG9zaXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5fc3RhcnRDbG9jaygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTdGFydHMgdGhlIGNsb2NrIGJ5IGRlZmluaW5nIHRoZSBoYW5kcyBzdGFydGluZyBwb3NpdGlvbiB0aGVuIHN0YXJ0aW5nIHRoZSBhbmltYXRpb25zLiAqL1xuICBwcml2YXRlIGFzeW5jIF9zdGFydENsb2NrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX2Nsb2NrSGFuZEhvdXJzPy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2FuaW1hdGlvbmVuZCcsXG4gICAgICB0aGlzLl9tb3ZlSG91cnNIYW5kRm4sXG4gICAgICBBRERfRVZFTlRfTElTVEVORVJfT1BUSU9OUyxcbiAgICApO1xuICAgIHRoaXMuX2Nsb2NrSGFuZFNlY29uZHM/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnYW5pbWF0aW9uZW5kJyxcbiAgICAgIHRoaXMuX21vdmVNaW51dGVzSGFuZEZuLFxuICAgICAgQUREX0VWRU5UX0xJU1RFTkVSX09QVElPTlMsXG4gICAgKTtcblxuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3NldEhhbmRzU3RhcnRpbmdQb3NpdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1jbG9jay1hbmltYXRpb24tcGxheS1zdGF0ZScsICdydW5uaW5nJyk7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gJ3J1bm5pbmcnO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9LCBJTklUSUFMX1RJTUVPVVRfRFVSQVRJT04pLFxuICAgICk7XG4gIH1cblxuICAvKiogU3RvcHMgdGhlIGNsb2NrIGJ5IHJlbW92aW5nIGFsbCB0aGUgYW5pbWF0aW9ucy4gKi9cbiAgcHJpdmF0ZSBhc3luYyBfc3RvcENsb2NrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5faGFuZE1vdmVtZW50KTtcblxuICAgIHRoaXMuX3JlbW92ZVNlY29uZHNBbmltYXRpb25TdHlsZXMoKTtcbiAgICB0aGlzLl9yZW1vdmVIb3Vyc0FuaW1hdGlvblN0eWxlcygpO1xuXG4gICAgdGhpcy5fY2xvY2tIYW5kSG91cnM/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIHRoaXMuX21vdmVIb3Vyc0hhbmRGbik7XG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcz8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5fbW92ZU1pbnV0ZXNIYW5kRm4pO1xuXG4gICAgdGhpcy5fY2xvY2tIYW5kTWludXRlcz8uY2xhc3NMaXN0LmFkZCgnc2JiLWNsb2NrX19oYW5kLW1pbnV0ZXMtLW5vLXRyYW5zaXRpb24nKTtcblxuICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1jbG9jay1hbmltYXRpb24tcGxheS1zdGF0ZScsICdwYXVzZWQnKTtcbiAgICB0aGlzLl9zdGF0ZSA9ICdwYXVzZWQnO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzIGEgZmFsbGJhY2sgbWVhc3VyZSB0byBwcmV2ZW50IGRlLXN5bmMsIHJlc2V0IHRoZSBjbG9jayB0byB0aGUgc3lzdGVtIHRpbWUuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9yZXNldENsb2NrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9zdGF0ZSAhPT0gJ3J1bm5pbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuX3N0b3BDbG9jaygpO1xuICAgIGF3YWl0IHRoaXMuX3N0YXJ0Q2xvY2soKTtcbiAgfVxuXG4gIC8qKiBTZXQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGZvciB0aGUgdGhyZWUgaGFuZHMgb24gdGhlIGNsb2NrIGZhY2UuICovXG4gIHByaXZhdGUgX3NldEhhbmRzU3RhcnRpbmdQb3NpdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9hc3NpZ25DdXJyZW50VGltZSgpO1xuICAgIGNvbnN0IHJlbWFpbmluZ1NlY29uZHMgPSBUT1RBTF9TRUNPTkRTX09OX0NMT0NLX0ZBQ0UgLSB0aGlzLl9zZWNvbmRzO1xuICAgIGNvbnN0IHJlbWFpbmluZ01pbnV0ZXMgPSBUT1RBTF9NSU5VVEVTX09OX0NMT0NLX0ZBQ0UgLSB0aGlzLl9taW51dGVzO1xuICAgIGNvbnN0IHJlbWFpbmluZ0hvdXJzID0gVE9UQUxfSE9VUlNfT05fQ0xPQ0tfRkFDRSAtIHRoaXMuX2hvdXJzO1xuXG4gICAgbGV0IGhvdXJzQW5pbWF0aW9uRHVyYXRpb24gPSAwO1xuICAgIGxldCBoYXNSZW1haW5pbmdNaW51dGVzT3JTZWNvbmRzID0gMDtcblxuICAgIGlmIChyZW1haW5pbmdTZWNvbmRzID4gMCkge1xuICAgICAgaG91cnNBbmltYXRpb25EdXJhdGlvbiArPSByZW1haW5pbmdTZWNvbmRzO1xuICAgICAgaGFzUmVtYWluaW5nTWludXRlc09yU2Vjb25kcyA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHJlbWFpbmluZ01pbnV0ZXMgPiAwKSB7XG4gICAgICBob3Vyc0FuaW1hdGlvbkR1cmF0aW9uICs9XG4gICAgICAgIChyZW1haW5pbmdNaW51dGVzIC0gaGFzUmVtYWluaW5nTWludXRlc09yU2Vjb25kcykgKiBTRUNPTkRTX0lOX0FfTUlOVVRFO1xuICAgICAgaGFzUmVtYWluaW5nTWludXRlc09yU2Vjb25kcyA9IDE7XG4gICAgfVxuXG4gICAgaWYgKHJlbWFpbmluZ0hvdXJzID4gMCkge1xuICAgICAgaG91cnNBbmltYXRpb25EdXJhdGlvbiArPVxuICAgICAgICAocmVtYWluaW5nSG91cnMgLSBoYXNSZW1haW5pbmdNaW51dGVzT3JTZWNvbmRzKSAqIFNFQ09ORFNfSU5fQU5fSE9VUjtcbiAgICB9XG5cbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1jbG9jay1ob3Vycy1hbmltYXRpb24tc3RhcnQtYW5nbGUnLFxuICAgICAgYCR7TWF0aC5jZWlsKHRoaXMuX2hvdXJzICogSE9VUlNfQU5HTEUgKyB0aGlzLl9taW51dGVzIC8gMil9ZGVnYCxcbiAgICApO1xuICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KCctLXNiYi1jbG9jay1ob3Vycy1hbmltYXRpb24tZHVyYXRpb24nLCBgJHtob3Vyc0FuaW1hdGlvbkR1cmF0aW9ufXNgKTtcbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1jbG9jay1zZWNvbmRzLWFuaW1hdGlvbi1zdGFydC1hbmdsZScsXG4gICAgICBgJHtNYXRoLmNlaWwodGhpcy5fc2Vjb25kcyAqIFNCQl9TRUNPTkRTX0FOR0xFKX1kZWdgLFxuICAgICk7XG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLWNsb2NrLXNlY29uZHMtYW5pbWF0aW9uLWR1cmF0aW9uJywgYCR7cmVtYWluaW5nU2Vjb25kc31zYCk7XG5cbiAgICB0aGlzLl9zZXRNaW51dGVzSGFuZCgpO1xuXG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcz8uY2xhc3NMaXN0LmFkZCgnc2JiLWNsb2NrX19oYW5kLXNlY29uZHMtLWluaXRpYWwtbWludXRlJyk7XG4gICAgdGhpcy5fY2xvY2tIYW5kSG91cnM/LmNsYXNzTGlzdC5hZGQoJ3NiYi1jbG9ja19faGFuZC1ob3Vycy0taW5pdGlhbC1ob3VyJyk7XG5cbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbml0aWFsaXplZCcpO1xuICB9XG5cbiAgLyoqIEdpdmVuIHRoZSBjdXJyZW50IGRhdGUsIGNhbGN1bGF0ZXMgdGhlIGhoL21tL3NzIHZhbHVlcyBhbmQgdGhlIGhoL21tL3NzIGxlZnQgdG8gdGhlIG5leHQgbWlkbmlnaHQuICovXG4gIHByaXZhdGUgX2Fzc2lnbkN1cnJlbnRUaW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGUgPSB0aGlzLm5vdyA/IG51bGwgOiBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IFtob3VycywgbWludXRlcywgc2Vjb25kc10gPSBkYXRlXG4gICAgICA/IFtkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKV1cbiAgICAgIDogdGhpcy5ub3chLnNwbGl0KCc6JykubWFwKChwKSA9PiArcCk7XG5cbiAgICB0aGlzLl9ob3VycyA9IGhvdXJzICUgMTI7XG4gICAgdGhpcy5fbWludXRlcyA9IG1pbnV0ZXM7XG4gICAgdGhpcy5fc2Vjb25kcyA9IHNlY29uZHM7XG4gIH1cblxuICAvKiogU2V0IHRoZSBzdGFydGluZyBwb3NpdGlvbiBmb3IgdGhlIG1pbnV0ZXMgaGFuZC4gKi9cbiAgcHJpdmF0ZSBfc2V0TWludXRlc0hhbmQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvY2tIYW5kTWludXRlcz8uc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICAndHJhbnNmb3JtJyxcbiAgICAgIGByb3RhdGVaKCR7TWF0aC5jZWlsKHRoaXMuX21pbnV0ZXMgKiBNSU5VVEVTX0FOR0xFKX1kZWcpYCxcbiAgICApO1xuICB9XG5cbiAgLyoqIE1vdmUgdGhlIGhvdXJzIGhhbmQgdG8gdGhlIG5leHQgdmFsdWUuICovXG4gIHByaXZhdGUgX21vdmVIb3Vyc0hhbmQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlSG91cnNBbmltYXRpb25TdHlsZXMoKTtcblxuICAgIGxldCBob3Vyc0FuZ2xlID0gTWF0aC5jZWlsKHRoaXMuX2hvdXJzICogSE9VUlNfQU5HTEUgKyB0aGlzLl9taW51dGVzIC8gMik7XG5cbiAgICBpZiAoaG91cnNBbmdsZSA+PSBGVUxMX0FOR0xFKSB7XG4gICAgICBob3Vyc0FuZ2xlIC09IEZVTExfQU5HTEU7XG4gICAgfVxuXG4gICAgdGhpcy5fY2xvY2tIYW5kSG91cnM/LnN0eWxlLnNldFByb3BlcnR5KCd0cmFuc2Zvcm0nLCBgcm90YXRlWigke2hvdXJzQW5nbGV9ZGVnKWApO1xuICB9XG5cbiAgLyoqIE1vdmUgdGhlIG1pbnV0ZXMgaGFuZCB0byB0aGUgbmV4dCB2YWx1ZS4gKi9cbiAgcHJpdmF0ZSBfbW92ZU1pbnV0ZXNIYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb2NrSGFuZFNlY29uZHM/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIHRoaXMuX21vdmVNaW51dGVzSGFuZEZuKTtcblxuICAgIHRoaXMuX3JlbW92ZVNlY29uZHNBbmltYXRpb25TdHlsZXMoKTtcblxuICAgIHRoaXMuX2FkZE1pbnV0ZXNBbmRTZXRIYW5kcygpO1xuXG4gICAgdGhpcy5faGFuZE1vdmVtZW50ID0gc2V0SW50ZXJ2YWwoXG4gICAgICAoKSA9PiB0aGlzLl9hZGRNaW51dGVzQW5kU2V0SGFuZHMoKSxcbiAgICAgIFRPVEFMX1NFQ09ORFNfT05fQ0xPQ0tfRkFDRSAqIDEwMDAsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZE1pbnV0ZXNBbmRTZXRIYW5kcygpOiB2b2lkIHtcbiAgICB0aGlzLl9taW51dGVzKys7XG4gICAgdGhpcy5fc2V0TWludXRlc0hhbmQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmluZyBhbmltYXRpb24gYnkgb3ZlcnJpZGluZyB3aXRoIGVtcHR5IHN0cmluZyxcbiAgICogdGhlbiB0cmlnZ2VyaW5nIGEgcmVmbG93IGFuZCByZSBhZGQgb3JpZ2luYWwgYW5pbWF0aW9uIGJ5IHJlbW92aW5nIG92ZXJyaWRlLlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzZXRTZWNvbmRzSGFuZEFuaW1hdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Nsb2NrSGFuZFNlY29uZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcy5zdHlsZS5hbmltYXRpb24gPSAnJztcbiAgICAvLyBIYWNrIHRvIHRyaWdnZXIgcmVmbG93XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICB0aGlzLl9jbG9ja0hhbmRTZWNvbmRzLm9mZnNldEhlaWdodDtcbiAgICB0aGlzLl9jbG9ja0hhbmRTZWNvbmRzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdhbmltYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgdGhpcy5faGFuZGxlUGFnZVZpc2liaWxpdHlDaGFuZ2UpO1xuICAgIHRoaXMuX2Nsb2NrSGFuZEhvdXJzPy5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCB0aGlzLl9tb3ZlSG91cnNIYW5kRm4pO1xuICAgIHRoaXMuX2Nsb2NrSGFuZFNlY29uZHM/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIHRoaXMuX21vdmVNaW51dGVzSGFuZEZuKTtcbiAgICBjbGVhckludGVydmFsKHRoaXMuX2hhbmRNb3ZlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVIb3Vyc0FuaW1hdGlvblN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9ja0hhbmRIb3Vycz8uY2xhc3NMaXN0LnJlbW92ZSgnc2JiLWNsb2NrX19oYW5kLWhvdXJzLS1pbml0aWFsLWhvdXInKTtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1jbG9jay1ob3Vycy1hbmltYXRpb24tc3RhcnQtYW5nbGUnKTtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1jbG9jay1ob3Vycy1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZVNlY29uZHNBbmltYXRpb25TdHlsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcz8uY2xhc3NMaXN0LnJlbW92ZSgnc2JiLWNsb2NrX19oYW5kLXNlY29uZHMtLWluaXRpYWwtbWludXRlJyk7XG4gICAgdGhpcy5fY2xvY2tIYW5kTWludXRlcz8uY2xhc3NMaXN0LnJlbW92ZSgnc2JiLWNsb2NrX19oYW5kLW1pbnV0ZXMtLW5vLXRyYW5zaXRpb24nKTtcbiAgICB0aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLXNiYi1jbG9jay1zZWNvbmRzLWFuaW1hdGlvbi1zdGFydC1hbmdsZScpO1xuICAgIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2JiLWNsb2NrLXNlY29uZHMtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNsb2NrX19mYWNlXCIgLmlubmVySFRNTD0ke2Nsb2NrRmFjZVNWR30+PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJzYmItY2xvY2tfX2hhbmQtaG91cnNcIlxuICAgICAgICAuaW5uZXJIVE1MPSR7Y2xvY2tIYW5kbGVIb3Vyc1NWR31cbiAgICAgICAgJHtyZWYoKGU/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fY2xvY2tIYW5kSG91cnMgPSBlIGFzIEhUTUxTcGFuRWxlbWVudDtcbiAgICAgICAgfSl9XG4gICAgICA+PC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJzYmItY2xvY2tfX2hhbmQtbWludXRlcyBzYmItY2xvY2tfX2hhbmQtbWludXRlcy0tbm8tdHJhbnNpdGlvblwiXG4gICAgICAgIC5pbm5lckhUTUw9JHtjbG9ja0hhbmRsZU1pbnV0ZXNTVkd9XG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLl9jbG9ja0hhbmRNaW51dGVzID0gZWwgYXMgSFRNTFNwYW5FbGVtZW50O1xuICAgICAgICB9KX1cbiAgICAgID48L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNiYi1jbG9ja19faGFuZC1zZWNvbmRzXCJcbiAgICAgICAgLmlubmVySFRNTD0ke2Nsb2NrSGFuZGxlU2Vjb25kc1NWR31cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuX2Nsb2NrSGFuZFNlY29uZHMgPSBlbCBhcyBIVE1MU3BhbkVsZW1lbnQ7XG4gICAgICAgIH0pfVxuICAgICAgPjwvc3Bhbj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItY2xvY2snOiBTYmJDbG9ja0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUEseUJBQWU7OztBQ0FmLElBQUEsMEJBQWU7OztBQ0FmLElBQUEsNEJBQWU7OztBQ0FmLElBQUEsNEJBQWU7Ozs7Ozs7QUVzQmYsSUFBTSw0QkFBNEI7O0FBR2xDLElBQU0sOEJBQThCOztBQUdwQyxJQUFNLDhCQUE4Qjs7QUFHcEMsSUFBTSwyQkFBMkI7O0FBR2pDLElBQU0sYUFBYTs7QUFHbkIsSUFBTSxjQUFjOztBQUdwQixJQUFNLGdCQUFnQjs7QUFHdEIsSUFBTSxvQkFBb0IsTUFBTTs7QUFHaEMsSUFBTSxzQkFBc0I7O0FBRzVCLElBQU0scUJBQXFCOztBQUczQixJQUFNLGlCQUFpQixxQkFBcUI7QUFFNUMsSUFBTSw2QkFBc0Q7Q0FDMUQsTUFBTTtDQUNOLFNBQVM7Q0FDVjs7OztJQUtZLHlCQUFlO21CQUFTOzs7O2NBQXhCLHdCQUF3QixZQUFVOzs7QUFRakIsU0FBQSx1QkFBQSxrQkFBQSxNQUFBLG1CQUFzQixLQUFJOztBQUc5QyxRQUFBLFVBQU0sa0JBQUEsTUFBQSx1QkFBQSxFQUF5Qjs7QUEwQi9CLFFBQUEseUJBQStCLEtBQUssZ0JBQWdCOztBQUdwRCxRQUFBLDJCQUFpQyxLQUFLLGtCQUFrQjtBQStCeEQsUUFBQSw4QkFBOEIsWUFBMEI7QUFDOUQsUUFBSSxLQUFLLElBQ1A7QUFHRixRQUFJLFNBQVMsb0JBQW9CLFNBQy9CLE9BQU0sS0FBSyxZQUFZO1FBRXZCLE9BQU0sS0FBSyxhQUFhOzs7OztzQkF2RTNCLFVBQVUsQ0FBQTtBQUFDLGdCQUFBLE1BQUEsTUFBQSxpQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFNBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FB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
290
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2suY29tcG9uZW50LUNWUHY0bUNwLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jbG9jay9jbG9jay5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jbG9jay9jbG9jay5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb250YWluOiBjb250ZW50O1xufVxuXG4uc2JiLWNsb2NrX19mYWNlLFxuLnNiYi1jbG9ja19faGFuZC1ob3Vycyxcbi5zYmItY2xvY2tfX2hhbmQtbWludXRlcyxcbi5zYmItY2xvY2tfX2hhbmQtc2Vjb25kcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gIHRyYW5zZm9ybTogcm90YXRlWigwZGVnKTtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2JiLWNsb2NrX19oYW5kLWhvdXJzLFxuLnNiYi1jbG9ja19faGFuZC1taW51dGVzLFxuLnNiYi1jbG9ja19fZmFjZSB7XG4gIGZpbGw6IHZhcigtLXNiYi1jbG9jay1mYWNlLWNvbG9yKTtcbn1cblxuLnNiYi1jbG9ja19faGFuZC1taW51dGVzIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgMC4ycylcbiAgICBjdWJpYy1iZXppZXIoMC40LCAyLjA4LCAwLjU1LCAwLjQ0KTtcblxuICBAc3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDEgLyAxKSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDQ5LjYyNSU7XG4gIH1cbn1cblxuLnNiYi1jbG9ja19faGFuZC1ob3VycyB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogNDMyMDBzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogdmFyKC0tc2JiLWNsb2NrLWFuaW1hdGlvbi1wbGF5LXN0YXRlLCAncGF1c2VkJyk7XG59XG5cbi5zYmItY2xvY2tfX2hhbmQtaG91cnMtLWluaXRpYWwtaG91ciB7XG4gIGFuaW1hdGlvbi1uYW1lOiBoYW5kLWhvdXJzLWFuaW1hdGlvbi1pbml0aWFsLWhvdXI7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKC0tc2JiLWNsb2NrLWhvdXJzLWFuaW1hdGlvbi1kdXJhdGlvbiwgMHMpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogdmFyKC0tc2JiLWNsb2NrLWFuaW1hdGlvbi1wbGF5LXN0YXRlLCAncGF1c2VkJyk7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG59XG5cbi5zYmItY2xvY2tfX2hhbmQtbWludXRlcy0tbm8tdHJhbnNpdGlvbiB7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5zYmItY2xvY2tfX2hhbmQtc2Vjb25kcyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBoYW5kLXNlY29uZHMtYW5pbWF0aW9uO1xuICBhbmltYXRpb24tZHVyYXRpb246IDYwcztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogdmFyKC0tc2JiLWNsb2NrLWFuaW1hdGlvbi1wbGF5LXN0YXRlLCAncGF1c2VkJyk7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICBmaWxsOiB2YXIoLS1zYmItY2xvY2stc2Vjb25kcy1oYW5kLWNvbG9yKTtcbn1cblxuLnNiYi1jbG9ja19faGFuZC1zZWNvbmRzLS1pbml0aWFsLW1pbnV0ZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBoYW5kLXNlY29uZHMtYW5pbWF0aW9uLWluaXRpYWwtbWludXRlO1xuICBhbmltYXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1jbG9jay1zZWNvbmRzLWFuaW1hdGlvbi1kdXJhdGlvbiwgMHMpO1xuICBhbmltYXRpb24tcGxheS1zdGF0ZTogdmFyKC0tc2JiLWNsb2NrLWFuaW1hdGlvbi1wbGF5LXN0YXRlLCAncGF1c2VkJyk7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG59XG5cbjppcyguc2JiLWNsb2NrX19oYW5kLWhvdXJzLCAuc2JiLWNsb2NrX19oYW5kLW1pbnV0ZXMsIC5zYmItY2xvY2tfX2hhbmQtc2Vjb25kcykge1xuICA6aG9zdCg6bm90KDpzdGF0ZShpbml0aWFsaXplZCkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBoYW5kLWhvdXJzLWFuaW1hdGlvbi1pbml0aWFsLWhvdXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKHZhcigtLXNiYi1jbG9jay1ob3Vycy1hbmltYXRpb24tc3RhcnQtYW5nbGUsIDBkZWcpKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaGFuZC1zZWNvbmRzLWFuaW1hdGlvbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMGRlZyk7XG4gIH1cblxuICA5Ny41JSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZyk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBoYW5kLXNlY29uZHMtYW5pbWF0aW9uLWluaXRpYWwtbWludXRlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlWih2YXIoLS1zYmItY2xvY2stc2Vjb25kcy1hbmltYXRpb24tc3RhcnQtYW5nbGUsIDBkZWcpKTtcbiAgfVxuXG4gIDk3LjUlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKTtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHVuc2FmZUNTUyxcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiRWxlbWVudCB9IGZyb20gJy4uL2NvcmUvYmFzZS1lbGVtZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpbWUgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQgY2xvY2tGYWNlU1ZHIGZyb20gJy4vYXNzZXRzL3NiYl9jbG9ja19mYWNlLnN2Zz9yYXcnO1xuaW1wb3J0IGNsb2NrSGFuZGxlSG91cnNTVkcgZnJvbSAnLi9hc3NldHMvc2JiX2Nsb2NrX2hvdXJzLnN2Zz9yYXcnO1xuaW1wb3J0IGNsb2NrSGFuZGxlTWludXRlc1NWRyBmcm9tICcuL2Fzc2V0cy9zYmJfY2xvY2tfbWludXRlcy5zdmc/cmF3JztcbmltcG9ydCBjbG9ja0hhbmRsZVNlY29uZHNTVkcgZnJvbSAnLi9hc3NldHMvc2JiX2Nsb2NrX3NlY29uZHMuc3ZnP3Jhdyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jbG9jay5zY3NzP2lubGluZSc7XG5cbi8qKiBOdW1iZXIgb2YgaG91cnMgb24gdGhlIGNsb2NrIGZhY2UuICovXG5jb25zdCBUT1RBTF9IT1VSU19PTl9DTE9DS19GQUNFID0gMTI7XG5cbi8qKiBOdW1iZXIgb2YgbWludXRlcyBvbiB0aGUgY2xvY2sgZmFjZS4gKi9cbmNvbnN0IFRPVEFMX01JTlVURVNfT05fQ0xPQ0tfRkFDRSA9IDYwO1xuXG4vKiogTnVtYmVyIG9mIHNlY29uZHMgb24gdGhlIGNsb2NrIGZhY2UuICovXG5jb25zdCBUT1RBTF9TRUNPTkRTX09OX0NMT0NLX0ZBQ0UgPSA2MDtcblxuLyoqIFRpbWVvdXQgZm9yIHRoZSBjbG9jayBzdGFydC4gKi9cbmNvbnN0IElOSVRJQUxfVElNRU9VVF9EVVJBVElPTiA9IDUwO1xuXG4vKiogQW5nbGUgaW4gYSBzaW5nbGUgcm90YXRpb24uICovXG5jb25zdCBGVUxMX0FOR0xFID0gMzYwO1xuXG4vKiogQW5nbGUgYmV0d2VlbiB0d28gY29uc2VjdXRpdmUgaG91cnM6IDM2MC8xMiwgbWVhbnMgYSBmdWxsIHJvdGF0aW9uIC8gbnVtYmVyIG9mIGhvdXJzIGluIGEgcm90YXRpb24uICovXG5jb25zdCBIT1VSU19BTkdMRSA9IDMwO1xuXG4vKiogQW5nbGUgYmV0d2VlbiB0d28gY29uc2VjdXRpdmUgbWludXRlczogMzYwLzYwLCBtZWFucyBhIGZ1bGwgcm90YXRpb24gLyBudW1iZXIgb2YgbWludXRlcyBpbiBvbmUgaG91ci4gKi9cbmNvbnN0IE1JTlVURVNfQU5HTEUgPSA2O1xuXG4vKiogQW5nbGUgYmV0d2VlbiB0d28gY29uc2VjdXRpdmUgc2Vjb25kcyBmb3IgU0JCIGNsb2NrIGN1c3RvbSBiZWhhdmlvci4gKi9cbmNvbnN0IFNCQl9TRUNPTkRTX0FOR0xFID0gMzYwIC8gNTguNTtcblxuLyoqIE51bWJlciBvZiBzZWNvbmRzIGluIGEgbWludXRlLiAqL1xuY29uc3QgU0VDT05EU19JTl9BX01JTlVURSA9IDYwO1xuXG4vKiogTnVtYmVyIG9mIHNlY29uZHMgaW4gYW4gaG91ci4gKi9cbmNvbnN0IFNFQ09ORFNfSU5fQU5fSE9VUiA9IDM2MDA7XG5cbi8qKiBBcyBhIGZhbGxiYWNrIG1lYXN1cmUsIHJlc2V0IHRoZSBjbG9jayBldmVyeSBoYWxmIGFuIGhvdXIgKi9cbmNvbnN0IFJFU0VUX0lOVEVSVkFMID0gU0VDT05EU19JTl9BTl9IT1VSIC8gMjtcblxuY29uc3QgQUREX0VWRU5UX0xJU1RFTkVSX09QVElPTlM6IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zID0ge1xuICBvbmNlOiB0cnVlLFxuICBwYXNzaXZlOiB0cnVlLFxufTtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBhbmFsb2cgY2xvY2sgd2l0aCB0aGUgY2xhc3NpYyBTQkIgZmFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkNsb2NrRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWNsb2NrJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIERlZmluZSBhIHNwZWNpZmljIHRpbWUgd2hpY2ggdGhlIGNsb2NrIHNob3VsZCBzaG93IHN0YXRpY2FsbHkuXG4gICAqIEBwYXJhbSB2YWx1ZSBISDpNTTpzc1xuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIG5vdzogU2JiVGltZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjbG9jayBpcyB0aWNraW5nIG9yIG5vdCAqL1xuICBwcml2YXRlIF9zdGF0ZTogJ3J1bm5pbmcnIHwgJ3BhdXNlZCcgPSAncGF1c2VkJztcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBob3VyIGhhbmQuICovXG4gIHByaXZhdGUgX2Nsb2NrSGFuZEhvdXJzITogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgbWludXRlIGhhbmQuICovXG4gIHByaXZhdGUgX2Nsb2NrSGFuZE1pbnV0ZXMhOiBIVE1MRWxlbWVudDtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBzZWNvbmQgaGFuZC4gKi9cbiAgcHJpdmF0ZSBfY2xvY2tIYW5kU2Vjb25kcyE6IEhUTUxFbGVtZW50O1xuXG4gIC8qKiBIb3VycyB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgZGF0ZS4gKi9cbiAgcHJpdmF0ZSBfaG91cnMhOiBudW1iZXI7XG5cbiAgLyoqIE1pbnV0ZXMgdmFsdWUgZm9yIHRoZSBjdXJyZW50IGRhdGUuICovXG4gIHByaXZhdGUgX21pbnV0ZXMhOiBudW1iZXI7XG5cbiAgLyoqIFNlY29uZHMgdmFsdWUgZm9yIHRoZSBjdXJyZW50IGRhdGUuICovXG4gIHByaXZhdGUgX3NlY29uZHMhOiBudW1iZXI7XG5cbiAgLyoqIE1vdmUgdGhlIG1pbnV0ZXMgaGFuZCBldmVyeSBtaW51dGUuICovXG4gIHByaXZhdGUgX2hhbmRNb3ZlbWVudD86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcblxuICBwcml2YXRlIF9yZXNldEludGVydmFsSWQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBob3VycyBoYW5kLiAqL1xuICBwcml2YXRlIF9tb3ZlSG91cnNIYW5kRm4gPSAoKTogdm9pZCA9PiB0aGlzLl9tb3ZlSG91cnNIYW5kKCk7XG5cbiAgLyoqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBtaW51dGVzIGhhbmQuICovXG4gIHByaXZhdGUgX21vdmVNaW51dGVzSGFuZEZuID0gKCk6IHZvaWQgPT4gdGhpcy5fbW92ZU1pbnV0ZXNIYW5kKCk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9yZXNldEludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLl9yZXNldENsb2NrKCksIFJFU0VUX0lOVEVSVkFMICogMTAwMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdub3cnKSkge1xuICAgICAgdGhpcy5fc3RhcnRPckNvbmZpZ3VyZUNsb2NrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHRoaXMuX2hhbmRsZVBhZ2VWaXNpYmlsaXR5Q2hhbmdlLCBmYWxzZSk7XG4gICAgICB0aGlzLl9zdGFydE9yQ29uZmlndXJlQ2xvY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9yZW1vdmVFdmVudExpc3RlbmVycygpO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fcmVzZXRJbnRlcnZhbElkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVBhZ2VWaXNpYmlsaXR5Q2hhbmdlID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGlmICh0aGlzLm5vdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICBhd2FpdCB0aGlzLl9zdG9wQ2xvY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5fc3RhcnRDbG9jaygpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFzeW5jIF9zdGFydE9yQ29uZmlndXJlQ2xvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubm93KSB7XG4gICAgICBhd2FpdCB0aGlzLl9zdG9wQ2xvY2soKTtcbiAgICAgIHRoaXMuX3Jlc2V0U2Vjb25kc0hhbmRBbmltYXRpb24oKTtcbiAgICAgIHRoaXMuX3NldEhhbmRzU3RhcnRpbmdQb3NpdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLl9zdGFydENsb2NrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFN0YXJ0cyB0aGUgY2xvY2sgYnkgZGVmaW5pbmcgdGhlIGhhbmRzIHN0YXJ0aW5nIHBvc2l0aW9uIHRoZW4gc3RhcnRpbmcgdGhlIGFuaW1hdGlvbnMuICovXG4gIHByaXZhdGUgYXN5bmMgX3N0YXJ0Q2xvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fY2xvY2tIYW5kSG91cnM/LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAnYW5pbWF0aW9uZW5kJyxcbiAgICAgIHRoaXMuX21vdmVIb3Vyc0hhbmRGbixcbiAgICAgIEFERF9FVkVOVF9MSVNURU5FUl9PUFRJT05TLFxuICAgICk7XG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcz8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdhbmltYXRpb25lbmQnLFxuICAgICAgdGhpcy5fbW92ZU1pbnV0ZXNIYW5kRm4sXG4gICAgICBBRERfRVZFTlRfTElTVEVORVJfT1BUSU9OUyxcbiAgICApO1xuXG4gICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fc2V0SGFuZHNTdGFydGluZ1Bvc2l0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLWNsb2NrLWFuaW1hdGlvbi1wbGF5LXN0YXRlJywgJ3J1bm5pbmcnKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSAncnVubmluZyc7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0sIElOSVRJQUxfVElNRU9VVF9EVVJBVElPTiksXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBTdG9wcyB0aGUgY2xvY2sgYnkgcmVtb3ZpbmcgYWxsIHRoZSBhbmltYXRpb25zLiAqL1xuICBwcml2YXRlIGFzeW5jIF9zdG9wQ2xvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9oYW5kTW92ZW1lbnQpO1xuXG4gICAgdGhpcy5fcmVtb3ZlU2Vjb25kc0FuaW1hdGlvblN0eWxlcygpO1xuICAgIHRoaXMuX3JlbW92ZUhvdXJzQW5pbWF0aW9uU3R5bGVzKCk7XG5cbiAgICB0aGlzLl9jbG9ja0hhbmRIb3Vycz8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5fbW92ZUhvdXJzSGFuZEZuKTtcbiAgICB0aGlzLl9jbG9ja0hhbmRTZWNvbmRzPy5yZW1vdmVFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCB0aGlzLl9tb3ZlTWludXRlc0hhbmRGbik7XG5cbiAgICB0aGlzLl9jbG9ja0hhbmRNaW51dGVzPy5jbGFzc0xpc3QuYWRkKCdzYmItY2xvY2tfX2hhbmQtbWludXRlcy0tbm8tdHJhbnNpdGlvbicpO1xuXG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLWNsb2NrLWFuaW1hdGlvbi1wbGF5LXN0YXRlJywgJ3BhdXNlZCcpO1xuICAgIHRoaXMuX3N0YXRlID0gJ3BhdXNlZCc7XG4gIH1cblxuICAvKipcbiAgICogQXMgYSBmYWxsYmFjayBtZWFzdXJlIHRvIHByZXZlbnQgZGUtc3luYywgcmVzZXQgdGhlIGNsb2NrIHRvIHRoZSBzeXN0ZW0gdGltZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgX3Jlc2V0Q2xvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAncnVubmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5fc3RvcENsb2NrKCk7XG4gICAgYXdhaXQgdGhpcy5fc3RhcnRDbG9jaygpO1xuICB9XG5cbiAgLyoqIFNldCB0aGUgc3RhcnRpbmcgcG9zaXRpb24gZm9yIHRoZSB0aHJlZSBoYW5kcyBvbiB0aGUgY2xvY2sgZmFjZS4gKi9cbiAgcHJpdmF0ZSBfc2V0SGFuZHNTdGFydGluZ1Bvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2Fzc2lnbkN1cnJlbnRUaW1lKCk7XG4gICAgY29uc3QgcmVtYWluaW5nU2Vjb25kcyA9IFRPVEFMX1NFQ09ORFNfT05fQ0xPQ0tfRkFDRSAtIHRoaXMuX3NlY29uZHM7XG4gICAgY29uc3QgcmVtYWluaW5nTWludXRlcyA9IFRPVEFMX01JTlVURVNfT05fQ0xPQ0tfRkFDRSAtIHRoaXMuX21pbnV0ZXM7XG4gICAgY29uc3QgcmVtYWluaW5nSG91cnMgPSBUT1RBTF9IT1VSU19PTl9DTE9DS19GQUNFIC0gdGhpcy5faG91cnM7XG5cbiAgICBsZXQgaG91cnNBbmltYXRpb25EdXJhdGlvbiA9IDA7XG4gICAgbGV0IGhhc1JlbWFpbmluZ01pbnV0ZXNPclNlY29uZHMgPSAwO1xuXG4gICAgaWYgKHJlbWFpbmluZ1NlY29uZHMgPiAwKSB7XG4gICAgICBob3Vyc0FuaW1hdGlvbkR1cmF0aW9uICs9IHJlbWFpbmluZ1NlY29uZHM7XG4gICAgICBoYXNSZW1haW5pbmdNaW51dGVzT3JTZWNvbmRzID0gMTtcbiAgICB9XG5cbiAgICBpZiAocmVtYWluaW5nTWludXRlcyA+IDApIHtcbiAgICAgIGhvdXJzQW5pbWF0aW9uRHVyYXRpb24gKz1cbiAgICAgICAgKHJlbWFpbmluZ01pbnV0ZXMgLSBoYXNSZW1haW5pbmdNaW51dGVzT3JTZWNvbmRzKSAqIFNFQ09ORFNfSU5fQV9NSU5VVEU7XG4gICAgICBoYXNSZW1haW5pbmdNaW51dGVzT3JTZWNvbmRzID0gMTtcbiAgICB9XG5cbiAgICBpZiAocmVtYWluaW5nSG91cnMgPiAwKSB7XG4gICAgICBob3Vyc0FuaW1hdGlvbkR1cmF0aW9uICs9XG4gICAgICAgIChyZW1haW5pbmdIb3VycyAtIGhhc1JlbWFpbmluZ01pbnV0ZXNPclNlY29uZHMpICogU0VDT05EU19JTl9BTl9IT1VSO1xuICAgIH1cblxuICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KFxuICAgICAgJy0tc2JiLWNsb2NrLWhvdXJzLWFuaW1hdGlvbi1zdGFydC1hbmdsZScsXG4gICAgICBgJHtNYXRoLmNlaWwodGhpcy5faG91cnMgKiBIT1VSU19BTkdMRSArIHRoaXMuX21pbnV0ZXMgLyAyKX1kZWdgLFxuICAgICk7XG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLWNsb2NrLWhvdXJzLWFuaW1hdGlvbi1kdXJhdGlvbicsIGAke2hvdXJzQW5pbWF0aW9uRHVyYXRpb259c2ApO1xuICAgIHRoaXMuc3R5bGU/LnNldFByb3BlcnR5KFxuICAgICAgJy0tc2JiLWNsb2NrLXNlY29uZHMtYW5pbWF0aW9uLXN0YXJ0LWFuZ2xlJyxcbiAgICAgIGAke01hdGguY2VpbCh0aGlzLl9zZWNvbmRzICogU0JCX1NFQ09ORFNfQU5HTEUpfWRlZ2AsXG4gICAgKTtcbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItY2xvY2stc2Vjb25kcy1hbmltYXRpb24tZHVyYXRpb24nLCBgJHtyZW1haW5pbmdTZWNvbmRzfXNgKTtcblxuICAgIHRoaXMuX3NldE1pbnV0ZXNIYW5kKCk7XG5cbiAgICB0aGlzLl9jbG9ja0hhbmRTZWNvbmRzPy5jbGFzc0xpc3QuYWRkKCdzYmItY2xvY2tfX2hhbmQtc2Vjb25kcy0taW5pdGlhbC1taW51dGUnKTtcbiAgICB0aGlzLl9jbG9ja0hhbmRIb3Vycz8uY2xhc3NMaXN0LmFkZCgnc2JiLWNsb2NrX19oYW5kLWhvdXJzLS1pbml0aWFsLWhvdXInKTtcblxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICAvKiogR2l2ZW4gdGhlIGN1cnJlbnQgZGF0ZSwgY2FsY3VsYXRlcyB0aGUgaGgvbW0vc3MgdmFsdWVzIGFuZCB0aGUgaGgvbW0vc3MgbGVmdCB0byB0aGUgbmV4dCBtaWRuaWdodC4gKi9cbiAgcHJpdmF0ZSBfYXNzaWduQ3VycmVudFRpbWUoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMubm93ID8gbnVsbCA6IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgW2hvdXJzLCBtaW51dGVzLCBzZWNvbmRzXSA9IGRhdGVcbiAgICAgID8gW2RhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpXVxuICAgICAgOiB0aGlzLm5vdyEuc3BsaXQoJzonKS5tYXAoKHApID0+ICtwKTtcblxuICAgIHRoaXMuX2hvdXJzID0gaG91cnMgJSAxMjtcbiAgICB0aGlzLl9taW51dGVzID0gbWludXRlcztcbiAgICB0aGlzLl9zZWNvbmRzID0gc2Vjb25kcztcbiAgfVxuXG4gIC8qKiBTZXQgdGhlIHN0YXJ0aW5nIHBvc2l0aW9uIGZvciB0aGUgbWludXRlcyBoYW5kLiAqL1xuICBwcml2YXRlIF9zZXRNaW51dGVzSGFuZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9ja0hhbmRNaW51dGVzPy5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICd0cmFuc2Zvcm0nLFxuICAgICAgYHJvdGF0ZVooJHtNYXRoLmNlaWwodGhpcy5fbWludXRlcyAqIE1JTlVURVNfQU5HTEUpfWRlZylgLFxuICAgICk7XG4gIH1cblxuICAvKiogTW92ZSB0aGUgaG91cnMgaGFuZCB0byB0aGUgbmV4dCB2YWx1ZS4gKi9cbiAgcHJpdmF0ZSBfbW92ZUhvdXJzSGFuZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmVIb3Vyc0FuaW1hdGlvblN0eWxlcygpO1xuXG4gICAgbGV0IGhvdXJzQW5nbGUgPSBNYXRoLmNlaWwodGhpcy5faG91cnMgKiBIT1VSU19BTkdMRSArIHRoaXMuX21pbnV0ZXMgLyAyKTtcblxuICAgIGlmIChob3Vyc0FuZ2xlID49IEZVTExfQU5HTEUpIHtcbiAgICAgIGhvdXJzQW5nbGUgLT0gRlVMTF9BTkdMRTtcbiAgICB9XG5cbiAgICB0aGlzLl9jbG9ja0hhbmRIb3Vycz8uc3R5bGUuc2V0UHJvcGVydHkoJ3RyYW5zZm9ybScsIGByb3RhdGVaKCR7aG91cnNBbmdsZX1kZWcpYCk7XG4gIH1cblxuICAvKiogTW92ZSB0aGUgbWludXRlcyBoYW5kIHRvIHRoZSBuZXh0IHZhbHVlLiAqL1xuICBwcml2YXRlIF9tb3ZlTWludXRlc0hhbmQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcz8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5fbW92ZU1pbnV0ZXNIYW5kRm4pO1xuXG4gICAgdGhpcy5fcmVtb3ZlU2Vjb25kc0FuaW1hdGlvblN0eWxlcygpO1xuXG4gICAgdGhpcy5fYWRkTWludXRlc0FuZFNldEhhbmRzKCk7XG5cbiAgICB0aGlzLl9oYW5kTW92ZW1lbnQgPSBzZXRJbnRlcnZhbChcbiAgICAgICgpID0+IHRoaXMuX2FkZE1pbnV0ZXNBbmRTZXRIYW5kcygpLFxuICAgICAgVE9UQUxfU0VDT05EU19PTl9DTE9DS19GQUNFICogMTAwMCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkTWludXRlc0FuZFNldEhhbmRzKCk6IHZvaWQge1xuICAgIHRoaXMuX21pbnV0ZXMrKztcbiAgICB0aGlzLl9zZXRNaW51dGVzSGFuZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92aW5nIGFuaW1hdGlvbiBieSBvdmVycmlkaW5nIHdpdGggZW1wdHkgc3RyaW5nLFxuICAgKiB0aGVuIHRyaWdnZXJpbmcgYSByZWZsb3cgYW5kIHJlIGFkZCBvcmlnaW5hbCBhbmltYXRpb24gYnkgcmVtb3Zpbmcgb3ZlcnJpZGUuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZXNldFNlY29uZHNIYW5kQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fY2xvY2tIYW5kU2Vjb25kcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jbG9ja0hhbmRTZWNvbmRzLnN0eWxlLmFuaW1hdGlvbiA9ICcnO1xuICAgIC8vIEhhY2sgdG8gdHJpZ2dlciByZWZsb3dcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMuX2Nsb2NrSGFuZFNlY29uZHMub2Zmc2V0SGVpZ2h0O1xuICAgIHRoaXMuX2Nsb2NrSGFuZFNlY29uZHMuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuaW1hdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLl9oYW5kbGVQYWdlVmlzaWJpbGl0eUNoYW5nZSk7XG4gICAgdGhpcy5fY2xvY2tIYW5kSG91cnM/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FuaW1hdGlvbmVuZCcsIHRoaXMuX21vdmVIb3Vyc0hhbmRGbik7XG4gICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcz8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgdGhpcy5fbW92ZU1pbnV0ZXNIYW5kRm4pO1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5faGFuZE1vdmVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUhvdXJzQW5pbWF0aW9uU3R5bGVzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb2NrSGFuZEhvdXJzPy5jbGFzc0xpc3QucmVtb3ZlKCdzYmItY2xvY2tfX2hhbmQtaG91cnMtLWluaXRpYWwtaG91cicpO1xuICAgIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2JiLWNsb2NrLWhvdXJzLWFuaW1hdGlvbi1zdGFydC1hbmdsZScpO1xuICAgIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2JiLWNsb2NrLWhvdXJzLWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlU2Vjb25kc0FuaW1hdGlvblN0eWxlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jbG9ja0hhbmRTZWNvbmRzPy5jbGFzc0xpc3QucmVtb3ZlKCdzYmItY2xvY2tfX2hhbmQtc2Vjb25kcy0taW5pdGlhbC1taW51dGUnKTtcbiAgICB0aGlzLl9jbG9ja0hhbmRNaW51dGVzPy5jbGFzc0xpc3QucmVtb3ZlKCdzYmItY2xvY2tfX2hhbmQtbWludXRlcy0tbm8tdHJhbnNpdGlvbicpO1xuICAgIHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tc2JiLWNsb2NrLXNlY29uZHMtYW5pbWF0aW9uLXN0YXJ0LWFuZ2xlJyk7XG4gICAgdGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1zYmItY2xvY2stc2Vjb25kcy1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2xvY2tfX2ZhY2VcIiAuaW5uZXJIVE1MPSR7Y2xvY2tGYWNlU1ZHfT48L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNiYi1jbG9ja19faGFuZC1ob3Vyc1wiXG4gICAgICAgIC5pbm5lckhUTUw9JHtjbG9ja0hhbmRsZUhvdXJzU1ZHfVxuICAgICAgICAke3JlZigoZT86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLl9jbG9ja0hhbmRIb3VycyA9IGUgYXMgSFRNTFNwYW5FbGVtZW50O1xuICAgICAgICB9KX1cbiAgICAgID48L3NwYW4+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInNiYi1jbG9ja19faGFuZC1taW51dGVzIHNiYi1jbG9ja19faGFuZC1taW51dGVzLS1uby10cmFuc2l0aW9uXCJcbiAgICAgICAgLmlubmVySFRNTD0ke2Nsb2NrSGFuZGxlTWludXRlc1NWR31cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMuX2Nsb2NrSGFuZE1pbnV0ZXMgPSBlbCBhcyBIVE1MU3BhbkVsZW1lbnQ7XG4gICAgICAgIH0pfVxuICAgICAgPjwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwic2JiLWNsb2NrX19oYW5kLXNlY29uZHNcIlxuICAgICAgICAuaW5uZXJIVE1MPSR7Y2xvY2tIYW5kbGVTZWNvbmRzU1ZHfVxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5fY2xvY2tIYW5kU2Vjb25kcyA9IGVsIGFzIEhUTUxTcGFuRWxlbWVudDtcbiAgICAgICAgfSl9XG4gICAgICA+PC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jbG9jayc6IFNiYkNsb2NrRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3NCQSxJQUFNLDRCQUE0Qjs7QUFHbEMsSUFBTSw4QkFBOEI7O0FBR3BDLElBQU0sOEJBQThCOztBQUdwQyxJQUFNLDJCQUEyQjs7QUFHakMsSUFBTSxhQUFhOztBQUduQixJQUFNLGNBQWM7O0FBR3BC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
@@ -291,11 +291,12 @@ var SbbOverlayPositionController = class {
291
291
  _readPositionsFromCss() {
292
292
  if (!this._usePolyfill) return;
293
293
  this._overlayStyles ??= getComputedStyle(this._overlay);
294
- this._positions = [this._overlayStyles.getPropertyValue("--sbb-overlay-position-area") || "block-end", ...this._overlayStyles.getPropertyValue("--sbb-overlay-position-try-fallbacks").split(",").map((f) => f.trim()).filter((f) => !!f)];
294
+ const positions = [this._overlayStyles.getPropertyValue("--sbb-overlay-position-area") || "block-end", ...this._overlayStyles.getPropertyValue("--sbb-overlay-position-try-fallbacks").split(",").map((f) => f.trim()).filter((f) => !!f)];
295
+ this._positions = positions;
295
296
  if (this._lastPosition && !this._positions.includes(this._lastPosition)) this._lastPosition = void 0;
296
297
  }
297
298
  };
298
299
  //#endregion
299
300
  export { SbbOverlayPositionController };
300
301
 
301
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL292ZXJsYXktcG9zaXRpb24tY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmNvbnN0IGNzc0FuY2hvclBvc2l0aW9uU3VwcG9ydGVkID0gIWlzU2VydmVyICYmIENTUy5zdXBwb3J0cygnYW5jaG9yLW5hbWUnLCAnLS10ZXN0Jyk7XG5cbmNvbnN0IHBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAndG9wJyxcbiAgJ2JvdHRvbScsXG4gICdsZWZ0JyxcbiAgJ3JpZ2h0JyxcbiAgJ3RvcCBzcGFuLWxlZnQnLFxuICAndG9wIHNwYW4tcmlnaHQnLFxuICAnYm90dG9tIHNwYW4tbGVmdCcsXG4gICdib3R0b20gc3Bhbi1yaWdodCcsXG4gICdsZWZ0IHNwYW4tdG9wJyxcbiAgJ2xlZnQgc3Bhbi1ib3R0b20nLFxuICAncmlnaHQgc3Bhbi10b3AnLFxuICAncmlnaHQgc3Bhbi1ib3R0b20nLFxuXTtcblxuLy8gTm90ZTogaWYgeW91IGFkZCBuZXcgbG9naWNhbCBzdXBwb3J0ZWQgcG9zaXRpb25zLCB1cGRhdGUgYWxzbyB0aGUgJ3J0bFBvc2l0aW9uTWFwcGluZydcbmNvbnN0IGxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMgPSBbXG4gICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnLFxuICAnaW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG5dO1xuXG5jb25zdCBydGxQb3NpdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICdibG9jay1zdGFydCc6ICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnOiAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCc6ICdpbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1lbmQnOiAnaW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzogJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG59O1xuXG5jb25zdCBzdXBwb3J0ZWRQb3NpdGlvbnMgPSBbLi4ucGh5c2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMsIC4uLmxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnNdO1xubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQ29udHJvbGxlciBmb3IgbWFuYWdpbmcgb3ZlcmxheXMgcG9zaXRpb25pbmcuIEFsc28gYWN0cyBhcyBhIHBvbHlmaWxsIHdoZW4gbmF0aXZlXG4gKiBDU1MgQW5jaG9yIFBvc2l0aW9uaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGVub3VnaCkuXG4gKiBBcHBsaWVzIHVuaXF1ZSBhbmNob3IgbmFtZXMgd2hlbiB1c2luZyBuYXRpdmUgQ1NTIEFuY2hvciBQb3NpdGlvbmluZ1xuICogb3IgY2FsY3VsYXRlcyBhbmQgYXBwbGllcyBjb3JyZWN0IHBvc2l0aW9ucyBpbiBwb2x5ZmlsbCBtb2RlLlxuICpcbiAqIEFsc28sIHRoZSBjb250cm9sbGVyIHNldHMgdGhlICdkYXRhLXBvc2l0aW9uJyBhdHRyaWJ1dGUgb24gdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXBwbHkgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5LlxuICpcbiAqICMjIyBJbXBsZW1lbnRhdGlvblxuICogRGVmaW5lIGFuZCBhcHBseSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgb24gdGhlIG92ZXJsYXkgZWxlbWVudDpcbiAqIGBgYHNjc3NcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhOiBibG9jay1lbmQ7IC8vIERlZmF1bHRcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzOiBibG9jay1zdGFydCwgaW5saW5lLWVuZCwgaW5saW5lLXN0YXJ0OyAvLyBGYWxsYmFja3NcbiAqXG4gKiAgIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICogICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCkpXG4gICAgOiBudWxsITtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheTogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZTtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9hbmNob3I/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb247XG4gIHByaXZhdGUgX2ZyYW1lPzogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcbiAgcHJpdmF0ZSBfYW5jaG9yTmFtZSA9IGAtLXNiYi1vdmVybGF5LWFuY2hvci0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX3Bvc2l0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uIChlLmcuIGJsb2NrLWVuZCwgYmxvY2stc3RhcnQsIGV0Yy4pICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFBvc2l0aW9uID8/IHRoaXMuX3Bvc2l0aW9uc1swXSA/PyAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcyA/Pz0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uLWFyZWEnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgICBwcml2YXRlIF91c2VQb2x5ZmlsbCA9ICFjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCxcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgIHRoaXMuX292ZXJsYXkgPSBob3N0O1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYW5jaG9yJywgdGhpcy5fYW5jaG9yTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlc2V0IHRoZSAncG9zaXRpb24tYXJlYScgdmFsdWUgdG8gYXZvaWQgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0IHdoZW4gdXNpbmcgdGhlIHBvbHlmaWxsLlxuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYXJlYScsICdpbml0aWFsJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdGhlIG92ZXJsYXkgdG8gdGhlIGdpdmVuIHRyaWdnZXIgZWxlbWVudCBhbmQgZGV0ZXJtaW5lcyB0aGUgb3B0aW1hbCBwb3NpdGlvbi5cbiAgICogVXN1YWxseSwgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqIEBwYXJhbSBhbmNob3IgVGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbm5lY3QoYW5jaG9yOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmNob3IpIHtcbiAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG5cbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICB0aGlzLl9hbmNob3Iuc3R5bGUuc2V0UHJvcGVydHkoJ2FuY2hvci1uYW1lJywgdGhpcy5fYW5jaG9yTmFtZSEpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB1c2UgY2FwdHVyZSBoZXJlIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgZXZlbnRzLlxuICAgIC8vIElmIGNhcHR1cmUgd2FzIG5vdCB1c2VkLCB0aGVuIHNjcm9sbCBldmVudHMgaW5zaWRlIHNlcGFyYXRlIHNjcm9sbFxuICAgIC8vIGNvbnRhaW5lcnMgd291bGQgbm90IGJlIGNhdWdodC5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoYW5jaG9yLCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fb3ZlcmxheSwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuY2hvcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuY2hvci1uYW1lJyk7XG4gICAgdGhpcy5fYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZnJhbWUgPz89IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgdGhpcy5fZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FuY2hvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9nZXRPcHRpbWFsUG9zaXRpb24odGhpcy5fcG9zaXRpb25zKTtcbiAgICAgIHRoaXMuX2FwcGx5T3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uLnBvc2l0aW9uLCBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3ApO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgdGhpcy5jdXJyZW50UG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG9wdGltYWwgcG9zaXRpb24gdGhhdCBmaXRzIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcG9zaXRpb25zIFRoZSBsaXN0IG9mIHBvc2l0aW9ucyB0byBjaGVjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9wdGltYWxQb3NpdGlvbihwb3NpdGlvbnM6IHN0cmluZ1tdKToge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB0b3A6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogc3RyaW5nO1xuICAgIGZpdHM/OiBib29sZWFuO1xuICB9IHtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogb3ZlcmxheUhlaWdodCwgb2Zmc2V0V2lkdGg6IG92ZXJsYXlXaWR0aCB9ID0gdGhpcy5fb3ZlcmxheTtcbiAgICBjb25zdCB7IGlubmVySGVpZ2h0OiB2aWV3cG9ydEhlaWdodCwgaW5uZXJXaWR0aDogdmlld3BvcnRXaWR0aCB9ID0gd2luZG93O1xuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCxcbiAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0LFxuICAgICAgaGVpZ2h0OiB0cmlnZ2VySGVpZ2h0LFxuICAgICAgd2lkdGg6IHRyaWdnZXJXaWR0aCxcbiAgICB9ID0gdGhpcy5fYW5jaG9yIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5fb3ZlcmxheS5tYXRjaGVzKCc6ZGlyKHJ0bCknKTtcbiAgICBjb25zdCB0b3BTcGFjZSA9IHRyaWdnZXJPZmZzZXRUb3A7XG4gICAgY29uc3QgYm90dG9tU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRyaWdnZXJIZWlnaHQgLSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGxlZnRTcGFjZSA9IHRyaWdnZXJPZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHJpZ2h0U3BhY2UgPSB2aWV3cG9ydFdpZHRoIC0gdHJpZ2dlcldpZHRoIC0gdHJpZ2dlck9mZnNldExlZnQ7XG5cbiAgICAvLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvdmVybGF5IGFuZCB0aGUgdHJpZ2dlciB3aWR0aC9oZWlnaHQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoTmV0ID0gb3ZlcmxheVdpZHRoIC0gdHJpZ2dlcldpZHRoO1xuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHROZXQgPSBvdmVybGF5SGVpZ2h0IC0gdHJpZ2dlckhlaWdodDtcblxuICAgIC8vIFRoZSBhbW91bnQgdGhhdCB3b3VsZCBleGNlZWQgdGhlIHRyaWdnZXIgaWYgdGhlIG92ZXJsYXkgd2VyZSBjZW50ZXJlZCBvbiBpdC5cbiAgICBjb25zdCBvdmVybGF5V2lkdGhPdmVybGFwID0gb3ZlcmxheVdpZHRoTmV0IC8gMjtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0T3ZlcmxhcCA9IG92ZXJsYXlIZWlnaHROZXQgLyAyO1xuXG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci1oZWlnaHQnLFxuICAgICAgYCR7dHJpZ2dlckhlaWdodH1weGAsXG4gICAgKTtcbiAgICB0aGlzLl9vdmVybGF5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci13aWR0aCcsIGAke3RyaWdnZXJXaWR0aH1weGApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudFxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQU0sNkJBQTZCLENBQUMsWUFBWSxJQUFJLFNBQVMsZUFBZSxTQUFTO0FBRXJGLElBQU0sNkJBQTZCO0NBQ2pDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNEO0FBR0QsSUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxJQUFNLHFCQUFnRDtDQUNwRCxlQUFlO0NBQ2YsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsaUNBQWlDO0NBQ2pDLCtCQUErQjtDQUMvQiwrQkFBK0I7Q0FDL0IsNkJBQTZCO0NBQzdCLGlDQUFpQztDQUNqQywrQkFBK0I7Q0FDL0IsK0JBQStCO0NBQy9CLDZCQUE2QjtDQUM5QjtBQUUwQixDQUFDLEdBQUcsNEJBQTRCLEdBQUcsMEJBQTBCO0FBQ3hGLElBQUksU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQmIsSUFBYSwrQkFBYixNQUF5Qzs7Q0FjdkMsSUFBVyxrQkFBZTtBQUN4QixNQUFJLEtBQUssYUFDUCxRQUFPLEtBQUssaUJBQWlCLEtBQUssV0FBVyxNQUFNO09BQzlDO0FBQ0wsUUFBSyxtQkFBbUIsaUJBQWlCLEtBQUssU0FBUztBQUN2RCxVQUFPLEtBQUssZUFBZSxpQkFBaUIs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
302
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb250cm9sbGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzL292ZXJsYXktcG9zaXRpb24tY29udHJvbGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsIHR5cGUgUmVhY3RpdmVDb250cm9sbGVySG9zdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB9IGZyb20gJy4uL21peGlucy50cyc7XG5cbmNvbnN0IGNzc0FuY2hvclBvc2l0aW9uU3VwcG9ydGVkID0gIWlzU2VydmVyICYmIENTUy5zdXBwb3J0cygnYW5jaG9yLW5hbWUnLCAnLS10ZXN0Jyk7XG5cbmNvbnN0IHBoeXNpY2FsU3VwcG9ydGVkUG9zaXRpb25zID0gW1xuICAndG9wJyxcbiAgJ2JvdHRvbScsXG4gICdsZWZ0JyxcbiAgJ3JpZ2h0JyxcbiAgJ3RvcCBzcGFuLWxlZnQnLFxuICAndG9wIHNwYW4tcmlnaHQnLFxuICAnYm90dG9tIHNwYW4tbGVmdCcsXG4gICdib3R0b20gc3Bhbi1yaWdodCcsXG4gICdsZWZ0IHNwYW4tdG9wJyxcbiAgJ2xlZnQgc3Bhbi1ib3R0b20nLFxuICAncmlnaHQgc3Bhbi10b3AnLFxuICAncmlnaHQgc3Bhbi1ib3R0b20nLFxuXTtcblxuLy8gTm90ZTogaWYgeW91IGFkZCBuZXcgbG9naWNhbCBzdXBwb3J0ZWQgcG9zaXRpb25zLCB1cGRhdGUgYWxzbyB0aGUgJ3J0bFBvc2l0aW9uTWFwcGluZydcbmNvbnN0IGxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMgPSBbXG4gICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnLFxuICAnaW5saW5lLXN0YXJ0JyxcbiAgJ2lubGluZS1lbmQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1zdGFydCcsXG4gICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnLFxuICAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLWVuZCcsXG5dO1xuXG5jb25zdCBydGxQb3NpdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICdibG9jay1zdGFydCc6ICdibG9jay1zdGFydCcsXG4gICdibG9jay1lbmQnOiAnYmxvY2stZW5kJyxcbiAgJ2lubGluZS1zdGFydCc6ICdpbmxpbmUtZW5kJyxcbiAgJ2lubGluZS1lbmQnOiAnaW5saW5lLXN0YXJ0JyxcbiAgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCcsXG4gICdibG9jay1zdGFydCBzcGFuLWlubGluZS1lbmQnOiAnYmxvY2stc3RhcnQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLXN0YXJ0JzogJ2Jsb2NrLWVuZCBzcGFuLWlubGluZS1lbmQnLFxuICAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6ICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnLFxuICAnaW5saW5lLXN0YXJ0IHNwYW4tYmxvY2stc3RhcnQnOiAnaW5saW5lLWVuZCBzcGFuLWJsb2NrLXN0YXJ0JyxcbiAgJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCc6ICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJyxcbiAgJ2lubGluZS1lbmQgc3Bhbi1ibG9jay1zdGFydCc6ICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCcsXG4gICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzogJ2lubGluZS1zdGFydCBzcGFuLWJsb2NrLWVuZCcsXG59O1xuXG5jb25zdCBzdXBwb3J0ZWRQb3NpdGlvbnMgPSBbLi4ucGh5c2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnMsIC4uLmxvZ2ljYWxTdXBwb3J0ZWRQb3NpdGlvbnNdO1xubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQ29udHJvbGxlciBmb3IgbWFuYWdpbmcgb3ZlcmxheXMgcG9zaXRpb25pbmcuIEFsc28gYWN0cyBhcyBhIHBvbHlmaWxsIHdoZW4gbmF0aXZlXG4gKiBDU1MgQW5jaG9yIFBvc2l0aW9uaW5nIGlzIG5vdCBzdXBwb3J0ZWQgKGVub3VnaCkuXG4gKiBBcHBsaWVzIHVuaXF1ZSBhbmNob3IgbmFtZXMgd2hlbiB1c2luZyBuYXRpdmUgQ1NTIEFuY2hvciBQb3NpdGlvbmluZ1xuICogb3IgY2FsY3VsYXRlcyBhbmQgYXBwbGllcyBjb3JyZWN0IHBvc2l0aW9ucyBpbiBwb2x5ZmlsbCBtb2RlLlxuICpcbiAqIEFsc28sIHRoZSBjb250cm9sbGVyIHNldHMgdGhlICdkYXRhLXBvc2l0aW9uJyBhdHRyaWJ1dGUgb24gdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gYXBwbHkgc3BlY2lmaWMgc3R5bGVzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBvdmVybGF5LlxuICpcbiAqICMjIyBJbXBsZW1lbnRhdGlvblxuICogRGVmaW5lIGFuZCBhcHBseSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgb24gdGhlIG92ZXJsYXkgZWxlbWVudDpcbiAqIGBgYHNjc3NcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi1hcmVhOiBibG9jay1lbmQ7IC8vIERlZmF1bHRcbiAqICAgLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzOiBibG9jay1zdGFydCwgaW5saW5lLWVuZCwgaW5saW5lLXN0YXJ0OyAvLyBGYWxsYmFja3NcbiAqXG4gKiAgIHBvc2l0aW9uLWFyZWE6IHZhcigtLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEpO1xuICogICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiB2YXIoLS1zYmItb3ZlcmxheS1wb3NpdGlvbi10cnktZmFsbGJhY2tzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheVBvc2l0aW9uQ29udHJvbGxlciBpbXBsZW1lbnRzIFJlYWN0aXZlQ29udHJvbGxlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2l6ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVxdWVzdENhbGN1bGF0ZVBvc2l0aW9uKCkpXG4gICAgOiBudWxsITtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheTogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZTtcbiAgcHJpdmF0ZSBfYWJvcnRDb250cm9sbGVyPzogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9hbmNob3I/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfb3ZlcmxheVN0eWxlcz86IENTU1N0eWxlRGVjbGFyYXRpb247XG4gIHByaXZhdGUgX2ZyYW1lPzogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcbiAgcHJpdmF0ZSBfYW5jaG9yTmFtZSA9IGAtLXNiYi1vdmVybGF5LWFuY2hvci0keysrbmV4dElkfWA7XG4gIHByaXZhdGUgX3Bvc2l0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBfbGFzdFBvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcG9zaXRpb24uIChlLmcuIGJsb2NrLWVuZCwgYmxvY2stc3RhcnQsIGV0Yy4pICovXG4gIHB1YmxpYyBnZXQgY3VycmVudFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFBvc2l0aW9uID8/IHRoaXMuX3Bvc2l0aW9uc1swXSA/PyAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcyA/Pz0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9vdmVybGF5KTtcbiAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3Bvc2l0aW9uLWFyZWEnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgaG9zdDogUmVhY3RpdmVDb250cm9sbGVySG9zdCAmIEhUTUxFbGVtZW50ICYgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSxcbiAgICBwcml2YXRlIF91c2VQb2x5ZmlsbCA9ICFjc3NBbmNob3JQb3NpdGlvblN1cHBvcnRlZCxcbiAgKSB7XG4gICAgaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgIHRoaXMuX292ZXJsYXkgPSBob3N0O1xuICB9XG5cbiAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYW5jaG9yJywgdGhpcy5fYW5jaG9yTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlc2V0IHRoZSAncG9zaXRpb24tYXJlYScgdmFsdWUgdG8gYXZvaWQgYW55IHVud2FudGVkIHNpZGUgZWZmZWN0IHdoZW4gdXNpbmcgdGhlIHBvbHlmaWxsLlxuICAgICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eSgncG9zaXRpb24tYXJlYScsICdpbml0aWFsJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvc3RVcGRhdGUoKTogdm9pZCB7XG4gICAgaWYgKGlzU2VydmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdHMgdGhlIG92ZXJsYXkgdG8gdGhlIGdpdmVuIHRyaWdnZXIgZWxlbWVudCBhbmQgZGV0ZXJtaW5lcyB0aGUgb3B0aW1hbCBwb3NpdGlvbi5cbiAgICogVXN1YWxseSwgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBvcGVuZWQuXG4gICAqIEBwYXJhbSBhbmNob3IgVGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbm5lY3QoYW5jaG9yOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hbmNob3IpIHtcbiAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICB0aGlzLl9hbmNob3IgPSBhbmNob3I7XG5cbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICB0aGlzLl9hbmNob3Iuc3R5bGUuc2V0UHJvcGVydHkoJ2FuY2hvci1uYW1lJywgdGhpcy5fYW5jaG9yTmFtZSEpO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRQb3NpdGlvbnNGcm9tQ3NzKCk7XG4gICAgdGhpcy5fY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICB0aGlzLl9hYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuXG4gICAgLy8gV2UgbmVlZCB0byB1c2UgY2FwdHVyZSBoZXJlIHRvIHJlYWN0IHRvIGFsbCBzY3JvbGwgZXZlbnRzLlxuICAgIC8vIElmIGNhcHR1cmUgd2FzIG5vdCB1c2VkLCB0aGVuIHNjcm9sbCBldmVudHMgaW5zaWRlIHNlcGFyYXRlIHNjcm9sbFxuICAgIC8vIGNvbnRhaW5lcnMgd291bGQgbm90IGJlIGNhdWdodC5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCAoKSA9PiB0aGlzLl9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKSwge1xuICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICBzaWduYWw6IHRoaXMuX2Fib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHRoaXMuX3JlcXVlc3RDYWxjdWxhdGVQb3NpdGlvbigpLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUoYW5jaG9yLCB7IGJveDogJ2JvcmRlci1ib3gnIH0pO1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fb3ZlcmxheSwgeyBib3g6ICdib3JkZXItYm94JyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuX2FuY2hvcj8uc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2FuY2hvci1uYW1lJyk7XG4gICAgdGhpcy5fYW5jaG9yID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1ZXN0Q2FsY3VsYXRlUG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fZnJhbWUgPz89IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLl9jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgdGhpcy5fZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FuY2hvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl91c2VQb2x5ZmlsbCkge1xuICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9nZXRPcHRpbWFsUG9zaXRpb24odGhpcy5fcG9zaXRpb25zKTtcbiAgICAgIHRoaXMuX2FwcGx5T3ZlcmxheVBvc2l0aW9uKHBvc2l0aW9uLnBvc2l0aW9uLCBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3ApO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXkuc2V0QXR0cmlidXRlKCdkYXRhLXBvc2l0aW9uJywgdGhpcy5jdXJyZW50UG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZXMgdGhlIG9wdGltYWwgcG9zaXRpb24gdGhhdCBmaXRzIHRoZSBvdmVybGF5LlxuICAgKiBAcGFyYW0gcG9zaXRpb25zIFRoZSBsaXN0IG9mIHBvc2l0aW9ucyB0byBjaGVjay5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9wdGltYWxQb3NpdGlvbihwb3NpdGlvbnM6IHN0cmluZ1tdKToge1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB0b3A6IG51bWJlcjtcbiAgICBwb3NpdGlvbjogc3RyaW5nO1xuICAgIGZpdHM/OiBib29sZWFuO1xuICB9IHtcbiAgICBjb25zdCB7IG9mZnNldEhlaWdodDogb3ZlcmxheUhlaWdodCwgb2Zmc2V0V2lkdGg6IG92ZXJsYXlXaWR0aCB9ID0gdGhpcy5fb3ZlcmxheTtcbiAgICBjb25zdCB7IGlubmVySGVpZ2h0OiB2aWV3cG9ydEhlaWdodCwgaW5uZXJXaWR0aDogdmlld3BvcnRXaWR0aCB9ID0gd2luZG93O1xuICAgIGNvbnN0IHtcbiAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCxcbiAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0LFxuICAgICAgaGVpZ2h0OiB0cmlnZ2VySGVpZ2h0LFxuICAgICAgd2lkdGg6IHRyaWdnZXJXaWR0aCxcbiAgICB9ID0gdGhpcy5fYW5jaG9yIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5fb3ZlcmxheS5tYXRjaGVzKCc6ZGlyKHJ0bCknKTtcbiAgICBjb25zdCB0b3BTcGFjZSA9IHRyaWdnZXJPZmZzZXRUb3A7XG4gICAgY29uc3QgYm90dG9tU3BhY2UgPSB2aWV3cG9ydEhlaWdodCAtIHRyaWdnZXJIZWlnaHQgLSB0cmlnZ2VyT2Zmc2V0VG9wO1xuICAgIGNvbnN0IGxlZnRTcGFjZSA9IHRyaWdnZXJPZmZzZXRMZWZ0O1xuICAgIGNvbnN0IHJpZ2h0U3BhY2UgPSB2aWV3cG9ydFdpZHRoIC0gdHJpZ2dlcldpZHRoIC0gdHJpZ2dlck9mZnNldExlZnQ7XG5cbiAgICAvLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvdmVybGF5IGFuZCB0aGUgdHJpZ2dlciB3aWR0aC9oZWlnaHQuXG4gICAgY29uc3Qgb3ZlcmxheVdpZHRoTmV0ID0gb3ZlcmxheVdpZHRoIC0gdHJpZ2dlcldpZHRoO1xuICAgIGNvbnN0IG92ZXJsYXlIZWlnaHROZXQgPSBvdmVybGF5SGVpZ2h0IC0gdHJpZ2dlckhlaWdodDtcblxuICAgIC8vIFRoZSBhbW91bnQgdGhhdCB3b3VsZCBleGNlZWQgdGhlIHRyaWdnZXIgaWYgdGhlIG92ZXJsYXkgd2VyZSBjZW50ZXJlZCBvbiBpdC5cbiAgICBjb25zdCBvdmVybGF5V2lkdGhPdmVybGFwID0gb3ZlcmxheVdpZHRoTmV0IC8gMjtcbiAgICBjb25zdCBvdmVybGF5SGVpZ2h0T3ZlcmxhcCA9IG92ZXJsYXlIZWlnaHROZXQgLyAyO1xuXG4gICAgdGhpcy5fb3ZlcmxheS5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci1oZWlnaHQnLFxuICAgICAgYCR7dHJpZ2dlckhlaWdodH1weGAsXG4gICAgKTtcbiAgICB0aGlzLl9vdmVybGF5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1vdmVybGF5LWNvbnRyb2xsZXItdHJpZ2dlci13aWR0aCcsIGAke3RyaWdnZXJXaWR0aH1weGApO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtYXNzaWdubWVudFxuICAgIGxldCByZXN1bHQ6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gPSB7IGxlZnQ6IDAsIHRvcDogMCwgcG9zaXRpb246ICcnIH07XG4gICAgbGV0IGZpcnN0UG9zaXRpb246IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX2dldE9wdGltYWxQb3NpdGlvbj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBwb3NpdGlvbiBvZiBwb3NpdGlvbnMpIHtcbiAgICAgIC8vIElmIHJ0bCBpcyBlbmFibGVkLCB3ZSBtYXAgdGhlIGxvZ2ljYWwgcG9zaXRpb24gdG8gdGhlaXIgUlRMIGVxdWl2YWxlbnQuIChlLmcuICdpbmxpbmUtc3RhcnQnIC0+ICdpbmxpbmUtZW5kJylcbiAgICAgIGNvbnN0IHBoeXNpY2FsUG9zaXRpb24gPVxuICAgICAgICBpc1J0bCAmJiBsb2dpY2FsU3VwcG9ydGVkUG9zaXRpb25zLmluY2x1ZGVzKHBvc2l0aW9uKVxuICAgICAgICAgID8gcnRsUG9zaXRpb25NYXBwaW5nW3Bvc2l0aW9uXVxuICAgICAgICAgIDogcG9zaXRpb247XG5cbiAgICAgIHN3aXRjaCAocGh5c2ljYWxQb3NpdGlvbikge1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICBjYXNlICdibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhPdmVybGFwLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wICsgdHJpZ2dlckhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHQgPD0gYm90dG9tU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheVdpZHRoT3ZlcmxhcCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoT3ZlcmxhcCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOlxuICAgICAgICAgICAgICBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gbGVmdFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aE92ZXJsYXAgPD0gcmlnaHRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgIGNhc2UgJ2lubGluZS1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IHRvcFNwYWNlICYmXG4gICAgICAgICAgICAgIG92ZXJsYXlIZWlnaHRPdmVybGFwIDw9IGJvdHRvbVNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgLSBvdmVybGF5SGVpZ2h0T3ZlcmxhcCxcbiAgICAgICAgICAgIGZpdHM6XG4gICAgICAgICAgICAgIG92ZXJsYXlXaWR0aCA8PSBsZWZ0U3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gdG9wU3BhY2UgJiZcbiAgICAgICAgICAgICAgb3ZlcmxheUhlaWdodE92ZXJsYXAgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndG9wIHNwYW4tbGVmdCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLXN0YXJ0JzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0IC0gb3ZlcmxheVdpZHRoTmV0LFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wIC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlIZWlnaHQgPD0gdG9wU3BhY2UgJiYgb3ZlcmxheVdpZHRoTmV0IDw9IGxlZnRTcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0b3Agc3Bhbi1yaWdodCc6XG4gICAgICAgIGNhc2UgJ2Jsb2NrLXN0YXJ0IHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCAtIG92ZXJsYXlIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IHRvcFNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLWxlZnQnOlxuICAgICAgICBjYXNlICdibG9jay1lbmQgc3Bhbi1pbmxpbmUtc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGhOZXQsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheUhlaWdodCA8PSBib3R0b21TcGFjZSAmJiBvdmVybGF5V2lkdGhOZXQgPD0gbGVmdFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvdHRvbSBzcGFuLXJpZ2h0JzpcbiAgICAgICAgY2FzZSAnYmxvY2stZW5kIHNwYW4taW5saW5lLWVuZCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5SGVpZ2h0IDw9IGJvdHRvbVNwYWNlICYmIG92ZXJsYXlXaWR0aE5ldCA8PSByaWdodFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1zdGFydCc6XG4gICAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICBsZWZ0OiB0cmlnZ2VyT2Zmc2V0TGVmdCAtIG92ZXJsYXlXaWR0aCxcbiAgICAgICAgICAgIHRvcDogdHJpZ2dlck9mZnNldFRvcCArIHRyaWdnZXJIZWlnaHQgLSBvdmVybGF5SGVpZ2h0LFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IGxlZnRTcGFjZSAmJiBvdmVybGF5SGVpZ2h0TmV0IDw9IHRvcFNwYWNlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtc3RhcnQgc3Bhbi1ibG9jay1lbmQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgLSBvdmVybGF5V2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AsXG4gICAgICAgICAgICBmaXRzOiBvdmVybGF5V2lkdGggPD0gbGVmdFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gYm90dG9tU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi10b3AnOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stc3RhcnQnOlxuICAgICAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgbGVmdDogdHJpZ2dlck9mZnNldExlZnQgKyB0cmlnZ2VyV2lkdGgsXG4gICAgICAgICAgICB0b3A6IHRyaWdnZXJPZmZzZXRUb3AgKyB0cmlnZ2VySGVpZ2h0IC0gb3ZlcmxheUhlaWdodCxcbiAgICAgICAgICAgIGZpdHM6IG92ZXJsYXlXaWR0aCA8PSByaWdodFNwYWNlICYmIG92ZXJsYXlIZWlnaHROZXQgPD0gdG9wU3BhY2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQgc3Bhbi1ib3R0b20nOlxuICAgICAgICBjYXNlICdpbmxpbmUtZW5kIHNwYW4tYmxvY2stZW5kJzpcbiAgICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIGxlZnQ6IHRyaWdnZXJPZmZzZXRMZWZ0ICsgdHJpZ2dlcldpZHRoLFxuICAgICAgICAgICAgdG9wOiB0cmlnZ2VyT2Zmc2V0VG9wLFxuICAgICAgICAgICAgZml0czogb3ZlcmxheVdpZHRoIDw9IHJpZ2h0U3BhY2UgJiYgb3ZlcmxheUhlaWdodE5ldCA8PSBib3R0b21TcGFjZSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdC5maXRzKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBmaXJzdFBvc2l0aW9uID8/PSByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gcG9zaXRpb24gZml0cywgd2UgcmV0dXJuIHRoZSBmaXJzdCBvbmUuXG4gICAgcmV0dXJuIGZpcnN0UG9zaXRpb24hO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlPdmVybGF5UG9zaXRpb24ocG9zaXRpb246IHN0cmluZywgbGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUubGVmdCA9IGAke2xlZnR9cHhgO1xuICAgIHRoaXMuX292ZXJsYXkuc3R5bGUudG9wID0gYCR7dG9wfXB4YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmx5IHVzZWQgaW4gcG9seWZpbGwgbW9kZS5cbiAgICogUmVhZHMgdGhlIGxpc3Qgb2YgdGhlIGNvbmZpZ3VyZWQgcG9zaXRpb25zIGZyb20gdGhlIENTUyB2YXJpYWJsZXMuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9yZWFkUG9zaXRpb25zRnJvbUNzcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3VzZVBvbHlmaWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlTdHlsZXMgPz89IGdldENvbXB1dGVkU3R5bGUodGhpcy5fb3ZlcmxheSk7XG4gICAgY29uc3QgcG9zaXRpb25zID0gW1xuICAgICAgdGhpcy5fb3ZlcmxheVN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCctLXNiYi1vdmVybGF5LXBvc2l0aW9uLWFyZWEnKSB8fCAnYmxvY2stZW5kJyxcbiAgICAgIC4uLnRoaXMuX292ZXJsYXlTdHlsZXNcbiAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoJy0tc2JiLW92ZXJsYXktcG9zaXRpb24tdHJ5LWZhbGxiYWNrcycpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoKGYpID0+IGYudHJpbSgpKVxuICAgICAgICAuZmlsdGVyKChmKSA9PiAhIWYpLFxuICAgIF07XG5cbiAgICBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBwb3NpdGlvbnMuc29tZSgocCkgPT4gIXN1cHBvcnRlZFBvc2l0aW9ucy5pbmNsdWRlcyhwKSkpIHtcbiAgICAgIGNvbnN0IHVuc3VwcG9ydGVkUG9zaXRpb25zID0gcG9zaXRpb25zXG4gICAgICAgIC5maWx0ZXIoKHApID0+ICFzdXBwb3J0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocCkpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbnN1cHBvcnRlZCBwb3NpdGlvbi10cnktZmFsbGJhY2tzICR7dW5zdXBwb3J0ZWRQb3NpdGlvbnN9IChTdXBwb3J0ZWQ6ICR7c3VwcG9ydGVkUG9zaXRpb25zLmpvaW4oJywgJyl9KWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3Bvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICBpZiAodGhpcy5fbGFzdFBvc2l0aW9uICYmICF0aGlzLl9wb3NpdGlvbnMuaW5jbHVkZXModGhpcy5fbGFzdFBvc2l0aW9uKSkge1xuICAgICAgdGhpcy5fbGFzdFBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUlBLElBQU0sNkJBQTZCLENBQUMsWUFBWSxJQUFJLFNBQVMsZUFBZSxTQUFTO0FBRXJGLElBQU0sNkJBQTZCO0NBQ2pDO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNEO0FBR0QsSUFBTSw0QkFBNEI7Q0FDaEM7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0Q7QUFFRCxJQUFNLHFCQUFnRDtDQUNwRCxlQUFlO0NBQ2YsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQixjQUFjO0NBQ2QsaUNBQWlDO0NBQ2pDLCtCQUErQjtDQUMvQiwrQkFBK0I7Q0FDL0IsNkJBQTZCO0NBQzdCLGlDQUFpQztDQUNqQywrQkFBK0I7Q0FDL0IsK0JBQStCO0NBQy9CLDZCQUE2QjtDQUM5QjtBQUUwQixDQUFDLEdBQUcsNEJBQTRCLEdBQUcsMEJBQTBCO0FBQ3hGLElBQUksU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQmIsSUFBYSwrQkFBYixNQUF5Qzs7Q0FjdkMsSUFBVyxrQkFBZTtBQUN4QixNQUFJLEtBQUssYUFDUCxRQUFPLEtBQUssaUJBQWlCLEtBQUssV0FBVyxNQUFNO09BQzlDO0FBQ0wsUUFBSyxtQkFBbUIsaUJBQWlCLEtBQUssU0FBUztBQUN2RCxVQUFPLEtBQUssZUFBZSxpQkFBaUIs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
@@ -1,2 +1,2 @@
1
- import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../../form-field.component-DfMO_ihX.js";
1
+ import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../../form-field.component-D0NJclvI.js";
2
2
  export { SbbFormFieldControlEvent, SbbFormFieldElement };
@@ -1,4 +1,4 @@
1
- import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../form-field.component-DfMO_ihX.js";
1
+ import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../form-field.component-D0NJclvI.js";
2
2
  //#region src/elements/form-field/form-field.ts
3
3
  /** @entrypoint */
4
4
  SbbFormFieldElement.define();