valtech-components 4.0.964 → 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/rights-footer/rights-footer.component.mjs +2 -2
- 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 +5 -5
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +5 -5
- 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/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +3 -3
- package/esm2022/lib/components/molecules/field-options-editor/field-options-editor.component.mjs +3 -3
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/footer-links/footer-links.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/image-crop/image-crop.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/linked-providers/linked-providers.component.mjs +3 -3
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.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/option-cards/option-cards.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 +5 -5
- 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 +5 -5
- 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/request-form/request-form.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/molecules/update-banner/update-banner.component.mjs +3 -3
- package/esm2022/lib/components/organisms/access-request-view/access-request-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/api-keys-modal/api-keys-modal.component.mjs +5 -5
- 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 +5 -5
- 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 +5 -5
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/field-list/field-list.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 +5 -5
- 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/infinite-list/infinite-list.component.mjs +5 -5
- 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 +11 -11
- package/esm2022/lib/components/organisms/login/login.component.mjs +3 -3
- package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs +6 -6
- package/esm2022/lib/components/organisms/member-detail-modal/member-detail-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs +5 -5
- package/esm2022/lib/components/organisms/menu/menu.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/notification-preferences-view/notification-preferences-view.component.mjs +5 -5
- package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/option-sheet/option-sheet.component.mjs +3 -3
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +11 -11
- package/esm2022/lib/components/organisms/request-review-panel/request-review-panel.component.mjs +5 -5
- package/esm2022/lib/components/organisms/role-manager/role-manager.component.mjs +7 -7
- package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +3 -3
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +5 -5
- package/esm2022/lib/components/organisms/session-list-modal/session-list-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/transfer-ownership-modal/transfer-ownership-modal.component.mjs +5 -5
- 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/page-content/page-content.component.mjs +3 -3
- package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
- package/esm2022/lib/services/confirmation-dialog/types.mjs +2 -2
- package/esm2022/lib/services/content/transformer.mjs +3 -3
- package/esm2022/lib/services/markdown-article/beautify-legal-article.mjs +2 -2
- package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +2 -2
- package/esm2022/lib/services/modal/types.mjs +2 -2
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +284 -284
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +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
package/esm2022/lib/components/organisms/member-import-modal/member-import-modal.component.mjs
CHANGED
|
@@ -188,7 +188,7 @@ export class MemberImportModalComponent {
|
|
|
188
188
|
@if (rolesHint()) {
|
|
189
189
|
<val-text
|
|
190
190
|
class="import-roles-hint"
|
|
191
|
-
[props]="{ content: rolesHint(), size: 'small', color: '
|
|
191
|
+
[props]="{ content: rolesHint(), size: 'small', color: 'medium', bold: false }"
|
|
192
192
|
/>
|
|
193
193
|
}
|
|
194
194
|
|
|
@@ -307,7 +307,7 @@ export class MemberImportModalComponent {
|
|
|
307
307
|
</ion-button>
|
|
308
308
|
</div>
|
|
309
309
|
</ion-content>
|
|
310
|
-
`, isInline: true, styles: ["val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:8px}.import-roles-hint{display:block;margin-bottom:24px}.import-section{margin-bottom:28px}.import-section val-title{margin-bottom:10px}.import-method-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.import-method-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1.5px solid var(--ion-color-light-shade, #d7d8da);border-radius:12px;background:var(--ion-color-light);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.import-method-card:hover{border-color:var(--ion-color-dark, #92949c)}.import-method-card--active{border-color:var(--ion-color-primary, #7026df);background:color-mix(in srgb,var(--ion-color-primary, #7026df) 6%,var(--ion-color-light))}.import-method-card__icon{font-size:1.375rem;color:var(--ion-color-dark-shade, #6b6e76);margin-bottom:4px}.import-method-card--active .import-method-card__icon{color:var(--ion-color-primary, #7026df)}.import-method-card__title{font-size:.875rem;font-weight:600;color:var(--ion-color-dark)}.import-method-card__hint{font-size:.75rem;color:var(--ion-color-dark, #92949c);line-height:1.3}.import-upload__btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--ion-color-
|
|
310
|
+
`, isInline: true, styles: ["val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:8px}.import-roles-hint{display:block;margin-bottom:24px}.import-section{margin-bottom:28px}.import-section val-title{margin-bottom:10px}.import-method-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.import-method-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1.5px solid var(--ion-color-light-shade, #d7d8da);border-radius:12px;background:var(--ion-color-light);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.import-method-card:hover{border-color:var(--ion-color-dark, #92949c)}.import-method-card--active{border-color:var(--ion-color-primary, #7026df);background:color-mix(in srgb,var(--ion-color-primary, #7026df) 6%,var(--ion-color-light))}.import-method-card__icon{font-size:1.375rem;color:var(--ion-color-dark-shade, #6b6e76);margin-bottom:4px}.import-method-card--active .import-method-card__icon{color:var(--ion-color-primary, #7026df)}.import-method-card__title{font-size:.875rem;font-weight:600;color:var(--ion-color-dark)}.import-method-card__hint{font-size:.75rem;color:var(--ion-color-dark, #92949c);line-height:1.3}.import-upload__btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--ion-color-medium, #92949c);border-radius:10px;background:var(--ion-color-light);color:var(--ion-color-dark);font-size:.875rem;font-weight:600;cursor:pointer;transition:border-color .15s ease}.import-upload__btn:hover{border-color:var(--ion-color-primary, #7026df)}.import-upload__btn ion-icon{font-size:1.25rem}.import-upload__btn input[type=file]{display:none}.import-file-loaded{margin:10px 0 0;font-size:.8125rem;color:var(--ion-color-dark-shade, #6b6e76)}.import-csv{--background: transparent;border-radius:10px;font-family:monospace;font-size:.8125rem}.import-error{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.import-actions{margin-top:8px}.modal-close-bottom{margin-top:12px}.import-results{display:flex;flex-direction:column;gap:6px;margin:12px 0}.import-row{display:grid;grid-template-columns:1fr auto;grid-row-gap:2px;align-items:center;padding:10px 12px;border-radius:8px;border-left:3px solid var(--ion-color-medium);background:var(--ion-color-light);font-size:.875rem}.import-row--created{border-left-color:var(--ion-color-success, #2dd36f)}.import-row--assigned{border-left-color:var(--ion-color-primary, #7026df)}.import-row--skipped{border-left-color:var(--ion-color-dark, #92949c)}.import-row--error{border-left-color:var(--ion-color-danger, #c0392b)}.import-row__email{font-weight:600;color:var(--ion-color-dark)}.import-row__status{text-align:right;color:var(--ion-color-dark-shade, #6b6e76)}.import-row__reason{grid-column:1 / -1;font-size:.75rem;color:var(--ion-color-danger, #c0392b)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { 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: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input", inputs: ["preset", "props"] }] }); }
|
|
311
311
|
}
|
|
312
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MemberImportModalComponent, decorators: [{
|
|
313
313
|
type: Component,
|
|
@@ -346,7 +346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
346
346
|
@if (rolesHint()) {
|
|
347
347
|
<val-text
|
|
348
348
|
class="import-roles-hint"
|
|
349
|
-
[props]="{ content: rolesHint(), size: 'small', color: '
|
|
349
|
+
[props]="{ content: rolesHint(), size: 'small', color: 'medium', bold: false }"
|
|
350
350
|
/>
|
|
351
351
|
}
|
|
352
352
|
|
|
@@ -465,7 +465,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
465
465
|
</ion-button>
|
|
466
466
|
</div>
|
|
467
467
|
</ion-content>
|
|
468
|
-
`, styles: ["val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:8px}.import-roles-hint{display:block;margin-bottom:24px}.import-section{margin-bottom:28px}.import-section val-title{margin-bottom:10px}.import-method-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.import-method-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1.5px solid var(--ion-color-light-shade, #d7d8da);border-radius:12px;background:var(--ion-color-light);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.import-method-card:hover{border-color:var(--ion-color-dark, #92949c)}.import-method-card--active{border-color:var(--ion-color-primary, #7026df);background:color-mix(in srgb,var(--ion-color-primary, #7026df) 6%,var(--ion-color-light))}.import-method-card__icon{font-size:1.375rem;color:var(--ion-color-dark-shade, #6b6e76);margin-bottom:4px}.import-method-card--active .import-method-card__icon{color:var(--ion-color-primary, #7026df)}.import-method-card__title{font-size:.875rem;font-weight:600;color:var(--ion-color-dark)}.import-method-card__hint{font-size:.75rem;color:var(--ion-color-dark, #92949c);line-height:1.3}.import-upload__btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--ion-color-
|
|
468
|
+
`, styles: ["val-display{display:block;margin-bottom:4px}val-title{display:block;margin-bottom:8px}.import-roles-hint{display:block;margin-bottom:24px}.import-section{margin-bottom:28px}.import-section val-title{margin-bottom:10px}.import-method-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.import-method-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1.5px solid var(--ion-color-light-shade, #d7d8da);border-radius:12px;background:var(--ion-color-light);cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.import-method-card:hover{border-color:var(--ion-color-dark, #92949c)}.import-method-card--active{border-color:var(--ion-color-primary, #7026df);background:color-mix(in srgb,var(--ion-color-primary, #7026df) 6%,var(--ion-color-light))}.import-method-card__icon{font-size:1.375rem;color:var(--ion-color-dark-shade, #6b6e76);margin-bottom:4px}.import-method-card--active .import-method-card__icon{color:var(--ion-color-primary, #7026df)}.import-method-card__title{font-size:.875rem;font-weight:600;color:var(--ion-color-dark)}.import-method-card__hint{font-size:.75rem;color:var(--ion-color-dark, #92949c);line-height:1.3}.import-upload__btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--ion-color-medium, #92949c);border-radius:10px;background:var(--ion-color-light);color:var(--ion-color-dark);font-size:.875rem;font-weight:600;cursor:pointer;transition:border-color .15s ease}.import-upload__btn:hover{border-color:var(--ion-color-primary, #7026df)}.import-upload__btn ion-icon{font-size:1.25rem}.import-upload__btn input[type=file]{display:none}.import-file-loaded{margin:10px 0 0;font-size:.8125rem;color:var(--ion-color-dark-shade, #6b6e76)}.import-csv{--background: transparent;border-radius:10px;font-family:monospace;font-size:.8125rem}.import-error{margin:0 0 12px;font-size:.875rem;color:var(--ion-color-danger, #c0392b)}.import-actions{margin-top:8px}.modal-close-bottom{margin-top:12px}.import-results{display:flex;flex-direction:column;gap:6px;margin:12px 0}.import-row{display:grid;grid-template-columns:1fr auto;grid-row-gap:2px;align-items:center;padding:10px 12px;border-radius:8px;border-left:3px solid var(--ion-color-medium);background:var(--ion-color-light);font-size:.875rem}.import-row--created{border-left-color:var(--ion-color-success, #2dd36f)}.import-row--assigned{border-left-color:var(--ion-color-primary, #7026df)}.import-row--skipped{border-left-color:var(--ion-color-dark, #92949c)}.import-row--error{border-left-color:var(--ion-color-danger, #c0392b)}.import-row__email{font-weight:600;color:var(--ion-color-dark)}.import-row__status{text-align:right;color:var(--ion-color-dark-shade, #6b6e76)}.import-row__reason{grid-column:1 / -1;font-size:.75rem;color:var(--ion-color-danger, #c0392b)}\n"] }]
|
|
469
469
|
}], ctorParameters: () => [], propDecorators: { orgId: [{
|
|
470
470
|
type: Input
|
|
471
471
|
}], availableRoles: [{
|
|
@@ -477,4 +477,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
477
477
|
}], i18nNamespace: [{
|
|
478
478
|
type: Input
|
|
479
479
|
}] } });
|
|
480
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWltcG9ydC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbWJlci1pbXBvcnQtbW9kYWwvbWVtYmVyLWltcG9ydC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsR0FDWCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFpQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxV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QixtQkFBbUI7OzRGQXdTViwwQkFBMEI7a0JBMVR0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLG1CQUFtQjtxQkFDcEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMElUO3dEQWlLUSxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uVGV4dGFyZWEsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjbG91ZFVwbG9hZE91dGxpbmUsIGRvY3VtZW50VGV4dE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcywgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgT3JnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9vcmcuc2VydmljZSc7XG5pbXBvcnQge1xuICBJbXBvcnRNZW1iZXJzUmVzcG9uc2UsXG4gIEltcG9ydE9uQ29uZmxpY3QsXG4gIEltcG9ydFJvd1Jlc3VsdCxcbiAgSW1wb3J0VXNlclJvdyxcbiAgT3JnUm9sZSxcbiAgcmVzb2x2ZVJvbGVMYWJlbCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcblxuaW1wb3J0IHsgTUVNQkVSX0lNUE9SVF9NT0RBTF9JMThOIH0gZnJvbSAnLi9tZW1iZXItaW1wb3J0LW1vZGFsLmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5JbXBvcnRNb2RhbCc7XG5cbmFkZEljb25zKHsgY2xvdWRVcGxvYWRPdXRsaW5lLCBkb2N1bWVudFRleHRPdXRsaW5lIH0pO1xuXG4vKipcbiAqIGB2YWwtbWVtYmVyLWltcG9ydC1tb2RhbGAg4oCUIHBhbmVsIGRlIGNhcmdhIG1hc2l2YSBkZSBtaWVtYnJvcyAoQURSLTAyMyBmYXNlIDYpLlxuICpcbiAqIEVsIGFkbWluIHBlZ2EgdW4gQ1NWIChgZW1haWwsbm9tYnJlLHJvbGApOyBlbCBtb2RhbCBsbyBwYXJzZWEgYSBmaWxhcyB5IGxsYW1hXG4gKiBgT3JnU2VydmljZS5pbXBvcnRNZW1iZXJzYC4gTXVlc3RyYSBlbCByZXN1bHRhZG8gcG9yLWZpbGEgKHBhcnRpYWwgc3VjY2Vzcyk6XG4gKiBgY3JlYXRlZGAgLyBgYXNzaWduZWRgIC8gYHNraXBwZWRgIC8gYGVycm9yYC4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGBTZXR0aW5ncy5JbXBvcnRNb2RhbGAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1tZW1iZXItaW1wb3J0LW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25UZXh0YXJlYSxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdzdWJ0aXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuXG4gICAgICBAaWYgKCFyZXN1bHRzKCkpIHtcbiAgICAgICAgQGlmIChyb2xlc0hpbnQoKSkge1xuICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgY2xhc3M9XCJpbXBvcnQtcm9sZXMtaGludFwiXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBjb250ZW50OiByb2xlc0hpbnQoKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgYm9sZDogZmFsc2UgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gU2VsZWN0b3IgZGUgbcOpdG9kbyBkZSBpbXBvcnRhY2nDs24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbXBvcnQtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogdCgnaW1wb3J0TWV0aG9kTGFiZWwnKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LW1ldGhvZC1jYXJkc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRcIlxuICAgICAgICAgICAgICBbY2xhc3MuaW1wb3J0LW1ldGhvZC1jYXJkLS1hY3RpdmVdPVwiaW1wb3J0TW9kZSgpID09PSAnZmlsZSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW1wb3J0TW9kZS5zZXQoJ2ZpbGUnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvdWQtdXBsb2FkLW91dGxpbmVcIiBjbGFzcz1cImltcG9ydC1tZXRob2QtY2FyZF9faWNvblwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1wb3J0LW1ldGhvZC1jYXJkX190aXRsZVwiPnt7IHQoJ2ltcG9ydE1ldGhvZEZpbGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRfX2hpbnRcIj57eyB0KCdpbXBvcnRNZXRob2RGaWxlSGludCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImltcG9ydC1tZXRob2QtY2FyZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5pbXBvcnQtbWV0aG9kLWNhcmQtLWFjdGl2ZV09XCJpbXBvcnRNb2RlKCkgPT09ICdwYXN0ZSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW1wb3J0TW9kZS5zZXQoJ3Bhc3RlJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvY3VtZW50LXRleHQtb3V0bGluZVwiIGNsYXNzPVwiaW1wb3J0LW1ldGhvZC1jYXJkX19pY29uXCIgLz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRfX3RpdGxlXCI+e3sgdCgnaW1wb3J0TWV0aG9kUGFzdGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRfX2hpbnRcIj57eyB0KCdpbXBvcnRNZXRob2RQYXN0ZUhpbnQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIFN1YmlkYSBkZSBhcmNoaXZvIChsYWJlbCB0cmljayDigJQgZ2VzdG8gY29uZmlhYmxlIGVuIGlPUy9QV0EpIC0tPlxuICAgICAgICBAaWYgKGltcG9ydE1vZGUoKSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbXBvcnQtdXBsb2FkX19idG5cIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG91ZC11cGxvYWQtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3VwbG9hZEZpbGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgYWNjZXB0PVwiLmNzdix0ZXh0L2Nzdix0ZXh0L3BsYWluXCIgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICBAaWYgKGZpbGVOYW1lKCkpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJpbXBvcnQtZmlsZS1sb2FkZWRcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdmaWxlTG9hZGVkJykucmVwbGFjZSgne25hbWV9JywgZmlsZU5hbWUoKSkgfX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBQZWdhciBDU1YgLS0+XG4gICAgICAgIEBpZiAoaW1wb3J0TW9kZSgpID09PSAncGFzdGUnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8aW9uLXRleHRhcmVhXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW1wb3J0LWNzdlwiXG4gICAgICAgICAgICAgIFthdXRvR3Jvd109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3Jvd3NdPVwiNlwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0KCdjc3ZQbGFjZWhvbGRlcicpXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjc3ZcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gU2kgaHVibyBjYXJnYSBkZSBhcmNoaXZvLCBtb3N0cmFyIHRleHRhcmVhIGRlIHNvbG8gbGVjdHVyYSBwYXJhIHJldmlzYXIgLS0+XG4gICAgICAgIEBpZiAoaW1wb3J0TW9kZSgpID09PSAnZmlsZScgJiYgY3N2KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8aW9uLXRleHRhcmVhIGNsYXNzPVwiaW1wb3J0LWNzdlwiIFthdXRvR3Jvd109XCJ0cnVlXCIgW3Jvd3NdPVwiNFwiIFtyZWFkb25seV09XCJ0cnVlXCIgW3ZhbHVlXT1cImNzdlwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIENvbmZsaWN0bzogc2VsZWN0IC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ29uQ29uZmxpY3RMYWJlbCcpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBib2xkOiB0cnVlIH1cIiAvPlxuICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IFtwcm9wc109XCJjb25mbGljdFNlbGVjdFByb3BzKClcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFjdGl2YWNpw7NuOiB2YWwtY2hlY2staW5wdXQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbXBvcnQtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtY2hlY2staW5wdXQgW3Byb3BzXT1cInNlbmRBY3RpdmF0aW9uUHJvcHMoKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAoZXJyb3JNc2coKSkge1xuICAgICAgICAgIDxwIGNsYXNzPVwiaW1wb3J0LWVycm9yXCI+e3sgZXJyb3JNc2coKSB9fTwvcD5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbXBvcnQtYWN0aW9uc1wiPlxuICAgICAgICAgIDxpb24tYnV0dG9uIGV4cGFuZD1cImJsb2NrXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIFtkaXNhYmxlZF09XCJzdWJtaXR0aW5nKClcIiAoY2xpY2spPVwic3VibWl0KClcIj5cbiAgICAgICAgICAgIEBpZiAoc3VibWl0dGluZygpKSB7XG4gICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiIC8+XG4gICAgICAgICAgICAgICZuYnNwO3t7IHQoJ3N1Ym1pdHRpbmcnKSB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIHt7IHQoJ3N1Ym1pdCcpIH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8IS0tIFJlc3VsdGFkb3MgLS0+XG4gICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogc3VtbWFyeUxhYmVsKCksIHNpemU6ICdsYXJnZScsIGNvbG9yOiAnJywgYm9sZDogdHJ1ZSB9XCIgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1yZXN1bHRzXCI+XG4gICAgICAgICAgQGZvciAociBvZiByZXN1bHRzKCkhLnJlc3VsdHM7IHRyYWNrIHIuZW1haWwpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbXBvcnQtcm93IGltcG9ydC1yb3ctLXt7IHIuc3RhdHVzIH19XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1wb3J0LXJvd19fZW1haWxcIj57eyByLmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltcG9ydC1yb3dfX3N0YXR1c1wiPnt7IHN0YXR1c0xhYmVsKHIpIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHIucmVhc29uKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbXBvcnQtcm93X19yZWFzb25cIj57eyByLnJlYXNvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1hY3Rpb25zXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwicmVzZXQoKVwiPlxuICAgICAgICAgICAge3sgdCgnYWdhaW4nKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jbG9zZS1ib3R0b21cIj5cbiAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwiZGlzbWlzcygpXCI+XG4gICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICB2YWwtZGlzcGxheSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICB2YWwtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yb2xlcy1oaW50IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgICAgfVxuICAgICAgLmltcG9ydC1zZWN0aW9uIHZhbC10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmltcG9ydC1tZXRob2QtY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSwgI2Q3ZDhkYSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkLS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKSA2JSwgdmFyKC0taW9uLWNvbG9yLWxpZ2h0KSk7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkX19pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgfVxuICAgICAgLmltcG9ydC1tZXRob2QtY2FyZC0tYWN0aXZlIC5pbXBvcnQtbWV0aG9kLWNhcmRfX2ljb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1tZXRob2QtY2FyZF9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1tZXRob2QtY2FyZF9faGludCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtdXBsb2FkX19idG4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgLmltcG9ydC11cGxvYWRfX2J0bjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpO1xuICAgICAgfVxuICAgICAgLmltcG9ydC11cGxvYWRfX2J0biBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtdXBsb2FkX19idG4gaW5wdXRbdHlwZT0nZmlsZSddIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtZmlsZS1sb2FkZWQge1xuICAgICAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsICM2YjZlNzYpO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1jc3Yge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIH1cbiAgICAgIC5tb2RhbC1jbG9zZS1ib3R0b20ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yZXN1bHRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yb3cge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICAgICAgICBncmlkLXJvdy1nYXA6IDJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yb3ctLWNyZWF0ZWQge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MsICMyZGQzNmYpO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yb3ctLWFzc2lnbmVkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93LS1za2lwcGVkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93LS1lcnJvciB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93X19lbWFpbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXJvd19fc3RhdHVzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyay1zaGFkZSwgIzZiNmU3Nik7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXJvd19fcmVhc29uIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVtYmVySW1wb3J0TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG5cbiAgLyoqIE9yZyBkZXN0aW5vIGRlbCBpbXBvcnQuICovXG4gIEBJbnB1dCgpIG9yZ0lkID0gJyc7XG5cbiAgLyoqIE5vbWJyZXMgZGUgcm9sZXMgZGlzcG9uaWJsZXMgKHBhcmEgZWwgaGludCkuIE9wY2lvbmFsLiAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVSb2xlczogT3JnUm9sZVtdID0gW107XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW5hIGltcG9ydGFjacOzbiBleGl0b3NhICjiiaUxIGZpbGEgcHJvY2VzYWRhKSDigJQgcmVmcmVzY2EgbGEgbGlzdGEuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYC4gKi9cbiAgQElucHV0KCkgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoZGF0YT86IHVua25vd24sIHJvbGU/OiBzdHJpbmcpID0+IHZvaWQgfTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4uICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICBjc3YgPSAnJztcblxuICByZWFkb25seSBpbXBvcnRNb2RlID0gc2lnbmFsPCdmaWxlJyB8ICdwYXN0ZSc+KCdmaWxlJyk7XG5cbiAgcmVhZG9ubHkgb25Db25mbGljdENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignYXNzaWduUm9sZScpO1xuICByZWFkb25seSBzZW5kQWN0aXZhdGlvbkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgY29uZmxpY3RTZWxlY3RQcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY29udHJvbDogdGhpcy5vbkNvbmZsaWN0Q29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICBsYWJlbDogJycsXG4gICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnb25Db25mbGljdExhYmVsJyksXG4gICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyBpZDogJ2Fzc2lnblJvbGUnLCBuYW1lOiB0aGlzLnQoJ2NvbmZsaWN0QXNzaWduJyksIG9yZGVyOiAwIH0sXG4gICAgICB7IGlkOiAnc2tpcCcsIG5hbWU6IHRoaXMudCgnY29uZmxpY3RTa2lwJyksIG9yZGVyOiAxIH0sXG4gICAgICB7IGlkOiAnZXJyb3InLCBuYW1lOiB0aGlzLnQoJ2NvbmZsaWN0RXJyb3InKSwgb3JkZXI6IDIgfSxcbiAgICBdLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgc2VuZEFjdGl2YXRpb25Qcm9wcyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICBjb250cm9sOiB0aGlzLnNlbmRBY3RpdmF0aW9uQ29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICAgICAgbGFiZWw6IHRoaXMudCgnc2VuZEFjdGl2YXRpb24nKSxcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlLkNIRUNLLFxuICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICAgIGxhYmVsUGxhY2VtZW50OiAnZW5kJyxcbiAgICAgIH0pIGFzIElucHV0TWV0YWRhdGFcbiAgKTtcblxuICByZWFkb25seSBzdWJtaXR0aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JNc2cgPSBzaWduYWwoJycpO1xuICByZWFkb25seSByZXN1bHRzID0gc2lnbmFsPEltcG9ydE1lbWJlcnNSZXNwb25zZSB8IG51bGw+KG51bGwpO1xuICAvKiogTm9tYnJlIGRlbCBhcmNoaXZvIENTViBjYXJnYWRvICh2YWPDrW8gc2kgc2UgcGVnw7MgbWFudWFsbWVudGUpLiAqL1xuICByZWFkb25seSBmaWxlTmFtZSA9IHNpZ25hbCgnJyk7XG5cbiAgcmVhZG9ubHkgcm9sZXNIaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5hdmFpbGFibGVSb2xlcy5sZW5ndGgpIHJldHVybiAnJztcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBuYW1lcyA9IHRoaXMuYXZhaWxhYmxlUm9sZXMubWFwKHIgPT4gcmVzb2x2ZVJvbGVMYWJlbChyLCBsYW5nKSkuam9pbignLCAnKTtcbiAgICByZXR1cm4gYCR7dGhpcy50KCdyb2xlc0F2YWlsYWJsZScpfSAke25hbWVzfWA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHN1bW1hcnlMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzID0gdGhpcy5yZXN1bHRzKCk/LnN1bW1hcnk7XG4gICAgaWYgKCFzKSByZXR1cm4gdGhpcy50KCdzdW1tYXJ5Jyk7XG4gICAgcmV0dXJuIGAke3RoaXMudCgnc3VtbWFyeScpfTogJHtzLmNyZWF0ZWR9ICR7dGhpcy50KCdjcmVhdGVkJyl9IMK3ICR7cy5hc3NpZ25lZH0gJHt0aGlzLnQoXG4gICAgICAnYXNzaWduZWQnXG4gICAgKX0gwrcgJHtzLnNraXBwZWR9ICR7dGhpcy50KCdza2lwcGVkJyl9IMK3ICR7cy5mYWlsZWR9ICR7dGhpcy50KCdmYWlsZWQnKX1gO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgTUVNQkVSX0lNUE9SVF9NT0RBTF9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgTUVNQkVSX0lNUE9SVF9NT0RBTF9JMThOKTtcbiAgfVxuXG4gIC8qKiBDYXJnYSB1biBhcmNoaXZvIENTViBzZWxlY2Npb25hZG86IGxlZSBzdSB0ZXh0byBhbCB0ZXh0YXJlYSAoYGNzdmApLiAqL1xuICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlcz8uWzBdO1xuICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNzdiA9IFN0cmluZyhyZWFkZXIucmVzdWx0ID8/ICcnKTtcbiAgICAgIHRoaXMuZmlsZU5hbWUuc2V0KGZpbGUubmFtZSk7XG4gICAgfTtcbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnZmlsZVJlYWRFcnJvcicpKTtcbiAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICAvLyBQZXJtaXRlIHJlLXNlbGVjY2lvbmFyIGVsIG1pc21vIGFyY2hpdm8gKGVsIGNoYW5nZSBubyBkaXNwYXJhIHNpIG5vIHNlIGxpbXBpYSkuXG4gICAgaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIC8qKiBQYXJzZWEgZWwgQ1NWIHBlZ2FkbyBhIGZpbGFzIHtlbWFpbCxuYW1lLHJvbGVOYW1lfS4gVG9sZXJhIGhlYWRlci4gKi9cbiAgcHJpdmF0ZSBwYXJzZUNzdigpOiBJbXBvcnRVc2VyUm93W10ge1xuICAgIGNvbnN0IHJvd3M6IEltcG9ydFVzZXJSb3dbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcmF3IG9mIHRoaXMuY3N2LnNwbGl0KC9cXHI/XFxuLykpIHtcbiAgICAgIGNvbnN0IGxpbmUgPSByYXcudHJpbSgpO1xuICAgICAgaWYgKCFsaW5lKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IGNvbHMgPSBsaW5lLnNwbGl0KCcsJykubWFwKGMgPT4gYy50cmltKCkpO1xuICAgICAgY29uc3QgZW1haWwgPSAoY29sc1swXSA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgIC8vIFNhbHRhciBoZWFkZXIgKHByaW1lcmEgY29sIFwiZW1haWxcIikgbyBsw61uZWFzIHNpbiBALlxuICAgICAgaWYgKCFlbWFpbCB8fCAhZW1haWwuaW5jbHVkZXMoJ0AnKSkgY29udGludWU7XG4gICAgICByb3dzLnB1c2goeyBlbWFpbCwgbmFtZTogY29sc1sxXSA/PyAnJywgcm9sZU5hbWU6IGNvbHNbMl0gPz8gJycgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3dzO1xuICB9XG5cbiAgc3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcbiAgICBjb25zdCB1c2VycyA9IHRoaXMucGFyc2VDc3YoKTtcbiAgICBpZiAodXNlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9yTXNnLnNldCh0aGlzLnQoJ25vUm93cycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVzZXJzLnNvbWUodSA9PiAhdS5yb2xlTmFtZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgncGFyc2VFcnJvcicpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmltcG9ydE1lbWJlcnModGhpcy5vcmdJZCwge1xuICAgICAgICB1c2VycyxcbiAgICAgICAgb25Db25mbGljdDogKHRoaXMub25Db25mbGljdENvbnRyb2wudmFsdWUgPz8gJ2Fzc2lnblJvbGUnKSBhcyBJbXBvcnRPbkNvbmZsaWN0LFxuICAgICAgICBzZW5kQWN0aXZhdGlvbjogdGhpcy5zZW5kQWN0aXZhdGlvbkNvbnRyb2wudmFsdWUgPz8gdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnJlc3VsdHMuc2V0KHJlcyk7XG4gICAgICAgICAgLy8gUmVmcmVzY2FyIGxpc3RhIGRlbCBjb25zdW1lciBzaSBodWJvIGFsdGFzL2FzaWduYWNpb25lcyBlZmVjdGl2YXMuXG4gICAgICAgICAgaWYgKHJlcy5zdW1tYXJ5LmNyZWF0ZWQgKyByZXMuc3VtbWFyeS5hc3NpZ25lZCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub25TdWNjZXNzPy4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXR1c0xhYmVsKHI6IEltcG9ydFJvd1Jlc3VsdCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMudChyLnN0YXR1cyA9PT0gJ2Vycm9yJyA/ICdmYWlsZWQnIDogci5zdGF0dXMpO1xuICAgIGlmIChyLnN0YXR1cyA9PT0gJ2NyZWF0ZWQnICYmIHIuYWN0aXZhdGlvbikge1xuICAgICAgcmV0dXJuIGAke2Jhc2V9IMK3ICR7dGhpcy50KHIuYWN0aXZhdGlvbiA9PT0gJ3NlbnQnID8gJ2FjdGl2YXRpb25TZW50JyA6ICdhY3RpdmF0aW9uUGVuZGluZycpfWA7XG4gICAgfVxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jc3YgPSAnJztcbiAgICB0aGlzLmZpbGVOYW1lLnNldCgnJyk7XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuICAgIHRoaXMucmVzdWx0cy5zZXQobnVsbCk7XG4gICAgdGhpcy5pbXBvcnRNb2RlLnNldCgnZmlsZScpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
|
|
480
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLWltcG9ydC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbWJlci1pbXBvcnQtbW9kYWwvbWVtYmVyLWltcG9ydC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsR0FDWCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFpQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBTUwsZ0JBQWdCLEdBQ2pCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUV0RSxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBRWpELFFBQVEsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztBQUV0RDs7Ozs7Ozs7R0FRRztBQTJUSCxNQUFNLE9BQU8sMEJBQTBCO0lBdUVyQztRQXRFUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsOEJBQThCO1FBQ3JCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFcEIsNkRBQTZEO1FBQ3BELG1CQUFjLEdBQWMsRUFBRSxDQUFDO1FBUXhDLHNCQUFzQjtRQUNiLGtCQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFFM0MsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUVBLGVBQVUsR0FBRyxNQUFNLENBQW1CLE1BQU0sQ0FBQyxDQUFDO1FBRTlDLHNCQUFpQixHQUFHLElBQUksV0FBVyxDQUFTLFlBQVksQ0FBQyxDQUFDO1FBQzFELDBCQUFxQixHQUFHLElBQUksV0FBVyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRXZELHdCQUFtQixHQUFHLFFBQVEsQ0FBeUIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFnQztZQUM5QyxLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1lBQ3RDLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtZQUN0QixLQUFLLEVBQUUsZUFBZSxDQUFDLE9BQU87WUFDOUIsT0FBTyxFQUFFO2dCQUNQLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7Z0JBQzlELEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO2dCQUN0RCxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTthQUN6RDtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUssd0JBQW1CLEdBQUcsUUFBUSxDQUNyQyxHQUFHLEVBQUUsQ0FDSCxDQUFDO1lBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBb0M7WUFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFDL0IsSUFBSSxFQUFFLFNBQVMsQ0FBQyxLQUFLO1lBQ3JCLEtBQUssRUFBRSxlQUFlLENBQUMsT0FBTztZQUM5QixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFrQixDQUN0QixDQUFDO1FBRU8sZUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixhQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLFlBQU8sR0FBRyxNQUFNLENBQStCLElBQUksQ0FBQyxDQUFDO1FBQzlELHFFQUFxRTtRQUM1RCxhQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXRCLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRixPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBRU0saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQ3RGLFVBQVUsQ0FDWCxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztRQUdELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsY0FBYyxDQUFDLEtBQVk7UUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsa0ZBQWtGO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCx5RUFBeUU7SUFDakUsUUFBUTtRQUNkLE1BQU0sSUFBSSxHQUFvQixFQUFFLENBQUM7UUFDakMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSTtnQkFBRSxTQUFTO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDaEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUMsc0RBQXNEO1lBQ3RELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxTQUFTO1lBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN4QyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVO2FBQ1osYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDekIsS0FBSztZQUNMLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFxQjtZQUM5RSxjQUFjLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssSUFBSSxJQUFJO1NBQ3pELENBQUM7YUFDRCxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixxRUFBcUU7Z0JBQ3JFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ25ELElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNyQixDQUFDO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQWtCO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNDLE9BQU8sR0FBRyxJQUFJLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELENBQUMsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7K0dBeEtVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGlPQXRTM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBJVCxpM0ZBMUpDLFdBQVcsOFZBQ1gsbUJBQW1CLCtCQUNuQixTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSw4RUFDVixTQUFTLG9QQUNULFVBQVUsd0tBQ1YsV0FBVyxpYUFDWCxVQUFVLHlHQUNWLE9BQU8sMkpBQ1AsZ0JBQWdCLDJFQUNoQixhQUFhLHdFQUNiLGNBQWMseUVBQ2QsdUJBQXVCLDBGQUN2QixtQkFBbUI7OzRGQXdTViwwQkFBMEI7a0JBMVR0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLG1CQUFtQjtxQkFDcEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMElUO3dEQWlLUSxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uVGV4dGFyZWEsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjbG91ZFVwbG9hZE91dGxpbmUsIGRvY3VtZW50VGV4dE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcywgSW5wdXRNZXRhZGF0YSwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgT3JnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9vcmcuc2VydmljZSc7XG5pbXBvcnQge1xuICBJbXBvcnRNZW1iZXJzUmVzcG9uc2UsXG4gIEltcG9ydE9uQ29uZmxpY3QsXG4gIEltcG9ydFJvd1Jlc3VsdCxcbiAgSW1wb3J0VXNlclJvdyxcbiAgT3JnUm9sZSxcbiAgcmVzb2x2ZVJvbGVMYWJlbCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcblxuaW1wb3J0IHsgTUVNQkVSX0lNUE9SVF9NT0RBTF9JMThOIH0gZnJvbSAnLi9tZW1iZXItaW1wb3J0LW1vZGFsLmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5JbXBvcnRNb2RhbCc7XG5cbmFkZEljb25zKHsgY2xvdWRVcGxvYWRPdXRsaW5lLCBkb2N1bWVudFRleHRPdXRsaW5lIH0pO1xuXG4vKipcbiAqIGB2YWwtbWVtYmVyLWltcG9ydC1tb2RhbGAg4oCUIHBhbmVsIGRlIGNhcmdhIG1hc2l2YSBkZSBtaWVtYnJvcyAoQURSLTAyMyBmYXNlIDYpLlxuICpcbiAqIEVsIGFkbWluIHBlZ2EgdW4gQ1NWIChgZW1haWwsbm9tYnJlLHJvbGApOyBlbCBtb2RhbCBsbyBwYXJzZWEgYSBmaWxhcyB5IGxsYW1hXG4gKiBgT3JnU2VydmljZS5pbXBvcnRNZW1iZXJzYC4gTXVlc3RyYSBlbCByZXN1bHRhZG8gcG9yLWZpbGEgKHBhcnRpYWwgc3VjY2Vzcyk6XG4gKiBgY3JlYXRlZGAgLyBgYXNzaWduZWRgIC8gYHNraXBwZWRgIC8gYGVycm9yYC4gSGVhZGVyIGNhbsOzbmljbyAoUmVnbGEgIzUpLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGBTZXR0aW5ncy5JbXBvcnRNb2RhbGAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1tZW1iZXItaW1wb3J0LW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25UZXh0YXJlYSxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIENoZWNrSW5wdXRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdzdWJ0aXRsZScpLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuXG4gICAgICBAaWYgKCFyZXN1bHRzKCkpIHtcbiAgICAgICAgQGlmIChyb2xlc0hpbnQoKSkge1xuICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgY2xhc3M9XCJpbXBvcnQtcm9sZXMtaGludFwiXG4gICAgICAgICAgICBbcHJvcHNdPVwieyBjb250ZW50OiByb2xlc0hpbnQoKSwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdtZWRpdW0nLCBib2xkOiBmYWxzZSB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBTZWxlY3RvciBkZSBtw6l0b2RvIGRlIGltcG9ydGFjacOzbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCdpbXBvcnRNZXRob2RMYWJlbCcpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBib2xkOiB0cnVlIH1cIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRzXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImltcG9ydC1tZXRob2QtY2FyZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5pbXBvcnQtbWV0aG9kLWNhcmQtLWFjdGl2ZV09XCJpbXBvcnRNb2RlKCkgPT09ICdmaWxlJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJpbXBvcnRNb2RlLnNldCgnZmlsZScpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG91ZC11cGxvYWQtb3V0bGluZVwiIGNsYXNzPVwiaW1wb3J0LW1ldGhvZC1jYXJkX19pY29uXCIgLz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRfX3RpdGxlXCI+e3sgdCgnaW1wb3J0TWV0aG9kRmlsZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltcG9ydC1tZXRob2QtY2FyZF9faGludFwiPnt7IHQoJ2ltcG9ydE1ldGhvZEZpbGVIaW50JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW1wb3J0LW1ldGhvZC1jYXJkXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmltcG9ydC1tZXRob2QtY2FyZC0tYWN0aXZlXT1cImltcG9ydE1vZGUoKSA9PT0gJ3Bhc3RlJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJpbXBvcnRNb2RlLnNldCgncGFzdGUnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG9jdW1lbnQtdGV4dC1vdXRsaW5lXCIgY2xhc3M9XCJpbXBvcnQtbWV0aG9kLWNhcmRfX2ljb25cIiAvPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltcG9ydC1tZXRob2QtY2FyZF9fdGl0bGVcIj57eyB0KCdpbXBvcnRNZXRob2RQYXN0ZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltcG9ydC1tZXRob2QtY2FyZF9faGludFwiPnt7IHQoJ2ltcG9ydE1ldGhvZFBhc3RlSGludCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gU3ViaWRhIGRlIGFyY2hpdm8gKGxhYmVsIHRyaWNrIOKAlCBnZXN0byBjb25maWFibGUgZW4gaU9TL1BXQSkgLS0+XG4gICAgICAgIEBpZiAoaW1wb3J0TW9kZSgpID09PSAnZmlsZScpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImltcG9ydC11cGxvYWRfX2J0blwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3VkLXVwbG9hZC1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgndXBsb2FkRmlsZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBhY2NlcHQ9XCIuY3N2LHRleHQvY3N2LHRleHQvcGxhaW5cIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIEBpZiAoZmlsZU5hbWUoKSkge1xuICAgICAgICAgICAgICA8cCBjbGFzcz1cImltcG9ydC1maWxlLWxvYWRlZFwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2ZpbGVMb2FkZWQnKS5yZXBsYWNlKCd7bmFtZX0nLCBmaWxlTmFtZSgpKSB9fVxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFBlZ2FyIENTViAtLT5cbiAgICAgICAgQGlmIChpbXBvcnRNb2RlKCkgPT09ICdwYXN0ZScpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxpb24tdGV4dGFyZWFcbiAgICAgICAgICAgICAgY2xhc3M9XCJpbXBvcnQtY3N2XCJcbiAgICAgICAgICAgICAgW2F1dG9Hcm93XT1cInRydWVcIlxuICAgICAgICAgICAgICBbcm93c109XCI2XCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoJ2NzdlBsYWNlaG9sZGVyJylcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNzdlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBTaSBodWJvIGNhcmdhIGRlIGFyY2hpdm8sIG1vc3RyYXIgdGV4dGFyZWEgZGUgc29sbyBsZWN0dXJhIHBhcmEgcmV2aXNhciAtLT5cbiAgICAgICAgQGlmIChpbXBvcnRNb2RlKCkgPT09ICdmaWxlJyAmJiBjc3YpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxpb24tdGV4dGFyZWEgY2xhc3M9XCJpbXBvcnQtY3N2XCIgW2F1dG9Hcm93XT1cInRydWVcIiBbcm93c109XCI0XCIgW3JlYWRvbmx5XT1cInRydWVcIiBbdmFsdWVdPVwiY3N2XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gQ29uZmxpY3RvOiBzZWxlY3QgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbXBvcnQtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogdCgnb25Db25mbGljdExhYmVsJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IHRydWUgfVwiIC8+XG4gICAgICAgICAgPHZhbC1zZWxlY3QtaW5wdXQgW3Byb3BzXT1cImNvbmZsaWN0U2VsZWN0UHJvcHMoKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQWN0aXZhY2nDs246IHZhbC1jaGVjay1pbnB1dCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC1jaGVjay1pbnB1dCBbcHJvcHNdPVwic2VuZEFjdGl2YXRpb25Qcm9wcygpXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChlcnJvck1zZygpKSB7XG4gICAgICAgICAgPHAgY2xhc3M9XCJpbXBvcnQtZXJyb3JcIj57eyBlcnJvck1zZygpIH19PC9wPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1hY3Rpb25zXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRpbmcoKVwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxuICAgICAgICAgICAgQGlmIChzdWJtaXR0aW5nKCkpIHtcbiAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCIgLz5cbiAgICAgICAgICAgICAgJm5ic3A7e3sgdCgnc3VibWl0dGluZycpIH19XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAge3sgdCgnc3VibWl0JykgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDwhLS0gUmVzdWx0YWRvcyAtLT5cbiAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBjb250ZW50OiBzdW1tYXJ5TGFiZWwoKSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiB0cnVlIH1cIiAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LXJlc3VsdHNcIj5cbiAgICAgICAgICBAZm9yIChyIG9mIHJlc3VsdHMoKSEucmVzdWx0czsgdHJhY2sgci5lbWFpbCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltcG9ydC1yb3cgaW1wb3J0LXJvdy0te3sgci5zdGF0dXMgfX1cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbXBvcnQtcm93X19lbWFpbFwiPnt7IHIuZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1wb3J0LXJvd19fc3RhdHVzXCI+e3sgc3RhdHVzTGFiZWwocikgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoci5yZWFzb24pIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltcG9ydC1yb3dfX3JlYXNvblwiPnt7IHIucmVhc29uIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1wb3J0LWFjdGlvbnNcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJyZXNldCgpXCI+XG4gICAgICAgICAgICB7eyB0KCdhZ2FpbicpIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNsb3NlLWJvdHRvbVwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvaW9uLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIHZhbC1kaXNwbGF5IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIH1cbiAgICAgIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXJvbGVzLWhpbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXNlY3Rpb24gdmFsLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtbWV0aG9kLWNhcmRzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0LXNoYWRlLCAjZDdkOGRhKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLFxuICAgICAgICAgIGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtbWV0aG9kLWNhcmQ6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtbWV0aG9kLWNhcmQtLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICM3MDI2ZGYpIDYlLCB2YXIoLS1pb24tY29sb3ItbGlnaHQpKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtbWV0aG9kLWNhcmRfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsICM2YjZlNzYpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkLS1hY3RpdmUgLmltcG9ydC1tZXRob2QtY2FyZF9faWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzcwMjZkZik7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LW1ldGhvZC1jYXJkX19oaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgfVxuICAgICAgLmltcG9ydC11cGxvYWRfX2J0biB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtdXBsb2FkX19idG46aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtdXBsb2FkX19idG4gaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXVwbG9hZF9fYnRuIGlucHV0W3R5cGU9J2ZpbGUnXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LWZpbGUtbG9hZGVkIHtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLXNoYWRlLCAjNmI2ZTc2KTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtY3N2IHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gICAgICB9XG4gICAgICAuaW1wb3J0LWVycm9yIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICB9XG4gICAgICAubW9kYWwtY2xvc2UtYm90dG9tIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgYXV0bztcbiAgICAgICAgZ3JpZC1yb3ctZ2FwOiAycHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yb3ctLWNyZWF0ZWQge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXN1Y2Nlc3MsICMyZGQzNmYpO1xuICAgICAgfVxuICAgICAgLmltcG9ydC1yb3ctLWFzc2lnbmVkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjNzAyNmRmKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93LS1za2lwcGVkIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93LS1lcnJvciB7XG4gICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjYzAzOTJiKTtcbiAgICAgIH1cbiAgICAgIC5pbXBvcnQtcm93X19lbWFpbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXJvd19fc3RhdHVzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyay1zaGFkZSwgIzZiNmU3Nik7XG4gICAgICB9XG4gICAgICAuaW1wb3J0LXJvd19fcmVhc29uIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhbmdlciwgI2MwMzkyYik7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVtYmVySW1wb3J0TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG5cbiAgLyoqIE9yZyBkZXN0aW5vIGRlbCBpbXBvcnQuICovXG4gIEBJbnB1dCgpIG9yZ0lkID0gJyc7XG5cbiAgLyoqIE5vbWJyZXMgZGUgcm9sZXMgZGlzcG9uaWJsZXMgKHBhcmEgZWwgaGludCkuIE9wY2lvbmFsLiAqL1xuICBASW5wdXQoKSBhdmFpbGFibGVSb2xlczogT3JnUm9sZVtdID0gW107XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW5hIGltcG9ydGFjacOzbiBleGl0b3NhICjiiaUxIGZpbGEgcHJvY2VzYWRhKSDigJQgcmVmcmVzY2EgbGEgbGlzdGEuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYC4gKi9cbiAgQElucHV0KCkgX21vZGFsUmVmPzogeyBkaXNtaXNzOiAoZGF0YT86IHVua25vd24sIHJvbGU/OiBzdHJpbmcpID0+IHZvaWQgfTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4uICovXG4gIEBJbnB1dCgpIGkxOG5OYW1lc3BhY2UgPSBERUZBVUxUX05BTUVTUEFDRTtcblxuICBjc3YgPSAnJztcblxuICByZWFkb25seSBpbXBvcnRNb2RlID0gc2lnbmFsPCdmaWxlJyB8ICdwYXN0ZSc+KCdmaWxlJyk7XG5cbiAgcmVhZG9ubHkgb25Db25mbGljdENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignYXNzaWduUm9sZScpO1xuICByZWFkb25seSBzZW5kQWN0aXZhdGlvbkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgY29uZmxpY3RTZWxlY3RQcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgY29udHJvbDogdGhpcy5vbkNvbmZsaWN0Q29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICBsYWJlbDogJycsXG4gICAgcGxhY2Vob2xkZXI6IHRoaXMudCgnb25Db25mbGljdExhYmVsJyksXG4gICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyBpZDogJ2Fzc2lnblJvbGUnLCBuYW1lOiB0aGlzLnQoJ2NvbmZsaWN0QXNzaWduJyksIG9yZGVyOiAwIH0sXG4gICAgICB7IGlkOiAnc2tpcCcsIG5hbWU6IHRoaXMudCgnY29uZmxpY3RTa2lwJyksIG9yZGVyOiAxIH0sXG4gICAgICB7IGlkOiAnZXJyb3InLCBuYW1lOiB0aGlzLnQoJ2NvbmZsaWN0RXJyb3InKSwgb3JkZXI6IDIgfSxcbiAgICBdLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgc2VuZEFjdGl2YXRpb25Qcm9wcyA9IGNvbXB1dGVkKFxuICAgICgpID0+XG4gICAgICAoe1xuICAgICAgICBjb250cm9sOiB0aGlzLnNlbmRBY3RpdmF0aW9uQ29udHJvbCBhcyBGb3JtQ29udHJvbCxcbiAgICAgICAgbGFiZWw6IHRoaXMudCgnc2VuZEFjdGl2YXRpb24nKSxcbiAgICAgICAgdHlwZTogSW5wdXRUeXBlLkNIRUNLLFxuICAgICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICAgIGxhYmVsUGxhY2VtZW50OiAnZW5kJyxcbiAgICAgIH0pIGFzIElucHV0TWV0YWRhdGFcbiAgKTtcblxuICByZWFkb25seSBzdWJtaXR0aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZXJyb3JNc2cgPSBzaWduYWwoJycpO1xuICByZWFkb25seSByZXN1bHRzID0gc2lnbmFsPEltcG9ydE1lbWJlcnNSZXNwb25zZSB8IG51bGw+KG51bGwpO1xuICAvKiogTm9tYnJlIGRlbCBhcmNoaXZvIENTViBjYXJnYWRvICh2YWPDrW8gc2kgc2UgcGVnw7MgbWFudWFsbWVudGUpLiAqL1xuICByZWFkb25seSBmaWxlTmFtZSA9IHNpZ25hbCgnJyk7XG5cbiAgcmVhZG9ubHkgcm9sZXNIaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5hdmFpbGFibGVSb2xlcy5sZW5ndGgpIHJldHVybiAnJztcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBuYW1lcyA9IHRoaXMuYXZhaWxhYmxlUm9sZXMubWFwKHIgPT4gcmVzb2x2ZVJvbGVMYWJlbChyLCBsYW5nKSkuam9pbignLCAnKTtcbiAgICByZXR1cm4gYCR7dGhpcy50KCdyb2xlc0F2YWlsYWJsZScpfSAke25hbWVzfWA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHN1bW1hcnlMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzID0gdGhpcy5yZXN1bHRzKCk/LnN1bW1hcnk7XG4gICAgaWYgKCFzKSByZXR1cm4gdGhpcy50KCdzdW1tYXJ5Jyk7XG4gICAgcmV0dXJuIGAke3RoaXMudCgnc3VtbWFyeScpfTogJHtzLmNyZWF0ZWR9ICR7dGhpcy50KCdjcmVhdGVkJyl9IMK3ICR7cy5hc3NpZ25lZH0gJHt0aGlzLnQoXG4gICAgICAnYXNzaWduZWQnXG4gICAgKX0gwrcgJHtzLnNraXBwZWR9ICR7dGhpcy50KCdza2lwcGVkJyl9IMK3ICR7cy5mYWlsZWR9ICR7dGhpcy50KCdmYWlsZWQnKX1gO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgTUVNQkVSX0lNUE9SVF9NT0RBTF9JMThOKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKHRoaXMuaTE4bk5hbWVzcGFjZSwgTUVNQkVSX0lNUE9SVF9NT0RBTF9JMThOKTtcbiAgfVxuXG4gIC8qKiBDYXJnYSB1biBhcmNoaXZvIENTViBzZWxlY2Npb25hZG86IGxlZSBzdSB0ZXh0byBhbCB0ZXh0YXJlYSAoYGNzdmApLiAqL1xuICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlcz8uWzBdO1xuICAgIGlmICghZmlsZSkgcmV0dXJuO1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICB0aGlzLmNzdiA9IFN0cmluZyhyZWFkZXIucmVzdWx0ID8/ICcnKTtcbiAgICAgIHRoaXMuZmlsZU5hbWUuc2V0KGZpbGUubmFtZSk7XG4gICAgfTtcbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgnZmlsZVJlYWRFcnJvcicpKTtcbiAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICAvLyBQZXJtaXRlIHJlLXNlbGVjY2lvbmFyIGVsIG1pc21vIGFyY2hpdm8gKGVsIGNoYW5nZSBubyBkaXNwYXJhIHNpIG5vIHNlIGxpbXBpYSkuXG4gICAgaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIC8qKiBQYXJzZWEgZWwgQ1NWIHBlZ2FkbyBhIGZpbGFzIHtlbWFpbCxuYW1lLHJvbGVOYW1lfS4gVG9sZXJhIGhlYWRlci4gKi9cbiAgcHJpdmF0ZSBwYXJzZUNzdigpOiBJbXBvcnRVc2VyUm93W10ge1xuICAgIGNvbnN0IHJvd3M6IEltcG9ydFVzZXJSb3dbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcmF3IG9mIHRoaXMuY3N2LnNwbGl0KC9cXHI/XFxuLykpIHtcbiAgICAgIGNvbnN0IGxpbmUgPSByYXcudHJpbSgpO1xuICAgICAgaWYgKCFsaW5lKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IGNvbHMgPSBsaW5lLnNwbGl0KCcsJykubWFwKGMgPT4gYy50cmltKCkpO1xuICAgICAgY29uc3QgZW1haWwgPSAoY29sc1swXSA/PyAnJykudG9Mb3dlckNhc2UoKTtcbiAgICAgIC8vIFNhbHRhciBoZWFkZXIgKHByaW1lcmEgY29sIFwiZW1haWxcIikgbyBsw61uZWFzIHNpbiBALlxuICAgICAgaWYgKCFlbWFpbCB8fCAhZW1haWwuaW5jbHVkZXMoJ0AnKSkgY29udGludWU7XG4gICAgICByb3dzLnB1c2goeyBlbWFpbCwgbmFtZTogY29sc1sxXSA/PyAnJywgcm9sZU5hbWU6IGNvbHNbMl0gPz8gJycgfSk7XG4gICAgfVxuICAgIHJldHVybiByb3dzO1xuICB9XG5cbiAgc3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNc2cuc2V0KCcnKTtcbiAgICBjb25zdCB1c2VycyA9IHRoaXMucGFyc2VDc3YoKTtcbiAgICBpZiAodXNlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9yTXNnLnNldCh0aGlzLnQoJ25vUm93cycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHVzZXJzLnNvbWUodSA9PiAhdS5yb2xlTmFtZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KHRoaXMudCgncGFyc2VFcnJvcicpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmltcG9ydE1lbWJlcnModGhpcy5vcmdJZCwge1xuICAgICAgICB1c2VycyxcbiAgICAgICAgb25Db25mbGljdDogKHRoaXMub25Db25mbGljdENvbnRyb2wudmFsdWUgPz8gJ2Fzc2lnblJvbGUnKSBhcyBJbXBvcnRPbkNvbmZsaWN0LFxuICAgICAgICBzZW5kQWN0aXZhdGlvbjogdGhpcy5zZW5kQWN0aXZhdGlvbkNvbnRyb2wudmFsdWUgPz8gdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLnJlc3VsdHMuc2V0KHJlcyk7XG4gICAgICAgICAgLy8gUmVmcmVzY2FyIGxpc3RhIGRlbCBjb25zdW1lciBzaSBodWJvIGFsdGFzL2FzaWduYWNpb25lcyBlZmVjdGl2YXMuXG4gICAgICAgICAgaWYgKHJlcy5zdW1tYXJ5LmNyZWF0ZWQgKyByZXMuc3VtbWFyeS5hc3NpZ25lZCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub25TdWNjZXNzPy4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuc3VibWl0dGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNc2cuc2V0KGVycj8uZXJyb3I/Lm1lc3NhZ2UgPz8gdGhpcy50KCdnZW5lcmljRXJyb3InKSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXR1c0xhYmVsKHI6IEltcG9ydFJvd1Jlc3VsdCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMudChyLnN0YXR1cyA9PT0gJ2Vycm9yJyA/ICdmYWlsZWQnIDogci5zdGF0dXMpO1xuICAgIGlmIChyLnN0YXR1cyA9PT0gJ2NyZWF0ZWQnICYmIHIuYWN0aXZhdGlvbikge1xuICAgICAgcmV0dXJuIGAke2Jhc2V9IMK3ICR7dGhpcy50KHIuYWN0aXZhdGlvbiA9PT0gJ3NlbnQnID8gJ2FjdGl2YXRpb25TZW50JyA6ICdhY3RpdmF0aW9uUGVuZGluZycpfWA7XG4gICAgfVxuICAgIHJldHVybiBiYXNlO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jc3YgPSAnJztcbiAgICB0aGlzLmZpbGVOYW1lLnNldCgnJyk7XG4gICAgdGhpcy5lcnJvck1zZy5zZXQoJycpO1xuICAgIHRoaXMucmVzdWx0cy5zZXQobnVsbCk7XG4gICAgdGhpcy5pbXBvcnRNb2RlLnNldCgnZmlsZScpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=
|
|
@@ -382,7 +382,7 @@ export class MenuComponent {
|
|
|
382
382
|
[attr.aria-pressed]="isDesktopCollapsed()"
|
|
383
383
|
(click)="toggleDesktopCollapse()"
|
|
384
384
|
>
|
|
385
|
-
<ion-icon color="
|
|
385
|
+
<ion-icon color="medium" slot="icon-only" [name]="desktopCollapseIcon()"></ion-icon>
|
|
386
386
|
</ion-button>
|
|
387
387
|
</div>
|
|
388
388
|
}
|
|
@@ -490,7 +490,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
490
490
|
[attr.aria-pressed]="isDesktopCollapsed()"
|
|
491
491
|
(click)="toggleDesktopCollapse()"
|
|
492
492
|
>
|
|
493
|
-
<ion-icon color="
|
|
493
|
+
<ion-icon color="medium" slot="icon-only" [name]="desktopCollapseIcon()"></ion-icon>
|
|
494
494
|
</ion-button>
|
|
495
495
|
</div>
|
|
496
496
|
}
|
|
@@ -530,4 +530,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
530
530
|
type: HostListener,
|
|
531
531
|
args: ['document:pointerup', ['$event']]
|
|
532
532
|
}] } });
|
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWlISCxNQUFNLE9BQU8sYUFBYTtJQS9HMUI7UUFnSFUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXpELDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxzQkFBc0I7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNW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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQsb3RFQXhHQyxZQUFZLCtCQUNaLE9BQU8sa0pBQ1AsVUFBVSw4RUFDVixhQUFhLDBGQUNiLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSx3S0FDVixjQUFjLHlFQUNkLGVBQWU7OzRGQWlHTixhQUFhO2tCQS9HekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQ7OEJBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFnQ04sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVkvQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUg3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblRvb2xiYXIsXG4gIE1lbnVDb250cm9sbGVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtbWVudVxuICpcbiAqIEEgc2lkZSBtZW51IGNvbXBvbmVudCB1c2luZyBJb25pYyBJb25NZW51IHdpdGggY3VzdG9taXphYmxlIGxvZ28sXG4gKiBjbG9zZSBidXR0b24sIGFuZCBjb250ZW50IHByb2plY3Rpb24gZm9yIG1lbnUgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbWVudVxuICogICBbcHJvcHNdPVwie1xuICogICAgIGlkOiAnbWFpbi1tZW51JyxcbiAqICAgICBjb250ZW50SWQ6ICdtYWluLWNvbnRlbnQnLFxuICogICAgIHNpZGU6ICdzdGFydCcsXG4gKiAgICAgdHlwZTogJ292ZXJsYXknLFxuICogICAgIHN3aXBlOiB0cnVlLFxuICogICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogICB9XCJcbiAqID5cbiAqICAgPHZhbC1saW5rcy1hY2NvcmRpb24gW3Byb3BzXT1cIm1lbnVMaW5rc1wiPjwvdmFsLWxpbmtzLWFjY29yZGlvbj5cbiAqIDwvdmFsLW1lbnU+XG4gKlxuICogPGlvbi1yb3V0ZXItb3V0bGV0IGlkPVwibWFpbi1jb250ZW50XCI+PC9pb24tcm91dGVyLW91dGxldD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBNZW51IGNvbmZpZ3VyYXRpb25cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTWVudSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQ29udGVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tZW51XG4gICAgICBbbWVudUlkXT1cInByb3BzLmlkXCJcbiAgICAgIFtjb250ZW50SWRdPVwicHJvcHMuY29udGVudElkXCJcbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ292ZXJsYXknXCJcbiAgICAgIFtzaWRlXT1cInByb3BzLnNpZGUgfHwgJ3N0YXJ0J1wiXG4gICAgICBbc3dpcGVHZXN0dXJlXT1cInByb3BzLnN3aXBlICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuaXMtZGVza3RvcC1jb2xsYXBzaWJsZV09XCJyZXRyYWN0YWJsZU1lbnVFbmFibGVkKClcIlxuICAgICAgW2NsYXNzLmlzLWRlc2t0b3AtY29sbGFwc2VkXT1cImlzRGVza3RvcENvbGxhcHNlZCgpXCJcbiAgICAgIFtzdHlsZS4tLXZhbC1tZW51LWV4cGFuZGVkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8IG51bGxcIlxuICAgICAgW3N0eWxlLi0tdmFsLW1lbnUtY29sbGFwc2VkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCBudWxsXCJcbiAgICA+XG4gICAgICA8IS0tIEVkZ2UgaW5kaWNhdG9yOiB0aGluIGxpbmUgb24gcmlnaHQgZWRnZSwgY2xpY2sgb3Igc3dpcGUgdG8gY29sbGFwc2UvZXhwYW5kIC0tPlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWVudS1lZGdlLXN3aXBlLWluZGljYXRvclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbkVkZ2VQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwidG9nZ2xlRGVza3RvcENvbGxhcHNlKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IC41cmVtO1wiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvLW1pbmknLFxuICAgICAgICAgICAgICAgIGFsdDogJ21lbnUgbG9nbycsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlIGNsYXNzPVwibWVudS1tb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtcHJvamVjdGVkLWNvbnRlbnRcIlxuICAgICAgICAgICh2YWxNZW51RXhwYW5kUmVxdWVzdCk9XCJleHBhbmREZXNrdG9wUmFpbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29sbGFwc2UtZm9vdGVyXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jb2xsYXBzZS10b2dnbGVcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNEZXNrdG9wQ29sbGFwc2VkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJkYXJrXCIgc2xvdD1cImljb24tb25seVwiIFtuYW1lXT1cImRlc2t0b3BDb2xsYXBzZUljb24oKVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBpZiAocHJvcHMuc2hvd0Nsb3NlQnV0dG9uKSB7XG4gICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJtZW51LWNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHRleHQ6IGNsb3NlQnV0dG9uVGV4dCgpLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgaWNvbjoge1xuICAgICAgICAgICAgICBuYW1lOiAnY2xvc2Utb3V0bGluZScsXG4gICAgICAgICAgICAgIHNsb3Q6ICdzdGFydCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChvbkNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA8L2lvbi1tZW51PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgbWVudUN0cmwgPSBpbmplY3QoTWVudUNvbnRyb2xsZXIpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHNwbGl0UGFuZT86IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIHNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRGVza3RvcENvbGxhcHNlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLy8gRWRnZS1zd2lwZSB0cmFja2luZ1xuICBwcml2YXRlIHRvdWNoU3RhcnRYID0gMDtcbiAgcHJpdmF0ZSB0b3VjaFN0YXJ0VGltZSA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgRURHRV9TV0lQRV9USFJFU0hPTEQgPSAyMDsgLy8gcHggZnJvbSBsZWZ0IGVkZ2VcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fU1dJUEVfRElTVEFOQ0UgPSA4MDsgLy8gcHggdG8gdHJpZ2dlclxuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9TV0lQRV9EVVJBVElPTiA9IDUwMDsgLy8gbXNcblxuICAvKipcbiAgICogTWVudSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IE1lbnVNZXRhZGF0YSA9IHtcbiAgICBzaWRlOiAnc3RhcnQnLFxuICAgIHR5cGU6ICdvdmVybGF5JyxcbiAgICBzd2lwZTogdHJ1ZSxcbiAgfTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgcHJvcHNDaGFuZ2UgPSBjaGFuZ2VzWydwcm9wcyddO1xuICAgIGlmICghcHJvcHNDaGFuZ2UpIHJldHVybjtcblxuICAgIGNvbnN0IHByZXZpb3VzID0gcHJvcHNDaGFuZ2UucHJldmlvdXNWYWx1ZSBhcyBNZW51TWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQuc2V0KGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgcHJvcHNDaGFuZ2UuZmlyc3RDaGFuZ2UgfHxcbiAgICAgIHByZXZpb3VzPy5kZXNrdG9wQ29sbGFwc2VkICE9PSB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWQgfHxcbiAgICAgIHByZXZpb3VzPy5yZXRyYWN0YWJsZU1lbnUgIT09IHRoaXMucHJvcHMucmV0cmFjdGFibGVNZW51XG4gICAgKSB7XG4gICAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoISF0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWQpO1xuICAgIH1cbiAgICB0aGlzLnN5bmNTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3RvcmVTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gIG9uVG91Y2hTdGFydChldmVudDogVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkgfHwgZXZlbnQudG91Y2hlcy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICBjb25zdCB0b3VjaCA9IGV2ZW50LnRvdWNoZXNbMF07XG4gICAgLy8gU29sbyBkZXRlY3RhciBkZXNkZSBib3JkZSBpenF1aWVyZG9cbiAgICBpZiAodG91Y2guY2xpZW50WCA8PSB0aGlzLkVER0VfU1dJUEVfVEhSRVNIT0xEKSB7XG4gICAgICB0aGlzLnRvdWNoU3RhcnRYID0gdG91Y2guY2xpZW50WDtcbiAgICAgIHRoaXMudG91Y2hTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoZW5kJywgWyckZXZlbnQnXSlcbiAgb25Ub3VjaEVuZChldmVudDogVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkgfHwgdGhpcy50b3VjaFN0YXJ0WCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2hhbmdlZFRvdWNoID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07XG4gICAgY29uc3QgdG91Y2hFbmRYID0gY2hhbmdlZFRvdWNoLmNsaWVudFg7XG4gICAgY29uc3QgZGlzdGFuY2UgPSB0b3VjaEVuZFggLSB0aGlzLnRvdWNoU3RhcnRYO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHRoaXMudG91Y2hTdGFydFRpbWU7XG5cbiAgICAvLyBWYWxpZGFyOiBzd2lwZSBoYWNpYSBsYSBkZXJlY2hhLCBkaXN0YW5jaWEgbcOtbmltYSwgZHVyYWNpw7NuIG3DoXhpbWFcbiAgICBpZiAoZGlzdGFuY2UgPj0gdGhpcy5NSU5fU1dJUEVfRElTVEFOQ0UgJiYgZHVyYXRpb24gPD0gdGhpcy5NQVhfU1dJUEVfRFVSQVRJT04pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpO1xuICAgIH1cblxuICAgIHRoaXMudG91Y2hTdGFydFggPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGJ1dHRvbiB0ZXh0IC0gcmVhY3RpdmUgdG8gbGFuZ3VhZ2UgY2hhbmdlcy5cbiAgICovXG4gIGNsb3NlQnV0dG9uVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpOyAvLyBUcmFjayBsYW5ndWFnZSBjaGFuZ2VzXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2xvc2VCdXR0b25UZXh0IHx8IHRoaXMuaTE4bi50KCdjbG9zZScpO1xuICB9KTtcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtZW51LlxuICAgKi9cbiAgYXN5bmMgY2xvc2VNZW51KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWVudUN0cmwuY2xvc2UodGhpcy5wcm9wcy5pZCk7XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kZSBlbCByYWlsIGEgcGVkaWRvIGRlIGxvIHF1ZSBlc3TDoSBwcm95ZWN0YWRvIGFkZW50cm8uIFVuYSBzZWNjacOzbiBxdWVcbiAgICogc29sbyBhZ3J1cGEgaGlqb3Mgbm8gcHVlZGUgZGVzcGxlZ2Fyc2UgZW4gNTZweCwgYXPDrSBxdWUgcGlkZSBsdWdhciBlbiB2ZXpcbiAgICogZGUgbm8gaGFjZXIgbmFkYS5cbiAgICovXG4gIGV4cGFuZERlc2t0b3BSYWlsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkgfHwgIXRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkpIHJldHVybjtcbiAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICB0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnVwZGF0ZShjb2xsYXBzZWQgPT4gIWNvbGxhcHNlZCk7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIHJldHJhY3RhYmxlTWVudUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMucmV0cmFjdGFibGVNZW51ID8/IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNpYmxlKTtcbiAgfVxuXG4gIGRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKClcbiAgICAgID8gdGhpcy5wcm9wcy5kZXNrdG9wRXhwYW5kTGFiZWwgfHwgJ0V4cGFuZGlyIG1lbsO6J1xuICAgICAgOiB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZUxhYmVsIHx8ICdDb250cmFlciBtZW7Duic7XG4gIH1cblxuICBkZXNrdG9wQ29sbGFwc2VJY29uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaXNFbmQgPSB0aGlzLnByb3BzLnNpZGUgPT09ICdlbmQnO1xuICAgIGlmICh0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpKSB7XG4gICAgICByZXR1cm4gaXNFbmQgPyAnY2hldnJvbi1iYWNrLWNpcmNsZS1vdXRsaW5lJyA6ICdjaGV2cm9uLWZvcndhcmQtY2lyY2xlLW91dGxpbmUnO1xuICAgIH1cbiAgICByZXR1cm4gaXNFbmQgPyAnY2hldnJvbi1mb3J3YXJkLWNpcmNsZS1vdXRsaW5lJyA6ICdjaGV2cm9uLWJhY2stY2lyY2xlLW91dGxpbmUnO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFycmFzdHJlIGRlbCBib3JkZVxuICAvL1xuICAvLyBBcnJhc3RyYXIgZW5nYW5jaGEgYSBhYmllcnRvL2NlcnJhZG87IE5PIGVzIGFqdXN0ZSBsaWJyZSBkZSBhbmNoby4gRWwgYW5jaG9cbiAgLy8gZGUgY29udGVuaWRvIHRpZW5lIGVzdGFkb3MgZGVmaW5pZG9zICh2YWwtY29udGFpbmVyIGxvcyBsZWUgdsOtYSBkYXRhLW1lbnUpLFxuICAvLyBhc8OtIHF1ZSB1biBhbmNobyBhcmJpdHJhcmlvIGRlamFyw61hIGVsIGNvbnRlbmlkbyBhIG1lcmNlZCBkZSBkw7NuZGUgc29sdMOzIGVsXG4gIC8vIG1vdXNlIGNhZGEgdXN1YXJpby4gRHVyYW50ZSBlbCBhcnJhc3RyZSBlbCByYWlsIHPDrSBzaWd1ZSBhbCBwdW50ZXJvIOKAlCBlbFxuICAvLyBlbmdhbmNoZSBvY3VycmUgYWwgc29sdGFyLCBjb250cmEgZWwgcHVudG8gbWVkaW8gZW50cmUgYW1ib3MgYW5jaG9zLlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBwcml2YXRlIGRyYWdTdGFydFggPSAwO1xuICBwcml2YXRlIGRyYWdTdGFydFdpZHRoID0gMDtcbiAgcHJpdmF0ZSBkcmFnQm91bmRzOiB7IGNvbGxhcHNlZDogbnVtYmVyOyBleHBhbmRlZDogbnVtYmVyIH0gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBkcmFnZ2luZyA9IGZhbHNlO1xuICAvKiogUG9yIGRlYmFqbyBkZSBlc3RvIG5vIGh1Ym8gYXJyYXN0cmU6IGZ1ZSB1biBjbGljayBzb2JyZSBlbCBib3JkZS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBEUkFHX0NMSUNLX1NMT1AgPSA1O1xuXG4gIG9uRWRnZVBvaW50ZXJEb3duKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSByZXR1cm47XG4gICAgY29uc3QgbWVudSA9IHRoaXMubWVudUVsZW1lbnQoKTtcbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIW1lbnUgfHwgIXNwbGl0UGFuZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29sbGFwc2VkID0gdGhpcy5yZXNvbHZlV2lkdGhQeCh0aGlzLmNvbGxhcHNlZFdpZHRoVmFsdWUoKSk7XG4gICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLnJlc29sdmVXaWR0aFB4KHRoaXMuZXhwYW5kZWRXaWR0aFZhbHVlKCkpO1xuICAgIC8vIFNpIGVsIHNvbmRlbyBubyBwdWRvIHJlc29sdmVyIGxvcyBhbmNob3MsIGVsIGFycmFzdHJlIG5vIHRpZW5lIGNvbnRyYSBxdcOpXG4gICAgLy8gZW5nYW5jaGFyOiBzZSBkZWdyYWRhIGEgY2xpY2sgcHVybyAoZWwgcG9pbnRlcnVwIHNpbiBib3VuZHMgbm8gaGFjZSBuYWRhXG4gICAgLy8geSBlbCBzbG9wIGxvIHRyYXRhIGNvbW8gdG9nZ2xlKS5cbiAgICBpZiAoIShleHBhbmRlZCA+IGNvbGxhcHNlZCkpIHJldHVybjtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgIHRoaXMuZHJhZ1N0YXJ0WCA9IGV2ZW50LmNsaWVudFg7XG4gICAgLy8gQW5jbGEgZW4gZWwgYW5jaG8gREVDTEFSQURPIGRlbCBlc3RhZG8gYWN0dWFsLCBubyBlbiBlbCBtZWRpZG8uIFNpIGVsXG4gICAgLy8gbWVuw7ogZXN0w6EgcmVuZGVyaXphZG8gYSB1biBhbmNobyBxdWUgbm8gZXMgbmluZ3VubyBkZSBsb3MgZG9zIChsYXlvdXRcbiAgICAvLyBlbiB0cmFuc2ljacOzbiwgZXN0aWxvcyBkZSBsYSBhcHApLCBtZWRpciBjb3JyZSBlbCBvcmlnZW4gZGVsIGFycmFzdHJlIHlcbiAgICAvLyBlbCBlbmdhbmNoZSBjYWUgZGVsIGxhZG8gZXF1aXZvY2Fkby5cbiAgICB0aGlzLmRyYWdTdGFydFdpZHRoID0gdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSA/IGNvbGxhcHNlZCA6IGV4cGFuZGVkO1xuICAgIHRoaXMuZHJhZ0JvdW5kcyA9IHsgY29sbGFwc2VkLCBleHBhbmRlZCB9O1xuICAgIHNwbGl0UGFuZS5jbGFzc0xpc3QuYWRkKCd2YWwtbWVudS1kcmFnZ2luZycpO1xuICAgIC8vIExhIGNhcHR1cmEgbWFudGllbmUgZWwgYXJyYXN0cmUgdml2byBzaSBlbCBwdW50ZXJvIHNlIHNhbGUgZGVsIGJvcmRlLlxuICAgIC8vIEVzIHVuYSBtZWpvcmEsIG5vIHVuIHJlcXVpc2l0bzogbGFuemEgY3VhbmRvIGVsIHBvaW50ZXJJZCBubyBjb3JyZXNwb25kZSBhXG4gICAgLy8gdW4gcHVudGVybyBhY3Rpdm8sIHkgZXNlIHRocm93IG5vIHB1ZWRlIGxsZXZhcnNlIHB1ZXN0byBlbCBnZXN0by5cbiAgICB0cnkge1xuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuc2V0UG9pbnRlckNhcHR1cmU/LihldmVudC5wb2ludGVySWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLyogc2luIGNhcHR1cmE6IGVsIGFycmFzdHJlIHNpZ3VlIGZ1bmNpb25hbmRvIHbDrWEgbGlzdGVuZXJzIGRlIGRvY3VtZW50ICovXG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVybW92ZScsIFsnJGV2ZW50J10pXG4gIG9uRWRnZVBvaW50ZXJNb3ZlKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcpIHJldHVybjtcbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIXNwbGl0UGFuZSkgcmV0dXJuO1xuICAgIHRoaXMuYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmUsIGAke3RoaXMud2lkdGhGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKX1weGApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6cG9pbnRlcnVwJywgWyckZXZlbnQnXSlcbiAgb25FZGdlUG9pbnRlclVwKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJhZ2dpbmcgfHwgIXRoaXMuZHJhZ0JvdW5kcykgcmV0dXJuO1xuXG4gICAgY29uc3QgeyBjb2xsYXBzZWQsIGV4cGFuZGVkIH0gPSB0aGlzLmRyYWdCb3VuZHM7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLndpZHRoRnJvbVBvaW50ZXIoZXZlbnQuY2xpZW50WCk7XG4gICAgY29uc3QgdHJhdmVsbGVkID0gTWF0aC5hYnMoZXZlbnQuY2xpZW50WCAtIHRoaXMuZHJhZ1N0YXJ0WCk7XG5cbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy5kcmFnQm91bmRzID0gbnVsbDtcbiAgICB0aGlzLmZpbmRTcGxpdFBhbmUoKT8uY2xhc3NMaXN0LnJlbW92ZSgndmFsLW1lbnUtZHJhZ2dpbmcnKTtcblxuICAgIGlmICh0cmF2ZWxsZWQgPCB0aGlzLkRSQUdfQ0xJQ0tfU0xPUCkge1xuICAgICAgdGhpcy50b2dnbGVEZXNrdG9wQ29sbGFwc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQuc2V0KHdpZHRoIDwgKGNvbGxhcHNlZCArIGV4cGFuZGVkKSAvIDIpO1xuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICAvKiogQW5jaG8gcXVlIGNvcnJlc3BvbmRlIGFsIHB1bnRlcm8sIGFjb3RhZG8gYSBsb3MgZG9zIGV4dHJlbW9zLiAqL1xuICBwcml2YXRlIHdpZHRoRnJvbVBvaW50ZXIoY2xpZW50WDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuZHJhZ0JvdW5kcykgcmV0dXJuIHRoaXMuZHJhZ1N0YXJ0V2lkdGg7XG4gICAgY29uc3QgZGVsdGEgPSBjbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRYO1xuICAgIGNvbnN0IHJhdyA9XG4gICAgICB0aGlzLnByb3BzLnNpZGUgPT09ICdlbmQnXG4gICAgICAgID8gdGhpcy5kcmFnU3RhcnRXaWR0aCAtIGRlbHRhXG4gICAgICAgIDogdGhpcy5kcmFnU3RhcnRXaWR0aCArIGRlbHRhO1xuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLmRyYWdCb3VuZHMuZXhwYW5kZWQsIE1hdGgubWF4KHRoaXMuZHJhZ0JvdW5kcy5jb2xsYXBzZWQsIHJhdykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3VlbHZlIHVuIGFuY2hvIENTUyBhIHDDrXhlbGVzIG1pZGllbmRvIHVuIGVsZW1lbnRvIGRlIHNvbmRlby4gSGFjZSBmYWx0YVxuICAgKiBwb3JxdWUgbG9zIHZhbG9yZXMgc29uIGV4cHJlc2lvbmVzIChgbWluKDQwdncsIDIycmVtKWApIHF1ZSBnZXRDb21wdXRlZFN0eWxlXG4gICAqIGRldnVlbHZlIHNpbiByZXNvbHZlciBjdWFuZG8gdml2ZW4gZW4gdW5hIGN1c3RvbSBwcm9wZXJ0eS5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVdpZHRoUHgodmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgcHJvYmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBwcm9iZS5zdHlsZS5jc3NUZXh0ID0gYHBvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6JHt2YWx1ZX07YDtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChwcm9iZSk7XG4gICAgY29uc3QgcHggPSBwcm9iZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBwcm9iZS5yZW1vdmUoKTtcbiAgICByZXR1cm4gcHg7XG4gIH1cblxuICBwcml2YXRlIG1lbnVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lvbi1tZW51Jyk7XG4gIH1cblxuICBwcml2YXRlIGNvbGxhcHNlZFdpZHRoVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kZXNrdG9wQ29sbGFwc2VkV2lkdGggfHwgJzMuNXJlbSc7XG4gIH1cblxuICBwcml2YXRlIGV4cGFuZGVkV2lkdGhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8ICdtaW4oNDB2dywgMjJyZW0pJztcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmU6IEhUTUxFbGVtZW50LCB3aWR0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtd2lkdGgnLCB3aWR0aCk7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtbWluLXdpZHRoJywgd2lkdGgpO1xuICAgIHNwbGl0UGFuZS5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zaWRlLW1heC13aWR0aCcsIHdpZHRoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY1NwbGl0UGFuZVdpZHRoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgIHRoaXMucmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3BsaXRQYW5lID0gdGhpcy5maW5kU3BsaXRQYW5lKCk7XG4gICAgaWYgKCFzcGxpdFBhbmUpIHJldHVybjtcblxuICAgIHRoaXMuY2FwdHVyZU9yaWdpbmFsU3BsaXRQYW5lU3R5bGVzKHNwbGl0UGFuZSk7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpXG4gICAgICA/IHRoaXMuY29sbGFwc2VkV2lkdGhWYWx1ZSgpXG4gICAgICA6IHRoaXMuZXhwYW5kZWRXaWR0aFZhbHVlKCk7XG5cbiAgICB0aGlzLmFwcGx5U3BsaXRQYW5lV2lkdGgoc3BsaXRQYW5lLCB3aWR0aCk7XG5cbiAgICB0aGlzLm1hcmtTaGVsbE1lbnVTdGF0ZShzcGxpdFBhbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1YmxpY2EgZWwgZXN0YWRvIGRlbCBtZW7DuiBlbiBlbCBzaGVsbCwgcGFyYSBxdWUgZWwgQ09OVEVOSURPIHB1ZWRhXG4gICAqIGFkYXB0YXJzZS5cbiAgICpcbiAgICogRWwgbWVuw7ogeWEgc2Fiw61hIHNpIGVzdGFiYSBhYmllcnRvIG8gY2VycmFkbywgcGVybyBzb2xvIHNlIGxvIGRlY8OtYSBhIHPDrVxuICAgKiBtaXNtbyB5IGFsIGFuY2hvIGRlbCBwYW5lOiBlbCBjb250ZW5pZG8gc2VndcOtYSBjb24gZWwgbWlzbW8gdG9wZSwgYXPDrSBxdWVcbiAgICogZWwgZXNwYWNpbyBxdWUgZGVqYWJhIGxhIG5hdmVnYWNpw7NuIHNlIHZvbHbDrWEgYWlyZSBsYXRlcmFsIGVuIHZleiBkZVxuICAgKiBjb250ZW5pZG8uXG4gICAqXG4gICAqIFNlIG1hcmNhIGVsIGBpb24tc3BsaXQtcGFuZWAgcG9ycXVlIGVzIGVsIGFuY2VzdHJvIGNvbcO6biBkZWwgbWVuw7ogeSBkZWxcbiAgICogY29udGVuaWRvOyBkZXNkZSBhaMOtIGB2YWwtY29udGFpbmVyYCBsbyBsZWUgY29uIGA6aG9zdC1jb250ZXh0YCB5IG5pbmd1bmFcbiAgICogYXBwIG5lY2VzaXRhIGNhYmxlYXIgbmFkYS4gRWwgYXRyaWJ1dG8gc2UgbGltcGlhIGFsIHJlc3RhdXJhciAodmVyXG4gICAqIHJlc3RvcmVTcGxpdFBhbmVXaWR0aCkgcGFyYSBubyBkZWphciB1biBzaGVsbCBcImNvbGFwc2Fkb1wiIGN1YW5kbyBlbCByYWlsXG4gICAqIGRlamEgZGUgZXN0YXIgYWN0aXZvLlxuICAgKi9cbiAgcHJpdmF0ZSBtYXJrU2hlbGxNZW51U3RhdGUoc3BsaXRQYW5lOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHNwbGl0UGFuZS5zZXRBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1tZW51JyxcbiAgICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkgPyAnY29sbGFwc2VkJyA6ICdleHBhbmRlZCcsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNwbGl0UGFuZSgpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuc3BsaXRQYW5lPy5pc0Nvbm5lY3RlZCkgcmV0dXJuIHRoaXMuc3BsaXRQYW5lO1xuICAgIHRoaXMuc3BsaXRQYW5lID0gKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ2lvbi1zcGxpdC1wYW5lJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuc3BsaXRQYW5lO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXB0dXJlT3JpZ2luYWxTcGxpdFBhbmVTdHlsZXMoc3BsaXRQYW5lOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgWyctLXNpZGUtd2lkdGgnLCAnLS1zaWRlLW1pbi13aWR0aCcsICctLXNpZGUtbWF4LXdpZHRoJ10pIHtcbiAgICAgIGlmICghdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5oYXMocHJvcGVydHkpKSB7XG4gICAgICAgIHRoaXMuc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMuc2V0KHByb3BlcnR5LCBzcGxpdFBhbmUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk6IHZvaWQge1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIC8vIEVsIGF0cmlidXRvIHNlIHF1aXRhIGF1bnF1ZSBubyBoYXlhIGVzdGlsb3MgcXVlIHJlc3RhdXJhcjogc2kgZWwgcmFpbCBzZVxuICAgIC8vIGRlc2FjdGl2YSwgZWwgc2hlbGwgbm8gcHVlZGUgcXVlZGFyIGRlY2xhcsOhbmRvc2UgY29sYXBzYWRvLlxuICAgIHNwbGl0UGFuZT8ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLW1lbnUnKTtcbiAgICBpZiAoIXNwbGl0UGFuZSB8fCAhdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5zaXplKSByZXR1cm47XG5cbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eSwgdmFsdWVdIG9mIHRoaXMuc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNwbGl0UGFuZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
533
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWlISCxNQUFNLE9BQU8sYUFBYTtJQS9HMUI7UUFnSFUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXpELDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxzQkFBc0I7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNW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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQsb3RFQXhHQyxZQUFZLCtCQUNaLE9BQU8sa0pBQ1AsVUFBVSw4RUFDVixhQUFhLDBGQUNiLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSx3S0FDVixjQUFjLHlFQUNkLGVBQWU7OzRGQWlHTixhQUFhO2tCQS9HekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQ7OEJBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFnQ04sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVkvQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUg3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblRvb2xiYXIsXG4gIE1lbnVDb250cm9sbGVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtbWVudVxuICpcbiAqIEEgc2lkZSBtZW51IGNvbXBvbmVudCB1c2luZyBJb25pYyBJb25NZW51IHdpdGggY3VzdG9taXphYmxlIGxvZ28sXG4gKiBjbG9zZSBidXR0b24sIGFuZCBjb250ZW50IHByb2plY3Rpb24gZm9yIG1lbnUgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbWVudVxuICogICBbcHJvcHNdPVwie1xuICogICAgIGlkOiAnbWFpbi1tZW51JyxcbiAqICAgICBjb250ZW50SWQ6ICdtYWluLWNvbnRlbnQnLFxuICogICAgIHNpZGU6ICdzdGFydCcsXG4gKiAgICAgdHlwZTogJ292ZXJsYXknLFxuICogICAgIHN3aXBlOiB0cnVlLFxuICogICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogICB9XCJcbiAqID5cbiAqICAgPHZhbC1saW5rcy1hY2NvcmRpb24gW3Byb3BzXT1cIm1lbnVMaW5rc1wiPjwvdmFsLWxpbmtzLWFjY29yZGlvbj5cbiAqIDwvdmFsLW1lbnU+XG4gKlxuICogPGlvbi1yb3V0ZXItb3V0bGV0IGlkPVwibWFpbi1jb250ZW50XCI+PC9pb24tcm91dGVyLW91dGxldD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBNZW51IGNvbmZpZ3VyYXRpb25cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTWVudSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQ29udGVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tZW51XG4gICAgICBbbWVudUlkXT1cInByb3BzLmlkXCJcbiAgICAgIFtjb250ZW50SWRdPVwicHJvcHMuY29udGVudElkXCJcbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ292ZXJsYXknXCJcbiAgICAgIFtzaWRlXT1cInByb3BzLnNpZGUgfHwgJ3N0YXJ0J1wiXG4gICAgICBbc3dpcGVHZXN0dXJlXT1cInByb3BzLnN3aXBlICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuaXMtZGVza3RvcC1jb2xsYXBzaWJsZV09XCJyZXRyYWN0YWJsZU1lbnVFbmFibGVkKClcIlxuICAgICAgW2NsYXNzLmlzLWRlc2t0b3AtY29sbGFwc2VkXT1cImlzRGVza3RvcENvbGxhcHNlZCgpXCJcbiAgICAgIFtzdHlsZS4tLXZhbC1tZW51LWV4cGFuZGVkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8IG51bGxcIlxuICAgICAgW3N0eWxlLi0tdmFsLW1lbnUtY29sbGFwc2VkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCBudWxsXCJcbiAgICA+XG4gICAgICA8IS0tIEVkZ2UgaW5kaWNhdG9yOiB0aGluIGxpbmUgb24gcmlnaHQgZWRnZSwgY2xpY2sgb3Igc3dpcGUgdG8gY29sbGFwc2UvZXhwYW5kIC0tPlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWVudS1lZGdlLXN3aXBlLWluZGljYXRvclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbkVkZ2VQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwidG9nZ2xlRGVza3RvcENvbGxhcHNlKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IC41cmVtO1wiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvLW1pbmknLFxuICAgICAgICAgICAgICAgIGFsdDogJ21lbnUgbG9nbycsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlIGNsYXNzPVwibWVudS1tb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtcHJvamVjdGVkLWNvbnRlbnRcIlxuICAgICAgICAgICh2YWxNZW51RXhwYW5kUmVxdWVzdCk9XCJleHBhbmREZXNrdG9wUmFpbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29sbGFwc2UtZm9vdGVyXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jb2xsYXBzZS10b2dnbGVcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNEZXNrdG9wQ29sbGFwc2VkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJtZWRpdW1cIiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiZGVza3RvcENvbGxhcHNlSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wcy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1lbnUtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdGV4dDogY2xvc2VCdXR0b25UZXh0KCksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjbG9zZS1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgc2xvdDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiY2xvc2VNZW51KClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvaW9uLW1lbnU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtZW51Q3RybCA9IGluamVjdChNZW51Q29udHJvbGxlcik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgc3BsaXRQYW5lPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNrdG9wQ29sbGFwc2VkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBFZGdlLXN3aXBlIHRyYWNraW5nXG4gIHByaXZhdGUgdG91Y2hTdGFydFggPSAwO1xuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBFREdFX1NXSVBFX1RIUkVTSE9MRCA9IDIwOyAvLyBweCBmcm9tIGxlZnQgZWRnZVxuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9TV0lQRV9ESVNUQU5DRSA9IDgwOyAvLyBweCB0byB0cmlnZ2VyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NXSVBFX0RVUkFUSU9OID0gNTAwOyAvLyBtc1xuXG4gIC8qKlxuICAgKiBNZW51IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogTWVudU1ldGFkYXRhID0ge1xuICAgIHNpZGU6ICdzdGFydCcsXG4gICAgdHlwZTogJ292ZXJsYXknLFxuICAgIHN3aXBlOiB0cnVlLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wc0NoYW5nZSA9IGNoYW5nZXNbJ3Byb3BzJ107XG4gICAgaWYgKCFwcm9wc0NoYW5nZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXMgPSBwcm9wc0NoYW5nZS5wcmV2aW91c1ZhbHVlIGFzIE1lbnVNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBwcm9wc0NoYW5nZS5maXJzdENoYW5nZSB8fFxuICAgICAgcHJldmlvdXM/LmRlc2t0b3BDb2xsYXBzZWQgIT09IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCB8fFxuICAgICAgcHJldmlvdXM/LnJldHJhY3RhYmxlTWVudSAhPT0gdGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnVcbiAgICApIHtcbiAgICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldCghIXRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHRvdWNoID0gZXZlbnQudG91Y2hlc1swXTtcbiAgICAvLyBTb2xvIGRldGVjdGFyIGRlc2RlIGJvcmRlIGl6cXVpZXJkb1xuICAgIGlmICh0b3VjaC5jbGllbnRYIDw9IHRoaXMuRURHRV9TV0lQRV9USFJFU0hPTEQpIHtcbiAgICAgIHRoaXMudG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCB0aGlzLnRvdWNoU3RhcnRYID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBjaGFuZ2VkVG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtcbiAgICBjb25zdCB0b3VjaEVuZFggPSBjaGFuZ2VkVG91Y2guY2xpZW50WDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IHRvdWNoRW5kWCAtIHRoaXMudG91Y2hTdGFydFg7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy50b3VjaFN0YXJ0VGltZTtcblxuICAgIC8vIFZhbGlkYXI6IHN3aXBlIGhhY2lhIGxhIGRlcmVjaGEsIGRpc3RhbmNpYSBtw61uaW1hLCBkdXJhY2nDs24gbcOheGltYVxuICAgIGlmIChkaXN0YW5jZSA+PSB0aGlzLk1JTl9TV0lQRV9ESVNUQU5DRSAmJiBkdXJhdGlvbiA8PSB0aGlzLk1BWF9TV0lQRV9EVVJBVElPTikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlRGVza3RvcENvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRleHQgLSByZWFjdGl2ZSB0byBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2xvc2VCdXR0b25UZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jbG9zZUJ1dHRvblRleHQgfHwgdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBhc3luYyBjbG9zZU1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSh0aGlzLnByb3BzLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRlIGVsIHJhaWwgYSBwZWRpZG8gZGUgbG8gcXVlIGVzdMOhIHByb3llY3RhZG8gYWRlbnRyby4gVW5hIHNlY2Npw7NuIHF1ZVxuICAgKiBzb2xvIGFncnVwYSBoaWpvcyBubyBwdWVkZSBkZXNwbGVnYXJzZSBlbiA1NnB4LCBhc8OtIHF1ZSBwaWRlIGx1Z2FyIGVuIHZlelxuICAgKiBkZSBubyBoYWNlciBuYWRhLlxuICAgKi9cbiAgZXhwYW5kRGVza3RvcFJhaWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCAhdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIHRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQudXBkYXRlKGNvbGxhcHNlZCA9PiAhY29sbGFwc2VkKTtcbiAgICB0aGlzLnN5bmNTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgcmV0cmFjdGFibGVNZW51RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnUgPz8gdGhpcy5wcm9wcy5kZXNrdG9wQ29sbGFwc2libGUpO1xuICB9XG5cbiAgZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKVxuICAgICAgPyB0aGlzLnByb3BzLmRlc2t0b3BFeHBhbmRMYWJlbCB8fCAnRXhwYW5kaXIgbWVuw7onXG4gICAgICA6IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlTGFiZWwgfHwgJ0NvbnRyYWVyIG1lbsO6JztcbiAgfVxuXG4gIGRlc2t0b3BDb2xsYXBzZUljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0VuZCA9IHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCc7XG4gICAgaWYgKHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkpIHtcbiAgICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWJhY2stY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1jaXJjbGUtb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWZvcndhcmQtY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tYmFjay1jaXJjbGUtb3V0bGluZSc7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQXJyYXN0cmUgZGVsIGJvcmRlXG4gIC8vXG4gIC8vIEFycmFzdHJhciBlbmdhbmNoYSBhIGFiaWVydG8vY2VycmFkbzsgTk8gZXMgYWp1c3RlIGxpYnJlIGRlIGFuY2hvLiBFbCBhbmNob1xuICAvLyBkZSBjb250ZW5pZG8gdGllbmUgZXN0YWRvcyBkZWZpbmlkb3MgKHZhbC1jb250YWluZXIgbG9zIGxlZSB2w61hIGRhdGEtbWVudSksXG4gIC8vIGFzw60gcXVlIHVuIGFuY2hvIGFyYml0cmFyaW8gZGVqYXLDrWEgZWwgY29udGVuaWRvIGEgbWVyY2VkIGRlIGTDs25kZSBzb2x0w7MgZWxcbiAgLy8gbW91c2UgY2FkYSB1c3VhcmlvLiBEdXJhbnRlIGVsIGFycmFzdHJlIGVsIHJhaWwgc8OtIHNpZ3VlIGFsIHB1bnRlcm8g4oCUIGVsXG4gIC8vIGVuZ2FuY2hlIG9jdXJyZSBhbCBzb2x0YXIsIGNvbnRyYSBlbCBwdW50byBtZWRpbyBlbnRyZSBhbWJvcyBhbmNob3MuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZHJhZ1N0YXJ0WCA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0V2lkdGggPSAwO1xuICBwcml2YXRlIGRyYWdCb3VuZHM6IHsgY29sbGFwc2VkOiBudW1iZXI7IGV4cGFuZGVkOiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYWdnaW5nID0gZmFsc2U7XG4gIC8qKiBQb3IgZGViYWpvIGRlIGVzdG8gbm8gaHVibyBhcnJhc3RyZTogZnVlIHVuIGNsaWNrIHNvYnJlIGVsIGJvcmRlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IERSQUdfQ0xJQ0tfU0xPUCA9IDU7XG5cbiAgb25FZGdlUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51RWxlbWVudCgpO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghbWVudSB8fCAhc3BsaXRQYW5lKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLnJlc29sdmVXaWR0aFB4KHRoaXMuY29sbGFwc2VkV2lkdGhWYWx1ZSgpKTtcbiAgICBjb25zdCBleHBhbmRlZCA9IHRoaXMucmVzb2x2ZVdpZHRoUHgodGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKSk7XG4gICAgLy8gU2kgZWwgc29uZGVvIG5vIHB1ZG8gcmVzb2x2ZXIgbG9zIGFuY2hvcywgZWwgYXJyYXN0cmUgbm8gdGllbmUgY29udHJhIHF1w6lcbiAgICAvLyBlbmdhbmNoYXI6IHNlIGRlZ3JhZGEgYSBjbGljayBwdXJvIChlbCBwb2ludGVydXAgc2luIGJvdW5kcyBubyBoYWNlIG5hZGFcbiAgICAvLyB5IGVsIHNsb3AgbG8gdHJhdGEgY29tbyB0b2dnbGUpLlxuICAgIGlmICghKGV4cGFuZGVkID4gY29sbGFwc2VkKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5kcmFnU3RhcnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICAvLyBBbmNsYSBlbiBlbCBhbmNobyBERUNMQVJBRE8gZGVsIGVzdGFkbyBhY3R1YWwsIG5vIGVuIGVsIG1lZGlkby4gU2kgZWxcbiAgICAvLyBtZW7DuiBlc3TDoSByZW5kZXJpemFkbyBhIHVuIGFuY2hvIHF1ZSBubyBlcyBuaW5ndW5vIGRlIGxvcyBkb3MgKGxheW91dFxuICAgIC8vIGVuIHRyYW5zaWNpw7NuLCBlc3RpbG9zIGRlIGxhIGFwcCksIG1lZGlyIGNvcnJlIGVsIG9yaWdlbiBkZWwgYXJyYXN0cmUgeVxuICAgIC8vIGVsIGVuZ2FuY2hlIGNhZSBkZWwgbGFkbyBlcXVpdm9jYWRvLlxuICAgIHRoaXMuZHJhZ1N0YXJ0V2lkdGggPSB0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpID8gY29sbGFwc2VkIDogZXhwYW5kZWQ7XG4gICAgdGhpcy5kcmFnQm91bmRzID0geyBjb2xsYXBzZWQsIGV4cGFuZGVkIH07XG4gICAgc3BsaXRQYW5lLmNsYXNzTGlzdC5hZGQoJ3ZhbC1tZW51LWRyYWdnaW5nJyk7XG4gICAgLy8gTGEgY2FwdHVyYSBtYW50aWVuZSBlbCBhcnJhc3RyZSB2aXZvIHNpIGVsIHB1bnRlcm8gc2Ugc2FsZSBkZWwgYm9yZGUuXG4gICAgLy8gRXMgdW5hIG1lam9yYSwgbm8gdW4gcmVxdWlzaXRvOiBsYW56YSBjdWFuZG8gZWwgcG9pbnRlcklkIG5vIGNvcnJlc3BvbmRlIGFcbiAgICAvLyB1biBwdW50ZXJvIGFjdGl2bywgeSBlc2UgdGhyb3cgbm8gcHVlZGUgbGxldmFyc2UgcHVlc3RvIGVsIGdlc3RvLlxuICAgIHRyeSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBzaW4gY2FwdHVyYTogZWwgYXJyYXN0cmUgc2lndWUgZnVuY2lvbmFuZG8gdsOtYSBsaXN0ZW5lcnMgZGUgZG9jdW1lbnQgKi9cbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25FZGdlUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZykgcmV0dXJuO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghc3BsaXRQYW5lKSByZXR1cm47XG4gICAgdGhpcy5hcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZSwgYCR7dGhpcy53aWR0aEZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFgpfXB4YCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnLCBbJyRldmVudCddKVxuICBvbkVkZ2VQb2ludGVyVXAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZyB8fCAhdGhpcy5kcmFnQm91bmRzKSByZXR1cm47XG5cbiAgICBjb25zdCB7IGNvbGxhcHNlZCwgZXhwYW5kZWQgfSA9IHRoaXMuZHJhZ0JvdW5kcztcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGhGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKTtcbiAgICBjb25zdCB0cmF2ZWxsZWQgPSBNYXRoLmFicyhldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRYKTtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWdCb3VuZHMgPSBudWxsO1xuICAgIHRoaXMuZmluZFNwbGl0UGFuZSgpPy5jbGFzc0xpc3QucmVtb3ZlKCd2YWwtbWVudS1kcmFnZ2luZycpO1xuXG4gICAgaWYgKHRyYXZlbGxlZCA8IHRoaXMuRFJBR19DTElDS19TTE9QKSB7XG4gICAgICB0aGlzLnRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQod2lkdGggPCAoY29sbGFwc2VkICsgZXhwYW5kZWQpIC8gMik7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIC8qKiBBbmNobyBxdWUgY29ycmVzcG9uZGUgYWwgcHVudGVybywgYWNvdGFkbyBhIGxvcyBkb3MgZXh0cmVtb3MuICovXG4gIHByaXZhdGUgd2lkdGhGcm9tUG9pbnRlcihjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5kcmFnQm91bmRzKSByZXR1cm4gdGhpcy5kcmFnU3RhcnRXaWR0aDtcbiAgICBjb25zdCBkZWx0YSA9IGNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgY29uc3QgcmF3ID1cbiAgICAgIHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCdcbiAgICAgICAgPyB0aGlzLmRyYWdTdGFydFdpZHRoIC0gZGVsdGFcbiAgICAgICAgOiB0aGlzLmRyYWdTdGFydFdpZHRoICsgZGVsdGE7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZHJhZ0JvdW5kcy5leHBhbmRlZCwgTWF0aC5tYXgodGhpcy5kcmFnQm91bmRzLmNvbGxhcHNlZCwgcmF3KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdWVsdmUgdW4gYW5jaG8gQ1NTIGEgcMOteGVsZXMgbWlkaWVuZG8gdW4gZWxlbWVudG8gZGUgc29uZGVvLiBIYWNlIGZhbHRhXG4gICAqIHBvcnF1ZSBsb3MgdmFsb3JlcyBzb24gZXhwcmVzaW9uZXMgKGBtaW4oNDB2dywgMjJyZW0pYCkgcXVlIGdldENvbXB1dGVkU3R5bGVcbiAgICogZGV2dWVsdmUgc2luIHJlc29sdmVyIGN1YW5kbyB2aXZlbiBlbiB1bmEgY3VzdG9tIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlV2lkdGhQeCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHByb2JlLnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoke3ZhbHVlfTtgO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHByb2JlKTtcbiAgICBjb25zdCBweCA9IHByb2JlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIHByb2JlLnJlbW92ZSgpO1xuICAgIHJldHVybiBweDtcbiAgfVxuXG4gIHByaXZhdGUgbWVudUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW9uLW1lbnUnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VkV2lkdGhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCAnMy41cmVtJztcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kZWRXaWR0aFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVza3RvcEV4cGFuZGVkV2lkdGggfHwgJ21pbig0MHZ3LCAyMnJlbSknO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZTogSFRNTEVsZW1lbnQsIHdpZHRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS13aWR0aCcsIHdpZHRoKTtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS1taW4td2lkdGgnLCB3aWR0aCk7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtbWF4LXdpZHRoJywgd2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIXNwbGl0UGFuZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYXB0dXJlT3JpZ2luYWxTcGxpdFBhbmVTdHlsZXMoc3BsaXRQYW5lKTtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKClcbiAgICAgID8gdGhpcy5jb2xsYXBzZWRXaWR0aFZhbHVlKClcbiAgICAgIDogdGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKTtcblxuICAgIHRoaXMuYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmUsIHdpZHRoKTtcblxuICAgIHRoaXMubWFya1NoZWxsTWVudVN0YXRlKHNwbGl0UGFuZSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljYSBlbCBlc3RhZG8gZGVsIG1lbsO6IGVuIGVsIHNoZWxsLCBwYXJhIHF1ZSBlbCBDT05URU5JRE8gcHVlZGFcbiAgICogYWRhcHRhcnNlLlxuICAgKlxuICAgKiBFbCBtZW7DuiB5YSBzYWLDrWEgc2kgZXN0YWJhIGFiaWVydG8gbyBjZXJyYWRvLCBwZXJvIHNvbG8gc2UgbG8gZGVjw61hIGEgc8OtXG4gICAqIG1pc21vIHkgYWwgYW5jaG8gZGVsIHBhbmU6IGVsIGNvbnRlbmlkbyBzZWd1w61hIGNvbiBlbCBtaXNtbyB0b3BlLCBhc8OtIHF1ZVxuICAgKiBlbCBlc3BhY2lvIHF1ZSBkZWphYmEgbGEgbmF2ZWdhY2nDs24gc2Ugdm9sdsOtYSBhaXJlIGxhdGVyYWwgZW4gdmV6IGRlXG4gICAqIGNvbnRlbmlkby5cbiAgICpcbiAgICogU2UgbWFyY2EgZWwgYGlvbi1zcGxpdC1wYW5lYCBwb3JxdWUgZXMgZWwgYW5jZXN0cm8gY29tw7puIGRlbCBtZW7DuiB5IGRlbFxuICAgKiBjb250ZW5pZG87IGRlc2RlIGFow60gYHZhbC1jb250YWluZXJgIGxvIGxlZSBjb24gYDpob3N0LWNvbnRleHRgIHkgbmluZ3VuYVxuICAgKiBhcHAgbmVjZXNpdGEgY2FibGVhciBuYWRhLiBFbCBhdHJpYnV0byBzZSBsaW1waWEgYWwgcmVzdGF1cmFyICh2ZXJcbiAgICogcmVzdG9yZVNwbGl0UGFuZVdpZHRoKSBwYXJhIG5vIGRlamFyIHVuIHNoZWxsIFwiY29sYXBzYWRvXCIgY3VhbmRvIGVsIHJhaWxcbiAgICogZGVqYSBkZSBlc3RhciBhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIG1hcmtTaGVsbE1lbnVTdGF0ZShzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgc3BsaXRQYW5lLnNldEF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW1lbnUnLFxuICAgICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU3BsaXRQYW5lKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmU/LmlzQ29ubmVjdGVkKSByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gICAgdGhpcy5zcGxpdFBhbmUgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnaW9uLXNwbGl0LXBhbmUnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVPcmlnaW5hbFNwbGl0UGFuZVN0eWxlcyhzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbJy0tc2lkZS13aWR0aCcsICctLXNpZGUtbWluLXdpZHRoJywgJy0tc2lkZS1tYXgtd2lkdGgnXSkge1xuICAgICAgaWYgKCF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5zZXQocHJvcGVydHksIHNwbGl0UGFuZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BsaXRQYW5lID0gdGhpcy5maW5kU3BsaXRQYW5lKCk7XG4gICAgLy8gRWwgYXRyaWJ1dG8gc2UgcXVpdGEgYXVucXVlIG5vIGhheWEgZXN0aWxvcyBxdWUgcmVzdGF1cmFyOiBzaSBlbCByYWlsIHNlXG4gICAgLy8gZGVzYWN0aXZhLCBlbCBzaGVsbCBubyBwdWVkZSBxdWVkYXIgZGVjbGFyw6FuZG9zZSBjb2xhcHNhZG8uXG4gICAgc3BsaXRQYW5lPy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudScpO1xuICAgIGlmICghc3BsaXRQYW5lIHx8ICF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLnNpemUpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNwbGl0UGFuZS5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BsaXRQYW5lLnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|