@seniorsistemas/data-seniorx-core 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/core/constants/editable-overlay.const.d.ts +4 -0
  2. package/core/constants/help-popover.const.d.ts +7 -0
  3. package/core/constants/input-mask.const.d.ts +5 -0
  4. package/core/constants/navigation-button.const.d.ts +3 -0
  5. package/core/constants/object-card.const.d.ts +21 -0
  6. package/core/constants/thumbnail.const.d.ts +6 -0
  7. package/core/constants/thumbnails.const.d.ts +4 -0
  8. package/core/constants/token-list.const.d.ts +3 -0
  9. package/core/types/button.type.d.ts +1 -1
  10. package/core/types/datepicker.type.d.ts +28 -0
  11. package/core/types/dynamic-form.type.d.ts +29 -0
  12. package/core/types/editable-overlay.type.d.ts +15 -0
  13. package/core/types/help-popover.type.d.ts +2 -0
  14. package/core/types/input-mask.type.d.ts +6 -0
  15. package/core/types/lookup.type.d.ts +45 -0
  16. package/core/types/navigation-button.type.d.ts +9 -0
  17. package/core/types/row-card.type.d.ts +5 -0
  18. package/core/types/semantics.type.d.ts +1 -1
  19. package/core/types/table-options.type.d.ts +1 -0
  20. package/core/types/thumbnail.type.d.ts +1 -0
  21. package/core/types/thumbnails.type.d.ts +20 -0
  22. package/core/types/token-list.type.d.ts +6 -0
  23. package/core/utils/emoji-support.util.d.ts +12 -0
  24. package/core/utils/overlay-dismiss.util.d.ts +25 -0
  25. package/esm2022/core/config/row-card.type.config.mjs +3 -1
  26. package/esm2022/core/constants/country-phone-picker.const.mjs +6 -6
  27. package/esm2022/core/constants/editable-overlay.const.mjs +5 -0
  28. package/esm2022/core/constants/help-popover.const.mjs +7 -0
  29. package/esm2022/core/constants/input-mask.const.mjs +6 -0
  30. package/esm2022/core/constants/navigation-button.const.mjs +4 -0
  31. package/esm2022/core/constants/object-card.const.mjs +23 -0
  32. package/esm2022/core/constants/thumbnail.const.mjs +14 -0
  33. package/esm2022/core/constants/thumbnails.const.mjs +5 -0
  34. package/esm2022/core/constants/token-list.const.mjs +4 -0
  35. package/esm2022/core/types/button.type.mjs +1 -1
  36. package/esm2022/core/types/datepicker.type.mjs +2 -0
  37. package/esm2022/core/types/dynamic-form.type.mjs +2 -0
  38. package/esm2022/core/types/editable-overlay.type.mjs +2 -0
  39. package/esm2022/core/types/help-popover.type.mjs +2 -0
  40. package/esm2022/core/types/input-mask.type.mjs +2 -0
  41. package/esm2022/core/types/lookup.type.mjs +2 -0
  42. package/esm2022/core/types/navigation-button.type.mjs +2 -0
  43. package/esm2022/core/types/row-card.type.mjs +1 -1
  44. package/esm2022/core/types/semantics.type.mjs +1 -1
  45. package/esm2022/core/types/table-options.type.mjs +1 -1
  46. package/esm2022/core/types/thumbnail.type.mjs +2 -0
  47. package/esm2022/core/types/thumbnails.type.mjs +2 -0
  48. package/esm2022/core/types/token-list.type.mjs +2 -0
  49. package/esm2022/core/utils/emoji-support.util.mjs +48 -0
  50. package/esm2022/core/utils/mask.util.mjs +2 -2
  51. package/esm2022/core/utils/overlay-dismiss.util.mjs +38 -0
  52. package/esm2022/features/alert/alert.component.mjs +5 -2
  53. package/esm2022/features/autocomplete/autocomplete.component.mjs +30 -8
  54. package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
  55. package/esm2022/features/button/button.component.mjs +13 -5
  56. package/esm2022/features/card-list/card/card.component.mjs +2 -2
  57. package/esm2022/features/card-list/card-list.component.mjs +2 -2
  58. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +25 -5
  59. package/esm2022/features/chips/chips.component.mjs +3 -3
  60. package/esm2022/features/code-editor/code-editor.component.mjs +12 -3
  61. package/esm2022/features/combobox/combobox.component.mjs +3 -3
  62. package/esm2022/features/confirm/confirm.component.mjs +2 -2
  63. package/esm2022/features/context-selector/context-selector.component.mjs +1 -1
  64. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +22 -18
  65. package/esm2022/features/currency/currency.component.mjs +3 -3
  66. package/esm2022/features/datepicker/datepicker.component.mjs +814 -0
  67. package/esm2022/features/dynamic-form/dynamic-form-field.directive.mjs +178 -0
  68. package/esm2022/features/dynamic-form/dynamic-form.component.mjs +60 -0
  69. package/esm2022/features/dynamic-form/dynamic-form.registry.mjs +13 -0
  70. package/esm2022/features/editable-overlay/editable-overlay-editor.directive.mjs +31 -0
  71. package/esm2022/features/editable-overlay/editable-overlay.component.mjs +217 -0
  72. package/esm2022/features/editor/editor.component.mjs +173 -0
  73. package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
  74. package/esm2022/features/fileupload/fileupload.component.mjs +3 -3
  75. package/esm2022/features/help-popover/help-popover.component.mjs +204 -0
  76. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  77. package/esm2022/features/icon-picker/icon-picker.component.mjs +4 -4
  78. package/esm2022/features/image-cropper/image-cropper.component.mjs +2 -2
  79. package/esm2022/features/info-sign/info-sign.component.mjs +6 -3
  80. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  81. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  82. package/esm2022/features/input-mask/input-mask.directive.mjs +510 -0
  83. package/esm2022/features/list/list.component.mjs +2 -2
  84. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +3 -3
  85. package/esm2022/features/lookup/lookup.component.mjs +351 -0
  86. package/esm2022/features/modal/modal.component.mjs +6 -3
  87. package/esm2022/features/modalc/modalc.component.mjs +6 -3
  88. package/esm2022/features/navigation-button/navigation-button.component.mjs +172 -0
  89. package/esm2022/features/number-input/number-input.component.mjs +10 -4
  90. package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +89 -0
  91. package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +114 -0
  92. package/esm2022/features/object-card/object-card.component.mjs +199 -0
  93. package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
  94. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +14 -4
  95. package/esm2022/features/popover/popover.component.mjs +29 -3
  96. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +13 -4
  97. package/esm2022/features/rating-scale/rating-scale.component.mjs +24 -4
  98. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +19 -4
  99. package/esm2022/features/row-card-list/row-card-list.component.mjs +12 -3
  100. package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
  101. package/esm2022/features/searchbox/searchbox.component.mjs +2 -2
  102. package/esm2022/features/select-button/select-button.component.mjs +26 -4
  103. package/esm2022/features/slider/slider.component.mjs +3 -3
  104. package/esm2022/features/split-button/split-button.component.mjs +1 -1
  105. package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +15 -18
  106. package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
  107. package/esm2022/features/star-rating/star-rating.component.mjs +25 -4
  108. package/esm2022/features/table/components/table-cell-content.component.mjs +2 -2
  109. package/esm2022/features/table/table.component.mjs +30 -9
  110. package/esm2022/features/textarea/textarea.component.mjs +3 -3
  111. package/esm2022/features/thumbnail/thumbnail.component.mjs +86 -0
  112. package/esm2022/features/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +59 -0
  113. package/esm2022/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.mjs +25 -0
  114. package/esm2022/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.mjs +50 -0
  115. package/esm2022/features/thumbnails/thumbnails.component.mjs +76 -0
  116. package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +13 -1
  117. package/esm2022/features/token-list/token-list.component.mjs +64 -0
  118. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  119. package/esm2022/locales/en.json +409 -1
  120. package/esm2022/locales/es-CO.json +423 -2
  121. package/esm2022/locales/pt.json +1037 -630
  122. package/esm2022/providers/features.provider.mjs +20 -2
  123. package/esm2022/providers/primeng-config.provider.mjs +14 -128
  124. package/esm2022/providers/translate.provider.mjs +2 -2
  125. package/esm2022/public-api.mjs +31 -1
  126. package/features/alert/alert.component.d.ts +1 -0
  127. package/features/autocomplete/autocomplete.component.d.ts +9 -3
  128. package/features/button/button.component.d.ts +3 -1
  129. package/features/checkbox-list/checkbox-list.component.d.ts +8 -1
  130. package/features/code-editor/code-editor.component.d.ts +5 -1
  131. package/features/country-phone-picker/country-phone-picker.component.d.ts +3 -0
  132. package/features/datepicker/datepicker.component.d.ts +118 -0
  133. package/features/dynamic-form/dynamic-form-field.directive.d.ts +26 -0
  134. package/features/dynamic-form/dynamic-form.component.d.ts +15 -0
  135. package/features/dynamic-form/dynamic-form.registry.d.ts +11 -0
  136. package/features/editable-overlay/editable-overlay-editor.directive.d.ts +22 -0
  137. package/features/editable-overlay/editable-overlay.component.d.ts +60 -0
  138. package/features/editor/editor.component.d.ts +47 -0
  139. package/features/help-popover/help-popover.component.d.ts +81 -0
  140. package/features/info-sign/info-sign.component.d.ts +2 -1
  141. package/features/input-mask/input-mask.directive.d.ts +117 -0
  142. package/features/lookup/lookup.component.d.ts +104 -0
  143. package/features/modal/modal.component.d.ts +2 -1
  144. package/features/modalc/modalc.component.d.ts +2 -1
  145. package/features/navigation-button/navigation-button.component.d.ts +58 -0
  146. package/features/number-input/number-input.component.d.ts +3 -1
  147. package/features/object-card/components/object-card-field/object-card-field.component.d.ts +48 -0
  148. package/features/object-card/components/object-card-main/object-card-main.component.d.ts +57 -0
  149. package/features/object-card/object-card.component.d.ts +70 -0
  150. package/features/pin-code-field/pin-code-field.component.d.ts +6 -1
  151. package/features/popover/popover.component.d.ts +4 -1
  152. package/features/profile-picture-picker/profile-picture-picker.component.d.ts +5 -1
  153. package/features/rating-scale/rating-scale.component.d.ts +9 -1
  154. package/features/row-card-list/row-card/row-card.component.d.ts +6 -1
  155. package/features/row-card-list/row-card-list.component.d.ts +4 -1
  156. package/features/select-button/select-button.component.d.ts +9 -1
  157. package/features/star-rating/star-rating.component.d.ts +9 -1
  158. package/features/table/table.component.d.ts +2 -1
  159. package/features/thumbnail/thumbnail.component.d.ts +48 -0
  160. package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +29 -0
  161. package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +13 -0
  162. package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +19 -0
  163. package/features/thumbnails/thumbnails.component.d.ts +46 -0
  164. package/features/tiered-menu/directives/tiered-menu.directive.d.ts +2 -0
  165. package/features/token-list/token-list.component.d.ts +31 -0
  166. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +11288 -6613
  167. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  168. package/package.json +12 -3
  169. package/providers/primeng-config.provider.d.ts +12 -0
  170. package/public-api.d.ts +38 -0
  171. package/src/locales/en.json +409 -1
  172. package/src/locales/es-CO.json +423 -2
  173. package/src/locales/pt.json +1037 -630
  174. package/styles/sdc-global-variables.scss +38 -0
  175. package/styles.css +132 -0
  176. package/styles.scss +2 -0
  177. package/esm2022/providers/custom/button.mjs +0 -93
  178. package/esm2022/providers/custom/toast.mjs +0 -75
  179. package/providers/custom/button.d.ts +0 -16
  180. package/providers/custom/toast.d.ts +0 -14
@@ -180,7 +180,7 @@ export class ListComponent {
180
180
  return [];
181
181
  }
182
182
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
183
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ListComponent, isStandalone: true, selector: "sdc-list", inputs: { loading: "loading", items: "items", data: "data", actions: "actions", buttons: "buttons" }, outputs: { action: "action" }, ngImport: i0, template: "<section\n class=\"sdc-list\"\n [attr.aria-label]=\"'platform.datacore.accessibility.list_view' | translate\"\n [attr.aria-busy]=\"isLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-list-loading-state\"\n [loading]=\"isLoading()\"\n [blockWindow]=\"false\"\n [indicator]=\"'dots'\"\n [blockDelayMs]=\"0\"\n [unblockDelayMs]=\"0\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\"\n >\n @if (!hasItems()) {\n <output\n class=\"sdc-list-hidden\"\n [attr.aria-label]=\"\n isLoading()\n ? ('platform.datacore.accessibility.loading_items' | translate)\n : ('platform.datacore.accessibility.no_items_found' | translate)\n \"\n ></output>\n }\n\n @if (showSkeleton()) {\n <ul class=\"sdc-list-items\" [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\">\n @for (i of skeletonRows(); track i) {\n <li class=\"sdc-list-row sdc-list-row--skeleton\">\n <article class=\"sdc-list-skeleton\" aria-hidden=\"true\"></article>\n </li>\n }\n </ul>\n } @else if (hasItems()) {\n <ul class=\"sdc-list-items\">\n @for (item of dataItems(); track item.id) {\n <li class=\"sdc-list-row\">\n <div class=\"sdc-list-content\">\n <h3 class=\"sdc-list-title\">{{ itemTitle(item) | translate }}</h3>\n <p class=\"sdc-list-subtitle\">{{ itemSubtitle(item) | translate }}</p>\n </div>\n\n @if (dataActions().length > 0) {\n <div\n class=\"sdc-list-actions\"\n [attr.aria-label]=\"\n ('platform.datacore.accessibility.item_actions' | translate) + ': ' + (itemTitle(item) | translate)\n \"\n >\n @for (action of dataActions(); track actionKey(action)) {\n <sdc-button\n (onClick)=\"onActionClick(action, item)\"\n [disabled]=\"actionDisabled(action)\"\n [icon]=\"actionIcon(action)\"\n [label]=\"actionLabel(action)\"\n [priority]=\"actionPriority(action)\"\n [attr.aria-label]=\"(actionLabel(action) | translate) + ' - ' + (itemTitle(item) | translate)\"\n [attr.disabled]=\"actionDisabledAttr(action)\"\n [attr.icon]=\"actionIcon(action) || null\"\n [attr.label]=\"actionLabel(action)\"\n [attr.priority]=\"actionPriorityAttr(action)\"\n [attr.severity]=\"actionPriorityAttr(action)\"\n [attr.data-key]=\"actionKey(action)\"\n >\n </sdc-button>\n }\n </div>\n }\n </li>\n }\n </ul>\n } @else {\n <div class=\"sdc-list-empty-wrap\">\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"'platform.datacore.empty_title'\"\n [description]=\"'platform.datacore.empty_message'\"\n >\n </sdc-empty-state>\n </div>\n }\n </sdc-loading-state>\n</section>\n", styles: [":host{display:block}.sdc-list,.sdc-list-loading-state{display:block;width:100%}.sdc-list-items{list-style:none;margin:0;padding:0}.sdc-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--sdc-list-row-height, 5.25rem);padding:1rem;background:var(--p-surface-0, #fff);border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;box-sizing:border-box}.sdc-list-row:first-child{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:not(:last-child){border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-list-row:last-child{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:only-child{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-list-row--skeleton{padding:1rem}.sdc-list-skeleton{width:100%;height:calc(var(--sdc-list-row-height, 5.25rem) - 2rem);background:transparent;border:0;box-sizing:border-box}.sdc-list-content{flex:1 1 auto;min-width:0}.sdc-list-title{font-weight:600;font-size:1rem;line-height:1.25;color:#1f2937;margin:0 0 .25rem}.sdc-list-subtitle{font-size:.75rem;color:#6b7280;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-list-actions{display:flex;align-items:center;gap:.5rem;margin-left:1rem;flex-shrink:0}::ng-deep .sdc-list-actions sdc-button,::ng-deep .sdc-list-actions button{min-width:24px;min-height:24px}.sdc-list-empty-wrap{width:100%;min-height:var(--sdc-list-empty-min-height, 12rem);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--p-surface-0, #fff)}@supports selector(:focus-visible){.sdc-list-row:has(:focus-visible){outline:2px solid currentColor;outline-offset:2px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
183
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ListComponent, isStandalone: true, selector: "sdc-list", inputs: { loading: "loading", items: "items", data: "data", actions: "actions", buttons: "buttons" }, outputs: { action: "action" }, ngImport: i0, template: "<section\n class=\"sdc-list\"\n [attr.aria-label]=\"'platform.datacore.accessibility.list_view' | translate\"\n [attr.aria-busy]=\"isLoading()\"\n>\n <sdc-loading-state\n class=\"sdc-list-loading-state\"\n [loading]=\"isLoading()\"\n [blockWindow]=\"false\"\n [indicator]=\"'dots'\"\n [blockDelayMs]=\"0\"\n [unblockDelayMs]=\"0\"\n [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\"\n >\n @if (!hasItems()) {\n <output\n class=\"sdc-list-hidden\"\n [attr.aria-label]=\"\n isLoading()\n ? ('platform.datacore.accessibility.loading_items' | translate)\n : ('platform.datacore.accessibility.no_items_found' | translate)\n \"\n ></output>\n }\n\n @if (showSkeleton()) {\n <ul class=\"sdc-list-items\" [attr.aria-label]=\"'platform.datacore.accessibility.loading_items' | translate\">\n @for (i of skeletonRows(); track i) {\n <li class=\"sdc-list-row sdc-list-row--skeleton\">\n <article class=\"sdc-list-skeleton\" aria-hidden=\"true\"></article>\n </li>\n }\n </ul>\n } @else if (hasItems()) {\n <ul class=\"sdc-list-items\">\n @for (item of dataItems(); track item.id) {\n <li class=\"sdc-list-row\">\n <div class=\"sdc-list-content\">\n <h3 class=\"sdc-list-title\">{{ itemTitle(item) | translate }}</h3>\n <p class=\"sdc-list-subtitle\">{{ itemSubtitle(item) | translate }}</p>\n </div>\n\n @if (dataActions().length > 0) {\n <div\n class=\"sdc-list-actions\"\n [attr.aria-label]=\"\n ('platform.datacore.accessibility.item_actions' | translate) + ': ' + (itemTitle(item) | translate)\n \"\n >\n @for (action of dataActions(); track actionKey(action)) {\n <sdc-button\n (onClick)=\"onActionClick(action, item)\"\n [disabled]=\"actionDisabled(action)\"\n [icon]=\"actionIcon(action)\"\n [label]=\"actionLabel(action)\"\n [priority]=\"actionPriority(action)\"\n [attr.aria-label]=\"(actionLabel(action) | translate) + ' - ' + (itemTitle(item) | translate)\"\n [attr.disabled]=\"actionDisabledAttr(action)\"\n [attr.icon]=\"actionIcon(action) || null\"\n [attr.label]=\"actionLabel(action)\"\n [attr.priority]=\"actionPriorityAttr(action)\"\n [attr.severity]=\"actionPriorityAttr(action)\"\n [attr.data-key]=\"actionKey(action)\"\n >\n </sdc-button>\n }\n </div>\n }\n </li>\n }\n </ul>\n } @else {\n <div class=\"sdc-list-empty-wrap\">\n <sdc-empty-state\n id=\"my-empty-state\"\n iconClass=\"fa fa-inbox\"\n [title]=\"'platform.datacore.empty_title'\"\n [description]=\"'platform.datacore.empty_message'\"\n >\n </sdc-empty-state>\n </div>\n }\n </sdc-loading-state>\n</section>\n", styles: [":host{display:block}.sdc-list,.sdc-list-loading-state{display:block;width:100%}.sdc-list-items{list-style:none;margin:0;padding:0}.sdc-list-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--sdc-list-row-height, 5.25rem);padding:1rem;background:var(--p-surface-0, #fff);border-inline:1px solid var(--sdc-formfield-default-border);border-block:0;border-radius:0;box-sizing:border-box}.sdc-list-row:first-child{border-block-start:1px solid var(--sdc-formfield-default-border);border-start-start-radius:var(--sdc-formfield-border-radius);border-start-end-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:not(:last-child){border-block-end:1px solid var(--sdc-formfield-default-border)}.sdc-list-row:last-child{border-block-end:1px solid var(--sdc-formfield-default-border);border-end-end-radius:var(--sdc-formfield-border-radius);border-end-start-radius:var(--sdc-formfield-border-radius)}.sdc-list-row:only-child{border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius)}.sdc-list-row--skeleton{padding:1rem}.sdc-list-skeleton{width:100%;height:calc(var(--sdc-list-row-height, 5.25rem) - 2rem);background:transparent;border:0;box-sizing:border-box}.sdc-list-content{flex:1 1 auto;min-width:0}.sdc-list-title{font-weight:600;font-size:1rem;line-height:1.25;color:#1f2937;margin:0 0 .25rem}.sdc-list-subtitle{font-size:.75rem;color:#6b7280;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-list-actions{display:flex;align-items:center;gap:.5rem;margin-left:1rem;flex-shrink:0}::ng-deep .sdc-list-actions sdc-button,::ng-deep .sdc-list-actions button{min-width:24px;min-height:24px}.sdc-list-empty-wrap{width:100%;min-height:var(--sdc-list-empty-min-height, 12rem);border:1px solid var(--sdc-formfield-default-border);border-radius:var(--sdc-formfield-border-radius);display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--p-surface-0, #fff)}@supports selector(:focus-visible){.sdc-list-row:has(:focus-visible){outline:2px solid currentColor;outline-offset:2px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: LoadingStateComponent, selector: "sdc-loading-state", inputs: ["indicator", "id", "blockWindow", "blockDelayMs", "unblockDelayMs", "loading"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
184
184
  }
185
185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ListComponent, decorators: [{
186
186
  type: Component,
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
198
198
  }], buttons: [{
199
199
  type: Input
200
200
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUN0QixNQUFNLGlDQUFpQyxDQUFDO0FBR3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFFakYsU0FBUyxVQUFVLENBQUMsS0FBYztJQUNoQyxPQUFRLHFCQUEyQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBV0QsTUFBTSxPQUFPLGFBQWE7SUFDUCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lB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M05VLGFBQWE7NEZBQWIsYUFBYSx5TUNoQzFCLCtyR0FvRkEsOG1FRDFEWSxZQUFZLCtCQUFFLGVBQWUsOFNBQUUsbUJBQW1CLG1YQUFFLHFCQUFxQixzSkFBRSxlQUFlOzs0RkFNekYsYUFBYTtrQkFUekIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sVUFBVSxXQUNYLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLENBQUMsbUJBR3BGLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBdUIvQixNQUFNO3NCQUFmLE1BQU07Z0JBR0gsT0FBTztzQkFEVixLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFNRixJQUFJO3NCQURQLEtBQUs7Z0JBTUYsT0FBTztzQkFEVixLQUFLO2dCQU1GLE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgTElTVF9ERUZBVUxUX0FDVElPTl9MQUJFTF9LRVksXG4gIExJU1RfREVGQVVMVF9QUklPUklUWSxcbiAgTElTVF9ERUZBVUxUX1NLRUxFVE9OX1JPV1MsXG4gIExJU1RfTUlOX1NLRUxFVE9OX1JPV1MsXG4gIExJU1RfUFJJT1JJVFlfT1BUSU9OU1xufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9saXN0LmNvbnN0JztcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9idXR0b24udHlwZSc7XG5pbXBvcnQgeyBMaXN0SXRlbSwgTGlzdEl0ZW1BY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2xpc3RzLnR5cGUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbkxpa2UgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2Jvb2xlYW4udXRpbCc7XG5pbXBvcnQgeyBodW1hbml6ZVRleHQsIG5vcm1hbGl6ZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL3N0cmluZy51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy1zdGF0ZS9sb2FkaW5nLXN0YXRlLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGlzUHJpb3JpdHkodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCdXR0b25Qcmlvcml0eSB7XG4gIHJldHVybiAoTElTVF9QUklPUklUWV9PUFRJT05TIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhTdHJpbmcodmFsdWUpKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWxpc3QnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnQsIExvYWRpbmdTdGF0ZUNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3RhdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zU3RhdGUgPSBzaWduYWw8TGlzdEl0ZW1bXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnNTdGF0ZSA9IHNpZ25hbDxMaXN0SXRlbUFjdGlvbltdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFzdEtub3duUm93cyA9IHNpZ25hbChMSVNUX0RFRkFVTFRfU0tFTEVUT05fUk9XUyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXRlbXNTdGF0ZSgpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY3Rpb25zU3RhdGUoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMubG9hZGluZ1N0YXRlKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLml0ZW1zU3RhdGUoKS5sZW5ndGggPiAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dTa2VsZXRvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaGFzSXRlbXMoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNrZWxldG9uUm93cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmcm9tSXRlbXMgPSB0aGlzLml0ZW1zU3RhdGUoKS5sZW5ndGg7XG4gICAgY29uc3Qgcm93cyA9IGZyb21JdGVtcyA+IDAgPyBmcm9tSXRlbXMgOiB0aGlzLmxhc3RLbm93blJvd3MoKTtcbiAgICBjb25zdCB0b3RhbCA9IE1hdGgubWF4KHJvd3MsIExJU1RfTUlOX1NLRUxFVE9OX1JPV1MpO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IHRvdGFsIH0sIChfLCBpbmRleCkgPT4gaW5kZXgpO1xuICB9KTtcblxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgaWQ6IHN0cmluZzsgaXRlbTogTGlzdEl0ZW0gfT4oKTtcblxuICBASW5wdXQoKVxuICBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS5zZXQoY29lcmNlQm9vbGVhbkxpa2UodmFsdWUpKTtcbiAgfVxuXG4gIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGl0ZW1zKHZhbHVlOiBMaXN0SXRlbVtdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2V0SXRlbXModmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGEodmFsdWU6IExpc3RJdGVtW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRJdGVtcyh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgYWN0aW9ucyh2YWx1ZTogTGlzdEl0ZW1BY3Rpb25bXSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNldEFjdGlvbnModmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGJ1dHRvbnModmFsdWU6IExpc3RJdGVtQWN0aW9uW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRBY3Rpb25zKHZhbHVlKTtcbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24sIGl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuYWN0aW9uTmFtZShhY3Rpb25JdGVtKTtcbiAgICBjb25zdCBpZCA9IFN0cmluZyhpdGVtLmlkID8/ICcnKTtcblxuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBuYW1lLCBpZCwgaXRlbSB9KTtcblxuICAgIGNvbnN0IGNhbGxiYWNrID0gYWN0aW9uSXRlbS5hY3Rpb247XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjYWxsYmFjayhuYW1lLCBpZCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIGNhbGxiYWNrIGVycm9ycyB0byBwcmVzZXJ2ZSBsaXN0IGludGVyYWN0aW9uLlxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25LZXkoYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmFjdGlvbk5hbWUoYWN0aW9uSXRlbSksXG4gICAgICB0aGlzLmFjdGlvbkxhYmVsKGFjdGlvbkl0ZW0pLFxuICAgICAgdGhpcy5hY3Rpb25JY29uKGFjdGlvbkl0ZW0pLFxuICAgICAgU3RyaW5nKHRoaXMuYWN0aW9uUHJpb3JpdHkoYWN0aW9uSXRlbSkpLFxuICAgICAgU3RyaW5nKHRoaXMuYWN0aW9uRGlzYWJsZWQoYWN0aW9uSXRlbSkpXG4gICAgXS5qb2luKCd8Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aW9uTGFiZWwoYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhdyA9IGFjdGlvbkl0ZW0ubGFiZWwgPz8gYWN0aW9uSXRlbS50ZXh0O1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVUZXh0KHJhdyk7XG5cbiAgICBpZiAobm9ybWFsaXplZCkge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZnJvbU5hbWUgPSBub3JtYWxpemVUZXh0KGFjdGlvbkl0ZW0ubmFtZSk7XG5cbiAgICBpZiAoZnJvbU5hbWUpIHtcbiAgICAgIHJldHVybiBodW1hbml6ZVRleHQoZnJvbU5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBMSVNUX0RFRkFVTFRfQUNUSU9OX0xBQkVMX0tFWTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25JY29uKGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgbm9ybWFsaXplVGV4dChhY3Rpb25JdGVtLmljb24pID8/XG4gICAgICBub3JtYWxpemVUZXh0KGFjdGlvbkl0ZW0uaWNvbkNsYXNzKSA/P1xuICAgICAgbm9ybWFsaXplVGV4dChhY3Rpb25JdGVtLmxlZnRJY29uKSA/P1xuICAgICAgJydcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvblByaW9yaXR5KGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogQnV0dG9uUHJpb3JpdHkge1xuICAgIGNvbnN0IHByaW9yaXR5ID0gbm9ybWFsaXplVGV4dChhY3Rpb25JdGVtLnByaW9yaXR5KTtcblxuICAgIGlmIChpc1ByaW9yaXR5KHByaW9yaXR5KSkge1xuICAgICAgcmV0dXJuIHByaW9yaXR5O1xuICAgIH1cblxuICAgIHJldHVybiBMSVNUX0RFRkFVTFRfUFJJT1JJVFk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aW9uUHJpb3JpdHlBdHRyKGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMuYWN0aW9uUHJpb3JpdHkoYWN0aW9uSXRlbSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkRpc2FibGVkKGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5MaWtlKGFjdGlvbkl0ZW0uZGlzYWJsZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkRpc2FibGVkQXR0cihhY3Rpb25JdGVtOiBMaXN0SXRlbUFjdGlvbik6ICcnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uRGlzYWJsZWQoYWN0aW9uSXRlbSkgPyAnJyA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXRlbVRpdGxlKGl0ZW06IExpc3RJdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS50aXRsZSA/PyAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBpdGVtU3VidGl0bGUoaXRlbTogTGlzdEl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLnN1YnRpdGxlID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtcyh2YWx1ZTogTGlzdEl0ZW1bXSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlQXJyYXk8TGlzdEl0ZW0+KHZhbHVlID8/IFtdKTtcblxuICAgIHRoaXMuaXRlbXNTdGF0ZS5zZXQocGFyc2VkKTtcblxuICAgIGlmIChwYXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sYXN0S25vd25Sb3dzLnNldChwYXJzZWQubGVuZ3RoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGlvbnModmFsdWU6IExpc3RJdGVtQWN0aW9uW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3QgYXJyID0gdGhpcy5wYXJzZUFycmF5PExpc3RJdGVtQWN0aW9uPih2YWx1ZSA/PyBbXSk7XG5cbiAgICB0aGlzLmFjdGlvbnNTdGF0ZS5zZXQoYXJyLm1hcCgoYWN0aW9uSXRlbSkgPT4gdGhpcy5ub3JtYWxpemVBY3Rpb24oYWN0aW9uSXRlbSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aW9uTmFtZShhY3Rpb25JdGVtOiBMaXN0SXRlbUFjdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZSA9IG5vcm1hbGl6ZVRleHQoYWN0aW9uSXRlbS5uYW1lKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25MYWJlbChhY3Rpb25JdGVtKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVBY3Rpb24oYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24pOiBMaXN0SXRlbUFjdGlvbiB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLmFjdGlvbkxhYmVsKGFjdGlvbkl0ZW0pO1xuICAgIGNvbnN0IGljb24gPSB0aGlzLmFjdGlvbkljb24oYWN0aW9uSXRlbSk7XG4gICAgY29uc3QgcHJpb3JpdHkgPSB0aGlzLmFjdGlvblByaW9yaXR5KGFjdGlvbkl0ZW0pO1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmFjdGlvbk5hbWUoYWN0aW9uSXRlbSk7XG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLmFjdGlvbkRpc2FibGVkKGFjdGlvbkl0ZW0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbkl0ZW0sXG4gICAgICBuYW1lLFxuICAgICAgbGFiZWwsXG4gICAgICB0ZXh0OiBsYWJlbCxcbiAgICAgIGljb24sXG4gICAgICBpY29uQ2xhc3M6IGljb24sXG4gICAgICBsZWZ0SWNvbjogaWNvbixcbiAgICAgIHByaW9yaXR5LFxuICAgICAgZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFycmF5PFQ+KHZhbHVlOiBUW10gfCBzdHJpbmcpOiBUW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCByYXcgPSB2YWx1ZS50cmltKCk7XG5cbiAgICAgIGlmICghcmF3KSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXR0ZW1wdHMgPSBbXG4gICAgICAgIHJhdyxcbiAgICAgICAgcmF3LnJlcGxhY2UoL1xcXFxuL2csICcnKSxcbiAgICAgICAgcmF3LnJlcGxhY2UoLyZxdW90Oy9nLCAnXCInKSxcbiAgICAgICAgcmF3LnJlcGxhY2UoL1xcXFxuL2csICcnKS5yZXBsYWNlKC8mcXVvdDsvZywgJ1wiJyksXG4gICAgICAgIHJhdy5yZXBsYWNlKC9cXFxcbi9nLCAnJykucmVwbGFjZSgvJy9nLCAnXCInKVxuICAgICAgXTtcblxuICAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgYXR0ZW1wdHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGNhbmRpZGF0ZSk7XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkIGFzIFRbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyc2VkICYmIHR5cGVvZiBwYXJzZWQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gW3BhcnNlZCBhcyBUXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIFRyeSB0aGUgbmV4dCBwYXJzaW5nIHN0cmF0ZWd5IGJlZm9yZSBnaXZpbmcgdXAuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG4gIGNsYXNzPVwic2RjLWxpc3RcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lmxpc3RfdmlldycgfCB0cmFuc2xhdGVcIlxuICBbYXR0ci5hcmlhLWJ1c3ldPVwiaXNMb2FkaW5nKClcIlxuPlxuICA8c2RjLWxvYWRpbmctc3RhdGVcbiAgICBjbGFzcz1cInNkYy1saXN0LWxvYWRpbmctc3RhdGVcIlxuICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZygpXCJcbiAgICBbYmxvY2tXaW5kb3ddPVwiZmFsc2VcIlxuICAgIFtpbmRpY2F0b3JdPVwiJ2RvdHMnXCJcbiAgICBbYmxvY2tEZWxheU1zXT1cIjBcIlxuICAgIFt1bmJsb2NrRGVsYXlNc109XCIwXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmxvYWRpbmdfaXRlbXMnIHwgdHJhbnNsYXRlXCJcbiAgPlxuICAgIEBpZiAoIWhhc0l0ZW1zKCkpIHtcbiAgICAgIDxvdXRwdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtbGlzdC1oaWRkZW5cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgIGlzTG9hZGluZygpXG4gICAgICAgICAgICA/ICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sb2FkaW5nX2l0ZW1zJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm5vX2l0ZW1zX2ZvdW5kJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICAgID48L291dHB1dD5cbiAgICB9XG5cbiAgICBAaWYgKHNob3dTa2VsZXRvbigpKSB7XG4gICAgICA8dWwgY2xhc3M9XCJzZGMtbGlzdC1pdGVtc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubG9hZGluZ19pdGVtcycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgQGZvciAoaSBvZiBza2VsZXRvblJvd3MoKTsgdHJhY2sgaSkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cInNkYy1saXN0LXJvdyBzZGMtbGlzdC1yb3ctLXNrZWxldG9uXCI+XG4gICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInNkYy1saXN0LXNrZWxldG9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9hcnRpY2xlPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfSBAZWxzZSBpZiAoaGFzSXRlbXMoKSkge1xuICAgICAgPHVsIGNsYXNzPVwic2RjLWxpc3QtaXRlbXNcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhSXRlbXMoKTsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cInNkYy1saXN0LXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1saXN0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic2RjLWxpc3QtdGl0bGVcIj57eyBpdGVtVGl0bGUoaXRlbSkgfCB0cmFuc2xhdGUgfX08L2gzPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInNkYy1saXN0LXN1YnRpdGxlXCI+e3sgaXRlbVN1YnRpdGxlKGl0ZW0pIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZGF0YUFjdGlvbnMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNkYy1saXN0LWFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuaXRlbV9hY3Rpb25zJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgKGl0ZW1UaXRsZShpdGVtKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGRhdGFBY3Rpb25zKCk7IHRyYWNrIGFjdGlvbktleShhY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbiwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWQoYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbkljb24oYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhY3Rpb25MYWJlbChhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cImFjdGlvblByaW9yaXR5KGFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihhY3Rpb25MYWJlbChhY3Rpb24pIHwgdHJhbnNsYXRlKSArICcgLSAnICsgKGl0ZW1UaXRsZShpdGVtKSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZEF0dHIoYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmljb25dPVwiYWN0aW9uSWNvbihhY3Rpb24pIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5sYWJlbF09XCJhY3Rpb25MYWJlbChhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucHJpb3JpdHldPVwiYWN0aW9uUHJpb3JpdHlBdHRyKGFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5zZXZlcml0eV09XCJhY3Rpb25Qcmlvcml0eUF0dHIoYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEta2V5XT1cImFjdGlvbktleShhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvc2RjLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWxpc3QtZW1wdHktd3JhcFwiPlxuICAgICAgICA8c2RjLWVtcHR5LXN0YXRlXG4gICAgICAgICAgaWQ9XCJteS1lbXB0eS1zdGF0ZVwiXG4gICAgICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtaW5ib3hcIlxuICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm0uZGF0YWNvcmUuZW1wdHlfdGl0bGUnXCJcbiAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmVtcHR5X21lc3NhZ2UnXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NkYy1lbXB0eS1zdGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9zZGMtbG9hZGluZy1zdGF0ZT5cbjwvc2VjdGlvbj5cbiJdfQ==
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xpc3QvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUN0QixNQUFNLGlDQUFpQyxDQUFDO0FBR3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFFakYsU0FBUyxVQUFVLENBQUMsS0FBYztJQUNoQyxPQUFRLHFCQUEyQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBV0QsTUFBTSxPQUFPLGFBQWE7SUFDUCxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lB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M05VLGFBQWE7NEZBQWIsYUFBYSx5TUNoQzFCLCtyR0FvRkEsOG1FRDFEWSxZQUFZLCtCQUFFLGVBQWUseVRBQUUsbUJBQW1CLG1YQUFFLHFCQUFxQixzSkFBRSxlQUFlOzs0RkFNekYsYUFBYTtrQkFUekIsU0FBUztpQ0FDSSxJQUFJLFlBQ04sVUFBVSxXQUNYLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLENBQUMsbUJBR3BGLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBdUIvQixNQUFNO3NCQUFmLE1BQU07Z0JBR0gsT0FBTztzQkFEVixLQUFLO2dCQVVGLEtBQUs7c0JBRFIsS0FBSztnQkFNRixJQUFJO3NCQURQLEtBQUs7Z0JBTUYsT0FBTztzQkFEVixLQUFLO2dCQU1GLE9BQU87c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgTElTVF9ERUZBVUxUX0FDVElPTl9MQUJFTF9LRVksXG4gIExJU1RfREVGQVVMVF9QUklPUklUWSxcbiAgTElTVF9ERUZBVUxUX1NLRUxFVE9OX1JPV1MsXG4gIExJU1RfTUlOX1NLRUxFVE9OX1JPV1MsXG4gIExJU1RfUFJJT1JJVFlfT1BUSU9OU1xufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9saXN0LmNvbnN0JztcbmltcG9ydCB7IEJ1dHRvblByaW9yaXR5IH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9idXR0b24udHlwZSc7XG5pbXBvcnQgeyBMaXN0SXRlbSwgTGlzdEl0ZW1BY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2xpc3RzLnR5cGUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbkxpa2UgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2Jvb2xlYW4udXRpbCc7XG5pbXBvcnQgeyBodW1hbml6ZVRleHQsIG5vcm1hbGl6ZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL3N0cmluZy51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZy1zdGF0ZS9sb2FkaW5nLXN0YXRlLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGlzUHJpb3JpdHkodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCdXR0b25Qcmlvcml0eSB7XG4gIHJldHVybiAoTElTVF9QUklPUklUWV9PUFRJT05TIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhTdHJpbmcodmFsdWUpKTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWxpc3QnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIEVtcHR5U3RhdGVDb21wb25lbnQsIExvYWRpbmdTdGF0ZUNvbXBvbmVudCwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU3RhdGUgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zU3RhdGUgPSBzaWduYWw8TGlzdEl0ZW1bXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbnNTdGF0ZSA9IHNpZ25hbDxMaXN0SXRlbUFjdGlvbltdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFzdEtub3duUm93cyA9IHNpZ25hbChMSVNUX0RFRkFVTFRfU0tFTEVUT05fUk9XUyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXRlbXNTdGF0ZSgpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hY3Rpb25zU3RhdGUoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMubG9hZGluZ1N0YXRlKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLml0ZW1zU3RhdGUoKS5sZW5ndGggPiAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dTa2VsZXRvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaGFzSXRlbXMoKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNrZWxldG9uUm93cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmcm9tSXRlbXMgPSB0aGlzLml0ZW1zU3RhdGUoKS5sZW5ndGg7XG4gICAgY29uc3Qgcm93cyA9IGZyb21JdGVtcyA+IDAgPyBmcm9tSXRlbXMgOiB0aGlzLmxhc3RLbm93blJvd3MoKTtcbiAgICBjb25zdCB0b3RhbCA9IE1hdGgubWF4KHJvd3MsIExJU1RfTUlOX1NLRUxFVE9OX1JPV1MpO1xuXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IHRvdGFsIH0sIChfLCBpbmRleCkgPT4gaW5kZXgpO1xuICB9KTtcblxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgaWQ6IHN0cmluZzsgaXRlbTogTGlzdEl0ZW0gfT4oKTtcblxuICBASW5wdXQoKVxuICBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmxvYWRpbmdTdGF0ZS5zZXQoY29lcmNlQm9vbGVhbkxpa2UodmFsdWUpKTtcbiAgfVxuXG4gIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRpbmdTdGF0ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGl0ZW1zKHZhbHVlOiBMaXN0SXRlbVtdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2V0SXRlbXModmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGEodmFsdWU6IExpc3RJdGVtW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRJdGVtcyh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgYWN0aW9ucyh2YWx1ZTogTGlzdEl0ZW1BY3Rpb25bXSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNldEFjdGlvbnModmFsdWUpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGJ1dHRvbnModmFsdWU6IExpc3RJdGVtQWN0aW9uW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZXRBY3Rpb25zKHZhbHVlKTtcbiAgfVxuXG4gIG9uQWN0aW9uQ2xpY2soYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24sIGl0ZW06IExpc3RJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuYWN0aW9uTmFtZShhY3Rpb25JdGVtKTtcbiAgICBjb25zdCBpZCA9IFN0cmluZyhpdGVtLmlkID8/ICcnKTtcblxuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBuYW1lLCBpZCwgaXRlbSB9KTtcblxuICAgIGNvbnN0IGNhbGxiYWNrID0gYWN0aW9uSXRlbS5hY3Rpb247XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjYWxsYmFjayhuYW1lLCBpZCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gSWdub3JlIGNhbGxiYWNrIGVycm9ycyB0byBwcmVzZXJ2ZSBsaXN0IGludGVyYWN0aW9uLlxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25LZXkoYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmFjdGlvbk5hbWUoYWN0aW9uSXRlbSksXG4gICAgICB0aGlzLmFjdGlvbkxhYmVsKGFjdGlvbkl0ZW0pLFxuICAgICAgdGhpcy5hY3Rpb25JY29uKGFjdGlvbkl0ZW0pLFxuICAgICAgU3RyaW5nKHRoaXMuYWN0aW9uUHJpb3JpdHkoYWN0aW9uSXRlbSkpLFxuICAgICAgU3RyaW5nKHRoaXMuYWN0aW9uRGlzYWJsZWQoYWN0aW9uSXRlbSkpXG4gICAgXS5qb2luKCd8Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aW9uTGFiZWwoYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhdyA9IGFjdGlvbkl0ZW0ubGFiZWwgPz8gYWN0aW9uSXRlbS50ZXh0O1xuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVUZXh0KHJhdyk7XG5cbiAgICBpZiAobm9ybWFsaXplZCkge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZnJvbU5hbWUgPSBub3JtYWxpemVUZXh0KGFjdGlvbkl0ZW0ubmFtZSk7XG5cbiAgICBpZiAoZnJvbU5hbWUpIHtcbiAgICAgIHJldHVybiBodW1hbml6ZVRleHQoZnJvbU5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBMSVNUX0RFRkFVTFRfQUNUSU9OX0xBQkVMX0tFWTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3Rpb25JY29uKGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgbm9ybWFsaXplVGV4dChhY3Rpb25JdGVtLmljb24pID8/XG4gICAgICBub3JtYWxpemVUZXh0KGFjdGlvbkl0ZW0uaWNvbkNsYXNzKSA/P1xuICAgICAgbm9ybWFsaXplVGV4dChhY3Rpb25JdGVtLmxlZnRJY29uKSA/P1xuICAgICAgJydcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvblByaW9yaXR5KGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogQnV0dG9uUHJpb3JpdHkge1xuICAgIGNvbnN0IHByaW9yaXR5ID0gbm9ybWFsaXplVGV4dChhY3Rpb25JdGVtLnByaW9yaXR5KTtcblxuICAgIGlmIChpc1ByaW9yaXR5KHByaW9yaXR5KSkge1xuICAgICAgcmV0dXJuIHByaW9yaXR5O1xuICAgIH1cblxuICAgIHJldHVybiBMSVNUX0RFRkFVTFRfUFJJT1JJVFk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aW9uUHJpb3JpdHlBdHRyKGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU3RyaW5nKHRoaXMuYWN0aW9uUHJpb3JpdHkoYWN0aW9uSXRlbSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkRpc2FibGVkKGFjdGlvbkl0ZW06IExpc3RJdGVtQWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5MaWtlKGFjdGlvbkl0ZW0uZGlzYWJsZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkRpc2FibGVkQXR0cihhY3Rpb25JdGVtOiBMaXN0SXRlbUFjdGlvbik6ICcnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uRGlzYWJsZWQoYWN0aW9uSXRlbSkgPyAnJyA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXRlbVRpdGxlKGl0ZW06IExpc3RJdGVtKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS50aXRsZSA/PyAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBpdGVtU3VidGl0bGUoaXRlbTogTGlzdEl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLnN1YnRpdGxlID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtcyh2YWx1ZTogTGlzdEl0ZW1bXSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlQXJyYXk8TGlzdEl0ZW0+KHZhbHVlID8/IFtdKTtcblxuICAgIHRoaXMuaXRlbXNTdGF0ZS5zZXQocGFyc2VkKTtcblxuICAgIGlmIChwYXJzZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sYXN0S25vd25Sb3dzLnNldChwYXJzZWQubGVuZ3RoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGlvbnModmFsdWU6IExpc3RJdGVtQWN0aW9uW10gfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgY29uc3QgYXJyID0gdGhpcy5wYXJzZUFycmF5PExpc3RJdGVtQWN0aW9uPih2YWx1ZSA/PyBbXSk7XG5cbiAgICB0aGlzLmFjdGlvbnNTdGF0ZS5zZXQoYXJyLm1hcCgoYWN0aW9uSXRlbSkgPT4gdGhpcy5ub3JtYWxpemVBY3Rpb24oYWN0aW9uSXRlbSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aW9uTmFtZShhY3Rpb25JdGVtOiBMaXN0SXRlbUFjdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgbmFtZSA9IG5vcm1hbGl6ZVRleHQoYWN0aW9uSXRlbS5uYW1lKTtcblxuICAgIGlmIChuYW1lKSB7XG4gICAgICByZXR1cm4gbmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25MYWJlbChhY3Rpb25JdGVtKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVBY3Rpb24oYWN0aW9uSXRlbTogTGlzdEl0ZW1BY3Rpb24pOiBMaXN0SXRlbUFjdGlvbiB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLmFjdGlvbkxhYmVsKGFjdGlvbkl0ZW0pO1xuICAgIGNvbnN0IGljb24gPSB0aGlzLmFjdGlvbkljb24oYWN0aW9uSXRlbSk7XG4gICAgY29uc3QgcHJpb3JpdHkgPSB0aGlzLmFjdGlvblByaW9yaXR5KGFjdGlvbkl0ZW0pO1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmFjdGlvbk5hbWUoYWN0aW9uSXRlbSk7XG4gICAgY29uc3QgZGlzYWJsZWQgPSB0aGlzLmFjdGlvbkRpc2FibGVkKGFjdGlvbkl0ZW0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjdGlvbkl0ZW0sXG4gICAgICBuYW1lLFxuICAgICAgbGFiZWwsXG4gICAgICB0ZXh0OiBsYWJlbCxcbiAgICAgIGljb24sXG4gICAgICBpY29uQ2xhc3M6IGljb24sXG4gICAgICBsZWZ0SWNvbjogaWNvbixcbiAgICAgIHByaW9yaXR5LFxuICAgICAgZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFycmF5PFQ+KHZhbHVlOiBUW10gfCBzdHJpbmcpOiBUW10ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCByYXcgPSB2YWx1ZS50cmltKCk7XG5cbiAgICAgIGlmICghcmF3KSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYXR0ZW1wdHMgPSBbXG4gICAgICAgIHJhdyxcbiAgICAgICAgcmF3LnJlcGxhY2UoL1xcXFxuL2csICcnKSxcbiAgICAgICAgcmF3LnJlcGxhY2UoLyZxdW90Oy9nLCAnXCInKSxcbiAgICAgICAgcmF3LnJlcGxhY2UoL1xcXFxuL2csICcnKS5yZXBsYWNlKC8mcXVvdDsvZywgJ1wiJyksXG4gICAgICAgIHJhdy5yZXBsYWNlKC9cXFxcbi9nLCAnJykucmVwbGFjZSgvJy9nLCAnXCInKVxuICAgICAgXTtcblxuICAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgYXR0ZW1wdHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGNhbmRpZGF0ZSk7XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJzZWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkIGFzIFRbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyc2VkICYmIHR5cGVvZiBwYXJzZWQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gW3BhcnNlZCBhcyBUXTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIFRyeSB0aGUgbmV4dCBwYXJzaW5nIHN0cmF0ZWd5IGJlZm9yZSBnaXZpbmcgdXAuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG4gIGNsYXNzPVwic2RjLWxpc3RcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lmxpc3RfdmlldycgfCB0cmFuc2xhdGVcIlxuICBbYXR0ci5hcmlhLWJ1c3ldPVwiaXNMb2FkaW5nKClcIlxuPlxuICA8c2RjLWxvYWRpbmctc3RhdGVcbiAgICBjbGFzcz1cInNkYy1saXN0LWxvYWRpbmctc3RhdGVcIlxuICAgIFtsb2FkaW5nXT1cImlzTG9hZGluZygpXCJcbiAgICBbYmxvY2tXaW5kb3ddPVwiZmFsc2VcIlxuICAgIFtpbmRpY2F0b3JdPVwiJ2RvdHMnXCJcbiAgICBbYmxvY2tEZWxheU1zXT1cIjBcIlxuICAgIFt1bmJsb2NrRGVsYXlNc109XCIwXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LmxvYWRpbmdfaXRlbXMnIHwgdHJhbnNsYXRlXCJcbiAgPlxuICAgIEBpZiAoIWhhc0l0ZW1zKCkpIHtcbiAgICAgIDxvdXRwdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtbGlzdC1oaWRkZW5cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgIGlzTG9hZGluZygpXG4gICAgICAgICAgICA/ICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5sb2FkaW5nX2l0ZW1zJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5Lm5vX2l0ZW1zX2ZvdW5kJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgXCJcbiAgICAgID48L291dHB1dD5cbiAgICB9XG5cbiAgICBAaWYgKHNob3dTa2VsZXRvbigpKSB7XG4gICAgICA8dWwgY2xhc3M9XCJzZGMtbGlzdC1pdGVtc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubG9hZGluZ19pdGVtcycgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgQGZvciAoaSBvZiBza2VsZXRvblJvd3MoKTsgdHJhY2sgaSkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cInNkYy1saXN0LXJvdyBzZGMtbGlzdC1yb3ctLXNrZWxldG9uXCI+XG4gICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cInNkYy1saXN0LXNrZWxldG9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9hcnRpY2xlPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfSBAZWxzZSBpZiAoaGFzSXRlbXMoKSkge1xuICAgICAgPHVsIGNsYXNzPVwic2RjLWxpc3QtaXRlbXNcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhSXRlbXMoKTsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cInNkYy1saXN0LXJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1saXN0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic2RjLWxpc3QtdGl0bGVcIj57eyBpdGVtVGl0bGUoaXRlbSkgfCB0cmFuc2xhdGUgfX08L2gzPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInNkYy1saXN0LXN1YnRpdGxlXCI+e3sgaXRlbVN1YnRpdGxlKGl0ZW0pIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoZGF0YUFjdGlvbnMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNkYy1saXN0LWFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAoJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkuaXRlbV9hY3Rpb25zJyB8IHRyYW5zbGF0ZSkgKyAnOiAnICsgKGl0ZW1UaXRsZShpdGVtKSB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGRhdGFBY3Rpb25zKCk7IHRyYWNrIGFjdGlvbktleShhY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbiwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uRGlzYWJsZWQoYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdGlvbkljb24oYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJhY3Rpb25MYWJlbChhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgW3ByaW9yaXR5XT1cImFjdGlvblByaW9yaXR5KGFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihhY3Rpb25MYWJlbChhY3Rpb24pIHwgdHJhbnNsYXRlKSArICcgLSAnICsgKGl0ZW1UaXRsZShpdGVtKSB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJhY3Rpb25EaXNhYmxlZEF0dHIoYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmljb25dPVwiYWN0aW9uSWNvbihhY3Rpb24pIHx8IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5sYWJlbF09XCJhY3Rpb25MYWJlbChhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucHJpb3JpdHldPVwiYWN0aW9uUHJpb3JpdHlBdHRyKGFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5zZXZlcml0eV09XCJhY3Rpb25Qcmlvcml0eUF0dHIoYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEta2V5XT1cImFjdGlvbktleShhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvc2RjLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIH1cbiAgICAgIDwvdWw+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWxpc3QtZW1wdHktd3JhcFwiPlxuICAgICAgICA8c2RjLWVtcHR5LXN0YXRlXG4gICAgICAgICAgaWQ9XCJteS1lbXB0eS1zdGF0ZVwiXG4gICAgICAgICAgaWNvbkNsYXNzPVwiZmEgZmEtaW5ib3hcIlxuICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm0uZGF0YWNvcmUuZW1wdHlfdGl0bGUnXCJcbiAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ3BsYXRmb3JtLmRhdGFjb3JlLmVtcHR5X21lc3NhZ2UnXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NkYy1lbXB0eS1zdGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9zZGMtbG9hZGluZy1zdGF0ZT5cbjwvc2VjdGlvbj5cbiJdfQ==
@@ -97,7 +97,7 @@ export class LocalizedNumberInputComponent extends InputsComponent {
97
97
  useExisting: forwardRef(() => LocalizedNumberInputComponent),
98
98
  multi: true
99
99
  }
100
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-localized-number-input\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-localized-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-localized-number-input__label\">\n <span class=\"sdc-localized-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n </div>\n }\n\n <input\n class=\"sdc-localized-number-input__input\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [class.sdc-localized-number-input__input--invalid]=\"invalid || hasFormatError\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid || hasFormatError ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey() || hasFormatError) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{\n hasFormatError\n ? ('platform.datacore.localized_number_input.errors.invalid_number' | translate)\n : (messageKey() | translate)\n }}\n </small>\n }\n </div>\n", styles: [".sdc-localized-number-input .sdc-localized-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-localized-number-input .sdc-localized-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-localized-number-input .sdc-localized-number-input__label-text{display:inline-flex;align-items:center}.sdc-localized-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-localized-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-localized-number-input .sdc-localized-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.sdc-localized-number-input .sdc-localized-number-input__input:focus,.sdc-localized-number-input .sdc-localized-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-localized-number-input .sdc-localized-number-input__input--invalid,.sdc-localized-number-input .sdc-localized-number-input__input[aria-invalid=true]{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
100
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-localized-number-input\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-localized-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-localized-number-input__label\">\n <span class=\"sdc-localized-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n </div>\n }\n\n <input\n class=\"sdc-localized-number-input__input\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [class.sdc-localized-number-input__input--invalid]=\"invalid || hasFormatError\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid || hasFormatError ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey() || hasFormatError) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{\n hasFormatError\n ? ('platform.datacore.localized_number_input.errors.invalid_number' | translate)\n : (messageKey() | translate)\n }}\n </small>\n }\n </div>\n", styles: [":host{display:block;min-width:0;max-width:100%}.sdc-localized-number-input .sdc-localized-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-localized-number-input .sdc-localized-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-localized-number-input .sdc-localized-number-input__label-text{display:inline-flex;align-items:center}.sdc-localized-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-localized-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-localized-number-input .sdc-localized-number-input__input{width:100%;min-width:0;box-sizing:border-box!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.sdc-localized-number-input .sdc-localized-number-input__input:focus,.sdc-localized-number-input .sdc-localized-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-localized-number-input .sdc-localized-number-input__input--invalid,.sdc-localized-number-input .sdc-localized-number-input__input[aria-invalid=true]{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
101
  }
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalizedNumberInputComponent, decorators: [{
103
103
  type: Component,
@@ -107,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
107
107
  useExisting: forwardRef(() => LocalizedNumberInputComponent),
108
108
  multi: true
109
109
  }
110
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-localized-number-input\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-localized-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-localized-number-input__label\">\n <span class=\"sdc-localized-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n </div>\n }\n\n <input\n class=\"sdc-localized-number-input__input\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [class.sdc-localized-number-input__input--invalid]=\"invalid || hasFormatError\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid || hasFormatError ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey() || hasFormatError) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{\n hasFormatError\n ? ('platform.datacore.localized_number_input.errors.invalid_number' | translate)\n : (messageKey() | translate)\n }}\n </small>\n }\n </div>\n", styles: [".sdc-localized-number-input .sdc-localized-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-localized-number-input .sdc-localized-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-localized-number-input .sdc-localized-number-input__label-text{display:inline-flex;align-items:center}.sdc-localized-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-localized-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-localized-number-input .sdc-localized-number-input__input{width:100%;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.sdc-localized-number-input .sdc-localized-number-input__input:focus,.sdc-localized-number-input .sdc-localized-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-localized-number-input .sdc-localized-number-input__input--invalid,.sdc-localized-number-input .sdc-localized-number-input__input[aria-invalid=true]{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important}\n"] }]
110
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-localized-number-input\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-localized-number-input__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-localized-number-input__label\">\n <span class=\"sdc-localized-number-input__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n </div>\n }\n\n <input\n class=\"sdc-localized-number-input__input\"\n (input)=\"onNativeInput($event)\"\n (blur)=\"onBlur()\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [class.sdc-localized-number-input__input--invalid]=\"invalid || hasFormatError\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"displayValue\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"required ? 'true' : null\"\n [attr.aria-invalid]=\"invalid || hasFormatError ? 'true' : null\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n />\n\n @if (messageKey() || hasFormatError) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{\n hasFormatError\n ? ('platform.datacore.localized_number_input.errors.invalid_number' | translate)\n : (messageKey() | translate)\n }}\n </small>\n }\n </div>\n", styles: [":host{display:block;min-width:0;max-width:100%}.sdc-localized-number-input .sdc-localized-number-input__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-localized-number-input .sdc-localized-number-input__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:1;padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-localized-number-input .sdc-localized-number-input__label-text{display:inline-flex;align-items:center}.sdc-localized-number-input .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:400}.sdc-localized-number-input .sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sdc-localized-number-input .sdc-localized-number-input__input{width:100%;min-width:0;box-sizing:border-box!important;border:1px solid var(--sdc-formfield-default-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;padding:0 var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.sdc-localized-number-input .sdc-localized-number-input__input:focus,.sdc-localized-number-input .sdc-localized-number-input__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff))!important;box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))!important}.sdc-localized-number-input .sdc-localized-number-input__input--invalid,.sdc-localized-number-input .sdc-localized-number-input__input[aria-invalid=true]{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))!important}\n"] }]
111
111
  }], propDecorators: { decimalSeparator: [{
112
112
  type: Input
113
113
  }], thousandsSeparator: [{
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
123
123
  }], infoTooltipEvent: [{
124
124
  type: Input
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xvY2FsaXplZC1udW1iZXItaW5wdXQvbG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xvY2FsaXplZC1udW1iZXItaW5wdXQvbG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUVqRSxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQUM1QyxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQztBQWtCM0MsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGVBQXVCO0lBQ3ZELFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxnQkFBZ0IsQ0FBVTtJ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c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgTE9DQUxJWkVEX05VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTiB9IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2xvY2FsaXplZC1udW1iZXItaW5wdXQuY29uc3QnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgZ2V0TnVtZXJpY0xvY2FsZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbnVtZXJpYy51dGlsJztcblxuY29uc3QgTE9DQUxJWkVEX05VTUJFUl9ERUNJTUFMX1NBTVBMRSA9IDEuMTtcbmNvbnN0IExPQ0FMSVpFRF9OVU1CRVJfR1JPVVBfU0FNUExFID0gMTAwMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2FsaXplZC1udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9jYWxpemVkTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZWROdW1iZXJJbnB1dENvbXBvbmVudCBleHRlbmRzIElucHV0c0NvbXBvbmVudDxzdHJpbmc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZztcbiAgQElucHV0KCkgdGhvdXNhbmRzU2VwYXJhdG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBwcmVjaXNpb24gPSBMT0NBTElaRURfTlVNQkVSX0lOUFVUX0RFRkFVTFRfUFJFQ0lTSU9OO1xuICBASW5wdXQoKSBhbGxvd05lZ2F0aXZlID0gdHJ1ZTtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG5cbiAgZGlzcGxheVZhbHVlID0gJyc7XG4gIGhhc0Zvcm1hdEVycm9yID0gZmFsc2U7XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IFN0cmluZyh2YWx1ZSA/PyAnJyk7XG4gICAgdGhpcy5oYXNGb3JtYXRFcnJvciA9ICF0aGlzLmlzRW1wdHkodGhpcy5kaXNwbGF5VmFsdWUpICYmICF0aGlzLmlzVmFsaWRMb2NhbGl6ZWROdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkRGVjaW1hbFNlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPz8gbmV3IEludGwuTnVtYmVyRm9ybWF0KGdldE51bWVyaWNMb2NhbGUodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKVxuICAgICAgLmZvcm1hdFRvUGFydHMoTE9DQUxJWkVEX05VTUJFUl9ERUNJTUFMX1NBTVBMRSlcbiAgICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICdkZWNpbWFsJylcbiAgICAgID8udmFsdWVcbiAgICAgID8/ICcsJztcbiAgfVxuXG4gIGdldCByZXNvbHZlZFRob3VzYW5kc1NlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciA/PyBuZXcgSW50bC5OdW1iZXJGb3JtYXQoZ2V0TnVtZXJpY0xvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpXG4gICAgICAuZm9ybWF0VG9QYXJ0cyhMT0NBTElaRURfTlVNQkVSX0dST1VQX1NBTVBMRSlcbiAgICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICdncm91cCcpXG4gICAgICA/LnZhbHVlXG4gICAgICA/PyAnLic7XG4gIH1cblxuICBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGFiZWxLZXkoKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsS2V5KCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubG9jYWxpemVkX251bWJlcl9pbnB1dCcpO1xuICB9XG5cbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuaGFzRm9ybWF0RXJyb3IgPSAhdGhpcy5pc0VtcHR5KHRhcmdldC52YWx1ZSkgJiYgIXRoaXMuaXNWYWxpZExvY2FsaXplZE51bWJlcih0YXJnZXQudmFsdWUpO1xuICAgIHRoaXMuaW52YWxpZCA9IHRoaXMuaW52YWxpZCB8fCB0aGlzLmhhc0Zvcm1hdEVycm9yO1xuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0Zvcm1hdEVycm9yICYmICF0aGlzLmlzRW1wdHkodGhpcy5kaXNwbGF5VmFsdWUpKSB7XG4gICAgICBjb25zdCBudW1lcmljVmFsdWUgPSB0aGlzLnBhcnNlTG9jYWxpemVkTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgIGlmIChudW1lcmljVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoZ2V0TnVtZXJpY0xvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyksIHtcbiAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsXG4gICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLnByZWNpc2lvbixcbiAgICAgICAgICB1c2VHcm91cGluZzogdHJ1ZVxuICAgICAgICB9KS5mb3JtYXQobnVtZXJpY1ZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZGlzcGxheVZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRMb2NhbGl6ZWROdW1iZXIodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIGBeJHt0aGlzLmFsbG93TmVnYXRpdmUgPyAnLT8nIDogJyd9KD86XFxcXGR7MSwzfSg/OlxcXFwke3RoaXMucmVzb2x2ZWRUaG91c2FuZHNTZXBhcmF0b3J9XFxcXGR7M30pKnxcXFxcZCspKD86XFxcXCR7dGhpcy5yZXNvbHZlZERlY2ltYWxTZXBhcmF0b3J9XFxcXGR7MSwke3RoaXMucHJlY2lzaW9ufX0pPyRgXG4gICAgKTtcblxuICAgIHJldHVybiByZWdleC50ZXN0KHZhbHVlLnRyaW0oKSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlTG9jYWxpemVkTnVtYmVyKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdmFsdWVcbiAgICAgIC5zcGxpdCh0aGlzLnJlc29sdmVkVGhvdXNhbmRzU2VwYXJhdG9yKVxuICAgICAgLmpvaW4oJycpXG4gICAgICAucmVwbGFjZSh0aGlzLnJlc29sdmVkRGVjaW1hbFNlcGFyYXRvciwgJy4nKTtcbiAgICBjb25zdCBwYXJzZWQgPSBOdW1iZXIobm9ybWFsaXplZCk7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhU3RyaW5nKHZhbHVlID8/ICcnKS50cmltKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtbG9jYWxpemVkLW51bWJlci1pbnB1dFwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaW5mb1Rvb2x0aXApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXRfX2xhYmVsLXJvd1wiPlxuICAgICAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImlkZW50aXR5LmlkXCIgY2xhc3M9XCJzZGMtbG9jYWxpemVkLW51bWJlci1pbnB1dF9fbGFiZWxcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1sb2NhbGl6ZWQtbnVtYmVyLWlucHV0X19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxpbnB1dFxuICAgIGNsYXNzPVwic2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXRfX2lucHV0XCJcbiAgICAoaW5wdXQpPVwib25OYXRpdmVJbnB1dCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWVcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbY2xhc3Muc2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXRfX2lucHV0LS1pbnZhbGlkXT1cImludmFsaWQgfHwgaGFzRm9ybWF0RXJyb3JcIlxuICAgIFtuZ1N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gKHBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCB8fCBoYXNGb3JtYXRFcnJvciA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gaWRlbnRpdHkuaWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICAgIC8+XG5cbiAgICBAaWYgKG1lc3NhZ2VLZXkoKSB8fCBoYXNGb3JtYXRFcnJvcikge1xuICAgICAgPHNtYWxsXG4gICAgICAgIFtpZF09XCJpZGVudGl0eS5pZCArICctZXJyb3InXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgPlxuICAgICAgICB7e1xuICAgICAgICBoYXNGb3JtYXRFcnJvclxuICAgICAgICA/ICgncGxhdGZvcm0uZGF0YWNvcmUubG9jYWxpemVkX251bWJlcl9pbnB1dC5lcnJvcnMuaW52YWxpZF9udW1iZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICA6IChtZXNzYWdlS2V5KCkgfCB0cmFuc2xhdGUpXG4gICAgICAgIH19XG4gICAgICA8L3NtYWxsPlxuICAgIH1cbiAgPC9kaXY+XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xvY2FsaXplZC1udW1iZXItaW5wdXQvbG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2xvY2FsaXplZC1udW1iZXItaW5wdXQvbG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUV6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUVqRSxNQUFNLCtCQUErQixHQUFHLEdBQUcsQ0FBQztBQUM1QyxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQztBQWtCM0MsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGVBQXVCO0lBQ3ZELFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3QyxnQkFBZ0IsQ0FBVTtJ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c0JBQTNCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgTE9DQUxJWkVEX05VTUJFUl9JTlBVVF9ERUZBVUxUX1BSRUNJU0lPTiB9IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL2xvY2FsaXplZC1udW1iZXItaW5wdXQuY29uc3QnO1xuaW1wb3J0IHsgSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9kaXJlY3RpdmVzL2lucHV0cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgZ2V0TnVtZXJpY0xvY2FsZSB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbnVtZXJpYy51dGlsJztcblxuY29uc3QgTE9DQUxJWkVEX05VTUJFUl9ERUNJTUFMX1NBTVBMRSA9IDEuMTtcbmNvbnN0IExPQ0FMSVpFRF9OVU1CRVJfR1JPVVBfU0FNUExFID0gMTAwMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2FsaXplZC1udW1iZXItaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbG9jYWxpemVkLW51bWJlci1pbnB1dC5jb21wb25lbnQuc2NzcycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTG9jYWxpemVkTnVtYmVySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZWROdW1iZXJJbnB1dENvbXBvbmVudCBleHRlbmRzIElucHV0c0NvbXBvbmVudDxzdHJpbmc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgQElucHV0KCkgZGVjaW1hbFNlcGFyYXRvcj86IHN0cmluZztcbiAgQElucHV0KCkgdGhvdXNhbmRzU2VwYXJhdG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBwcmVjaXNpb24gPSBMT0NBTElaRURfTlVNQkVSX0lOUFVUX0RFRkFVTFRfUFJFQ0lTSU9OO1xuICBASW5wdXQoKSBhbGxvd05lZ2F0aXZlID0gdHJ1ZTtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG5cbiAgZGlzcGxheVZhbHVlID0gJyc7XG4gIGhhc0Zvcm1hdEVycm9yID0gZmFsc2U7XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IFN0cmluZyh2YWx1ZSA/PyAnJyk7XG4gICAgdGhpcy5oYXNGb3JtYXRFcnJvciA9ICF0aGlzLmlzRW1wdHkodGhpcy5kaXNwbGF5VmFsdWUpICYmICF0aGlzLmlzVmFsaWRMb2NhbGl6ZWROdW1iZXIodGhpcy5kaXNwbGF5VmFsdWUpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkRGVjaW1hbFNlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPz8gbmV3IEludGwuTnVtYmVyRm9ybWF0KGdldE51bWVyaWNMb2NhbGUodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKVxuICAgICAgLmZvcm1hdFRvUGFydHMoTE9DQUxJWkVEX05VTUJFUl9ERUNJTUFMX1NBTVBMRSlcbiAgICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICdkZWNpbWFsJylcbiAgICAgID8udmFsdWVcbiAgICAgID8/ICcsJztcbiAgfVxuXG4gIGdldCByZXNvbHZlZFRob3VzYW5kc1NlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRob3VzYW5kc1NlcGFyYXRvciA/PyBuZXcgSW50bC5OdW1iZXJGb3JtYXQoZ2V0TnVtZXJpY0xvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpXG4gICAgICAuZm9ybWF0VG9QYXJ0cyhMT0NBTElaRURfTlVNQkVSX0dST1VQX1NBTVBMRSlcbiAgICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0LnR5cGUgPT09ICdncm91cCcpXG4gICAgICA/LnZhbHVlXG4gICAgICA/PyAnLic7XG4gIH1cblxuICBnZXQgYXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubGFiZWxLZXkoKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsS2V5KCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMucGxhY2Vob2xkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkubG9jYWxpemVkX251bWJlcl9pbnB1dCcpO1xuICB9XG5cbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCB8IG51bGw7XG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICB0aGlzLnZhbHVlID0gdGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuaGFzRm9ybWF0RXJyb3IgPSAhdGhpcy5pc0VtcHR5KHRhcmdldC52YWx1ZSkgJiYgIXRoaXMuaXNWYWxpZExvY2FsaXplZE51bWJlcih0YXJnZXQudmFsdWUpO1xuICAgIHRoaXMuaW52YWxpZCA9IHRoaXMuaW52YWxpZCB8fCB0aGlzLmhhc0Zvcm1hdEVycm9yO1xuICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0Zvcm1hdEVycm9yICYmICF0aGlzLmlzRW1wdHkodGhpcy5kaXNwbGF5VmFsdWUpKSB7XG4gICAgICBjb25zdCBudW1lcmljVmFsdWUgPSB0aGlzLnBhcnNlTG9jYWxpemVkTnVtYmVyKHRoaXMuZGlzcGxheVZhbHVlKTtcbiAgICAgIGlmIChudW1lcmljVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoZ2V0TnVtZXJpY0xvY2FsZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZyksIHtcbiAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsXG4gICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiB0aGlzLnByZWNpc2lvbixcbiAgICAgICAgICB1c2VHcm91cGluZzogdHJ1ZVxuICAgICAgICB9KS5mb3JtYXQobnVtZXJpY1ZhbHVlKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZGlzcGxheVZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRMb2NhbGl6ZWROdW1iZXIodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChcbiAgICAgIGBeJHt0aGlzLmFsbG93TmVnYXRpdmUgPyAnLT8nIDogJyd9KD86XFxcXGR7MSwzfSg/OlxcXFwke3RoaXMucmVzb2x2ZWRUaG91c2FuZHNTZXBhcmF0b3J9XFxcXGR7M30pKnxcXFxcZCspKD86XFxcXCR7dGhpcy5yZXNvbHZlZERlY2ltYWxTZXBhcmF0b3J9XFxcXGR7MSwke3RoaXMucHJlY2lzaW9ufX0pPyRgXG4gICAgKTtcblxuICAgIHJldHVybiByZWdleC50ZXN0KHZhbHVlLnRyaW0oKSk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlTG9jYWxpemVkTnVtYmVyKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gdmFsdWVcbiAgICAgIC5zcGxpdCh0aGlzLnJlc29sdmVkVGhvdXNhbmRzU2VwYXJhdG9yKVxuICAgICAgLmpvaW4oJycpXG4gICAgICAucmVwbGFjZSh0aGlzLnJlc29sdmVkRGVjaW1hbFNlcGFyYXRvciwgJy4nKTtcbiAgICBjb25zdCBwYXJzZWQgPSBOdW1iZXIobm9ybWFsaXplZCk7XG4gICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShwYXJzZWQpID8gcGFyc2VkIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhU3RyaW5nKHZhbHVlID8/ICcnKS50cmltKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtbG9jYWxpemVkLW51bWJlci1pbnB1dFwiPlxuICBAaWYgKGxhYmVsS2V5KCkgfHwgaW5mb1Rvb2x0aXApIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXRfX2xhYmVsLXJvd1wiPlxuICAgICAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImlkZW50aXR5LmlkXCIgY2xhc3M9XCJzZGMtbG9jYWxpemVkLW51bWJlci1pbnB1dF9fbGFiZWxcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1sb2NhbGl6ZWQtbnVtYmVyLWlucHV0X19sYWJlbC10ZXh0XCI+XG4gICAgICAgICAgICB7eyBsYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxpbnB1dFxuICAgIGNsYXNzPVwic2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXRfX2lucHV0XCJcbiAgICAoaW5wdXQpPVwib25OYXRpdmVJbnB1dCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWVcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbY2xhc3Muc2RjLWxvY2FsaXplZC1udW1iZXItaW5wdXRfX2lucHV0LS1pbnZhbGlkXT1cImludmFsaWQgfHwgaGFzRm9ybWF0RXJyb3JcIlxuICAgIFtuZ1N0eWxlXT1cImdldElucHV0U3R5bGUoKVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gKHBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlKSA6ICcnXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCB8fCBoYXNGb3JtYXRFcnJvciA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gaWRlbnRpdHkuaWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICAgIC8+XG5cbiAgICBAaWYgKG1lc3NhZ2VLZXkoKSB8fCBoYXNGb3JtYXRFcnJvcikge1xuICAgICAgPHNtYWxsXG4gICAgICAgIFtpZF09XCJpZGVudGl0eS5pZCArICctZXJyb3InXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgPlxuICAgICAgICB7e1xuICAgICAgICBoYXNGb3JtYXRFcnJvclxuICAgICAgICA/ICgncGxhdGZvcm0uZGF0YWNvcmUubG9jYWxpemVkX251bWJlcl9pbnB1dC5lcnJvcnMuaW52YWxpZF9udW1iZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICA6IChtZXNzYWdlS2V5KCkgfCB0cmFuc2xhdGUpXG4gICAgICAgIH19XG4gICAgICA8L3NtYWxsPlxuICAgIH1cbiAgPC9kaXY+XG4iXX0=