desy-angular 11.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/esm2022/lib/desy-buttons/components/button/button.component.mjs +5 -3
  2. package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +15 -5
  3. package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +3 -3
  4. package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +5 -3
  5. package/esm2022/lib/desy-commons/interfaces/divider-data.mjs +1 -1
  6. package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +30 -4
  7. package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +3 -3
  8. package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +28 -2
  9. package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +17 -6
  10. package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +3 -3
  11. package/esm2022/lib/desy-forms/components/input/input.component.mjs +17 -8
  12. package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +28 -2
  13. package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +3 -3
  14. package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +3 -3
  15. package/esm2022/lib/desy-forms/components/select/select.component.mjs +5 -5
  16. package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +3 -3
  17. package/esm2022/lib/desy-forms/interfaces/label-data.mjs +1 -1
  18. package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +5 -5
  19. package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +1 -1
  20. package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +9 -7
  21. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +6 -2
  22. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +6 -2
  23. package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +18 -6
  24. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +6 -2
  25. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +3 -3
  26. package/esm2022/lib/desy-nav/components/header/header.component.mjs +3 -3
  27. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +1 -1
  28. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.mjs +7 -3
  29. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +7 -3
  30. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +7 -3
  31. package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.mjs +7 -3
  32. package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +5 -3
  33. package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +4 -3
  34. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +4 -2
  35. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +3 -3
  36. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +8 -2
  37. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +8 -2
  38. package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +8 -7
  39. package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +4 -2
  40. package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +3 -3
  41. package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +8 -13
  42. package/esm2022/lib/desy-nav/interfaces/footer-data.mjs +1 -1
  43. package/esm2022/lib/desy-nav/interfaces/footer-logo.mjs +9 -0
  44. package/esm2022/lib/desy-nav/interfaces/header-navigation-item-data.mjs +1 -1
  45. package/esm2022/lib/desy-nav/interfaces/index.mjs +4 -3
  46. package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs +1 -1
  47. package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs +1 -1
  48. package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +1 -1
  49. package/esm2022/lib/desy-nav/interfaces/menu-navigation.mjs +1 -1
  50. package/esm2022/lib/desy-nav/interfaces/nav-item.data.mjs +1 -1
  51. package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +1 -1
  52. package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +17 -2
  53. package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +5 -3
  54. package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +3 -3
  55. package/esm2022/lib/desy-views/components/alert/alert.component.mjs +3 -3
  56. package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +16 -5
  57. package/esm2022/lib/desy-views/components/details/details.component.mjs +15 -4
  58. package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +10 -6
  59. package/esm2022/lib/desy-views/components/spinner/spinner.component.mjs +5 -1
  60. package/esm2022/lib/desy-views/components/status/status.component.mjs +13 -5
  61. package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +11 -7
  62. package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +6 -4
  63. package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +5 -5
  64. package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +6 -16
  65. package/esm2022/public-api.mjs +4 -1
  66. package/fesm2022/desy-angular.mjs +424 -214
  67. package/fesm2022/desy-angular.mjs.map +1 -1
  68. package/lib/desy-buttons/components/button/button.component.d.ts +2 -1
  69. package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +4 -2
  70. package/lib/desy-buttons/components/listbox/listbox.component.d.ts +1 -1
  71. package/lib/desy-buttons/components/pill/pill.component.d.ts +2 -1
  72. package/lib/desy-commons/interfaces/divider-data.d.ts +1 -0
  73. package/lib/desy-forms/components/character-count/character-count.component.d.ts +7 -1
  74. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +2 -3
  75. package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +14 -1
  76. package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +6 -2
  77. package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +1 -1
  78. package/lib/desy-forms/components/input/input.component.d.ts +8 -3
  79. package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +14 -1
  80. package/lib/desy-forms/components/input-group/input-group.component.d.ts +1 -1
  81. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +1 -1
  82. package/lib/desy-forms/components/select/select.component.d.ts +1 -1
  83. package/lib/desy-forms/components/textarea/textarea.component.d.ts +1 -1
  84. package/lib/desy-forms/interfaces/label-data.d.ts +1 -0
  85. package/lib/desy-modals/components/dialog/dialog.component.d.ts +3 -3
  86. package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +4 -3
  87. package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +4 -2
  88. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +4 -2
  89. package/lib/desy-nav/components/footer/footer.component.d.ts +12 -7
  90. package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +3 -1
  91. package/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.d.ts +3 -1
  92. package/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.d.ts +3 -1
  93. package/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.d.ts +3 -1
  94. package/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.d.ts +3 -1
  95. package/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.d.ts +3 -2
  96. package/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.d.ts +3 -2
  97. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +4 -1
  98. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.d.ts +4 -1
  99. package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +2 -1
  100. package/lib/desy-nav/components/notification/notification.component.d.ts +5 -7
  101. package/lib/desy-nav/interfaces/footer-data.d.ts +4 -0
  102. package/lib/desy-nav/interfaces/footer-logo.d.ts +7 -0
  103. package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +1 -0
  104. package/lib/desy-nav/interfaces/index.d.ts +3 -2
  105. package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +1 -0
  106. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +3 -0
  107. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +3 -0
  108. package/lib/desy-nav/interfaces/menu-navigation.d.ts +3 -0
  109. package/lib/desy-nav/interfaces/nav-item.data.d.ts +1 -0
  110. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +8 -3
  111. package/lib/desy-views/components/alert/alert.component.d.ts +1 -1
  112. package/lib/desy-views/components/collapsible/collapsible.component.d.ts +3 -1
  113. package/lib/desy-views/components/details/details.component.d.ts +3 -1
  114. package/lib/desy-views/components/media-object/media-object.component.d.ts +4 -4
  115. package/lib/desy-views/components/status/status.component.d.ts +1 -1
  116. package/lib/desy-views/components/status-item/status-item.component.d.ts +6 -6
  117. package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +4 -3
  118. package/lib/desy-views/components/tooltip/tooltip.component.d.ts +1 -5
  119. package/package.json +2 -2
  120. package/public-api.d.ts +3 -0
@@ -11,9 +11,11 @@ import * as i3 from "../../../shared/pipes/make-html-list.pipe";
11
11
  export class AccordionComponent extends AccessibilityComponent {
12
12
  constructor() {
13
13
  super(...arguments);
14
+ this.classes = "block";
14
15
  this.showAll = true;
15
16
  }
16
17
  ngOnChanges(changes) {
18
+ this.classes = this.classes ? this.classes + " block" : null;
17
19
  this.roleData = this.role ? this.role : null;
18
20
  this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;
19
21
  this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;
@@ -114,7 +116,7 @@ export class AccordionComponent extends AccessibilityComponent {
114
116
  return item instanceof AccordionItemComponent ? item.contentComponent : null;
115
117
  }
116
118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "desy-accordion", inputs: { id: "id", idPrefix: "idPrefix", allowToggle: "allowToggle", allowMultiple: "allowMultiple", heading: "heading", headingLevel: "headingLevel", showControl: "showControl", items: "items", classes: "classes" }, host: { properties: { "class": "this.classes", "attr.role": "this.roleData", "attr.aria-label": "this.ariaLabelData", "attr.aria-describedby": "this.ariaDescribedbyData", "attr.aria-labelledby": "this.ariaLabelledbyData", "attr.aria-hidden": "this.ariaHiddenData", "attr.aria-disabled": "this.ariaDisabledData", "attr.aria-controls": "this.ariaControlsData", "attr.aria-current": "this.ariaCurrentData", "attr.aria-live": "this.ariaLiveData", "attr.aria-expanded": "this.ariaExpandedData", "attr.aria-errormessage": "this.ariaErrormessageData", "attr.aria-haspopup": "this.ariaHaspopupData", "attr.aria-modal": "this.ariaModalData" } }, queries: [{ propertyName: "headingComponent", predicate: AccordionHeaderComponent }, { propertyName: "itemComponentList", predicate: AccordionItemComponent }], viewQueries: [{ propertyName: "itemSelectors", predicate: ["itemSelector"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionComponent, selector: "desy-accordion", inputs: { id: "id", idPrefix: "idPrefix", allowToggle: "allowToggle", allowMultiple: "allowMultiple", heading: "heading", headingLevel: "headingLevel", showControl: "showControl", items: "items", classes: "classes" }, host: { properties: { "class": "this.classes", "attr.role": "this.roleData", "attr.aria-label": "this.ariaLabelData", "attr.aria-describedby": "this.ariaDescribedbyData", "attr.aria-labelledby": "this.ariaLabelledbyData", "attr.aria-hidden": "this.ariaHiddenData", "attr.aria-disabled": "this.ariaDisabledData", "attr.aria-controls": "this.ariaControlsData", "attr.aria-current": "this.ariaCurrentData", "attr.aria-live": "this.ariaLiveData", "attr.aria-expanded": "this.ariaExpandedData", "attr.aria-errormessage": "this.ariaErrormessageData", "attr.aria-haspopup": "this.ariaHaspopupData", "attr.aria-modal": "this.ariaModalData" } }, queries: [{ propertyName: "headingComponent", predicate: AccordionHeaderComponent }, { propertyName: "itemComponentList", predicate: AccordionItemComponent }], viewQueries: [{ propertyName: "itemSelectors", predicate: ["itemSelector"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : ''\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
118
120
  }
119
121
  __decorate([
120
122
  DesyContentChild(),
@@ -122,7 +124,7 @@ __decorate([
122
124
  ], AccordionComponent.prototype, "headingComponent", void 0);
123
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionComponent, decorators: [{
124
126
  type: Component,
125
- args: [{ selector: 'desy-accordion', template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n" }]
127
+ args: [{ selector: 'desy-accordion', template: "\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\" type=\"button\"\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" type=\"button\" class=\"group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : ''\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n" }]
126
128
  }], propDecorators: { itemSelectors: [{
127
129
  type: ViewChildren,
128
130
  args: ['itemSelector']
@@ -193,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
193
195
  type: ContentChildren,
194
196
  args: [AccordionItemComponent]
195
197
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQU9uRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBSjlEOztRQW9DRSxZQUFPLEdBQUcsSUFBSSxDQUFDO0tBa0hoQjtJQS9HQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUQsSUFBSSxDQUFDLG1CQUFt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O2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRXlCLE9BQU87c0JBQXJDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFDSCxRQUFRO3NCQUFqQyxXQUFXO3VCQUFDLFdBQVc7Z0JBQ1EsYUFBYTtzQkFBNUMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBQ1EsbUJBQW1CO3NCQUF4RCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDQyxrQkFBa0I7c0JBQXRELFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNGLGNBQWM7c0JBQTlDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNJLGdCQUFnQjtzQkFBbEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0UsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDQyxlQUFlO3NCQUFoRCxXQUFXO3VCQUFDLG1CQUFtQjtnQkFDRCxZQUFZO3NCQUExQyxXQUFXO3VCQUFDLGdCQUFnQjtnQkFDTSxnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNNLG9CQUFvQjtzQkFBMUQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBQ0YsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDRCxhQUFhO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFHYSxnQkFBZ0I7c0JBQTFELGVBQWU7dUJBQUMsd0JBQXdCO2dCQUNBLGlCQUFpQjtzQkFBekQsZUFBZTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGVzeUNvbnRlbnRDaGlsZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGVhZGVyRGF0YSwgQWNjb3JkaW9uSXRlbURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktYWNjb3JkaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgQFZpZXdDaGlsZHJlbignaXRlbVNlbGVjdG9yJykgaXRlbVNlbGVjdG9yczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgYWxsb3dUb2dnbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFsbG93TXVsdGlwbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhlYWRpbmc6IEFjY29yZGlvbkhlYWRlckRhdGE7XG4gIEBJbnB1dCgpIGhlYWRpbmdMZXZlbDtcbiAgQElucHV0KCkgc2hvd0NvbnRyb2w6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGl0ZW1zOiBBY2NvcmRpb25JdGVtRGF0YVtdO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBhcmlhTGFiZWxEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRlc2NyaWJlZGJ5JykgYXJpYURlc2NyaWJlZGJ5RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnlEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW5EYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWRpc2FibGVkJykgYXJpYURpc2FibGVkRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpIGFyaWFDb250cm9sc0RhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtY3VycmVudCcpIGFyaWFDdXJyZW50RGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1saXZlJykgYXJpYUxpdmVEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgYXJpYUV4cGFuZGVkRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2UnKSBhcmlhRXJyb3JtZXNzYWdlRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oYXNwb3B1cCcpIGFyaWFIYXNwb3B1cERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWxEYXRhOiBhbnlcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KSBoZWFkaW5nQ29tcG9uZW50OiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkgaXRlbUNvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxBY2NvcmRpb25JdGVtQ29tcG9uZW50PjtcblxuICBzaG93QWxsID0gdHJ1ZTtcbiAgY3VycmVudEl0ZW06IG51bWJlcjtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlRGF0YSA9IHRoaXMucm9sZSA/IHRoaXMucm9sZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxEYXRhID0gdGhpcy5hcmlhTGFiZWwgPyB0aGlzLmFyaWFMYWJlbCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkYnlEYXRhID0gdGhpcy5hcmlhRGVzY3JpYmVkQnkgPyB0aGlzLmFyaWFEZXNjcmliZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGFiZWxsZWRieURhdGEgPSB0aGlzLmFyaWFMYWJlbGxlZEJ5ID8gdGhpcy5hcmlhTGFiZWxsZWRCeSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGlkZGVuRGF0YSA9IHRoaXMuYXJpYUhpZGRlbiA/IHRoaXMuYXJpYUhpZGRlbiA6IG51bGw7XG4gICAgdGhpcy5hcmlhRGlzYWJsZWREYXRhID0gdGhpcy5hcmlhRGlzYWJsZWQgPyB0aGlzLmFyaWFEaXNhYmxlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ29udHJvbHNEYXRhID0gdGhpcy5hcmlhQ29udHJvbHMgPyB0aGlzLmFyaWFDb250cm9scyA6IG51bGw7XG4gICAgdGhpcy5hcmlhQ3VycmVudERhdGEgPSB0aGlzLmFyaWFDdXJyZW50ID8gdGhpcy5hcmlhQ3VycmVudCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTGl2ZURhdGEgPSB0aGlzLmFyaWFMaXZlID8gdGhpcy5hcmlhTGl2ZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXhwYW5kZWREYXRhID0gdGhpcy5hcmlhRXhwYW5kZWQgPyB0aGlzLmFyaWFFeHBhbmRlZCA6IG51bGw7XG4gICAgdGhpcy5hcmlhRXJyb3JtZXNzYWdlRGF0YSA9IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA/IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA6IG51bGw7XG4gICAgdGhpcy5hcmlhSGFzcG9wdXBEYXRhID0gdGhpcy5hcmlhSGFzUG9wdXAgPyB0aGlzLmFyaWFIYXNQb3B1cCA6IG51bGw7XG4gICAgdGhpcy5hcmlhTW9kYWxEYXRhID0gdGhpcy5hcmlhTW9kYWwgPyB0aGlzLmFyaWFNb2RhbCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtSWQoaXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IGlkO1xuICAgIGlmIChpdGVtLmlkKSB7XG4gICAgICBpZCA9IGl0ZW0uaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlkID0gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLScgKyAoaW5kZXggKyAxKSA6IChpbmRleCArIDEpO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBjaGFuZ2VBbGwoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGlzQ2hhbmdlID0gaXRlbS5vcGVuICE9PSB0aGlzLnNob3dBbGw7XG4gICAgICBpdGVtLm9wZW4gPSB0aGlzLnNob3dBbGw7XG4gICAgICBpZiAoaXNDaGFuZ2UgJiYgaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5vcGVuQ2hhbmdlLmVtaXQoaXRlbS5vcGVuKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNob3dBbGwgPSAhdGhpcy5zaG93QWxsO1xuICB9XG5cbiAgdG9nZ2xlSXRlbShpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IHZvaWQge1xuICAgIGlmICghaXRlbS5vcGVuIHx8IHRoaXMuYWxsb3dUb2dnbGUpIHtcbiAgICAgIGNvbnN0IG5ld09wZW5WYWx1ZSA9ICFpdGVtLm9wZW47XG4gICAgICBpZiAoIXRoaXMuYWxsb3dNdWx0aXBsZSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaChpdCA9PiB7XG4gICAgICAgICAgY29uc3Qgd2FzT3BlbiA9IGl0Lm9wZW47XG4gICAgICAgICAgaXQub3BlbiA9IGZhbHNlO1xuICAgICAgICAgIGlmICh3YXNPcGVuICYmIGl0ICE9PSBpdGVtICYmIGl0IGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICAgICAgaXQub3BlbkNoYW5nZS5lbWl0KGl0Lm9wZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpdGVtLm9wZW4gPSBuZXdPcGVuVmFsdWU7XG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbS5vcGVuQ2hhbmdlLmVtaXQoaXRlbS5vcGVuKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1c0ZpcnN0SXRlbShldmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0xhc3RJdGVtKGV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpW3RoaXMuaXRlbVNlbGVjdG9ycy5sZW5ndGggLSAxXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c05leHRJdGVtKGV2ZW50LCBmb2N1c2VkSXRlbTogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBzZWxlY3RvcnMgPSB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpO1xuICAgIGlmIChzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXSAhPSBudWxsKSB7XG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNQcmV2aW91c0l0ZW0oZXZlbnQsIGZvY3VzZWRJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XG4gICAgaWYgKHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyBzZWxlY3RvcnMubGVuZ3RoIC0gMSkgJSBzZWxlY3RvcnMubGVuZ3RoXSAhPSBudWxsKSB7XG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgc2VsZWN0b3JzLmxlbmd0aCAtIDEpICUgc2VsZWN0b3JzLmxlbmd0aF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEl0ZW0oaTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50SXRlbSA9IGk7XG4gIH1cblxuICBnZXRUaXRsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBsZXQgY2xhc3NlcyA9ICdjLWgyIG1iLWJhc2UnO1xuICAgIGlmICh0aGlzLmhlYWRpbmdDb21wb25lbnQgJiYgdGhpcy5oZWFkaW5nQ29tcG9uZW50LmNsYXNzZXMpIHtcbiAgICAgIGNsYXNzZXMgPSB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3NlcztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGluZyAmJiB0aGlzLmhlYWRpbmcuY2xhc3Nlcykge1xuICAgICAgY2xhc3NlcyA9IHRoaXMuaGVhZGluZy5jbGFzc2VzO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIGdldEl0ZW1zKCk6IEFjY29yZGlvbkl0ZW1EYXRhW10ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtQ29tcG9uZW50TGlzdCAmJiB0aGlzLml0ZW1Db21wb25lbnRMaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb25lbnRMaXN0LnRvQXJyYXkoKSA6IHRoaXMuaXRlbXM7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgZ2V0SXRlbUhlYWRlcihpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50ID8gaXRlbS5oZWFkZXJDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbiAgZ2V0SXRlbUNvbnRlbnQoaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiBDb250ZW50Q29tcG9uZW50IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmNvbnRlbnRDb21wb25lbnQgOiBudWxsO1xuICB9XG5cbn1cbiIsIlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZ0NvbXBvbmVudCB8fCBoZWFkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWwgPiAwICYmIGhlYWRpbmdMZXZlbCA8IDYgPyBoZWFkaW5nTGV2ZWwgOiAyXCI+XG4gICAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiMVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDE+XG4gICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiM1wiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiNFwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJnZXRUaXRsZUNsYXNzZXMoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgPyBoZWFkaW5nQ29tcG9uZW50IDogbnVsbCxcbiAgICAgICAgICAgIGh0bWw6IGhlYWRpbmcgPyBoZWFkaW5nLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogaGVhZGluZyA/IGhlYWRpbmcudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b24gW2F0dHIuaWRdPVwiaWRcIiAqbmdJZj1cInNob3dDb250cm9sXCIgKGNsaWNrKT1cImNoYW5nZUFsbCgpXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0byBweS1iYXNlIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGZvY3VzOnRleHQtYmxhY2sgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyB0ZXh0LXJpZ2h0XCI+XG4gICAgICAgIHt7c2hvd0FsbCA/ICdNb3N0cmFyJyA6ICdPY3VsdGFyJ319IHRvZG9cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIkFjY29yZGlvblwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbXMoKTsgaW5kZXggYXMgaVwiIGNsYXNzPVwiLW15LXB4IHB4LXhzIHB5LXNtIGJvcmRlci10IGJvcmRlci1iIGJvcmRlci1uZXV0cmFsLWJhc2VcIlxuICAgICAgICAgKGtleWRvd24uaG9tZSk9XCJmb2N1c0ZpcnN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgIChrZXlkb3duLmVuZCk9XCJmb2N1c0xhc3RJdGVtKCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJmb2N1c1ByZXZpb3VzSXRlbSgkZXZlbnQsIGkpXCJcbiAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJmb2N1c05leHRJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaSlcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsID4gMCAmJiBoZWFkaW5nTGV2ZWwgPCA2ID8gaGVhZGluZ0xldmVsIDogMlwiPlxuICAgICAgICA8aDIgKm5nU3dpdGNoQ2FzZT1cIjFcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgICAgICA8aDMgKm5nU3dpdGNoQ2FzZT1cIjJcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjNcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g0PlxuICAgICAgICA8aDUgKm5nU3dpdGNoQ2FzZT1cIjRcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g1PlxuICAgICAgICA8aDYgKm5nU3dpdGNoQ2FzZT1cIjVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8cCBjbGFzcz1cInNyLW9ubHlcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5IYXogY2xpY2sgZW4gZWwgYm90w7NuIGFudGVyaW9yIHBhcmEgbW9zdHJhciB1IG9jdWx0YXI8L3A+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5vcGVuXCIgY2xhc3M9XCJBY2NvcmRpb24tcGFuZWxcIlxuICAgICAgICAgICBbY2xhc3NdPVwiaXRlbS5jbGFzc2VzXCJcbiAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgW2F0dHIucm9sZV09XCIoaXRlbS5yb2xlID8gcm9sZSA6ICdhY2NvcmRpb24nKVwiICAgICAgICAgICBcbiAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJjdXJyZW50SXRlbSA9PT0gaSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInYWNjb3JkaW9uLScgKyBnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBnZXRJdGVtQ29udGVudChpdGVtKSwgaHRtbDogaXRlbS5odG1sLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPG5nLXRlbXBsYXRlICNpdGVtSGVhZGVyQ29udGVudCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaWQ9XCJpZFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gIDxidXR0b24gI2l0ZW1TZWxlY3RvciBbaWRdPVwiaWQgKyAnLXRpdGxlJ1wiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIkFjY29yZGlvbi10cmlnZ2VyIGdyb3VwIHJlbGF0aXZlIHctZnVsbCBweS1zbSBmb250LXNlbWlib2xkIHRleHQtbGVmdCBjdXJzb3ItcG9pbnRlciBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2tcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaWRcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0ub3BlblwiIChjbGljayk9XCJ0b2dnbGVJdGVtKGl0ZW0pXCIgW2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFtuZ0NsYXNzXT1cIml0ZW0uZGlzYWJsZWQgPyAnY3Vyc29yLW5vdC1hbGxvd2VkJyA6IGNsYXNzZXNcIj5cbiAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1IZWFkZXIoaXRlbSksIGh0bWw6IGl0ZW0uaGVhZGVySHRtbCwgdGV4dDogaXRlbS5oZWFkZXJUZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC15LTAgcmlnaHQtMCBweS1zbSBmb250LW5vcm1hbCB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrIHVuZGVybGluZSBncm91cC1mb2N1czp0ZXh0LWJsYWNrIHBvaW50ZXItZXZlbnRzLW5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6IGl0ZW0uZGlzYWJsZWR9XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tc2hvdycsIGl0ZW0uc2hvd0hlYWRlckJ1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLnNob3dIZWFkZXJCdXR0b24sIHRleHQ6ICdNb3N0cmFyJyB9XCI+PC9uZy1jb250YWluZXI+ICAgICAgXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImFsbG93VG9nZ2xlICYmIGl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1oaWRlJywgaXRlbS5zaG93SGVhZGVyQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uaGlkZUhlYWRlckJ1dHRvbiwgdGV4dDogJ09jdWx0YXInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBaUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7OztBQU9uRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQXNCO0lBSjlEOztRQWlCaUMsWUFBTyxHQUFRLE9BQU8sQ0FBQztRQW1CdEQsWUFBTyxHQUFHLElBQUksQ0FBQztLQW1IaEI7SUFoSEMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FB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QUExQyxZQUFZO3VCQUFDLGNBQWM7Z0JBRW5CLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFeUIsT0FBTztzQkFBckMsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxPQUFPO2dCQUNILFFBQVE7c0JBQWpDLFdBQVc7dUJBQUMsV0FBVztnQkFDUSxhQUFhO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFDUSxtQkFBbUI7c0JBQXhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQUNDLGtCQUFrQjtzQkFBdEQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBQ0YsY0FBYztzQkFBOUMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBQ0ksZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDRSxnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNDLGVBQWU7c0JBQWhELFdBQVc7dUJBQUMsbUJBQW1CO2dCQUNELFlBQVk7c0JBQTFDLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUNNLGdCQUFnQjtzQkFBbEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ00sb0JBQW9CO3NCQUExRCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRixnQkFBZ0I7c0JBQWxELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNELGFBQWE7c0JBQTVDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUdhLGdCQUFnQjtzQkFBMUQsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBQ0EsaUJBQWlCO3NCQUF6RCxlQUFlO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kZXN5LWNvbW1vbnMvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFjY2Vzc2liaWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXN5Q29udGVudENoaWxkIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XG5pbXBvcnQgeyBBY2NvcmRpb25IZWFkZXJEYXRhLCBBY2NvcmRpb25JdGVtRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taGVhZGVyL2FjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1pdGVtL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBAVmlld0NoaWxkcmVuKCdpdGVtU2VsZWN0b3InKSBpdGVtU2VsZWN0b3JzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIFxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBpZFByZWZpeDogc3RyaW5nO1xuICBASW5wdXQoKSBhbGxvd1RvZ2dsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dNdWx0aXBsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVhZGluZzogQWNjb3JkaW9uSGVhZGVyRGF0YTtcbiAgQElucHV0KCkgaGVhZGluZ0xldmVsO1xuICBASW5wdXQoKSBzaG93Q29udHJvbDogYm9vbGVhbjtcbiAgQElucHV0KCkgaXRlbXM6IEFjY29yZGlvbkl0ZW1EYXRhW107XG5cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzZXM6IGFueSA9IFwiYmxvY2tcIjtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpIGFyaWFMYWJlbERhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnlEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsbGVkYnknKSBhcmlhTGFiZWxsZWRieURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGlkZGVuJykgYXJpYUhpZGRlbkRhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGlzYWJsZWQnKSBhcmlhRGlzYWJsZWREYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWNvbnRyb2xzJykgYXJpYUNvbnRyb2xzRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jdXJyZW50JykgYXJpYUN1cnJlbnREYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxpdmUnKSBhcmlhTGl2ZURhdGE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZXhwYW5kZWQnKSBhcmlhRXhwYW5kZWREYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWVycm9ybWVzc2FnZScpIGFyaWFFcnJvcm1lc3NhZ2VEYXRhOiBhbnk7XG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhhc3BvcHVwJykgYXJpYUhhc3BvcHVwRGF0YTogYW55O1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1tb2RhbCcpIGFyaWFNb2RhbERhdGE6IGFueVxuXG4gIEBEZXN5Q29udGVudENoaWxkKClcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25IZWFkZXJDb21wb25lbnQpIGhlYWRpbmdDb21wb25lbnQ6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25JdGVtQ29tcG9uZW50KSBpdGVtQ29tcG9uZW50TGlzdDogUXVlcnlMaXN0PEFjY29yZGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gIHNob3dBbGwgPSB0cnVlO1xuICBjdXJyZW50SXRlbTogbnVtYmVyO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNsYXNzZXMgPSB0aGlzLmNsYXNzZXMgPyB0aGlzLmNsYXNzZXMgKyBcIiBibG9ja1wiIDogbnVsbDtcbiAgICB0aGlzLnJvbGVEYXRhID0gdGhpcy5yb2xlID8gdGhpcy5yb2xlIDogbnVsbDtcbiAgICB0aGlzLmFyaWFMYWJlbERhdGEgPSB0aGlzLmFyaWFMYWJlbCA/IHRoaXMuYXJpYUxhYmVsIDogbnVsbDtcbiAgICB0aGlzLmFyaWFEZXNjcmliZWRieURhdGEgPSB0aGlzLmFyaWFEZXNjcmliZWRCeSA/IHRoaXMuYXJpYURlc2NyaWJlZEJ5IDogbnVsbDtcbiAgICB0aGlzLmFyaWFMYWJlbGxlZGJ5RGF0YSA9IHRoaXMuYXJpYUxhYmVsbGVkQnkgPyB0aGlzLmFyaWFMYWJlbGxlZEJ5IDogbnVsbDtcbiAgICB0aGlzLmFyaWFIaWRkZW5EYXRhID0gdGhpcy5hcmlhSGlkZGVuID8gdGhpcy5hcmlhSGlkZGVuIDogbnVsbDtcbiAgICB0aGlzLmFyaWFEaXNhYmxlZERhdGEgPSB0aGlzLmFyaWFEaXNhYmxlZCA/IHRoaXMuYXJpYURpc2FibGVkIDogbnVsbDtcbiAgICB0aGlzLmFyaWFDb250cm9sc0RhdGEgPSB0aGlzLmFyaWFDb250cm9scyA/IHRoaXMuYXJpYUNvbnRyb2xzIDogbnVsbDtcbiAgICB0aGlzLmFyaWFDdXJyZW50RGF0YSA9IHRoaXMuYXJpYUN1cnJlbnQgPyB0aGlzLmFyaWFDdXJyZW50IDogbnVsbDtcbiAgICB0aGlzLmFyaWFMaXZlRGF0YSA9IHRoaXMuYXJpYUxpdmUgPyB0aGlzLmFyaWFMaXZlIDogbnVsbDtcbiAgICB0aGlzLmFyaWFFeHBhbmRlZERhdGEgPSB0aGlzLmFyaWFFeHBhbmRlZCA/IHRoaXMuYXJpYUV4cGFuZGVkIDogbnVsbDtcbiAgICB0aGlzLmFyaWFFcnJvcm1lc3NhZ2VEYXRhID0gdGhpcy5hcmlhRXJyb3JNZXNzYWdlID8gdGhpcy5hcmlhRXJyb3JNZXNzYWdlIDogbnVsbDtcbiAgICB0aGlzLmFyaWFIYXNwb3B1cERhdGEgPSB0aGlzLmFyaWFIYXNQb3B1cCA/IHRoaXMuYXJpYUhhc1BvcHVwIDogbnVsbDtcbiAgICB0aGlzLmFyaWFNb2RhbERhdGEgPSB0aGlzLmFyaWFNb2RhbCA/IHRoaXMuYXJpYU1vZGFsIDogbnVsbDtcbiAgfVxuXG4gIGdldEl0ZW1JZChpdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBsZXQgaWQ7XG4gICAgaWYgKGl0ZW0uaWQpIHtcbiAgICAgIGlkID0gaXRlbS5pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWQgPSB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctJyArIChpbmRleCArIDEpIDogKGluZGV4ICsgMSk7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGNoYW5nZUFsbCgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3QgaXNDaGFuZ2UgPSBpdGVtLm9wZW4gIT09IHRoaXMuc2hvd0FsbDtcbiAgICAgIGl0ZW0ub3BlbiA9IHRoaXMuc2hvd0FsbDtcbiAgICAgIGlmIChpc0NoYW5nZSAmJiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtLm9wZW5DaGFuZ2UuZW1pdChpdGVtLm9wZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2hvd0FsbCA9ICF0aGlzLnNob3dBbGw7XG4gIH1cblxuICB0b2dnbGVJdGVtKGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogdm9pZCB7XG4gICAgaWYgKCFpdGVtLm9wZW4gfHwgdGhpcy5hbGxvd1RvZ2dsZSkge1xuICAgICAgY29uc3QgbmV3T3BlblZhbHVlID0gIWl0ZW0ub3BlbjtcbiAgICAgIGlmICghdGhpcy5hbGxvd011bHRpcGxlKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICBjb25zdCB3YXNPcGVuID0gaXQub3BlbjtcbiAgICAgICAgICBpdC5vcGVuID0gZmFsc2U7XG4gICAgICAgICAgaWYgKHdhc09wZW4gJiYgaXQgIT09IGl0ZW0gJiYgaXQgaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpdC5vcGVuQ2hhbmdlLmVtaXQoaXQub3Blbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGl0ZW0ub3BlbiA9IG5ld09wZW5WYWx1ZTtcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtLm9wZW5DaGFuZ2UuZW1pdChpdGVtLm9wZW4pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvY3VzRmlyc3RJdGVtKGV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLml0ZW1TZWxlY3RvcnMudG9BcnJheSgpWzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzTGFzdEl0ZW0oZXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KClbdGhpcy5pdGVtU2VsZWN0b3JzLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzTmV4dEl0ZW0oZXZlbnQsIGZvY3VzZWRJdGVtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XG4gICAgaWYgKHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcbiAgICAgIHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c1ByZXZpb3VzSXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3Qgc2VsZWN0b3JzID0gdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKTtcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcbiAgICAgIHNlbGVjdG9yc1soZm9jdXNlZEl0ZW0gKyBzZWxlY3RvcnMubGVuZ3RoIC0gMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SXRlbShpOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRJdGVtID0gaTtcbiAgfVxuXG4gIGdldFRpdGxlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGxldCBjbGFzc2VzID0gJ2MtaDIgbWItYmFzZSc7XG4gICAgaWYgKHRoaXMuaGVhZGluZ0NvbXBvbmVudCAmJiB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3Nlcykge1xuICAgICAgY2xhc3NlcyA9IHRoaXMuaGVhZGluZ0NvbXBvbmVudC5jbGFzc2VzO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oZWFkaW5nICYmIHRoaXMuaGVhZGluZy5jbGFzc2VzKSB7XG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nLmNsYXNzZXM7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgZ2V0SXRlbXMoKTogQWNjb3JkaW9uSXRlbURhdGFbXSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1Db21wb25lbnRMaXN0ICYmIHRoaXMuaXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogdGhpcy5pdGVtcztcbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBnZXRJdGVtSGVhZGVyKGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmhlYWRlckNvbXBvbmVudCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtQ29udGVudChpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IENvbnRlbnRDb21wb25lbnQge1xuICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCA/IGl0ZW0uY29udGVudENvbXBvbmVudCA6IG51bGw7XG4gIH1cblxufVxuIiwiXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkaW5nQ29tcG9uZW50IHx8IGhlYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImhlYWRpbmdMZXZlbCA+IDAgJiYgaGVhZGluZ0xldmVsIDwgNiA/IGhlYWRpbmdMZXZlbCA6IDJcIj5cbiAgICAgICAgPGgxICpuZ1N3aXRjaENhc2U9XCIxXCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMT5cbiAgICAgICAgPGgyICpuZ1N3aXRjaENhc2U9XCIyXCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMz5cbiAgICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCI0XCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oND5cbiAgICAgICAgPGg1ICpuZ1N3aXRjaENhc2U9XCI1XCIgW2NsYXNzXT1cImdldFRpdGxlQ2xhc3NlcygpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCA/IGhlYWRpbmdDb21wb25lbnQgOiBudWxsLFxuICAgICAgICAgICAgaHRtbDogaGVhZGluZyA/IGhlYWRpbmcuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiBoZWFkaW5nID8gaGVhZGluZy50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oNT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvbiBbYXR0ci5pZF09XCJpZFwiICpuZ0lmPVwic2hvd0NvbnRyb2xcIiAoY2xpY2spPVwiY2hhbmdlQWxsKClcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtbC1hdXRvIHB5LWJhc2UgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFyayB1bmRlcmxpbmUgZm9jdXM6dGV4dC1ibGFjayBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIHRleHQtcmlnaHRcIj5cbiAgICAgICAge3tzaG93QWxsID8gJ01vc3RyYXInIDogJ09jdWx0YXInfX0gdG9kb1xuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiQWNjb3JkaW9uXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpXCIgY2xhc3M9XCItbXktcHggcHgteHMgcHktc20gYm9yZGVyLXQgYm9yZGVyLWIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiXG4gICAgICAgICAoa2V5ZG93bi5ob21lKT1cImZvY3VzRmlyc3RJdGVtKCRldmVudClcIlxuICAgICAgICAgKGtleWRvd24uZW5kKT1cImZvY3VzTGFzdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAoa2V5ZG93bi5hcnJvd3VwKT1cImZvY3VzUHJldmlvdXNJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgKGtleWRvd24uYXJyb3dkb3duKT1cImZvY3VzTmV4dEl0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiPlxuXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWwgPiAwICYmIGhlYWRpbmdMZXZlbCA8IDYgPyBoZWFkaW5nTGV2ZWwgOiAyXCI+XG4gICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDI+XG4gICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiMlwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiM1wiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDQ+XG4gICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNFwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDU+XG4gICAgICAgIDxoNiAqbmdTd2l0Y2hDYXNlPVwiNVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxwIGNsYXNzPVwic3Itb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkhheiBjbGljayBlbiBlbCBib3TDs24gYW50ZXJpb3IgcGFyYSBtb3N0cmFyIHUgb2N1bHRhcjwvcD5cbiAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm9wZW5cIiBjbGFzcz1cIkFjY29yZGlvbi1wYW5lbFwiXG4gICAgICAgICAgIFtjbGFzc109XCJpdGVtLmNsYXNzZXNcIlxuICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICBbYXR0ci5yb2xlXT1cIihpdGVtLnJvbGUgPyByb2xlIDogJ2FjY29yZGlvbicpXCIgICAgICAgICAgIFxuICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImN1cnJlbnRJdGVtID09PSBpID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaXRlbS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIidhY2NvcmRpb24tJyArIGdldEl0ZW1JZChpdGVtLCBpKVwiXG4gICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1Db250ZW50KGl0ZW0pLCBodG1sOiBpdGVtLmh0bWwsIHRleHQ6IGl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48bmctdGVtcGxhdGUgI2l0ZW1IZWFkZXJDb250ZW50IGxldC1pdGVtPVwiaXRlbVwiIGxldC1pZD1cImlkXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgPGJ1dHRvbiAjaXRlbVNlbGVjdG9yIFtpZF09XCJpZCArICctdGl0bGUnXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiZ3JvdXAgcmVsYXRpdmUgdy1mdWxsIHB5LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1sZWZ0IGN1cnNvci1wb2ludGVyIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgZm9jdXM6dGV4dC1ibGFja1wiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZFwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5vcGVuXCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW0oaXRlbSlcIiBbYXR0ci5kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCIgW25nQ2xhc3NdPVwiaXRlbS5kaXNhYmxlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQnIDogJydcIj5cbiAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1IZWFkZXIoaXRlbSksIGh0bWw6IGl0ZW0uaGVhZGVySHRtbCwgdGV4dDogaXRlbS5oZWFkZXJUZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmRpc2FibGVkXCIgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC15LTAgcmlnaHQtMCBweS1zbSBmb250LW5vcm1hbCB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrIHVuZGVybGluZSBncm91cC1mb2N1czp0ZXh0LWJsYWNrIHBvaW50ZXItZXZlbnRzLW5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6IGl0ZW0uZGlzYWJsZWR9XCI+XG4gICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tc2hvdycsIGl0ZW0uc2hvd0hlYWRlckJ1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLnNob3dIZWFkZXJCdXR0b24sIHRleHQ6ICdNb3N0cmFyJyB9XCI+PC9uZy1jb250YWluZXI+ICAgICAgXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cImFsbG93VG9nZ2xlICYmIGl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1oaWRlJywgaXRlbS5zaG93SGVhZGVyQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uaGlkZUhlYWRlckJ1dHRvbiwgdGV4dDogJ09jdWx0YXInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -7,13 +7,13 @@ import * as i2 from "../../../shared/directives/custom-inner-content.directive";
7
7
  import * as i3 from "../../../shared/pipes/make-html-list.pipe";
8
8
  export class AccordionHistoryComponent extends AccordionComponent {
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionHistoryComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionHistoryComponent, selector: "desy-accordion-history", queries: [{ propertyName: "itemComponentList", predicate: AccordionHistoryItemComponent }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\"\n type=\"button\" class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\" type=\"button\"\n type=\"button\" [class]=\"['Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AccordionHistoryComponent, selector: "desy-accordion-history", queries: [{ propertyName: "itemComponentList", predicate: AccordionHistoryItemComponent }], usesInheritance: true, ngImport: i0, template: "<div [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\"\n type=\"button\" class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\" type=\"button\"\n type=\"button\" [class]=\"['group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AccordionHistoryComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'desy-accordion-history', template: "<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\"\n type=\"button\" class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\" type=\"button\"\n type=\"button\" [class]=\"['Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
14
+ args: [{ selector: 'desy-accordion-history', template: "<div [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button [attr.id]=\"id\" *ngIf=\"showControl\" (click)=\"changeAll()\"\n type=\"button\" class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus text-right\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\" type=\"button\"\n type=\"button\" [class]=\"['group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n" }]
15
15
  }], propDecorators: { itemComponentList: [{
16
16
  type: ContentChildren,
17
17
  args: [AccordionHistoryItemComponent]
18
18
  }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FjY29yZGlvbi1oaXN0b3J5L2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24taGlzdG9yeS9hY2NvcmRpb24taGlzdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7O0FBTTFHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7K0dBQXBELHlCQUF5QjttR0FBekIseUJBQXlCLGdHQUduQiw2QkFBNkIsb0RDWGhELHloVEFvSEE7OzRGRDVHYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU1zQixpQkFBaUI7c0JBQXhFLGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1oaXN0b3J5LWl0ZW0vYWNjb3JkaW9uLWhpc3RvcnktaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWFjY29yZGlvbi1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25IaXN0b3J5Q29tcG9uZW50IGV4dGVuZHMgQWNjb3JkaW9uQ29tcG9uZW50IHtcblxuICAvLyBTb2JyZWVzY3JpYmUgZWwgdGlwbyBkZWwgbGlzdGFkbyBkZSBpdGVtc1xuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkhpc3RvcnlJdGVtQ29tcG9uZW50KSBkZWNsYXJlIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8QWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQ+O1xufVxuIiwiPGRpdiBbY2xhc3NdPVwiY2xhc3Nlc1wiXG4gICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlblwiXG4gICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkXCJcbiAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnRcIlxuICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmVcIlxuICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZFwiXG4gICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwXCJcbiAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsXCI+XG4gICAgICA8aDEgKm5nU3dpdGNoQ2FzZT1cIjFcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oMT5cbiAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMlwiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2NsYXNzXT1cImhlYWRpbmdDb21wb25lbnQ/LmNsYXNzZXMgfHwgJ2MtaDIgbWItYmFzZSdcIj48bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgfVwiPjwvbmctY29udGFpbmVyPjwvaDM+XG4gICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjRcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNVwiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2g1PlxuICAgICAgPGgyICpuZ1N3aXRjaERlZmF1bHQgIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGJ1dHRvbiBbYXR0ci5pZF09XCJpZFwiICpuZ0lmPVwic2hvd0NvbnRyb2xcIiAoY2xpY2spPVwiY2hhbmdlQWxsKClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibWwtYXV0byBweS1iYXNlIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGZvY3VzOnRleHQtYmxhY2sgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyB0ZXh0LXJpZ2h0XCI+XG4gICAgICB7e3Nob3dBbGwgPyAnTW9zdHJhcicgOiAnT2N1bHRhcid9fSB0b2RvXG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiQWNjb3JkaW9uIHBsLWxnXCI+XG4gICAgICA8bmctdGVtcGxhdGUgI2l0ZW1IZWFkZXJDb250ZW50IGxldC1pdGVtPVwiaXRlbVwiIGxldC1pZD1cImlkXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvbiAjaXRlbVNlbGVjdG9yIFtpZF09XCJpZCArICctdGl0bGUnXCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW0oaXRlbSlcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzXT1cIlsnQWNjb3JkaW9uLXRyaWdnZXIgZ3JvdXAgcmVsYXRpdmUgdy1mdWxsIHB5LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1sZWZ0IGN1cnNvci1wb2ludGVyIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgZm9jdXM6dGV4dC1ibGFjaycsIGl0ZW0uZGlzYWJsZWQgPyAnY3Vyc29yLW5vdC1hbGxvd2VkJyA6ICcnXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZFwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5vcGVuXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogZ2V0SXRlbUhlYWRlcihpdGVtKSwgaHRtbDogaXRlbS5oZWFkZXJIdG1sLCB0ZXh0OiBpdGVtLmhlYWRlclRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5kaXNhYmxlZFwiIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQteS0wIHJpZ2h0LTAgcHktc20gZm9udC1ub3JtYWwgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFyayB1bmRlcmxpbmUgZ3JvdXAtZm9jdXM6dGV4dC1ibGFjayBwb2ludGVyLWV2ZW50cy1ub25lXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1zaG93JywgaXRlbS5zaG93QnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5zaG93QnV0dG9uLCB0ZXh0OiAnTW9zdHJhcicgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYWxsb3dUb2dnbGUgJiYgaXRlbS5vcGVuXCIgW2NsYXNzXT1cIlsnQWNjb3JkaW9uLXNob3cnLCBpdGVtLmhpZGVCdXR0b24/LmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLmhpZGVCdXR0b24sIHRleHQ6ICdPY3VsdGFyJyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEl0ZW1zKCk7IGluZGV4IGFzIGk7IGZpcnN0IGFzIGlzRmlyc3Q7IGxhc3QgYXMgaXNMYXN0XCIgXG4gICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgLW15LXB4IHB4LXhzIHB5LXNtIGJvcmRlci10IGJvcmRlci1iIGJvcmRlci1uZXV0cmFsLWJhc2VcIlxuICAgICAgICAgICAoa2V5ZG93bi5ob21lKT1cImZvY3VzRmlyc3RJdGVtKCRldmVudClcIlxuICAgICAgICAgICAoa2V5ZG93bi5lbmQpPVwiZm9jdXNMYXN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgKGtleWRvd24uYXJyb3d1cCk9XCJmb2N1c1ByZXZpb3VzSXRlbSgkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgKGtleWRvd24uYXJyb3dkb3duKT1cImZvY3VzTmV4dEl0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGkpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImhlYWRpbmdMZXZlbFwiPlxuICAgICAgICAgICAgPGgyICpuZ1N3aXRjaENhc2U9XCIxXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oMj5cbiAgICAgICAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiMlwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDM+XG4gICAgICAgICAgICA8aDQgKm5nU3dpdGNoQ2FzZT1cIjNcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g0PlxuICAgICAgICAgICAgPGg1ICpuZ1N3aXRjaENhc2U9XCI0XCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oNT5cbiAgICAgICAgICAgIDxoNiAqbmdTd2l0Y2hDYXNlPVwiNVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDY+XG4gICAgICAgICAgICA8aDMgKm5nU3dpdGNoRGVmYXVsdD48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHAgY2xhc3M9XCJzci1vbmx5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+SGF6IGNsaWNrIGVuIGVsIGJvdMOzbiBhbnRlcmlvciBwYXJhIG1vc3RyYXIgdSBvY3VsdGFyPC9wPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRmlyc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtLnN0YXR1c1wiPlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnQnXCIgY2xhc3M9XCJhYnNvbHV0ZSAtdG9wLXB4IC1sZWZ0LTUgaC02IGJvcmRlci0yIGJvcmRlci1wcmltYXJ5LWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidwZW5kaW5nJ1wiIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJhYnNvbHV0ZSAtdG9wLXB4IC1sZWZ0LTUgaC02IGJvcmRlci0yIGJvcmRlci1wcmltYXJ5LWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMYXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3BlbmRpbmcnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNiBib3R0b20tMCAtbGVmdC01IGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInbXV0ZWQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNiBib3R0b20tMCAtbGVmdC01IGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50bXV0ZWQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNiBib3R0b20tMCAtbGVmdC01IGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaERlZmF1bHQgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNiBib3R0b20tMCAtbGVmdC01IGJvcmRlci0yIGJvcmRlci1wcmltYXJ5LWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0uc3RhdHVzXCI+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNSAtbGVmdC02IHctMyBoLTMgYmctd2hpdGUgcmluZy0yIHJpbmctcHJpbWFyeS1iYXNlIHJvdW5kZWQtZnVsbFwiIHJvbGU9XCJpbWdcIj48cCBjbGFzcz1cInNyLW9ubHlcIj5Fc3RhZG86IGFjdHVhbDwvcD48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIHRvcC01IC1sZWZ0LTYgdy0zIGgtMyBiZy13aGl0ZSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlIHJvdW5kZWQtZnVsbFwiIHJvbGU9XCJpbWdcIj48cCBjbGFzcz1cInNyLW9ubHlcIj5Fc3RhZG86IHBlbmRpZW50ZTwvcD48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInbXV0ZWQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNSAtbGVmdC02IHctMyBoLTMgYmctbmV1dHJhbC1iYXNlIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWJhc2Ugcm91bmRlZC1mdWxsXCIgcm9sZT1cImltZ1wiPjxwIGNsYXNzPVwic3Itb25seVwiPkVzdGFkbzogcGFzYWRvPC9wPjwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50bXV0ZWQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNSAtbGVmdC02IHctMyBoLTMgYmctbmV1dHJhbC1iYXNlIHJpbmctMiByaW5nLW5ldXRyYWwtYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBhY3R1YWw8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLXByaW1hcnktYmFzZSBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlIHJvdW5kZWQtZnVsbFwiIHJvbGU9XCJpbWdcIj48cCBjbGFzcz1cInNyLW9ubHlcIj5Fc3RhZG86IHBhc2FkbzwvcD48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1wYW5lbCByZWxhdGl2ZScsIGl0ZW0uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICAgICAgIFthdHRyLmlkXT1cImdldEl0ZW1JZChpdGVtLCBpKVwiXG4gICAgICAgICAgICAgW2F0dHIucm9sZV09XCIoaXRlbS5yb2xlID8gcm9sZSA6ICdhY2NvcmRpb24nKVwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJjdXJyZW50SXRlbSA9PT0gaSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiaXRlbS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCInYWNjb3JkaW9uLScgKyBnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMYXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtLnN0YXR1c1wiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidwZW5kaW5nJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgYm90dG9tLTAgLWxlZnQtNiAtbXktc20gYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgYm90dG9tLTAgLWxlZnQtNiAtbXktc20gYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgYm90dG9tLTAgLWxlZnQtNiAtbXktc20gYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTQgYm90dG9tLTAgLWxlZnQtNiAtbXktc20gYm9yZGVyLTIgYm9yZGVyLXByaW1hcnktYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBnZXRJdGVtQ29udGVudChpdGVtKSwgaHRtbDogaXRlbS5odG1sLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FjY29yZGlvbi1oaXN0b3J5L2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24taGlzdG9yeS9hY2NvcmRpb24taGlzdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7Ozs7O0FBTTFHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7K0dBQXBELHlCQUF5QjttR0FBekIseUJBQXlCLGdHQUduQiw2QkFBNkIsb0RDWGhELDYrU0FtSEE7OzRGRDNHYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCOzhCQU1zQixpQkFBaUI7c0JBQXhFLGVBQWU7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1oaXN0b3J5LWl0ZW0vYWNjb3JkaW9uLWhpc3RvcnktaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWFjY29yZGlvbi1oaXN0b3J5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY29yZGlvbi1oaXN0b3J5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25IaXN0b3J5Q29tcG9uZW50IGV4dGVuZHMgQWNjb3JkaW9uQ29tcG9uZW50IHtcblxuICAvLyBTb2JyZWVzY3JpYmUgZWwgdGlwbyBkZWwgbGlzdGFkbyBkZSBpdGVtc1xuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkhpc3RvcnlJdGVtQ29tcG9uZW50KSBkZWNsYXJlIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8QWNjb3JkaW9uSGlzdG9yeUl0ZW1Db21wb25lbnQ+O1xufVxuIiwiPGRpdiBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cImFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImFyaWFIaWRkZW5cIlxuICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZFwiXG4gICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzXCJcbiAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50XCJcbiAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlXCJcbiAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWRcIlxuICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cFwiXG4gICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImhlYWRpbmdMZXZlbFwiPlxuICAgICAgPGgxICpuZ1N3aXRjaENhc2U9XCIxXCIgW2NsYXNzXT1cImhlYWRpbmdDb21wb25lbnQ/LmNsYXNzZXMgfHwgJ2MtaDIgbWItYmFzZSdcIj48bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgfVwiPjwvbmctY29udGFpbmVyPjwvaDE+XG4gICAgICA8aDIgKm5nU3dpdGNoQ2FzZT1cIjJcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oMj5cbiAgICAgIDxoMyAqbmdTd2l0Y2hDYXNlPVwiM1wiIFtjbGFzc109XCJoZWFkaW5nQ29tcG9uZW50Py5jbGFzc2VzIHx8ICdjLWgyIG1iLWJhc2UnXCI+PG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBoZWFkaW5nQ29tcG9uZW50IH1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCI0XCIgW2NsYXNzXT1cImhlYWRpbmdDb21wb25lbnQ/LmNsYXNzZXMgfHwgJ2MtaDIgbWItYmFzZSdcIj48bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGhlYWRpbmdDb21wb25lbnQgfVwiPjwvbmctY29udGFpbmVyPjwvaDQ+XG4gICAgICA8aDUgKm5nU3dpdGNoQ2FzZT1cIjVcIiBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oNT5cbiAgICAgIDxoMiAqbmdTd2l0Y2hEZWZhdWx0ICBbY2xhc3NdPVwiaGVhZGluZ0NvbXBvbmVudD8uY2xhc3NlcyB8fCAnYy1oMiBtYi1iYXNlJ1wiPjxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaGVhZGluZ0NvbXBvbmVudCB9XCI+PC9uZy1jb250YWluZXI+PC9oMj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxidXR0b24gW2F0dHIuaWRdPVwiaWRcIiAqbmdJZj1cInNob3dDb250cm9sXCIgKGNsaWNrKT1cImNoYW5nZUFsbCgpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm1sLWF1dG8gcHktYmFzZSB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrIHVuZGVybGluZSBmb2N1czp0ZXh0LWJsYWNrIGZvY3VzOmJnLXdhcm5pbmctYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6c2hhZG93LW91dGxpbmUtZm9jdXMgdGV4dC1yaWdodFwiPlxuICAgICAge3tzaG93QWxsID8gJ01vc3RyYXInIDogJ09jdWx0YXInfX0gdG9kb1xuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIkFjY29yZGlvbiBwbC1sZ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlICNpdGVtSGVhZGVyQ29udGVudCBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaWQ9XCJpZFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgICAgIDxidXR0b24gI2l0ZW1TZWxlY3RvciBbaWRdPVwiaWQgKyAnLXRpdGxlJ1wiIChjbGljayk9XCJ0b2dnbGVJdGVtKGl0ZW0pXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFtjbGFzc109XCJbJ2dyb3VwIHJlbGF0aXZlIHctZnVsbCBweS1zbSBmb250LXNlbWlib2xkIHRleHQtbGVmdCBjdXJzb3ItcG9pbnRlciBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2snLCBpdGVtLmRpc2FibGVkID8gJ2N1cnNvci1ub3QtYWxsb3dlZCcgOiAnJ10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaWRcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0ub3BlblwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGdldEl0ZW1IZWFkZXIoaXRlbSksIGh0bWw6IGl0ZW0uaGVhZGVySHRtbCwgdGV4dDogaXRlbS5oZWFkZXJUZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWl0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LXktMCByaWdodC0wIHB5LXNtIGZvbnQtbm9ybWFsIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmsgdW5kZXJsaW5lIGdyb3VwLWZvY3VzOnRleHQtYmxhY2sgcG9pbnRlci1ldmVudHMtbm9uZVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tc2hvdycsIGl0ZW0uc2hvd0J1dHRvbj8uY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0uc2hvd0J1dHRvbiwgdGV4dDogJ01vc3RyYXInIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFsbG93VG9nZ2xlICYmIGl0ZW0ub3BlblwiIFtjbGFzc109XCJbJ0FjY29yZGlvbi1zaG93JywgaXRlbS5oaWRlQnV0dG9uPy5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbS5oaWRlQnV0dG9uLCB0ZXh0OiAnT2N1bHRhcicgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpOyBmaXJzdCBhcyBpc0ZpcnN0OyBsYXN0IGFzIGlzTGFzdFwiIFxuICAgICAgICAgICBjbGFzcz1cInJlbGF0aXZlIC1teS1weCBweC14cyBweS1zbSBib3JkZXItdCBib3JkZXItYiBib3JkZXItbmV1dHJhbC1iYXNlXCJcbiAgICAgICAgICAgKGtleWRvd24uaG9tZSk9XCJmb2N1c0ZpcnN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgKGtleWRvd24uZW5kKT1cImZvY3VzTGFzdEl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93dXApPVwiZm9jdXNQcmV2aW91c0l0ZW0oJGV2ZW50LCBpKVwiXG4gICAgICAgICAgIChrZXlkb3duLmFycm93ZG93bik9XCJmb2N1c05leHRJdGVtKCRldmVudCwgaSlcIlxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJoZWFkaW5nTGV2ZWxcIj5cbiAgICAgICAgICAgIDxoMiAqbmdTd2l0Y2hDYXNlPVwiMVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDI+XG4gICAgICAgICAgICA8aDMgKm5nU3dpdGNoQ2FzZT1cIjJcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2gzPlxuICAgICAgICAgICAgPGg0ICpuZ1N3aXRjaENhc2U9XCIzXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oND5cbiAgICAgICAgICAgIDxoNSAqbmdTd2l0Y2hDYXNlPVwiNFwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtSGVhZGVyQ29udGVudDsgY29udGV4dDoge2l0ZW06IGl0ZW0sIGlkOiBnZXRJdGVtSWQoaXRlbSwgaSksIGluZGV4OiBpfVwiPjwvbmctY29udGFpbmVyPjwvaDU+XG4gICAgICAgICAgICA8aDYgKm5nU3dpdGNoQ2FzZT1cIjVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbUhlYWRlckNvbnRlbnQ7IGNvbnRleHQ6IHtpdGVtOiBpdGVtLCBpZDogZ2V0SXRlbUlkKGl0ZW0sIGkpLCBpbmRleDogaX1cIj48L25nLWNvbnRhaW5lcj48L2g2PlxuICAgICAgICAgICAgPGgzICpuZ1N3aXRjaERlZmF1bHQ+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1IZWFkZXJDb250ZW50OyBjb250ZXh0OiB7aXRlbTogaXRlbSwgaWQ6IGdldEl0ZW1JZChpdGVtLCBpKSwgaW5kZXg6IGl9XCI+PC9uZy1jb250YWluZXI+PC9oMz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxwIGNsYXNzPVwic3Itb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkhheiBjbGljayBlbiBlbCBib3TDs24gYW50ZXJpb3IgcGFyYSBtb3N0cmFyIHUgb2N1bHRhcjwvcD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ZpcnN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnRtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIC10b3AtcHggLWxlZnQtNSBoLTYgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZVwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgLXRvcC1weCAtbGVmdC01IGgtNiBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIml0ZW0uc3RhdHVzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC02IGJvdHRvbS0wIC1sZWZ0LTUgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtbGlnaHRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidwZW5kaW5nJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTYgYm90dG9tLTAgLWxlZnQtNSBib3JkZXItMiBib3JkZXItcHJpbWFyeS1iYXNlXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpdGVtLnN0YXR1c1wiPlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW50J1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLXdoaXRlIHJpbmctMiByaW5nLXByaW1hcnktYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBhY3R1YWw8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3BlbmRpbmcnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNSAtbGVmdC02IHctMyBoLTMgYmctd2hpdGUgYm9yZGVyLTIgYm9yZGVyLW5ldXRyYWwtYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBwZW5kaWVudGU8L3A+PC9kaXY+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ211dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLW5ldXRyYWwtYmFzZSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1iYXNlIHJvdW5kZWQtZnVsbFwiIHJvbGU9XCJpbWdcIj48cCBjbGFzcz1cInNyLW9ubHlcIj5Fc3RhZG86IHBhc2FkbzwvcD48L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY3VycmVudG11dGVkJ1wiIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTUgLWxlZnQtNiB3LTMgaC0zIGJnLW5ldXRyYWwtYmFzZSByaW5nLTIgcmluZy1uZXV0cmFsLWJhc2Ugcm91bmRlZC1mdWxsXCIgcm9sZT1cImltZ1wiPjxwIGNsYXNzPVwic3Itb25seVwiPkVzdGFkbzogYWN0dWFsPC9wPjwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cImFic29sdXRlIHRvcC01IC1sZWZ0LTYgdy0zIGgtMyBiZy1wcmltYXJ5LWJhc2UgYm9yZGVyLTIgYm9yZGVyLXByaW1hcnktYmFzZSByb3VuZGVkLWZ1bGxcIiByb2xlPVwiaW1nXCI+PHAgY2xhc3M9XCJzci1vbmx5XCI+RXN0YWRvOiBwYXNhZG88L3A+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLm9wZW5cIiBbY2xhc3NdPVwiWydBY2NvcmRpb24tcGFuZWwgcmVsYXRpdmUnLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQoaXRlbSwgaSlcIlxuICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiKGl0ZW0ucm9sZSA/IHJvbGUgOiAnYWNjb3JkaW9uJylcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiY3VycmVudEl0ZW0gPT09IGkgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2FjY29yZGlvbi0nICsgZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiaXRlbS5zdGF0dXNcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnQnXCIgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtNCBib3R0b20tMCAtbGVmdC02IC1teS1zbSBib3JkZXItMiBib3JkZXItbmV1dHJhbC1saWdodFwiPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIncGVuZGluZydcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbnRtdXRlZCdcIiBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1uZXV0cmFsLWxpZ2h0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdCBjbGFzcz1cImFic29sdXRlIHRvcC00IGJvdHRvbS0wIC1sZWZ0LTYgLW15LXNtIGJvcmRlci0yIGJvcmRlci1wcmltYXJ5LWJhc2VcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogZ2V0SXRlbUNvbnRlbnQoaXRlbSksIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -54,11 +54,11 @@ export class AlertComponent extends AccessibilityComponent {
54
54
  }
55
55
  }
56
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AlertComponent, selector: "desy-alert", inputs: { id: "id", classes: "classes", caller: "caller", focusFirst: "focusFirst", active: "active" }, outputs: { activeChange: "activeChange" }, viewQueries: [{ propertyName: "alertWrapper", first: true, predicate: ["alertWrapper"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<div #alertWrapper\n [id]=\"id\" [class]=\"classes ? classes : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\n <ng-container *ngIf=\"active\">\n <ng-template #container></ng-template>\n <ng-container *ngTemplateOutlet=\"caller; context:callerContext\"></ng-container>\n </ng-container>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AlertComponent, selector: "desy-alert", inputs: { id: "id", classes: "classes", caller: "caller", focusFirst: "focusFirst", active: "active" }, outputs: { activeChange: "activeChange" }, viewQueries: [{ propertyName: "alertWrapper", first: true, predicate: ["alertWrapper"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], usesInheritance: true, ngImport: i0, template: "<div #alertWrapper\n [id]=\"id\" [class]=\"classes ? classes : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\n <ng-container *ngIf=\"active\">\n <ng-template #container></ng-template>\n <ng-container *ngTemplateOutlet=\"caller; context:callerContext\"></ng-container>\n <ng-content select=\"desy-notification\"></ng-content>\n </ng-container>\n</div>\n\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
58
58
  }
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AlertComponent, decorators: [{
60
60
  type: Component,
61
- args: [{ selector: 'desy-alert', template: "<div #alertWrapper\n [id]=\"id\" [class]=\"classes ? classes : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\n <ng-container *ngIf=\"active\">\n <ng-template #container></ng-template>\n <ng-container *ngTemplateOutlet=\"caller; context:callerContext\"></ng-container>\n </ng-container>\n</div>\n\n" }]
61
+ args: [{ selector: 'desy-alert', template: "<div #alertWrapper\n [id]=\"id\" [class]=\"classes ? classes : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\n <ng-container *ngIf=\"active\">\n <ng-template #container></ng-template>\n <ng-container *ngTemplateOutlet=\"caller; context:callerContext\"></ng-container>\n <ng-content select=\"desy-notification\"></ng-content>\n </ng-container>\n</div>\n\n" }]
62
62
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { alertWrapper: [{
63
63
  type: ViewChild,
64
64
  args: ['alertWrapper']
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
78
78
  }], activeChange: [{
79
79
  type: Output
80
80
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFBRSx3QkFBd0IsRUFDbkMsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQUUsZ0JBQWdCLEVBQzVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBUS9ELE1BQU0sT0FBTyxjQUFlLFNBQVEsc0JBQXNCO0lBVXhELElBQWEsTUFBTSxDQUFDLEtBQWM7UUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFZRCxZQUFvQixLQUF3QixFQUFVLGVBQXlDO1FBQzdGLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFYckYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzdDLG9CQUFlLEdBQVksU0FBUyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQUl0QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBRWIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDaEQ7WUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ25DO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQTRCLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUNuQjthQUNGO1NBQ0Y7SUFDSCxDQUFDOytHQXRFVSxjQUFjO21HQUFkLGNBQWMsdVhBR00sZ0JBQWdCLG9EQ3hCakQsc2tDQXFCQTs7NEZEQWEsY0FBYztrQkFKMUIsU0FBUzsrQkFDRSxZQUFZOytJQUtLLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDeUIsU0FBUztzQkFBMUQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBRXZDLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFVSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZiwgVHlwZSxcbiAgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7IEZvY3VzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZm9jdXMtdXRpbHMnO1xuXG50eXBlIEFsZXJ0Q3JlYXRpb25DYWxsYmFjayA9ICgoZGlhbG9nOiBBbGVydENvbXBvbmVudCwgY2FsbGVyOiBDb21wb25lbnRSZWY8YW55PikgPT4gdm9pZCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnYWxlcnRXcmFwcGVyJykgYWxlcnRXcmFwcGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNhbGxlcjogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZm9jdXNGaXJzdDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgYWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5oYW5kbGVBY3RpdmVTdGF0ZSgpO1xuICAgIH0pO1xuICB9XG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuICBAT3V0cHV0KCkgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX2FjdGl2ZTogYm9vbGVhbjtcbiAgcHVibGljIGNhbGxlckNvbnRleHQ6IGFueTtcbiAgcHVibGljIGNhbGxlclR5cGU6IFR5cGU8YW55PjtcbiAgcHVibGljIG9uQ2FsbGVyQ3JlYXRpb25DYWxsYmFjazogQWxlcnRDcmVhdGlvbkNhbGxiYWNrO1xuXG4gIHByaXZhdGUgbGFzdEFjdGl2ZVN0YXRlOiBib29sZWFuID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIGhhc1ZpZXdpbml0ID0gZmFsc2U7XG4gIHByaXZhdGUgY3JlYXRlZENhbGxlckZyb21UeXBlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuaGFzVmlld2luaXQgPSB0cnVlO1xuICAgIHRoaXMuaGFuZGxlQWN0aXZlU3RhdGUoKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBoYW5kbGVBY3RpdmVTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlICYmIHRoaXMuY2FsbGVyVHlwZSAmJiAhdGhpcy5jcmVhdGVkQ2FsbGVyRnJvbVR5cGUpIHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNhbGxlclR5cGUpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgaWYgKHRoaXMub25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMub25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrKHRoaXMsIGNvbXBvbmVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNyZWF0ZWRDYWxsZXJGcm9tVHlwZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZSAhPT0gdGhpcy5sYXN0QWN0aXZlU3RhdGUgJiYgdGhpcy5oYXNWaWV3aW5pdCkge1xuICAgICAgdGhpcy5sYXN0QWN0aXZlU3RhdGUgPSB0aGlzLl9hY3RpdmU7XG5cbiAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5mb2N1c0ZpcnN0KSB7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zdCBmb2N1c0VsZW0gPSBGb2N1c1V0aWxzLmdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCh0aGlzLmFsZXJ0V3JhcHBlci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgaWYgKGZvY3VzRWxlbSkge1xuICAgICAgICAgIGZvY3VzRWxlbS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNhbGVydFdyYXBwZXJcbiAgICAgW2lkXT1cImlkXCIgW2NsYXNzXT1cImNsYXNzZXMgPyBjbGFzc2VzIDogbnVsbFwiXG4gICAgIFthdHRyLnJvbGVdPVwicm9sZSA/IHJvbGUgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBhcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgPyBhcmlhRGVzY3JpYmVkQnkgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlbiA/IGFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWQgPyBhcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50ID8gYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlID8gYXJpYUxpdmUgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJhcmlhSGFzUG9wdXAgPyBhcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJhcmlhTW9kYWwgPyBhcmlhTW9kYWwgOiBudWxsXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVcIj5cbiAgICA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYWxsZXI7IGNvbnRleHQ6Y2FsbGVyQ29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFBRSx3QkFBd0IsRUFDbkMsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQUUsZ0JBQWdCLEVBQzVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBUS9ELE1BQU0sT0FBTyxjQUFlLFNBQVEsc0JBQXNCO0lBVXhELElBQWEsTUFBTSxDQUFDLEtBQWM7UUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFZRCxZQUFvQixLQUF3QixFQUFVLGVBQXlDO1FBQzdGLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFYckYsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzdDLG9CQUFlLEdBQVksU0FBUyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQUl0QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBRWIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDaEQ7WUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ25DO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM3RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQTRCLENBQUMsQ0FBQztnQkFDdEcsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUNuQjthQUNGO1NBQ0Y7SUFDSCxDQUFDOytHQXRFVSxjQUFjO21HQUFkLGNBQWMsdVhBR00sZ0JBQWdCLG9EQ3hCakQsa29DQXNCQTs7NEZERGEsY0FBYztrQkFKMUIsU0FBUzsrQkFDRSxZQUFZOytJQUtLLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDeUIsU0FBUztzQkFBMUQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBRXZDLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFVSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZiwgVHlwZSxcbiAgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7IEZvY3VzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZm9jdXMtdXRpbHMnO1xuXG50eXBlIEFsZXJ0Q3JlYXRpb25DYWxsYmFjayA9ICgoZGlhbG9nOiBBbGVydENvbXBvbmVudCwgY2FsbGVyOiBDb21wb25lbnRSZWY8YW55PikgPT4gdm9pZCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktYWxlcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnYWxlcnRXcmFwcGVyJykgYWxlcnRXcmFwcGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcblxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNhbGxlcjogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgZm9jdXNGaXJzdDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZXQgYWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSB2YWx1ZTtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5oYW5kbGVBY3RpdmVTdGF0ZSgpO1xuICAgIH0pO1xuICB9XG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuICBAT3V0cHV0KCkgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX2FjdGl2ZTogYm9vbGVhbjtcbiAgcHVibGljIGNhbGxlckNvbnRleHQ6IGFueTtcbiAgcHVibGljIGNhbGxlclR5cGU6IFR5cGU8YW55PjtcbiAgcHVibGljIG9uQ2FsbGVyQ3JlYXRpb25DYWxsYmFjazogQWxlcnRDcmVhdGlvbkNhbGxiYWNrO1xuXG4gIHByaXZhdGUgbGFzdEFjdGl2ZVN0YXRlOiBib29sZWFuID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIGhhc1ZpZXdpbml0ID0gZmFsc2U7XG4gIHByaXZhdGUgY3JlYXRlZENhbGxlckZyb21UeXBlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuaGFzVmlld2luaXQgPSB0cnVlO1xuICAgIHRoaXMuaGFuZGxlQWN0aXZlU3RhdGUoKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBoYW5kbGVBY3RpdmVTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlICYmIHRoaXMuY2FsbGVyVHlwZSAmJiAhdGhpcy5jcmVhdGVkQ2FsbGVyRnJvbVR5cGUpIHtcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNhbGxlclR5cGUpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgaWYgKHRoaXMub25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMub25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrKHRoaXMsIGNvbXBvbmVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNyZWF0ZWRDYWxsZXJGcm9tVHlwZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZSAhPT0gdGhpcy5sYXN0QWN0aXZlU3RhdGUgJiYgdGhpcy5oYXNWaWV3aW5pdCkge1xuICAgICAgdGhpcy5sYXN0QWN0aXZlU3RhdGUgPSB0aGlzLl9hY3RpdmU7XG5cbiAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5mb2N1c0ZpcnN0KSB7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zdCBmb2N1c0VsZW0gPSBGb2N1c1V0aWxzLmdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCh0aGlzLmFsZXJ0V3JhcHBlci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgaWYgKGZvY3VzRWxlbSkge1xuICAgICAgICAgIGZvY3VzRWxlbS5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICNhbGVydFdyYXBwZXJcbiAgICAgW2lkXT1cImlkXCIgW2NsYXNzXT1cImNsYXNzZXMgPyBjbGFzc2VzIDogbnVsbFwiXG4gICAgIFthdHRyLnJvbGVdPVwicm9sZSA/IHJvbGUgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBhcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgPyBhcmlhRGVzY3JpYmVkQnkgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlbiA/IGFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWQgPyBhcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50ID8gYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlID8gYXJpYUxpdmUgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJhcmlhSGFzUG9wdXAgPyBhcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJhcmlhTW9kYWwgPyBhcmlhTW9kYWwgOiBudWxsXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVcIj5cbiAgICA8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYWxsZXI7IGNvbnRleHQ6Y2FsbGVyQ29udGV4dFwiPjwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktbm90aWZpY2F0aW9uXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG4iXX0=