valtech-components 4.0.963 → 4.0.965
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/esm2022/lib/components/atoms/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
- package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
- package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
- package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
- package/esm2022/lib/components/atoms/notice/notice.component.mjs +3 -3
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
- package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
- package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
- package/esm2022/lib/components/atoms/user-avatar/user-avatar.component.mjs +3 -3
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/animal-card/animal-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/chat-composer/chat-composer.component.mjs +3 -3
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
- package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +3 -3
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +4 -4
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +3 -3
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/permission-selector/permission-selector.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
- package/esm2022/lib/components/molecules/section-header/section-header.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +4 -4
- package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +3 -3
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
- package/esm2022/lib/components/molecules/typing-indicator/typing-indicator.component.mjs +3 -3
- package/esm2022/lib/components/organisms/article/article.component.mjs +3 -3
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +3 -3
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
- package/esm2022/lib/components/organisms/confirmation-dialog-v2/confirmation-dialog-v2.component.mjs +3 -3
- package/esm2022/lib/components/organisms/cookie-settings/cookie-settings.component.mjs +3 -3
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/folder-tabs/folder-tabs.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
- package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +3 -3
- package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
- package/esm2022/lib/components/organisms/invite-member-modal/invite-member-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
- package/esm2022/lib/components/organisms/login/login.component.mjs +3 -3
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/mfa-modal/mfa-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/mini-games/bubble-blitz-game.component.mjs +3 -3
- package/esm2022/lib/components/organisms/mini-games/memory-game.component.mjs +3 -3
- package/esm2022/lib/components/organisms/mini-games/simon-game.component.mjs +3 -3
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
- package/esm2022/lib/components/organisms/option-sheet/option-sheet.component.mjs +3 -3
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/request-review-panel/request-review-panel.component.mjs +3 -3
- package/esm2022/lib/components/organisms/role-manager/role-manager.component.mjs +3 -3
- package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +3 -3
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
- package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +3 -3
- package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +174 -174
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/components/styles/overrides.scss +4 -4
- package/src/lib/components/styles/variables.scss +6 -6
|
@@ -42,7 +42,7 @@ export class ButtonGroupComponent {
|
|
|
42
42
|
[ngStyle]="{ width: props.buttons.length === 1 ? '100%' : 'auto' }"
|
|
43
43
|
></val-button>
|
|
44
44
|
</div>
|
|
45
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-
|
|
45
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}val-button{display:inline-block;margin-top:.25rem;margin-right:.25rem}val-button.single-button{margin-right:0}.group-container{width:100%}.group-container.left{text-align:left}.group-container.center{text-align:center}.group-container.right{text-align:right}.group-container.column{display:flex;flex-direction:column-reverse}.group-container.spaced{display:flex;justify-content:space-between}.group-container.leftocenter{text-align:left}@media (min-width: 768px){.group-container.leftocenter{text-align:center}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
46
46
|
}
|
|
47
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonGroupComponent, decorators: [{
|
|
48
48
|
type: Component,
|
|
@@ -56,10 +56,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
56
56
|
[ngStyle]="{ width: props.buttons.length === 1 ? '100%' : 'auto' }"
|
|
57
57
|
></val-button>
|
|
58
58
|
</div>
|
|
59
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-
|
|
59
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}val-button{display:inline-block;margin-top:.25rem;margin-right:.25rem}val-button.single-button{margin-right:0}.group-container{width:100%}.group-container.left{text-align:left}.group-container.center{text-align:center}.group-container.right{text-align:right}.group-container.column{display:flex;flex-direction:column-reverse}.group-container.spaced{display:flex;justify-content:space-between}.group-container.leftocenter{text-align:left}@media (min-width: 768px){.group-container.leftocenter{text-align:center}}\n"] }]
|
|
60
60
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
61
61
|
type: Input
|
|
62
62
|
}], onClick: [{
|
|
63
63
|
type: Output
|
|
64
64
|
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFvQnRFOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBaUIvQjtRQU5BOztXQUVHO1FBRUgsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFdEIsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztJQUViLFlBQVksQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEUsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQzsrR0EvQlUsb0JBQW9CO21HQUFwQixvQkFBb0IseUlBeEJyQjs7Ozs7Ozs7OztHQVVULG1pSEFYUyxZQUFZLCtVQUFFLGVBQWU7OzRGQXlCNUIsb0JBQW9CO2tCQTVCaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxZQUM5Qjs7Ozs7Ozs7OztHQVVUO3dEQXVCRCxLQUFLO3NCQURKLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJ1dHRvbi1ncm91cCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBbbmdDbGFzc109XCJbJ2dyb3VwLWNvbnRhaW5lcicsIFBvc2l0aW9uXVwiIFtjbGFzcy5jb2x1bW5dPVwicHJvcHMuY29sdW1uZWRcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGIgb2YgcHJvcHMuYnV0dG9uc1wiXG4gICAgICAgIFtjbGFzcy5zaW5nbGUtYnV0dG9uXT1cInByb3BzLmJ1dHRvbnMubGVuZ3RoID09PSAxXCJcbiAgICAgICAgW3Byb3BzXT1cImJcIlxuICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoYj8udG9rZW4pXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyB3aWR0aDogcHJvcHMuYnV0dG9ucy5sZW5ndGggPT09IDEgPyAnMTAwJScgOiAnYXV0bycgfVwiXG4gICAgICA+PC92YWwtYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24tZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1idXR0b24tZ3JvdXBcbiAqXG4gKiBEaXNwbGF5cyBhIGdyb3VwIG9mIGJ1dHRvbnMgd2l0aCBjb25maWd1cmFibGUgbGF5b3V0IGFuZCBwb3NpdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1idXR0b24tZ3JvdXAgW3Byb3BzXT1cInsgYnV0dG9uczogWy4uLl0sIHBvc2l0aW9uOiAnY2VudGVyJywgY29sdW1uZWQ6IGZhbHNlIH1cIiAob25DbGljayk9XCJoYW5kbGVyKCRldmVudClcIj48L3ZhbC1idXR0b24tZ3JvdXA+XG4gKlxuICogQGlucHV0IHByb3BzOiBCdXR0b25Hcm91cE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGJ1dHRvbiBncm91cCAoYnV0dG9ucywgcG9zaXRpb24sIGNvbHVtbmVkKVxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgdGhlIHRva2VuIG9mIHRoZSBjbGlja2VkIGJ1dHRvblxuICovXG5leHBvcnQgY2xhc3MgQnV0dG9uR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogQnV0dG9uIGdyb3VwIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxuICAgKiBAdHlwZSB7QnV0dG9uR3JvdXBNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGJ1dHRvbnMgLSBBcnJheSBvZiBidXR0b24gY29uZmlndXJhdGlvbnMuXG4gICAqIEBwcm9wZXJ0eSBwb3NpdGlvbiAtIFBvc2l0aW9uIG9mIHRoZSBidXR0b24gZ3JvdXAgKCdjZW50ZXInIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdzcGFjZWQnKS5cbiAgICogQHByb3BlcnR5IGNvbHVtbmVkIC0gV2hldGhlciB0aGUgYnV0dG9ucyBhcmUgZGlzcGxheWVkIGluIGEgY29sdW1uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IEJ1dHRvbkdyb3VwTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2l0aCB0aGUgdG9rZW4gb2YgdGhlIGNsaWNrZWQgYnV0dG9uLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIGNsaWNrSGFuZGxlcih0b2tlbj86IHN0cmluZykge1xuICAgIHRoaXMub25DbGljay5lbWl0KHRva2VuKTtcbiAgfVxuXG4gIGdldCBQb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmJ1dHRvbnMubGVuZ3RoID09PSAxICYmIHRoaXMucHJvcHMucG9zaXRpb24gPT09ICdzcGFjZWQnKSB7XG4gICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wb3NpdGlvbjtcbiAgfVxufVxuIl19
|
|
@@ -277,7 +277,7 @@ export class CardComponent {
|
|
|
277
277
|
</ng-container>
|
|
278
278
|
</ion-buttons>
|
|
279
279
|
</ion-card>
|
|
280
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-
|
|
280
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
281
281
|
}
|
|
282
282
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
|
|
283
283
|
type: Component,
|
|
@@ -492,7 +492,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
492
492
|
</ng-container>
|
|
493
493
|
</ion-buttons>
|
|
494
494
|
</ion-card>
|
|
495
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-
|
|
495
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.tapable:focus{outline:none}.tapable:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}img{width:100%;height:auto;max-height:250px;object-fit:cover;display:block;border-radius:24px}.card-actions{display:flex;gap:.5rem;padding:0 16px 16px;flex-wrap:wrap}\n"] }]
|
|
496
496
|
}], propDecorators: { preset: [{
|
|
497
497
|
type: Input
|
|
498
498
|
}], props: [{
|
|
@@ -500,4 +500,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
500
500
|
}], onClick: [{
|
|
501
501
|
type: Output
|
|
502
502
|
}] } });
|
|
503
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUE0TjlFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBMU8xQjtRQTJPVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixnQkFBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLGFBQVEsR0FBRyxXQUFXLENBQUM7S0FrQ3hCO0lBaENDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsYUFBYSxDQUFDLEtBQVksRUFBRSxPQUFvQixFQUFFLEtBQWM7UUFDOUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7K0dBdkVVLGFBQWE7bUdBQWIsYUFBYSx3S0F2TmQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvTVQsaXpIQW5OQyxZQUFZLGdRQUNaLGVBQWUsMEdBQ2YsZUFBZSwwR0FDZixjQUFjLHlFQUNkLGFBQWEsd0VBQ2IsT0FBTyx5TEFDUCxjQUFjLCtFQUNkLGFBQWEsc0dBQ2IsWUFBWSxzRkFDWixlQUFlLHlGQUNmLFdBQVcscU1BQ1gsVUFBVSw4RUFDVixTQUFTLG9QQUNULE9BQU87OzRGQXlORSxhQUFhO2tCQTFPekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsT0FBTztxQkFDUixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb01UOzhCQTZCUSxNQUFNO3NCQUFkLEtBQUs7Z0JBYUcsS0FBSztzQkFBYixLQUFLO2dCQVdOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25DYXJkLFxuICBJb25DYXJkQ29udGVudCxcbiAgSW9uQ2FyZEhlYWRlcixcbiAgSW9uQ2FyZFN1YnRpdGxlLFxuICBJb25DYXJkVGl0bGUsXG4gIElvbkNoZWNrYm94LFxuICBJb25JY29uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ2FyZENsaWNrRXZlbnQsIENhcmRNZXRhZGF0YSwgQ2FyZFNlY3Rpb24sIENhcmRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgSW9uQ2FyZCxcbiAgICBJb25DYXJkQ29udGVudCxcbiAgICBJb25DYXJkSGVhZGVyLFxuICAgIElvbkNhcmRUaXRsZSxcbiAgICBJb25DYXJkU3VidGl0bGUsXG4gICAgSW9uQ2hlY2tib3gsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNhcmQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLm5hdGl2ZVwiPlxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgIDxpbWcgW2FsdF09XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8ICdDYXJkIGltYWdlJ1wiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVwiIC8+XG4gICAgICB9XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuXG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYlwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZFxuICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLnRhcHBhYmxlXCJcbiAgICAgIGNsYXNzPVwidGFwYWJsZVwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfHwgbnVsbFwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbktleUFjdGl2YXRlKCRldmVudCwgc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgID5cbiAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5pbWFnZSkge1xuICAgICAgICA8aW1nIFthbHRdPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCAnQ2FyZCBpbWFnZSdcIiBbc3JjXT1cInJlc29sdmVkUHJvcHMuaW1hZ2VcIiAvPlxuICAgICAgfVxuICAgICAgPGlvbi1jYXJkLWhlYWRlciAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj5cbiAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkXG4gICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY2hlY2tlclwiXG4gICAgICBjbGFzcz1cInRhcGFibGVcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cIiEhcmVzb2x2ZWRQcm9wcy5zZWxlY3RlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfHwgbnVsbFwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbktleUFjdGl2YXRlKCRldmVudCwgc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgID5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjaGVja2VyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW9uLWNoZWNrYm94IFtjaGVja2VkXT1cInJlc29sdmVkUHJvcHMuc2VsZWN0ZWRcIj48L2lvbi1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZCAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY29tcGxleFwiIGNsYXNzPVwiY29tcGxleFwiPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciBjbGFzcz1cImNvbXBsZXgtaGVhZGVyXCI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiAqbmdJZj1cInJlc29sdmVkUHJvcHMubGVmdEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5sZWZ0QWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlckxlZnQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmhlYWRlclRleHRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHJlc29sdmVkUHJvcHMuaGVhZGVyVGV4dCwgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgc2l6ZTogJ21lZGl1bScgfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiIGNvbG9yPVwiZGFya1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8dmFsLWF2YXRhclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNHB4OyBjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBpbWFnZTogYWN0aW9uLmRlc2NyaXB0aW9uLCBkZWZhdWx0OiAnJyB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YXBhYmxlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB8fCBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uS2V5QWN0aXZhdGUoJGV2ZW50LCBzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICA+XG4gICAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjb21wbGV4LWhlYWRlclwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiIGNsYXNzPVwiY29tcGxleC1jb250ZW50XCI+e3tcbiAgICAgICAgICByZXNvbHZlZFByb3BzLmNvbnRlbnRcbiAgICAgICAgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zICYmIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbnNcIj5cbiAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGIgb2YgcmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJiXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXIsIGIudG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxpb24tYnV0dG9uc1xuICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IG1hcmdpbjogOHB4XCJcbiAgICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmZvb3RlckNvbXBsZXhBY3Rpb25zPy5sZW5ndGggPiAwXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQ29tcGxleEFjdGlvbnNcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiIGNvbG9yPVwiZGFya1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNHB4OyBjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2lvbi1idXR0b25zPlxuICAgIDwvaW9uLWNhcmQ+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1jYXJkXG4gKlxuICogQSBmbGV4aWJsZSBjYXJkIGNvbXBvbmVudCBzdXBwb3J0aW5nIGltYWdlcywgdGl0bGVzLCBjb250ZW50LCBhY3Rpb25zLCBhbmQgY3VzdG9tIHNlY3Rpb25zLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQgKHJlY29tbWVuZGVkKTpcbiAqIDx2YWwtY2FyZCBwcmVzZXQ9XCJmZWF0dXJlXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdDYXJkJywgaW1hZ2U6ICd1cmwnLCBjb250ZW50OiAnLi4uJyB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigkZXZlbnQpXCI+PC92YWwtY2FyZD5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgKGJhY2t3YXJkcyBjb21wYXRpYmxlKTpcbiAqIDx2YWwtY2FyZCBbcHJvcHNdPVwieyB0eXBlOiAnbmF0aXZlJywgdGl0bGU6ICdDYXJkJywgaW1hZ2U6ICd1cmwnLCBjb250ZW50OiAnLi4uJyB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigkZXZlbnQpXCI+PC92YWwtY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseSAoZS5nLiwgJ2ZlYXR1cmUnLCAnY29tcGFjdCcpXG4gKiBAaW5wdXQgcHJvcHM6IENhcmRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYXJkIChvdmVycmlkZXMgcHJlc2V0IHZhbHVlcylcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIGEgQ2FyZENsaWNrRXZlbnQgd2hlbiB0aGUgY2FyZCBvciBhbiBhY3Rpb24gaXMgY2xpY2tlZFxuICovXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgY2FyZCBjb25maWd1cmF0aW9uc1xuICAgKiAodHlwZSwgdmFyaWFudCwgcGFkZGluZywgZXRjLikgdGhhdCBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBhcHAgbGV2ZWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtY2FyZCBwcmVzZXQ9XCJmZWF0dXJlXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdNeSBDYXJkJyB9XCI+PC92YWwtY2FyZD5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ2FyZCBjb25maWd1cmF0aW9uIG9iamVjdC4gVmFsdWVzIGhlcmUgb3ZlcnJpZGUgcHJlc2V0IHZhbHVlcy5cbiAgICogQHR5cGUge0NhcmRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IHR5cGUgLSBUaGUgY2FyZCB0eXBlIChzZWUgQ2FyZFR5cGUpLlxuICAgKiBAcHJvcGVydHkgdGl0bGUgLSBUaGUgY2FyZCB0aXRsZS5cbiAgICogQHByb3BlcnR5IGltYWdlIC0gVGhlIGNhcmQgaW1hZ2UgVVJMLlxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFRoZSBjYXJkIGNvbnRlbnQuXG4gICAqIEBwcm9wZXJ0eSBhY3Rpb25zIC0gQXJyYXkgb2YgYWN0aW9uIGJ1dHRvbnMgKG9wdGlvbmFsKS5cbiAgICogQHByb3BlcnR5IHNlY3Rpb25zIC0gQ3VzdG9tIGNhcmQgc2VjdGlvbnMgKG9wdGlvbmFsKS5cbiAgICogQHByb3BlcnR5IG92ZXJ0aXRsZSAtIFN1YnRpdGxlIG9yIG92ZXJ0aXRsZSAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8Q2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlZCBwcm9wcyBhZnRlciBtZXJnaW5nIHByZXNldCArIGV4cGxpY2l0IHByb3BzLlxuICAgKi9cbiAgcmVzb2x2ZWRQcm9wczogQ2FyZE1ldGFkYXRhID0ge30gYXMgQ2FyZE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNhcmQgb3IgYW4gYWN0aW9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FyZENsaWNrRXZlbnQ+KCk7XG5cbiAgdHlwZXMgPSBDYXJkVHlwZTtcbiAgYWN0aW9uVHlwZXMgPSBUb29sYmFyQWN0aW9uVHlwZTtcbiAgc2VjdGlvbnMgPSBDYXJkU2VjdGlvbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBwcmVzZXQgY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IHByb3BzLlxuICAgKiBFeHBsaWNpdCBwcm9wcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldCA/ICh0aGlzLnByZXNldHMuZ2V0KCdjYXJkJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8Q2FyZE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIENhcmRNZXRhZGF0YTtcbiAgfVxuXG4gIGNsaWNrSGFuZGxlcihzZWN0aW9uOiBDYXJkU2VjdGlvbiwgdG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHNlY3Rpb24sIHRva2VuIH0pO1xuICB9XG5cbiAgLyoqIEFjdGl2YWNpw7NuIHBvciB0ZWNsYWRvIGNvbiBTcGFjZSDigJQgcHJldmllbmUgZWwgc2Nyb2xsIGRlIGxhIHDDoWdpbmEuICovXG4gIG9uS2V5QWN0aXZhdGUoZXZlbnQ6IEV2ZW50LCBzZWN0aW9uOiBDYXJkU2VjdGlvbiwgdG9rZW4/OiBzdHJpbmcpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY2xpY2tIYW5kbGVyKHNlY3Rpb24sIHRva2VuKTtcbiAgfVxufVxuIl19
|
|
503
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsT0FBTyxHQUNSLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFnQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUE0TjlFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBMU8xQjtRQTJPVSxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBV3hDOzs7Ozs7Ozs7O1dBVUc7UUFDTSxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUUzQzs7V0FFRztRQUNILGtCQUFhLEdBQWlCLEVBQWtCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFN0MsVUFBSyxHQUFHLFFBQVEsQ0FBQztRQUNqQixnQkFBVyxHQUFHLGlCQUFpQixDQUFDO1FBQ2hDLGFBQVEsR0FBRyxXQUFXLENBQUM7S0FrQ3hCO0lBaENDLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixHQUFHLFdBQVc7WUFDZCxHQUFHLElBQUksQ0FBQyxLQUFLO1NBQ0UsQ0FBQztJQUNwQixDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQW9CLEVBQUUsS0FBYztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsYUFBYSxDQUFDLEtBQVksRUFBRSxPQUFvQixFQUFFLEtBQWM7UUFDOUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7K0dBdkVVLGFBQWE7bUdBQWIsYUFBYSx3S0F2TmQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvTVQsNnpIQW5OQyxZQUFZLGdRQUNaLGVBQWUsMEdBQ2YsZUFBZSwwR0FDZixjQUFjLHlFQUNkLGFBQWEsd0VBQ2IsT0FBTyx5TEFDUCxjQUFjLCtFQUNkLGFBQWEsc0dBQ2IsWUFBWSxzRkFDWixlQUFlLHlGQUNmLFdBQVcscU1BQ1gsVUFBVSw4RUFDVixTQUFTLG9QQUNULE9BQU87OzRGQXlORSxhQUFhO2tCQTFPekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsT0FBTztxQkFDUixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb01UOzhCQTZCUSxNQUFNO3NCQUFkLEtBQUs7Z0JBYUcsS0FBSztzQkFBYixLQUFLO2dCQVdOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25DYXJkLFxuICBJb25DYXJkQ29udGVudCxcbiAgSW9uQ2FyZEhlYWRlcixcbiAgSW9uQ2FyZFN1YnRpdGxlLFxuICBJb25DYXJkVGl0bGUsXG4gIElvbkNoZWNrYm94LFxuICBJb25JY29uLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXRzJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xiYXJBY3Rpb25UeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQ2FyZENsaWNrRXZlbnQsIENhcmRNZXRhZGF0YSwgQ2FyZFNlY3Rpb24sIENhcmRUeXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgSW9uQ2FyZCxcbiAgICBJb25DYXJkQ29udGVudCxcbiAgICBJb25DYXJkSGVhZGVyLFxuICAgIElvbkNhcmRUaXRsZSxcbiAgICBJb25DYXJkU3VidGl0bGUsXG4gICAgSW9uQ2hlY2tib3gsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uSWNvbixcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNhcmQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLm5hdGl2ZVwiPlxuICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgIDxpbWcgW2FsdF09XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8ICdDYXJkIGltYWdlJ1wiIFtzcmNdPVwicmVzb2x2ZWRQcm9wcy5pbWFnZVwiIC8+XG4gICAgICB9XG4gICAgICA8aW9uLWNhcmQtaGVhZGVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPlxuICAgICAgICA8aW9uLWNhcmQtdGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgIDxpb24tY2FyZC1zdWJ0aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCI+e3sgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfX08L2lvbi1jYXJkLXN1YnRpdGxlPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxpb24tY2FyZC1jb250ZW50ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5jb250ZW50XCI+e3sgcmVzb2x2ZWRQcm9wcy5jb250ZW50IH19PC9pb24tY2FyZC1jb250ZW50PlxuXG4gICAgICBAaWYgKHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucyAmJiByZXNvbHZlZFByb3BzLmZvb3RlckFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBiIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9uc1wiXG4gICAgICAgICAgICBbcHJvcHNdPVwiYlwiXG4gICAgICAgICAgICAob25DbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuZm9vdGVyLCBiLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZFxuICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnR5cGUgPT09IHR5cGVzLnRhcHBhYmxlXCJcbiAgICAgIGNsYXNzPVwidGFwYWJsZVwiXG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfHwgbnVsbFwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbktleUFjdGl2YXRlKCRldmVudCwgc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgID5cbiAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5pbWFnZSkge1xuICAgICAgICA8aW1nIFthbHRdPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCAnQ2FyZCBpbWFnZSdcIiBbc3JjXT1cInJlc29sdmVkUHJvcHMuaW1hZ2VcIiAvPlxuICAgICAgfVxuICAgICAgPGlvbi1jYXJkLWhlYWRlciAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj5cbiAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuXG4gICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiPnt7IHJlc29sdmVkUHJvcHMuY29udGVudCB9fTwvaW9uLWNhcmQtY29udGVudD5cbiAgICA8L2lvbi1jYXJkPlxuXG4gICAgPGlvbi1jYXJkXG4gICAgICAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY2hlY2tlclwiXG4gICAgICBjbGFzcz1cInRhcGFibGVcIlxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cIiEhcmVzb2x2ZWRQcm9wcy5zZWxlY3RlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgcmVzb2x2ZWRQcm9wcy5vdmVydGl0bGUgfHwgbnVsbFwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmNvbnRlbnQsIHJlc29sdmVkUHJvcHMudG9rZW4pXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAoa2V5ZG93bi5zcGFjZSk9XCJvbktleUFjdGl2YXRlKCRldmVudCwgc2VjdGlvbnMuY29udGVudCwgcmVzb2x2ZWRQcm9wcy50b2tlbilcIlxuICAgID5cbiAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjaGVja2VyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5vdmVydGl0bGVcIj57eyByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB9fTwvaW9uLWNhcmQtc3VidGl0bGU+XG4gICAgICAgICAgPGlvbi1jYXJkLXRpdGxlICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy50aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMudGl0bGUgfX08L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aW9uLWNoZWNrYm94IFtjaGVja2VkXT1cInJlc29sdmVkUHJvcHMuc2VsZWN0ZWRcIj48L2lvbi1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cblxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmNvbnRlbnRcIj57eyByZXNvbHZlZFByb3BzLmNvbnRlbnQgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgPC9pb24tY2FyZD5cblxuICAgIDxpb24tY2FyZCAqbmdJZj1cInJlc29sdmVkUHJvcHMudHlwZSA9PT0gdHlwZXMuY29tcGxleFwiIGNsYXNzPVwiY29tcGxleFwiPlxuICAgICAgPGlvbi1jYXJkLWhlYWRlciBjbGFzcz1cImNvbXBsZXgtaGVhZGVyXCI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIiAqbmdJZj1cInJlc29sdmVkUHJvcHMubGVmdEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5sZWZ0QWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aW9uLmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBbbmFtZV09XCJhY3Rpb24uZGVzY3JpcHRpb25cIiBjb2xvcj1cImRhcmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPHZhbC1hdmF0YXJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDsgY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgaW1hZ2U6IGFjdGlvbi5kZXNjcmlwdGlvbiwgZGVmYXVsdDogJycgfVwiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJMZWZ0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyTGVmdCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+PC92YWwtaW1hZ2U+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlckxlZnQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24uZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmhlYWRlclRleHRcIj5cbiAgICAgICAgICAgICAgPHZhbC10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHJlc29sdmVkUHJvcHMuaGVhZGVyVGV4dCwgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgc2l6ZTogJ21lZGl1bScgfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi1idXR0b25zIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVzb2x2ZWRQcm9wcy5yaWdodEFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklDT05cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiIGNvbG9yPVwiZGFya1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8dmFsLWF2YXRhclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNHB4OyBjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5BVkFUQVJcIlxuICAgICAgICAgICAgICBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBpbWFnZTogYWN0aW9uLmRlc2NyaXB0aW9uLCBkZWZhdWx0OiAnJyB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmhlYWRlclJpZ2h0LCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICAgID48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgICA8dmFsLWltYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgICAgW3Byb3BzXT1cImFjdGlvbi5pbWFnZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0hhbmRsZXIoc2VjdGlvbnMuaGVhZGVyUmlnaHQsIGFjdGlvbi50b2tlbilcIlxuICAgICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQlVUVE9OXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5oZWFkZXJSaWdodCwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0YXBhYmxlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRQcm9wcy50aXRsZSB8fCByZXNvbHZlZFByb3BzLm92ZXJ0aXRsZSB8fCBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9uS2V5QWN0aXZhdGUoJGV2ZW50LCBzZWN0aW9ucy5jb250ZW50LCByZXNvbHZlZFByb3BzLnRva2VuKVwiXG4gICAgICA+XG4gICAgICAgIDxpb24tY2FyZC1oZWFkZXIgKm5nSWY9XCJyZXNvbHZlZFByb3BzLnRpdGxlIHx8IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlXCIgY2xhc3M9XCJjb21wbGV4LWhlYWRlclwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aW9uLWNhcmQtc3VidGl0bGUgKm5nSWY9XCJyZXNvbHZlZFByb3BzLm92ZXJ0aXRsZVwiPnt7IHJlc29sdmVkUHJvcHMub3ZlcnRpdGxlIH19PC9pb24tY2FyZC1zdWJ0aXRsZT5cbiAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZSAqbmdJZj1cInJlc29sdmVkUHJvcHMudGl0bGVcIj57eyByZXNvbHZlZFByb3BzLnRpdGxlIH19PC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG5cbiAgICAgICAgQGlmIChyZXNvbHZlZFByb3BzLmltYWdlKSB7XG4gICAgICAgICAgPGltZyBbYWx0XT1cInJlc29sdmVkUHJvcHMudGl0bGUgfHwgJ0NhcmQgaW1hZ2UnXCIgW3NyY109XCJyZXNvbHZlZFByb3BzLmltYWdlXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8aW9uLWNhcmQtY29udGVudCAqbmdJZj1cInJlc29sdmVkUHJvcHMuY29udGVudFwiIGNsYXNzPVwiY29tcGxleC1jb250ZW50XCI+e3tcbiAgICAgICAgICByZXNvbHZlZFByb3BzLmNvbnRlbnRcbiAgICAgICAgfX08L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAocmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zICYmIHJlc29sdmVkUHJvcHMuZm9vdGVyQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFjdGlvbnNcIj5cbiAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGIgb2YgcmVzb2x2ZWRQcm9wcy5mb290ZXJBY3Rpb25zXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJiXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXIsIGIudG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxpb24tYnV0dG9uc1xuICAgICAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IG1hcmdpbjogOHB4XCJcbiAgICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmZvb3RlckNvbXBsZXhBY3Rpb25zPy5sZW5ndGggPiAwXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJlc29sdmVkUHJvcHMuZm9vdGVyQ29tcGxleEFjdGlvbnNcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuSUNPTlwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImFjdGlvbi5kZXNjcmlwdGlvblwiIGNvbG9yPVwiZGFya1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDx2YWwtYXZhdGFyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogNHB4OyBjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZXMuQVZBVEFSXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGltYWdlOiBhY3Rpb24uZGVzY3JpcHRpb24sIGRlZmF1bHQ6ICcnIH1cIlxuICAgICAgICAgICAgKG9uQ2xpY2spPVwiY2xpY2tIYW5kbGVyKHNlY3Rpb25zLmZvb3RlckV4dHJhLCBhY3Rpb24udG9rZW4pXCJcbiAgICAgICAgICA+PC92YWwtYXZhdGFyPlxuICAgICAgICAgIDx2YWwtaW1hZ2VcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLnR5cGUgPT09IGFjdGlvblR5cGVzLklNQUdFXCJcbiAgICAgICAgICAgIFtwcm9wc109XCJhY3Rpb24uaW1hZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgPjwvdmFsLWltYWdlPlxuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbi50eXBlID09PSBhY3Rpb25UeXBlcy5CVVRUT05cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSGFuZGxlcihzZWN0aW9ucy5mb290ZXJFeHRyYSwgYWN0aW9uLnRva2VuKVwiXG4gICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2lvbi1idXR0b25zPlxuICAgIDwvaW9uLWNhcmQ+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1jYXJkXG4gKlxuICogQSBmbGV4aWJsZSBjYXJkIGNvbXBvbmVudCBzdXBwb3J0aW5nIGltYWdlcywgdGl0bGVzLCBjb250ZW50LCBhY3Rpb25zLCBhbmQgY3VzdG9tIHNlY3Rpb25zLlxuICogU3VwcG9ydHMgcHJlc2V0cyBmb3IgcmV1c2FibGUgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQgKHJlY29tbWVuZGVkKTpcbiAqIDx2YWwtY2FyZCBwcmVzZXQ9XCJmZWF0dXJlXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdDYXJkJywgaW1hZ2U6ICd1cmwnLCBjb250ZW50OiAnLi4uJyB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigkZXZlbnQpXCI+PC92YWwtY2FyZD5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgKGJhY2t3YXJkcyBjb21wYXRpYmxlKTpcbiAqIDx2YWwtY2FyZCBbcHJvcHNdPVwieyB0eXBlOiAnbmF0aXZlJywgdGl0bGU6ICdDYXJkJywgaW1hZ2U6ICd1cmwnLCBjb250ZW50OiAnLi4uJyB9XCIgKG9uQ2xpY2spPVwiaGFuZGxlcigkZXZlbnQpXCI+PC92YWwtY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseSAoZS5nLiwgJ2ZlYXR1cmUnLCAnY29tcGFjdCcpXG4gKiBAaW5wdXQgcHJvcHM6IENhcmRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYXJkIChvdmVycmlkZXMgcHJlc2V0IHZhbHVlcylcbiAqIEBvdXRwdXQgb25DbGljayAtIEVtaXRzIGEgQ2FyZENsaWNrRXZlbnQgd2hlbiB0aGUgY2FyZCBvciBhbiBhY3Rpb24gaXMgY2xpY2tlZFxuICovXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgY2FyZCBjb25maWd1cmF0aW9uc1xuICAgKiAodHlwZSwgdmFyaWFudCwgcGFkZGluZywgZXRjLikgdGhhdCBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBhcHAgbGV2ZWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtY2FyZCBwcmVzZXQ9XCJmZWF0dXJlXCIgW3Byb3BzXT1cInsgdGl0bGU6ICdNeSBDYXJkJyB9XCI+PC92YWwtY2FyZD5cbiAgICovXG4gIEBJbnB1dCgpIHByZXNldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ2FyZCBjb25maWd1cmF0aW9uIG9iamVjdC4gVmFsdWVzIGhlcmUgb3ZlcnJpZGUgcHJlc2V0IHZhbHVlcy5cbiAgICogQHR5cGUge0NhcmRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IHR5cGUgLSBUaGUgY2FyZCB0eXBlIChzZWUgQ2FyZFR5cGUpLlxuICAgKiBAcHJvcGVydHkgdGl0bGUgLSBUaGUgY2FyZCB0aXRsZS5cbiAgICogQHByb3BlcnR5IGltYWdlIC0gVGhlIGNhcmQgaW1hZ2UgVVJMLlxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFRoZSBjYXJkIGNvbnRlbnQuXG4gICAqIEBwcm9wZXJ0eSBhY3Rpb25zIC0gQXJyYXkgb2YgYWN0aW9uIGJ1dHRvbnMgKG9wdGlvbmFsKS5cbiAgICogQHByb3BlcnR5IHNlY3Rpb25zIC0gQ3VzdG9tIGNhcmQgc2VjdGlvbnMgKG9wdGlvbmFsKS5cbiAgICogQHByb3BlcnR5IG92ZXJ0aXRsZSAtIFN1YnRpdGxlIG9yIG92ZXJ0aXRsZSAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8Q2FyZE1ldGFkYXRhPiA9IHt9O1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlZCBwcm9wcyBhZnRlciBtZXJnaW5nIHByZXNldCArIGV4cGxpY2l0IHByb3BzLlxuICAgKi9cbiAgcmVzb2x2ZWRQcm9wczogQ2FyZE1ldGFkYXRhID0ge30gYXMgQ2FyZE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNhcmQgb3IgYW4gYWN0aW9uIGlzIGNsaWNrZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FyZENsaWNrRXZlbnQ+KCk7XG5cbiAgdHlwZXMgPSBDYXJkVHlwZTtcbiAgYWN0aW9uVHlwZXMgPSBUb29sYmFyQWN0aW9uVHlwZTtcbiAgc2VjdGlvbnMgPSBDYXJkU2VjdGlvbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwcmVzZXQnXSB8fCBjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0aGlzLnJlc29sdmVQcm9wcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSBwcmVzZXQgY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IHByb3BzLlxuICAgKiBFeHBsaWNpdCBwcm9wcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciBwcmVzZXQgdmFsdWVzLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlUHJvcHMoKTogdm9pZCB7XG4gICAgY29uc3QgcHJlc2V0UHJvcHMgPSB0aGlzLnByZXNldCA/ICh0aGlzLnByZXNldHMuZ2V0KCdjYXJkJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8Q2FyZE1ldGFkYXRhPikgOiB7fTtcblxuICAgIHRoaXMucmVzb2x2ZWRQcm9wcyA9IHtcbiAgICAgIC4uLnByZXNldFByb3BzLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICB9IGFzIENhcmRNZXRhZGF0YTtcbiAgfVxuXG4gIGNsaWNrSGFuZGxlcihzZWN0aW9uOiBDYXJkU2VjdGlvbiwgdG9rZW4/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHNlY3Rpb24sIHRva2VuIH0pO1xuICB9XG5cbiAgLyoqIEFjdGl2YWNpw7NuIHBvciB0ZWNsYWRvIGNvbiBTcGFjZSDigJQgcHJldmllbmUgZWwgc2Nyb2xsIGRlIGxhIHDDoWdpbmEuICovXG4gIG9uS2V5QWN0aXZhdGUoZXZlbnQ6IEV2ZW50LCBzZWN0aW9uOiBDYXJkU2VjdGlvbiwgdG9rZW4/OiBzdHJpbmcpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuY2xpY2tIYW5kbGVyKHNlY3Rpb24sIHRva2VuKTtcbiAgfVxufVxuIl19
|
|
@@ -538,7 +538,7 @@ export class ChatComposerComponent {
|
|
|
538
538
|
</div>
|
|
539
539
|
}
|
|
540
540
|
</div>
|
|
541
|
-
`, isInline: true, styles: [":host{display:block}.composer{display:flex;flex-direction:column;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color, #fff);border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}.reply-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:3px solid var(--ion-color-primary);border-radius:8px;background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.reply-content{display:flex;flex-direction:column;flex:1;min-width:0;font-size:.8125rem}.reply-name{font-weight:700;color:var(--ion-color-primary)}.reply-body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ion-color-dark, #92949c)}.pending-row{display:flex;gap:8px;flex-wrap:wrap;padding:2px 4px}.thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1));cursor:pointer}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;color:var(--ion-color-dark, #92949c);font-size:1.5rem}.thumb-name{font-size:.5625rem;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-text-color, #000)}.thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem}.shell{display:flex;flex-direction:column;gap:8px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:26px;padding:12px 16px}.editable{min-height:40px;max-height:180px;overflow-y:auto;outline:none;font-size:.9375rem;line-height:1.4;color:var(--ion-text-color, #000);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.editable.is-empty:before{content:attr(data-placeholder);color:var(--ion-color-dark, #92949c);pointer-events:none}.actions{display:flex;align-items:center;gap:4px}.actions-spacer{flex:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--ion-color-dark, #92949c);cursor:pointer;font-size:1.25rem}.icon-btn:hover{color:var(--ion-color-primary)}.icon-btn.dictate.active{color:var(--ion-color-primary);animation:dictate-pulse 1.2s ease-in-out infinite}@keyframes dictate-pulse{0%,to{opacity:1}50%{opacity:.4}}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:var(--ion-color-primary);color:var(--ion-color-primary-contrast, #fff);cursor:pointer;font-size:1.125rem;transition:transform .1s ease}.send-btn:active{transform:scale(.92)}.icon-btn.danger{color:var(--ion-color-danger, #eb445a)}.audio-chip{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border-radius:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.audio-chip audio{flex:1;height:36px;min-width:0}.thumb-remove.inline{position:static;flex-shrink:0;background:var(--ion-color-
|
|
541
|
+
`, isInline: true, styles: [":host{display:block}.composer{display:flex;flex-direction:column;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color, #fff);border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}.reply-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:3px solid var(--ion-color-primary);border-radius:8px;background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.reply-content{display:flex;flex-direction:column;flex:1;min-width:0;font-size:.8125rem}.reply-name{font-weight:700;color:var(--ion-color-primary)}.reply-body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ion-color-dark, #92949c)}.pending-row{display:flex;gap:8px;flex-wrap:wrap;padding:2px 4px}.thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1));cursor:pointer}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;color:var(--ion-color-dark, #92949c);font-size:1.5rem}.thumb-name{font-size:.5625rem;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-text-color, #000)}.thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem}.shell{display:flex;flex-direction:column;gap:8px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:26px;padding:12px 16px}.editable{min-height:40px;max-height:180px;overflow-y:auto;outline:none;font-size:.9375rem;line-height:1.4;color:var(--ion-text-color, #000);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.editable.is-empty:before{content:attr(data-placeholder);color:var(--ion-color-dark, #92949c);pointer-events:none}.actions{display:flex;align-items:center;gap:4px}.actions-spacer{flex:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--ion-color-dark, #92949c);cursor:pointer;font-size:1.25rem}.icon-btn:hover{color:var(--ion-color-primary)}.icon-btn.dictate.active{color:var(--ion-color-primary);animation:dictate-pulse 1.2s ease-in-out infinite}@keyframes dictate-pulse{0%,to{opacity:1}50%{opacity:.4}}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:var(--ion-color-primary);color:var(--ion-color-primary-contrast, #fff);cursor:pointer;font-size:1.125rem;transition:transform .1s ease}.send-btn:active{transform:scale(.92)}.icon-btn.danger{color:var(--ion-color-danger, #eb445a)}.audio-chip{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border-radius:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.audio-chip audio{flex:1;height:36px;min-width:0}.thumb-remove.inline{position:static;flex-shrink:0;background:var(--ion-color-medium, #92949c)}.rec-bar{display:flex;align-items:center;gap:10px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:20px;padding:4px 8px}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--ion-color-danger, #eb445a);animation:rec-pulse 1.2s ease-in-out infinite}.rec-time{font-variant-numeric:tabular-nums;font-size:.9375rem;color:var(--ion-text-color, #000)}.rec-spacer{flex:1}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.3}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
|
|
542
542
|
}
|
|
543
543
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComposerComponent, decorators: [{
|
|
544
544
|
type: Component,
|
|
@@ -659,6 +659,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
659
659
|
</div>
|
|
660
660
|
}
|
|
661
661
|
</div>
|
|
662
|
-
`, styles: [":host{display:block}.composer{display:flex;flex-direction:column;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color, #fff);border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}.reply-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:3px solid var(--ion-color-primary);border-radius:8px;background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.reply-content{display:flex;flex-direction:column;flex:1;min-width:0;font-size:.8125rem}.reply-name{font-weight:700;color:var(--ion-color-primary)}.reply-body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ion-color-dark, #92949c)}.pending-row{display:flex;gap:8px;flex-wrap:wrap;padding:2px 4px}.thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1));cursor:pointer}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;color:var(--ion-color-dark, #92949c);font-size:1.5rem}.thumb-name{font-size:.5625rem;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-text-color, #000)}.thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem}.shell{display:flex;flex-direction:column;gap:8px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:26px;padding:12px 16px}.editable{min-height:40px;max-height:180px;overflow-y:auto;outline:none;font-size:.9375rem;line-height:1.4;color:var(--ion-text-color, #000);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.editable.is-empty:before{content:attr(data-placeholder);color:var(--ion-color-dark, #92949c);pointer-events:none}.actions{display:flex;align-items:center;gap:4px}.actions-spacer{flex:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--ion-color-dark, #92949c);cursor:pointer;font-size:1.25rem}.icon-btn:hover{color:var(--ion-color-primary)}.icon-btn.dictate.active{color:var(--ion-color-primary);animation:dictate-pulse 1.2s ease-in-out infinite}@keyframes dictate-pulse{0%,to{opacity:1}50%{opacity:.4}}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:var(--ion-color-primary);color:var(--ion-color-primary-contrast, #fff);cursor:pointer;font-size:1.125rem;transition:transform .1s ease}.send-btn:active{transform:scale(.92)}.icon-btn.danger{color:var(--ion-color-danger, #eb445a)}.audio-chip{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border-radius:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.audio-chip audio{flex:1;height:36px;min-width:0}.thumb-remove.inline{position:static;flex-shrink:0;background:var(--ion-color-
|
|
662
|
+
`, styles: [":host{display:block}.composer{display:flex;flex-direction:column;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:var(--ion-background-color, #fff);border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}.reply-bar{display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:3px solid var(--ion-color-primary);border-radius:8px;background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.reply-content{display:flex;flex-direction:column;flex:1;min-width:0;font-size:.8125rem}.reply-name{font-weight:700;color:var(--ion-color-primary)}.reply-body{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ion-color-dark, #92949c)}.pending-row{display:flex;gap:8px;flex-wrap:wrap;padding:2px 4px}.thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1));cursor:pointer}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;color:var(--ion-color-dark, #92949c);font-size:1.5rem}.thumb-name{font-size:.5625rem;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ion-text-color, #000)}.thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:50%;background:#0000008c;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem}.shell{display:flex;flex-direction:column;gap:8px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:26px;padding:12px 16px}.editable{min-height:40px;max-height:180px;overflow-y:auto;outline:none;font-size:.9375rem;line-height:1.4;color:var(--ion-text-color, #000);white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;user-select:text}.editable.is-empty:before{content:attr(data-placeholder);color:var(--ion-color-dark, #92949c);pointer-events:none}.actions{display:flex;align-items:center;gap:4px}.actions-spacer{flex:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--ion-color-dark, #92949c);cursor:pointer;font-size:1.25rem}.icon-btn:hover{color:var(--ion-color-primary)}.icon-btn.dictate.active{color:var(--ion-color-primary);animation:dictate-pulse 1.2s ease-in-out infinite}@keyframes dictate-pulse{0%,to{opacity:1}50%{opacity:.4}}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:50%;background:var(--ion-color-primary);color:var(--ion-color-primary-contrast, #fff);cursor:pointer;font-size:1.125rem;transition:transform .1s ease}.send-btn:active{transform:scale(.92)}.icon-btn.danger{color:var(--ion-color-danger, #eb445a)}.audio-chip{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border-radius:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-color-step-100, rgba(127, 127, 127, .1))}.audio-chip audio{flex:1;height:36px;min-width:0}.thumb-remove.inline{position:static;flex-shrink:0;background:var(--ion-color-medium, #92949c)}.rec-bar{display:flex;align-items:center;gap:10px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-radius:20px;padding:4px 8px}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--ion-color-danger, #eb445a);animation:rec-pulse 1.2s ease-in-out infinite}.rec-time{font-variant-numeric:tabular-nums;font-size:.9375rem;color:var(--ion-text-color, #000)}.rec-spacer{flex:1}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.3}}\n"] }]
|
|
663
663
|
}], ctorParameters: () => [] });
|
|
664
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jb21wb3Nlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoYXQtY29tcG9zZXIvY2hhdC1jb21wb3Nlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxlQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFFNUcsUUFBUSxDQUFDO0lBQ1AsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osZUFBZTtJQUNmLFVBQVU7SUFDVixZQUFZO0lBQ1osY0FBYztJQUNkLFlBQVk7Q0FDYixDQUFDLENBQUM7QUFFSCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLEVBQUUsRUFBRTtRQUNGLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsSUFBSSxFQUFFLFFBQVE7UUFD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QUksQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLFVBQVU7UUFDWixDQUFDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEdBQUcsQ0FBQyxHQUFHO2dCQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsQ0FBQyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMxQyxDQUFDOytHQW5ZVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwrdENBcFd0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUhULCsxSEF0SFMsWUFBWSwrQkFBRSxPQUFPOzs0RkFxV3BCLHFCQUFxQjtrQkF4V2pDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFIVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgYWRkT3V0bGluZSxcbiAgY2hlY2ttYXJrT3V0bGluZSxcbiAgY2xvc2VPdXRsaW5lLFxuICBkb2N1bWVudE91dGxpbmUsXG4gIG1pY091dGxpbmUsXG4gIHB1bHNlT3V0bGluZSxcbiAgYXJyb3dVcE91dGxpbmUsXG4gIHRyYXNoT3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgZml4V2VibUR1cmF0aW9uIGZyb20gJ2ZpeC13ZWJtLWR1cmF0aW9uJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE1lc3NhZ2VSZXBseVRvIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC90eXBlcyc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lZGlhVmlld2VyTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvbWVkaWEtdmlld2VyLW1vZGFsL21lZGlhLXZpZXdlci1tb2RhbC5jb21wb25lbnQnO1xuXG5hZGRJY29ucyh7XG4gIGFkZE91dGxpbmUsXG4gIGNoZWNrbWFya091dGxpbmUsXG4gIGNsb3NlT3V0bGluZSxcbiAgZG9jdW1lbnRPdXRsaW5lLFxuICBtaWNPdXRsaW5lLFxuICBwdWxzZU91dGxpbmUsXG4gIGFycm93VXBPdXRsaW5lLFxuICB0cmFzaE91dGxpbmUsXG59KTtcblxuY29uc3QgQ0hBVF9DT01QT1NFUl9JMThOID0ge1xuICBlczoge1xuICAgIHBsYWNlaG9sZGVyOiAnRXNjcmliZSB1biBtZW5zYWplJyxcbiAgICBzZW5kOiAnRW52aWFyJyxcbiAgICBhdHRhY2g6ICdBZGp1bnRhcicsXG4gICAgdm9pY2U6ICdNZW5zYWplIGRlIHZveicsXG4gICAgZGljdGF0ZTogJ0RpY3RhcicsXG4gICAgbGlzdGVuaW5nOiAnRXNjdWNoYW5kb+KApicsXG4gICAgZG9uZTogJ0xpc3RvJyxcbiAgICByZXBseWluZ1RvOiAnUmVzcG9uZGllbmRvIGEnLFxuICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICByZW1vdmU6ICdRdWl0YXInLFxuICB9LFxuICBlbjoge1xuICAgIHBsYWNlaG9sZGVyOiAnV3JpdGUgYSBtZXNzYWdlJyxcbiAgICBzZW5kOiAnU2VuZCcsXG4gICAgYXR0YWNoOiAnQXR0YWNoJyxcbiAgICB2b2ljZTogJ1ZvaWNlIG1lc3NhZ2UnLFxuICAgIGRpY3RhdGU6ICdEaWN0YXRlJyxcbiAgICBsaXN0ZW5pbmc6ICdMaXN0ZW5pbmfigKYnLFxuICAgIGRvbmU6ICdEb25lJyxcbiAgICByZXBseWluZ1RvOiAnUmVwbHlpbmcgdG8nLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgcmVtb3ZlOiAnUmVtb3ZlJyxcbiAgfSxcbn07XG5cbi8qKiBUaXBvcyBtw61uaW1vcyBkZSBsYSBXZWIgU3BlZWNoIEFQSSAobm8gZXN0w6FuIGVuIGxpYi5kb20gZXN0w6FuZGFyKS4gKi9cbmludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkxpa2Uge1xuICBsYW5nOiBzdHJpbmc7XG4gIGNvbnRpbnVvdXM6IGJvb2xlYW47XG4gIGludGVyaW1SZXN1bHRzOiBib29sZWFuO1xuICBzdGFydCgpOiB2b2lkO1xuICBzdG9wKCk6IHZvaWQ7XG4gIGFib3J0KCk6IHZvaWQ7XG4gIG9ucmVzdWx0OlxuICAgIHwgKChldmVudDogeyByZXN1bHRJbmRleDogbnVtYmVyOyByZXN1bHRzOiBBcnJheUxpa2U8eyAwOiB7IHRyYW5zY3JpcHQ6IHN0cmluZyB9OyBpc0ZpbmFsOiBib29sZWFuIH0+IH0pID0+IHZvaWQpXG4gICAgfCBudWxsO1xuICBvbmVuZDogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgb25lcnJvcjogKChldmVudDogeyBlcnJvcjogc3RyaW5nIH0pID0+IHZvaWQpIHwgbnVsbDtcbn1cblxudHlwZSBQZW5kaW5nS2luZCA9ICdpbWFnZScgfCAnYXVkaW8nIHwgJ2ZpbGUnO1xuXG5pbnRlcmZhY2UgUGVuZGluZ0F0dGFjaG1lbnQge1xuICBpZDogbnVtYmVyO1xuICBmaWxlOiBGaWxlO1xuICB1cmw/OiBzdHJpbmc7XG4gIGtpbmQ6IFBlbmRpbmdLaW5kO1xufVxuXG4vKiogRXZlbnRvIGRlIGVudsOtbzogdGV4dG8gKGNhcHRpb24pICsgYWRqdW50b3Mgc3RhZ2VkLiBmaWxlcyB2YWPDrW8gPT4gc29sbyB0ZXh0by4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdENvbXBvc2VyU2VuZEV2ZW50IHtcbiAgdGV4dDogc3RyaW5nO1xuICBmaWxlczogRmlsZVtdO1xufVxuXG4vKipcbiAqIHZhbC1jaGF0LWNvbXBvc2VyIOKAlCBiYXJyYSBkZSByZWRhY2Npw7NuIGVzdGlsbyBOb3Rpb24vQ2xhdWRlIChmdWxsIGN1c3RvbSkuXG4gKlxuICogRWwgZWRpdG9yIGVzIHVuIGBjb250ZW50ZWRpdGFibGVgIChOTyBpb24tdGV4dGFyZWEpOiBjcmVjZSBoYXN0YSB1biBtYXgtaGVpZ2h0LFxuICogc29wb3J0YSBwZWdhciB0ZXh0byBwbGFubyBlIGltw6FnZW5lcyBkZWwgcG9ydGFwYXBlbGVzLCBFbnRlciBlbnbDrWEgLyBTaGlmdCtFbnRlclxuICogc2FsdGEgbMOtbmVhLiBEZWJham8sIHVuYSBmaWxhIGRlIGFjY2lvbmVzIHByb3BpYXM6IGFkanVudGFyICgrKSwgbWljL2Vudmlhci5cbiAqIExvcyBhZGp1bnRvcyAoYm90w7NuIC8gcGVnYXIgLyBhdWRpbyBncmFiYWRvKSBzZSBhY3VtdWxhbiBjb21vIG1pbmlhdHVyYXMgZGVcbiAqIFBSRVZJRVcgeSBzZSBtYW5kYW4gZW4gVU4gc29sbyBldmVudG8gYHNlbmQge3RleHQsIGZpbGVzfWAgKGNhcHRpb24gKyBhZGp1bnRvcykuXG4gKlxuICogUGVuc2FkbyBwYXJhIHZpdmlyIGVuIHVuIGNvbnRlbmVkb3IgZmlqbyBhbCBmb25kbyBkZWwgdmlld3BvcnQgKGVsIGNvbnN1bWVyXG4gKiBhbmNsYSBsYSBwb3NpY2nDs24pLiBObyBpbmNsdXllIGVtb2ppIHBpY2tlciAoZWwgdGVjbGFkbyBkZWwgc2lzdGVtYSBsbyB0cmFlKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoYXQtY29tcG9zZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29tcG9zZXJcIj5cbiAgICAgIEBpZiAocmVwbHlpbmdUbygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXBseS1iYXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVwbHktY29udGVudFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBseS1uYW1lXCI+e3sgcmVwbHlpbmdUbygpIS5zZW5kZXJOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBseS1ib2R5XCI+e3sgcmVwbHlpbmdUbygpIS5ib2R5IH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ0blwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2FuY2VsJylcIiAoY2xpY2spPVwiY2FuY2VsUmVwbHkuZW1pdCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZWNvcmRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicmVjLWJhclwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ0biBkYW5nZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NhbmNlbCcpXCIgKGNsaWNrKT1cImNhbmNlbFJlY29yZGluZygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRyYXNoLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVjLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlYy10aW1lXCI+e3sgcmVjVGltZUxhYmVsKCkgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWMtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0blwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnZG9uZScpXCIgKGNsaWNrKT1cImZpbmlzaFJlY29yZGluZygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsXCI+XG4gICAgICAgICAgQGlmIChwZW5kaW5nKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlbmRpbmctcm93XCI+XG4gICAgICAgICAgICAgIEBmb3IgKGF0dCBvZiBwZW5kaW5nKCk7IHRyYWNrIGF0dC5pZCkge1xuICAgICAgICAgICAgICAgIEBpZiAoYXR0LmtpbmQgPT09ICdhdWRpbycpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpby1jaGlwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhdWRpb1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzXG4gICAgICAgICAgICAgICAgICAgICAgcHJlbG9hZD1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImF0dC51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvbkF1ZGlvRXJyb3IoJ3ByZXZpZXcnLCBhdHQuZmlsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGxvYWRlZG1ldGFkYXRhKT1cIm9uQXVkaW9Mb2FkZWQoJ3ByZXZpZXcnLCBhdHQuZmlsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2F1ZGlvPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidGh1bWItcmVtb3ZlIGlubGluZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgncmVtb3ZlJylcIiAoY2xpY2spPVwicmVtb3ZlUGVuZGluZyhhdHQuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aHVtYlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5maWxlXT1cImF0dC5raW5kID09PSAnZmlsZSdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0F0dGFjaG1lbnQoYXR0KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJ2aWV3QXR0YWNobWVudChhdHQpXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdHQua2luZCA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJhdHQudXJsXCIgW2FsdF09XCJhdHQuZmlsZS5uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb2N1bWVudC1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRodW1iLW5hbWVcIj57eyBhdHQuZmlsZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRodW1iLXJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdyZW1vdmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgcmVtb3ZlUGVuZGluZyhhdHQuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjZWRpdGFibGVcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWVtcHR5XT1cIiFib2R5KClcIlxuICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICBhcmlhLW11bHRpbGluZT1cInRydWVcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wbGFjZWhvbGRlcl09XCJkaWN0YXRpbmcoKSA/IHQoJ2xpc3RlbmluZycpIDogcGxhY2Vob2xkZXJUZXh0KClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclRleHQoKVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwic3luY0JvZHkoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb25zLXNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAoc2hvd0F0dGFjaCgpKSB7XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImljb24tYnRuXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdhdHRhY2gnKVwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWRkLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGhpZGRlbiAoY2hhbmdlKT1cIm9uRmlsZSgkZXZlbnQpXCIgYWNjZXB0PVwiaW1hZ2UvKixhcHBsaWNhdGlvbi9wZGZcIiAvPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzaG93Vm9pY2VNZXNzYWdlKCkpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnRuXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCd2b2ljZScpXCIgKGNsaWNrKT1cInN0YXJ0UmVjb3JkaW5nKClcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInB1bHNlLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2hvd01pYygpICYmIGRpY3RhdGlvblN1cHBvcnRlZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLWJ0biBkaWN0YXRlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRpY3RhdGluZygpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2RpY3RhdGUnKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURpY3RhdGlvbigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibWljLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2FuU2VuZCgpKSB7XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0blwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnc2VuZCcpXCIgKGNsaWNrKT1cIm9uU2VuZCgpXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy11cC1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmNvbXBvc2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4IGNhbGMoOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1iYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1zdGVwLTEwMCwgcmdiYSgxMjcsIDEyNywgMTI3LCAwLjEpKTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1ib2R5IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAucGVuZGluZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgfVxuICAgICAgLnRodW1iIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNzJweDtcbiAgICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc3RlcC0xMDAsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xKSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC50aHVtYiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICAgIC50aHVtYi5maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgfVxuICAgICAgLnRodW1iLW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDAuNTYyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgIH1cbiAgICAgIC50aHVtYi1yZW1vdmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICByaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgfVxuICAgICAgLyogU2hlbGwgZXN0aWxvIE5vdGlvbjogZWRpdGFibGUgYXJyaWJhLCBmaWxhIGRlIGFjY2lvbmVzIGFiYWpvLiAqL1xuICAgICAgLnNoZWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICB9XG4gICAgICAuZWRpdGFibGUge1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxODBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gICAgICB9XG4gICAgICAuZWRpdGFibGUuaXMtZW1wdHk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgICAgLmFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgIH1cbiAgICAgIC5hY3Rpb25zLXNwYWNlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICAuaWNvbi1idG4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgfVxuICAgICAgLmljb24tYnRuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5pY29uLWJ0bi5kaWN0YXRlLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGFuaW1hdGlvbjogZGljdGF0ZS1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuICAgICAgQGtleWZyYW1lcyBkaWN0YXRlLXB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zZW5kLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5zZW5kLWJ0bjphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpO1xuICAgICAgfVxuICAgICAgLmljb24tYnRuLmRhbmdlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjZWI0NDVhKTtcbiAgICAgIH1cbiAgICAgIC5hdWRpby1jaGlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA0cHggNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc3RlcC0xMDAsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xKSk7XG4gICAgICB9XG4gICAgICAuYXVkaW8tY2hpcCBhdWRpbyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLnRodW1iLXJlbW92ZS5pbmxpbmUge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgfVxuICAgICAgLnJlYy1iYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgfVxuICAgICAgLnJlYy1kb3Qge1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIsICNlYjQ0NWEpO1xuICAgICAgICBhbmltYXRpb246IHJlYy1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuICAgICAgLnJlYy10aW1lIHtcbiAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICB9XG4gICAgICAucmVjLXNwYWNlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICBAa2V5ZnJhbWVzIHJlYy1wdWxzZSB7XG4gICAgICAgIDAlLFxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICAgIDUwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdENvbXBvc2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtb2RhbCA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBtYXhMZW5ndGggPSBpbnB1dDxudW1iZXI+KDQwMDApO1xuICByZWFkb25seSByZXBseWluZ1RvID0gaW5wdXQ8TWVzc2FnZVJlcGx5VG8gfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgc2hvd0F0dGFjaCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICAvKiogQm90w7NuIGRlIGRpY3RhZG8gdm964oaSdGV4dG8gKFNwZWVjaFJlY29nbml0aW9uKS4gTmF0aXZvIGVuIFNhZmFyaS9pT1MgeSBDaHJvbWUuICovXG4gIHJlYWRvbmx5IHNob3dNaWMgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIEJvdMOzbiBkZSBtZW5zYWplIGRlIHZveiAoZ3JhYmFyIGNsaXApLiBPcHQtaW46IGxhIHJlcHJvZHVjY2nDs24gY3Jvc3MtZGV2aWNlXG4gICAqICByZXF1aWVyZSB0cmFuc2NvZGUgc2VydmVyLXNpZGUgKHBlbmRpZW50ZSksIHBvciBlc28gZGVmYXVsdCBmYWxzZS4gKi9cbiAgcmVhZG9ubHkgc2hvd1ZvaWNlTWVzc2FnZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBzZW5kID0gb3V0cHV0PENoYXRDb21wb3NlclNlbmRFdmVudD4oKTtcbiAgcmVhZG9ubHkgdHlwaW5nID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHZvaWNlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGNhbmNlbFJlcGx5ID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlZGl0YWJsZVJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ2VkaXRhYmxlJyk7XG5cbiAgLy8gRGljdGFkbyB2b3rihpJ0ZXh0byAoV2ViIFNwZWVjaCBBUEkpLlxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGljdGF0aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpY3RhdGlvblN1cHBvcnRlZCA9ICEhKFxuICAgICh3aW5kb3cgYXMgdW5rbm93biBhcyB7IFNwZWVjaFJlY29nbml0aW9uPzogdW5rbm93biB9KS5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuICAgICh3aW5kb3cgYXMgdW5rbm93biBhcyB7IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uPzogdW5rbm93biB9KS53ZWJraXRTcGVlY2hSZWNvZ25pdGlvblxuICApO1xuICBwcml2YXRlIHJlY29nbml0aW9uPzogU3BlZWNoUmVjb2duaXRpb25MaWtlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBib2R5ID0gc2lnbmFsKCcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlbmRpbmcgPSBzaWduYWw8UGVuZGluZ0F0dGFjaG1lbnRbXT4oW10pO1xuICBwcml2YXRlIHBlbmRpbmdJZCA9IDA7XG5cbiAgLy8gR3JhYmFjacOzbiBkZSBhdWRpbyAoTWVkaWFSZWNvcmRlcikuXG4gIHByb3RlY3RlZCByZWFkb25seSByZWNvcmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlY1NlY29uZHMgPSBzaWduYWwoMCk7XG4gIHByaXZhdGUgcmVjb3JkZXI/OiBNZWRpYVJlY29yZGVyO1xuICBwcml2YXRlIHJlY1N0cmVhbT86IE1lZGlhU3RyZWFtO1xuICBwcml2YXRlIHJlY0NodW5rczogQmxvYltdID0gW107XG4gIHByaXZhdGUgcmVjVGltZXI/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlY1RpbWVMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzID0gdGhpcy5yZWNTZWNvbmRzKCk7XG4gICAgY29uc3QgbW0gPSBTdHJpbmcoTWF0aC5mbG9vcihzIC8gNjApKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIGNvbnN0IHNzID0gU3RyaW5nKHMgJSA2MCkucGFkU3RhcnQoMiwgJzAnKTtcbiAgICByZXR1cm4gYCR7bW19OiR7c3N9YDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBsYXN0VHlwaW5nRW1pdCA9IDA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ0NoYXRDb21wb3NlcicsIENIQVRfQ09NUE9TRVJfSTE4Tik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuU2VuZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgdCA9IHRoaXMuYm9keSgpLnRyaW0oKTtcbiAgICByZXR1cm4gKHQubGVuZ3RoID4gMCAmJiB0Lmxlbmd0aCA8PSB0aGlzLm1heExlbmd0aCgpKSB8fCB0aGlzLnBlbmRpbmcoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxhY2Vob2xkZXJUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIoKSB8fCB0aGlzLmkxOG4udCgncGxhY2Vob2xkZXInLCAnQ2hhdENvbXBvc2VyJyk7XG4gIH0pO1xuXG4gIC8qKiBMZWUgZWwgdGV4dG8gZGVsIGNvbnRlbnRlZGl0YWJsZSBhIGxhIHNpZ25hbCBgYm9keWAuICovXG4gIHByb3RlY3RlZCBzeW5jQm9keSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWRpdGFibGVSZWYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAvLyBpbm5lclRleHQgY29uc2VydmEgbG9zIHNhbHRvcyBkZSBsw61uZWE7IHF1aXRhIGVsIFxcbiBmaW5hbCBxdWUgZWwgbmF2ZWdhZG9yIGFncmVnYS5cbiAgICBjb25zdCB0ZXh0ID0gKGVsPy5pbm5lclRleHQgPz8gJycpLnJlcGxhY2UoL1xcbiQvLCAnJyk7XG4gICAgdGhpcy5ib2R5LnNldCh0ZXh0KTtcbiAgICB0aGlzLmVtaXRUeXBpbmdEZWJvdW5jZWQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICFldmVudC5zaGlmdEtleSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMub25TZW5kKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFBlZ2FyOiB0ZXh0byBwbGFubyAoc2luIGZvcm1hdG8pICsgaW3DoWdlbmVzIGRlbCBwb3J0YXBhcGVsZXMuICovXG4gIHByb3RlY3RlZCBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZGF0YSA9IGV2ZW50LmNsaXBib2FyZERhdGE7XG4gICAgaWYgKCFkYXRhKSByZXR1cm47XG5cbiAgICAvLyBJbcOhZ2VuZXMgKGNhcHR1cmFzIC8gY29waWFyIGltYWdlbikuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIEFycmF5LmZyb20oZGF0YS5pdGVtcykpIHtcbiAgICAgIGlmIChpdGVtLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGl0ZW0uZ2V0QXNGaWxlKCk7XG4gICAgICAgIGlmIChmaWxlKSB0aGlzLmFkZFBlbmRpbmcoZmlsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGV4dG8gcGxhbm8gaW5zZXJ0YWRvIGVuIGVsIGNhcmV0IChldml0YSBwZWdhciBIVE1MIGNvbiBlc3RpbG9zKS5cbiAgICBjb25zdCB0ZXh0ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgaWYgKHRleHQpIHtcbiAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsIHRleHQpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNCb2R5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TZW5kKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jYW5TZW5kKCkpIHJldHVybjtcbiAgICBjb25zdCBmaWxlcyA9IHRoaXMucGVuZGluZygpLm1hcChwID0+IHAuZmlsZSk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuYm9keSgpLnRyaW0oKTtcbiAgICB0aGlzLnNlbmQuZW1pdCh7IHRleHQsIGZpbGVzIH0pO1xuXG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5wZW5kaW5nKCkpIHtcbiAgICAgIGlmIChhdHQudXJsKSBVUkwucmV2b2tlT2JqZWN0VVJMKGF0dC51cmwpO1xuICAgIH1cbiAgICB0aGlzLnBlbmRpbmcuc2V0KFtdKTtcbiAgICB0aGlzLmNsZWFyRWRpdGFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJFZGl0YWJsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWRpdGFibGVSZWYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoZWwpIGVsLmlubmVyVGV4dCA9ICcnO1xuICAgIHRoaXMuYm9keS5zZXQoJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRmlsZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlcz8uWzBdO1xuICAgIGlmIChmaWxlKSB0aGlzLmFkZFBlbmRpbmcoZmlsZSk7XG4gICAgaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIHByaXZhdGUgYWRkUGVuZGluZyhmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgY29uc3Qga2luZDogUGVuZGluZ0tpbmQgPSBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJylcbiAgICAgID8gJ2ltYWdlJ1xuICAgICAgOiBmaWxlLnR5cGUuc3RhcnRzV2l0aCgnYXVkaW8vJylcbiAgICAgICAgPyAnYXVkaW8nXG4gICAgICAgIDogJ2ZpbGUnO1xuICAgIGNvbnN0IHVybCA9IGtpbmQgPT09ICdmaWxlJyA/IHVuZGVmaW5lZCA6IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XG4gICAgdGhpcy5wZW5kaW5nLnVwZGF0ZShhcnIgPT4gWy4uLmFyciwgeyBpZDogdGhpcy5wZW5kaW5nSWQrKywgZmlsZSwgdXJsLCBraW5kIH1dKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW1vdmVQZW5kaW5nKGlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBlbmRpbmcudXBkYXRlKGFyciA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IGFyci5maW5kKGEgPT4gYS5pZCA9PT0gaWQpO1xuICAgICAgaWYgKGZvdW5kPy51cmwpIFVSTC5yZXZva2VPYmplY3RVUkwoZm91bmQudXJsKTtcbiAgICAgIHJldHVybiBhcnIuZmlsdGVyKGEgPT4gYS5pZCAhPT0gaWQpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEFicmUgZWwgYWRqdW50byBzdGFnZWQgZW4gZWwgdmlzb3IgZGUgbWVkaW9zIChpbWFnZW4gZnVsbCAvIGRlc2NhcmdhKS4gKi9cbiAgcHJvdGVjdGVkIHZpZXdBdHRhY2htZW50KGF0dDogUGVuZGluZ0F0dGFjaG1lbnQpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWwub3Blbih7XG4gICAgICBjb21wb25lbnQ6IE1lZGlhVmlld2VyTW9kYWxDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczogeyB1cmw6IGF0dC51cmwsIG5hbWU6IGF0dC5maWxlLm5hbWUsIG1pbWVUeXBlOiBhdHQuZmlsZS50eXBlIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRUeXBpbmdEZWJvdW5jZWQoKTogdm9pZCB7XG4gICAgY29uc3Qgbm93ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgaWYgKG5vdyAtIHRoaXMubGFzdFR5cGluZ0VtaXQgPiAyMDAwKSB7XG4gICAgICB0aGlzLmxhc3RUeXBpbmdFbWl0ID0gbm93O1xuICAgICAgdGhpcy50eXBpbmcuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIOKUgOKUgOKUgCBHcmFiYWNpw7NuIGRlIGF1ZGlvIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIHByaXZhdGUgcGlja0F1ZGlvTWltZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBbJ2F1ZGlvL3dlYm07Y29kZWNzPW9wdXMnLCAnYXVkaW8vd2VibScsICdhdWRpby9tcDQnXTtcbiAgICBjb25zdCBNUiA9ICh3aW5kb3cgYXMgdW5rbm93biBhcyB7IE1lZGlhUmVjb3JkZXI/OiB0eXBlb2YgTWVkaWFSZWNvcmRlciB9KS5NZWRpYVJlY29yZGVyO1xuICAgIGlmICghTVI/LmlzVHlwZVN1cHBvcnRlZCkgcmV0dXJuICcnO1xuICAgIHJldHVybiBjYW5kaWRhdGVzLmZpbmQoYyA9PiBNUi5pc1R5cGVTdXBwb3J0ZWQoYykpID8/ICcnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHN0YXJ0UmVjb3JkaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnJlY29yZGluZygpKSByZXR1cm47XG4gICAgaWYgKCFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzPy5nZXRVc2VyTWVkaWEgfHwgISgnTWVkaWFSZWNvcmRlcicgaW4gd2luZG93KSkge1xuICAgICAgdGhpcy52b2ljZS5lbWl0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7IGF1ZGlvOiB0cnVlIH0pO1xuICAgICAgdGhpcy5yZWNTdHJlYW0gPSBzdHJlYW07XG4gICAgICBjb25zdCBtaW1lVHlwZSA9IHRoaXMucGlja0F1ZGlvTWltZSgpO1xuICAgICAgdGhpcy5yZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHN0cmVhbSwgbWltZVR5cGUgPyB7IG1pbWVUeXBlIH0gOiB1bmRlZmluZWQpO1xuICAgICAgY29uc29sZS5sb2coJ1tDaGF0Q29tcG9zZXJdIHJlY29yZGluZyBzdGFydCcsIHtcbiAgICAgICAgcGlja2VkOiBtaW1lVHlwZSB8fCAnKGRlZmF1bHQpJyxcbiAgICAgICAgcmVjb3JkZXJNaW1lVHlwZTogdGhpcy5yZWNvcmRlci5taW1lVHlwZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZWNDaHVua3MgPSBbXTtcbiAgICAgIHRoaXMucmVjb3JkZXIub25kYXRhYXZhaWxhYmxlID0gZSA9PiB7XG4gICAgICAgIGlmIChlLmRhdGEuc2l6ZSA+IDApIHRoaXMucmVjQ2h1bmtzLnB1c2goZS5kYXRhKTtcbiAgICAgIH07XG4gICAgICB0aGlzLnJlY29yZGVyLnN0YXJ0KCk7XG4gICAgICB0aGlzLnJlY29yZGluZy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnJlY1NlY29uZHMuc2V0KDApO1xuICAgICAgdGhpcy5yZWNUaW1lciA9IHNldEludGVydmFsKCgpID0+IHRoaXMucmVjU2Vjb25kcy51cGRhdGUocyA9PiBzICsgMSksIDEwMDApO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5jbGVhbnVwUmVjb3JkaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFBhcmEgbGEgZ3JhYmFjacOzbiB5IGxhIHN0YWdlYSBjb21vIGFkanVudG8gcGVuZGllbnRlIChjb24gcHJldmlldyBkZSBhdWRpbykuICovXG4gIHByb3RlY3RlZCBmaW5pc2hSZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgY29uc3QgcmVjID0gdGhpcy5yZWNvcmRlcjtcbiAgICBpZiAoIXJlYykge1xuICAgICAgdGhpcy5jbGVhbnVwUmVjb3JkaW5nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJlYy5vbnN0b3AgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eXBlID0gcmVjLm1pbWVUeXBlIHx8ICdhdWRpby93ZWJtJztcbiAgICAgIGNvbnN0IGR1cmF0aW9uTXMgPSB0aGlzLnJlY1NlY29uZHMoKSAqIDEwMDA7XG4gICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKHRoaXMucmVjQ2h1bmtzLCB7IHR5cGUgfSk7XG5cbiAgICAgIC8vIE1lZGlhUmVjb3JkZXIgZXNjcmliZSBXZWJNIFNJTiBlbCBoZWFkZXIgZGUgZHVyYWNpw7NuIChTZWdtZW50L0R1cmF0aW9uKSDihpJcbiAgICAgIC8vIGVsIDxhdWRpbz4gbG8gcmVjaGF6YSBjb24gU1JDX05PVF9TVVBQT1JURUQgYXVucXVlIGVsIGNvZGVjIGVzdMOpIHNvcG9ydGFkby5cbiAgICAgIC8vIGZpeC13ZWJtLWR1cmF0aW9uIHBhcmNoZWEgZWwgaGVhZGVyIGNvbiBsYSBkdXJhY2nDs24gcmVhbCDihpIgcmVwcm9kdWNpYmxlLlxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ3dlYm0nKSAmJiBibG9iLnNpemUgPiAwKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYmxvYiA9IGF3YWl0IGZpeFdlYm1EdXJhdGlvbihibG9iLCBkdXJhdGlvbk1zLCB7IGxvZ2dlcjogZmFsc2UgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW0NoYXRDb21wb3Nlcl0gZml4V2VibUR1cmF0aW9uIGZhbGzDsywgc2UgdXNhIGVsIGJsb2IgY3J1ZG8nLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4dCA9IHR5cGUuaW5jbHVkZXMoJ21wNCcpID8gJ200YScgOiAnd2VibSc7XG4gICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCBgYXVkaW8tJHt0aGlzLnJlY1NlY29uZHMoKX1zLiR7ZXh0fWAsIHsgdHlwZSB9KTtcbiAgICAgIGNvbnNvbGUubG9nKCdbQ2hhdENvbXBvc2VyXSBhdWRpbyByZWNvcmRlZCcsIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgc2l6ZTogYmxvYi5zaXplLFxuICAgICAgICBjaHVua3M6IHRoaXMucmVjQ2h1bmtzLmxlbmd0aCxcbiAgICAgICAgY2FuUGxheVdlYm06IHRoaXMuY2FuUGxheSgnYXVkaW8vd2VibScpLFxuICAgICAgICBjYW5QbGF5TXA0OiB0aGlzLmNhblBsYXkoJ2F1ZGlvL21wNCcpLFxuICAgICAgfSk7XG4gICAgICBpZiAoYmxvYi5zaXplID4gMCkgdGhpcy5hZGRQZW5kaW5nKGZpbGUpO1xuICAgICAgdGhpcy5jbGVhbnVwUmVjb3JkaW5nKCk7XG4gICAgfTtcbiAgICByZWMuc3RvcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhbmNlbFJlY29yZGluZygpOiB2b2lkIHtcbiAgICBjb25zdCByZWMgPSB0aGlzLnJlY29yZGVyO1xuICAgIGlmIChyZWMpIHJlYy5vbnN0b3AgPSAoKSA9PiB0aGlzLmNsZWFudXBSZWNvcmRpbmcoKTtcbiAgICB0cnkge1xuICAgICAgcmVjPy5zdG9wKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmNsZWFudXBSZWNvcmRpbmcoKTtcbiAgICB9XG4gICAgaWYgKCFyZWMpIHRoaXMuY2xlYW51cFJlY29yZGluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwUmVjb3JkaW5nKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlY1RpbWVyKSBjbGVhckludGVydmFsKHRoaXMucmVjVGltZXIpO1xuICAgIHRoaXMucmVjVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZWNTdHJlYW0/LmdldFRyYWNrcygpLmZvckVhY2godCA9PiB0LnN0b3AoKSk7XG4gICAgdGhpcy5yZWNTdHJlYW0gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5yZWNvcmRlciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlY0NodW5rcyA9IFtdO1xuICAgIHRoaXMucmVjb3JkaW5nLnNldChmYWxzZSk7XG4gICAgdGhpcy5yZWNTZWNvbmRzLnNldCgwKTtcbiAgfVxuXG4gIC8qKiBEaWFnbsOzc3RpY286IGVsIG5hdmVnYWRvciBubyBwdWRvIHJlcHJvZHVjaXIgZWwgYWRqdW50byBkZSBhdWRpby4gKi9cbiAgcHJvdGVjdGVkIG9uQXVkaW9FcnJvcih3aGVyZTogc3RyaW5nLCBmaWxlOiBGaWxlLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MQXVkaW9FbGVtZW50O1xuICAgIGNvbnN0IGVyciA9IGVsLmVycm9yO1xuICAgIGNvbnN0IGNvZGVzOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge1xuICAgICAgMTogJ0FCT1JURUQnLFxuICAgICAgMjogJ05FVFdPUksnLFxuICAgICAgMzogJ0RFQ09ERScsXG4gICAgICA0OiAnU1JDX05PVF9TVVBQT1JURUQnLFxuICAgIH07XG4gICAgY29uc29sZS5lcnJvcignW0NoYXRDb21wb3Nlcl0gYXVkaW8gcGxheSBlcnJvcicsIHtcbiAgICAgIHdoZXJlLFxuICAgICAgZmlsZVR5cGU6IGZpbGUudHlwZSxcbiAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXG4gICAgICBjb2RlOiBlcnI/LmNvZGUsXG4gICAgICByZWFzb246IGVyciA/IGNvZGVzW2Vyci5jb2RlXSA6ICd1bmtub3duJyxcbiAgICAgIG1lc3NhZ2U6IGVycj8ubWVzc2FnZSxcbiAgICAgIGNhblBsYXlUaGlzVHlwZTogdGhpcy5jYW5QbGF5KGZpbGUudHlwZSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BdWRpb0xvYWRlZCh3aGVyZTogc3RyaW5nLCBmaWxlOiBGaWxlLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MQXVkaW9FbGVtZW50O1xuICAgIGNvbnNvbGUubG9nKCdbQ2hhdENvbXBvc2VyXSBhdWRpbyBsb2FkZWRtZXRhZGF0YScsIHtcbiAgICAgIHdoZXJlLFxuICAgICAgZmlsZVR5cGU6IGZpbGUudHlwZSxcbiAgICAgIGR1cmF0aW9uOiBlbC5kdXJhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDCv0VsIG5hdmVnYWRvciBkZWNsYXJhIHF1ZSBwdWVkZSByZXByb2R1Y2lyIGVzdGUgdGlwbz8gJycgLyAnbWF5YmUnIC8gJ3Byb2JhYmx5Jy4gKi9cbiAgcHJpdmF0ZSBjYW5QbGF5KHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycpLmNhblBsYXlUeXBlKHR5cGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgfVxuICB9XG5cbiAgLy8g4pSA4pSA4pSAIERpY3RhZG8gdm964oaSdGV4dG8gKFdlYiBTcGVlY2ggQVBJKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBwcm90ZWN0ZWQgdG9nZ2xlRGljdGF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpY3RhdGluZygpKSB7XG4gICAgICB0aGlzLnN0b3BEaWN0YXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdGFydERpY3RhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnREaWN0YXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgQ3RvciA9XG4gICAgICAod2luZG93IGFzIHVua25vd24gYXMgeyBTcGVlY2hSZWNvZ25pdGlvbj86IG5ldyAoKSA9PiBTcGVlY2hSZWNvZ25pdGlvbkxpa2UgfSkuU3BlZWNoUmVjb2duaXRpb24gfHxcbiAgICAgICh3aW5kb3cgYXMgdW5rbm93biBhcyB7IHdlYmtpdFNwZWVjaFJlY29nbml0aW9uPzogbmV3ICgpID0+IFNwZWVjaFJlY29nbml0aW9uTGlrZSB9KS53ZWJraXRTcGVlY2hSZWNvZ25pdGlvbjtcbiAgICBpZiAoIUN0b3IpIHJldHVybjtcblxuICAgIGNvbnN0IHJlYyA9IG5ldyBDdG9yKCk7XG4gICAgcmVjLmxhbmcgPSB0aGlzLmkxOG4ubGFuZygpID09PSAnZW4nID8gJ2VuLVVTJyA6ICdlcy1DTCc7XG4gICAgLy8gY29udGludW91cz1mYWxzZTogdW5hIGZyYXNlIHkgY29ydGEgc29sYSBhbCBwYXVzYXIuIGNvbnRpbnVvdXM9dHJ1ZSBkZWphYmFcbiAgICAvLyBlbCByZWNvbm9jaW1pZW50byBhYmllcnRvIGluZGVmaW5pZGFtZW50ZSB5IGVuIGFsZ3Vub3MgbmF2ZWdhZG9yZXMgY29sZ2FiYS5cbiAgICByZWMuY29udGludW91cyA9IGZhbHNlO1xuICAgIHJlYy5pbnRlcmltUmVzdWx0cyA9IGZhbHNlOyAvLyBzb2xvIHJlc3VsdGFkb3MgZmluYWxlcyDihpIgaW5zZXJ0YW1vcyB0ZXh0byBsaW1waW9cblxuICAgIHJlYy5vbnJlc3VsdCA9IGV2ZW50ID0+IHtcbiAgICAgIGxldCBmaW5hbFRleHQgPSAnJztcbiAgICAgIGZvciAobGV0IGkgPSBldmVudC5yZXN1bHRJbmRleDsgaSA8IGV2ZW50LnJlc3VsdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgciA9IGV2ZW50LnJlc3VsdHNbaV07XG4gICAgICAgIGlmIChyLmlzRmluYWwpIGZpbmFsVGV4dCArPSByWzBdLnRyYW5zY3JpcHQ7XG4gICAgICB9XG4gICAgICBpZiAoZmluYWxUZXh0KSB0aGlzLmluc2VydERpY3RhdGVkKGZpbmFsVGV4dCk7XG4gICAgfTtcbiAgICByZWMub25lcnJvciA9ICgpID0+IHRoaXMuc3RvcERpY3RhdGlvbigpO1xuICAgIHJlYy5vbmVuZCA9ICgpID0+IHtcbiAgICAgIC8vIEVsIHJlY29ub2NpbWllbnRvIHB1ZWRlIGNvcnRhcnNlIHNvbG87IHJlZmxlamFtb3MgZWwgZXN0YWRvLlxuICAgICAgdGhpcy5kaWN0YXRpbmcuc2V0KGZhbHNlKTtcbiAgICB9O1xuXG4gICAgdGhpcy5yZWNvZ25pdGlvbiA9IHJlYztcbiAgICB0aGlzLmVkaXRhYmxlUmVmKCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0cnkge1xuICAgICAgcmVjLnN0YXJ0KCk7XG4gICAgICB0aGlzLmRpY3RhdGluZy5zZXQodHJ1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmRpY3RhdGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RvcERpY3RhdGlvbigpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbj8uc3RvcCgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLyogbm9vcCAqL1xuICAgIH1cbiAgICB0aGlzLmRpY3RhdGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqIEluc2VydGEgZWwgdGV4dG8gZGljdGFkbyBhbCBmaW5hbCBkZWwgZWRpdGFibGUgeSBzaW5jcm9uaXphIGVsIGJvZHkuICovXG4gIHByaXZhdGUgaW5zZXJ0RGljdGF0ZWQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVkaXRhYmxlUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnQgPSBlbC5pbm5lclRleHQucmVwbGFjZSgvXFxuJC8sICcnKTtcbiAgICBjb25zdCBzZXAgPSBjdXJyZW50ICYmICFjdXJyZW50LmVuZHNXaXRoKCcgJykgPyAnICcgOiAnJztcbiAgICBlbC5pbm5lclRleHQgPSBjdXJyZW50ICsgc2VwICsgdGV4dDtcbiAgICAvLyBDb2xvY2EgZWwgY2FyZXQgYWwgZmluYWwuXG4gICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlbCk7XG4gICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xuICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICBzZWw/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbD8uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIHRoaXMuYm9keS5zZXQoZWwuaW5uZXJUZXh0LnJlcGxhY2UoL1xcbiQvLCAnJykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwUmVjb3JkaW5nKCk7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucmVjb2duaXRpb24/LmFib3J0KCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBub29wICovXG4gICAgfVxuICAgIGZvciAoY29uc3QgYXR0IG9mIHRoaXMucGVuZGluZygpKSB7XG4gICAgICBpZiAoYXR0LnVybCkgVVJMLnJldm9rZU9iamVjdFVSTChhdHQudXJsKTtcbiAgICB9XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ2hhdENvbXBvc2VyJyk7XG4gIH1cbn1cbiJdfQ==
|
|
664
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jb21wb3Nlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoYXQtY29tcG9zZXIvY2hhdC1jb21wb3Nlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixjQUFjLEVBQ2QsWUFBWSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxlQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQzs7QUFFNUcsUUFBUSxDQUFDO0lBQ1AsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osZUFBZTtJQUNmLFVBQVU7SUFDVixZQUFZO0lBQ1osY0FBYztJQUNkLFlBQVk7Q0FDYixDQUFDLENBQUM7QUFFSCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLEVBQUUsRUFBRTtRQUNGLFdBQVcsRUFBRSxvQkFBb0I7UUFDakMsSUFBSSxFQUFFLFFBQVE7UUFD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QUksQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLFVBQVU7UUFDWixDQUFDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEdBQUcsQ0FBQyxHQUFHO2dCQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQsQ0FBQyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMxQyxDQUFDOytHQW5ZVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwrdENBcFd0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUhULGkySEF0SFMsWUFBWSwrQkFBRSxPQUFPOzs0RkFxV3BCLHFCQUFxQjtrQkF4V2pDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFIVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgYWRkT3V0bGluZSxcbiAgY2hlY2ttYXJrT3V0bGluZSxcbiAgY2xvc2VPdXRsaW5lLFxuICBkb2N1bWVudE91dGxpbmUsXG4gIG1pY091dGxpbmUsXG4gIHB1bHNlT3V0bGluZSxcbiAgYXJyb3dVcE91dGxpbmUsXG4gIHRyYXNoT3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgZml4V2VibUR1cmF0aW9uIGZyb20gJ2ZpeC13ZWJtLWR1cmF0aW9uJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE1lc3NhZ2VSZXBseVRvIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC90eXBlcyc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lZGlhVmlld2VyTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvbWVkaWEtdmlld2VyLW1vZGFsL21lZGlhLXZpZXdlci1tb2RhbC5jb21wb25lbnQnO1xuXG5hZGRJY29ucyh7XG4gIGFkZE91dGxpbmUsXG4gIGNoZWNrbWFya091dGxpbmUsXG4gIGNsb3NlT3V0bGluZSxcbiAgZG9jdW1lbnRPdXRsaW5lLFxuICBtaWNPdXRsaW5lLFxuICBwdWxzZU91dGxpbmUsXG4gIGFycm93VXBPdXRsaW5lLFxuICB0cmFzaE91dGxpbmUsXG59KTtcblxuY29uc3QgQ0hBVF9DT01QT1NFUl9JMThOID0ge1xuICBlczoge1xuICAgIHBsYWNlaG9sZGVyOiAnRXNjcmliZSB1biBtZW5zYWplJyxcbiAgICBzZW5kOiAnRW52aWFyJyxcbiAgICBhdHRhY2g6ICdBZGp1bnRhcicsXG4gICAgdm9pY2U6ICdNZW5zYWplIGRlIHZveicsXG4gICAgZGljdGF0ZTogJ0RpY3RhcicsXG4gICAgbGlzdGVuaW5nOiAnRXNjdWNoYW5kb+KApicsXG4gICAgZG9uZTogJ0xpc3RvJyxcbiAgICByZXBseWluZ1RvOiAnUmVzcG9uZGllbmRvIGEnLFxuICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICByZW1vdmU6ICdRdWl0YXInLFxuICB9LFxuICBlbjoge1xuICAgIHBsYWNlaG9sZGVyOiAnV3JpdGUgYSBtZXNzYWdlJyxcbiAgICBzZW5kOiAnU2VuZCcsXG4gICAgYXR0YWNoOiAnQXR0YWNoJyxcbiAgICB2b2ljZTogJ1ZvaWNlIG1lc3NhZ2UnLFxuICAgIGRpY3RhdGU6ICdEaWN0YXRlJyxcbiAgICBsaXN0ZW5pbmc6ICdMaXN0ZW5pbmfigKYnLFxuICAgIGRvbmU6ICdEb25lJyxcbiAgICByZXBseWluZ1RvOiAnUmVwbHlpbmcgdG8nLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgcmVtb3ZlOiAnUmVtb3ZlJyxcbiAgfSxcbn07XG5cbi8qKiBUaXBvcyBtw61uaW1vcyBkZSBsYSBXZWIgU3BlZWNoIEFQSSAobm8gZXN0w6FuIGVuIGxpYi5kb20gZXN0w6FuZGFyKS4gKi9cbmludGVyZmFjZSBTcGVlY2hSZWNvZ25pdGlvbkxpa2Uge1xuICBsYW5nOiBzdHJpbmc7XG4gIGNvbnRpbnVvdXM6IGJvb2xlYW47XG4gIGludGVyaW1SZXN1bHRzOiBib29sZWFuO1xuICBzdGFydCgpOiB2b2lkO1xuICBzdG9wKCk6IHZvaWQ7XG4gIGFib3J0KCk6IHZvaWQ7XG4gIG9ucmVzdWx0OlxuICAgIHwgKChldmVudDogeyByZXN1bHRJbmRleDogbnVtYmVyOyByZXN1bHRzOiBBcnJheUxpa2U8eyAwOiB7IHRyYW5zY3JpcHQ6IHN0cmluZyB9OyBpc0ZpbmFsOiBib29sZWFuIH0+IH0pID0+IHZvaWQpXG4gICAgfCBudWxsO1xuICBvbmVuZDogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgb25lcnJvcjogKChldmVudDogeyBlcnJvcjogc3RyaW5nIH0pID0+IHZvaWQpIHwgbnVsbDtcbn1cblxudHlwZSBQZW5kaW5nS2luZCA9ICdpbWFnZScgfCAnYXVkaW8nIHwgJ2ZpbGUnO1xuXG5pbnRlcmZhY2UgUGVuZGluZ0F0dGFjaG1lbnQge1xuICBpZDogbnVtYmVyO1xuICBmaWxlOiBGaWxlO1xuICB1cmw/OiBzdHJpbmc7XG4gIGtpbmQ6IFBlbmRpbmdLaW5kO1xufVxuXG4vKiogRXZlbnRvIGRlIGVudsOtbzogdGV4dG8gKGNhcHRpb24pICsgYWRqdW50b3Mgc3RhZ2VkLiBmaWxlcyB2YWPDrW8gPT4gc29sbyB0ZXh0by4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdENvbXBvc2VyU2VuZEV2ZW50IHtcbiAgdGV4dDogc3RyaW5nO1xuICBmaWxlczogRmlsZVtdO1xufVxuXG4vKipcbiAqIHZhbC1jaGF0LWNvbXBvc2VyIOKAlCBiYXJyYSBkZSByZWRhY2Npw7NuIGVzdGlsbyBOb3Rpb24vQ2xhdWRlIChmdWxsIGN1c3RvbSkuXG4gKlxuICogRWwgZWRpdG9yIGVzIHVuIGBjb250ZW50ZWRpdGFibGVgIChOTyBpb24tdGV4dGFyZWEpOiBjcmVjZSBoYXN0YSB1biBtYXgtaGVpZ2h0LFxuICogc29wb3J0YSBwZWdhciB0ZXh0byBwbGFubyBlIGltw6FnZW5lcyBkZWwgcG9ydGFwYXBlbGVzLCBFbnRlciBlbnbDrWEgLyBTaGlmdCtFbnRlclxuICogc2FsdGEgbMOtbmVhLiBEZWJham8sIHVuYSBmaWxhIGRlIGFjY2lvbmVzIHByb3BpYXM6IGFkanVudGFyICgrKSwgbWljL2Vudmlhci5cbiAqIExvcyBhZGp1bnRvcyAoYm90w7NuIC8gcGVnYXIgLyBhdWRpbyBncmFiYWRvKSBzZSBhY3VtdWxhbiBjb21vIG1pbmlhdHVyYXMgZGVcbiAqIFBSRVZJRVcgeSBzZSBtYW5kYW4gZW4gVU4gc29sbyBldmVudG8gYHNlbmQge3RleHQsIGZpbGVzfWAgKGNhcHRpb24gKyBhZGp1bnRvcykuXG4gKlxuICogUGVuc2FkbyBwYXJhIHZpdmlyIGVuIHVuIGNvbnRlbmVkb3IgZmlqbyBhbCBmb25kbyBkZWwgdmlld3BvcnQgKGVsIGNvbnN1bWVyXG4gKiBhbmNsYSBsYSBwb3NpY2nDs24pLiBObyBpbmNsdXllIGVtb2ppIHBpY2tlciAoZWwgdGVjbGFkbyBkZWwgc2lzdGVtYSBsbyB0cmFlKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoYXQtY29tcG9zZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29tcG9zZXJcIj5cbiAgICAgIEBpZiAocmVwbHlpbmdUbygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZXBseS1iYXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVwbHktY29udGVudFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBseS1uYW1lXCI+e3sgcmVwbHlpbmdUbygpIS5zZW5kZXJOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXBseS1ib2R5XCI+e3sgcmVwbHlpbmdUbygpIS5ib2R5IH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ0blwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2FuY2VsJylcIiAoY2xpY2spPVwiY2FuY2VsUmVwbHkuZW1pdCgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZWNvcmRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicmVjLWJhclwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ0biBkYW5nZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NhbmNlbCcpXCIgKGNsaWNrKT1cImNhbmNlbFJlY29yZGluZygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRyYXNoLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVjLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlYy10aW1lXCI+e3sgcmVjVGltZUxhYmVsKCkgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWMtc3BhY2VyXCI+PC9zcGFuPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0blwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnZG9uZScpXCIgKGNsaWNrKT1cImZpbmlzaFJlY29yZGluZygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNoZWxsXCI+XG4gICAgICAgICAgQGlmIChwZW5kaW5nKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlbmRpbmctcm93XCI+XG4gICAgICAgICAgICAgIEBmb3IgKGF0dCBvZiBwZW5kaW5nKCk7IHRyYWNrIGF0dC5pZCkge1xuICAgICAgICAgICAgICAgIEBpZiAoYXR0LmtpbmQgPT09ICdhdWRpbycpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpby1jaGlwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhdWRpb1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzXG4gICAgICAgICAgICAgICAgICAgICAgcHJlbG9hZD1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImF0dC51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvbkF1ZGlvRXJyb3IoJ3ByZXZpZXcnLCBhdHQuZmlsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGxvYWRlZG1ldGFkYXRhKT1cIm9uQXVkaW9Mb2FkZWQoJ3ByZXZpZXcnLCBhdHQuZmlsZSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L2F1ZGlvPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidGh1bWItcmVtb3ZlIGlubGluZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgncmVtb3ZlJylcIiAoY2xpY2spPVwicmVtb3ZlUGVuZGluZyhhdHQuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aHVtYlwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5maWxlXT1cImF0dC5raW5kID09PSAnZmlsZSdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidmlld0F0dGFjaG1lbnQoYXR0KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJ2aWV3QXR0YWNobWVudChhdHQpXCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdHQua2luZCA9PT0gJ2ltYWdlJykge1xuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJhdHQudXJsXCIgW2FsdF09XCJhdHQuZmlsZS5uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb2N1bWVudC1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRodW1iLW5hbWVcIj57eyBhdHQuZmlsZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRodW1iLXJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdyZW1vdmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgcmVtb3ZlUGVuZGluZyhhdHQuaWQpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjZWRpdGFibGVcbiAgICAgICAgICAgIGNsYXNzPVwiZWRpdGFibGVcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWVtcHR5XT1cIiFib2R5KClcIlxuICAgICAgICAgICAgY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICBhcmlhLW11bHRpbGluZT1cInRydWVcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wbGFjZWhvbGRlcl09XCJkaWN0YXRpbmcoKSA/IHQoJ2xpc3RlbmluZycpIDogcGxhY2Vob2xkZXJUZXh0KClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclRleHQoKVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwic3luY0JvZHkoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAocGFzdGUpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY3Rpb25zLXNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgICAgIEBpZiAoc2hvd0F0dGFjaCgpKSB7XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImljb24tYnRuXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdhdHRhY2gnKVwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWRkLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiIGhpZGRlbiAoY2hhbmdlKT1cIm9uRmlsZSgkZXZlbnQpXCIgYWNjZXB0PVwiaW1hZ2UvKixhcHBsaWNhdGlvbi9wZGZcIiAvPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzaG93Vm9pY2VNZXNzYWdlKCkpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnRuXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCd2b2ljZScpXCIgKGNsaWNrKT1cInN0YXJ0UmVjb3JkaW5nKClcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInB1bHNlLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2hvd01pYygpICYmIGRpY3RhdGlvblN1cHBvcnRlZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLWJ0biBkaWN0YXRlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImRpY3RhdGluZygpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2RpY3RhdGUnKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURpY3RhdGlvbigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibWljLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoY2FuU2VuZCgpKSB7XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0blwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnc2VuZCcpXCIgKGNsaWNrKT1cIm9uU2VuZCgpXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy11cC1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmNvbXBvc2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMHB4IGNhbGMoOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZik7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1iYXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1zdGVwLTEwMCwgcmdiYSgxMjcsIDEyNywgMTI3LCAwLjEpKTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5yZXBseS1ib2R5IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAucGVuZGluZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgfVxuICAgICAgLnRodW1iIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogNzJweDtcbiAgICAgICAgaGVpZ2h0OiA3MnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc3RlcC0xMDAsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xKSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC50aHVtYiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICAgIC50aHVtYi5maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgfVxuICAgICAgLnRodW1iLW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDAuNTYyNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgIH1cbiAgICAgIC50aHVtYi1yZW1vdmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICByaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgfVxuICAgICAgLyogU2hlbGwgZXN0aWxvIE5vdGlvbjogZWRpdGFibGUgYXJyaWJhLCBmaWxhIGRlIGFjY2lvbmVzIGFiYWpvLiAqL1xuICAgICAgLnNoZWxsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICB9XG4gICAgICAuZWRpdGFibGUge1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAxODBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gICAgICB9XG4gICAgICAuZWRpdGFibGUuaXMtZW1wdHk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgICAgLmFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgIH1cbiAgICAgIC5hY3Rpb25zLXNwYWNlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgICAuaWNvbi1idG4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgfVxuICAgICAgLmljb24tYnRuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgIH1cbiAgICAgIC5pY29uLWJ0bi5kaWN0YXRlLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGFuaW1hdGlvbjogZGljdGF0ZS1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuICAgICAgQGtleWZyYW1lcyBkaWN0YXRlLXB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5zZW5kLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5zZW5kLWJ0bjphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpO1xuICAgICAgfVxuICAgICAgLmljb24tYnRuLmRhbmdlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjZWI0NDVhKTtcbiAgICAgIH1cbiAgICAgIC5hdWRpby1jaGlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA0cHggNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc3RlcC0xMDAsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xKSk7XG4gICAgICB9XG4gICAgICAuYXVkaW8tY2hpcCBhdWRpbyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLnRodW1iLXJlbW92ZS5pbmxpbmUge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAucmVjLWJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgICB9XG4gICAgICAucmVjLWRvdCB7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2ViNDQ1YSk7XG4gICAgICAgIGFuaW1hdGlvbjogcmVjLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG4gICAgICAucmVjLXRpbWUge1xuICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgIH1cbiAgICAgIC5yZWMtc3BhY2VyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgIH1cbiAgICAgIEBrZXlmcmFtZXMgcmVjLXB1bHNlIHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICAgICAgNTAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0Q29tcG9zZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFsID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IG1heExlbmd0aCA9IGlucHV0PG51bWJlcj4oNDAwMCk7XG4gIHJlYWRvbmx5IHJlcGx5aW5nVG8gPSBpbnB1dDxNZXNzYWdlUmVwbHlUbyB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBzaG93QXR0YWNoID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIC8qKiBCb3TDs24gZGUgZGljdGFkbyB2b3rihpJ0ZXh0byAoU3BlZWNoUmVjb2duaXRpb24pLiBOYXRpdm8gZW4gU2FmYXJpL2lPUyB5IENocm9tZS4gKi9cbiAgcmVhZG9ubHkgc2hvd01pYyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICAvKiogQm90w7NuIGRlIG1lbnNhamUgZGUgdm96IChncmFiYXIgY2xpcCkuIE9wdC1pbjogbGEgcmVwcm9kdWNjacOzbiBjcm9zcy1kZXZpY2VcbiAgICogIHJlcXVpZXJlIHRyYW5zY29kZSBzZXJ2ZXItc2lkZSAocGVuZGllbnRlKSwgcG9yIGVzbyBkZWZhdWx0IGZhbHNlLiAqL1xuICByZWFkb25seSBzaG93Vm9pY2VNZXNzYWdlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHNlbmQgPSBvdXRwdXQ8Q2hhdENvbXBvc2VyU2VuZEV2ZW50PigpO1xuICByZWFkb25seSB0eXBpbmcgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgdm9pY2UgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgY2FuY2VsUmVwbHkgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVkaXRhYmxlUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignZWRpdGFibGUnKTtcblxuICAvLyBEaWN0YWRvIHZveuKGknRleHRvIChXZWIgU3BlZWNoIEFQSSkuXG4gIHByb3RlY3RlZCByZWFkb25seSBkaWN0YXRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGljdGF0aW9uU3VwcG9ydGVkID0gISEoXG4gICAgKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgU3BlZWNoUmVjb2duaXRpb24/OiB1bmtub3duIH0pLlNwZWVjaFJlY29nbml0aW9uIHx8XG4gICAgKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgd2Via2l0U3BlZWNoUmVjb2duaXRpb24/OiB1bmtub3duIH0pLndlYmtpdFNwZWVjaFJlY29nbml0aW9uXG4gICk7XG4gIHByaXZhdGUgcmVjb2duaXRpb24/OiBTcGVlY2hSZWNvZ25pdGlvbkxpa2U7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJvZHkgPSBzaWduYWwoJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVuZGluZyA9IHNpZ25hbDxQZW5kaW5nQXR0YWNobWVudFtdPihbXSk7XG4gIHByaXZhdGUgcGVuZGluZ0lkID0gMDtcblxuICAvLyBHcmFiYWNpw7NuIGRlIGF1ZGlvIChNZWRpYVJlY29yZGVyKS5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlY29yZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVjU2Vjb25kcyA9IHNpZ25hbCgwKTtcbiAgcHJpdmF0ZSByZWNvcmRlcj86IE1lZGlhUmVjb3JkZXI7XG4gIHByaXZhdGUgcmVjU3RyZWFtPzogTWVkaWFTdHJlYW07XG4gIHByaXZhdGUgcmVjQ2h1bmtzOiBCbG9iW10gPSBbXTtcbiAgcHJpdmF0ZSByZWNUaW1lcj86IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVjVGltZUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHMgPSB0aGlzLnJlY1NlY29uZHMoKTtcbiAgICBjb25zdCBtbSA9IFN0cmluZyhNYXRoLmZsb29yKHMgLyA2MCkpLnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgY29uc3Qgc3MgPSBTdHJpbmcocyAlIDYwKS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgJHttbX06JHtzc31gO1xuICB9KTtcblxuICBwcml2YXRlIGxhc3RUeXBpbmdFbWl0ID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnQ2hhdENvbXBvc2VyJywgQ0hBVF9DT01QT1NFUl9JMThOKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5TZW5kID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCB0ID0gdGhpcy5ib2R5KCkudHJpbSgpO1xuICAgIHJldHVybiAodC5sZW5ndGggPiAwICYmIHQubGVuZ3RoIDw9IHRoaXMubWF4TGVuZ3RoKCkpIHx8IHRoaXMucGVuZGluZygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBwbGFjZWhvbGRlclRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcigpIHx8IHRoaXMuaTE4bi50KCdwbGFjZWhvbGRlcicsICdDaGF0Q29tcG9zZXInKTtcbiAgfSk7XG5cbiAgLyoqIExlZSBlbCB0ZXh0byBkZWwgY29udGVudGVkaXRhYmxlIGEgbGEgc2lnbmFsIGBib2R5YC4gKi9cbiAgcHJvdGVjdGVkIHN5bmNCb2R5KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lZGl0YWJsZVJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgIC8vIGlubmVyVGV4dCBjb25zZXJ2YSBsb3Mgc2FsdG9zIGRlIGzDrW5lYTsgcXVpdGEgZWwgXFxuIGZpbmFsIHF1ZSBlbCBuYXZlZ2Fkb3IgYWdyZWdhLlxuICAgIGNvbnN0IHRleHQgPSAoZWw/LmlubmVyVGV4dCA/PyAnJykucmVwbGFjZSgvXFxuJC8sICcnKTtcbiAgICB0aGlzLmJvZHkuc2V0KHRleHQpO1xuICAgIHRoaXMuZW1pdFR5cGluZ0RlYm91bmNlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vblNlbmQoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUGVnYXI6IHRleHRvIHBsYW5vIChzaW4gZm9ybWF0bykgKyBpbcOhZ2VuZXMgZGVsIHBvcnRhcGFwZWxlcy4gKi9cbiAgcHJvdGVjdGVkIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBkYXRhID0gZXZlbnQuY2xpcGJvYXJkRGF0YTtcbiAgICBpZiAoIWRhdGEpIHJldHVybjtcblxuICAgIC8vIEltw6FnZW5lcyAoY2FwdHVyYXMgLyBjb3BpYXIgaW1hZ2VuKS5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgQXJyYXkuZnJvbShkYXRhLml0ZW1zKSkge1xuICAgICAgaWYgKGl0ZW0udHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xuICAgICAgICBjb25zdCBmaWxlID0gaXRlbS5nZXRBc0ZpbGUoKTtcbiAgICAgICAgaWYgKGZpbGUpIHRoaXMuYWRkUGVuZGluZyhmaWxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUZXh0byBwbGFubyBpbnNlcnRhZG8gZW4gZWwgY2FyZXQgKGV2aXRhIHBlZ2FyIEhUTUwgY29uIGVzdGlsb3MpLlxuICAgIGNvbnN0IHRleHQgPSBkYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcbiAgICBpZiAodGV4dCkge1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgdGV4dCk7XG4gICAgfVxuICAgIHRoaXMuc3luY0JvZHkoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblNlbmQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblNlbmQoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGZpbGVzID0gdGhpcy5wZW5kaW5nKCkubWFwKHAgPT4gcC5maWxlKTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5ib2R5KCkudHJpbSgpO1xuICAgIHRoaXMuc2VuZC5lbWl0KHsgdGV4dCwgZmlsZXMgfSk7XG5cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiB0aGlzLnBlbmRpbmcoKSkge1xuICAgICAgaWYgKGF0dC51cmwpIFVSTC5yZXZva2VPYmplY3RVUkwoYXR0LnVybCk7XG4gICAgfVxuICAgIHRoaXMucGVuZGluZy5zZXQoW10pO1xuICAgIHRoaXMuY2xlYXJFZGl0YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVkaXRhYmxlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lZGl0YWJsZVJlZigpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbCkgZWwuaW5uZXJUZXh0ID0gJyc7XG4gICAgdGhpcy5ib2R5LnNldCgnJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25GaWxlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG4gICAgaWYgKGZpbGUpIHRoaXMuYWRkUGVuZGluZyhmaWxlKTtcbiAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRQZW5kaW5nKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICBjb25zdCBraW5kOiBQZW5kaW5nS2luZCA9IGZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgPyAnaW1hZ2UnXG4gICAgICA6IGZpbGUudHlwZS5zdGFydHNXaXRoKCdhdWRpby8nKVxuICAgICAgICA/ICdhdWRpbydcbiAgICAgICAgOiAnZmlsZSc7XG4gICAgY29uc3QgdXJsID0ga2luZCA9PT0gJ2ZpbGUnID8gdW5kZWZpbmVkIDogVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICB0aGlzLnBlbmRpbmcudXBkYXRlKGFyciA9PiBbLi4uYXJyLCB7IGlkOiB0aGlzLnBlbmRpbmdJZCsrLCBmaWxlLCB1cmwsIGtpbmQgfV0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbW92ZVBlbmRpbmcoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZy51cGRhdGUoYXJyID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kID0gYXJyLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG4gICAgICBpZiAoZm91bmQ/LnVybCkgVVJMLnJldm9rZU9iamVjdFVSTChmb3VuZC51cmwpO1xuICAgICAgcmV0dXJuIGFyci5maWx0ZXIoYSA9PiBhLmlkICE9PSBpZCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQWJyZSBlbCBhZGp1bnRvIHN0YWdlZCBlbiBlbCB2aXNvciBkZSBtZWRpb3MgKGltYWdlbiBmdWxsIC8gZGVzY2FyZ2EpLiAqL1xuICBwcm90ZWN0ZWQgdmlld0F0dGFjaG1lbnQoYXR0OiBQZW5kaW5nQXR0YWNobWVudCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbC5vcGVuKHtcbiAgICAgIGNvbXBvbmVudDogTWVkaWFWaWV3ZXJNb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7IHVybDogYXR0LnVybCwgbmFtZTogYXR0LmZpbGUubmFtZSwgbWltZVR5cGU6IGF0dC5maWxlLnR5cGUgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFR5cGluZ0RlYm91bmNlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBub3cgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBpZiAobm93IC0gdGhpcy5sYXN0VHlwaW5nRW1pdCA+IDIwMDApIHtcbiAgICAgIHRoaXMubGFzdFR5cGluZ0VtaXQgPSBub3c7XG4gICAgICB0aGlzLnR5cGluZy5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgLy8g4pSA4pSA4pSAIEdyYWJhY2nDs24gZGUgYXVkaW8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgcHJpdmF0ZSBwaWNrQXVkaW9NaW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2FuZGlkYXRlcyA9IFsnYXVkaW8vd2VibTtjb2RlY3M9b3B1cycsICdhdWRpby93ZWJtJywgJ2F1ZGlvL21wNCddO1xuICAgIGNvbnN0IE1SID0gKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgTWVkaWFSZWNvcmRlcj86IHR5cGVvZiBNZWRpYVJlY29yZGVyIH0pLk1lZGlhUmVjb3JkZXI7XG4gICAgaWYgKCFNUj8uaXNUeXBlU3VwcG9ydGVkKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGNhbmRpZGF0ZXMuZmluZChjID0+IE1SLmlzVHlwZVN1cHBvcnRlZChjKSkgPz8gJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgc3RhcnRSZWNvcmRpbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMucmVjb3JkaW5nKCkpIHJldHVybjtcbiAgICBpZiAoIW5hdmlnYXRvci5tZWRpYURldmljZXM/LmdldFVzZXJNZWRpYSB8fCAhKCdNZWRpYVJlY29yZGVyJyBpbiB3aW5kb3cpKSB7XG4gICAgICB0aGlzLnZvaWNlLmVtaXQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWUgfSk7XG4gICAgICB0aGlzLnJlY1N0cmVhbSA9IHN0cmVhbTtcbiAgICAgIGNvbnN0IG1pbWVUeXBlID0gdGhpcy5waWNrQXVkaW9NaW1lKCk7XG4gICAgICB0aGlzLnJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIoc3RyZWFtLCBtaW1lVHlwZSA/IHsgbWltZVR5cGUgfSA6IHVuZGVmaW5lZCk7XG4gICAgICBjb25zb2xlLmxvZygnW0NoYXRDb21wb3Nlcl0gcmVjb3JkaW5nIHN0YXJ0Jywge1xuICAgICAgICBwaWNrZWQ6IG1pbWVUeXBlIHx8ICcoZGVmYXVsdCknLFxuICAgICAgICByZWNvcmRlck1pbWVUeXBlOiB0aGlzLnJlY29yZGVyLm1pbWVUeXBlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnJlY0NodW5rcyA9IFtdO1xuICAgICAgdGhpcy5yZWNvcmRlci5vbmRhdGFhdmFpbGFibGUgPSBlID0+IHtcbiAgICAgICAgaWYgKGUuZGF0YS5zaXplID4gMCkgdGhpcy5yZWNDaHVua3MucHVzaChlLmRhdGEpO1xuICAgICAgfTtcbiAgICAgIHRoaXMucmVjb3JkZXIuc3RhcnQoKTtcbiAgICAgIHRoaXMucmVjb3JkaW5nLnNldCh0cnVlKTtcbiAgICAgIHRoaXMucmVjU2Vjb25kcy5zZXQoMCk7XG4gICAgICB0aGlzLnJlY1RpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gdGhpcy5yZWNTZWNvbmRzLnVwZGF0ZShzID0+IHMgKyAxKSwgMTAwMCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmNsZWFudXBSZWNvcmRpbmcoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUGFyYSBsYSBncmFiYWNpw7NuIHkgbGEgc3RhZ2VhIGNvbW8gYWRqdW50byBwZW5kaWVudGUgKGNvbiBwcmV2aWV3IGRlIGF1ZGlvKS4gKi9cbiAgcHJvdGVjdGVkIGZpbmlzaFJlY29yZGluZygpOiB2b2lkIHtcbiAgICBjb25zdCByZWMgPSB0aGlzLnJlY29yZGVyO1xuICAgIGlmICghcmVjKSB7XG4gICAgICB0aGlzLmNsZWFudXBSZWNvcmRpbmcoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmVjLm9uc3RvcCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSByZWMubWltZVR5cGUgfHwgJ2F1ZGlvL3dlYm0nO1xuICAgICAgY29uc3QgZHVyYXRpb25NcyA9IHRoaXMucmVjU2Vjb25kcygpICogMTAwMDtcbiAgICAgIGxldCBibG9iID0gbmV3IEJsb2IodGhpcy5yZWNDaHVua3MsIHsgdHlwZSB9KTtcblxuICAgICAgLy8gTWVkaWFSZWNvcmRlciBlc2NyaWJlIFdlYk0gU0lOIGVsIGhlYWRlciBkZSBkdXJhY2nDs24gKFNlZ21lbnQvRHVyYXRpb24pIOKGklxuICAgICAgLy8gZWwgPGF1ZGlvPiBsbyByZWNoYXphIGNvbiBTUkNfTk9UX1NVUFBPUlRFRCBhdW5xdWUgZWwgY29kZWMgZXN0w6kgc29wb3J0YWRvLlxuICAgICAgLy8gZml4LXdlYm0tZHVyYXRpb24gcGFyY2hlYSBlbCBoZWFkZXIgY29uIGxhIGR1cmFjacOzbiByZWFsIOKGkiByZXByb2R1Y2libGUuXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygnd2VibScpICYmIGJsb2Iuc2l6ZSA+IDApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBibG9iID0gYXdhaXQgZml4V2VibUR1cmF0aW9uKGJsb2IsIGR1cmF0aW9uTXMsIHsgbG9nZ2VyOiBmYWxzZSB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdbQ2hhdENvbXBvc2VyXSBmaXhXZWJtRHVyYXRpb24gZmFsbMOzLCBzZSB1c2EgZWwgYmxvYiBjcnVkbycsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZXh0ID0gdHlwZS5pbmNsdWRlcygnbXA0JykgPyAnbTRhJyA6ICd3ZWJtJztcbiAgICAgIGNvbnN0IGZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIGBhdWRpby0ke3RoaXMucmVjU2Vjb25kcygpfXMuJHtleHR9YCwgeyB0eXBlIH0pO1xuICAgICAgY29uc29sZS5sb2coJ1tDaGF0Q29tcG9zZXJdIGF1ZGlvIHJlY29yZGVkJywge1xuICAgICAgICB0eXBlLFxuICAgICAgICBzaXplOiBibG9iLnNpemUsXG4gICAgICAgIGNodW5rczogdGhpcy5yZWNDaHVua3MubGVuZ3RoLFxuICAgICAgICBjYW5QbGF5V2VibTogdGhpcy5jYW5QbGF5KCdhdWRpby93ZWJtJyksXG4gICAgICAgIGNhblBsYXlNcDQ6IHRoaXMuY2FuUGxheSgnYXVkaW8vbXA0JyksXG4gICAgICB9KTtcbiAgICAgIGlmIChibG9iLnNpemUgPiAwKSB0aGlzLmFkZFBlbmRpbmcoZmlsZSk7XG4gICAgICB0aGlzLmNsZWFudXBSZWNvcmRpbmcoKTtcbiAgICB9O1xuICAgIHJlYy5zdG9wKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuY2VsUmVjb3JkaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IHJlYyA9IHRoaXMucmVjb3JkZXI7XG4gICAgaWYgKHJlYykgcmVjLm9uc3RvcCA9ICgpID0+IHRoaXMuY2xlYW51cFJlY29yZGluZygpO1xuICAgIHRyeSB7XG4gICAgICByZWM/LnN0b3AoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuY2xlYW51cFJlY29yZGluZygpO1xuICAgIH1cbiAgICBpZiAoIXJlYykgdGhpcy5jbGVhbnVwUmVjb3JkaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBSZWNvcmRpbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVjVGltZXIpIGNsZWFySW50ZXJ2YWwodGhpcy5yZWNUaW1lcik7XG4gICAgdGhpcy5yZWNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlY1N0cmVhbT8uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0ID0+IHQuc3RvcCgpKTtcbiAgICB0aGlzLnJlY1N0cmVhbSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJlY29yZGVyID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVjQ2h1bmtzID0gW107XG4gICAgdGhpcy5yZWNvcmRpbmcuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnJlY1NlY29uZHMuc2V0KDApO1xuICB9XG5cbiAgLyoqIERpYWduw7NzdGljbzogZWwgbmF2ZWdhZG9yIG5vIHB1ZG8gcmVwcm9kdWNpciBlbCBhZGp1bnRvIGRlIGF1ZGlvLiAqL1xuICBwcm90ZWN0ZWQgb25BdWRpb0Vycm9yKHdoZXJlOiBzdHJpbmcsIGZpbGU6IEZpbGUsIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxBdWRpb0VsZW1lbnQ7XG4gICAgY29uc3QgZXJyID0gZWwuZXJyb3I7XG4gICAgY29uc3QgY29kZXM6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7XG4gICAgICAxOiAnQUJPUlRFRCcsXG4gICAgICAyOiAnTkVUV09SSycsXG4gICAgICAzOiAnREVDT0RFJyxcbiAgICAgIDQ6ICdTUkNfTk9UX1NVUFBPUlRFRCcsXG4gICAgfTtcbiAgICBjb25zb2xlLmVycm9yKCdbQ2hhdENvbXBvc2VyXSBhdWRpbyBwbGF5IGVycm9yJywge1xuICAgICAgd2hlcmUsXG4gICAgICBmaWxlVHlwZTogZmlsZS50eXBlLFxuICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcbiAgICAgIGNvZGU6IGVycj8uY29kZSxcbiAgICAgIHJlYXNvbjogZXJyID8gY29kZXNbZXJyLmNvZGVdIDogJ3Vua25vd24nLFxuICAgICAgbWVzc2FnZTogZXJyPy5tZXNzYWdlLFxuICAgICAgY2FuUGxheVRoaXNUeXBlOiB0aGlzLmNhblBsYXkoZmlsZS50eXBlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkF1ZGlvTG9hZGVkKHdoZXJlOiBzdHJpbmcsIGZpbGU6IEZpbGUsIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxBdWRpb0VsZW1lbnQ7XG4gICAgY29uc29sZS5sb2coJ1tDaGF0Q29tcG9zZXJdIGF1ZGlvIGxvYWRlZG1ldGFkYXRhJywge1xuICAgICAgd2hlcmUsXG4gICAgICBmaWxlVHlwZTogZmlsZS50eXBlLFxuICAgICAgZHVyYXRpb246IGVsLmR1cmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIMK/RWwgbmF2ZWdhZG9yIGRlY2xhcmEgcXVlIHB1ZWRlIHJlcHJvZHVjaXIgZXN0ZSB0aXBvPyAnJyAvICdtYXliZScgLyAncHJvYmFibHknLiAqL1xuICBwcml2YXRlIGNhblBsYXkodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJykuY2FuUGxheVR5cGUodHlwZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIDilIAgRGljdGFkbyB2b3rihpJ0ZXh0byAoV2ViIFNwZWVjaCBBUEkpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIHByb3RlY3RlZCB0b2dnbGVEaWN0YXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGljdGF0aW5nKCkpIHtcbiAgICAgIHRoaXMuc3RvcERpY3RhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0YXJ0RGljdGF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydERpY3RhdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBDdG9yID1cbiAgICAgICh3aW5kb3cgYXMgdW5rbm93biBhcyB7IFNwZWVjaFJlY29nbml0aW9uPzogbmV3ICgpID0+IFNwZWVjaFJlY29nbml0aW9uTGlrZSB9KS5TcGVlY2hSZWNvZ25pdGlvbiB8fFxuICAgICAgKHdpbmRvdyBhcyB1bmtub3duIGFzIHsgd2Via2l0U3BlZWNoUmVjb2duaXRpb24/OiBuZXcgKCkgPT4gU3BlZWNoUmVjb2duaXRpb25MaWtlIH0pLndlYmtpdFNwZWVjaFJlY29nbml0aW9uO1xuICAgIGlmICghQ3RvcikgcmV0dXJuO1xuXG4gICAgY29uc3QgcmVjID0gbmV3IEN0b3IoKTtcbiAgICByZWMubGFuZyA9IHRoaXMuaTE4bi5sYW5nKCkgPT09ICdlbicgPyAnZW4tVVMnIDogJ2VzLUNMJztcbiAgICAvLyBjb250aW51b3VzPWZhbHNlOiB1bmEgZnJhc2UgeSBjb3J0YSBzb2xhIGFsIHBhdXNhci4gY29udGludW91cz10cnVlIGRlamFiYVxuICAgIC8vIGVsIHJlY29ub2NpbWllbnRvIGFiaWVydG8gaW5kZWZpbmlkYW1lbnRlIHkgZW4gYWxndW5vcyBuYXZlZ2Fkb3JlcyBjb2xnYWJhLlxuICAgIHJlYy5jb250aW51b3VzID0gZmFsc2U7XG4gICAgcmVjLmludGVyaW1SZXN1bHRzID0gZmFsc2U7IC8vIHNvbG8gcmVzdWx0YWRvcyBmaW5hbGVzIOKGkiBpbnNlcnRhbW9zIHRleHRvIGxpbXBpb1xuXG4gICAgcmVjLm9ucmVzdWx0ID0gZXZlbnQgPT4ge1xuICAgICAgbGV0IGZpbmFsVGV4dCA9ICcnO1xuICAgICAgZm9yIChsZXQgaSA9IGV2ZW50LnJlc3VsdEluZGV4OyBpIDwgZXZlbnQucmVzdWx0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByID0gZXZlbnQucmVzdWx0c1tpXTtcbiAgICAgICAgaWYgKHIuaXNGaW5hbCkgZmluYWxUZXh0ICs9IHJbMF0udHJhbnNjcmlwdDtcbiAgICAgIH1cbiAgICAgIGlmIChmaW5hbFRleHQpIHRoaXMuaW5zZXJ0RGljdGF0ZWQoZmluYWxUZXh0KTtcbiAgICB9O1xuICAgIHJlYy5vbmVycm9yID0gKCkgPT4gdGhpcy5zdG9wRGljdGF0aW9uKCk7XG4gICAgcmVjLm9uZW5kID0gKCkgPT4ge1xuICAgICAgLy8gRWwgcmVjb25vY2ltaWVudG8gcHVlZGUgY29ydGFyc2Ugc29sbzsgcmVmbGVqYW1vcyBlbCBlc3RhZG8uXG4gICAgICB0aGlzLmRpY3RhdGluZy5zZXQoZmFsc2UpO1xuICAgIH07XG5cbiAgICB0aGlzLnJlY29nbml0aW9uID0gcmVjO1xuICAgIHRoaXMuZWRpdGFibGVSZWYoKT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRyeSB7XG4gICAgICByZWMuc3RhcnQoKTtcbiAgICAgIHRoaXMuZGljdGF0aW5nLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuZGljdGF0aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRGljdGF0aW9uKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlY29nbml0aW9uPy5zdG9wKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBub29wICovXG4gICAgfVxuICAgIHRoaXMuZGljdGF0aW5nLnNldChmYWxzZSk7XG4gIH1cblxuICAvKiogSW5zZXJ0YSBlbCB0ZXh0byBkaWN0YWRvIGFsIGZpbmFsIGRlbCBlZGl0YWJsZSB5IHNpbmNyb25pemEgZWwgYm9keS4gKi9cbiAgcHJpdmF0ZSBpbnNlcnREaWN0YXRlZCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWRpdGFibGVSZWYoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgY29uc3QgY3VycmVudCA9IGVsLmlubmVyVGV4dC5yZXBsYWNlKC9cXG4kLywgJycpO1xuICAgIGNvbnN0IHNlcCA9IGN1cnJlbnQgJiYgIWN1cnJlbnQuZW5kc1dpdGgoJyAnKSA/ICcgJyA6ICcnO1xuICAgIGVsLmlubmVyVGV4dCA9IGN1cnJlbnQgKyBzZXAgKyB0ZXh0O1xuICAgIC8vIENvbG9jYSBlbCBjYXJldCBhbCBmaW5hbC5cbiAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVsKTtcbiAgICByYW5nZS5jb2xsYXBzZShmYWxzZSk7XG4gICAgY29uc3Qgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIHNlbD8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgc2VsPy5hZGRSYW5nZShyYW5nZSk7XG4gICAgdGhpcy5ib2R5LnNldChlbC5pbm5lclRleHQucmVwbGFjZSgvXFxuJC8sICcnKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBSZWNvcmRpbmcoKTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5yZWNvZ25pdGlvbj8uYWJvcnQoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8qIG5vb3AgKi9cbiAgICB9XG4gICAgZm9yIChjb25zdCBhdHQgb2YgdGhpcy5wZW5kaW5nKCkpIHtcbiAgICAgIGlmIChhdHQudXJsKSBVUkwucmV2b2tlT2JqZWN0VVJMKGF0dC51cmwpO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdDaGF0Q29tcG9zZXInKTtcbiAgfVxufVxuIl19
|