@fundamental-ngx/platform 0.43.17 → 0.43.19

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 (109) hide show
  1. package/esm2020/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
  2. package/esm2020/form/combobox/combobox/combobox.component.mjs +3 -3
  3. package/esm2020/form/combobox/commons/base-combobox.mjs +22 -6
  4. package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +8 -7
  5. package/esm2020/form/multi-combobox/multi-combobox.module.mjs +3 -2
  6. package/esm2020/form/multi-input/multi-input.component.mjs +9 -8
  7. package/esm2020/form/multi-input/multi-input.module.mjs +3 -2
  8. package/esm2020/form/select/commons/base-select.mjs +16 -7
  9. package/esm2020/form/select/select/select.component.mjs +3 -3
  10. package/esm2020/list/action-list-item/action-list-item.component.mjs +7 -4
  11. package/esm2020/list/base-list-item.mjs +117 -75
  12. package/esm2020/list/display-list-item/display-list-item.component.mjs +5 -3
  13. package/esm2020/list/free-content-list-item/free-content-list-item.component.mjs +6 -3
  14. package/esm2020/list/list-group-footer.component.mjs +12 -3
  15. package/esm2020/list/list-group-header.component.mjs +30 -5
  16. package/esm2020/list/list.component.mjs +85 -61
  17. package/esm2020/list/object-list-item/object-list-item.component.mjs +5 -3
  18. package/esm2020/list/standard-list-item/standard-list-item.component.mjs +5 -3
  19. package/esm2020/message-popover/components/message-view/message-view.component.mjs +2 -2
  20. package/esm2020/search-field/search-field.component.mjs +2 -2
  21. package/esm2020/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +2 -2
  22. package/esm2020/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  23. package/esm2020/shared/domain/data-source.mjs +2 -1
  24. package/esm2020/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +1 -1
  25. package/esm2020/table/components/table-p13-dialog/columns/columns.component.mjs +3 -3
  26. package/esm2020/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +1 -1
  27. package/esm2020/table/components/table-p13-dialog/grouping/grouping.component.mjs +1 -1
  28. package/esm2020/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
  29. package/esm2020/table/components/table-row/table-row.component.mjs +13 -21
  30. package/esm2020/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  31. package/esm2020/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  32. package/esm2020/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  33. package/esm2020/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  34. package/esm2020/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  35. package/esm2020/table/table.component.mjs +27 -5
  36. package/esm2020/table-helpers/helpers.mjs +6 -3
  37. package/esm2020/upload-collection/dialogs/move-to/move-to.component.mjs +1 -1
  38. package/esm2020/upload-collection/upload-collection/upload-collection.component.mjs +1 -1
  39. package/esm2020/value-help-dialog/components/define-tab/define-tab.component.mjs +1 -1
  40. package/esm2020/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  41. package/esm2020/variant-management/variant-management.component.mjs +1 -1
  42. package/fesm2015/fundamental-ngx-platform-approval-flow.mjs +1 -1
  43. package/fesm2015/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  44. package/fesm2015/fundamental-ngx-platform-form.mjs +40 -14
  45. package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
  46. package/fesm2015/fundamental-ngx-platform-list.mjs +260 -150
  47. package/fesm2015/fundamental-ngx-platform-list.mjs.map +1 -1
  48. package/fesm2015/fundamental-ngx-platform-message-popover.mjs +1 -1
  49. package/fesm2015/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  50. package/fesm2015/fundamental-ngx-platform-search-field.mjs +1 -1
  51. package/fesm2015/fundamental-ngx-platform-search-field.mjs.map +1 -1
  52. package/fesm2015/fundamental-ngx-platform-settings-generator.mjs +2 -2
  53. package/fesm2015/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  54. package/fesm2015/fundamental-ngx-platform-shared.mjs +1 -0
  55. package/fesm2015/fundamental-ngx-platform-shared.mjs.map +1 -1
  56. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  57. package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  58. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +5 -2
  59. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  60. package/fesm2015/fundamental-ngx-platform-table.mjs +48 -34
  61. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  62. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +2 -2
  63. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  64. package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  65. package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  66. package/fesm2015/fundamental-ngx-platform-variant-management.mjs +2 -2
  67. package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  68. package/fesm2020/fundamental-ngx-platform-approval-flow.mjs +1 -1
  69. package/fesm2020/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  70. package/fesm2020/fundamental-ngx-platform-form.mjs +41 -14
  71. package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
  72. package/fesm2020/fundamental-ngx-platform-list.mjs +259 -150
  73. package/fesm2020/fundamental-ngx-platform-list.mjs.map +1 -1
  74. package/fesm2020/fundamental-ngx-platform-message-popover.mjs +1 -1
  75. package/fesm2020/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  76. package/fesm2020/fundamental-ngx-platform-search-field.mjs +1 -1
  77. package/fesm2020/fundamental-ngx-platform-search-field.mjs.map +1 -1
  78. package/fesm2020/fundamental-ngx-platform-settings-generator.mjs +2 -2
  79. package/fesm2020/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  80. package/fesm2020/fundamental-ngx-platform-shared.mjs +1 -0
  81. package/fesm2020/fundamental-ngx-platform-shared.mjs.map +1 -1
  82. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  83. package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  84. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +5 -2
  85. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  86. package/fesm2020/fundamental-ngx-platform-table.mjs +48 -34
  87. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  88. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +2 -2
  89. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  90. package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
  91. package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  92. package/fesm2020/fundamental-ngx-platform-variant-management.mjs +2 -2
  93. package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  94. package/form/combobox/commons/base-combobox.d.ts +10 -3
  95. package/form/multi-combobox/multi-combobox.module.d.ts +2 -1
  96. package/form/multi-input/multi-input.module.d.ts +2 -1
  97. package/form/select/commons/base-select.d.ts +14 -7
  98. package/fundamental-ngx-platform-v0.43.19.tgz +0 -0
  99. package/list/base-list-item.d.ts +52 -29
  100. package/list/list-group-footer.component.d.ts +3 -0
  101. package/list/list-group-header.component.d.ts +3 -1
  102. package/list/list.component.d.ts +15 -13
  103. package/package.json +4 -4
  104. package/schematics/ng-add/index.js +1 -1
  105. package/shared/domain/data-source.d.ts +3 -1
  106. package/table/components/table-row/table-row.component.d.ts +2 -2
  107. package/table/table.component.d.ts +8 -2
  108. package/table-helpers/helpers.d.ts +1 -1
  109. package/fundamental-ngx-platform-v0.43.17.tgz +0 -0
@@ -16,9 +16,11 @@ import * as i12 from "@fundamental-ngx/i18n";
16
16
  export class StandardListItemComponent extends BaseListItem {
17
17
  }
18
18
  StandardListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StandardListItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
- StandardListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: StandardListItemComponent, selector: "fdp-standard-list-item", providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }], usesInheritance: true, ngImport: i0, template: "<!-- list item navigation with Arrow-->\n<ng-container *ngIf=\"navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinet]=\"ariaPosinet\"\n [attr.role]=\"role\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"> </ng-container>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </a>\n </li>\n</ng-container>\n\n<!-- list item without navigation and used for simple list display-->\n<ng-container *ngIf=\"!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinet]=\"ariaPosinet\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.role]=\"role\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"noDataText !== null && noDataText !== undefined\">\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinet]=\"ariaPosinet\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n</ng-container>\n\n<ng-template #commonTemplate>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n <span *ngIf=\"title\" fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n <span\n fd-list-secondary\n [attr.aria-label]=\"secondary\"\n *ngIf=\"secondary !== null && secondary !== undefined\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n fd-list-secondary\n class=\"fd-list__item-counter\"\n [attr.aria-label]=\"counter\"\n *ngIf=\"counter !== null && counter !== undefined\"\n [attr.title]=\"counter\"\n >\n {{ counter }}\n </span>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n </div>\n\n <div class=\"fd-list__content\">\n <div *ngIf=\"title\" fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n <ng-container *ngIf=\"description\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"secondary\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #selectionTemplate>\n <div\n fd-form-item\n class=\"fd-list__form-item\"\n *ngIf=\"(selectionMode === 'multi' || selectionMode === 'single') && !rowSelection\"\n >\n <fd-checkbox\n *ngIf=\"selectionMode === 'multi'\"\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n <fd-radio-button\n *ngIf=\"selectionMode === 'single'\"\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n </div>\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n *ngIf=\"listType === 'detail'\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n *ngIf=\"selectionMode === 'delete'\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n</ng-template>\n\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n\n<ng-template #simpleSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary }}</fdp-object-status>\n </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary.text }}</fdp-object-status>\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i6.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListSecondaryDirective, selector: "[fd-list-secondary] ,[fdListSecondary]" }, { kind: "directive", type: i8.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i8.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i9.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: i10.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i11.ObjectStatusComponent, selector: "fdp-object-status", inputs: ["status", "glyph", "indicationColor", "clickable", "inverted", "large", "label", "ariaLabel", "title"], outputs: ["objectStatusClick"] }, { kind: "pipe", type: i12.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
+ StandardListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: StandardListItemComponent, selector: "fdp-standard-list-item", host: { attributes: { "role": "none" } }, providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }], usesInheritance: true, ngImport: i0, template: "<!-- list item navigation with Arrow-->\n<ng-container *ngIf=\"navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"> </ng-container>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </a>\n </li>\n</ng-container>\n\n<!-- list item without navigation and used for simple list display-->\n<ng-container *ngIf=\"!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"noDataText !== null && noDataText !== undefined\">\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n</ng-container>\n\n<ng-template #commonTemplate>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n <span *ngIf=\"title\" fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n <span\n fd-list-secondary\n [attr.aria-label]=\"secondary\"\n *ngIf=\"secondary !== null && secondary !== undefined\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n fd-list-secondary\n class=\"fd-list__item-counter\"\n [attr.aria-label]=\"counter\"\n *ngIf=\"counter !== null && counter !== undefined\"\n [attr.title]=\"counter\"\n >\n {{ counter }}\n </span>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n </div>\n\n <div class=\"fd-list__content\">\n <div *ngIf=\"title\" fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n <ng-container *ngIf=\"description\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"secondary\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #selectionTemplate>\n <div\n fd-form-item\n class=\"fd-list__form-item\"\n *ngIf=\"(selectionMode === 'multi' || selectionMode === 'single') && !rowSelection\"\n >\n <fd-checkbox\n *ngIf=\"selectionMode === 'multi'\"\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n <fd-radio-button\n *ngIf=\"selectionMode === 'single'\"\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n </div>\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n *ngIf=\"listType === 'detail'\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n *ngIf=\"selectionMode === 'delete'\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n</ng-template>\n\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n\n<ng-template #simpleSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary }}</fdp-object-status>\n </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary.text }}</fdp-object-status>\n </span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CheckboxComponent, selector: "fd-checkbox", inputs: ["ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "values", "standalone"], outputs: ["focusChange"] }, { kind: "component", type: i5.FormItemComponent, selector: "[fd-form-item]", inputs: ["isInline", "horizontal"] }, { kind: "component", type: i6.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: i7.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListSecondaryDirective, selector: "[fd-list-secondary] ,[fdListSecondary]" }, { kind: "directive", type: i8.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i8.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: i9.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "backgroundImage", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "directive", type: i10.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i11.ObjectStatusComponent, selector: "fdp-object-status", inputs: ["status", "glyph", "indicationColor", "clickable", "inverted", "large", "label", "ariaLabel", "title"], outputs: ["objectStatusClick"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: StandardListItemComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: 'fdp-standard-list-item', providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- list item navigation with Arrow-->\n<ng-container *ngIf=\"navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinet]=\"ariaPosinet\"\n [attr.role]=\"role\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"> </ng-container>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </a>\n </li>\n</ng-container>\n\n<!-- list item without navigation and used for simple list display-->\n<ng-container *ngIf=\"!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinet]=\"ariaPosinet\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.role]=\"role\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"noDataText !== null && noDataText !== undefined\">\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinet]=\"ariaPosinet\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n</ng-container>\n\n<ng-template #commonTemplate>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n <span *ngIf=\"title\" fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n <span\n fd-list-secondary\n [attr.aria-label]=\"secondary\"\n *ngIf=\"secondary !== null && secondary !== undefined\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n fd-list-secondary\n class=\"fd-list__item-counter\"\n [attr.aria-label]=\"counter\"\n *ngIf=\"counter !== null && counter !== undefined\"\n [attr.title]=\"counter\"\n >\n {{ counter }}\n </span>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n </div>\n\n <div class=\"fd-list__content\">\n <div *ngIf=\"title\" fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n <ng-container *ngIf=\"description\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"secondary\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #selectionTemplate>\n <div\n fd-form-item\n class=\"fd-list__form-item\"\n *ngIf=\"(selectionMode === 'multi' || selectionMode === 'single') && !rowSelection\"\n >\n <fd-checkbox\n *ngIf=\"selectionMode === 'multi'\"\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n <fd-radio-button\n *ngIf=\"selectionMode === 'single'\"\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n </div>\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n *ngIf=\"listType === 'detail'\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n *ngIf=\"selectionMode === 'delete'\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n</ng-template>\n\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n\n<ng-template #simpleSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary }}</fdp-object-status>\n </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary.text }}</fdp-object-status>\n </span>\n</ng-template>\n" }]
22
+ args: [{ selector: 'fdp-standard-list-item', providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
23
+ role: 'none'
24
+ }, template: "<!-- list item navigation with Arrow-->\n<ng-container *ngIf=\"navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n [tabindex]=\"-1\"\n (keydown)=\"_onKeyDown($event)\"\n (keyup)=\"_onKeyUp($event)\"\n class=\"fd-list__item--link\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"> </ng-container>\n <a\n #linkElement\n fd-list-link\n [routerLink]=\"link\"\n [navigationIndicator]=\"navigationIndicator\"\n [navigated]=\"navigated\"\n >\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </a>\n </li>\n</ng-container>\n\n<!-- list item without navigation and used for simple list display-->\n<ng-container *ngIf=\"!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)\">\n <li\n #listItem\n [unread]=\"unRead\"\n fd-list-item\n [attr.id]=\"id\"\n [selected]=\"_selected\"\n (keydown)=\"_onKeyDown($event)\"\n [tabindex]=\"-1\"\n (keyup)=\"_onKeyUp($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n [ariaRole]=\"_listItemRole\"\n [attr.aria-selected]=\"_selectedAttr\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-container>\n </li>\n</ng-container>\n\n<ng-container *ngIf=\"noDataText !== null && noDataText !== undefined\">\n <li\n #listItem\n fd-list-item\n [attr.id]=\"id\"\n [tabindex]=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-level]=\"ariaLevel\"\n [attr.aria-posinset]=\"ariaPosinset\"\n [attr.aria-setsize]=\"ariaSetSize | async\"\n >\n <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n </li>\n</ng-container>\n\n<ng-template #commonTemplate>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"'fd-list__icon ' + avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n <span *ngIf=\"title\" fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </span>\n <span\n fd-list-secondary\n [attr.aria-label]=\"secondary\"\n *ngIf=\"secondary !== null && secondary !== undefined\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n fd-list-secondary\n class=\"fd-list__item-counter\"\n [attr.aria-label]=\"counter\"\n *ngIf=\"counter !== null && counter !== undefined\"\n [attr.title]=\"counter\"\n >\n {{ counter }}\n </span>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #byLineTemplate>\n <div fdListThumbnail>\n <fd-icon\n class=\"fd-list__icon\"\n *ngIf=\"icon.glyph\"\n [glyph]=\"icon.glyph\"\n [font]=\"icon.font\"\n [ariaLabel]=\"icon.ariaLabel\"\n [attr.alt]=\"icon.ariaLabel\"\n role=\"img\"\n >\n </fd-icon>\n <fd-avatar\n [size]=\"avatar.size\"\n [glyph]=\"avatar.glyph\"\n [zoomGlyph]=\"avatar.zoomGlyph\"\n *ngIf=\"avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph\"\n [label]=\"avatar.label\"\n [circle]=\"avatar.circle\"\n [placeholder]=\"avatar.placeholder\"\n [tile]=\"avatar.tile\"\n [colorAccent]=\"avatar.colorAccent\"\n [image]=\"avatar.image\"\n [transparent]=\"avatar.transparent\"\n [random]=\"avatar.random\"\n [class]=\"avatar.class\"\n [ariaLabel]=\"avatar.ariaLabel\"\n [ariaLabelledby]=\"avatar.ariaLabelledby\"\n [contain]=\"avatar.contain\"\n [border]=\"avatar.border\"\n [alterIcon]=\"avatar.alterIcon\"\n [backupImage]=\"avatar.backupImage\"\n [clickable]=\"avatar.clickable\"\n [attr.alt]=\"avatar.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n </div>\n\n <div class=\"fd-list__content\">\n <div *ngIf=\"title\" fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n {{ title }}\n </div>\n <div class=\"fd-list__byline fd-list__byline--2-col\">\n <ng-container *ngIf=\"description\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n [ngTemplateOutletContext]=\"{ $implicit: description }\"\n ></ng-container>\n </ng-container>\n <ng-container *ngIf=\"secondary\">\n <ng-container\n [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n ></ng-container>\n </ng-container>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"actionsTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #selectionTemplate>\n <div\n fd-form-item\n class=\"fd-list__form-item\"\n *ngIf=\"(selectionMode === 'multi' || selectionMode === 'single') && !rowSelection\"\n >\n <fd-checkbox\n *ngIf=\"selectionMode === 'multi'\"\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"_selected\"\n [ariaLabel]=\"ariaLabel\"\n tabIndexValue=\"-1\"\n (ngModelChange)=\"_onCheckboxModelChange()\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-checkbox>\n <fd-radio-button\n *ngIf=\"selectionMode === 'single'\"\n [value]=\"value\"\n [name]=\"name\"\n role=\"radio\"\n [(ngModel)]=\"selectionValue\"\n [attr.aria-selected]=\"_selected\"\n >\n </fd-radio-button>\n </div>\n</ng-template>\n<ng-template #actionsTemplate>\n <ng-content select=\"#secondaryAction\"></ng-content>\n <button\n fd-button\n #edit\n [attr.id]=\"'detail-' + id\"\n *ngIf=\"listType === 'detail'\"\n role=\"button\"\n fdType=\"transparent\"\n glyph=\"edit\"\n (click)=\"_onActionButtonClick('edit')\"\n [attr.aria-label]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.detailsActionAriaLabel' | fdTranslate\"\n (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n ></button>\n <button\n fd-button\n #delete\n [attr.id]=\"'delete-' + id\"\n *ngIf=\"selectionMode === 'delete'\"\n role=\"button\"\n [attr.aria-label]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n [attr.title]=\"'platformStandardListItem.deleteActionAriaLabel' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n (click)=\"_onActionButtonClick('delete')\"\n (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n ></button>\n</ng-template>\n\n<ng-template #simpleDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description\"\n [attr.title]=\"description\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description }}\n </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n <span\n class=\"fd-list__byline-left\"\n [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n [attr.title]=\"description.title ?? description.text\"\n [attr.nowrap]=\"titleWrap\"\n >\n {{ description.text }}\n </span>\n</ng-template>\n\n<ng-template #simpleSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary\"\n [attr.title]=\"secondary\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary }}</fdp-object-status>\n </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n <span\n *ngIf=\"!inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n class=\"fd-list__byline-right\"\n [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n {{ secondary.text }}\n </span>\n <span\n class=\"fd-list__byline-right\"\n *ngIf=\"inverted\"\n [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n [attr.title]=\"secondary.title ?? secondary.text\"\n [attr.nowrap]=\"secondaryWrap\"\n >\n <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\"> {{ secondary.text }}</fdp-object-status>\n </span>\n</ng-template>\n" }]
23
25
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9saXN0L3N0YW5kYXJkLWxpc3QtaXRlbS9zdGFuZGFyZC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2xpc3Qvc3RhbmRhcmQtbGlzdC1pdGVtL3N0YW5kYXJkLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU2pELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxZQUFZOztzSEFBOUMseUJBQXlCOzBHQUF6Qix5QkFBeUIsaURBSnZCLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLGlEQ1BwRyw4K1ZBb1RBOzJGRHpTYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0ksd0JBQXdCLGFBRXZCLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxtQkFDL0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VMaXN0SXRlbSB9IGZyb20gJy4uL2Jhc2UtbGlzdC1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc3RhbmRhcmQtbGlzdC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEJhc2VMaXN0SXRlbSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCkgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdGFuZGFyZExpc3RJdGVtQ29tcG9uZW50IGV4dGVuZHMgQmFzZUxpc3RJdGVtIHt9XG4iLCI8IS0tICBsaXN0IGl0ZW0gbmF2aWdhdGlvbiB3aXRoIEFycm93LS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibmF2aWdhdGlvbkluZGljYXRvciB8fCAobmF2aWdhdGVkICYmICEobm9EYXRhVGV4dCAhPT0gbnVsbCAmJiBub0RhdGFUZXh0ICE9PSB1bmRlZmluZWQpKVwiPlxuICAgIDxsaVxuICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgW3VucmVhZF09XCJ1blJlYWRcIlxuICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgKGtleWRvd24pPVwiX29uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgKGtleXVwKT1cIl9vbktleVVwKCRldmVudClcIlxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2l0ZW0tLWxpbmtcIlxuICAgICAgICBbY2xhc3MuZmQtbGlzdF9faXRlbS0taW5hY3RpdmVdPVwibGlzdFR5cGUgPT09ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJhcmlhTGV2ZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLXBvc2luZXRdPVwiYXJpYVBvc2luZXRcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGlvblRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8YVxuICAgICAgICAgICAgI2xpbmtFbGVtZW50XG4gICAgICAgICAgICBmZC1saXN0LWxpbmtcbiAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImxpbmtcIlxuICAgICAgICAgICAgW25hdmlnYXRpb25JbmRpY2F0b3JdPVwibmF2aWdhdGlvbkluZGljYXRvclwiXG4gICAgICAgICAgICBbbmF2aWdhdGVkXT1cIm5hdmlnYXRlZFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfaGFzQnlMaW5lID8gYnlMaW5lVGVtcGxhdGUgOiBjb21tb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2E+XG4gICAgPC9saT5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tICBsaXN0IGl0ZW0gd2l0aG91dCBuYXZpZ2F0aW9uIGFuZCB1c2VkIGZvciBzaW1wbGUgbGlzdCBkaXNwbGF5LS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiIW5hdmlnYXRpb25JbmRpY2F0b3IgJiYgIW5hdmlnYXRlZCAmJiAhKG5vRGF0YVRleHQgIT09IG51bGwgJiYgbm9EYXRhVGV4dCAhPT0gdW5kZWZpbmVkKVwiPlxuICAgIDxsaVxuICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgW3VucmVhZF09XCJ1blJlYWRcIlxuICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgKGtleWRvd24pPVwiX29uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgKGtleXVwKT1cIl9vbktleVVwKCRldmVudClcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJhcmlhTGV2ZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLXBvc2luZXRdPVwiYXJpYVBvc2luZXRcIlxuICAgICAgICBbY2xhc3MuZmQtbGlzdF9faXRlbS0taW5hY3RpdmVdPVwibGlzdFR5cGUgPT09ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfaGFzQnlMaW5lID8gYnlMaW5lVGVtcGxhdGUgOiBjb21tb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbGk+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVRleHQgIT09IG51bGwgJiYgbm9EYXRhVGV4dCAhPT0gdW5kZWZpbmVkXCI+XG4gICAgPGxpXG4gICAgICAgICNsaXN0SXRlbVxuICAgICAgICBmZC1saXN0LWl0ZW1cbiAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiMFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJhcmlhTGV2ZWxcIlxuICAgICAgICBbYXR0ci5hcmlhLXBvc2luZXRdPVwiYXJpYVBvc2luZXRcIlxuICAgID5cbiAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZSBbYXR0ci5hcmlhLWxhYmVsXT1cIm5vRGF0YVRleHRcIiBbYXR0ci50aXRsZV09XCJub0RhdGFUZXh0XCI+e3sgbm9EYXRhVGV4dCB9fTwvc3Bhbj5cbiAgICA8L2xpPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29tbW9uVGVtcGxhdGU+XG4gICAgPGZkLWljb25cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pY29uXCJcbiAgICAgICAgKm5nSWY9XCJpY29uLmdseXBoXCJcbiAgICAgICAgW2dseXBoXT1cImljb24uZ2x5cGhcIlxuICAgICAgICBbZm9udF09XCJpY29uLmZvbnRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cImljb24uYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYWx0XT1cImljb24uYXJpYUxhYmVsXCJcbiAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgPlxuICAgIDwvZmQtaWNvbj5cbiAgICA8ZmQtYXZhdGFyXG4gICAgICAgIFtzaXplXT1cImF2YXRhci5zaXplXCJcbiAgICAgICAgW2dseXBoXT1cImF2YXRhci5nbHlwaFwiXG4gICAgICAgIFt6b29tR2x5cGhdPVwiYXZhdGFyLnpvb21HbHlwaFwiXG4gICAgICAgICpuZ0lmPVwiYXZhdGFyLmxhYmVsIHx8IGF2YXRhci5pbWFnZSB8fCBhdmF0YXIuZ2x5cGggfHwgYXZhdGFyLnpvb21HbHlwaFwiXG4gICAgICAgIFtsYWJlbF09XCJhdmF0YXIubGFiZWxcIlxuICAgICAgICBbY2lyY2xlXT1cImF2YXRhci5jaXJjbGVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiYXZhdGFyLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3RpbGVdPVwiYXZhdGFyLnRpbGVcIlxuICAgICAgICBbY29sb3JBY2NlbnRdPVwiYXZhdGFyLmNvbG9yQWNjZW50XCJcbiAgICAgICAgW2ltYWdlXT1cImF2YXRhci5pbWFnZVwiXG4gICAgICAgIFt0cmFuc3BhcmVudF09XCJhdmF0YXIudHJhbnNwYXJlbnRcIlxuICAgICAgICBbcmFuZG9tXT1cImF2YXRhci5yYW5kb21cIlxuICAgICAgICBbY2xhc3NdPVwiJ2ZkLWxpc3RfX2ljb24gJyArIGF2YXRhci5jbGFzc1wiXG4gICAgICAgIFthcmlhTGFiZWxdPVwiYXZhdGFyLmFyaWFMYWJlbFwiXG4gICAgICAgIFthcmlhTGFiZWxsZWRieV09XCJhdmF0YXIuYXJpYUxhYmVsbGVkYnlcIlxuICAgICAgICBbY29udGFpbl09XCJhdmF0YXIuY29udGFpblwiXG4gICAgICAgIFtib3JkZXJdPVwiYXZhdGFyLmJvcmRlclwiXG4gICAgICAgIFthbHRlckljb25dPVwiYXZhdGFyLmFsdGVySWNvblwiXG4gICAgICAgIFtiYWNrdXBJbWFnZV09XCJhdmF0YXIuYmFja3VwSW1hZ2VcIlxuICAgICAgICBbY2xpY2thYmxlXT1cImF2YXRhci5jbGlja2FibGVcIlxuICAgICAgICBbYXR0ci5hbHRdPVwiYXZhdGFyLmFyaWFMYWJlbFwiXG4gICAgICAgIHJvbGU9XCJpbWdcIlxuICAgID48L2ZkLWF2YXRhcj5cbiAgICA8c3BhbiAqbmdJZj1cInRpdGxlXCIgZmQtbGlzdC10aXRsZSBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiIFthdHRyLm5vd3JhcF09XCJ0aXRsZVdyYXBcIiBbYXR0ci50aXRsZV09XCJ0aXRsZVwiPlxuICAgICAgICB7eyB0aXRsZSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgICBmZC1saXN0LXNlY29uZGFyeVxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeVwiXG4gICAgICAgICpuZ0lmPVwic2Vjb25kYXJ5ICE9PSBudWxsICYmIHNlY29uZGFyeSAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgID5cbiAgICAgICAge3sgc2Vjb25kYXJ5IH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAgIGZkLWxpc3Qtc2Vjb25kYXJ5XG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9faXRlbS1jb3VudGVyXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb3VudGVyXCJcbiAgICAgICAgKm5nSWY9XCJjb3VudGVyICE9PSBudWxsICYmIGNvdW50ZXIgIT09IHVuZGVmaW5lZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImNvdW50ZXJcIlxuICAgID5cbiAgICAgICAge3sgY291bnRlciB9fVxuICAgIDwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J5TGluZVRlbXBsYXRlPlxuICAgIDxkaXYgZmRMaXN0VGh1bWJuYWlsPlxuICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pY29uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgICAgICBbZm9udF09XCJpY29uLmZvbnRcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpY29uLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbYXR0ci5hbHRdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1pY29uPlxuICAgICAgICA8ZmQtYXZhdGFyXG4gICAgICAgICAgICBbc2l6ZV09XCJhdmF0YXIuc2l6ZVwiXG4gICAgICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyLmdseXBoXCJcbiAgICAgICAgICAgIFt6b29tR2x5cGhdPVwiYXZhdGFyLnpvb21HbHlwaFwiXG4gICAgICAgICAgICAqbmdJZj1cImF2YXRhci5sYWJlbCB8fCBhdmF0YXIuaW1hZ2UgfHwgYXZhdGFyLmdseXBoIHx8IGF2YXRhci56b29tR2x5cGhcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImF2YXRhci5sYWJlbFwiXG4gICAgICAgICAgICBbY2lyY2xlXT1cImF2YXRhci5jaXJjbGVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImF2YXRhci5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbdGlsZV09XCJhdmF0YXIudGlsZVwiXG4gICAgICAgICAgICBbY29sb3JBY2NlbnRdPVwiYXZhdGFyLmNvbG9yQWNjZW50XCJcbiAgICAgICAgICAgIFtpbWFnZV09XCJhdmF0YXIuaW1hZ2VcIlxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cImF2YXRhci50cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBbcmFuZG9tXT1cImF2YXRhci5yYW5kb21cIlxuICAgICAgICAgICAgW2NsYXNzXT1cImF2YXRhci5jbGFzc1wiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cImF2YXRhci5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbGxlZGJ5XT1cImF2YXRhci5hcmlhTGFiZWxsZWRieVwiXG4gICAgICAgICAgICBbY29udGFpbl09XCJhdmF0YXIuY29udGFpblwiXG4gICAgICAgICAgICBbYm9yZGVyXT1cImF2YXRhci5ib3JkZXJcIlxuICAgICAgICAgICAgW2FsdGVySWNvbl09XCJhdmF0YXIuYWx0ZXJJY29uXCJcbiAgICAgICAgICAgIFtiYWNrdXBJbWFnZV09XCJhdmF0YXIuYmFja3VwSW1hZ2VcIlxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJhdmF0YXIuY2xpY2thYmxlXCJcbiAgICAgICAgICAgIFthdHRyLmFsdF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICA+PC9mZC1hdmF0YXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtbGlzdF9fY29udGVudFwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidGl0bGVcIiBmZC1saXN0LXRpdGxlIFthdHRyLmFyaWEtbGFiZWxdPVwidGl0bGVcIiBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCIgW2F0dHIudGl0bGVdPVwidGl0bGVcIj5cbiAgICAgICAgICAgIHt7IHRpdGxlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lIGZkLWxpc3RfX2J5bGluZS0tMi1jb2xcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiX2lzQWR2YW5jZWRUZXh0KGRlc2NyaXB0aW9uKSA/IGFkdmFuY2VkRGVzY3JpcHRpb24gOiBzaW1wbGVEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZGVzY3JpcHRpb24gfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfaXNBZHZhbmNlZFRleHQoc2Vjb25kYXJ5KSA/IGFkdmFuY2VkU2Vjb25kYXJ5IDogc2ltcGxlU2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzZWNvbmRhcnkgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0aW9uVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgICBmZC1mb3JtLWl0ZW1cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19mb3JtLWl0ZW1cIlxuICAgICAgICAqbmdJZj1cIihzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGknIHx8IHNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnKSAmJiAhcm93U2VsZWN0aW9uXCJcbiAgICA+XG4gICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnbXVsdGknXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJfc2VsZWN0ZWRcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICAgICAgdGFiSW5kZXhWYWx1ZT1cIi0xXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIl9vbkNoZWNrYm94TW9kZWxDaGFuZ2UoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1jaGVja2JveD5cbiAgICAgICAgPGZkLXJhZGlvLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlID09PSAnc2luZ2xlJ1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICByb2xlPVwicmFkaW9cIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3Rpb25WYWx1ZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1yYWRpby1idXR0b24+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNhY3Rpb25zVGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiI3NlY29uZGFyeUFjdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAjZWRpdFxuICAgICAgICBbYXR0ci5pZF09XCInZGV0YWlsLScgKyBpZFwiXG4gICAgICAgICpuZ0lmPVwibGlzdFR5cGUgPT09ICdkZXRhaWwnXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZ2x5cGg9XCJlZGl0XCJcbiAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkJ1dHRvbkNsaWNrKCdlZGl0JylcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybVN0YW5kYXJkTGlzdEl0ZW0uZGV0YWlsc0FjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIidwbGF0Zm9ybVN0YW5kYXJkTGlzdEl0ZW0uZGV0YWlsc0FjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleUJ1dHRvbkNsaWNrKCRldmVudCwgJ2VkaXQnKVwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICNkZWxldGVcbiAgICAgICAgW2F0dHIuaWRdPVwiJ2RlbGV0ZS0nICsgaWRcIlxuICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGUgPT09ICdkZWxldGUnXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbS5kZWxldGVBY3Rpb25BcmlhTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRlbGV0ZUFjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgKGNsaWNrKT1cIl9vbkFjdGlvbkJ1dHRvbkNsaWNrKCdkZWxldGUnKVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleUJ1dHRvbkNsaWNrKCRldmVudCwgJ2RlbGV0ZScpXCJcbiAgICA+PC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZURlc2NyaXB0aW9uIGxldC1kZXNjcmlwdGlvbj5cbiAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2J5bGluZS1sZWZ0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInRpdGxlV3JhcFwiXG4gICAgPlxuICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2FkdmFuY2VkRGVzY3JpcHRpb24gbGV0LWRlc2NyaXB0aW9uPlxuICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLWxlZnRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uLmFyaWFMYWJlbCA/PyBkZXNjcmlwdGlvbi50ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZGVzY3JpcHRpb24udGl0bGUgPz8gZGVzY3JpcHRpb24udGV4dFwiXG4gICAgICAgIFthdHRyLm5vd3JhcF09XCJ0aXRsZVdyYXBcIlxuICAgID5cbiAgICAgICAge3sgZGVzY3JpcHRpb24udGV4dCB9fVxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlU2Vjb25kYXJ5IGxldC1zZWNvbmRhcnk+XG4gICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCIhaW52ZXJ0ZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeVwiXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLXJpZ2h0XCJcbiAgICAgICAgW2NsYXNzXT1cInN0YXR1c1R5cGUgPyAnZmQtbGlzdF9fYnlsaW5lLXJpZ2h0LS0nICsgc3RhdHVzVHlwZSA6ICcnXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgID5cbiAgICAgICAge3sgc2Vjb25kYXJ5IH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLXJpZ2h0XCJcbiAgICAgICAgKm5nSWY9XCJpbnZlcnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgID5cbiAgICAgICAgPGZkcC1vYmplY3Qtc3RhdHVzIFtzdGF0dXNdPVwic3RhdHVzVHlwZVwiIFtpbnZlcnRlZF09XCJpbnZlcnRlZFwiPiB7eyBzZWNvbmRhcnkgfX08L2ZkcC1vYmplY3Qtc3RhdHVzPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2FkdmFuY2VkU2Vjb25kYXJ5IGxldC1zZWNvbmRhcnk+XG4gICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCIhaW52ZXJ0ZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNlY29uZGFyeS5hcmlhTGFiZWwgPz8gc2Vjb25kYXJ5LnRleHRcIlxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2J5bGluZS1yaWdodFwiXG4gICAgICAgIFtjbGFzc109XCJzdGF0dXNUeXBlID8gJ2ZkLWxpc3RfX2J5bGluZS1yaWdodC0tJyArIHN0YXR1c1R5cGUgOiAnJ1wiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cInNlY29uZGFyeS50aXRsZSA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgIFthdHRyLm5vd3JhcF09XCJzZWNvbmRhcnlXcmFwXCJcbiAgICA+XG4gICAgICAgIHt7IHNlY29uZGFyeS50ZXh0IH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLXJpZ2h0XCJcbiAgICAgICAgKm5nSWY9XCJpbnZlcnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5LmFyaWFMYWJlbCA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cInNlY29uZGFyeS50aXRsZSA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgIFthdHRyLm5vd3JhcF09XCJzZWNvbmRhcnlXcmFwXCJcbiAgICA+XG4gICAgICAgIDxmZHAtb2JqZWN0LXN0YXR1cyBbc3RhdHVzXT1cInN0YXR1c1R5cGVcIiBbaW52ZXJ0ZWRdPVwiaW52ZXJ0ZWRcIj4ge3sgc2Vjb25kYXJ5LnRleHQgfX08L2ZkcC1vYmplY3Qtc3RhdHVzPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9saXN0L3N0YW5kYXJkLWxpc3QtaXRlbS9zdGFuZGFyZC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL2xpc3Qvc3RhbmRhcmQtbGlzdC1pdGVtL3N0YW5kYXJkLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBWWpELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxZQUFZOztzSEFBOUMseUJBQXlCOzBHQUF6Qix5QkFBeUIsMkZBUHZCLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDLGlEQ1BwRyxtd1dBeVRBOzJGRDNTYSx5QkFBeUI7a0JBVnJDLFNBQVM7K0JBQ0ksd0JBQXdCLGFBRXZCLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDLEVBQUUsQ0FBQyxtQkFDL0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDRixJQUFJLEVBQUUsTUFBTTtxQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VMaXN0SXRlbSB9IGZyb20gJy4uL2Jhc2UtbGlzdC1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc3RhbmRhcmQtbGlzdC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3RhbmRhcmQtbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEJhc2VMaXN0SXRlbSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCkgfV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdub25lJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRMaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIEJhc2VMaXN0SXRlbSB7fVxuIiwiPCEtLSAgbGlzdCBpdGVtIG5hdmlnYXRpb24gd2l0aCBBcnJvdy0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5hdmlnYXRpb25JbmRpY2F0b3IgfHwgKG5hdmlnYXRlZCAmJiAhKG5vRGF0YVRleHQgIT09IG51bGwgJiYgbm9EYXRhVGV4dCAhPT0gdW5kZWZpbmVkKSlcIj5cbiAgICA8bGlcbiAgICAgICAgI2xpc3RJdGVtXG4gICAgICAgIFt1bnJlYWRdPVwidW5SZWFkXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJfb25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pdGVtLS1saW5rXCJcbiAgICAgICAgW2NsYXNzLmZkLWxpc3RfX2l0ZW0tLWluYWN0aXZlXT1cImxpc3RUeXBlID09PSAnaW5hY3RpdmUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbYXJpYVJvbGVdPVwiX2xpc3RJdGVtUm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQXR0clwiXG4gICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJhcmlhU2V0U2l6ZSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3Rpb25UZW1wbGF0ZVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgICNsaW5rRWxlbWVudFxuICAgICAgICAgICAgZmQtbGlzdC1saW5rXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJsaW5rXCJcbiAgICAgICAgICAgIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIm5hdmlnYXRpb25JbmRpY2F0b3JcIlxuICAgICAgICAgICAgW25hdmlnYXRlZF09XCJuYXZpZ2F0ZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2hhc0J5TGluZSA/IGJ5TGluZVRlbXBsYXRlIDogY29tbW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9hPlxuICAgIDwvbGk+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSAgbGlzdCBpdGVtIHdpdGhvdXQgbmF2aWdhdGlvbiBhbmQgdXNlZCBmb3Igc2ltcGxlIGxpc3QgZGlzcGxheS0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFuYXZpZ2F0aW9uSW5kaWNhdG9yICYmICFuYXZpZ2F0ZWQgJiYgIShub0RhdGFUZXh0ICE9PSBudWxsICYmIG5vRGF0YVRleHQgIT09IHVuZGVmaW5lZClcIj5cbiAgICA8bGlcbiAgICAgICAgI2xpc3RJdGVtXG4gICAgICAgIFt1bnJlYWRdPVwidW5SZWFkXCJcbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgIChrZXlkb3duKT1cIl9vbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgIChrZXl1cCk9XCJfb25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbY2xhc3MuZmQtbGlzdF9faXRlbS0taW5hY3RpdmVdPVwibGlzdFR5cGUgPT09ICdpbmFjdGl2ZSdcIlxuICAgICAgICBbYXJpYVJvbGVdPVwiX2xpc3RJdGVtUm9sZVwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkQXR0clwiXG4gICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJhcmlhU2V0U2l6ZSB8IGFzeW5jXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3Rpb25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX2hhc0J5TGluZSA/IGJ5TGluZVRlbXBsYXRlIDogY29tbW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2xpPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGFUZXh0ICE9PSBudWxsICYmIG5vRGF0YVRleHQgIT09IHVuZGVmaW5lZFwiPlxuICAgIDxsaVxuICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgZmQtbGlzdC1pdGVtXG4gICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIjBcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwiYXJpYUxldmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJhcmlhUG9zaW5zZXRcIlxuICAgICAgICBbYXR0ci5hcmlhLXNldHNpemVdPVwiYXJpYVNldFNpemUgfCBhc3luY1wiXG4gICAgPlxuICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlIFthdHRyLmFyaWEtbGFiZWxdPVwibm9EYXRhVGV4dFwiIFthdHRyLnRpdGxlXT1cIm5vRGF0YVRleHRcIj57eyBub0RhdGFUZXh0IH19PC9zcGFuPlxuICAgIDwvbGk+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjb21tb25UZW1wbGF0ZT5cbiAgICA8ZmQtaWNvblxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2ljb25cIlxuICAgICAgICAqbmdJZj1cImljb24uZ2x5cGhcIlxuICAgICAgICBbZ2x5cGhdPVwiaWNvbi5nbHlwaFwiXG4gICAgICAgIFtmb250XT1cImljb24uZm9udFwiXG4gICAgICAgIFthcmlhTGFiZWxdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci5hbHRdPVwiaWNvbi5hcmlhTGFiZWxcIlxuICAgICAgICByb2xlPVwiaW1nXCJcbiAgICA+XG4gICAgPC9mZC1pY29uPlxuICAgIDxmZC1hdmF0YXJcbiAgICAgICAgW3NpemVdPVwiYXZhdGFyLnNpemVcIlxuICAgICAgICBbZ2x5cGhdPVwiYXZhdGFyLmdseXBoXCJcbiAgICAgICAgW3pvb21HbHlwaF09XCJhdmF0YXIuem9vbUdseXBoXCJcbiAgICAgICAgKm5nSWY9XCJhdmF0YXIubGFiZWwgfHwgYXZhdGFyLmltYWdlIHx8IGF2YXRhci5nbHlwaCB8fCBhdmF0YXIuem9vbUdseXBoXCJcbiAgICAgICAgW2xhYmVsXT1cImF2YXRhci5sYWJlbFwiXG4gICAgICAgIFtjaXJjbGVdPVwiYXZhdGFyLmNpcmNsZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJhdmF0YXIucGxhY2Vob2xkZXJcIlxuICAgICAgICBbdGlsZV09XCJhdmF0YXIudGlsZVwiXG4gICAgICAgIFtjb2xvckFjY2VudF09XCJhdmF0YXIuY29sb3JBY2NlbnRcIlxuICAgICAgICBbaW1hZ2VdPVwiYXZhdGFyLmltYWdlXCJcbiAgICAgICAgW3RyYW5zcGFyZW50XT1cImF2YXRhci50cmFuc3BhcmVudFwiXG4gICAgICAgIFtyYW5kb21dPVwiYXZhdGFyLnJhbmRvbVwiXG4gICAgICAgIFtjbGFzc109XCInZmQtbGlzdF9faWNvbiAnICsgYXZhdGFyLmNsYXNzXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgW2FyaWFMYWJlbGxlZGJ5XT1cImF2YXRhci5hcmlhTGFiZWxsZWRieVwiXG4gICAgICAgIFtjb250YWluXT1cImF2YXRhci5jb250YWluXCJcbiAgICAgICAgW2JvcmRlcl09XCJhdmF0YXIuYm9yZGVyXCJcbiAgICAgICAgW2FsdGVySWNvbl09XCJhdmF0YXIuYWx0ZXJJY29uXCJcbiAgICAgICAgW2JhY2t1cEltYWdlXT1cImF2YXRhci5iYWNrdXBJbWFnZVwiXG4gICAgICAgIFtjbGlja2FibGVdPVwiYXZhdGFyLmNsaWNrYWJsZVwiXG4gICAgICAgIFthdHRyLmFsdF09XCJhdmF0YXIuYXJpYUxhYmVsXCJcbiAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgPjwvZmQtYXZhdGFyPlxuICAgIDxzcGFuICpuZ0lmPVwidGl0bGVcIiBmZC1saXN0LXRpdGxlIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCIgW2F0dHIubm93cmFwXT1cInRpdGxlV3JhcFwiIFthdHRyLnRpdGxlXT1cInRpdGxlXCI+XG4gICAgICAgIHt7IHRpdGxlIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICAgIGZkLWxpc3Qtc2Vjb25kYXJ5XG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgKm5nSWY9XCJzZWNvbmRhcnkgIT09IG51bGwgJiYgc2Vjb25kYXJ5ICE9PSB1bmRlZmluZWRcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgPlxuICAgICAgICB7eyBzZWNvbmRhcnkgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICAgZmQtbGlzdC1zZWNvbmRhcnlcbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pdGVtLWNvdW50ZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvdW50ZXJcIlxuICAgICAgICAqbmdJZj1cImNvdW50ZXIgIT09IG51bGwgJiYgY291bnRlciAhPT0gdW5kZWZpbmVkXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiY291bnRlclwiXG4gICAgPlxuICAgICAgICB7eyBjb3VudGVyIH19XG4gICAgPC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnlMaW5lVGVtcGxhdGU+XG4gICAgPGRpdiBmZExpc3RUaHVtYm5haWw+XG4gICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2ljb25cIlxuICAgICAgICAgICAgKm5nSWY9XCJpY29uLmdseXBoXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJpY29uLmdseXBoXCJcbiAgICAgICAgICAgIFtmb250XT1cImljb24uZm9udFwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cImljb24uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgIFthdHRyLmFsdF09XCJpY29uLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWljb24+XG4gICAgICAgIDxmZC1hdmF0YXJcbiAgICAgICAgICAgIFtzaXplXT1cImF2YXRhci5zaXplXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJhdmF0YXIuZ2x5cGhcIlxuICAgICAgICAgICAgW3pvb21HbHlwaF09XCJhdmF0YXIuem9vbUdseXBoXCJcbiAgICAgICAgICAgICpuZ0lmPVwiYXZhdGFyLmxhYmVsIHx8IGF2YXRhci5pbWFnZSB8fCBhdmF0YXIuZ2x5cGggfHwgYXZhdGFyLnpvb21HbHlwaFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiYXZhdGFyLmxhYmVsXCJcbiAgICAgICAgICAgIFtjaXJjbGVdPVwiYXZhdGFyLmNpcmNsZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiYXZhdGFyLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFt0aWxlXT1cImF2YXRhci50aWxlXCJcbiAgICAgICAgICAgIFtjb2xvckFjY2VudF09XCJhdmF0YXIuY29sb3JBY2NlbnRcIlxuICAgICAgICAgICAgW2ltYWdlXT1cImF2YXRhci5pbWFnZVwiXG4gICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwiYXZhdGFyLnRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFtyYW5kb21dPVwiYXZhdGFyLnJhbmRvbVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiYXZhdGFyLmNsYXNzXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiYXZhdGFyLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsbGVkYnldPVwiYXZhdGFyLmFyaWFMYWJlbGxlZGJ5XCJcbiAgICAgICAgICAgIFtjb250YWluXT1cImF2YXRhci5jb250YWluXCJcbiAgICAgICAgICAgIFtib3JkZXJdPVwiYXZhdGFyLmJvcmRlclwiXG4gICAgICAgICAgICBbYWx0ZXJJY29uXT1cImF2YXRhci5hbHRlckljb25cIlxuICAgICAgICAgICAgW2JhY2t1cEltYWdlXT1cImF2YXRhci5iYWNrdXBJbWFnZVwiXG4gICAgICAgICAgICBbY2xpY2thYmxlXT1cImF2YXRhci5jbGlja2FibGVcIlxuICAgICAgICAgICAgW2F0dHIuYWx0XT1cImF2YXRhci5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgcm9sZT1cImltZ1wiXG4gICAgICAgID48L2ZkLWF2YXRhcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmZC1saXN0X19jb250ZW50XCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ0aXRsZVwiIGZkLWxpc3QtdGl0bGUgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZVwiIFthdHRyLm5vd3JhcF09XCJ0aXRsZVdyYXBcIiBbYXR0ci50aXRsZV09XCJ0aXRsZVwiPlxuICAgICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUgZmQtbGlzdF9fYnlsaW5lLS0yLWNvbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfaXNBZHZhbmNlZFRleHQoZGVzY3JpcHRpb24pID8gYWR2YW5jZWREZXNjcmlwdGlvbiA6IHNpbXBsZURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBkZXNjcmlwdGlvbiB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl9pc0FkdmFuY2VkVGV4dChzZWNvbmRhcnkpID8gYWR2YW5jZWRTZWNvbmRhcnkgOiBzaW1wbGVTZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHNlY29uZGFyeSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3Rpb25UZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGZkLWZvcm0taXRlbVxuICAgICAgICBjbGFzcz1cImZkLWxpc3RfX2Zvcm0taXRlbVwiXG4gICAgICAgICpuZ0lmPVwiKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aScgfHwgc2VsZWN0aW9uTW9kZSA9PT0gJ3NpbmdsZScpICYmICFyb3dTZWxlY3Rpb25cIlxuICAgID5cbiAgICAgICAgPGZkLWNoZWNrYm94XG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICB0YWJJbmRleFZhbHVlPVwiLTFcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX29uQ2hlY2tib3hNb2RlbENoYW5nZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWNoZWNrYm94PlxuICAgICAgICA8ZmQtcmFkaW8tYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1vZGUgPT09ICdzaW5nbGUnXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGlvblZhbHVlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLXJhZGlvLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2FjdGlvbnNUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIjc2Vjb25kYXJ5QWN0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICNlZGl0XG4gICAgICAgIFthdHRyLmlkXT1cIidkZXRhaWwtJyArIGlkXCJcbiAgICAgICAgKm5nSWY9XCJsaXN0VHlwZSA9PT0gJ2RldGFpbCdcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBnbHlwaD1cImVkaXRcIlxuICAgICAgICAoY2xpY2spPVwiX29uQWN0aW9uQnV0dG9uQ2xpY2soJ2VkaXQnKVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbS5kZXRhaWxzQWN0aW9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiJ3BsYXRmb3JtU3RhbmRhcmRMaXN0SXRlbS5kZXRhaWxzQWN0aW9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgKGtleWRvd24pPVwiX29uS2V5QnV0dG9uQ2xpY2soJGV2ZW50LCAnZWRpdCcpXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgI2RlbGV0ZVxuICAgICAgICBbYXR0ci5pZF09XCInZGVsZXRlLScgKyBpZFwiXG4gICAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PT0gJ2RlbGV0ZSdcIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TdGFuZGFyZExpc3RJdGVtLmRlbGV0ZUFjdGlvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIidwbGF0Zm9ybVN0YW5kYXJkTGlzdEl0ZW0uZGVsZXRlQWN0aW9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBnbHlwaD1cImRlY2xpbmVcIlxuICAgICAgICAoY2xpY2spPVwiX29uQWN0aW9uQnV0dG9uQ2xpY2soJ2RlbGV0ZScpXCJcbiAgICAgICAgKGtleWRvd24pPVwiX29uS2V5QnV0dG9uQ2xpY2soJGV2ZW50LCAnZGVsZXRlJylcIlxuICAgID48L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlRGVzY3JpcHRpb24gbGV0LWRlc2NyaXB0aW9uPlxuICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLWxlZnRcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICBbYXR0ci5ub3dyYXBdPVwidGl0bGVXcmFwXCJcbiAgICA+XG4gICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYWR2YW5jZWREZXNjcmlwdGlvbiBsZXQtZGVzY3JpcHRpb24+XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtbGVmdFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVzY3JpcHRpb24uYXJpYUxhYmVsID8/IGRlc2NyaXB0aW9uLnRleHRcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJkZXNjcmlwdGlvbi50aXRsZSA/PyBkZXNjcmlwdGlvbi50ZXh0XCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInRpdGxlV3JhcFwiXG4gICAgPlxuICAgICAgICB7eyBkZXNjcmlwdGlvbi50ZXh0IH19XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVTZWNvbmRhcnkgbGV0LXNlY29uZGFyeT5cbiAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIiFpbnZlcnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICBbY2xhc3NdPVwic3RhdHVzVHlwZSA/ICdmZC1saXN0X19ieWxpbmUtcmlnaHQtLScgKyBzdGF0dXNUeXBlIDogJydcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgPlxuICAgICAgICB7eyBzZWNvbmRhcnkgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICAqbmdJZj1cImludmVydGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci5ub3dyYXBdPVwic2Vjb25kYXJ5V3JhcFwiXG4gICAgPlxuICAgICAgICA8ZmRwLW9iamVjdC1zdGF0dXMgW3N0YXR1c109XCJzdGF0dXNUeXBlXCIgW2ludmVydGVkXT1cImludmVydGVkXCI+IHt7IHNlY29uZGFyeSB9fTwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjYWR2YW5jZWRTZWNvbmRhcnkgbGV0LXNlY29uZGFyeT5cbiAgICA8c3BhblxuICAgICAgICAqbmdJZj1cIiFpbnZlcnRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2Vjb25kYXJ5LmFyaWFMYWJlbCA/PyBzZWNvbmRhcnkudGV4dFwiXG4gICAgICAgIGNsYXNzPVwiZmQtbGlzdF9fYnlsaW5lLXJpZ2h0XCJcbiAgICAgICAgW2NsYXNzXT1cInN0YXR1c1R5cGUgPyAnZmQtbGlzdF9fYnlsaW5lLXJpZ2h0LS0nICsgc3RhdHVzVHlwZSA6ICcnXCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwic2Vjb25kYXJ5LnRpdGxlID8/IHNlY29uZGFyeS50ZXh0XCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgID5cbiAgICAgICAge3sgc2Vjb25kYXJ5LnRleHQgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmZC1saXN0X19ieWxpbmUtcmlnaHRcIlxuICAgICAgICAqbmdJZj1cImludmVydGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWNvbmRhcnkuYXJpYUxhYmVsID8/IHNlY29uZGFyeS50ZXh0XCJcbiAgICAgICAgW2F0dHIudGl0bGVdPVwic2Vjb25kYXJ5LnRpdGxlID8/IHNlY29uZGFyeS50ZXh0XCJcbiAgICAgICAgW2F0dHIubm93cmFwXT1cInNlY29uZGFyeVdyYXBcIlxuICAgID5cbiAgICAgICAgPGZkcC1vYmplY3Qtc3RhdHVzIFtzdGF0dXNdPVwic3RhdHVzVHlwZVwiIFtpbnZlcnRlZF09XCJpbnZlcnRlZFwiPiB7eyBzZWNvbmRhcnkudGV4dCB9fTwvZmRwLW9iamVjdC1zdGF0dXM+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -69,7 +69,7 @@ export class MessageViewComponent {
69
69
  }
70
70
  }
71
71
  MessageViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MessageViewComponent, deps: [{ token: i1.DestroyedService }, { token: i1.TabbableElementService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
72
- MessageViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MessageViewComponent, selector: "fdp-message-view", inputs: { currentScreen: "currentScreen", filteredErrors: "filteredErrors", currentEntry: "currentEntry" }, outputs: { openDetails: "openDetails", focusItem: "focusItem", closePopover: "closePopover" }, host: { properties: { "class": "this._initialClass" } }, providers: [DestroyedService, TabbableElementService], viewQueries: [{ propertyName: "_listView", first: true, predicate: ["listView"], descendants: true, read: ElementRef }, { propertyName: "_detailsView", first: true, predicate: ["detailsView"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-template #headingTemplate let-item>\n <ng-template #directiveHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message || item.description.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.heading.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringHeading>\n {{ item.heading.message | fdTranslate : { error: item.heading.error } : item.heading.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveHeading\n : item.heading.type === 'string'\n ? stringHeading\n : i18nHeading\n \"\n ></ng-template>\n</ng-template>\n\n<ng-template #descriptionTemplate let-item>\n <ng-template #directiveDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.description.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringDescription>\n {{ item.description.message | fdTranslate : { error: item.description.error } : item.description.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveDescription\n : item.heading.type === 'string'\n ? stringDescription\n : i18nDescription\n \"\n ></ng-template>\n</ng-template>\n\n<div class=\"fd-message-view\">\n <section\n class=\"fd-message-view__list\"\n tabindex=\"-1\"\n [@openCloseList]=\"currentScreen === 'list' ? 'open' : 'closed'\"\n (@openCloseList.done)=\"_onListAnimationComplete($event)\"\n fd-scrollbar\n [overrideTabindex]=\"false\"\n >\n <ul #listView fd-list class=\"message-popover__list fd-list--message-view\" [navigationIndicator]=\"true\">\n <ng-container *ngFor=\"let group of filteredErrors\">\n <li fd-list-group-header *ngIf=\"group.group\">\n <span fd-list-title>{{ group.group }}</span>\n </li>\n <ng-container *ngFor=\"let item of group.errors; let i = index\">\n <li fd-list-item [tabindex]=\"i === 0 ? 0 : -1\" [byline]=\"true\" (click)=\"_showDetails(item)\">\n <ng-template #itemIcon>\n <span\n fd-object-status\n class=\"fd-list__icon\"\n [status]=\"item.state\"\n [glyph]=\"'message-' + item.type\"\n ></span>\n </ng-template>\n <ng-template #listSubtitle>\n <span class=\"fd-list__subtitle\">\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </span>\n </ng-template>\n <span\n fd-list-link\n [navigationIndicator]=\"!!item.description.message\"\n *ngIf=\"item.element && !!item.description.message; else anchorListLink\"\n >\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>\n <a tabindex=\"0\" fd-link (click)=\"_focusElement($event, item)\">\n {{ item.fieldName }}\n </a>\n </span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </span>\n <ng-template #anchorListLink>\n <a fd-list-link [navigationIndicator]=\"!!item.description.message\">\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>{{ item.fieldName }}</span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </section>\n <section class=\"fd-message-view__details\" [@openCloseDetails]=\"currentScreen === 'details' ? 'open' : 'closed'\">\n <div #detailsView>\n <ng-container *ngIf=\"currentEntry\">\n <span class=\"fd-message-view__details-title\">\n <span\n fd-object-status\n class=\"fd-message-view__icon\"\n [status]=\"currentEntry.state\"\n [glyph]=\"'message-' + currentEntry.type\"\n ></span>\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n <span class=\"fd-message-view__details-description\" *ngIf=\"currentEntry.description.message\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n </ng-container>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i3.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i3.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i3.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i3.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i3.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "component", type: i4.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "directive", type: i5.ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible", "overrideTabindex"] }, { kind: "component", type: i6.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i7.FdTranslatePipe, name: "fdTranslate" }], animations: [
72
+ MessageViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MessageViewComponent, selector: "fdp-message-view", inputs: { currentScreen: "currentScreen", filteredErrors: "filteredErrors", currentEntry: "currentEntry" }, outputs: { openDetails: "openDetails", focusItem: "focusItem", closePopover: "closePopover" }, host: { properties: { "class": "this._initialClass" } }, providers: [DestroyedService, TabbableElementService], viewQueries: [{ propertyName: "_listView", first: true, predicate: ["listView"], descendants: true, read: ElementRef }, { propertyName: "_detailsView", first: true, predicate: ["detailsView"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ng-template #headingTemplate let-item>\n <ng-template #directiveHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message || item.description.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.heading.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nHeading>\n <ng-template\n [ngTemplateOutlet]=\"item.heading.message\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringHeading>\n {{ item.heading.message | fdTranslate : { error: item.heading.error } : item.heading.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveHeading\n : item.heading.type === 'string'\n ? stringHeading\n : i18nHeading\n \"\n ></ng-template>\n</ng-template>\n\n<ng-template #descriptionTemplate let-item>\n <ng-template #directiveDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.description.error }\"\n ></ng-template>\n </ng-template>\n <ng-template #i18nDescription>\n <ng-template\n [ngTemplateOutlet]=\"item.description.message!\"\n [ngTemplateOutletContext]=\"{ $implicit: item.errors }\"\n ></ng-template>\n </ng-template>\n <ng-template #stringDescription>\n {{ item.description.message | fdTranslate : { error: item.description.error } : item.description.message }}\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"\n item.heading.type === 'directive'\n ? directiveDescription\n : item.heading.type === 'string'\n ? stringDescription\n : i18nDescription\n \"\n ></ng-template>\n</ng-template>\n\n<div class=\"fd-message-view\">\n <section\n class=\"fd-message-view__list\"\n tabindex=\"-1\"\n [@openCloseList]=\"currentScreen === 'list' ? 'open' : 'closed'\"\n (@openCloseList.done)=\"_onListAnimationComplete($event)\"\n fd-scrollbar\n [overrideTabindex]=\"false\"\n >\n <ul #listView fd-list class=\"message-popover__list fd-list--message-view\" [navigationIndicator]=\"true\">\n <ng-container *ngFor=\"let group of filteredErrors\">\n <li fd-list-group-header *ngIf=\"group.group\">\n <span fd-list-title>{{ group.group }}</span>\n </li>\n <ng-container *ngFor=\"let item of group.errors; let i = index\">\n <li fd-list-item [tabindex]=\"i === 0 ? 0 : -1\" [byline]=\"true\" (click)=\"_showDetails(item)\">\n <ng-template #itemIcon>\n <span\n fd-object-status\n class=\"fd-list__icon\"\n [status]=\"item.state\"\n [glyph]=\"'message-' + item.type\"\n ></span>\n </ng-template>\n <ng-template #listSubtitle>\n <span class=\"fd-list__subtitle\">\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n </span>\n </ng-template>\n <span\n fd-list-link\n [navigationIndicator]=\"!!item.description.message\"\n *ngIf=\"item.element && !!item.description.message; else anchorListLink\"\n >\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>\n <a tabindex=\"0\" fd-link (click)=\"_focusElement($event, item)\">\n {{ item.fieldName }}\n </a>\n </span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </span>\n <ng-template #anchorListLink>\n <a fd-list-link [navigationIndicator]=\"!!item.description.message\">\n <ng-template [ngTemplateOutlet]=\"itemIcon\"></ng-template>\n <span fd-list-content>\n <span fd-list-title>{{ item.fieldName }}</span>\n <ng-template [ngTemplateOutlet]=\"listSubtitle\"></ng-template>\n </span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </section>\n <section class=\"fd-message-view__details\" [@openCloseDetails]=\"currentScreen === 'details' ? 'open' : 'closed'\">\n <div #detailsView>\n <ng-container *ngIf=\"currentEntry\">\n <span class=\"fd-message-view__details-title\">\n <span\n fd-object-status\n class=\"fd-message-view__icon\"\n [status]=\"currentEntry.state\"\n [glyph]=\"'message-' + currentEntry.type\"\n ></span>\n <ng-template\n [ngTemplateOutlet]=\"headingTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n <span class=\"fd-message-view__details-description\" *ngIf=\"currentEntry.description.message\">\n <ng-template\n [ngTemplateOutlet]=\"descriptionTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: currentEntry }\"\n ></ng-template>\n </span>\n </ng-container>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i3.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: i3.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i3.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "directive", type: i3.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i3.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "component", type: i4.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large"] }, { kind: "directive", type: i5.ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible", "overrideTabindex"] }, { kind: "component", type: i6.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "pipe", type: i7.FdTranslatePipe, name: "fdTranslate" }], animations: [
73
73
  trigger('openCloseList', [
74
74
  // ...
75
75
  state('open', style({
@@ -188,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
188
188
  type: HostBinding,
189
189
  args: ['class']
190
190
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9tZXNzYWdlLXBvcG92ZXIvY29tcG9uZW50cy9tZXNzYWdlLXZpZXcvbWVzc2FnZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9tZXNzYWdlLXBvcG92ZXIvY29tcG9uZW50cy9tZXNzYWdlLXZpZXcvbWVzc2FnZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUF1RS9DLE1BQU0sT0FBTyxvQkFBb0I7SUF3QzdCLGNBQWM7SUFDZCxZQUNxQixTQUEyQixFQUMzQixnQkFBd0MsRUFDdEIsU0FBbUI7UUFGckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBL0IxRCx1RkFBdUY7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TyxFQUFFLE1BQU07cUNBQ2xCLENBQUM7aUNBQ0wsQ0FBQyxDQUNMOzZCQUNKLENBQUM7NEJBQ0YsVUFBVSxDQUFDLGdCQUFnQixFQUFFO2dDQUN6QixLQUFLLENBQUM7b0NBQ0YsT0FBTyxFQUFFLE9BQU87aUNBQ25CLENBQUM7Z0NBQ0YsT0FBTyxDQUFDLHFDQUFxQyxDQUFDOzZCQUNqRCxDQUFDO3lCQUNMLENBQUM7cUJBQ0w7OzBCQThDSSxNQUFNOzJCQUFDLFFBQVE7NENBekNwQixhQUFhO3NCQURaLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixXQUFXO3NCQURWLE1BQU07Z0JBS1AsU0FBUztzQkFEUixNQUFNO2dCQUtQLFlBQVk7c0JBRFgsTUFBTTtnQkFLQyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS25DLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFLN0IsYUFBYTtzQkFEN0IsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwga2V5ZnJhbWVzLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UsIHJlc2l6ZU9ic2VydmFibGUsIFRhYmJhYmxlRWxlbWVudFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJFbnRyeSwgTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci1lbnRyeS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tZXNzYWdlLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGVzdHJveWVkU2VydmljZSwgVGFiYmFibGVFbGVtZW50U2VydmljZV0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VMaXN0JywgW1xuICAgICAgICAgICAgLy8gLi4uXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnb3BlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2Nsb3NlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MHB4KScsXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gY2xvc2VkJywgW2FuaW1hdGUoJy4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdjbG9zZWQgPT4gb3BlbicsIFthbmltYXRlKCcwLjFzIC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScpXSlcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoJ29wZW5DbG9zZURldGFpbHMnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnb3BlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2Nsb3NlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDUwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAgICAgJy4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScsXG4gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDUwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJ1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzAuMXMgLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJylcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBDdXJyZW50IE1lc3NhZ2UgUG9wb3ZlciBzY3JlZW4uIENhbiBiZSBlaXRoZXIgYGxpc3RgIG9yIGBkZXRhaWxzYC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGN1cnJlbnRTY3JlZW46ICdsaXN0JyB8ICdkZXRhaWxzJztcblxuICAgIC8qKiBGaWx0ZXJlZCBlcnJvcnMgdG8gcmVuZGVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyZWRFcnJvcnM6IE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cFtdO1xuXG4gICAgLyoqIEN1cnJlbnQgZXJyb3IgZW50cnkuIFVzZWQgZm9yIGRldGFpbHMgdmlldy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGN1cnJlbnRFbnRyeTogTnVsbGFibGU8TWVzc2FnZVBvcG92ZXJFbnRyeT47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIGVycm9yIGVudHJ5IGNvbnRhaW5pbmcgYWRkaXRpb25hbCBkZXNjcmlwdGlvbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBvcGVuRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8TWVzc2FnZVBvcG92ZXJFbnRyeT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24gZXJyb3IgZW50cnkgYW5kIGl0ZW0ncyBlbGVtZW50IHNob3VsZCBiZSBmb2N1c2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvY3VzSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVzc2FnZVBvcG92ZXJFbnRyeT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24gdGhlIGZpZWxkIGxpbmsgdG8gZm9jdXMgb24gdGhlIGZpZWxkIGl0c2VsZi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZVBvcG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2xpc3RWaWV3JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSBfbGlzdFZpZXc6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNWaWV3JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSBfZGV0YWlsc1ZpZXc6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxDbGFzcyA9ICdmZC1tZXNzYWdlLXBvcG92ZXJfX3ZpZXctY29udGFpbmVyJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWN0aXZlTGlzdEVsZW1lbnQ6IE51bGxhYmxlPEhUTUxFbGVtZW50PiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVTZXJ2aWNlOiBUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9kZXRhaWxzVmlldy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaGVpZ2h0IH0gPSB0aGlzLl9kZXRhaWxzVmlldy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RWaWV3Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubWluSGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dEZXRhaWxzKGVudHJ5OiBNZXNzYWdlUG9wb3ZlckVudHJ5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUxpc3RFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbnRyeS5kZXNjcmlwdGlvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c0VsZW1lbnQodW5kZWZpbmVkLCBlbnRyeSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50U2NyZWVuID0gJ2RldGFpbHMnO1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzLmVtaXQoZW50cnkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZvY3VzRWxlbWVudChldmVudD86IE1vdXNlRXZlbnQsIGl0ZW0/OiBNZXNzYWdlUG9wb3ZlckVudHJ5KTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50Py5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9jdXNJdGVtLmVtaXQoaXRlbSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFiYmFibGVFbGVtZW50ID0gdGhpcy5fdGFiYmFibGVTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudChpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGFiYmFibGVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkxpc3RBbmltYXRpb25Db21wbGV0ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnb3BlbicgJiYgdGhpcy5fYWN0aXZlTGlzdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUxpc3RFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVMaXN0RWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2hlYWRpbmdUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8bmctdGVtcGxhdGUgI2RpcmVjdGl2ZUhlYWRpbmc+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS5oZWFkaW5nLm1lc3NhZ2UgfHwgaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbS5oZWFkaW5nLmVycm9yIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaTE4bkhlYWRpbmc+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS5oZWFkaW5nLm1lc3NhZ2VcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmVycm9ycyB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3N0cmluZ0hlYWRpbmc+XG4gICAgICAgIHt7IGl0ZW0uaGVhZGluZy5tZXNzYWdlIHwgZmRUcmFuc2xhdGUgOiB7IGVycm9yOiBpdGVtLmhlYWRpbmcuZXJyb3IgfSA6IGl0ZW0uaGVhZGluZy5tZXNzYWdlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiXG4gICAgICAgICAgICBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ2RpcmVjdGl2ZSdcbiAgICAgICAgICAgICAgICA/IGRpcmVjdGl2ZUhlYWRpbmdcbiAgICAgICAgICAgICAgICA6IGl0ZW0uaGVhZGluZy50eXBlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgID8gc3RyaW5nSGVhZGluZ1xuICAgICAgICAgICAgICAgIDogaTE4bkhlYWRpbmdcbiAgICAgICAgXCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVzY3JpcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8bmctdGVtcGxhdGUgI2RpcmVjdGl2ZURlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmRlc2NyaXB0aW9uLmVycm9yIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaTE4bkRlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmVycm9ycyB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3N0cmluZ0Rlc2NyaXB0aW9uPlxuICAgICAgICB7eyBpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2UgfCBmZFRyYW5zbGF0ZSA6IHsgZXJyb3I6IGl0ZW0uZGVzY3JpcHRpb24uZXJyb3IgfSA6IGl0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgICAgICAgaXRlbS5oZWFkaW5nLnR5cGUgPT09ICdkaXJlY3RpdmUnXG4gICAgICAgICAgICAgICAgPyBkaXJlY3RpdmVEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIDogaXRlbS5oZWFkaW5nLnR5cGUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyBzdHJpbmdEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIDogaTE4bkRlc2NyaXB0aW9uXG4gICAgICAgIFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3XCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICAgY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2xpc3RcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW0BvcGVuQ2xvc2VMaXN0XT1cImN1cnJlbnRTY3JlZW4gPT09ICdsaXN0JyA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgKEBvcGVuQ2xvc2VMaXN0LmRvbmUpPVwiX29uTGlzdEFuaW1hdGlvbkNvbXBsZXRlKCRldmVudClcIlxuICAgICAgICBmZC1zY3JvbGxiYXJcbiAgICAgICAgW292ZXJyaWRlVGFiaW5kZXhdPVwiZmFsc2VcIlxuICAgID5cbiAgICAgICAgPHVsICNsaXN0VmlldyBmZC1saXN0IGNsYXNzPVwibWVzc2FnZS1wb3BvdmVyX19saXN0IGZkLWxpc3QtLW1lc3NhZ2Utdmlld1wiIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGZpbHRlcmVkRXJyb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtZ3JvdXAtaGVhZGVyICpuZ0lmPVwiZ3JvdXAuZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBncm91cC5ncm91cCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXAuZXJyb3JzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gW3RhYmluZGV4XT1cImkgPT09IDAgPyAwIDogLTFcIiBbYnlsaW5lXT1cInRydWVcIiAoY2xpY2spPVwiX3Nob3dEZXRhaWxzKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJpdGVtLnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIidtZXNzYWdlLScgKyBpdGVtLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsaXN0U3VidGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1saXN0X19zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIiEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZWxlbWVudCAmJiAhIWl0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZTsgZWxzZSBhbmNob3JMaXN0TGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1JY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiBmZC1saW5rIChjbGljayk9XCJfZm9jdXNFbGVtZW50KCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmZpZWxkTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3VidGl0bGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYW5jaG9yTGlzdExpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIiEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtSWNvblwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgaXRlbS5maWVsZE5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFN1YnRpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2RldGFpbHNcIiBbQG9wZW5DbG9zZURldGFpbHNdPVwiY3VycmVudFNjcmVlbiA9PT0gJ2RldGFpbHMnID8gJ29wZW4nIDogJ2Nsb3NlZCdcIj5cbiAgICAgICAgPGRpdiAjZGV0YWlsc1ZpZXc+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudEVudHJ5XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2RldGFpbHMtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiY3VycmVudEVudHJ5LnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCInbWVzc2FnZS0nICsgY3VycmVudEVudHJ5LnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGN1cnJlbnRFbnRyeSB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19kZXRhaWxzLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJjdXJyZW50RW50cnkuZGVzY3JpcHRpb24ubWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjdXJyZW50RW50cnkgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9tZXNzYWdlLXBvcG92ZXIvY29tcG9uZW50cy9tZXNzYWdlLXZpZXcvbWVzc2FnZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9tZXNzYWdlLXBvcG92ZXIvY29tcG9uZW50cy9tZXNzYWdlLXZpZXcvbWVzc2FnZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUF1RS9DLE1BQU0sT0FBTyxvQkFBb0I7SUF3QzdCLGNBQWM7SUFDZCxZQUNxQixTQUEyQixFQUMzQixnQkFBd0MsRUFDdEIsU0FBbUI7UUFGckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF3QjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBL0IxRCx1RkFBdUY7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TyxFQUFFLE1BQU07cUNBQ2xCLENBQUM7aUNBQ0wsQ0FBQyxDQUNMOzZCQUNKLENBQUM7NEJBQ0YsVUFBVSxDQUFDLGdCQUFnQixFQUFFO2dDQUN6QixLQUFLLENBQUM7b0NBQ0YsT0FBTyxFQUFFLE9BQU87aUNBQ25CLENBQUM7Z0NBQ0YsT0FBTyxDQUFDLHFDQUFxQyxDQUFDOzZCQUNqRCxDQUFDO3lCQUNMLENBQUM7cUJBQ0w7OzBCQThDSSxNQUFNOzJCQUFDLFFBQVE7NENBekNwQixhQUFhO3NCQURaLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixXQUFXO3NCQURWLE1BQU07Z0JBS1AsU0FBUztzQkFEUixNQUFNO2dCQUtQLFlBQVk7c0JBRFgsTUFBTTtnQkFLQyxTQUFTO3NCQURoQixTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS25DLFlBQVk7c0JBRG5CLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFLN0IsYUFBYTtzQkFEN0IsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwga2V5ZnJhbWVzLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERlc3Ryb3llZFNlcnZpY2UsIHJlc2l6ZU9ic2VydmFibGUsIFRhYmJhYmxlRWxlbWVudFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzc2FnZVBvcG92ZXJFbnRyeSwgTWVzc2FnZVBvcG92ZXJFcnJvckdyb3VwIH0gZnJvbSAnLi4vLi4vbW9kZWxzL21lc3NhZ2UtcG9wb3Zlci1lbnRyeS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1tZXNzYWdlLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGVzdHJveWVkU2VydmljZSwgVGFiYmFibGVFbGVtZW50U2VydmljZV0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VMaXN0JywgW1xuICAgICAgICAgICAgLy8gLi4uXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnb3BlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2Nsb3NlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MHB4KScsXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gY2xvc2VkJywgW2FuaW1hdGUoJy4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCdjbG9zZWQgPT4gb3BlbicsIFthbmltYXRlKCcwLjFzIC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScpXSlcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoJ29wZW5DbG9zZURldGFpbHMnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnb3BlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2Nsb3NlZCcsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDUwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAgICAgJy4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKScsXG4gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnYmxvY2snXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDUwcHgpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdub25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2Jsb2NrJ1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzAuMXMgLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJylcbiAgICAgICAgICAgIF0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBDdXJyZW50IE1lc3NhZ2UgUG9wb3ZlciBzY3JlZW4uIENhbiBiZSBlaXRoZXIgYGxpc3RgIG9yIGBkZXRhaWxzYC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGN1cnJlbnRTY3JlZW46ICdsaXN0JyB8ICdkZXRhaWxzJztcblxuICAgIC8qKiBGaWx0ZXJlZCBlcnJvcnMgdG8gcmVuZGVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyZWRFcnJvcnM6IE1lc3NhZ2VQb3BvdmVyRXJyb3JHcm91cFtdO1xuXG4gICAgLyoqIEN1cnJlbnQgZXJyb3IgZW50cnkuIFVzZWQgZm9yIGRldGFpbHMgdmlldy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGN1cnJlbnRFbnRyeTogTnVsbGFibGU8TWVzc2FnZVBvcG92ZXJFbnRyeT47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIGVycm9yIGVudHJ5IGNvbnRhaW5pbmcgYWRkaXRpb25hbCBkZXNjcmlwdGlvbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBvcGVuRGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8TWVzc2FnZVBvcG92ZXJFbnRyeT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24gZXJyb3IgZW50cnkgYW5kIGl0ZW0ncyBlbGVtZW50IHNob3VsZCBiZSBmb2N1c2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvY3VzSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVzc2FnZVBvcG92ZXJFbnRyeT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciBjbGlja3Mgb24gdGhlIGZpZWxkIGxpbmsgdG8gZm9jdXMgb24gdGhlIGZpZWxkIGl0c2VsZi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZVBvcG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2xpc3RWaWV3JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSBfbGlzdFZpZXc6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RldGFpbHNWaWV3JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSBfZGV0YWlsc1ZpZXc6IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxDbGFzcyA9ICdmZC1tZXNzYWdlLXBvcG92ZXJfX3ZpZXctY29udGFpbmVyJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWN0aXZlTGlzdEVsZW1lbnQ6IE51bGxhYmxlPEhUTUxFbGVtZW50PiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVTZXJ2aWNlOiBUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudDogRG9jdW1lbnRcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9kZXRhaWxzVmlldy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaGVpZ2h0IH0gPSB0aGlzLl9kZXRhaWxzVmlldy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RWaWV3Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubWluSGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dEZXRhaWxzKGVudHJ5OiBNZXNzYWdlUG9wb3ZlckVudHJ5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUxpc3RFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKCFlbnRyeS5kZXNjcmlwdGlvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c0VsZW1lbnQodW5kZWZpbmVkLCBlbnRyeSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50U2NyZWVuID0gJ2RldGFpbHMnO1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzLmVtaXQoZW50cnkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ZvY3VzRWxlbWVudChldmVudD86IE1vdXNlRXZlbnQsIGl0ZW0/OiBNZXNzYWdlUG9wb3ZlckVudHJ5KTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbT8uZWxlbWVudD8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50Py5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIuZW1pdChmYWxzZSk7XG4gICAgICAgIHRoaXMuZm9jdXNJdGVtLmVtaXQoaXRlbSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFiYmFibGVFbGVtZW50ID0gdGhpcy5fdGFiYmFibGVTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudChpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGFiYmFibGVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9vbkxpc3RBbmltYXRpb25Db21wbGV0ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnb3BlbicgJiYgdGhpcy5fYWN0aXZlTGlzdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUxpc3RFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVMaXN0RWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2hlYWRpbmdUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8bmctdGVtcGxhdGUgI2RpcmVjdGl2ZUhlYWRpbmc+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS5oZWFkaW5nLm1lc3NhZ2UgfHwgaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbS5oZWFkaW5nLmVycm9yIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaTE4bkhlYWRpbmc+XG4gICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS5oZWFkaW5nLm1lc3NhZ2VcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmVycm9ycyB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3N0cmluZ0hlYWRpbmc+XG4gICAgICAgIHt7IGl0ZW0uaGVhZGluZy5tZXNzYWdlIHwgZmRUcmFuc2xhdGUgOiB7IGVycm9yOiBpdGVtLmhlYWRpbmcuZXJyb3IgfSA6IGl0ZW0uaGVhZGluZy5tZXNzYWdlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiXG4gICAgICAgICAgICBpdGVtLmhlYWRpbmcudHlwZSA9PT0gJ2RpcmVjdGl2ZSdcbiAgICAgICAgICAgICAgICA/IGRpcmVjdGl2ZUhlYWRpbmdcbiAgICAgICAgICAgICAgICA6IGl0ZW0uaGVhZGluZy50eXBlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgICAgID8gc3RyaW5nSGVhZGluZ1xuICAgICAgICAgICAgICAgIDogaTE4bkhlYWRpbmdcbiAgICAgICAgXCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVzY3JpcHRpb25UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8bmctdGVtcGxhdGUgI2RpcmVjdGl2ZURlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmRlc2NyaXB0aW9uLmVycm9yIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjaTE4bkRlc2NyaXB0aW9uPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSFcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLmVycm9ycyB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI3N0cmluZ0Rlc2NyaXB0aW9uPlxuICAgICAgICB7eyBpdGVtLmRlc2NyaXB0aW9uLm1lc3NhZ2UgfCBmZFRyYW5zbGF0ZSA6IHsgZXJyb3I6IGl0ZW0uZGVzY3JpcHRpb24uZXJyb3IgfSA6IGl0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZSB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlxuICAgICAgICAgICAgaXRlbS5oZWFkaW5nLnR5cGUgPT09ICdkaXJlY3RpdmUnXG4gICAgICAgICAgICAgICAgPyBkaXJlY3RpdmVEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIDogaXRlbS5oZWFkaW5nLnR5cGUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyBzdHJpbmdEZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIDogaTE4bkRlc2NyaXB0aW9uXG4gICAgICAgIFwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuXG48ZGl2IGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3XCI+XG4gICAgPHNlY3Rpb25cbiAgICAgICAgY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2xpc3RcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgW0BvcGVuQ2xvc2VMaXN0XT1cImN1cnJlbnRTY3JlZW4gPT09ICdsaXN0JyA/ICdvcGVuJyA6ICdjbG9zZWQnXCJcbiAgICAgICAgKEBvcGVuQ2xvc2VMaXN0LmRvbmUpPVwiX29uTGlzdEFuaW1hdGlvbkNvbXBsZXRlKCRldmVudClcIlxuICAgICAgICBmZC1zY3JvbGxiYXJcbiAgICAgICAgW292ZXJyaWRlVGFiaW5kZXhdPVwiZmFsc2VcIlxuICAgID5cbiAgICAgICAgPHVsICNsaXN0VmlldyBmZC1saXN0IGNsYXNzPVwibWVzc2FnZS1wb3BvdmVyX19saXN0IGZkLWxpc3QtLW1lc3NhZ2Utdmlld1wiIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGZpbHRlcmVkRXJyb3JzXCI+XG4gICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtZ3JvdXAtaGVhZGVyICpuZ0lmPVwiZ3JvdXAuZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBncm91cC5ncm91cCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ3JvdXAuZXJyb3JzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gW3RhYmluZGV4XT1cImkgPT09IDAgPyAwIDogLTFcIiBbYnlsaW5lXT1cInRydWVcIiAoY2xpY2spPVwiX3Nob3dEZXRhaWxzKGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1saXN0X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJpdGVtLnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dseXBoXT1cIidtZXNzYWdlLScgKyBpdGVtLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsaXN0U3VidGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1saXN0X19zdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWxpc3QtbGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIiEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uZWxlbWVudCAmJiAhIWl0ZW0uZGVzY3JpcHRpb24ubWVzc2FnZTsgZWxzZSBhbmNob3JMaXN0TGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1JY29uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiBmZC1saW5rIChjbGljayk9XCJfZm9jdXNFbGVtZW50KCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmZpZWxkTmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3VidGl0bGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYW5jaG9yTGlzdExpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIFtuYXZpZ2F0aW9uSW5kaWNhdG9yXT1cIiEhaXRlbS5kZXNjcmlwdGlvbi5tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtSWNvblwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgaXRlbS5maWVsZE5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFN1YnRpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICA8L3NlY3Rpb24+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2RldGFpbHNcIiBbQG9wZW5DbG9zZURldGFpbHNdPVwiY3VycmVudFNjcmVlbiA9PT0gJ2RldGFpbHMnID8gJ29wZW4nIDogJ2Nsb3NlZCdcIj5cbiAgICAgICAgPGRpdiAjZGV0YWlsc1ZpZXc+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudEVudHJ5XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1tZXNzYWdlLXZpZXdfX2RldGFpbHMtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLW9iamVjdC1zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiY3VycmVudEVudHJ5LnN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCInbWVzc2FnZS0nICsgY3VycmVudEVudHJ5LnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGN1cnJlbnRFbnRyeSB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbWVzc2FnZS12aWV3X19kZXRhaWxzLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJjdXJyZW50RW50cnkuZGVzY3JpcHRpb24ubWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlc2NyaXB0aW9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjdXJyZW50RW50cnkgfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==