@ember-eui/core 10.0.4 → 10.0.5
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.
- package/declarations/components/eui-global-toast-list.d.ts +0 -1
- package/declarations/components/eui-global-toast-list.d.ts.map +1 -1
- package/dist/components/eui-accordion.js.map +1 -1
- package/dist/components/eui-auto-sizer.js.map +1 -1
- package/dist/components/eui-avatar.js.map +1 -1
- package/dist/components/eui-badge-group.js.map +1 -1
- package/dist/components/eui-badge.js.map +1 -1
- package/dist/components/eui-beta-badge.js.map +1 -1
- package/dist/components/eui-bottom-bar.js.map +1 -1
- package/dist/components/eui-breadcrumbs.js.map +1 -1
- package/dist/components/eui-button-content.js.map +1 -1
- package/dist/components/eui-button-empty.js.map +1 -1
- package/dist/components/eui-button-group-button.js.map +1 -1
- package/dist/components/eui-button-group.js.map +1 -1
- package/dist/components/eui-button-icon.js.map +1 -1
- package/dist/components/eui-button.js.map +1 -1
- package/dist/components/eui-call-out.js.map +1 -1
- package/dist/components/eui-card-select.js.map +1 -1
- package/dist/components/eui-card.js.map +1 -1
- package/dist/components/eui-checkable-card.js.map +1 -1
- package/dist/components/eui-checkbox-group.js.map +1 -1
- package/dist/components/eui-checkbox.js.map +1 -1
- package/dist/components/eui-code-block/controls.js.map +1 -1
- package/dist/components/eui-code-block/full-screen-display.js.map +1 -1
- package/dist/components/eui-code-block/virtualized.js.map +1 -1
- package/dist/components/eui-code-block.js.map +1 -1
- package/dist/components/eui-code.js.map +1 -1
- package/dist/components/eui-collapsible-nav-group.js.map +1 -1
- package/dist/components/eui-collapsible-nav.js.map +1 -1
- package/dist/components/eui-combo-box/create-option.js.map +1 -1
- package/dist/components/eui-combo-box/group.js.map +1 -1
- package/dist/components/eui-combo-box/no-matches-message.js.map +1 -1
- package/dist/components/eui-combo-box/options.js.map +1 -1
- package/dist/components/eui-combo-box/search-message.js.map +1 -1
- package/dist/components/eui-combo-box/trigger/input.js.map +1 -1
- package/dist/components/eui-combo-box/trigger.js.map +1 -1
- package/dist/components/eui-combo-box-pill.js.map +1 -1
- package/dist/components/eui-combo-box.js.map +1 -1
- package/dist/components/eui-comment-list.js.map +1 -1
- package/dist/components/eui-comment-timeline.js.map +1 -1
- package/dist/components/eui-comment.js.map +1 -1
- package/dist/components/eui-confirm-modal.js.map +1 -1
- package/dist/components/eui-context-menu-item.js.map +1 -1
- package/dist/components/eui-context-menu-panel.js.map +1 -1
- package/dist/components/eui-copy.js.map +1 -1
- package/dist/components/eui-described-form-group.js.map +1 -1
- package/dist/components/eui-description-list-description.js.map +1 -1
- package/dist/components/eui-description-list-title.js.map +1 -1
- package/dist/components/eui-description-list.js.map +1 -1
- package/dist/components/eui-dual-range.js.map +1 -1
- package/dist/components/eui-empty-prompt.js.map +1 -1
- package/dist/components/eui-field-number.js.map +1 -1
- package/dist/components/eui-field-password.js.map +1 -1
- package/dist/components/eui-field-search.js.map +1 -1
- package/dist/components/eui-field-text.js.map +1 -1
- package/dist/components/eui-file-picker.js.map +1 -1
- package/dist/components/eui-flex-grid.js.map +1 -1
- package/dist/components/eui-flex-group.js.map +1 -1
- package/dist/components/eui-flex-item.js.map +1 -1
- package/dist/components/eui-flyout-body.js.map +1 -1
- package/dist/components/eui-flyout-footer.js.map +1 -1
- package/dist/components/eui-flyout-header.js.map +1 -1
- package/dist/components/eui-flyout.js.map +1 -1
- package/dist/components/eui-form-control-layout-clear-button.js.map +1 -1
- package/dist/components/eui-form-control-layout-custom-icon.js.map +1 -1
- package/dist/components/eui-form-control-layout-delimited.js.map +1 -1
- package/dist/components/eui-form-control-layout-icons.js.map +1 -1
- package/dist/components/eui-form-control-layout.js.map +1 -1
- package/dist/components/eui-form-error-text.js.map +1 -1
- package/dist/components/eui-form-fieldset.js.map +1 -1
- package/dist/components/eui-form-help-text.js.map +1 -1
- package/dist/components/eui-form-label.js.map +1 -1
- package/dist/components/eui-form-legend.js.map +1 -1
- package/dist/components/eui-form-row.js.map +1 -1
- package/dist/components/eui-form.js.map +1 -1
- package/dist/components/eui-global-toast-list.js.map +1 -1
- package/dist/components/eui-header-alert.js.map +1 -1
- package/dist/components/eui-header-breadcrumbs.js.map +1 -1
- package/dist/components/eui-header-link.js.map +1 -1
- package/dist/components/eui-header-links.js.map +1 -1
- package/dist/components/eui-header-logo.js.map +1 -1
- package/dist/components/eui-header-section-item-button.js.map +1 -1
- package/dist/components/eui-header-section-item.js.map +1 -1
- package/dist/components/eui-header-section.js.map +1 -1
- package/dist/components/eui-header.js.map +1 -1
- package/dist/components/eui-health.js.map +1 -1
- package/dist/components/eui-hide-for.js.map +1 -1
- package/dist/components/eui-horizontal-rule.js.map +1 -1
- package/dist/components/eui-i18n/render.js.map +1 -1
- package/dist/components/eui-i18n.js.map +1 -1
- package/dist/components/eui-icon-tip.js.map +1 -1
- package/dist/components/eui-icon.js.map +1 -1
- package/dist/components/eui-image.js.map +1 -1
- package/dist/components/eui-inner-text.js.map +1 -1
- package/dist/components/eui-input-popover.js.map +1 -1
- package/dist/components/eui-key-pad-menu-item.js.map +1 -1
- package/dist/components/eui-key-pad-menu.js.map +1 -1
- package/dist/components/eui-link.js.map +1 -1
- package/dist/components/eui-list-group-item.js.map +1 -1
- package/dist/components/eui-list-group.js.map +1 -1
- package/dist/components/eui-loading-content.js.map +1 -1
- package/dist/components/eui-loading-logo.js.map +1 -1
- package/dist/components/eui-loading-spinner.js.map +1 -1
- package/dist/components/eui-markdown-editor-drop-zone.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer/icons/markdown-logo.js.map +1 -1
- package/dist/components/eui-markdown-editor-footer.js.map +1 -1
- package/dist/components/eui-markdown-editor-text-area.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar/icons/markdown-checkmark.js.map +1 -1
- package/dist/components/eui-markdown-editor-toolbar.js.map +1 -1
- package/dist/components/eui-markdown-editor.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-checkbox.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-code-block.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-code.js.map +1 -1
- package/dist/components/eui-markdown-format/markdown-tooltip.js.map +1 -1
- package/dist/components/eui-markdown-format.js.map +1 -1
- package/dist/components/eui-modal-body.js.map +1 -1
- package/dist/components/eui-modal-footer.js.map +1 -1
- package/dist/components/eui-modal-header-title.js.map +1 -1
- package/dist/components/eui-modal-header.js.map +1 -1
- package/dist/components/eui-modal.js.map +1 -1
- package/dist/components/eui-notification-badge.js.map +1 -1
- package/dist/components/eui-notification-event-messages.js.map +1 -1
- package/dist/components/eui-notification-event-meta.js.map +1 -1
- package/dist/components/eui-notification-event-read-button.js.map +1 -1
- package/dist/components/eui-notification-event-read-icon.js.map +1 -1
- package/dist/components/eui-notification-event.js.map +1 -1
- package/dist/components/eui-overlay-mask.js.map +1 -1
- package/dist/components/eui-page-body.js.map +1 -1
- package/dist/components/eui-page-content-body.js.map +1 -1
- package/dist/components/eui-page-content-header-section.js.map +1 -1
- package/dist/components/eui-page-content-header.js.map +1 -1
- package/dist/components/eui-page-content.js.map +1 -1
- package/dist/components/eui-page-header-content.js.map +1 -1
- package/dist/components/eui-page-header-section.js.map +1 -1
- package/dist/components/eui-page-header.js.map +1 -1
- package/dist/components/eui-page-side-bar.js.map +1 -1
- package/dist/components/eui-page-template.js.map +1 -1
- package/dist/components/eui-page.js.map +1 -1
- package/dist/components/eui-pagination/button-wrapper.js.map +1 -1
- package/dist/components/eui-pagination/next-button.js.map +1 -1
- package/dist/components/eui-pagination/previous-button.js.map +1 -1
- package/dist/components/eui-pagination-button.js.map +1 -1
- package/dist/components/eui-pagination.js.map +1 -1
- package/dist/components/eui-panel.js.map +1 -1
- package/dist/components/eui-popover-footer.js.map +1 -1
- package/dist/components/eui-popover-title.js.map +1 -1
- package/dist/components/eui-popover.js.map +1 -1
- package/dist/components/eui-portal.js.map +1 -1
- package/dist/components/eui-progress.js.map +1 -1
- package/dist/components/eui-radio-group.js.map +1 -1
- package/dist/components/eui-radio.js.map +1 -1
- package/dist/components/eui-range-highlight.js.map +1 -1
- package/dist/components/eui-range-input.js.map +1 -1
- package/dist/components/eui-range-label.js.map +1 -1
- package/dist/components/eui-range-levels.js.map +1 -1
- package/dist/components/eui-range-slider.js.map +1 -1
- package/dist/components/eui-range-thumb.js.map +1 -1
- package/dist/components/eui-range-ticks.js.map +1 -1
- package/dist/components/eui-range-tooltip.js.map +1 -1
- package/dist/components/eui-range-track.js.map +1 -1
- package/dist/components/eui-range-wrapper.js.map +1 -1
- package/dist/components/eui-range.js.map +1 -1
- package/dist/components/eui-select.js.map +1 -1
- package/dist/components/eui-selectable-list-item.js.map +1 -1
- package/dist/components/eui-show-for.js.map +1 -1
- package/dist/components/eui-side-nav-item/button.js.map +1 -1
- package/dist/components/eui-side-nav-item.js.map +1 -1
- package/dist/components/eui-side-nav.js.map +1 -1
- package/dist/components/eui-spacer.js.map +1 -1
- package/dist/components/eui-split-panel/inner.js.map +1 -1
- package/dist/components/eui-split-panel/outer.js.map +1 -1
- package/dist/components/eui-stat/description.js.map +1 -1
- package/dist/components/eui-stat/title.js.map +1 -1
- package/dist/components/eui-stat.js.map +1 -1
- package/dist/components/eui-step-horizontal.js.map +1 -1
- package/dist/components/eui-step-number.js.map +1 -1
- package/dist/components/eui-step.js.map +1 -1
- package/dist/components/eui-steps-horizontal.js.map +1 -1
- package/dist/components/eui-steps.js.map +1 -1
- package/dist/components/eui-sub-steps.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/absolute-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/datetime-picker.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-button.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/eui-date-popover-content.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/now-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/date-popover/relative-tab.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-date-picker-range.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-commonly-used-time-ranges.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-quick-select.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover/eui-recently-used.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-quick-select-popover.js.map +1 -1
- package/dist/components/eui-super-date-picker/eui-super-update-button.js.map +1 -1
- package/dist/components/eui-super-date-picker.js.map +1 -1
- package/dist/components/eui-switch.js.map +1 -1
- package/dist/components/eui-tab.js.map +1 -1
- package/dist/components/eui-tabbed-content.js.map +1 -1
- package/dist/components/eui-tabs.js.map +1 -1
- package/dist/components/eui-text-align.js.map +1 -1
- package/dist/components/eui-text-area.js.map +1 -1
- package/dist/components/eui-text-color.js.map +1 -1
- package/dist/components/eui-text.js.map +1 -1
- package/dist/components/eui-title.js.map +1 -1
- package/dist/components/eui-toast.js.map +1 -1
- package/dist/components/eui-tool-tip-popover.js.map +1 -1
- package/dist/components/eui-tool-tip.js.map +1 -1
- package/dist/components/text-block.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-page-template.js","sources":["../../src/components/eui-page-template.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport style from 'ember-style-modifier/modifiers/style';\n// import { tabbable } from 'tabbable';\n// import {\n// anchorPositionMapping,\n// displayMapping\n// } from '../../utils/css-mappings/eui-popover.ts';\n// import { paddingSizeMapping } from '../../utils/css-mappings/eui-panel.ts';\n// import { scheduleOnce, later, cancel } from '@ember/runloop';\n// import { assert } from '@ember/debug';\n// import { htmlSafe } from '@ember/template';\nimport { and, eq, or } from 'ember-truth-helpers';\n// import { action } from '@ember/object';\n// import { tracked } from '@glimmer/tracking';\n// import {\n// getTransitionTimings,\n// getWaitDuration,\n// performOnFrame\n// } from '../../utils/transition';\n// import { findPopoverPosition, getElementZIndex } from '../../utils/popover';\n// import { EuiPopoverPosition } from '../../utils/popover/types';\n// import { cascadingMenuKeys } from '../../utils/accesibility';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBottomBar from './eui-bottom-bar.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiPage from './eui-page.gts';\nimport EuiPageBody from './eui-page-body.gts';\nimport EuiPageContent from './eui-page-content.gts';\nimport EuiPageContentBody from './eui-page-content-body.gts';\nimport EuiPageHeader from './eui-page-header.gts';\nimport EuiPageSideBar from './eui-page-side-bar.gts';\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiPageBodySignature } from './eui-page-body';\nimport type { EuiPageContentSignature } from './eui-page-content';\nimport type { EuiPageContentBodySignature } from './eui-page-content-body';\nimport type { EuiPageHeaderSignature } from './eui-page-header';\nimport type { EuiPageSideBarSignature } from './eui-page-side-bar';\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\nconst BREAKPOINTS: EuiBreakpointSize[] = [\n 'm',\n 'l',\n 'xl'\n];\ninterface NormalProps {\n className?: string;\n}\nexport type EuiPageTemplateProps = {\n template?: (typeof TEMPLATES)[number];\n pageBodyProps: NormalProps & EuiPageBodySignature['Args'];\n pageContentProps: NormalProps & EuiPageContentSignature['Args'];\n pageContentBodyProps: NormalProps & EuiPageContentBodySignature['Args'];\n pageHeader: NormalProps & EuiPageHeaderSignature['Args'];\n pageSideBarProps: NormalProps & EuiPageSideBarSignature['Args'];\n /**\n * Adds a bottom bar to the page template\n */ bottomBar?: any;\n /**\n * Adds a bottom bar to the page template\n */ hasBottomBarBlock?: boolean;\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */ bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */ fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */ minHeight?: number;\n restrictWidth?: boolean | number | string;\n grow?: boolean;\n paddingSize?: EuiPageSideBarSignature['Args']['paddingSize'];\n hasPageSideBarBlock?: boolean;\n hasPageHeaderPageTitleBlock?: boolean;\n hasPageHeaderDefaultBlock?: boolean;\n hasPageHeaderRightSideItemsBlock?: boolean;\n hasPageHeaderDescriptionBlock?: boolean;\n hasPageHeader?: boolean;\n hasPageContent?: boolean;\n hasPageContentBody?: boolean;\n};\nexport interface EuiPageTemplateSignature {\n Element: HTMLElement;\n Args: EuiPageTemplateProps;\n Blocks: {\n default: [];\n pageSideBar: [];\n pageHeaderPageTitle: [];\n pageHeaderDefault: [];\n pageHeaderDescription: [];\n pageHeaderRightSideItems: EuiPageHeaderSignature['Blocks']['rightSideItems'];\n bottomBar: [];\n };\n}\nexport default class EuiPageTemplate extends Component<EuiPageTemplateSignature> {\n // Defaults\n @argOrDefaultDecorator(false)\n fullHeight: boolean;\n @argOrDefaultDecorator('default')\n template: (typeof TEMPLATES)[number];\n @tracked\n isWithinBreakpoints = false;\n setIsWithinBreakpoints = (value1: boolean)=>{\n this.isWithinBreakpoints = value1;\n };\n get minHeight() {\n const minHeight1 = this.args.minHeight ?? 460;\n if (typeof this.args.minHeight === 'number') {\n return `${minHeight1}px`;\n }\n return minHeight1;\n }\n get restrictWidth() {\n const width1 = this.args.restrictWidth ?? true;\n if (typeof this.args.restrictWidth === 'number') {\n return `${width1}px`;\n }\n return width1;\n }\n get classes() {\n return `euiPageTemplate ${this.fullHeightClass}`;\n }\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-fullHeight ' : '';\n }\n get yScrollClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-yScroll ' : '';\n }\n get canFullHeight() {\n return (this.isWithinBreakpoints && (this.template === 'default' || this.template === 'empty'));\n }\n get pageBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageBodyProps?.className}`;\n }\n get pageContentPropsClass() {\n return `${this.yScrollClass} ${this.args.pageContentProps?.className}`;\n }\n get pageContentBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageContentBodyProps?.className}`;\n }\n static{\n template(`\n {{#let\n (argOrDefault @grow true)\n (argOrDefault @paddingSize \"l\")\n (and (argOrDefault @hasBottomBarBlock true) (has-block \"bottomBar\"))\n (and (argOrDefault @hasPageSideBarBlock true) (has-block \"pageSideBar\"))\n (and\n (argOrDefault @hasPageHeaderPageTitleBlock true)\n (has-block \"pageHeaderPageTitle\")\n )\n (and\n (argOrDefault @hasPageHeaderDefaultBlock true)\n (has-block \"pageHeaderDefault\")\n )\n (and\n (argOrDefault @hasPageHeaderRightSideItemsBlock true)\n (has-block \"pageHeaderRightSideItems\")\n )\n (and\n (argOrDefault @hasPageHeaderDescriptionBlock true)\n (has-block \"pageHeaderDescription\")\n )\n (modifier\n useIsWithinBreakpoints\n sizes=BREAKPOINTS\n isActive=true\n setIsWithinBreakpointsValue=this.setIsWithinBreakpoints\n )\n as |grow paddingSize hasBottomBarBlock hasPageSideBarBlock hasPageHeaderPageTitleBlock hasPageHeaderDefaultBlock hasPageHeaderRightSideItemsBlock hasPageHeaderDescriptionBlock isWithinBreakpointsModifier|\n }}\n {{#let\n (or\n @pageHeader\n hasPageHeaderPageTitleBlock\n hasPageHeaderDefaultBlock\n hasPageHeaderRightSideItemsBlock\n hasPageHeaderDescriptionBlock\n )\n as |hasPageHeader|\n }}\n {{#if (eq this.template \"centeredBody\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @restrictWidth={{false}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize=\"none\"\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageBody>\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasBorder={{@pageContentProps.hasBorder}}\n @hasShadow={{@pageContentProps.hasShadow}}\n @color={{@pageContentProps.color}}\n @borderRadius={{@pageContentProps.borderRadius}}\n @grow={{@pageContentProps.grow}}\n @role={{@pageContentProps.role}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"centeredContent\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n {{!template-lint-disable}}\n <EuiPageContent\n role={{null}}\n @borderRadius=\"none\"\n @hasShadow={{false}}\n @paddingSize={{paddingSize}}\n style=\"display: flex\"\n >\n {{!template-lint-enable}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"empty\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar @sticky={{true}} @paddingSize={{paddingSize}}>\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n @restrictWidth={{false}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n @restrictWidth={{false}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize=\"none\"\n class={{this.pageBodyPropsClass}}\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n @tagName=\"div\"\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasShadow={{false}}\n @hasBorder={{false}}\n @color=\"transparent\"\n @borderRadius=\"none\"\n @paddingSize=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{if hasPageHeader false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"plain\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{/if}}\n {{/let}}\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9vcGVuc291cmNlL2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wYWdlLXRlbXBsYXRlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnZW1iZXItc3R5bGUtbW9kaWZpZXIvbW9kaWZpZXJzL3N0eWxlJztcbi8vIGltcG9ydCB7IHRhYmJhYmxlIH0gZnJvbSAndGFiYmFibGUnO1xuLy8gaW1wb3J0IHtcbi8vICAgYW5jaG9yUG9zaXRpb25NYXBwaW5nLFxuLy8gICBkaXNwbGF5TWFwcGluZ1xuLy8gfSBmcm9tICcuLi8uLi91dGlscy9jc3MtbWFwcGluZ3MvZXVpLXBvcG92ZXIudHMnO1xuLy8gaW1wb3J0IHsgcGFkZGluZ1NpemVNYXBwaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvY3NzLW1hcHBpbmdzL2V1aS1wYW5lbC50cyc7XG4vLyBpbXBvcnQgeyBzY2hlZHVsZU9uY2UsIGxhdGVyLCBjYW5jZWwgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG4vLyBpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZW1iZXIvZGVidWcnO1xuLy8gaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuaW1wb3J0IHsgYW5kLCBlcSxvciB9IGZyb20gJ2VtYmVyLXRydXRoLWhlbHBlcnMnO1xuXG4vLyBpbXBvcnQgeyBhY3Rpb24gfSBmcm9tICdAZW1iZXIvb2JqZWN0Jztcbi8vIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG4vLyBpbXBvcnQge1xuLy8gICBnZXRUcmFuc2l0aW9uVGltaW5ncyxcbi8vICAgZ2V0V2FpdER1cmF0aW9uLFxuLy8gICBwZXJmb3JtT25GcmFtZVxuLy8gfSBmcm9tICcuLi8uLi91dGlscy90cmFuc2l0aW9uJztcbi8vIGltcG9ydCB7IGZpbmRQb3BvdmVyUG9zaXRpb24sIGdldEVsZW1lbnRaSW5kZXggfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyJztcbi8vIGltcG9ydCB7IEV1aVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvdHlwZXMnO1xuLy8gaW1wb3J0IHsgY2FzY2FkaW5nTWVudUtleXMgfSBmcm9tICcuLi8uLi91dGlscy9hY2Nlc2liaWxpdHknO1xuaW1wb3J0IGFyZ09yRGVmYXVsdCwgeyBhcmdPckRlZmF1bHREZWNvcmF0b3IgfSBmcm9tICcuLi9oZWxwZXJzL2FyZy1vci1kZWZhdWx0LnRzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtbmFtZXMudHMnO1xuaW1wb3J0IGlubGluZVN0eWxlcyBmcm9tICcuLi9oZWxwZXJzL2lubGluZS1zdHlsZXMudHMnO1xuaW1wb3J0IHVzZUlzV2l0aGluQnJlYWtwb2ludHMgZnJvbSAnLi4vbW9kaWZpZXJzL3VzZS1pcy13aXRoaW4tYnJlYWtwb2ludHMudHMnO1xuaW1wb3J0IEV1aUJvdHRvbUJhciBmcm9tICcuL2V1aS1ib3R0b20tYmFyLmd0cyc7XG5pbXBvcnQgRXVpRmxleEdyb3VwIGZyb20gJy4vZXVpLWZsZXgtZ3JvdXAuZ3RzJztcbmltcG9ydCBFdWlGbGV4SXRlbSBmcm9tICcuL2V1aS1mbGV4LWl0ZW0uZ3RzJztcbmltcG9ydCBFdWlQYWdlIGZyb20gJy4vZXVpLXBhZ2UuZ3RzJztcbmltcG9ydCBFdWlQYWdlQm9keSBmcm9tICcuL2V1aS1wYWdlLWJvZHkuZ3RzJztcbmltcG9ydCBFdWlQYWdlQ29udGVudCBmcm9tICcuL2V1aS1wYWdlLWNvbnRlbnQuZ3RzJztcbmltcG9ydCBFdWlQYWdlQ29udGVudEJvZHkgZnJvbSAnLi9ldWktcGFnZS1jb250ZW50LWJvZHkuZ3RzJztcbmltcG9ydCBFdWlQYWdlSGVhZGVyIGZyb20gJy4vZXVpLXBhZ2UtaGVhZGVyLmd0cyc7XG5pbXBvcnQgRXVpUGFnZVNpZGVCYXIgZnJvbSAnLi9ldWktcGFnZS1zaWRlLWJhci5ndHMnO1xuXG5pbXBvcnQgdHlwZSB7IEV1aUJyZWFrcG9pbnRTaXplIH0gZnJvbSAnLi4vdXRpbHMvYnJlYWtwb2ludC50cyc7XG5pbXBvcnQgdHlwZSB7IEV1aUJ1dHRvbUJhckFyZ3MgfSBmcm9tICcuL2V1aS1ib3R0b20tYmFyJztcbmltcG9ydCB0eXBlIHsgRXVpUGFnZUJvZHlTaWduYXR1cmUgfSBmcm9tICcuL2V1aS1wYWdlLWJvZHknO1xuaW1wb3J0IHR5cGUgeyBFdWlQYWdlQ29udGVudFNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXBhZ2UtY29udGVudCc7XG5pbXBvcnQgdHlwZSB7IEV1aVBhZ2VDb250ZW50Qm9keVNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXBhZ2UtY29udGVudC1ib2R5JztcbmltcG9ydCB0eXBlIHsgRXVpUGFnZUhlYWRlclNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXBhZ2UtaGVhZGVyJztcbmltcG9ydCB0eXBlIHsgRXVpUGFnZVNpZGVCYXJTaWduYXR1cmUgfSBmcm9tICcuL2V1aS1wYWdlLXNpZGUtYmFyJztcblxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFUyA9IFtcbiAgJ2RlZmF1bHQnLFxuICAnY2VudGVyZWRCb2R5JyxcbiAgJ2NlbnRlcmVkQ29udGVudCcsXG4gICdlbXB0eSdcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IEJSRUFLUE9JTlRTOiBFdWlCcmVha3BvaW50U2l6ZVtdID0gWydtJywgJ2wnLCAneGwnXTtcblxuaW50ZXJmYWNlIE5vcm1hbFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFdWlQYWdlVGVtcGxhdGVQcm9wcyA9IHtcbiAgdGVtcGxhdGU_OiAodHlwZW9mIFRFTVBMQVRFUylbbnVtYmVyXTtcblxuICBwYWdlQm9keVByb3BzOiBOb3JtYWxQcm9wcyAmIEV1aVBhZ2VCb2R5U2lnbmF0dXJlWydBcmdzJ107XG4gIHBhZ2VDb250ZW50UHJvcHM6IE5vcm1hbFByb3BzICYgRXVpUGFnZUNvbnRlbnRTaWduYXR1cmVbJ0FyZ3MnXTtcbiAgcGFnZUNvbnRlbnRCb2R5UHJvcHM6IE5vcm1hbFByb3BzICYgRXVpUGFnZUNvbnRlbnRCb2R5U2lnbmF0dXJlWydBcmdzJ107XG5cbiAgcGFnZUhlYWRlcjogTm9ybWFsUHJvcHMgJiBFdWlQYWdlSGVhZGVyU2lnbmF0dXJlWydBcmdzJ107XG5cbiAgcGFnZVNpZGVCYXJQcm9wczogTm9ybWFsUHJvcHMgJiBFdWlQYWdlU2lkZUJhclNpZ25hdHVyZVsnQXJncyddO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgYm90dG9tIGJhciB0byB0aGUgcGFnZSB0ZW1wbGF0ZVxuICAgKi9cbiAgYm90dG9tQmFyPzogYW55O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgYm90dG9tIGJhciB0byB0aGUgcGFnZSB0ZW1wbGF0ZVxuICAgKi9cbiAgaGFzQm90dG9tQmFyQmxvY2s_OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHZXRzIHBhc3NlZCBhbG9uZyB0byB0aGUgI0V1aUJvdHRvbUJhciBjb21wb25lbnQgaWYgYGJvdHRvbUJhcmAgaGFzIGNvbnRlbnRzXG4gICAqL1xuICBib3R0b21CYXJQcm9wcz86IEV1aUJ1dHRvbUJhckFyZ3M7XG4gIC8qIFN0cmV0Y2hlcyBvciByZXN0cmljdHMgdGhlIGhlaWdodCB0byAxMDAlIG9mIHRoZSBwYXJlbnQ7XG4gICAqIGB0cnVlYDogc2Nyb2xscyB0aGUgRXVpUGFnZUNvbnRlbnRCb2R5O1xuICAgKiBgbm9zY3JvbGxgOiByZW1vdmVzIGFsbCBzY3JvbGwgYWJpbGl0eTtcbiAgICogT25seSB3b3JrcyB3aGVuIGB0ZW1wbGF0ZSA9ICdkZWZhdWx0IHwgZW1wdHknYCBhbmQgYnJlYWtwb2ludCBpcyBgbWAgYW5kIGFib3ZlXG4gICAqL1xuICBmdWxsSGVpZ2h0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1pbmltdW0gaGVpZ2h0IGluIHdoaWNoIHRvIGVuZm9yY2Ugc2Nyb2xsaW5nXG4gICAqL1xuICBtaW5IZWlnaHQ_OiBudW1iZXI7XG5cbiAgcmVzdHJpY3RXaWR0aD86IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbiAgZ3Jvdz86IGJvb2xlYW47XG4gIHBhZGRpbmdTaXplPzogRXVpUGFnZVNpZGVCYXJTaWduYXR1cmVbJ0FyZ3MnXVsncGFkZGluZ1NpemUnXTtcbiAgaGFzUGFnZVNpZGVCYXJCbG9jaz86IGJvb2xlYW47XG4gIGhhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9jaz86IGJvb2xlYW47XG4gIGhhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2s_OiBib29sZWFuO1xuICBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9jaz86IGJvb2xlYW47XG4gIGhhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrPzogYm9vbGVhbjtcbiAgaGFzUGFnZUhlYWRlcj86IGJvb2xlYW47XG4gIGhhc1BhZ2VDb250ZW50PzogYm9vbGVhbjtcbiAgaGFzUGFnZUNvbnRlbnRCb2R5PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXVpUGFnZVRlbXBsYXRlU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIEFyZ3M6IEV1aVBhZ2VUZW1wbGF0ZVByb3BzO1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXTtcbiAgICBwYWdlU2lkZUJhcjogW107XG4gICAgcGFnZUhlYWRlclBhZ2VUaXRsZTogW107XG4gICAgcGFnZUhlYWRlckRlZmF1bHQ6IFtdO1xuICAgIHBhZ2VIZWFkZXJEZXNjcmlwdGlvbjogW107XG4gICAgcGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zOiBFdWlQYWdlSGVhZGVyU2lnbmF0dXJlWydCbG9ja3MnXVsncmlnaHRTaWRlSXRlbXMnXTtcbiAgICBib3R0b21CYXI6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdWlQYWdlVGVtcGxhdGUgZXh0ZW5kcyBDb21wb25lbnQ8RXVpUGFnZVRlbXBsYXRlU2lnbmF0dXJlPiB7XG4gIC8vIERlZmF1bHRzXG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoZmFsc2UpIGZ1bGxIZWlnaHQhOiBib29sZWFuO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdkZWZhdWx0JykgdGVtcGxhdGUhOiAodHlwZW9mIFRFTVBMQVRFUylbbnVtYmVyXTtcblxuICBAdHJhY2tlZCBpc1dpdGhpbkJyZWFrcG9pbnRzID0gZmFsc2U7XG5cbiAgc2V0SXNXaXRoaW5CcmVha3BvaW50cyA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIHRoaXMuaXNXaXRoaW5CcmVha3BvaW50cyA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBtaW5IZWlnaHQoKSB7XG4gICAgY29uc3QgbWluSGVpZ2h0ID0gdGhpcy5hcmdzLm1pbkhlaWdodCA_PyA0NjA7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuYXJncy5taW5IZWlnaHQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gYCR7bWluSGVpZ2h0fXB4YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWluSGVpZ2h0O1xuICB9XG5cbiAgZ2V0IHJlc3RyaWN0V2lkdGgoKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmFyZ3MucmVzdHJpY3RXaWR0aCA_PyB0cnVlO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmFyZ3MucmVzdHJpY3RXaWR0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBgJHt3aWR0aH1weGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdpZHRoO1xuICB9XG5cbiAgZ2V0IGNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIGBldWlQYWdlVGVtcGxhdGUgJHt0aGlzLmZ1bGxIZWlnaHRDbGFzc31gO1xuICB9XG5cbiAgZ2V0IGZ1bGxIZWlnaHRDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsSGVpZ2h0ICYmIHRoaXMuY2FuRnVsbEhlaWdodCA_ICdldWktZnVsbEhlaWdodCAnIDogJyc7XG4gIH1cblxuICBnZXQgeVNjcm9sbENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bGxIZWlnaHQgJiYgdGhpcy5jYW5GdWxsSGVpZ2h0ID8gJ2V1aS15U2Nyb2xsICcgOiAnJztcbiAgfVxuXG4gIGdldCBjYW5GdWxsSGVpZ2h0KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzV2l0aGluQnJlYWtwb2ludHMgJiZcbiAgICAgICh0aGlzLnRlbXBsYXRlID09PSAnZGVmYXVsdCcgfHwgdGhpcy50ZW1wbGF0ZSA9PT0gJ2VtcHR5JylcbiAgICApO1xuICB9XG5cbiAgZ2V0IHBhZ2VCb2R5UHJvcHNDbGFzcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5mdWxsSGVpZ2h0Q2xhc3N9ICR7dGhpcy5hcmdzLnBhZ2VCb2R5UHJvcHM_LmNsYXNzTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHBhZ2VDb250ZW50UHJvcHNDbGFzcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy55U2Nyb2xsQ2xhc3N9ICR7dGhpcy5hcmdzLnBhZ2VDb250ZW50UHJvcHM_LmNsYXNzTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuZnVsbEhlaWdodENsYXNzfSAke3RoaXMuYXJncy5wYWdlQ29udGVudEJvZHlQcm9wcz8uY2xhc3NOYW1lfWA7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjbGV0XG4gICAgICAoYXJnT3JEZWZhdWx0IEBncm93IHRydWUpXG4gICAgICAoYXJnT3JEZWZhdWx0IEBwYWRkaW5nU2l6ZSBcImxcIilcbiAgICAgIChhbmQgKGFyZ09yRGVmYXVsdCBAaGFzQm90dG9tQmFyQmxvY2sgdHJ1ZSkgKGhhcy1ibG9jayBcImJvdHRvbUJhclwiKSlcbiAgICAgIChhbmQgKGFyZ09yRGVmYXVsdCBAaGFzUGFnZVNpZGVCYXJCbG9jayB0cnVlKSAoaGFzLWJsb2NrIFwicGFnZVNpZGVCYXJcIikpXG4gICAgICAoYW5kXG4gICAgICAgIChhcmdPckRlZmF1bHQgQGhhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9jayB0cnVlKVxuICAgICAgICAoaGFzLWJsb2NrIFwicGFnZUhlYWRlclBhZ2VUaXRsZVwiKVxuICAgICAgKVxuICAgICAgKGFuZFxuICAgICAgICAoYXJnT3JEZWZhdWx0IEBoYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrIHRydWUpXG4gICAgICAgIChoYXMtYmxvY2sgXCJwYWdlSGVhZGVyRGVmYXVsdFwiKVxuICAgICAgKVxuICAgICAgKGFuZFxuICAgICAgICAoYXJnT3JEZWZhdWx0IEBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9jayB0cnVlKVxuICAgICAgICAoaGFzLWJsb2NrIFwicGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zXCIpXG4gICAgICApXG4gICAgICAoYW5kXG4gICAgICAgIChhcmdPckRlZmF1bHQgQGhhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrIHRydWUpXG4gICAgICAgIChoYXMtYmxvY2sgXCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIilcbiAgICAgIClcbiAgICAgIChtb2RpZmllclxuICAgICAgICB1c2VJc1dpdGhpbkJyZWFrcG9pbnRzXG4gICAgICAgIHNpemVzPUJSRUFLUE9JTlRTXG4gICAgICAgIGlzQWN0aXZlPXRydWVcbiAgICAgICAgc2V0SXNXaXRoaW5CcmVha3BvaW50c1ZhbHVlPXRoaXMuc2V0SXNXaXRoaW5CcmVha3BvaW50c1xuICAgICAgKVxuICAgICAgYXMgfGdyb3cgcGFkZGluZ1NpemUgaGFzQm90dG9tQmFyQmxvY2sgaGFzUGFnZVNpZGVCYXJCbG9jayBoYXNQYWdlSGVhZGVyUGFnZVRpdGxlQmxvY2sgaGFzUGFnZUhlYWRlckRlZmF1bHRCbG9jayBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9jayBoYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9jayBpc1dpdGhpbkJyZWFrcG9pbnRzTW9kaWZpZXJ8XG4gICAgfX1cbiAgICAgIHt7I2xldFxuICAgICAgICAob3JcbiAgICAgICAgICBAcGFnZUhlYWRlclxuICAgICAgICAgIGhhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja1xuICAgICAgICAgIGhhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2tcbiAgICAgICAgICBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja1xuICAgICAgICAgIGhhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrXG4gICAgICAgIClcbiAgICAgICAgYXMgfGhhc1BhZ2VIZWFkZXJ8XG4gICAgICB9fVxuICAgICAgICB7eyNpZiAoZXEgdGhpcy50ZW1wbGF0ZSBcImNlbnRlcmVkQm9keVwiKX19XG4gICAgICAgICAge3sjaWYgaGFzUGFnZVNpZGVCYXJCbG9ja319XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VTaWRlQmFyXG4gICAgICAgICAgICAgICAgY2xhc3M9e3tAcGFnZVNpZGVCYXJQcm9wcy5jbGFzc05hbWV9fVxuICAgICAgICAgICAgICAgIEBzdGlja3k9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZVNpZGVCYXJcIn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZVNpZGVCYXI-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxFdWlQYWdlSGVhZGVyXG4gICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7QHBhZ2VIZWFkZXIucmVzcG9uc2l2ZX19XG4gICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICBAdGFicz17e0BwYWdlSGVhZGVyLnRhYnN9fVxuICAgICAgICAgICAgICAgICAgQHBhZ2VUaXRsZT17e0BwYWdlSGVhZGVyLnBhZ2VUaXRsZX19XG4gICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICBAaGFzUGFnZVRpdGxlQmxvY2s9e3toYXNQYWdlSGVhZGVyUGFnZVRpdGxlQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgQGhhc0RlZmF1bHRCbG9jaz17e2hhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2t9fVxuICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICBAaGFzUmlnaHRTaWRlSXRlbXNCbG9jaz17e2hhc1BhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc0Jsb2NrfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJQYWdlVGl0bGVcIn19XG4gICAgICAgICAgICAgICAgICA8LzpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgIDwvOmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlc2NyaXB0aW9uXCJ9fVxuICAgICAgICAgICAgICAgICAgPC86ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAge3t5aWVsZCBpdGVtIHRvPVwicGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zXCJ9fVxuICAgICAgICAgICAgICAgICAgPC86cmlnaHRTaWRlSXRlbXM-XG4gICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICAgIEB2ZXJ0aWNhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIEBob3Jpem9udGFsUG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyNpZiAoYW5kIHRoaXMuY2FuRnVsbEhlaWdodCB0aGlzLmZ1bGxIZWlnaHQpfX1cbiAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndXR0ZXJTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIHRoaXMuZnVsbEhlaWdodCB0cnVlKSBcImV1aS15U2Nyb2xsXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGhpcy5mdWxsSGVpZ2h0IFwibm9zY3JvbGxcIikgXCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3Jvdz17e3RydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEl0ZW0-XG4gICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4R3JvdXA-XG4gICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgIDwvRXVpUGFnZUJvZHk-XG4gICAgICAgICAgICA8L0V1aVBhZ2U-XG4gICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgIDxFdWlQYWdlXG4gICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5jbGFzc2VzfX1cbiAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VCb2R5XG4gICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VCb2R5UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzUGFnZUhlYWRlcn19XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUhlYWRlclxuICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgQGJvdHRvbUJvcmRlcj17e0BwYWdlSGVhZGVyLmJvdHRvbUJvcmRlcn19XG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e0BwYWdlSGVhZGVyLnJlc3BvbnNpdmV9fVxuICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgIEB0YWJzPXt7QHBhZ2VIZWFkZXIudGFic319XG4gICAgICAgICAgICAgICAgICAgIEBwYWdlVGl0bGU9e3tAcGFnZUhlYWRlci5wYWdlVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNQYWdlVGl0bGVCbG9jaz17e2hhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZWZhdWx0QmxvY2s9e3toYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNSaWdodFNpZGVJdGVtc0Jsb2NrPXt7aGFzUGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlclBhZ2VUaXRsZVwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIGl0ZW0gdG89XCJwYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnJpZ2h0U2lkZUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUJvZHk-XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICAgIEB2ZXJ0aWNhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgQGhvcml6b250YWxQb3NpdGlvbj1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIEBoYXNCb3JkZXI9e3tAcGFnZUNvbnRlbnRQcm9wcy5oYXNCb3JkZXJ9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7QHBhZ2VDb250ZW50UHJvcHMuaGFzU2hhZG93fX1cbiAgICAgICAgICAgICAgICAgICAgQGNvbG9yPXt7QHBhZ2VDb250ZW50UHJvcHMuY29sb3J9fVxuICAgICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPXt7QHBhZ2VDb250ZW50UHJvcHMuYm9yZGVyUmFkaXVzfX1cbiAgICAgICAgICAgICAgICAgICAgQGdyb3c9e3tAcGFnZUNvbnRlbnRQcm9wcy5ncm93fX1cbiAgICAgICAgICAgICAgICAgICAgQHJvbGU9e3tAcGFnZUNvbnRlbnRQcm9wcy5yb2xlfX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7I2lmIChhbmQgdGhpcy5jYW5GdWxsSGVpZ2h0IHRoaXMuZnVsbEhlaWdodCl9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGd1dHRlclNpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgdGhpcy5mdWxsSGVpZ2h0IHRydWUpIFwiZXVpLXlTY3JvbGxcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGhpcy5mdWxsSGVpZ2h0IFwibm9zY3JvbGxcIikgXCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3Jvdz17e3RydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEl0ZW0-XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhHcm91cD5cbiAgICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgIDwvRXVpUGFnZT5cbiAgICAgICAgICB7ey9pZn19XG4gICAgICAgIHt7ZWxzZSBpZiAoZXEgdGhpcy50ZW1wbGF0ZSBcImNlbnRlcmVkQ29udGVudFwiKX19XG4gICAgICAgICAge3sjaWYgaGFzUGFnZVNpZGVCYXJCbG9ja319XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VTaWRlQmFyXG4gICAgICAgICAgICAgICAgY2xhc3M9e3tAcGFnZVNpZGVCYXJQcm9wcy5jbGFzc05hbWV9fVxuICAgICAgICAgICAgICAgIEBzdGlja3k9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZVNpZGVCYXJcIn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZVNpZGVCYXI-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIEBwYW5lbGxlZD17e3RydWV9fVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7QHBhZ2VIZWFkZXIucGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e0BwYWdlSGVhZGVyLnJlc3BvbnNpdmV9fVxuICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgIEB0YWJzPXt7QHBhZ2VIZWFkZXIudGFic319XG4gICAgICAgICAgICAgICAgICAgIEBwYWdlVGl0bGU9e3tAcGFnZUhlYWRlci5wYWdlVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNQYWdlVGl0bGVCbG9jaz17e2hhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZWZhdWx0QmxvY2s9e3toYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNSaWdodFNpZGVJdGVtc0Jsb2NrPXt7aGFzUGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlclBhZ2VUaXRsZVwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIGl0ZW0gdG89XCJwYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnJpZ2h0U2lkZUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIEB2ZXJ0aWNhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIEBob3Jpem9udGFsUG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgQGhhc1NoYWRvdz17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgIEBjb2xvcj1cInN1YmR1ZWRcIlxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50Qm9keVxuICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRCb2R5UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIHt7I2lmIChhbmQgdGhpcy5jYW5GdWxsSGVpZ2h0IHRoaXMuZnVsbEhlaWdodCl9fVxuICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4R3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGd1dHRlclNpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y2xhc3NOYW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgdGhpcy5mdWxsSGVpZ2h0IHRydWUpIFwiZXVpLXlTY3JvbGxcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB0aGlzLmZ1bGxIZWlnaHQgXCJub3Njcm9sbFwiKSBcImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBncm93PXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJkZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhHcm91cD5cbiAgICAgICAgICAgICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudEJvZHk-XG4gICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudD5cbiAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgIDwvRXVpUGFnZT5cbiAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgPEV1aVBhZ2VcbiAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLmNsYXNzZXN9fVxuICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgQGdyb3c9e3tncm93fX1cbiAgICAgICAgICAgICAge3tpc1dpdGhpbkJyZWFrcG9pbnRzTW9kaWZpZXJ9fVxuICAgICAgICAgICAgICB7e3N0eWxlIChpbmxpbmVTdHlsZXMgbWluLWhlaWdodD10aGlzLm1pbkhlaWdodCl9fVxuICAgICAgICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICA-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keSBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX0-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzUGFnZUhlYWRlcn19XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUhlYWRlclxuICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7QHBhZ2VIZWFkZXIucmVzcG9uc2l2ZX19XG4gICAgICAgICAgICAgICAgICAgIEBpY29uVHlwZT17e0BwYWdlSGVhZGVyLmljb25UeXBlfX1cbiAgICAgICAgICAgICAgICAgICAgQHRhYnM9e3tAcGFnZUhlYWRlci50YWJzfX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZ2VUaXRsZT17e0BwYWdlSGVhZGVyLnBhZ2VUaXRsZX19XG4gICAgICAgICAgICAgICAgICAgIEBkZXNjcmlwdGlvbj17e0BwYWdlSGVhZGVyLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1BhZ2VUaXRsZUJsb2NrPXt7aGFzUGFnZUhlYWRlclBhZ2VUaXRsZUJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0RlZmF1bHRCbG9jaz17e2hhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzRGVzY3JpcHRpb25CbG9jaz17e2hhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1JpZ2h0U2lkZUl0ZW1zQmxvY2s9e3toYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDw6cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyUGFnZVRpdGxlXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZXNjcmlwdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgIDw6cmlnaHRTaWRlSXRlbXMgYXMgfGl0ZW18PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgaXRlbSB0bz1cInBhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc1wifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cmlnaHRTaWRlSXRlbXM-XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VIZWFkZXI-XG4gICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgIHt7IXRlbXBsYXRlLWxpbnQtZGlzYWJsZX19XG4gICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICByb2xlPXt7bnVsbH19XG4gICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCJcbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICB7eyF0ZW1wbGF0ZS1saW50LWVuYWJsZX19XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgQHZlcnRpY2FsUG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBAaG9yaXpvbnRhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgQGhhc1NoYWRvdz17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgQGNvbG9yPVwic3ViZHVlZFwiXG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y2xhc3NOYW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB0aGlzLmZ1bGxIZWlnaHQgXCJub3Njcm9sbFwiKSBcImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBncm93PXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudD5cblxuICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgIDwvRXVpUGFnZUJvZHk-XG4gICAgICAgICAgICA8L0V1aVBhZ2U-XG4gICAgICAgICAge3svaWZ9fVxuICAgICAgICB7e2Vsc2UgaWYgKGVxIHRoaXMudGVtcGxhdGUgXCJlbXB0eVwiKX19XG4gICAgICAgICAge3sjaWYgaGFzUGFnZVNpZGVCYXJCbG9ja319XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VTaWRlQmFyIEBzdGlja3k9e3t0cnVlfX0gQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fT5cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZVNpZGVCYXJcIn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZVNpZGVCYXI-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7QHBhZ2VIZWFkZXIucGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e0BwYWdlSGVhZGVyLnJlc3BvbnNpdmV9fVxuICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgIEB0YWJzPXt7QHBhZ2VIZWFkZXIudGFic319XG4gICAgICAgICAgICAgICAgICAgIEBwYWdlVGl0bGU9e3tAcGFnZUhlYWRlci5wYWdlVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNQYWdlVGl0bGVCbG9jaz17e2hhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZWZhdWx0QmxvY2s9e3toYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNSaWdodFNpZGVJdGVtc0Jsb2NrPXt7aGFzUGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlclBhZ2VUaXRsZVwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIGl0ZW0gdG89XCJwYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnJpZ2h0U2lkZUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIEBoYXNCb3JkZXI9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBAY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQ29udGVudEJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIHRoaXMuZnVsbEhlaWdodCBcIm5vc2Nyb2xsXCIpIFwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdyb3c9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJkZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50PlxuICAgICAgICAgICAgICA8L0V1aVBhZ2VCb2R5PlxuICAgICAgICAgICAgPC9FdWlQYWdlPlxuICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgQGdyb3c9e3tncm93fX1cbiAgICAgICAgICAgICAge3tpc1dpdGhpbkJyZWFrcG9pbnRzTW9kaWZpZXJ9fVxuICAgICAgICAgICAgICB7e3N0eWxlIChpbmxpbmVTdHlsZXMgbWluLWhlaWdodD10aGlzLm1pbkhlaWdodCl9fVxuICAgICAgICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICA-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgQGJvdHRvbUJvcmRlcj17e0BwYWdlSGVhZGVyLmJvdHRvbUJvcmRlcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3tAcGFnZUhlYWRlci5wYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7QHBhZ2VIZWFkZXIucmVzcG9uc2l2ZX19XG4gICAgICAgICAgICAgICAgICAgIEBpY29uVHlwZT17e0BwYWdlSGVhZGVyLmljb25UeXBlfX1cbiAgICAgICAgICAgICAgICAgICAgQHRhYnM9e3tAcGFnZUhlYWRlci50YWJzfX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZ2VUaXRsZT17e0BwYWdlSGVhZGVyLnBhZ2VUaXRsZX19XG4gICAgICAgICAgICAgICAgICAgIEBkZXNjcmlwdGlvbj17e0BwYWdlSGVhZGVyLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1BhZ2VUaXRsZUJsb2NrPXt7aGFzUGFnZUhlYWRlclBhZ2VUaXRsZUJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0RlZmF1bHRCbG9jaz17e2hhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzRGVzY3JpcHRpb25CbG9jaz17e2hhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1JpZ2h0U2lkZUl0ZW1zQmxvY2s9e3toYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDw6cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyUGFnZVRpdGxlXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZXNjcmlwdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgIDw6cmlnaHRTaWRlSXRlbXMgYXMgfGl0ZW18PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgaXRlbSB0bz1cInBhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc1wifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cmlnaHRTaWRlSXRlbXM-XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VIZWFkZXI-XG4gICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudFxuICAgICAgICAgICAgICAgICAgQGhhc0JvcmRlcj17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgIEBoYXNTaGFkb3c9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIEBjb2xvcj1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgIEBib3JkZXJSYWRpdXM9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQ29udGVudFByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQ29udGVudEJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIHRoaXMuZnVsbEhlaWdodCBcIm5vc2Nyb2xsXCIpIFwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdyb3c9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJkZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50PlxuICAgICAgICAgICAgICA8L0V1aVBhZ2VCb2R5PlxuICAgICAgICAgICAgPC9FdWlQYWdlPlxuICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICB7eyNpZiBoYXNQYWdlU2lkZUJhckJsb2NrfX1cbiAgICAgICAgICAgIDxFdWlQYWdlXG4gICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5jbGFzc2VzfX1cbiAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgIEBncm93PXt7Z3Jvd319XG4gICAgICAgICAgICAgIHt7aXNXaXRoaW5CcmVha3BvaW50c01vZGlmaWVyfX1cbiAgICAgICAgICAgICAge3tzdHlsZSAoaW5saW5lU3R5bGVzIG1pbi1oZWlnaHQ9dGhpcy5taW5IZWlnaHQpfX1cbiAgICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXVpUGFnZVNpZGVCYXJcbiAgICAgICAgICAgICAgICBjbGFzcz17e0BwYWdlU2lkZUJhclByb3BzLmNsYXNzTmFtZX19XG4gICAgICAgICAgICAgICAgQHN0aWNreT17e3RydWV9fVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlU2lkZUJhclwifX1cbiAgICAgICAgICAgICAgPC9FdWlQYWdlU2lkZUJhcj5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VCb2R5XG4gICAgICAgICAgICAgICAgQHBhbmVsbGVkPXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VCb2R5UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUJvZHlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgQHRhZ05hbWU9XCJkaXZcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgICA8RXVpUGFnZUhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgIEBib3R0b21Cb3JkZXI9e3tAcGFnZUhlYWRlci5ib3R0b21Cb3JkZXJ9fVxuICAgICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3tAcGFnZUhlYWRlci5wYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tAcGFnZUhlYWRlci5yZXNwb25zaXZlfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgICAgQHRhYnM9e3tAcGFnZUhlYWRlci50YWJzfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcGFnZVRpdGxlPXt7QHBhZ2VIZWFkZXIucGFnZVRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgQGhhc1BhZ2VUaXRsZUJsb2NrPXt7aGFzUGFnZUhlYWRlclBhZ2VUaXRsZUJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaGFzRGVmYXVsdEJsb2NrPXt7aGFzUGFnZUhlYWRlckRlZmF1bHRCbG9ja319XG4gICAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgICAgQGhhc1JpZ2h0U2lkZUl0ZW1zQmxvY2s9e3toYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja319XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyUGFnZVRpdGxlXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvOnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgPC86ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZXNjcmlwdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAgICA8LzpkZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgaXRlbSB0bz1cInBhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc1wifX1cbiAgICAgICAgICAgICAgICAgICAgICA8LzpyaWdodFNpZGVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICAgIEBoYXNTaGFkb3c9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNCb3JkZXI9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgIEBjb2xvcj1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgQGJvcmRlclJhZGl1cz1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y2xhc3NOYW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB0aGlzLmZ1bGxIZWlnaHQgXCJub3Njcm9sbFwiKSBcImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBncm93PXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8L0V1aVBhZ2VCb2R5PlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc0JvdHRvbUJhckJsb2NrfX1cbiAgICAgICAgICAgICAgICAgIDxFdWlCb3R0b21CYXJcbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgICBAcG9zaXRpb249e3tpZlxuICAgICAgICAgICAgICAgICAgICAgIChhbmQgdGhpcy5jYW5GdWxsSGVpZ2h0IHRoaXMuZnVsbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgICBcInN0YXRpY1wiXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGlja3lcIlxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImJvdHRvbUJhclwifX1cbiAgICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudEJvZHk-XG4gICAgICAgICAgICAgICAgICA8L0V1aUJvdHRvbUJhcj5cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZUJvZHk-XG4gICAgICAgICAgICA8L0V1aVBhZ2U-XG4gICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgIDxFdWlQYWdlXG4gICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5jbGFzc2VzfX1cbiAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgIEBncm93PXt7Z3Jvd319XG4gICAgICAgICAgICAgIHt7aXNXaXRoaW5CcmVha3BvaW50c01vZGlmaWVyfX1cbiAgICAgICAgICAgICAge3tzdHlsZSAoaW5saW5lU3R5bGVzIG1pbi1oZWlnaHQ9dGhpcy5taW5IZWlnaHQpfX1cbiAgICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXVpUGFnZUJvZHkgY2xhc3M9e3t0aGlzLnBhZ2VCb2R5UHJvcHNDbGFzc319PlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgQGJvdHRvbUJvcmRlcj17e0BwYWdlSGVhZGVyLmJvdHRvbUJvcmRlcn19XG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tAcGFnZUhlYWRlci5yZXNwb25zaXZlfX1cbiAgICAgICAgICAgICAgICAgICAgQGljb25UeXBlPXt7QHBhZ2VIZWFkZXIuaWNvblR5cGV9fVxuICAgICAgICAgICAgICAgICAgICBAdGFicz17e0BwYWdlSGVhZGVyLnRhYnN9fVxuICAgICAgICAgICAgICAgICAgICBAcGFnZVRpdGxlPXt7QHBhZ2VIZWFkZXIucGFnZVRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgQGRlc2NyaXB0aW9uPXt7QHBhZ2VIZWFkZXIuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgICAgICBAaGFzUGFnZVRpdGxlQmxvY2s9e3toYXNQYWdlSGVhZGVyUGFnZVRpdGxlQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzRGVmYXVsdEJsb2NrPXt7aGFzUGFnZUhlYWRlckRlZmF1bHRCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZXNjcmlwdGlvbkJsb2NrPXt7aGFzUGFnZUhlYWRlckRlc2NyaXB0aW9uQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzUmlnaHRTaWRlSXRlbXNCbG9jaz17e2hhc1BhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc0Jsb2NrfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPDpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJQYWdlVGl0bGVcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPDpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgPDpkZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlc2NyaXB0aW9uXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPDpyaWdodFNpZGVJdGVtcyBhcyB8aXRlbXw-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCBpdGVtIHRvPVwicGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpyaWdodFNpZGVJdGVtcz5cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUhlYWRlcj5cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICBAaGFzQm9yZGVyPXt7aWYgaGFzUGFnZUhlYWRlciBmYWxzZX19XG4gICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBAY29sb3I9XCJwbGFpblwiXG4gICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyNpZiAoYW5kIHRoaXMuY2FuRnVsbEhlaWdodCB0aGlzLmZ1bGxIZWlnaHQpfX1cbiAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndXR0ZXJTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIHRoaXMuZnVsbEhlaWdodCB0cnVlKSBcImV1aS15U2Nyb2xsXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGhpcy5mdWxsSGVpZ2h0IFwibm9zY3JvbGxcIikgXCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3Jvdz17e3RydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEl0ZW0-XG4gICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4R3JvdXA-XG4gICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzQm90dG9tQmFyQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPEV1aUJvdHRvbUJhclxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgIEBwb3NpdGlvbj17e2lmXG4gICAgICAgICAgICAgICAgICAgICAgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KVxuICAgICAgICAgICAgICAgICAgICAgIFwic3RhdGljXCJcbiAgICAgICAgICAgICAgICAgICAgICBcInN0aWNreVwiXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiYm90dG9tQmFyXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICAgIDwvRXVpQm90dG9tQmFyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgIDwvRXVpUGFnZT5cbiAgICAgICAgICB7ey9pZn19XG4gICAgICAgIHt7L2lmfX1cbiAgICAgIHt7L2xldH19XG4gICAge3svbGV0fX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFFNUMsT0FBTyxXQUFXLHVDQUF1QztBQUN6RCx1Q0FBdUM7QUFDdkMsV0FBVztBQUNYLDJCQUEyQjtBQUMzQixtQkFBbUI7QUFDbkIsb0RBQW9EO0FBQ3BELDhFQUE4RTtBQUM5RSxnRUFBZ0U7QUFDaEUseUNBQXlDO0FBQ3pDLDhDQUE4QztBQUM5QyxTQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUMsRUFBRSxRQUFRLHNCQUFzQjtBQUVqRCwwQ0FBMEM7QUFDMUMsK0NBQStDO0FBQy9DLFdBQVc7QUFDWCwwQkFBMEI7QUFDMUIscUJBQXFCO0FBQ3JCLG1CQUFtQjtBQUNuQixtQ0FBbUM7QUFDbkMsK0VBQStFO0FBQy9FLGtFQUFrRTtBQUNsRSxnRUFBZ0U7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEyd0JWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQTN3QkE7QUE0d0JaIn0"],"names":["TEMPLATES","BREAKPOINTS","EuiPageTemplate","Component","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","setIsWithinBreakpoints","value1","isWithinBreakpoints","minHeight","minHeight1","args","restrictWidth","width1","classes","fullHeightClass","fullHeight","canFullHeight","yScrollClass","template","pageBodyPropsClass","pageBodyProps","className","pageContentPropsClass","pageContentProps","pageContentBodyPropsClass","pageContentBodyProps","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","useIsWithinBreakpoints","or","eq","EuiPage","style","inlineStyles","EuiPageSideBar","EuiPageBody","EuiPageHeader","EuiPageContent","EuiPageContentBody","EuiFlexGroup","EuiFlexItem","classNames","EuiBottomBar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-page-template.js","sources":["../../src/components/eui-page-template.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport style from 'ember-style-modifier/modifiers/style';\n// import { tabbable } from 'tabbable';\n// import {\n// anchorPositionMapping,\n// displayMapping\n// } from '../../utils/css-mappings/eui-popover.ts';\n// import { paddingSizeMapping } from '../../utils/css-mappings/eui-panel.ts';\n// import { scheduleOnce, later, cancel } from '@ember/runloop';\n// import { assert } from '@ember/debug';\n// import { htmlSafe } from '@ember/template';\nimport { and, eq, or } from 'ember-truth-helpers';\n// import { action } from '@ember/object';\n// import { tracked } from '@glimmer/tracking';\n// import {\n// getTransitionTimings,\n// getWaitDuration,\n// performOnFrame\n// } from '../../utils/transition';\n// import { findPopoverPosition, getElementZIndex } from '../../utils/popover';\n// import { EuiPopoverPosition } from '../../utils/popover/types';\n// import { cascadingMenuKeys } from '../../utils/accesibility';\nimport argOrDefault, { argOrDefaultDecorator } from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport useIsWithinBreakpoints from '../modifiers/use-is-within-breakpoints.ts';\nimport EuiBottomBar from './eui-bottom-bar.gts';\nimport EuiFlexGroup from './eui-flex-group.gts';\nimport EuiFlexItem from './eui-flex-item.gts';\nimport EuiPage from './eui-page.gts';\nimport EuiPageBody from './eui-page-body.gts';\nimport EuiPageContent from './eui-page-content.gts';\nimport EuiPageContentBody from './eui-page-content-body.gts';\nimport EuiPageHeader from './eui-page-header.gts';\nimport EuiPageSideBar from './eui-page-side-bar.gts';\nimport type { EuiBreakpointSize } from '../utils/breakpoint.ts';\nimport type { EuiButtomBarArgs } from './eui-bottom-bar';\nimport type { EuiPageBodySignature } from './eui-page-body';\nimport type { EuiPageContentSignature } from './eui-page-content';\nimport type { EuiPageContentBodySignature } from './eui-page-content-body';\nimport type { EuiPageHeaderSignature } from './eui-page-header';\nimport type { EuiPageSideBarSignature } from './eui-page-side-bar';\nexport const TEMPLATES = [\n 'default',\n 'centeredBody',\n 'centeredContent',\n 'empty'\n] as const;\nconst BREAKPOINTS: EuiBreakpointSize[] = [\n 'm',\n 'l',\n 'xl'\n];\ninterface NormalProps {\n className?: string;\n}\nexport type EuiPageTemplateProps = {\n template?: (typeof TEMPLATES)[number];\n pageBodyProps: NormalProps & EuiPageBodySignature['Args'];\n pageContentProps: NormalProps & EuiPageContentSignature['Args'];\n pageContentBodyProps: NormalProps & EuiPageContentBodySignature['Args'];\n pageHeader: NormalProps & EuiPageHeaderSignature['Args'];\n pageSideBarProps: NormalProps & EuiPageSideBarSignature['Args'];\n /**\n * Adds a bottom bar to the page template\n */ bottomBar?: any;\n /**\n * Adds a bottom bar to the page template\n */ hasBottomBarBlock?: boolean;\n /**\n * Gets passed along to the #EuiBottomBar component if `bottomBar` has contents\n */ bottomBarProps?: EuiButtomBarArgs;\n /* Stretches or restricts the height to 100% of the parent;\n * `true`: scrolls the EuiPageContentBody;\n * `noscroll`: removes all scroll ability;\n * Only works when `template = 'default | empty'` and breakpoint is `m` and above\n */ fullHeight?: boolean;\n /**\n * Minimum height in which to enforce scrolling\n */ minHeight?: number;\n restrictWidth?: boolean | number | string;\n grow?: boolean;\n paddingSize?: EuiPageSideBarSignature['Args']['paddingSize'];\n hasPageSideBarBlock?: boolean;\n hasPageHeaderPageTitleBlock?: boolean;\n hasPageHeaderDefaultBlock?: boolean;\n hasPageHeaderRightSideItemsBlock?: boolean;\n hasPageHeaderDescriptionBlock?: boolean;\n hasPageHeader?: boolean;\n hasPageContent?: boolean;\n hasPageContentBody?: boolean;\n};\nexport interface EuiPageTemplateSignature {\n Element: HTMLElement;\n Args: EuiPageTemplateProps;\n Blocks: {\n default: [];\n pageSideBar: [];\n pageHeaderPageTitle: [];\n pageHeaderDefault: [];\n pageHeaderDescription: [];\n pageHeaderRightSideItems: EuiPageHeaderSignature['Blocks']['rightSideItems'];\n bottomBar: [];\n };\n}\nexport default class EuiPageTemplate extends Component<EuiPageTemplateSignature> {\n // Defaults\n @argOrDefaultDecorator(false)\n fullHeight: boolean;\n @argOrDefaultDecorator('default')\n template: (typeof TEMPLATES)[number];\n @tracked\n isWithinBreakpoints = false;\n setIsWithinBreakpoints = (value1: boolean)=>{\n this.isWithinBreakpoints = value1;\n };\n get minHeight() {\n const minHeight1 = this.args.minHeight ?? 460;\n if (typeof this.args.minHeight === 'number') {\n return `${minHeight1}px`;\n }\n return minHeight1;\n }\n get restrictWidth() {\n const width1 = this.args.restrictWidth ?? true;\n if (typeof this.args.restrictWidth === 'number') {\n return `${width1}px`;\n }\n return width1;\n }\n get classes() {\n return `euiPageTemplate ${this.fullHeightClass}`;\n }\n get fullHeightClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-fullHeight ' : '';\n }\n get yScrollClass() {\n return this.fullHeight && this.canFullHeight ? 'eui-yScroll ' : '';\n }\n get canFullHeight() {\n return (this.isWithinBreakpoints && (this.template === 'default' || this.template === 'empty'));\n }\n get pageBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageBodyProps?.className}`;\n }\n get pageContentPropsClass() {\n return `${this.yScrollClass} ${this.args.pageContentProps?.className}`;\n }\n get pageContentBodyPropsClass() {\n return `${this.fullHeightClass} ${this.args.pageContentBodyProps?.className}`;\n }\n static{\n template(`\n {{#let\n (argOrDefault @grow true)\n (argOrDefault @paddingSize \"l\")\n (and (argOrDefault @hasBottomBarBlock true) (has-block \"bottomBar\"))\n (and (argOrDefault @hasPageSideBarBlock true) (has-block \"pageSideBar\"))\n (and\n (argOrDefault @hasPageHeaderPageTitleBlock true)\n (has-block \"pageHeaderPageTitle\")\n )\n (and\n (argOrDefault @hasPageHeaderDefaultBlock true)\n (has-block \"pageHeaderDefault\")\n )\n (and\n (argOrDefault @hasPageHeaderRightSideItemsBlock true)\n (has-block \"pageHeaderRightSideItems\")\n )\n (and\n (argOrDefault @hasPageHeaderDescriptionBlock true)\n (has-block \"pageHeaderDescription\")\n )\n (modifier\n useIsWithinBreakpoints\n sizes=BREAKPOINTS\n isActive=true\n setIsWithinBreakpointsValue=this.setIsWithinBreakpoints\n )\n as |grow paddingSize hasBottomBarBlock hasPageSideBarBlock hasPageHeaderPageTitleBlock hasPageHeaderDefaultBlock hasPageHeaderRightSideItemsBlock hasPageHeaderDescriptionBlock isWithinBreakpointsModifier|\n }}\n {{#let\n (or\n @pageHeader\n hasPageHeaderPageTitleBlock\n hasPageHeaderDefaultBlock\n hasPageHeaderRightSideItemsBlock\n hasPageHeaderDescriptionBlock\n )\n as |hasPageHeader|\n }}\n {{#if (eq this.template \"centeredBody\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @restrictWidth={{false}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize=\"none\"\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageBody>\n <EuiPageContent\n class={{this.pageContentPropsClass}}\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasBorder={{@pageContentProps.hasBorder}}\n @hasShadow={{@pageContentProps.hasShadow}}\n @color={{@pageContentProps.color}}\n @borderRadius={{@pageContentProps.borderRadius}}\n @grow={{@pageContentProps.grow}}\n @role={{@pageContentProps.role}}\n @paddingSize={{paddingSize}}\n >\n <EuiPageContentBody\n class={{this.pageContentBodyPropsClass}}\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"centeredContent\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n {{!template-lint-disable}}\n <EuiPageContent\n role={{null}}\n @borderRadius=\"none\"\n @hasShadow={{false}}\n @paddingSize={{paddingSize}}\n style=\"display: flex\"\n >\n {{!template-lint-enable}}\n <EuiPageContent\n @verticalPosition=\"center\"\n @horizontalPosition=\"center\"\n @hasShadow={{false}}\n @color=\"subdued\"\n @paddingSize={{paddingSize}}\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else if (eq this.template \"empty\")}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar @sticky={{true}} @paddingSize={{paddingSize}}>\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @paddingSize={{paddingSize}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize={{paddingSize}}\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageBodyPropsClass}}\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n @restrictWidth={{false}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"transparent\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n @restrictWidth={{false}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{else}}\n {{#if hasPageSideBarBlock}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageSideBar\n class={{@pageSideBarProps.className}}\n @sticky={{true}}\n @paddingSize={{paddingSize}}\n >\n {{yield to=\"pageSideBar\"}}\n </EuiPageSideBar>\n <EuiPageBody\n @panelled={{true}}\n @paddingSize=\"none\"\n class={{this.pageBodyPropsClass}}\n >\n <EuiPageBody\n class={{this.pageBodyPropsClass}}\n @paddingSize={{paddingSize}}\n @tagName=\"div\"\n >\n {{#if hasPageHeader}}\n <EuiPageHeader\n @bottomBorder={{@pageHeader.bottomBorder}}\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{@pageHeader.paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasShadow={{false}}\n @hasBorder={{false}}\n @color=\"transparent\"\n @borderRadius=\"none\"\n @paddingSize=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n </EuiPageBody>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{else}}\n <EuiPage\n class={{this.classes}}\n @paddingSize=\"none\"\n @grow={{grow}}\n {{isWithinBreakpointsModifier}}\n {{style (inlineStyles min-height=this.minHeight)}}\n ...attributes\n >\n <EuiPageBody class={{this.pageBodyPropsClass}}>\n {{#if hasPageHeader}}\n <EuiPageHeader\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @bottomBorder={{@pageHeader.bottomBorder}}\n @paddingSize={{paddingSize}}\n @responsive={{@pageHeader.responsive}}\n @iconType={{@pageHeader.iconType}}\n @tabs={{@pageHeader.tabs}}\n @pageTitle={{@pageHeader.pageTitle}}\n @description={{@pageHeader.description}}\n @hasPageTitleBlock={{hasPageHeaderPageTitleBlock}}\n @hasDefaultBlock={{hasPageHeaderDefaultBlock}}\n @hasDescriptionBlock={{hasPageHeaderDescriptionBlock}}\n @hasRightSideItemsBlock={{hasPageHeaderRightSideItemsBlock}}\n >\n <:pageTitle>\n {{yield to=\"pageHeaderPageTitle\"}}\n </:pageTitle>\n <:default>\n {{yield to=\"pageHeaderDefault\"}}\n </:default>\n <:description>\n {{yield to=\"pageHeaderDescription\"}}\n </:description>\n <:rightSideItems as |item|>\n {{yield item to=\"pageHeaderRightSideItems\"}}\n </:rightSideItems>\n </EuiPageHeader>\n {{/if}}\n <EuiPageContent\n @hasBorder={{if hasPageHeader false}}\n @hasShadow={{false}}\n @paddingSize=\"none\"\n @color=\"plain\"\n @borderRadius=\"none\"\n class={{this.pageContentPropsClass}}\n >\n <EuiPageContentBody\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n @paddingSize={{paddingSize}}\n class={{this.pageContentBodyPropsClass}}\n >\n {{#if (and this.canFullHeight this.fullHeight)}}\n <EuiFlexGroup\n class=\"eui-fullHeight\"\n @gutterSize=\"none\"\n @direction=\"column\"\n @responsive={{false}}\n >\n <EuiFlexItem\n class={{classNames\n (if (eq this.fullHeight true) \"eui-yScroll\")\n (if\n (eq this.fullHeight \"noscroll\") \"eui-fullHeight\"\n )\n }}\n @grow={{true}}\n >\n {{yield to=\"default\"}}\n </EuiFlexItem>\n </EuiFlexGroup>\n {{else}}\n {{yield to=\"default\"}}\n {{/if}}\n </EuiPageContentBody>\n </EuiPageContent>\n {{#if hasBottomBarBlock}}\n <EuiBottomBar\n @paddingSize={{paddingSize}}\n @position={{if\n (and this.canFullHeight this.fullHeight)\n \"static\"\n \"sticky\"\n }}\n >\n <EuiPageContentBody\n @paddingSize=\"none\"\n {{!@glint-expect-error}}\n @restrictWidth={{this.restrictWidth}}\n >\n {{yield to=\"bottomBar\"}}\n </EuiPageContentBody>\n </EuiBottomBar>\n {{/if}}\n </EuiPageBody>\n </EuiPage>\n {{/if}}\n {{/if}}\n {{/let}}\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wYWdlLXRlbXBsYXRlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnZW1iZXItc3R5bGUtbW9kaWZpZXIvbW9kaWZpZXJzL3N0eWxlJztcbi8vIGltcG9ydCB7IHRhYmJhYmxlIH0gZnJvbSAndGFiYmFibGUnO1xuLy8gaW1wb3J0IHtcbi8vICAgYW5jaG9yUG9zaXRpb25NYXBwaW5nLFxuLy8gICBkaXNwbGF5TWFwcGluZ1xuLy8gfSBmcm9tICcuLi8uLi91dGlscy9jc3MtbWFwcGluZ3MvZXVpLXBvcG92ZXIudHMnO1xuLy8gaW1wb3J0IHsgcGFkZGluZ1NpemVNYXBwaW5nIH0gZnJvbSAnLi4vLi4vdXRpbHMvY3NzLW1hcHBpbmdzL2V1aS1wYW5lbC50cyc7XG4vLyBpbXBvcnQgeyBzY2hlZHVsZU9uY2UsIGxhdGVyLCBjYW5jZWwgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG4vLyBpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZW1iZXIvZGVidWcnO1xuLy8gaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuaW1wb3J0IHsgYW5kLCBlcSxvciB9IGZyb20gJ2VtYmVyLXRydXRoLWhlbHBlcnMnO1xuXG4vLyBpbXBvcnQgeyBhY3Rpb24gfSBmcm9tICdAZW1iZXIvb2JqZWN0Jztcbi8vIGltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG4vLyBpbXBvcnQge1xuLy8gICBnZXRUcmFuc2l0aW9uVGltaW5ncyxcbi8vICAgZ2V0V2FpdER1cmF0aW9uLFxuLy8gICBwZXJmb3JtT25GcmFtZVxuLy8gfSBmcm9tICcuLi8uLi91dGlscy90cmFuc2l0aW9uJztcbi8vIGltcG9ydCB7IGZpbmRQb3BvdmVyUG9zaXRpb24sIGdldEVsZW1lbnRaSW5kZXggfSBmcm9tICcuLi8uLi91dGlscy9wb3BvdmVyJztcbi8vIGltcG9ydCB7IEV1aVBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL3BvcG92ZXIvdHlwZXMnO1xuLy8gaW1wb3J0IHsgY2FzY2FkaW5nTWVudUtleXMgfSBmcm9tICcuLi8uLi91dGlscy9hY2Nlc2liaWxpdHknO1xuaW1wb3J0IGFyZ09yRGVmYXVsdCwgeyBhcmdPckRlZmF1bHREZWNvcmF0b3IgfSBmcm9tICcuLi9oZWxwZXJzL2FyZy1vci1kZWZhdWx0LnRzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtbmFtZXMudHMnO1xuaW1wb3J0IGlubGluZVN0eWxlcyBmcm9tICcuLi9oZWxwZXJzL2lubGluZS1zdHlsZXMudHMnO1xuaW1wb3J0IHVzZUlzV2l0aGluQnJlYWtwb2ludHMgZnJvbSAnLi4vbW9kaWZpZXJzL3VzZS1pcy13aXRoaW4tYnJlYWtwb2ludHMudHMnO1xuaW1wb3J0IEV1aUJvdHRvbUJhciBmcm9tICcuL2V1aS1ib3R0b20tYmFyLmd0cyc7XG5pbXBvcnQgRXVpRmxleEdyb3VwIGZyb20gJy4vZXVpLWZsZXgtZ3JvdXAuZ3RzJztcbmltcG9ydCBFdWlGbGV4SXRlbSBmcm9tICcuL2V1aS1mbGV4LWl0ZW0uZ3RzJztcbmltcG9ydCBFdWlQYWdlIGZyb20gJy4vZXVpLXBhZ2UuZ3RzJztcbmltcG9ydCBFdWlQYWdlQm9keSBmcm9tICcuL2V1aS1wYWdlLWJvZHkuZ3RzJztcbmltcG9ydCBFdWlQYWdlQ29udGVudCBmcm9tICcuL2V1aS1wYWdlLWNvbnRlbnQuZ3RzJztcbmltcG9ydCBFdWlQYWdlQ29udGVudEJvZHkgZnJvbSAnLi9ldWktcGFnZS1jb250ZW50LWJvZHkuZ3RzJztcbmltcG9ydCBFdWlQYWdlSGVhZGVyIGZyb20gJy4vZXVpLXBhZ2UtaGVhZGVyLmd0cyc7XG5pbXBvcnQgRXVpUGFnZVNpZGVCYXIgZnJvbSAnLi9ldWktcGFnZS1zaWRlLWJhci5ndHMnO1xuXG5pbXBvcnQgdHlwZSB7IEV1aUJyZWFrcG9pbnRTaXplIH0gZnJvbSAnLi4vdXRpbHMvYnJlYWtwb2ludC50cyc7XG5pbXBvcnQgdHlwZSB7IEV1aUJ1dHRvbUJhckFyZ3MgfSBmcm9tICcuL2V1aS1ib3R0b20tYmFyJztcbmltcG9ydCB0eXBlIHsgRXVpUGFnZUJvZHlTaWduYXR1cmUgfSBmcm9tICcuL2V1aS1wYWdlLWJvZHknO1xuaW1wb3J0IHR5cGUgeyBFdWlQYWdlQ29udGVudFNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXBhZ2UtY29udGVudCc7XG5pbXBvcnQgdHlwZSB7IEV1aVBhZ2VDb250ZW50Qm9keVNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXBhZ2UtY29udGVudC1ib2R5JztcbmltcG9ydCB0eXBlIHsgRXVpUGFnZUhlYWRlclNpZ25hdHVyZSB9IGZyb20gJy4vZXVpLXBhZ2UtaGVhZGVyJztcbmltcG9ydCB0eXBlIHsgRXVpUGFnZVNpZGVCYXJTaWduYXR1cmUgfSBmcm9tICcuL2V1aS1wYWdlLXNpZGUtYmFyJztcblxuZXhwb3J0IGNvbnN0IFRFTVBMQVRFUyA9IFtcbiAgJ2RlZmF1bHQnLFxuICAnY2VudGVyZWRCb2R5JyxcbiAgJ2NlbnRlcmVkQ29udGVudCcsXG4gICdlbXB0eSdcbl0gYXMgY29uc3Q7XG5cbmNvbnN0IEJSRUFLUE9JTlRTOiBFdWlCcmVha3BvaW50U2l6ZVtdID0gWydtJywgJ2wnLCAneGwnXTtcblxuaW50ZXJmYWNlIE5vcm1hbFByb3BzIHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBFdWlQYWdlVGVtcGxhdGVQcm9wcyA9IHtcbiAgdGVtcGxhdGU_OiAodHlwZW9mIFRFTVBMQVRFUylbbnVtYmVyXTtcblxuICBwYWdlQm9keVByb3BzOiBOb3JtYWxQcm9wcyAmIEV1aVBhZ2VCb2R5U2lnbmF0dXJlWydBcmdzJ107XG4gIHBhZ2VDb250ZW50UHJvcHM6IE5vcm1hbFByb3BzICYgRXVpUGFnZUNvbnRlbnRTaWduYXR1cmVbJ0FyZ3MnXTtcbiAgcGFnZUNvbnRlbnRCb2R5UHJvcHM6IE5vcm1hbFByb3BzICYgRXVpUGFnZUNvbnRlbnRCb2R5U2lnbmF0dXJlWydBcmdzJ107XG5cbiAgcGFnZUhlYWRlcjogTm9ybWFsUHJvcHMgJiBFdWlQYWdlSGVhZGVyU2lnbmF0dXJlWydBcmdzJ107XG5cbiAgcGFnZVNpZGVCYXJQcm9wczogTm9ybWFsUHJvcHMgJiBFdWlQYWdlU2lkZUJhclNpZ25hdHVyZVsnQXJncyddO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgYm90dG9tIGJhciB0byB0aGUgcGFnZSB0ZW1wbGF0ZVxuICAgKi9cbiAgYm90dG9tQmFyPzogYW55O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgYm90dG9tIGJhciB0byB0aGUgcGFnZSB0ZW1wbGF0ZVxuICAgKi9cbiAgaGFzQm90dG9tQmFyQmxvY2s_OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHZXRzIHBhc3NlZCBhbG9uZyB0byB0aGUgI0V1aUJvdHRvbUJhciBjb21wb25lbnQgaWYgYGJvdHRvbUJhcmAgaGFzIGNvbnRlbnRzXG4gICAqL1xuICBib3R0b21CYXJQcm9wcz86IEV1aUJ1dHRvbUJhckFyZ3M7XG4gIC8qIFN0cmV0Y2hlcyBvciByZXN0cmljdHMgdGhlIGhlaWdodCB0byAxMDAlIG9mIHRoZSBwYXJlbnQ7XG4gICAqIGB0cnVlYDogc2Nyb2xscyB0aGUgRXVpUGFnZUNvbnRlbnRCb2R5O1xuICAgKiBgbm9zY3JvbGxgOiByZW1vdmVzIGFsbCBzY3JvbGwgYWJpbGl0eTtcbiAgICogT25seSB3b3JrcyB3aGVuIGB0ZW1wbGF0ZSA9ICdkZWZhdWx0IHwgZW1wdHknYCBhbmQgYnJlYWtwb2ludCBpcyBgbWAgYW5kIGFib3ZlXG4gICAqL1xuICBmdWxsSGVpZ2h0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1pbmltdW0gaGVpZ2h0IGluIHdoaWNoIHRvIGVuZm9yY2Ugc2Nyb2xsaW5nXG4gICAqL1xuICBtaW5IZWlnaHQ_OiBudW1iZXI7XG5cbiAgcmVzdHJpY3RXaWR0aD86IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbiAgZ3Jvdz86IGJvb2xlYW47XG4gIHBhZGRpbmdTaXplPzogRXVpUGFnZVNpZGVCYXJTaWduYXR1cmVbJ0FyZ3MnXVsncGFkZGluZ1NpemUnXTtcbiAgaGFzUGFnZVNpZGVCYXJCbG9jaz86IGJvb2xlYW47XG4gIGhhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9jaz86IGJvb2xlYW47XG4gIGhhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2s_OiBib29sZWFuO1xuICBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9jaz86IGJvb2xlYW47XG4gIGhhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrPzogYm9vbGVhbjtcbiAgaGFzUGFnZUhlYWRlcj86IGJvb2xlYW47XG4gIGhhc1BhZ2VDb250ZW50PzogYm9vbGVhbjtcbiAgaGFzUGFnZUNvbnRlbnRCb2R5PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXVpUGFnZVRlbXBsYXRlU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIEFyZ3M6IEV1aVBhZ2VUZW1wbGF0ZVByb3BzO1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXTtcbiAgICBwYWdlU2lkZUJhcjogW107XG4gICAgcGFnZUhlYWRlclBhZ2VUaXRsZTogW107XG4gICAgcGFnZUhlYWRlckRlZmF1bHQ6IFtdO1xuICAgIHBhZ2VIZWFkZXJEZXNjcmlwdGlvbjogW107XG4gICAgcGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zOiBFdWlQYWdlSGVhZGVyU2lnbmF0dXJlWydCbG9ja3MnXVsncmlnaHRTaWRlSXRlbXMnXTtcbiAgICBib3R0b21CYXI6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFdWlQYWdlVGVtcGxhdGUgZXh0ZW5kcyBDb21wb25lbnQ8RXVpUGFnZVRlbXBsYXRlU2lnbmF0dXJlPiB7XG4gIC8vIERlZmF1bHRzXG4gIEBhcmdPckRlZmF1bHREZWNvcmF0b3IoZmFsc2UpIGZ1bGxIZWlnaHQhOiBib29sZWFuO1xuICBAYXJnT3JEZWZhdWx0RGVjb3JhdG9yKCdkZWZhdWx0JykgdGVtcGxhdGUhOiAodHlwZW9mIFRFTVBMQVRFUylbbnVtYmVyXTtcblxuICBAdHJhY2tlZCBpc1dpdGhpbkJyZWFrcG9pbnRzID0gZmFsc2U7XG5cbiAgc2V0SXNXaXRoaW5CcmVha3BvaW50cyA9ICh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgIHRoaXMuaXNXaXRoaW5CcmVha3BvaW50cyA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBtaW5IZWlnaHQoKSB7XG4gICAgY29uc3QgbWluSGVpZ2h0ID0gdGhpcy5hcmdzLm1pbkhlaWdodCA_PyA0NjA7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuYXJncy5taW5IZWlnaHQgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gYCR7bWluSGVpZ2h0fXB4YDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWluSGVpZ2h0O1xuICB9XG5cbiAgZ2V0IHJlc3RyaWN0V2lkdGgoKSB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmFyZ3MucmVzdHJpY3RXaWR0aCA_PyB0cnVlO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmFyZ3MucmVzdHJpY3RXaWR0aCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBgJHt3aWR0aH1weGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdpZHRoO1xuICB9XG5cbiAgZ2V0IGNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIGBldWlQYWdlVGVtcGxhdGUgJHt0aGlzLmZ1bGxIZWlnaHRDbGFzc31gO1xuICB9XG5cbiAgZ2V0IGZ1bGxIZWlnaHRDbGFzcygpIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsSGVpZ2h0ICYmIHRoaXMuY2FuRnVsbEhlaWdodCA_ICdldWktZnVsbEhlaWdodCAnIDogJyc7XG4gIH1cblxuICBnZXQgeVNjcm9sbENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bGxIZWlnaHQgJiYgdGhpcy5jYW5GdWxsSGVpZ2h0ID8gJ2V1aS15U2Nyb2xsICcgOiAnJztcbiAgfVxuXG4gIGdldCBjYW5GdWxsSGVpZ2h0KCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzV2l0aGluQnJlYWtwb2ludHMgJiZcbiAgICAgICh0aGlzLnRlbXBsYXRlID09PSAnZGVmYXVsdCcgfHwgdGhpcy50ZW1wbGF0ZSA9PT0gJ2VtcHR5JylcbiAgICApO1xuICB9XG5cbiAgZ2V0IHBhZ2VCb2R5UHJvcHNDbGFzcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5mdWxsSGVpZ2h0Q2xhc3N9ICR7dGhpcy5hcmdzLnBhZ2VCb2R5UHJvcHM_LmNsYXNzTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHBhZ2VDb250ZW50UHJvcHNDbGFzcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy55U2Nyb2xsQ2xhc3N9ICR7dGhpcy5hcmdzLnBhZ2VDb250ZW50UHJvcHM_LmNsYXNzTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuZnVsbEhlaWdodENsYXNzfSAke3RoaXMuYXJncy5wYWdlQ29udGVudEJvZHlQcm9wcz8uY2xhc3NOYW1lfWA7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjbGV0XG4gICAgICAoYXJnT3JEZWZhdWx0IEBncm93IHRydWUpXG4gICAgICAoYXJnT3JEZWZhdWx0IEBwYWRkaW5nU2l6ZSBcImxcIilcbiAgICAgIChhbmQgKGFyZ09yRGVmYXVsdCBAaGFzQm90dG9tQmFyQmxvY2sgdHJ1ZSkgKGhhcy1ibG9jayBcImJvdHRvbUJhclwiKSlcbiAgICAgIChhbmQgKGFyZ09yRGVmYXVsdCBAaGFzUGFnZVNpZGVCYXJCbG9jayB0cnVlKSAoaGFzLWJsb2NrIFwicGFnZVNpZGVCYXJcIikpXG4gICAgICAoYW5kXG4gICAgICAgIChhcmdPckRlZmF1bHQgQGhhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9jayB0cnVlKVxuICAgICAgICAoaGFzLWJsb2NrIFwicGFnZUhlYWRlclBhZ2VUaXRsZVwiKVxuICAgICAgKVxuICAgICAgKGFuZFxuICAgICAgICAoYXJnT3JEZWZhdWx0IEBoYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrIHRydWUpXG4gICAgICAgIChoYXMtYmxvY2sgXCJwYWdlSGVhZGVyRGVmYXVsdFwiKVxuICAgICAgKVxuICAgICAgKGFuZFxuICAgICAgICAoYXJnT3JEZWZhdWx0IEBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9jayB0cnVlKVxuICAgICAgICAoaGFzLWJsb2NrIFwicGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zXCIpXG4gICAgICApXG4gICAgICAoYW5kXG4gICAgICAgIChhcmdPckRlZmF1bHQgQGhhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrIHRydWUpXG4gICAgICAgIChoYXMtYmxvY2sgXCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIilcbiAgICAgIClcbiAgICAgIChtb2RpZmllclxuICAgICAgICB1c2VJc1dpdGhpbkJyZWFrcG9pbnRzXG4gICAgICAgIHNpemVzPUJSRUFLUE9JTlRTXG4gICAgICAgIGlzQWN0aXZlPXRydWVcbiAgICAgICAgc2V0SXNXaXRoaW5CcmVha3BvaW50c1ZhbHVlPXRoaXMuc2V0SXNXaXRoaW5CcmVha3BvaW50c1xuICAgICAgKVxuICAgICAgYXMgfGdyb3cgcGFkZGluZ1NpemUgaGFzQm90dG9tQmFyQmxvY2sgaGFzUGFnZVNpZGVCYXJCbG9jayBoYXNQYWdlSGVhZGVyUGFnZVRpdGxlQmxvY2sgaGFzUGFnZUhlYWRlckRlZmF1bHRCbG9jayBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9jayBoYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9jayBpc1dpdGhpbkJyZWFrcG9pbnRzTW9kaWZpZXJ8XG4gICAgfX1cbiAgICAgIHt7I2xldFxuICAgICAgICAob3JcbiAgICAgICAgICBAcGFnZUhlYWRlclxuICAgICAgICAgIGhhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja1xuICAgICAgICAgIGhhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2tcbiAgICAgICAgICBoYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja1xuICAgICAgICAgIGhhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrXG4gICAgICAgIClcbiAgICAgICAgYXMgfGhhc1BhZ2VIZWFkZXJ8XG4gICAgICB9fVxuICAgICAgICB7eyNpZiAoZXEgdGhpcy50ZW1wbGF0ZSBcImNlbnRlcmVkQm9keVwiKX19XG4gICAgICAgICAge3sjaWYgaGFzUGFnZVNpZGVCYXJCbG9ja319XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VTaWRlQmFyXG4gICAgICAgICAgICAgICAgY2xhc3M9e3tAcGFnZVNpZGVCYXJQcm9wcy5jbGFzc05hbWV9fVxuICAgICAgICAgICAgICAgIEBzdGlja3k9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZVNpZGVCYXJcIn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZVNpZGVCYXI-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxFdWlQYWdlSGVhZGVyXG4gICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7QHBhZ2VIZWFkZXIucmVzcG9uc2l2ZX19XG4gICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICBAdGFicz17e0BwYWdlSGVhZGVyLnRhYnN9fVxuICAgICAgICAgICAgICAgICAgQHBhZ2VUaXRsZT17e0BwYWdlSGVhZGVyLnBhZ2VUaXRsZX19XG4gICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICBAaGFzUGFnZVRpdGxlQmxvY2s9e3toYXNQYWdlSGVhZGVyUGFnZVRpdGxlQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgQGhhc0RlZmF1bHRCbG9jaz17e2hhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2t9fVxuICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICBAaGFzUmlnaHRTaWRlSXRlbXNCbG9jaz17e2hhc1BhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc0Jsb2NrfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJQYWdlVGl0bGVcIn19XG4gICAgICAgICAgICAgICAgICA8LzpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgIDwvOmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlc2NyaXB0aW9uXCJ9fVxuICAgICAgICAgICAgICAgICAgPC86ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAge3t5aWVsZCBpdGVtIHRvPVwicGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zXCJ9fVxuICAgICAgICAgICAgICAgICAgPC86cmlnaHRTaWRlSXRlbXM-XG4gICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICAgIEB2ZXJ0aWNhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIEBob3Jpem9udGFsUG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyNpZiAoYW5kIHRoaXMuY2FuRnVsbEhlaWdodCB0aGlzLmZ1bGxIZWlnaHQpfX1cbiAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndXR0ZXJTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIHRoaXMuZnVsbEhlaWdodCB0cnVlKSBcImV1aS15U2Nyb2xsXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGhpcy5mdWxsSGVpZ2h0IFwibm9zY3JvbGxcIikgXCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3Jvdz17e3RydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEl0ZW0-XG4gICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4R3JvdXA-XG4gICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgIDwvRXVpUGFnZUJvZHk-XG4gICAgICAgICAgICA8L0V1aVBhZ2U-XG4gICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgIDxFdWlQYWdlXG4gICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5jbGFzc2VzfX1cbiAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VCb2R5XG4gICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VCb2R5UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzUGFnZUhlYWRlcn19XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUhlYWRlclxuICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgQGJvdHRvbUJvcmRlcj17e0BwYWdlSGVhZGVyLmJvdHRvbUJvcmRlcn19XG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e0BwYWdlSGVhZGVyLnJlc3BvbnNpdmV9fVxuICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgIEB0YWJzPXt7QHBhZ2VIZWFkZXIudGFic319XG4gICAgICAgICAgICAgICAgICAgIEBwYWdlVGl0bGU9e3tAcGFnZUhlYWRlci5wYWdlVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNQYWdlVGl0bGVCbG9jaz17e2hhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZWZhdWx0QmxvY2s9e3toYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNSaWdodFNpZGVJdGVtc0Jsb2NrPXt7aGFzUGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlclBhZ2VUaXRsZVwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIGl0ZW0gdG89XCJwYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnJpZ2h0U2lkZUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUJvZHk-XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICAgIEB2ZXJ0aWNhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgQGhvcml6b250YWxQb3NpdGlvbj1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgIEBoYXNCb3JkZXI9e3tAcGFnZUNvbnRlbnRQcm9wcy5oYXNCb3JkZXJ9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7QHBhZ2VDb250ZW50UHJvcHMuaGFzU2hhZG93fX1cbiAgICAgICAgICAgICAgICAgICAgQGNvbG9yPXt7QHBhZ2VDb250ZW50UHJvcHMuY29sb3J9fVxuICAgICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPXt7QHBhZ2VDb250ZW50UHJvcHMuYm9yZGVyUmFkaXVzfX1cbiAgICAgICAgICAgICAgICAgICAgQGdyb3c9e3tAcGFnZUNvbnRlbnRQcm9wcy5ncm93fX1cbiAgICAgICAgICAgICAgICAgICAgQHJvbGU9e3tAcGFnZUNvbnRlbnRQcm9wcy5yb2xlfX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7I2lmIChhbmQgdGhpcy5jYW5GdWxsSGVpZ2h0IHRoaXMuZnVsbEhlaWdodCl9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGd1dHRlclNpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgdGhpcy5mdWxsSGVpZ2h0IHRydWUpIFwiZXVpLXlTY3JvbGxcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGhpcy5mdWxsSGVpZ2h0IFwibm9zY3JvbGxcIikgXCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3Jvdz17e3RydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEl0ZW0-XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhHcm91cD5cbiAgICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgIDwvRXVpUGFnZT5cbiAgICAgICAgICB7ey9pZn19XG4gICAgICAgIHt7ZWxzZSBpZiAoZXEgdGhpcy50ZW1wbGF0ZSBcImNlbnRlcmVkQ29udGVudFwiKX19XG4gICAgICAgICAge3sjaWYgaGFzUGFnZVNpZGVCYXJCbG9ja319XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VTaWRlQmFyXG4gICAgICAgICAgICAgICAgY2xhc3M9e3tAcGFnZVNpZGVCYXJQcm9wcy5jbGFzc05hbWV9fVxuICAgICAgICAgICAgICAgIEBzdGlja3k9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZVNpZGVCYXJcIn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZVNpZGVCYXI-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIEBwYW5lbGxlZD17e3RydWV9fVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7QHBhZ2VIZWFkZXIucGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e0BwYWdlSGVhZGVyLnJlc3BvbnNpdmV9fVxuICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgIEB0YWJzPXt7QHBhZ2VIZWFkZXIudGFic319XG4gICAgICAgICAgICAgICAgICAgIEBwYWdlVGl0bGU9e3tAcGFnZUhlYWRlci5wYWdlVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNQYWdlVGl0bGVCbG9jaz17e2hhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZWZhdWx0QmxvY2s9e3toYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNSaWdodFNpZGVJdGVtc0Jsb2NrPXt7aGFzUGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlclBhZ2VUaXRsZVwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIGl0ZW0gdG89XCJwYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnJpZ2h0U2lkZUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIEB2ZXJ0aWNhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIEBob3Jpem9udGFsUG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgQGhhc1NoYWRvdz17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgIEBjb2xvcj1cInN1YmR1ZWRcIlxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50Qm9keVxuICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRCb2R5UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIHt7I2lmIChhbmQgdGhpcy5jYW5GdWxsSGVpZ2h0IHRoaXMuZnVsbEhlaWdodCl9fVxuICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4R3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGd1dHRlclNpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBkaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y2xhc3NOYW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgdGhpcy5mdWxsSGVpZ2h0IHRydWUpIFwiZXVpLXlTY3JvbGxcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB0aGlzLmZ1bGxIZWlnaHQgXCJub3Njcm9sbFwiKSBcImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBncm93PXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJkZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhHcm91cD5cbiAgICAgICAgICAgICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudEJvZHk-XG4gICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudD5cbiAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgIDwvRXVpUGFnZT5cbiAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgPEV1aVBhZ2VcbiAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLmNsYXNzZXN9fVxuICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgQGdyb3c9e3tncm93fX1cbiAgICAgICAgICAgICAge3tpc1dpdGhpbkJyZWFrcG9pbnRzTW9kaWZpZXJ9fVxuICAgICAgICAgICAgICB7e3N0eWxlIChpbmxpbmVTdHlsZXMgbWluLWhlaWdodD10aGlzLm1pbkhlaWdodCl9fVxuICAgICAgICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICA-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keSBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX0-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzUGFnZUhlYWRlcn19XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUhlYWRlclxuICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7QHBhZ2VIZWFkZXIucmVzcG9uc2l2ZX19XG4gICAgICAgICAgICAgICAgICAgIEBpY29uVHlwZT17e0BwYWdlSGVhZGVyLmljb25UeXBlfX1cbiAgICAgICAgICAgICAgICAgICAgQHRhYnM9e3tAcGFnZUhlYWRlci50YWJzfX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZ2VUaXRsZT17e0BwYWdlSGVhZGVyLnBhZ2VUaXRsZX19XG4gICAgICAgICAgICAgICAgICAgIEBkZXNjcmlwdGlvbj17e0BwYWdlSGVhZGVyLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1BhZ2VUaXRsZUJsb2NrPXt7aGFzUGFnZUhlYWRlclBhZ2VUaXRsZUJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0RlZmF1bHRCbG9jaz17e2hhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzRGVzY3JpcHRpb25CbG9jaz17e2hhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1JpZ2h0U2lkZUl0ZW1zQmxvY2s9e3toYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDw6cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyUGFnZVRpdGxlXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZXNjcmlwdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgIDw6cmlnaHRTaWRlSXRlbXMgYXMgfGl0ZW18PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgaXRlbSB0bz1cInBhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc1wifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cmlnaHRTaWRlSXRlbXM-XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VIZWFkZXI-XG4gICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgIHt7IXRlbXBsYXRlLWxpbnQtZGlzYWJsZX19XG4gICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICByb2xlPXt7bnVsbH19XG4gICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCJcbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICB7eyF0ZW1wbGF0ZS1saW50LWVuYWJsZX19XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgQHZlcnRpY2FsUG9zaXRpb249XCJjZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBAaG9yaXpvbnRhbFBvc2l0aW9uPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgQGhhc1NoYWRvdz17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgQGNvbG9yPVwic3ViZHVlZFwiXG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y2xhc3NOYW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB0aGlzLmZ1bGxIZWlnaHQgXCJub3Njcm9sbFwiKSBcImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBncm93PXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudD5cblxuICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgIDwvRXVpUGFnZUJvZHk-XG4gICAgICAgICAgICA8L0V1aVBhZ2U-XG4gICAgICAgICAge3svaWZ9fVxuICAgICAgICB7e2Vsc2UgaWYgKGVxIHRoaXMudGVtcGxhdGUgXCJlbXB0eVwiKX19XG4gICAgICAgICAge3sjaWYgaGFzUGFnZVNpZGVCYXJCbG9ja319XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICBAZ3Jvdz17e2dyb3d9fVxuICAgICAgICAgICAgICB7e2lzV2l0aGluQnJlYWtwb2ludHNNb2RpZmllcn19XG4gICAgICAgICAgICAgIHt7c3R5bGUgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PXRoaXMubWluSGVpZ2h0KX19XG4gICAgICAgICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VTaWRlQmFyIEBzdGlja3k9e3t0cnVlfX0gQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fT5cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZVNpZGVCYXJcIn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZVNpZGVCYXI-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7QHBhZ2VIZWFkZXIucGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e0BwYWdlSGVhZGVyLnJlc3BvbnNpdmV9fVxuICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgIEB0YWJzPXt7QHBhZ2VIZWFkZXIudGFic319XG4gICAgICAgICAgICAgICAgICAgIEBwYWdlVGl0bGU9e3tAcGFnZUhlYWRlci5wYWdlVGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNQYWdlVGl0bGVCbG9jaz17e2hhc1BhZ2VIZWFkZXJQYWdlVGl0bGVCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZWZhdWx0QmxvY2s9e3toYXNQYWdlSGVhZGVyRGVmYXVsdEJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNSaWdodFNpZGVJdGVtc0Jsb2NrPXt7aGFzUGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlclBhZ2VUaXRsZVwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIGl0ZW0gdG89XCJwYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnJpZ2h0U2lkZUl0ZW1zPlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRcbiAgICAgICAgICAgICAgICAgIEBoYXNCb3JkZXI9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBAY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQ29udGVudEJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIHRoaXMuZnVsbEhlaWdodCBcIm5vc2Nyb2xsXCIpIFwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdyb3c9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJkZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50PlxuICAgICAgICAgICAgICA8L0V1aVBhZ2VCb2R5PlxuICAgICAgICAgICAgPC9FdWlQYWdlPlxuICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICA8RXVpUGFnZVxuICAgICAgICAgICAgICBjbGFzcz17e3RoaXMuY2xhc3Nlc319XG4gICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgQGdyb3c9e3tncm93fX1cbiAgICAgICAgICAgICAge3tpc1dpdGhpbkJyZWFrcG9pbnRzTW9kaWZpZXJ9fVxuICAgICAgICAgICAgICB7e3N0eWxlIChpbmxpbmVTdHlsZXMgbWluLWhlaWdodD10aGlzLm1pbkhlaWdodCl9fVxuICAgICAgICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICA-XG4gICAgICAgICAgICAgIDxFdWlQYWdlQm9keVxuICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgQGJvdHRvbUJvcmRlcj17e0BwYWdlSGVhZGVyLmJvdHRvbUJvcmRlcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3tAcGFnZUhlYWRlci5wYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7QHBhZ2VIZWFkZXIucmVzcG9uc2l2ZX19XG4gICAgICAgICAgICAgICAgICAgIEBpY29uVHlwZT17e0BwYWdlSGVhZGVyLmljb25UeXBlfX1cbiAgICAgICAgICAgICAgICAgICAgQHRhYnM9e3tAcGFnZUhlYWRlci50YWJzfX1cbiAgICAgICAgICAgICAgICAgICAgQHBhZ2VUaXRsZT17e0BwYWdlSGVhZGVyLnBhZ2VUaXRsZX19XG4gICAgICAgICAgICAgICAgICAgIEBkZXNjcmlwdGlvbj17e0BwYWdlSGVhZGVyLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1BhZ2VUaXRsZUJsb2NrPXt7aGFzUGFnZUhlYWRlclBhZ2VUaXRsZUJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc0RlZmF1bHRCbG9jaz17e2hhc1BhZ2VIZWFkZXJEZWZhdWx0QmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzRGVzY3JpcHRpb25CbG9jaz17e2hhc1BhZ2VIZWFkZXJEZXNjcmlwdGlvbkJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgQGhhc1JpZ2h0U2lkZUl0ZW1zQmxvY2s9e3toYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDw6cGFnZVRpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyUGFnZVRpdGxlXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgIDw6ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZXNjcmlwdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86ZGVzY3JpcHRpb24-XG4gICAgICAgICAgICAgICAgICAgIDw6cmlnaHRTaWRlSXRlbXMgYXMgfGl0ZW18PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgaXRlbSB0bz1cInBhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc1wifX1cbiAgICAgICAgICAgICAgICAgICAgPC86cmlnaHRTaWRlSXRlbXM-XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VIZWFkZXI-XG4gICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudFxuICAgICAgICAgICAgICAgICAgQGhhc0JvcmRlcj17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgIEBoYXNTaGFkb3c9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIEBjb2xvcj1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgIEBib3JkZXJSYWRpdXM9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQ29udGVudFByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQ29udGVudEJvZHlQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgPEV1aUZsZXhHcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgQGRpcmVjdGlvbj1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAcmVzcG9uc2l2ZT17e2ZhbHNlfX1cbiAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3tjbGFzc05hbWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIHRoaXMuZnVsbEhlaWdodCBcIm5vc2Nyb2xsXCIpIFwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGdyb3c9e3t0cnVlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0V1aUZsZXhJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJkZWZhdWx0XCJ9fVxuICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50PlxuICAgICAgICAgICAgICA8L0V1aVBhZ2VCb2R5PlxuICAgICAgICAgICAgPC9FdWlQYWdlPlxuICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICB7eyNpZiBoYXNQYWdlU2lkZUJhckJsb2NrfX1cbiAgICAgICAgICAgIDxFdWlQYWdlXG4gICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5jbGFzc2VzfX1cbiAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgIEBncm93PXt7Z3Jvd319XG4gICAgICAgICAgICAgIHt7aXNXaXRoaW5CcmVha3BvaW50c01vZGlmaWVyfX1cbiAgICAgICAgICAgICAge3tzdHlsZSAoaW5saW5lU3R5bGVzIG1pbi1oZWlnaHQ9dGhpcy5taW5IZWlnaHQpfX1cbiAgICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXVpUGFnZVNpZGVCYXJcbiAgICAgICAgICAgICAgICBjbGFzcz17e0BwYWdlU2lkZUJhclByb3BzLmNsYXNzTmFtZX19XG4gICAgICAgICAgICAgICAgQHN0aWNreT17e3RydWV9fVxuICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlU2lkZUJhclwifX1cbiAgICAgICAgICAgICAgPC9FdWlQYWdlU2lkZUJhcj5cbiAgICAgICAgICAgICAgPEV1aVBhZ2VCb2R5XG4gICAgICAgICAgICAgICAgQHBhbmVsbGVkPXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VCb2R5UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8RXVpUGFnZUJvZHlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5wYWdlQm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgQHRhZ05hbWU9XCJkaXZcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgICA8RXVpUGFnZUhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgIEBib3R0b21Cb3JkZXI9e3tAcGFnZUhlYWRlci5ib3R0b21Cb3JkZXJ9fVxuICAgICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3tAcGFnZUhlYWRlci5wYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tAcGFnZUhlYWRlci5yZXNwb25zaXZlfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaWNvblR5cGU9e3tAcGFnZUhlYWRlci5pY29uVHlwZX19XG4gICAgICAgICAgICAgICAgICAgICAgQHRhYnM9e3tAcGFnZUhlYWRlci50YWJzfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcGFnZVRpdGxlPXt7QHBhZ2VIZWFkZXIucGFnZVRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICBAZGVzY3JpcHRpb249e3tAcGFnZUhlYWRlci5kZXNjcmlwdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgQGhhc1BhZ2VUaXRsZUJsb2NrPXt7aGFzUGFnZUhlYWRlclBhZ2VUaXRsZUJsb2NrfX1cbiAgICAgICAgICAgICAgICAgICAgICBAaGFzRGVmYXVsdEJsb2NrPXt7aGFzUGFnZUhlYWRlckRlZmF1bHRCbG9ja319XG4gICAgICAgICAgICAgICAgICAgICAgQGhhc0Rlc2NyaXB0aW9uQmxvY2s9e3toYXNQYWdlSGVhZGVyRGVzY3JpcHRpb25CbG9ja319XG4gICAgICAgICAgICAgICAgICAgICAgQGhhc1JpZ2h0U2lkZUl0ZW1zQmxvY2s9e3toYXNQYWdlSGVhZGVyUmlnaHRTaWRlSXRlbXNCbG9ja319XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8OnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyUGFnZVRpdGxlXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvOnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8OmRlZmF1bHQ-XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgICAgPC86ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgICA8OmRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJEZXNjcmlwdGlvblwifX1cbiAgICAgICAgICAgICAgICAgICAgICA8LzpkZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8OnJpZ2h0U2lkZUl0ZW1zIGFzIHxpdGVtfD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgaXRlbSB0bz1cInBhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc1wifX1cbiAgICAgICAgICAgICAgICAgICAgICA8LzpyaWdodFNpZGVJdGVtcz5cbiAgICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlSGVhZGVyPlxuICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICAgIEBoYXNTaGFkb3c9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgIEBoYXNCb3JkZXI9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgIEBjb2xvcj1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgQGJvcmRlclJhZGl1cz1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50UHJvcHNDbGFzc319XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAge3sjaWYgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZ1bGxIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3V0dGVyU2l6ZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tmYWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPXt7Y2xhc3NOYW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSB0aGlzLmZ1bGxIZWlnaHQgdHJ1ZSkgXCJldWkteVNjcm9sbFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSB0aGlzLmZ1bGxIZWlnaHQgXCJub3Njcm9sbFwiKSBcImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBncm93PXt7dHJ1ZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4SXRlbT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudD5cbiAgICAgICAgICAgICAgICA8L0V1aVBhZ2VCb2R5PlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc0JvdHRvbUJhckJsb2NrfX1cbiAgICAgICAgICAgICAgICAgIDxFdWlCb3R0b21CYXJcbiAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPXt7cGFkZGluZ1NpemV9fVxuICAgICAgICAgICAgICAgICAgICBAcG9zaXRpb249e3tpZlxuICAgICAgICAgICAgICAgICAgICAgIChhbmQgdGhpcy5jYW5GdWxsSGVpZ2h0IHRoaXMuZnVsbEhlaWdodClcbiAgICAgICAgICAgICAgICAgICAgICBcInN0YXRpY1wiXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGlja3lcIlxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgICAgQHJlc3RyaWN0V2lkdGg9e3t0aGlzLnJlc3RyaWN0V2lkdGh9fVxuICAgICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImJvdHRvbUJhclwifX1cbiAgICAgICAgICAgICAgICAgICAgPC9FdWlQYWdlQ29udGVudEJvZHk-XG4gICAgICAgICAgICAgICAgICA8L0V1aUJvdHRvbUJhcj5cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgIDwvRXVpUGFnZUJvZHk-XG4gICAgICAgICAgICA8L0V1aVBhZ2U-XG4gICAgICAgICAge3tlbHNlfX1cbiAgICAgICAgICAgIDxFdWlQYWdlXG4gICAgICAgICAgICAgIGNsYXNzPXt7dGhpcy5jbGFzc2VzfX1cbiAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgIEBncm93PXt7Z3Jvd319XG4gICAgICAgICAgICAgIHt7aXNXaXRoaW5CcmVha3BvaW50c01vZGlmaWVyfX1cbiAgICAgICAgICAgICAge3tzdHlsZSAoaW5saW5lU3R5bGVzIG1pbi1oZWlnaHQ9dGhpcy5taW5IZWlnaHQpfX1cbiAgICAgICAgICAgICAgLi4uYXR0cmlidXRlc1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8RXVpUGFnZUJvZHkgY2xhc3M9e3t0aGlzLnBhZ2VCb2R5UHJvcHNDbGFzc319PlxuICAgICAgICAgICAgICAgIHt7I2lmIGhhc1BhZ2VIZWFkZXJ9fVxuICAgICAgICAgICAgICAgICAgPEV1aVBhZ2VIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAge3shQGdsaW50LWV4cGVjdC1lcnJvcn19XG4gICAgICAgICAgICAgICAgICAgIEByZXN0cmljdFdpZHRoPXt7dGhpcy5yZXN0cmljdFdpZHRofX1cbiAgICAgICAgICAgICAgICAgICAgQGJvdHRvbUJvcmRlcj17e0BwYWdlSGVhZGVyLmJvdHRvbUJvcmRlcn19XG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICAgICAgQHJlc3BvbnNpdmU9e3tAcGFnZUhlYWRlci5yZXNwb25zaXZlfX1cbiAgICAgICAgICAgICAgICAgICAgQGljb25UeXBlPXt7QHBhZ2VIZWFkZXIuaWNvblR5cGV9fVxuICAgICAgICAgICAgICAgICAgICBAdGFicz17e0BwYWdlSGVhZGVyLnRhYnN9fVxuICAgICAgICAgICAgICAgICAgICBAcGFnZVRpdGxlPXt7QHBhZ2VIZWFkZXIucGFnZVRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgQGRlc2NyaXB0aW9uPXt7QHBhZ2VIZWFkZXIuZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgICAgICBAaGFzUGFnZVRpdGxlQmxvY2s9e3toYXNQYWdlSGVhZGVyUGFnZVRpdGxlQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzRGVmYXVsdEJsb2NrPXt7aGFzUGFnZUhlYWRlckRlZmF1bHRCbG9ja319XG4gICAgICAgICAgICAgICAgICAgIEBoYXNEZXNjcmlwdGlvbkJsb2NrPXt7aGFzUGFnZUhlYWRlckRlc2NyaXB0aW9uQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgICBAaGFzUmlnaHRTaWRlSXRlbXNCbG9jaz17e2hhc1BhZ2VIZWFkZXJSaWdodFNpZGVJdGVtc0Jsb2NrfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPDpwYWdlVGl0bGU-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cInBhZ2VIZWFkZXJQYWdlVGl0bGVcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvOnBhZ2VUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPDpkZWZhdWx0PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgdG89XCJwYWdlSGVhZGVyRGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgPC86ZGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgPDpkZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwicGFnZUhlYWRlckRlc2NyaXB0aW9uXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpkZXNjcmlwdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPDpyaWdodFNpZGVJdGVtcyBhcyB8aXRlbXw-XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCBpdGVtIHRvPVwicGFnZUhlYWRlclJpZ2h0U2lkZUl0ZW1zXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8LzpyaWdodFNpZGVJdGVtcz5cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUhlYWRlcj5cbiAgICAgICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgICAgICAgPEV1aVBhZ2VDb250ZW50XG4gICAgICAgICAgICAgICAgICBAaGFzQm9yZGVyPXt7aWYgaGFzUGFnZUhlYWRlciBmYWxzZX19XG4gICAgICAgICAgICAgICAgICBAaGFzU2hhZG93PXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgQHBhZGRpbmdTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBAY29sb3I9XCJwbGFpblwiXG4gICAgICAgICAgICAgICAgICBAYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz17e3RoaXMucGFnZUNvbnRlbnRQcm9wc0NsYXNzfX1cbiAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICA8RXVpUGFnZUNvbnRlbnRCb2R5XG4gICAgICAgICAgICAgICAgICAgIHt7IUBnbGludC1leHBlY3QtZXJyb3J9fVxuICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgIEBwYWRkaW5nU2l6ZT17e3BhZGRpbmdTaXplfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9e3t0aGlzLnBhZ2VDb250ZW50Qm9keVByb3BzQ2xhc3N9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyNpZiAoYW5kIHRoaXMuY2FuRnVsbEhlaWdodCB0aGlzLmZ1bGxIZWlnaHQpfX1cbiAgICAgICAgICAgICAgICAgICAgICA8RXVpRmxleEdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS1mdWxsSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndXR0ZXJTaXplPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBAZGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIEByZXNwb25zaXZlPXt7ZmFsc2V9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFdWlGbGV4SXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIHRoaXMuZnVsbEhlaWdodCB0cnVlKSBcImV1aS15U2Nyb2xsXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgdGhpcy5mdWxsSGVpZ2h0IFwibm9zY3JvbGxcIikgXCJldWktZnVsbEhlaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBAZ3Jvdz17e3RydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVmYXVsdFwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRXVpRmxleEl0ZW0-XG4gICAgICAgICAgICAgICAgICAgICAgPC9FdWlGbGV4R3JvdXA-XG4gICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19XG4gICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImRlZmF1bHRcIn19XG4gICAgICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnRCb2R5PlxuICAgICAgICAgICAgICAgIDwvRXVpUGFnZUNvbnRlbnQ-XG4gICAgICAgICAgICAgICAge3sjaWYgaGFzQm90dG9tQmFyQmxvY2t9fVxuICAgICAgICAgICAgICAgICAgPEV1aUJvdHRvbUJhclxuICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9e3twYWRkaW5nU2l6ZX19XG4gICAgICAgICAgICAgICAgICAgIEBwb3NpdGlvbj17e2lmXG4gICAgICAgICAgICAgICAgICAgICAgKGFuZCB0aGlzLmNhbkZ1bGxIZWlnaHQgdGhpcy5mdWxsSGVpZ2h0KVxuICAgICAgICAgICAgICAgICAgICAgIFwic3RhdGljXCJcbiAgICAgICAgICAgICAgICAgICAgICBcInN0aWNreVwiXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA-XG4gICAgICAgICAgICAgICAgICAgIDxFdWlQYWdlQ29udGVudEJvZHlcbiAgICAgICAgICAgICAgICAgICAgICBAcGFkZGluZ1NpemU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICB7eyFAZ2xpbnQtZXhwZWN0LWVycm9yfX1cbiAgICAgICAgICAgICAgICAgICAgICBAcmVzdHJpY3RXaWR0aD17e3RoaXMucmVzdHJpY3RXaWR0aH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiYm90dG9tQmFyXCJ9fVxuICAgICAgICAgICAgICAgICAgICA8L0V1aVBhZ2VDb250ZW50Qm9keT5cbiAgICAgICAgICAgICAgICAgIDwvRXVpQm90dG9tQmFyPlxuICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgPC9FdWlQYWdlQm9keT5cbiAgICAgICAgICAgIDwvRXVpUGFnZT5cbiAgICAgICAgICB7ey9pZn19XG4gICAgICAgIHt7L2lmfX1cbiAgICAgIHt7L2xldH19XG4gICAge3svbGV0fX1cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFFNUMsT0FBTyxXQUFXLHVDQUF1QztBQUN6RCx1Q0FBdUM7QUFDdkMsV0FBVztBQUNYLDJCQUEyQjtBQUMzQixtQkFBbUI7QUFDbkIsb0RBQW9EO0FBQ3BELDhFQUE4RTtBQUM5RSxnRUFBZ0U7QUFDaEUseUNBQXlDO0FBQ3pDLDhDQUE4QztBQUM5QyxTQUFTLEdBQUcsRUFBRSxFQUFFLEVBQUMsRUFBRSxRQUFRLHNCQUFzQjtBQUVqRCwwQ0FBMEM7QUFDMUMsK0NBQStDO0FBQy9DLFdBQVc7QUFDWCwwQkFBMEI7QUFDMUIscUJBQXFCO0FBQ3JCLG1CQUFtQjtBQUNuQixtQ0FBbUM7QUFDbkMsK0VBQStFO0FBQy9FLGtFQUFrRTtBQUNsRSxnRUFBZ0U7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEyd0JWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQTN3QkE7QUE0d0JaIn0"],"names":["TEMPLATES","BREAKPOINTS","EuiPageTemplate","Component","g","this","prototype","argOrDefaultDecorator","i","void 0","tracked","setIsWithinBreakpoints","value1","isWithinBreakpoints","minHeight","minHeight1","args","restrictWidth","width1","classes","fullHeightClass","fullHeight","canFullHeight","yScrollClass","template","pageBodyPropsClass","pageBodyProps","className","pageContentPropsClass","pageContentProps","pageContentBodyPropsClass","pageContentBodyProps","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","and","useIsWithinBreakpoints","or","eq","EuiPage","style","inlineStyles","EuiPageSideBar","EuiPageBody","EuiPageHeader","EuiPageContent","EuiPageContentBody","EuiFlexGroup","EuiFlexItem","classNames","EuiBottomBar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-page.js","sources":["../../src/components/eui-page.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { concat } from '@ember/helper';\nimport style from 'ember-style-modifier/modifiers/style';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport euiPageRestrictWidth from '../helpers/eui-page-restrict-width.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface EuiPageSignature {\n Element: HTMLDivElement;\n Args: {\n restrictWidth?: boolean;\n paddingSize?: 'none' | 's' | 'm' | 'l';\n grow?: boolean;\n direction?: 'row' | 'column';\n style?: Record<string, string>;\n };\n Blocks: {\n default: [];\n };\n}\nconst EuiPage: TemplateOnlyComponent<EuiPageSignature> = template(`\n {{#let\n (argOrDefault @restrictWidth false)\n (argOrDefault @paddingSize \"m\")\n (argOrDefault @grow true)\n (argOrDefault @direction \"row\")\n as |restrictWidth paddingSize grow direction|\n }}\n {{#let (euiPageRestrictWidth restrictWidth @style) as |styling|}}\n <div\n class={{classNames\n (if grow \"euiPage--grow\")\n (concat \"euiPage--\" styling.widthClassName)\n componentName=\"EuiPage\"\n paddingSize=paddingSize\n direction=direction\n }}\n ...attributes\n {{style\n (if styling.newStyle (inlineStyles styling.newStyle))\n (inlineStyles min-height=\"460px;\")\n }}\n >\n {{yield}}\n </div>\n {{/let}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default EuiPage;\n//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
{"version":3,"file":"eui-page.js","sources":["../../src/components/eui-page.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { concat } from '@ember/helper';\nimport style from 'ember-style-modifier/modifiers/style';\nimport argOrDefault from '../helpers/arg-or-default.ts';\nimport classNames from '../helpers/class-names.ts';\nimport euiPageRestrictWidth from '../helpers/eui-page-restrict-width.ts';\nimport inlineStyles from '../helpers/inline-styles.ts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface EuiPageSignature {\n Element: HTMLDivElement;\n Args: {\n restrictWidth?: boolean;\n paddingSize?: 'none' | 's' | 'm' | 'l';\n grow?: boolean;\n direction?: 'row' | 'column';\n style?: Record<string, string>;\n };\n Blocks: {\n default: [];\n };\n}\nconst EuiPage: TemplateOnlyComponent<EuiPageSignature> = template(`\n {{#let\n (argOrDefault @restrictWidth false)\n (argOrDefault @paddingSize \"m\")\n (argOrDefault @grow true)\n (argOrDefault @direction \"row\")\n as |restrictWidth paddingSize grow direction|\n }}\n {{#let (euiPageRestrictWidth restrictWidth @style) as |styling|}}\n <div\n class={{classNames\n (if grow \"euiPage--grow\")\n (concat \"euiPage--\" styling.widthClassName)\n componentName=\"EuiPage\"\n paddingSize=paddingSize\n direction=direction\n }}\n ...attributes\n {{style\n (if styling.newStyle (inlineStyles styling.newStyle))\n (inlineStyles min-height=\"460px;\")\n }}\n >\n {{yield}}\n </div>\n {{/let}}\n {{/let}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default EuiPage;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wYWdlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25jYXQgfSBmcm9tICdAZW1iZXIvaGVscGVyJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJ2VtYmVyLXN0eWxlLW1vZGlmaWVyL21vZGlmaWVycy9zdHlsZSc7XG5cbmltcG9ydCBhcmdPckRlZmF1bHQgZnJvbSAnLi4vaGVscGVycy9hcmctb3ItZGVmYXVsdC50cyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLW5hbWVzLnRzJztcbmltcG9ydCBldWlQYWdlUmVzdHJpY3RXaWR0aCBmcm9tICcuLi9oZWxwZXJzL2V1aS1wYWdlLXJlc3RyaWN0LXdpZHRoLnRzJztcbmltcG9ydCBpbmxpbmVTdHlsZXMgZnJvbSAnLi4vaGVscGVycy9pbmxpbmUtc3R5bGVzLnRzJztcblxuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZU9ubHlDb21wb25lbnQgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV1aVBhZ2VTaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIHJlc3RyaWN0V2lkdGg_OiBib29sZWFuO1xuICAgIHBhZGRpbmdTaXplPzogJ25vbmUnIHwgJ3MnIHwgJ20nIHwgJ2wnO1xuICAgIGdyb3c_OiBib29sZWFuO1xuICAgIGRpcmVjdGlvbj86ICdyb3cnIHwgJ2NvbHVtbic7XG4gICAgc3R5bGU_OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc-O1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbXTtcbiAgfTtcbn1cblxuY29uc3QgRXVpUGFnZTogVGVtcGxhdGVPbmx5Q29tcG9uZW50PEV1aVBhZ2VTaWduYXR1cmU-ID0gPHRlbXBsYXRlPlxuICB7eyNsZXRcbiAgICAoYXJnT3JEZWZhdWx0IEByZXN0cmljdFdpZHRoIGZhbHNlKVxuICAgIChhcmdPckRlZmF1bHQgQHBhZGRpbmdTaXplIFwibVwiKVxuICAgIChhcmdPckRlZmF1bHQgQGdyb3cgdHJ1ZSlcbiAgICAoYXJnT3JEZWZhdWx0IEBkaXJlY3Rpb24gXCJyb3dcIilcbiAgICBhcyB8cmVzdHJpY3RXaWR0aCBwYWRkaW5nU2l6ZSBncm93IGRpcmVjdGlvbnxcbiAgfX1cbiAgICB7eyNsZXQgKGV1aVBhZ2VSZXN0cmljdFdpZHRoIHJlc3RyaWN0V2lkdGggQHN0eWxlKSBhcyB8c3R5bGluZ3x9fVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz17e2NsYXNzTmFtZXNcbiAgICAgICAgICAoaWYgZ3JvdyBcImV1aVBhZ2UtLWdyb3dcIilcbiAgICAgICAgICAoY29uY2F0IFwiZXVpUGFnZS0tXCIgc3R5bGluZy53aWR0aENsYXNzTmFtZSlcbiAgICAgICAgICBjb21wb25lbnROYW1lPVwiRXVpUGFnZVwiXG4gICAgICAgICAgcGFkZGluZ1NpemU9cGFkZGluZ1NpemVcbiAgICAgICAgICBkaXJlY3Rpb249ZGlyZWN0aW9uXG4gICAgICAgIH19XG4gICAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgICAge3tzdHlsZVxuICAgICAgICAgIChpZiBzdHlsaW5nLm5ld1N0eWxlIChpbmxpbmVTdHlsZXMgc3R5bGluZy5uZXdTdHlsZSkpXG4gICAgICAgICAgKGlubGluZVN0eWxlcyBtaW4taGVpZ2h0PVwiNDYwcHg7XCIpXG4gICAgICAgIH19XG4gICAgICA-XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9kaXY-XG4gICAge3svbGV0fX1cbiAge3svbGV0fX1cbjwvdGVtcGxhdGU-O1xuXG5leHBvcnQgZGVmYXVsdCBFdWlQYWdlO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLE1BQU0sUUFBUSxnQkFBZ0I7QUFFdkMsT0FBTyxXQUFXLHVDQUF1QztBQUV6RCxPQUFPLGtCQUFrQiwrQkFBK0I7QUFDeEQsT0FBTyxnQkFBZ0IsNEJBQTRCO0FBQ25ELE9BQU8sMEJBQTBCLHdDQUF3QztBQUN6RSxPQUFPLGtCQUFrQiw4QkFBOEI7QUFFdkQsY0FBYyxxQkFBcUIsUUFBUSxpQ0FBaUM7QUFFNUUsaUJBQWlCO0lBQ2YsU0FBUztJQUNUO1FBQ0UsZ0JBQWdCLE9BQU87UUFDdkIsY0FBYyxTQUFTLE1BQU0sTUFBTTtRQUNuQyxPQUFPLE9BQU87UUFDZCxZQUFZLFFBQVE7UUFDcEIsUUFBUSxPQUFPLE1BQU0sRUFBRSxNQUFNOztJQUUvQjtRQUNFOzs7QUFJSixNQUFNLFNBQVMsc0JBQXNCLG9CQUFvQixTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCbkUsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVYsZUFBZSxRQUFRIn0"],"names":["EuiPage","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","euiPageRestrictWidth","classNames","concat","style","inlineStyles","templateOnly"],"mappings":";;;;;;;;;;AAyBA,MAAMA,OAA+B,GAAAC,oBAAA,CAAoBC,kBAAA,CA2BzD,umBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,oBAAA;IAAAC,UAAA;IAAAC,MAAA;IAAAC,KAAA;AAAAC,IAAAA,YAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-wrapper.js","sources":["../../../src/components/eui-pagination/button-wrapper.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { eq } from 'ember-truth-helpers';\nimport argOrDefault from '../../helpers/arg-or-default.ts';\nimport EuiPaginationButton from '../eui-pagination-button.gts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface EuiPaginationButtonWrapperSignature {\n Args: {\n inList?: boolean;\n pageIndex: number;\n props: {\n pageCount?: number;\n activePage?: number;\n ariaControls?: string;\n safeClick: (page: number) => void;\n };\n };\n}\nconst ButtonWrapper: TemplateOnlyComponent<EuiPaginationButtonWrapperSignature> = template(`\n {{#if (argOrDefault @inList true)}}\n <li>\n <EuiPaginationButton\n @isActive={{eq @pageIndex @props.activePage}}\n @totalPages={{@props.pageCount}}\n @pageIndex={{@pageIndex}}\n aria-controls={{@props.ariaControls}}\n @hideOnMobile={{true}}\n {{on \"click\" (fn @props.safeClick @pageIndex)}}\n />\n </li>\n {{else}}\n <EuiPaginationButton\n @isActive={{eq @pageIndex @props.activePage}}\n @totalPages={{@props.pageCount}}\n @pageIndex={{@pageIndex}}\n aria-controls={{@props.ariaControls}}\n @hideOnMobile={{true}}\n {{on \"click\" (fn @props.safeClick @pageIndex)}}\n />\n {{/if}}\n `, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default ButtonWrapper;\n//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
{"version":3,"file":"button-wrapper.js","sources":["../../../src/components/eui-pagination/button-wrapper.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { eq } from 'ember-truth-helpers';\nimport argOrDefault from '../../helpers/arg-or-default.ts';\nimport EuiPaginationButton from '../eui-pagination-button.gts';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface EuiPaginationButtonWrapperSignature {\n Args: {\n inList?: boolean;\n pageIndex: number;\n props: {\n pageCount?: number;\n activePage?: number;\n ariaControls?: string;\n safeClick: (page: number) => void;\n };\n };\n}\nconst ButtonWrapper: TemplateOnlyComponent<EuiPaginationButtonWrapperSignature> = template(`\n {{#if (argOrDefault @inList true)}}\n <li>\n <EuiPaginationButton\n @isActive={{eq @pageIndex @props.activePage}}\n @totalPages={{@props.pageCount}}\n @pageIndex={{@pageIndex}}\n aria-controls={{@props.ariaControls}}\n @hideOnMobile={{true}}\n {{on \"click\" (fn @props.safeClick @pageIndex)}}\n />\n </li>\n {{else}}\n <EuiPaginationButton\n @isActive={{eq @pageIndex @props.activePage}}\n @totalPages={{@props.pageCount}}\n @pageIndex={{@pageIndex}}\n aria-controls={{@props.ariaControls}}\n @hideOnMobile={{true}}\n {{on \"click\" (fn @props.safeClick @pageIndex)}}\n />\n {{/if}}\n `, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default ButtonWrapper;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wYWdpbmF0aW9uL2J1dHRvbi13cmFwcGVyLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbiB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuXG5pbXBvcnQgeyBlcSB9IGZyb20gJ2VtYmVyLXRydXRoLWhlbHBlcnMnO1xuXG5pbXBvcnQgYXJnT3JEZWZhdWx0IGZyb20gJy4uLy4uL2hlbHBlcnMvYXJnLW9yLWRlZmF1bHQudHMnO1xuaW1wb3J0IEV1aVBhZ2luYXRpb25CdXR0b24gZnJvbSAnLi4vZXVpLXBhZ2luYXRpb24tYnV0dG9uLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVPbmx5Q29tcG9uZW50IH0gZnJvbSAnQGVtYmVyL2NvbXBvbmVudC90ZW1wbGF0ZS1vbmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBFdWlQYWdpbmF0aW9uQnV0dG9uV3JhcHBlclNpZ25hdHVyZSB7XG4gIEFyZ3M6IHtcbiAgICBpbkxpc3Q_OiBib29sZWFuO1xuICAgIHBhZ2VJbmRleDogbnVtYmVyO1xuICAgIHByb3BzOiB7XG4gICAgICBwYWdlQ291bnQ_OiBudW1iZXI7XG4gICAgICBhY3RpdmVQYWdlPzogbnVtYmVyO1xuICAgICAgYXJpYUNvbnRyb2xzPzogc3RyaW5nO1xuICAgICAgc2FmZUNsaWNrOiAocGFnZTogbnVtYmVyKSA9PiB2b2lkO1xuICAgIH07XG4gIH07XG59XG5cbmNvbnN0IEJ1dHRvbldyYXBwZXI6IFRlbXBsYXRlT25seUNvbXBvbmVudDxFdWlQYWdpbmF0aW9uQnV0dG9uV3JhcHBlclNpZ25hdHVyZT4gPVxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGFyZ09yRGVmYXVsdCBAaW5MaXN0IHRydWUpfX1cbiAgICAgIDxsaT5cbiAgICAgICAgPEV1aVBhZ2luYXRpb25CdXR0b25cbiAgICAgICAgICBAaXNBY3RpdmU9e3tlcSBAcGFnZUluZGV4IEBwcm9wcy5hY3RpdmVQYWdlfX1cbiAgICAgICAgICBAdG90YWxQYWdlcz17e0Bwcm9wcy5wYWdlQ291bnR9fVxuICAgICAgICAgIEBwYWdlSW5kZXg9e3tAcGFnZUluZGV4fX1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXt7QHByb3BzLmFyaWFDb250cm9sc319XG4gICAgICAgICAgQGhpZGVPbk1vYmlsZT17e3RydWV9fVxuICAgICAgICAgIHt7b24gXCJjbGlja1wiIChmbiBAcHJvcHMuc2FmZUNsaWNrIEBwYWdlSW5kZXgpfX1cbiAgICAgICAgLz5cbiAgICAgIDwvbGk-XG4gICAge3tlbHNlfX1cbiAgICAgIDxFdWlQYWdpbmF0aW9uQnV0dG9uXG4gICAgICAgIEBpc0FjdGl2ZT17e2VxIEBwYWdlSW5kZXggQHByb3BzLmFjdGl2ZVBhZ2V9fVxuICAgICAgICBAdG90YWxQYWdlcz17e0Bwcm9wcy5wYWdlQ291bnR9fVxuICAgICAgICBAcGFnZUluZGV4PXt7QHBhZ2VJbmRleH19XG4gICAgICAgIGFyaWEtY29udHJvbHM9e3tAcHJvcHMuYXJpYUNvbnRyb2xzfX1cbiAgICAgICAgQGhpZGVPbk1vYmlsZT17e3RydWV9fVxuICAgICAgICB7e29uIFwiY2xpY2tcIiAoZm4gQHByb3BzLnNhZmVDbGljayBAcGFnZUluZGV4KX19XG4gICAgICAvPlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT47XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbldyYXBwZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVMsRUFBRSxRQUFRLGdCQUFnQjtBQUNuQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxFQUFFLFFBQVEsc0JBQXNCO0FBRXpDLE9BQU8sa0JBQWtCLGtDQUFrQztBQUMzRCxPQUFPLHlCQUF5QiwrQkFBK0I7QUFFL0QsY0FBYyxxQkFBcUIsUUFBUSxpQ0FBaUM7QUFFNUUsaUJBQWlCO0lBQ2Y7UUFDRSxTQUFTLE9BQU87UUFDaEIsV0FBVyxNQUFNO1FBQ2pCO1lBQ0UsWUFBWSxNQUFNO1lBQ2xCLGFBQWEsTUFBTTtZQUNuQixlQUFlLE1BQU07WUFDckIsWUFBWSxNQUFNLE1BQU0sS0FBSyxJQUFJOzs7O0FBS3ZDLE1BQU0sZUFBZSxzQkFBc0IsdUNBQ3pDLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNCVixDQUFBLEVBQUE7SUFBQTtRQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztJQUFEO0FBQUE7QUFFWixlQUFlLGNBQWMifQ"],"names":["ButtonWrapper","setComponentTemplate","precompileTemplate","strictMode","scope","argOrDefault","EuiPaginationButton","eq","on","fn","templateOnly"],"mappings":";;;;;;;;;AAuBA,MAAMA,aAAqC,GAAAC,oBAAA,CACzCC,kBAAA,CAsBA,mlBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,mBAAA;IAAAC,EAAA;IAAAC,EAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-button.js","sources":["../../../src/components/eui-pagination/next-button.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { fn, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport add from 'ember-math-helpers/helpers/add';\nimport sub from 'ember-math-helpers/helpers/sub';\nimport { eq } from 'ember-truth-helpers';\nimport EuiButtonIcon from '../eui-button-icon.gts';\nimport EuiI18n from '../eui-i18n.gts';\nimport type { EuiButtonIconSignature } from '../eui-button-icon';\nimport type { SafeClickHandler } from '../eui-pagination';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface EuiPaginationNextButtonSignature {\n Element: EuiButtonIconSignature['Element'];\n Args: {\n activePage: number;\n safeClick: SafeClickHandler;\n pageCount: number;\n props: {\n disabled?: boolean;\n 'aria-controls'?: string;\n href?: string;\n };\n };\n}\nconst NextButton: TemplateOnlyComponent<EuiPaginationNextButtonSignature> = template(`\n <EuiI18n\n @token=\"euiPagination.nextPage\"\n @default=\"Next page, {page}\"\n @values={{hash page=(add @activePage 2)}}\n as |Token|\n >\n <Token as |nextPage|>\n <EuiI18n\n @token=\"euiPagination.disabledNextPage\"\n @default=\"Next page\"\n as |InnerToken|\n >\n <InnerToken as |disabledNextPage|>\n <EuiButtonIcon\n {{on \"click\" (fn @safeClick (add @activePage 1))}}\n @iconType=\"arrowRight\"\n @color=\"text\"\n aria-label={{if\n (eq @activePage (sub @pageCount 1))\n disabledNextPage\n nextPage\n }}\n aria-controls={{if @props.aria-controls @props.aria-controls}}\n href={{if @props.href @props.href}}\n disabled={{eq @props.disabled true}}\n ...attributes\n />\n </InnerToken>\n </EuiI18n>\n </Token>\n </EuiI18n>\n `, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default NextButton;\n//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
{"version":3,"file":"next-button.js","sources":["../../../src/components/eui-pagination/next-button.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport { fn, hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport add from 'ember-math-helpers/helpers/add';\nimport sub from 'ember-math-helpers/helpers/sub';\nimport { eq } from 'ember-truth-helpers';\nimport EuiButtonIcon from '../eui-button-icon.gts';\nimport EuiI18n from '../eui-i18n.gts';\nimport type { EuiButtonIconSignature } from '../eui-button-icon';\nimport type { SafeClickHandler } from '../eui-pagination';\nimport type { TemplateOnlyComponent } from '@ember/component/template-only';\nexport interface EuiPaginationNextButtonSignature {\n Element: EuiButtonIconSignature['Element'];\n Args: {\n activePage: number;\n safeClick: SafeClickHandler;\n pageCount: number;\n props: {\n disabled?: boolean;\n 'aria-controls'?: string;\n href?: string;\n };\n };\n}\nconst NextButton: TemplateOnlyComponent<EuiPaginationNextButtonSignature> = template(`\n <EuiI18n\n @token=\"euiPagination.nextPage\"\n @default=\"Next page, {page}\"\n @values={{hash page=(add @activePage 2)}}\n as |Token|\n >\n <Token as |nextPage|>\n <EuiI18n\n @token=\"euiPagination.disabledNextPage\"\n @default=\"Next page\"\n as |InnerToken|\n >\n <InnerToken as |disabledNextPage|>\n <EuiButtonIcon\n {{on \"click\" (fn @safeClick (add @activePage 1))}}\n @iconType=\"arrowRight\"\n @color=\"text\"\n aria-label={{if\n (eq @activePage (sub @pageCount 1))\n disabledNextPage\n nextPage\n }}\n aria-controls={{if @props.aria-controls @props.aria-controls}}\n href={{if @props.href @props.href}}\n disabled={{eq @props.disabled true}}\n ...attributes\n />\n </InnerToken>\n </EuiI18n>\n </Token>\n </EuiI18n>\n `, {\n eval () {\n return eval(arguments[0]);\n }\n});\nexport default NextButton;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9iZXRvY2FudHU5My9wcnlzbWV4L2VtYmVyLWV1aS9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL2V1aS1wYWdpbmF0aW9uL25leHQtYnV0dG9uLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbiwgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgb24gfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xuXG5pbXBvcnQgYWRkIGZyb20gJ2VtYmVyLW1hdGgtaGVscGVycy9oZWxwZXJzL2FkZCc7XG5pbXBvcnQgc3ViIGZyb20gJ2VtYmVyLW1hdGgtaGVscGVycy9oZWxwZXJzL3N1Yic7XG5pbXBvcnQgeyBlcSB9IGZyb20gJ2VtYmVyLXRydXRoLWhlbHBlcnMnO1xuXG5pbXBvcnQgRXVpQnV0dG9uSWNvbiBmcm9tICcuLi9ldWktYnV0dG9uLWljb24uZ3RzJztcbmltcG9ydCBFdWlJMThuIGZyb20gJy4uL2V1aS1pMThuLmd0cyc7XG5cbmltcG9ydCB0eXBlIHsgRXVpQnV0dG9uSWNvblNpZ25hdHVyZSB9IGZyb20gJy4uL2V1aS1idXR0b24taWNvbic7XG5pbXBvcnQgdHlwZSB7IFNhZmVDbGlja0hhbmRsZXIgfSBmcm9tICcuLi9ldWktcGFnaW5hdGlvbic7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlT25seUNvbXBvbmVudCB9IGZyb20gJ0BlbWJlci9jb21wb25lbnQvdGVtcGxhdGUtb25seSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXVpUGFnaW5hdGlvbk5leHRCdXR0b25TaWduYXR1cmUge1xuICBFbGVtZW50OiBFdWlCdXR0b25JY29uU2lnbmF0dXJlWydFbGVtZW50J107XG4gIEFyZ3M6IHtcbiAgICBhY3RpdmVQYWdlOiBudW1iZXI7XG4gICAgc2FmZUNsaWNrOiBTYWZlQ2xpY2tIYW5kbGVyO1xuICAgIHBhZ2VDb3VudDogbnVtYmVyO1xuICAgIHByb3BzOiB7XG4gICAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgICAnYXJpYS1jb250cm9scyc_OiBzdHJpbmc7XG4gICAgICBocmVmPzogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5cbmNvbnN0IE5leHRCdXR0b246IFRlbXBsYXRlT25seUNvbXBvbmVudDxFdWlQYWdpbmF0aW9uTmV4dEJ1dHRvblNpZ25hdHVyZT4gPVxuICA8dGVtcGxhdGU-XG4gICAgPEV1aUkxOG5cbiAgICAgIEB0b2tlbj1cImV1aVBhZ2luYXRpb24ubmV4dFBhZ2VcIlxuICAgICAgQGRlZmF1bHQ9XCJOZXh0IHBhZ2UsIHtwYWdlfVwiXG4gICAgICBAdmFsdWVzPXt7aGFzaCBwYWdlPShhZGQgQGFjdGl2ZVBhZ2UgMil9fVxuICAgICAgYXMgfFRva2VufFxuICAgID5cbiAgICAgIDxUb2tlbiBhcyB8bmV4dFBhZ2V8PlxuICAgICAgICA8RXVpSTE4blxuICAgICAgICAgIEB0b2tlbj1cImV1aVBhZ2luYXRpb24uZGlzYWJsZWROZXh0UGFnZVwiXG4gICAgICAgICAgQGRlZmF1bHQ9XCJOZXh0IHBhZ2VcIlxuICAgICAgICAgIGFzIHxJbm5lclRva2VufFxuICAgICAgICA-XG4gICAgICAgICAgPElubmVyVG9rZW4gYXMgfGRpc2FibGVkTmV4dFBhZ2V8PlxuICAgICAgICAgICAgPEV1aUJ1dHRvbkljb25cbiAgICAgICAgICAgICAge3tvbiBcImNsaWNrXCIgKGZuIEBzYWZlQ2xpY2sgKGFkZCBAYWN0aXZlUGFnZSAxKSl9fVxuICAgICAgICAgICAgICBAaWNvblR5cGU9XCJhcnJvd1JpZ2h0XCJcbiAgICAgICAgICAgICAgQGNvbG9yPVwidGV4dFwiXG4gICAgICAgICAgICAgIGFyaWEtbGFiZWw9e3tpZlxuICAgICAgICAgICAgICAgIChlcSBAYWN0aXZlUGFnZSAoc3ViIEBwYWdlQ291bnQgMSkpXG4gICAgICAgICAgICAgICAgZGlzYWJsZWROZXh0UGFnZVxuICAgICAgICAgICAgICAgIG5leHRQYWdlXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9e3tpZiBAcHJvcHMuYXJpYS1jb250cm9scyBAcHJvcHMuYXJpYS1jb250cm9sc319XG4gICAgICAgICAgICAgIGhyZWY9e3tpZiBAcHJvcHMuaHJlZiBAcHJvcHMuaHJlZn19XG4gICAgICAgICAgICAgIGRpc2FibGVkPXt7ZXEgQHByb3BzLmRpc2FibGVkIHRydWV9fVxuICAgICAgICAgICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvSW5uZXJUb2tlbj5cbiAgICAgICAgPC9FdWlJMThuPlxuICAgICAgPC9Ub2tlbj5cbiAgICA8L0V1aUkxOG4-XG4gIDwvdGVtcGxhdGU-O1xuXG5leHBvcnQgZGVmYXVsdCBOZXh0QnV0dG9uO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTLEVBQUUsRUFBRSxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3pDLFNBQVMsRUFBRSxRQUFRLGtCQUFrQjtBQUVyQyxPQUFPLFNBQVMsaUNBQWlDO0FBQ2pELE9BQU8sU0FBUyxpQ0FBaUM7QUFDakQsU0FBUyxFQUFFLFFBQVEsc0JBQXNCO0FBRXpDLE9BQU8sbUJBQW1CLHlCQUF5QjtBQUNuRCxPQUFPLGFBQWEsa0JBQWtCO0FBRXRDLGNBQWMsc0JBQXNCLFFBQVEscUJBQXFCO0FBQ2pFLGNBQWMsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBQzFELGNBQWMscUJBQXFCLFFBQVEsaUNBQWlDO0FBRTVFLGlCQUFpQjtJQUNmLFNBQVMsdUJBQXVCO0lBQ2hDO1FBQ0UsWUFBWSxNQUFNO1FBQ2xCLFdBQVc7UUFDWCxXQUFXLE1BQU07UUFDakI7WUFDRSxXQUFXLE9BQU87WUFDbEIsa0JBQWtCLE1BQU07WUFDeEIsT0FBTyxNQUFNOzs7O0FBS25CLE1BQU0sWUFBWSxzQkFBc0Isb0NBQ3RDLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnQ1YsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVosZUFBZSxXQUFXIn0"],"names":["NextButton","setComponentTemplate","precompileTemplate","strictMode","scope","EuiI18n","hash","add","EuiButtonIcon","eq","sub","on","fn","templateOnly"],"mappings":";;;;;;;;;;;AA4BA,MAAMA,UAAkC,GAAAC,oBAAA,CACtCC,kBAAA,CAgCA,0uBAAA,EAAA;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;aAAAC,gBAAA;IAAAC,IAAA;IAAAC,GAAA;IAAAC,aAAA;IAAAC,EAAA;IAAAC,GAAA;IAAAC,EAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|