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
|
@@ -192,7 +192,7 @@ export class PermissionsViewComponent {
|
|
|
192
192
|
[props]="{
|
|
193
193
|
content: tt('errorTitle'),
|
|
194
194
|
size: 'medium',
|
|
195
|
-
color: '
|
|
195
|
+
color: 'medium',
|
|
196
196
|
bold: false,
|
|
197
197
|
}"
|
|
198
198
|
/>
|
|
@@ -214,7 +214,7 @@ export class PermissionsViewComponent {
|
|
|
214
214
|
[props]="{
|
|
215
215
|
content: tt('systemRolesHint'),
|
|
216
216
|
size: 'medium',
|
|
217
|
-
color: '
|
|
217
|
+
color: 'medium',
|
|
218
218
|
bold: false,
|
|
219
219
|
}"
|
|
220
220
|
/>
|
|
@@ -285,7 +285,7 @@ export class PermissionsViewComponent {
|
|
|
285
285
|
[props]="{
|
|
286
286
|
content: tt('customRolesHint'),
|
|
287
287
|
size: 'medium',
|
|
288
|
-
color: '
|
|
288
|
+
color: 'medium',
|
|
289
289
|
bold: false,
|
|
290
290
|
}"
|
|
291
291
|
/>
|
|
@@ -295,7 +295,7 @@ export class PermissionsViewComponent {
|
|
|
295
295
|
[props]="{
|
|
296
296
|
content: tt('noCustomRoles'),
|
|
297
297
|
size: 'medium',
|
|
298
|
-
color: '
|
|
298
|
+
color: 'medium',
|
|
299
299
|
bold: false,
|
|
300
300
|
}"
|
|
301
301
|
/>
|
|
@@ -347,7 +347,7 @@ export class PermissionsViewComponent {
|
|
|
347
347
|
}
|
|
348
348
|
</div>
|
|
349
349
|
</val-container>
|
|
350
|
-
`, isInline: true, styles: [".page{padding:16px 0}.page-header{margin-bottom:24px}.spinner-row,.error-row{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0}.perm-section{margin-bottom:32px}.perm-section__header{margin-bottom:12px}.role-list{display:flex;flex-direction:column;gap:10px}.role-card{border:1.5px solid var(--ion-border-color, rgba(0, 0, 0, .12));border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;background:var(--ion-card-background, var(--ion-background-color, #fff));box-shadow:0 2px 8px #00000012}.role-card__header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-card__name{font-size:.9375rem;font-weight:600;color:var(--ion-color-dark)}.role-card__desc{font-size:.8125rem;color:var(--ion-color-dark);line-height:1.4}.perm-group{display:flex;flex-direction:column;gap:6px}.perm-group__badge{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:6px}.perm-group--app .perm-group__badge{color:var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.12)}.perm-group--org .perm-group__badge{color:var(--ion-color-dark-shade, var(--ion-color-
|
|
350
|
+
`, isInline: true, styles: [".page{padding:16px 0}.page-header{margin-bottom:24px}.spinner-row,.error-row{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0}.perm-section{margin-bottom:32px}.perm-section__header{margin-bottom:12px}.role-list{display:flex;flex-direction:column;gap:10px}.role-card{border:1.5px solid var(--ion-border-color, rgba(0, 0, 0, .12));border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;background:var(--ion-card-background, var(--ion-background-color, #fff));box-shadow:0 2px 8px #00000012}.role-card__header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-card__name{font-size:.9375rem;font-weight:600;color:var(--ion-color-dark)}.role-card__desc{font-size:.8125rem;color:var(--ion-color-dark);line-height:1.4}.perm-group{display:flex;flex-direction:column;gap:6px}.perm-group__badge{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:6px}.perm-group--app .perm-group__badge{color:var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.12)}.perm-group--org .perm-group__badge{color:var(--ion-color-dark-shade, var(--ion-color-medium));background:var(--ion-color-light-shade, rgba(0, 0, 0, .06))}.perm-group--other .perm-group__badge{color:var(--ion-color-tertiary);background:rgba(var(--ion-color-tertiary-rgb),.12)}.perm-chips{display:flex;flex-wrap:wrap;gap:6px}.perm-chip{display:inline-flex;align-items:baseline;gap:4px;font-size:.75rem;padding:4px 10px;border-radius:20px;background:var(--ion-color-light);color:var(--ion-color-dark);border:1px solid transparent}.perm-chip__resource{font-weight:600}.perm-chip__actions{font-weight:400;color:var(--ion-color-dark);font-size:.6875rem}.perm-chip--all{background:rgba(var(--ion-color-primary-rgb),.1);border-color:rgba(var(--ion-color-primary-rgb),.3);color:var(--ion-color-primary-shade, var(--ion-color-primary))}.perm-chip--all .perm-chip__resource{color:var(--ion-color-primary-shade, var(--ion-color-primary))}.perm-chip--write{background:rgba(var(--ion-color-secondary-rgb),.08);border-color:rgba(var(--ion-color-secondary-rgb),.2)}.perm-chip--write .perm-chip__resource{color:var(--ion-color-secondary-shade, var(--ion-color-secondary))}.perm-chip--read{background:var(--ion-color-light, rgba(0, 0, 0, .04))}.perm-chip--empty{color:var(--ion-color-dark);background:transparent;padding-left:0}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: SkeletonLayoutComponent, selector: "val-skeleton-layout", inputs: ["props"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
351
351
|
}
|
|
352
352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PermissionsViewComponent, decorators: [{
|
|
353
353
|
type: Component,
|
|
@@ -383,7 +383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
383
383
|
[props]="{
|
|
384
384
|
content: tt('errorTitle'),
|
|
385
385
|
size: 'medium',
|
|
386
|
-
color: '
|
|
386
|
+
color: 'medium',
|
|
387
387
|
bold: false,
|
|
388
388
|
}"
|
|
389
389
|
/>
|
|
@@ -405,7 +405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
405
405
|
[props]="{
|
|
406
406
|
content: tt('systemRolesHint'),
|
|
407
407
|
size: 'medium',
|
|
408
|
-
color: '
|
|
408
|
+
color: 'medium',
|
|
409
409
|
bold: false,
|
|
410
410
|
}"
|
|
411
411
|
/>
|
|
@@ -476,7 +476,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
476
476
|
[props]="{
|
|
477
477
|
content: tt('customRolesHint'),
|
|
478
478
|
size: 'medium',
|
|
479
|
-
color: '
|
|
479
|
+
color: 'medium',
|
|
480
480
|
bold: false,
|
|
481
481
|
}"
|
|
482
482
|
/>
|
|
@@ -486,7 +486,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
486
486
|
[props]="{
|
|
487
487
|
content: tt('noCustomRoles'),
|
|
488
488
|
size: 'medium',
|
|
489
|
-
color: '
|
|
489
|
+
color: 'medium',
|
|
490
490
|
bold: false,
|
|
491
491
|
}"
|
|
492
492
|
/>
|
|
@@ -538,10 +538,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
538
538
|
}
|
|
539
539
|
</div>
|
|
540
540
|
</val-container>
|
|
541
|
-
`, styles: [".page{padding:16px 0}.page-header{margin-bottom:24px}.spinner-row,.error-row{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0}.perm-section{margin-bottom:32px}.perm-section__header{margin-bottom:12px}.role-list{display:flex;flex-direction:column;gap:10px}.role-card{border:1.5px solid var(--ion-border-color, rgba(0, 0, 0, .12));border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;background:var(--ion-card-background, var(--ion-background-color, #fff));box-shadow:0 2px 8px #00000012}.role-card__header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-card__name{font-size:.9375rem;font-weight:600;color:var(--ion-color-dark)}.role-card__desc{font-size:.8125rem;color:var(--ion-color-dark);line-height:1.4}.perm-group{display:flex;flex-direction:column;gap:6px}.perm-group__badge{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:6px}.perm-group--app .perm-group__badge{color:var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.12)}.perm-group--org .perm-group__badge{color:var(--ion-color-dark-shade, var(--ion-color-
|
|
541
|
+
`, styles: [".page{padding:16px 0}.page-header{margin-bottom:24px}.spinner-row,.error-row{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 0}.perm-section{margin-bottom:32px}.perm-section__header{margin-bottom:12px}.role-list{display:flex;flex-direction:column;gap:10px}.role-card{border:1.5px solid var(--ion-border-color, rgba(0, 0, 0, .12));border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;background:var(--ion-card-background, var(--ion-background-color, #fff));box-shadow:0 2px 8px #00000012}.role-card__header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.role-card__name{font-size:.9375rem;font-weight:600;color:var(--ion-color-dark)}.role-card__desc{font-size:.8125rem;color:var(--ion-color-dark);line-height:1.4}.perm-group{display:flex;flex-direction:column;gap:6px}.perm-group__badge{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:6px}.perm-group--app .perm-group__badge{color:var(--ion-color-primary);background:rgba(var(--ion-color-primary-rgb),.12)}.perm-group--org .perm-group__badge{color:var(--ion-color-dark-shade, var(--ion-color-medium));background:var(--ion-color-light-shade, rgba(0, 0, 0, .06))}.perm-group--other .perm-group__badge{color:var(--ion-color-tertiary);background:rgba(var(--ion-color-tertiary-rgb),.12)}.perm-chips{display:flex;flex-wrap:wrap;gap:6px}.perm-chip{display:inline-flex;align-items:baseline;gap:4px;font-size:.75rem;padding:4px 10px;border-radius:20px;background:var(--ion-color-light);color:var(--ion-color-dark);border:1px solid transparent}.perm-chip__resource{font-weight:600}.perm-chip__actions{font-weight:400;color:var(--ion-color-dark);font-size:.6875rem}.perm-chip--all{background:rgba(var(--ion-color-primary-rgb),.1);border-color:rgba(var(--ion-color-primary-rgb),.3);color:var(--ion-color-primary-shade, var(--ion-color-primary))}.perm-chip--all .perm-chip__resource{color:var(--ion-color-primary-shade, var(--ion-color-primary))}.perm-chip--write{background:rgba(var(--ion-color-secondary-rgb),.08);border-color:rgba(var(--ion-color-secondary-rgb),.2)}.perm-chip--write .perm-chip__resource{color:var(--ion-color-secondary-shade, var(--ion-color-secondary))}.perm-chip--read{background:var(--ion-color-light, rgba(0, 0, 0, .04))}.perm-chip--empty{color:var(--ion-color-dark);background:transparent;padding-left:0}\n"] }]
|
|
542
542
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
543
543
|
type: Input
|
|
544
544
|
}], isModal: [{
|
|
545
545
|
type: Input
|
|
546
546
|
}] } });
|
|
547
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Blcm1pc3Npb25zLXZpZXcvcGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFrQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xF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Ozs0RkFnVVQsd0JBQXdCO2tCQTNVcEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0xUO3dEQXlKUSxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFwcHNPdXRsaW5lLCBidXNpbmVzc091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9waWxsL3BpbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9vcmcuc2VydmljZSc7XG5pbXBvcnQgeyBjb25uZWN0UGFnZVJlZnJlc2ggfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wYWdlLXJlZnJlc2gvcGFnZS1yZWZyZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlLFxuICBQZXJtaXNzaW9uQ2F0YWxvZ1Jlc3BvbnNlLFxuICBQZXJtQ2hpcCxcbiAgUGVybWlzc2lvblNjb3BlR3JvdXAsXG4gIGNsYXNzaWZ5Q2hpcCxcbiAgZ3JvdXBQZXJtaXNzaW9uc0J5U2NvcGUsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9wZXJtaXNzaW9uLWNhdGFsb2cuc2VydmljZSc7XG5cbmltcG9ydCB7IFBlcm1pc3Npb25zVmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUEVSTUlTU0lPTlNfVklFV19JMThOIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy12aWV3LmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5QZXJtaXNzaW9ucyc7XG5cbmludGVyZmFjZSBSb2xlVmlldyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlzU3lzdGVtOiBib29sZWFuO1xuICBncm91cHM6IFBlcm1pc3Npb25TY29wZUdyb3VwW107XG4gIGhhc1Blcm1zOiBib29sZWFuO1xufVxuXG4vKipcbiAqIGB2YWwtcGVybWlzc2lvbnMtdmlld2Ag4oCUIHZpc3RhIFBlcm1pc29zIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuXG4gKiBWaXNvciBSQkFDIGRlIHNvbG8gbGVjdHVyYTogbXVlc3RyYSBsb3Mgcm9sZXMgZGVsIHNpc3RlbWEgKFZpc29yL0VkaXRvci9BZG1pbiArXG4gKiByb2xlcyBkZSBwbGF0YWZvcm1hKSB5IGxvcyByb2xlcyBwZXJzb25hbGl6YWRvcyBkZSBsYSBvcmcgYWN0aXZhLCBjb24gZWxcbiAqIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyBhZ3J1cGFkbyBwb3IgYWxjYW5jZSAoYXBwIGFjdHVhbCAvIHBsYXRhZm9ybWEgLyBvdHJhcyBhcHBzKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqICoqUkJBQyBpbnRlcm5vKiogKGNvbW8gYG9yZ2FuaXphdGlvbi12aWV3YCk6IGxlZSBsYSBvcmcgYWN0aXZhIHbDrWFcbiAqIGBBdXRoU2VydmljZS51c2VyKCkuYWN0aXZlT3JnSWRgLiBMYSB2aXN0YSBOTyBtdXRhIG5hZGEg4oCUIGVsIGNvbnRyb2wgZGUgcXVpw6luXG4gKiBwdWVkZSB2ZXJsYSBlcyByZXNwb25zYWJpbGlkYWQgZGVsIGd1YXJkIGRlIHJ1dGEgZGVsIGNvbnN1bWVyOyBubyBoYXkgZ2F0aW5nXG4gKiBmaW5vIGludGVybm8gbmkgc2UgZXhwb25lIGNvbW8gY29uZmlnLlxuICpcbiAqIERhdG9zOiBgZm9ya0pvaW5gIGRlIGBPcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyhvcmdJZClgIChyb2xlcyBkZSBsYSBvcmcpICtcbiAqIGBQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2UuZ2V0Q2F0YWxvZyhvcmdJZClgIChjYXTDoWxvZ28gKyBhcHBJZCBhY3R1YWwpLiBFbFxuICogY2F0w6Fsb2dvIGRlZmluZSBlbCBhbGNhbmNlIChgc2NvcGVgL2BhcHBJZGApIGRlIGNhZGEgcmVjdXJzbyBwYXJhIGFncnVwYXIuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgIHNlXG4gKiBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLiBBdXRvLXJlZ2lzdHJhXG4gKiBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZSAoZGVmYXVsdFxuICogYFNldHRpbmdzLlBlcm1pc3Npb25zYCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wZXJtaXNzaW9ucy12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkljb24sXG4gICAgU2tlbGV0b25MYXlvdXRDb21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBQaWxsQ29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLWNvbnRhaW5lciBbcHJvcHNdPVwieyBzaXplOiAnbWQnLCBwYWRkaW5nOiAnbm9uZScgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHR0KCdwYWdlVGl0bGUnKSB9XCIgLz5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29udGVudDogdHQoJ3BhZ2VEZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdsaXN0Jywgcm93czogNCB9XCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAobG9hZEVycm9yKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3Itcm93XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnZXJyb3JUaXRsZScpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJyZXRyeUJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwibG9hZCgpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dTeXN0ZW1Sb2xlcykge1xuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJwZXJtLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcm0tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzeXN0ZW1Sb2xlc1RpdGxlJyksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ3N5c3RlbVJvbGVzSGludCcpLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtbGlzdFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHJvbGUgb2Ygc3lzdGVtUm9sZXMoKTsgdHJhY2sgcm9sZS5pZCkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm9sZS1jYXJkX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fbmFtZVwiPnt7IHJvbGVMYWJlbChyb2xlLm5hbWUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtcGlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHR0KCdzeXN0ZW1CYWRnZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6ICdib2xkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJvbGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fZGVzY1wiPnt7IHJvbGUuZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICghcm9sZS5oYXNQZXJtcykge1xuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tY2hpcCBwZXJtLWNoaXAtLWVtcHR5XCI+e3sgdHQoJ25vUGVybWlzc2lvbnMnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoZyBvZiByb2xlLmdyb3VwczsgdHJhY2sgZy5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidwZXJtLWdyb3VwIHBlcm0tZ3JvdXAtLScgKyBnLnNjb3BlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1ncm91cF9fYmFkZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGcuc2NvcGUgPT09ICdhcHAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFwcHMtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZy5zY29wZSA9PT0gJ29yZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnVzaW5lc3Mtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGcubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNoaXAgb2YgZy5jaGlwczsgdHJhY2sgY2hpcC5yZXNvdXJjZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidwZXJtLWNoaXAgcGVybS1jaGlwLS0nICsgY2hpcFR5cGUoY2hpcClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInBlcm0tY2hpcF9fcmVzb3VyY2VcIj57eyBjaGlwLnJlc291cmNlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWNoaXAuaXNBbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tY2hpcF9fYWN0aW9uc1wiPnt7IGNoaXAuYWN0aW9ucy5qb2luKCcsICcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0N1c3RvbVJvbGVzKSB7XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInBlcm0tc2VjdGlvblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1zZWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ2N1c3RvbVJvbGVzVGl0bGUnKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnY3VzdG9tUm9sZXNIaW50JyksXG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKGN1c3RvbVJvbGVzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnbm9DdXN0b21Sb2xlcycpLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm9sZS1saXN0XCI+XG4gICAgICAgICAgICAgICAgICBAZm9yIChyb2xlIG9mIGN1c3RvbVJvbGVzKCk7IHRyYWNrIHJvbGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRfX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX25hbWVcIj57eyByb2xlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChyb2xlLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fZGVzY1wiPnt7IHJvbGUuZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIXJvbGUuaGFzUGVybXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1jaGlwIHBlcm0tY2hpcC0tZW1wdHlcIj57eyB0dCgnbm9QZXJtaXNzaW9ucycpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChnIG9mIHJvbGUuZ3JvdXBzOyB0cmFjayBnLmtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIncGVybS1ncm91cCBwZXJtLWdyb3VwLS0nICsgZy5zY29wZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGVybS1ncm91cF9fYmFkZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZy5zY29wZSA9PT0gJ2FwcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcHBzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnLnNjb3BlID09PSAnb3JnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImJ1c2luZXNzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZy5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoY2hpcCBvZiBnLmNoaXBzOyB0cmFjayBjaGlwLnJlc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCIncGVybS1jaGlwIHBlcm0tY2hpcC0tJyArIGNoaXBUeXBlKGNoaXApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInBlcm0tY2hpcF9fcmVzb3VyY2VcIj57eyBjaGlwLnJlc291cmNlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghY2hpcC5pc0FsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWNoaXBfX2FjdGlvbnNcIj57eyBjaGlwLmFjdGlvbnMuam9pbignLCAnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC92YWwtY29udGFpbmVyPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAvKiBBbmNobyB5IGNyZWNpbWllbnRvIGNvbiBlbCByYWlsIGNvbGFwc2FkbyBsb3MgZGEgdmFsLWNvbnRhaW5lciAoc2l6ZVxuICAgICAgICAgJ21kJyksIG5vIENTUyBsb2NhbDogdmVyIGNvbnRhaW5lci5jb21wb25lbnQuc2Nzcy4gKi9cbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAgIH1cbiAgICAgIC5zcGlubmVyLXJvdyxcbiAgICAgIC5lcnJvci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgICAgfVxuICAgICAgLnBlcm0tc2VjdGlvbl9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5yb2xlLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICB9XG4gICAgICAucm9sZS1jYXJkIHtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMTIpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZF9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIH1cbiAgICAgIC5yb2xlLWNhcmRfX25hbWUge1xuICAgICAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5yb2xlLWNhcmRfX2Rlc2Mge1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWdyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICB9XG4gICAgICAvKiBCYWRnZSBkZSBhbGNhbmNlIGRlbCBncnVwbyDigJQgY29sb3IgY29tdW5pY2Egc2kgZWwgcGVybWlzbyBlcyBnZW5lcmFsLFxuICAgICAgICAgZGUgbGEgYXBwIGFjdHVhbCwgbyBkZSBvdHJhIGFwcCAoYW50ZXMgZXJhIHVuIGxhYmVsIGdyaXMgcGxhbm8pLiAqL1xuICAgICAgLnBlcm0tZ3JvdXBfX2JhZGdlIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICAgICAgcGFkZGluZzogM3B4IDlweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgfVxuICAgICAgLnBlcm0tZ3JvdXAtLWFwcCAucGVybS1ncm91cF9fYmFkZ2Uge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiksIDAuMTIpO1xuICAgICAgfVxuICAgICAgLnBlcm0tZ3JvdXAtLW9yZyAucGVybS1ncm91cF9fYmFkZ2Uge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsIHZhcigtLWlvbi1jb2xvci1kYXJrKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSwgcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG4gICAgICB9XG4gICAgICAucGVybS1ncm91cC0tb3RoZXIgLnBlcm0tZ3JvdXBfX2JhZGdlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci10ZXJ0aWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXRlcnRpYXJ5LXJnYiksIDAuMTIpO1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXBfX3Jlc291cmNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXBfX2FjdGlvbnMge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICAgIH1cbiAgICAgIC8qIFNlbcOhbnRpY286IFRvZG8gPSBwcmltYXJ5IHRpbnQgKyBib3JkZSAqL1xuICAgICAgLnBlcm0tY2hpcC0tYWxsIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IpLCAwLjEpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiKSwgMC4zKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXNoYWRlLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkpO1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcC0tYWxsIC5wZXJtLWNoaXBfX3Jlc291cmNlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXNoYWRlLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkpO1xuICAgICAgfVxuICAgICAgLyogRXNjcml0dXJhL2dlc3Rpw7NuID0gc2Vjb25kYXJ5IHRpbnQgKi9cbiAgICAgIC5wZXJtLWNoaXAtLXdyaXRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5LXJnYiksIDAuMDgpO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeS1yZ2IpLCAwLjIpO1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcC0td3JpdGUgLnBlcm0tY2hpcF9fcmVzb3VyY2Uge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeS1zaGFkZSwgdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeSkpO1xuICAgICAgfVxuICAgICAgLyogTGVjdHVyYSA9IG5ldXRybyAqL1xuICAgICAgLnBlcm0tY2hpcC0tcmVhZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgcmdiYSgwLCAwLCAwLCAwLjA0KSk7XG4gICAgICB9XG4gICAgICAucGVybS1jaGlwLS1lbXB0eSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIGNhdGFsb2cgPSBpbmplY3QoUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwZXJtaXNzaW9uc0NvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFBlcm1pc3Npb25zUm91dGVzYCkuXG4gICAqIGByZXNvbHZlZENvbmZpZ2AgbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMg4oCUIGBASW5wdXRgIGdhbmEgc29icmUgcm91dGUgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IFBlcm1pc3Npb25zVmlld0NvbmZpZztcblxuICAvKipcbiAgICogQ3VhbmRvIGB0cnVlYCwgbGEgdmlzdGEgZXN0w6EgZW1iZWJpZGEgZW4gdW4gbW9kYWwg4oCUIHN1cHJpbWUgZWwgYmFjay1oZWFkZXJcbiAgICogKGxvIGdlc3Rpb25hIGVsIG1vZGFsIHBhZHJlKS4gRGVmYXVsdCBgZmFsc2VgICh1c28gY29tbyBydXRhKS5cbiAgICovXG4gIEBJbnB1dCgpIGlzTW9kYWwgPSBmYWxzZTtcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFJlcXVpcmVkPFBlcm1pc3Npb25zVmlld0NvbmZpZz4+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsncGVybWlzc2lvbnNDb25maWcnXSA/PyB7fSkgYXMgUGVybWlzc2lvbnNWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogUGVybWlzc2lvbnNWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1N5c3RlbVJvbGVzOiBtZXJnZWQuc2hvd1N5c3RlbVJvbGVzID8/IHRydWUsXG4gICAgICBzaG93Q3VzdG9tUm9sZXM6IG1lcmdlZC5zaG93Q3VzdG9tUm9sZXMgPz8gdHJ1ZSxcbiAgICAgIHNob3dPdGhlckFwcFBlcm1pc3Npb25zOiBtZXJnZWQuc2hvd090aGVyQXBwUGVybWlzc2lvbnMgPz8gZmFsc2UsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGxvYWRFcnJvciA9IHNpZ25hbDx1bmtub3duIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9sZXMgPSBzaWduYWw8Um9sZVZpZXdbXT4oW10pO1xuXG4gIHJlYWRvbmx5IHN5c3RlbVJvbGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yb2xlcygpLmZpbHRlcihyID0+IHIuaXNTeXN0ZW0pKTtcbiAgcmVhZG9ubHkgY3VzdG9tUm9sZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJvbGVzKCkuZmlsdGVyKHIgPT4gIXIuaXNTeXN0ZW0pKTtcblxuICByZWFkb25seSBhY3RpdmVPcmdJZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1ID0gdGhpcy5hdXRoLnVzZXIoKSBhcyB7XG4gICAgICBhY3RpdmVPcmdJZD86IHN0cmluZztcbiAgICAgIGFjdGl2ZU9yZz86IHN0cmluZztcbiAgICB9IHwgbnVsbDtcbiAgICByZXR1cm4gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnID8/ICcnO1xuICB9KTtcblxuICByZWFkb25seSByZXRyeUJ1dHRvblByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxCdXR0b25NZXRhZGF0YT4+KCgpID0+ICh7XG4gICAgdGV4dDogdGhpcy50dCgncmV0cnknKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgc3RhdGU6IHRoaXMubG9hZGluZygpID8gQ29tcG9uZW50U3RhdGVzLkRJU0FCTEVEIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gIH0pKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IGFwcHNPdXRsaW5lLCBidXNpbmVzc091dGxpbmUgfSk7XG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKG5zLCBQRVJNSVNTSU9OU19WSUVXX0kxOE4pO1xuICAgIHRoaXMubG9hZCgpO1xuICAgIGNvbm5lY3RQYWdlUmVmcmVzaCgoKSA9PiB0aGlzLmxvYWQoKSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNNb2RhbCkge1xuICAgICAgdGhpcy5uYXYuc2V0QmFja0hlYWRlcigncGFnZVRpdGxlJywgdGhpcy5ucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBsb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IG9yZ0lkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgIGlmICghb3JnSWQpIHJldHVybjtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMubG9hZEVycm9yLnNldChudWxsKTtcbiAgICBmb3JrSm9pbih7XG4gICAgICByb2xlczogdGhpcy5vcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyhvcmdJZCksXG4gICAgICBjYXRhbG9nOiB0aGlzLmNhdGFsb2cuZ2V0Q2F0YWxvZyhvcmdJZCksXG4gICAgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh7IHJvbGVzOiByYXdSb2xlcywgY2F0YWxvZyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBJZCA9IGNhdGFsb2cuYXBwSWQ7XG4gICAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgICAgIHRoaXMucm9sZXMuc2V0KFxuICAgICAgICAgIChyYXdSb2xlcyA/PyBbXSkubWFwKChyOiBhbnkpID0+XG4gICAgICAgICAgICB0aGlzLmJ1aWxkUm9sZVZpZXcoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogci5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiByLm5hbWUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHIuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgcGVybWlzc2lvbnM6IHIucGVybWlzc2lvbnMgPz8gW10sXG4gICAgICAgICAgICAgICAgaXNTeXN0ZW06IHIuaXNTeXN0ZW0gPz8gZmFsc2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNhdGFsb2csXG4gICAgICAgICAgICAgIGN1cnJlbnRBcHBJZCxcbiAgICAgICAgICAgICAgbG9jYWxlXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KGVycik7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGNoaXBUeXBlKGNoaXA6IFBlcm1DaGlwKTogJ2FsbCcgfCAnd3JpdGUnIHwgJ3JlYWQnIHtcbiAgICByZXR1cm4gY2xhc3NpZnlDaGlwKGNoaXAucmF3QWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUm9sZVZpZXcoXG4gICAgcm9sZToge1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgICAgaXNTeXN0ZW06IGJvb2xlYW47XG4gICAgfSxcbiAgICBjYXRhbG9nOiBQaWNrPFBlcm1pc3Npb25DYXRhbG9nUmVzcG9uc2UsICdwZXJtaXNzaW9ucycgfCAnYWN0aW9uTGFiZWxzJz4sXG4gICAgY3VycmVudEFwcElkOiBzdHJpbmcsXG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgKTogUm9sZVZpZXcge1xuICAgIGNvbnN0IGFsbEdyb3VwcyA9IGdyb3VwUGVybWlzc2lvbnNCeVNjb3BlKFxuICAgICAgcm9sZS5wZXJtaXNzaW9ucyxcbiAgICAgIGNhdGFsb2csXG4gICAgICBjdXJyZW50QXBwSWQsXG4gICAgICBsb2NhbGUsXG4gICAgICB7XG4gICAgICAgIGFwcDogdGhpcy50dCgnZ3JvdXBBcHAnKSxcbiAgICAgICAgb3JnOiB0aGlzLnR0KCdncm91cE9yZycpLFxuICAgICAgICBvdGhlcjogdGhpcy50dCgnZ3JvdXBPdGhlcicpLFxuICAgICAgICBhcHBMYWJlbDogKGFwcElkOiBzdHJpbmcpID0+IHRoaXMuYXBwTGFiZWwoYXBwSWQpLFxuICAgICAgfSxcbiAgICAgIHsgYWxsTGFiZWw6IHRoaXMudHQoJ3Blcm1BbGwnKSB9XG4gICAgKTtcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc2hvd090aGVyQXBwUGVybWlzc2lvbnNcbiAgICAgID8gYWxsR3JvdXBzXG4gICAgICA6IGFsbEdyb3Vwcy5maWx0ZXIoZyA9PiBnLnNjb3BlICE9PSAnb3RoZXInKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogcm9sZS5pZCxcbiAgICAgIG5hbWU6IHJvbGUubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiByb2xlLmRlc2NyaXB0aW9uLFxuICAgICAgaXNTeXN0ZW06IHJvbGUuaXNTeXN0ZW0sXG4gICAgICBncm91cHMsXG4gICAgICBoYXNQZXJtczogZ3JvdXBzLmxlbmd0aCA+IDAsXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0dChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cblxuICBhcHBMYWJlbChhcHBJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBrZXkgPSBgYXBwXyR7YXBwSWR9YDtcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMudHQoa2V5KTtcbiAgICByZXR1cm4gbGFiZWwgPT09IGtleSA/IGFwcElkIDogbGFiZWw7XG4gIH1cblxuICByb2xlTGFiZWwobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICB2aWV3ZXI6ICdyb2xlVmlld2VyJyxcbiAgICAgIGVkaXRvcjogJ3JvbGVFZGl0b3InLFxuICAgICAgYWRtaW46ICdyb2xlQWRtaW4nLFxuICAgICAgc3VwZXJfYWRtaW46ICdyb2xlU3VwZXJBZG1pbicsXG4gICAgICBiaW5nb19hZG1pbjogJ3JvbGVCaW5nb0FkbWluJyxcbiAgICAgIGJpbmdvX3Rlc29yZXJvOiAncm9sZUJpbmdvVGVzb3Jlcm8nLFxuICAgICAgYmluZ29fdGFxdWlsbGE6ICdyb2xlQmluZ29UYXF1aWxsYScsXG4gICAgICBiaW5nb19vcGVyYXRvcjogJ3JvbGVCaW5nb09wZXJhdG9yJyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnR0KG1hcFtuYW1lXSA/PyBuYW1lKTtcbiAgfVxufVxuIl19
|
|
547
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Blcm1pc3Npb25zLXZpZXcvcGVybWlzc2lvbnMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUV2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFrQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xF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Ozs0RkFnVVQsd0JBQXdCO2tCQTNVcEMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0xUO3dEQXlKUSxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFwcHNPdXRsaW5lLCBidXNpbmVzc091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9waWxsL3BpbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbk1ldGFkYXRhLCBDb21wb25lbnRTdGF0ZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9vcmcuc2VydmljZSc7XG5pbXBvcnQgeyBjb25uZWN0UGFnZVJlZnJlc2ggfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wYWdlLXJlZnJlc2gvcGFnZS1yZWZyZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgUGVybWlzc2lvbkNhdGFsb2dTZXJ2aWNlLFxuICBQZXJtaXNzaW9uQ2F0YWxvZ1Jlc3BvbnNlLFxuICBQZXJtQ2hpcCxcbiAgUGVybWlzc2lvblNjb3BlR3JvdXAsXG4gIGNsYXNzaWZ5Q2hpcCxcbiAgZ3JvdXBQZXJtaXNzaW9uc0J5U2NvcGUsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy9wZXJtaXNzaW9uLWNhdGFsb2cuc2VydmljZSc7XG5cbmltcG9ydCB7IFBlcm1pc3Npb25zVmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUEVSTUlTU0lPTlNfVklFV19JMThOIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy12aWV3LmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5QZXJtaXNzaW9ucyc7XG5cbmludGVyZmFjZSBSb2xlVmlldyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlzU3lzdGVtOiBib29sZWFuO1xuICBncm91cHM6IFBlcm1pc3Npb25TY29wZUdyb3VwW107XG4gIGhhc1Blcm1zOiBib29sZWFuO1xufVxuXG4vKipcbiAqIGB2YWwtcGVybWlzc2lvbnMtdmlld2Ag4oCUIHZpc3RhIFBlcm1pc29zIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuXG4gKiBWaXNvciBSQkFDIGRlIHNvbG8gbGVjdHVyYTogbXVlc3RyYSBsb3Mgcm9sZXMgZGVsIHNpc3RlbWEgKFZpc29yL0VkaXRvci9BZG1pbiArXG4gKiByb2xlcyBkZSBwbGF0YWZvcm1hKSB5IGxvcyByb2xlcyBwZXJzb25hbGl6YWRvcyBkZSBsYSBvcmcgYWN0aXZhLCBjb24gZWxcbiAqIGNhdMOhbG9nbyBkZSBwZXJtaXNvcyBhZ3J1cGFkbyBwb3IgYWxjYW5jZSAoYXBwIGFjdHVhbCAvIHBsYXRhZm9ybWEgLyBvdHJhcyBhcHBzKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqICoqUkJBQyBpbnRlcm5vKiogKGNvbW8gYG9yZ2FuaXphdGlvbi12aWV3YCk6IGxlZSBsYSBvcmcgYWN0aXZhIHbDrWFcbiAqIGBBdXRoU2VydmljZS51c2VyKCkuYWN0aXZlT3JnSWRgLiBMYSB2aXN0YSBOTyBtdXRhIG5hZGEg4oCUIGVsIGNvbnRyb2wgZGUgcXVpw6luXG4gKiBwdWVkZSB2ZXJsYSBlcyByZXNwb25zYWJpbGlkYWQgZGVsIGd1YXJkIGRlIHJ1dGEgZGVsIGNvbnN1bWVyOyBubyBoYXkgZ2F0aW5nXG4gKiBmaW5vIGludGVybm8gbmkgc2UgZXhwb25lIGNvbW8gY29uZmlnLlxuICpcbiAqIERhdG9zOiBgZm9ya0pvaW5gIGRlIGBPcmdTZXJ2aWNlLmxpc3RPcmdSb2xlcyhvcmdJZClgIChyb2xlcyBkZSBsYSBvcmcpICtcbiAqIGBQZXJtaXNzaW9uQ2F0YWxvZ1NlcnZpY2UuZ2V0Q2F0YWxvZyhvcmdJZClgIChjYXTDoWxvZ28gKyBhcHBJZCBhY3R1YWwpLiBFbFxuICogY2F0w6Fsb2dvIGRlZmluZSBlbCBhbGNhbmNlIChgc2NvcGVgL2BhcHBJZGApIGRlIGNhZGEgcmVjdXJzbyBwYXJhIGFncnVwYXIuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgIHNlXG4gKiBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLiBBdXRvLXJlZ2lzdHJhXG4gKiBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZSAoZGVmYXVsdFxuICogYFNldHRpbmdzLlBlcm1pc3Npb25zYCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wZXJtaXNzaW9ucy12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkljb24sXG4gICAgU2tlbGV0b25MYXlvdXRDb21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBQaWxsQ29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIENvbnRhaW5lckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLWNvbnRhaW5lciBbcHJvcHNdPVwieyBzaXplOiAnbWQnLCBwYWRkaW5nOiAnbm9uZScgfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHR0KCdwYWdlVGl0bGUnKSB9XCIgLz5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgY29udGVudDogdHQoJ3BhZ2VEZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdsaXN0Jywgcm93czogNCB9XCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAobG9hZEVycm9yKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3Itcm93XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnZXJyb3JUaXRsZScpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cInJldHJ5QnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJsb2FkKClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1N5c3RlbVJvbGVzKSB7XG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInBlcm0tc2VjdGlvblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1zZWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ3N5c3RlbVJvbGVzVGl0bGUnKSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnc3lzdGVtUm9sZXNIaW50JyksXG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWxpc3RcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChyb2xlIG9mIHN5c3RlbVJvbGVzKCk7IHRyYWNrIHJvbGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtY2FyZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX25hbWVcIj57eyByb2xlTGFiZWwocm9sZS5uYW1lKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8dmFsLXBpbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiB0dCgnc3lzdGVtQmFkZ2UnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChyb2xlLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyb2xlLWNhcmRfX2Rlc2NcIj57eyByb2xlLmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIXJvbGUuaGFzUGVybXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVybS1jaGlwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWNoaXAgcGVybS1jaGlwLS1lbXB0eVwiPnt7IHR0KCdub1Blcm1pc3Npb25zJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGcgb2Ygcm9sZS5ncm91cHM7IHRyYWNrIGcua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIncGVybS1ncm91cCBwZXJtLWdyb3VwLS0nICsgZy5zY29wZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tZ3JvdXBfX2JhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnLnNjb3BlID09PSAnYXBwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcHBzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGcuc2NvcGUgPT09ICdvcmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImJ1c2luZXNzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcm0tY2hpcHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjaGlwIG9mIGcuY2hpcHM7IHRyYWNrIGNoaXAucmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCIncGVybS1jaGlwIHBlcm0tY2hpcC0tJyArIGNoaXBUeXBlKGNoaXApXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJwZXJtLWNoaXBfX3Jlc291cmNlXCI+e3sgY2hpcC5yZXNvdXJjZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFjaGlwLmlzQWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWNoaXBfX2FjdGlvbnNcIj57eyBjaGlwLmFjdGlvbnMuam9pbignLCAnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dDdXN0b21Sb2xlcykge1xuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJwZXJtLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcm0tc2VjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdjdXN0b21Sb2xlc1RpdGxlJyksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdHQoJ2N1c3RvbVJvbGVzSGludCcpLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKGN1c3RvbVJvbGVzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0dCgnbm9DdXN0b21Sb2xlcycpLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb2xlLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKHJvbGUgb2YgY3VzdG9tUm9sZXMoKTsgdHJhY2sgcm9sZS5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm9sZS1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvbGUtY2FyZF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJvbGUtY2FyZF9fbmFtZVwiPnt7IHJvbGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJvbGUuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicm9sZS1jYXJkX19kZXNjXCI+e3sgcm9sZS5kZXNjcmlwdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmICghcm9sZS5oYXNQZXJtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcm0tY2hpcHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWNoaXAgcGVybS1jaGlwLS1lbXB0eVwiPnt7IHR0KCdub1Blcm1pc3Npb25zJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGcgb2Ygcm9sZS5ncm91cHM7IHRyYWNrIGcua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidwZXJtLWdyb3VwIHBlcm0tZ3JvdXAtLScgKyBnLnNjb3BlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZXJtLWdyb3VwX19iYWRnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChnLnNjb3BlID09PSAnYXBwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFwcHMtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGcuc2NvcGUgPT09ICdvcmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnVzaW5lc3Mtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJtLWNoaXBzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjaGlwIG9mIGcuY2hpcHM7IHRyYWNrIGNoaXAucmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidwZXJtLWNoaXAgcGVybS1jaGlwLS0nICsgY2hpcFR5cGUoY2hpcClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwicGVybS1jaGlwX19yZXNvdXJjZVwiPnt7IGNoaXAucmVzb3VyY2UgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFjaGlwLmlzQWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcm0tY2hpcF9fYWN0aW9uc1wiPnt7IGNoaXAuYWN0aW9ucy5qb2luKCcsICcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L3ZhbC1jb250YWluZXI+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC8qIEFuY2hvIHkgY3JlY2ltaWVudG8gY29uIGVsIHJhaWwgY29sYXBzYWRvIGxvcyBkYSB2YWwtY29udGFpbmVyIChzaXplXG4gICAgICAgICAnbWQnKSwgbm8gQ1NTIGxvY2FsOiB2ZXIgY29udGFpbmVyLmNvbXBvbmVudC5zY3NzLiAqL1xuICAgICAgLnBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgfVxuICAgICAgLnNwaW5uZXItcm93LFxuICAgICAgLmVycm9yLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMzJweCAwO1xuICAgICAgfVxuICAgICAgLnBlcm0tc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICB9XG4gICAgICAucGVybS1zZWN0aW9uX19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnJvbGUtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5yb2xlLWNhcmQge1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xMikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wNyk7XG4gICAgICB9XG4gICAgICAucm9sZS1jYXJkX19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZF9fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLnJvbGUtY2FyZF9fZGVzYyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgfVxuICAgICAgLnBlcm0tZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC8qIEJhZGdlIGRlIGFsY2FuY2UgZGVsIGdydXBvIOKAlCBjb2xvciBjb211bmljYSBzaSBlbCBwZXJtaXNvIGVzIGdlbmVyYWwsXG4gICAgICAgICBkZSBsYSBhcHAgYWN0dWFsLCBvIGRlIG90cmEgYXBwIChhbnRlcyBlcmEgdW4gbGFiZWwgZ3JpcyBwbGFubykuICovXG4gICAgICAucGVybS1ncm91cF9fYmFkZ2Uge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42ODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgICAgICBwYWRkaW5nOiAzcHggOXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICB9XG4gICAgICAucGVybS1ncm91cC0tYXBwIC5wZXJtLWdyb3VwX19iYWRnZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiKSwgMC4xMik7XG4gICAgICB9XG4gICAgICAucGVybS1ncm91cC0tb3JnIC5wZXJtLWdyb3VwX19iYWRnZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyay1zaGFkZSwgdmFyKC0taW9uLWNvbG9yLW1lZGl1bSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUsIHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuICAgICAgfVxuICAgICAgLnBlcm0tZ3JvdXAtLW90aGVyIC5wZXJtLWdyb3VwX19iYWRnZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItdGVydGlhcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci10ZXJ0aWFyeS1yZ2IpLCAwLjEyKTtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXBzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXAge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgICAucGVybS1jaGlwX19yZXNvdXJjZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgICAucGVybS1jaGlwX19hY3Rpb25zIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgICB9XG4gICAgICAvKiBTZW3DoW50aWNvOiBUb2RvID0gcHJpbWFyeSB0aW50ICsgYm9yZGUgKi9cbiAgICAgIC5wZXJtLWNoaXAtLWFsbCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXByaW1hcnktcmdiKSwgMC4xKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiksIDAuMyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1zaGFkZSwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpKTtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXAtLWFsbCAucGVybS1jaGlwX19yZXNvdXJjZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1zaGFkZSwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpKTtcbiAgICAgIH1cbiAgICAgIC8qIEVzY3JpdHVyYS9nZXN0acOzbiA9IHNlY29uZGFyeSB0aW50ICovXG4gICAgICAucGVybS1jaGlwLS13cml0ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeS1yZ2IpLCAwLjA4KTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktcmdiKSwgMC4yKTtcbiAgICAgIH1cbiAgICAgIC5wZXJtLWNoaXAtLXdyaXRlIC5wZXJtLWNoaXBfX3Jlc291cmNlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktc2hhZGUsIHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnkpKTtcbiAgICAgIH1cbiAgICAgIC8qIExlY3R1cmEgPSBuZXV0cm8gKi9cbiAgICAgIC5wZXJtLWNoaXAtLXJlYWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsIHJnYmEoMCwgMCwgMCwgMC4wNCkpO1xuICAgICAgfVxuICAgICAgLnBlcm0tY2hpcC0tZW1wdHkge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgb3JnU2VydmljZSA9IGluamVjdChPcmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjYXRhbG9nID0gaW5qZWN0KFBlcm1pc3Npb25DYXRhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgcGVybWlzc2lvbnNDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hQZXJtaXNzaW9uc1JvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBgQElucHV0YCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBQZXJtaXNzaW9uc1ZpZXdDb25maWc7XG5cbiAgLyoqXG4gICAqIEN1YW5kbyBgdHJ1ZWAsIGxhIHZpc3RhIGVzdMOhIGVtYmViaWRhIGVuIHVuIG1vZGFsIOKAlCBzdXByaW1lIGVsIGJhY2staGVhZGVyXG4gICAqIChsbyBnZXN0aW9uYSBlbCBtb2RhbCBwYWRyZSkuIERlZmF1bHQgYGZhbHNlYCAodXNvIGNvbW8gcnV0YSkuXG4gICAqL1xuICBASW5wdXQoKSBpc01vZGFsID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxSZXF1aXJlZDxQZXJtaXNzaW9uc1ZpZXdDb25maWc+PigoKSA9PiB7XG4gICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ3Blcm1pc3Npb25zQ29uZmlnJ10gPz8ge30pIGFzIFBlcm1pc3Npb25zVmlld0NvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IFBlcm1pc3Npb25zVmlld0NvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3dTeXN0ZW1Sb2xlczogbWVyZ2VkLnNob3dTeXN0ZW1Sb2xlcyA/PyB0cnVlLFxuICAgICAgc2hvd0N1c3RvbVJvbGVzOiBtZXJnZWQuc2hvd0N1c3RvbVJvbGVzID8/IHRydWUsXG4gICAgICBzaG93T3RoZXJBcHBQZXJtaXNzaW9uczogbWVyZ2VkLnNob3dPdGhlckFwcFBlcm1pc3Npb25zID8/IGZhbHNlLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSBzaWduYWw8dW5rbm93biB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvbGVzID0gc2lnbmFsPFJvbGVWaWV3W10+KFtdKTtcblxuICByZWFkb25seSBzeXN0ZW1Sb2xlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucm9sZXMoKS5maWx0ZXIociA9PiByLmlzU3lzdGVtKSk7XG4gIHJlYWRvbmx5IGN1c3RvbVJvbGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yb2xlcygpLmZpbHRlcihyID0+ICFyLmlzU3lzdGVtKSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmV0cnlCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ3JldHJ5JyksXG4gICAgY29sb3I6ICdkYXJrJyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgIHR5cGU6ICdidXR0b24nLFxuICAgIHN0YXRlOiB0aGlzLmxvYWRpbmcoKSA/IENvbXBvbmVudFN0YXRlcy5ESVNBQkxFRCA6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICB9KSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWRkSWNvbnMoeyBhcHBzT3V0bGluZSwgYnVzaW5lc3NPdXRsaW5lIH0pO1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhucywgUEVSTUlTU0lPTlNfVklFV19JMThOKTtcbiAgICB0aGlzLmxvYWQoKTtcbiAgICBjb25uZWN0UGFnZVJlZnJlc2goKCkgPT4gdGhpcy5sb2FkKCkpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzTW9kYWwpIHtcbiAgICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIHRoaXMubnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgbG9hZCgpOiB2b2lkIHtcbiAgICBjb25zdCBvcmdJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICBpZiAoIW9yZ0lkKSByZXR1cm47XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmxvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgZm9ya0pvaW4oe1xuICAgICAgcm9sZXM6IHRoaXMub3JnU2VydmljZS5saXN0T3JnUm9sZXMob3JnSWQpLFxuICAgICAgY2F0YWxvZzogdGhpcy5jYXRhbG9nLmdldENhdGFsb2cob3JnSWQpLFxuICAgIH0pLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyByb2xlczogcmF3Um9sZXMsIGNhdGFsb2cgfSkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwSWQgPSBjYXRhbG9nLmFwcElkO1xuICAgICAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmkxOG4ubGFuZygpO1xuICAgICAgICB0aGlzLnJvbGVzLnNldChcbiAgICAgICAgICAocmF3Um9sZXMgPz8gW10pLm1hcCgocjogYW55KSA9PlxuICAgICAgICAgICAgdGhpcy5idWlsZFJvbGVWaWV3KFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IHIuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogci5uYW1lLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIHBlcm1pc3Npb25zOiByLnBlcm1pc3Npb25zID8/IFtdLFxuICAgICAgICAgICAgICAgIGlzU3lzdGVtOiByLmlzU3lzdGVtID8/IGZhbHNlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjYXRhbG9nLFxuICAgICAgICAgICAgICBjdXJyZW50QXBwSWQsXG4gICAgICAgICAgICAgIGxvY2FsZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9hZEVycm9yLnNldChlcnIpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBjaGlwVHlwZShjaGlwOiBQZXJtQ2hpcCk6ICdhbGwnIHwgJ3dyaXRlJyB8ICdyZWFkJyB7XG4gICAgcmV0dXJuIGNsYXNzaWZ5Q2hpcChjaGlwLnJhd0FjdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJvbGVWaWV3KFxuICAgIHJvbGU6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICAgIGlzU3lzdGVtOiBib29sZWFuO1xuICAgIH0sXG4gICAgY2F0YWxvZzogUGljazxQZXJtaXNzaW9uQ2F0YWxvZ1Jlc3BvbnNlLCAncGVybWlzc2lvbnMnIHwgJ2FjdGlvbkxhYmVscyc+LFxuICAgIGN1cnJlbnRBcHBJZDogc3RyaW5nLFxuICAgIGxvY2FsZTogc3RyaW5nXG4gICk6IFJvbGVWaWV3IHtcbiAgICBjb25zdCBhbGxHcm91cHMgPSBncm91cFBlcm1pc3Npb25zQnlTY29wZShcbiAgICAgIHJvbGUucGVybWlzc2lvbnMsXG4gICAgICBjYXRhbG9nLFxuICAgICAgY3VycmVudEFwcElkLFxuICAgICAgbG9jYWxlLFxuICAgICAge1xuICAgICAgICBhcHA6IHRoaXMudHQoJ2dyb3VwQXBwJyksXG4gICAgICAgIG9yZzogdGhpcy50dCgnZ3JvdXBPcmcnKSxcbiAgICAgICAgb3RoZXI6IHRoaXMudHQoJ2dyb3VwT3RoZXInKSxcbiAgICAgICAgYXBwTGFiZWw6IChhcHBJZDogc3RyaW5nKSA9PiB0aGlzLmFwcExhYmVsKGFwcElkKSxcbiAgICAgIH0sXG4gICAgICB7IGFsbExhYmVsOiB0aGlzLnR0KCdwZXJtQWxsJykgfVxuICAgICk7XG4gICAgY29uc3QgZ3JvdXBzID0gdGhpcy5yZXNvbHZlZENvbmZpZygpLnNob3dPdGhlckFwcFBlcm1pc3Npb25zXG4gICAgICA/IGFsbEdyb3Vwc1xuICAgICAgOiBhbGxHcm91cHMuZmlsdGVyKGcgPT4gZy5zY29wZSAhPT0gJ290aGVyJyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHJvbGUuaWQsXG4gICAgICBuYW1lOiByb2xlLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcm9sZS5kZXNjcmlwdGlvbixcbiAgICAgIGlzU3lzdGVtOiByb2xlLmlzU3lzdGVtLFxuICAgICAgZ3JvdXBzLFxuICAgICAgaGFzUGVybXM6IGdyb3Vwcy5sZW5ndGggPiAwLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG5cbiAgYXBwTGFiZWwoYXBwSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5ID0gYGFwcF8ke2FwcElkfWA7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnR0KGtleSk7XG4gICAgcmV0dXJuIGxhYmVsID09PSBrZXkgPyBhcHBJZCA6IGxhYmVsO1xuICB9XG5cbiAgcm9sZUxhYmVsKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgdmlld2VyOiAncm9sZVZpZXdlcicsXG4gICAgICBlZGl0b3I6ICdyb2xlRWRpdG9yJyxcbiAgICAgIGFkbWluOiAncm9sZUFkbWluJyxcbiAgICAgIHN1cGVyX2FkbWluOiAncm9sZVN1cGVyQWRtaW4nLFxuICAgICAgYmluZ29fYWRtaW46ICdyb2xlQmluZ29BZG1pbicsXG4gICAgICBiaW5nb190ZXNvcmVybzogJ3JvbGVCaW5nb1Rlc29yZXJvJyxcbiAgICAgIGJpbmdvX3RhcXVpbGxhOiAncm9sZUJpbmdvVGFxdWlsbGEnLFxuICAgICAgYmluZ29fb3BlcmF0b3I6ICdyb2xlQmluZ29PcGVyYXRvcicsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy50dChtYXBbbmFtZV0gPz8gbmFtZSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/components/organisms/request-review-panel/request-review-panel.component.mjs
CHANGED
|
@@ -14,8 +14,8 @@ const STATUS_STYLE = {
|
|
|
14
14
|
rejected: { bg: '#ef4444', color: '#fff' },
|
|
15
15
|
in_review: { bg: '#fef3c7', color: '#92400e' },
|
|
16
16
|
pending: { bg: 'var(--ion-color-light, #f4f5f8)', color: 'var(--ion-color-dark, #222)' },
|
|
17
|
-
cancelled: { bg: 'var(--ion-color-light, #f4f5f8)', color: 'var(--ion-color-
|
|
18
|
-
closed: { bg: 'var(--ion-color-light, #f4f5f8)', color: 'var(--ion-color-
|
|
17
|
+
cancelled: { bg: 'var(--ion-color-light, #f4f5f8)', color: 'var(--ion-color-medium, #636469)' },
|
|
18
|
+
closed: { bg: 'var(--ion-color-light, #f4f5f8)', color: 'var(--ion-color-medium, #636469)' },
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
21
|
* Panel de revisión de una Request genérica (ADR-061/062): status + acciones
|
|
@@ -268,7 +268,7 @@ export class RequestReviewPanelComponent {
|
|
|
268
268
|
[props]="{
|
|
269
269
|
token: 'reject',
|
|
270
270
|
text: t('reject'),
|
|
271
|
-
color: '
|
|
271
|
+
color: 'medium',
|
|
272
272
|
fill: 'outline',
|
|
273
273
|
shape: 'round',
|
|
274
274
|
size: 'small',
|
|
@@ -430,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
430
430
|
[props]="{
|
|
431
431
|
token: 'reject',
|
|
432
432
|
text: t('reject'),
|
|
433
|
-
color: '
|
|
433
|
+
color: 'medium',
|
|
434
434
|
fill: 'outline',
|
|
435
435
|
shape: 'round',
|
|
436
436
|
size: 'small',
|
|
@@ -523,4 +523,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
523
523
|
</div>
|
|
524
524
|
`, styles: [".page{display:flex;flex-direction:column;gap:14px}.skel{display:flex;flex-direction:column;gap:12px}.skel val-skeleton{display:block}.detail{display:flex;flex-direction:column;gap:14px}.entity-hero{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--ion-card-background, var(--ion-background-color, #fff));border-radius:14px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));width:100%;text-align:left;cursor:pointer}.entity-hero:disabled{cursor:default}.entity-hero__media{width:56px;height:56px;border-radius:12px;overflow:hidden;flex-shrink:0;background:var(--ion-color-light, #f4f5f8);display:flex;align-items:center;justify-content:center}.entity-hero__img{width:100%;height:100%;object-fit:cover}.entity-hero__placeholder{font-size:1.625rem}.entity-hero__body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.entity-hero__label{font-size:.75rem;color:var(--ion-color-dark, #636469)}.entity-hero__name{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-hero__chevron{font-size:1.5rem;color:var(--ion-color-dark, #92949c);line-height:1}.status-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border-radius:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));border-left:4px solid;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.status-card__top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.status-badge{display:inline-block;padding:4px 12px;border-radius:100px;font-size:.8125rem;font-weight:700}.submitted-at{font-size:.8125rem;color:var(--ion-color-dark-shade, #1e2023)}.actions-row{display:flex;gap:10px;flex-wrap:wrap}.section{background:var(--ion-card-background, var(--ion-background-color, #fff));border-radius:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .08));overflow:hidden}.section__title{margin:0;font-size:.8125rem;font-weight:600;color:var(--ion-color-dark-shade, #1e2023);padding:12px 16px 0}.section-pad{padding:12px 16px}.submitter-row{display:flex;align-items:center;gap:12px;padding:12px 16px}.submitter-avatar{width:40px;height:40px;border-radius:50%;background:var(--ion-color-primary, #313131);color:var(--ion-color-primary-contrast, #fff);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;flex-shrink:0}.submitter-info{display:flex;flex-direction:column;gap:2px;min-width:0}.submitter-name{font-size:.9375rem;font-weight:600;color:var(--ion-text-color, #000)}.submitter-email{font-size:.8125rem;color:var(--ion-color-dark, #636469);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-row{display:flex;flex-direction:column;gap:3px;padding:11px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .06))}.field-row:last-child{border-bottom:none}.field-row__label{font-size:.75rem;color:var(--ion-color-dark, #636469);text-transform:capitalize}.field-row__value{font-size:.9375rem;color:var(--ion-text-color, #000);font-weight:500;word-break:break-word;white-space:pre-line}.no-comments{margin:0;padding:12px 16px;font-size:.875rem;color:var(--ion-color-dark, #92949c)}.comments{list-style:none;margin:0;padding:0}.comment{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .06))}.comment:last-child{border-bottom:none}.comment__avatar{width:32px;height:32px;border-radius:50%;background:var(--ion-color-primary, #313131);color:var(--ion-color-primary-contrast, #fff);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.comment__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.comment__header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.comment__author{font-size:.875rem;font-weight:600;color:var(--ion-text-color, #000)}.comment__date{font-size:.75rem;color:var(--ion-color-dark, #92949c);white-space:nowrap}.comment__body{margin:0;font-size:.875rem;color:var(--ion-text-color, #000);line-height:1.5;white-space:pre-line}\n"] }]
|
|
525
525
|
}], ctorParameters: () => [] });
|
|
526
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1yZXZpZXctcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9yZXF1ZXN0LXJldmlldy1wYW5lbC9yZXF1ZXN0LXJldmlldy1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFNdEUsTUFBTSxZQUFZLEdBQWdDO0lBQ2hELFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUMxQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDMUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVB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LEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUMvRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELENBQUMsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBOUtVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDRYQWphNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEpULG1sSUEvSlMsZUFBZSwwR0FBRSxtQkFBbUIsK0VBQUUsaUJBQWlCOzs0RkFrYXRELDJCQUEyQjtrQkFyYXZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxZQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4SlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIE9uSW5pdCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwUmVxdWVzdCwgUmVxdWVzdENvbW1lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy90eXBlcyc7XG5pbXBvcnQgeyBSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFN0YXR1c1N0eWxlIHtcbiAgYmc6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbn1cbmNvbnN0IFNUQVRVU19TVFlMRTogUmVjb3JkPHN0cmluZywgU3RhdHVzU3R5bGU+ID0ge1xuICBhcHByb3ZlZDogeyBiZzogJyMyMmM1NWUnLCBjb2xvcjogJyNmZmYnIH0sXG4gIHJlamVjdGVkOiB7IGJnOiAnI2VmNDQ0NCcsIGNvbG9yOiAnI2ZmZicgfSxcbiAgaW5fcmV2aWV3OiB7IGJnOiAnI2ZlZjNjNycsIGNvbG9yOiAnIzkyNDAwZScgfSxcbiAgcGVuZGluZzogeyBiZzogJ3ZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCknLCBjb2xvcjogJ3ZhcigtLWlvbi1jb2xvci1kYXJrLCAjMjIyKScgfSxcbiAgY2FuY2VsbGVkOiB7IGJnOiAndmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KScsIGNvbG9yOiAndmFyKC0taW9uLWNvbG9yLWRhcmssICM2MzY0NjkpJyB9LFxuICBjbG9zZWQ6IHsgYmc6ICd2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpJywgY29sb3I6ICd2YXIoLS1pb24tY29sb3ItZGFyaywgIzYzNjQ2OSknIH0sXG59O1xuXG4vKipcbiAqIENvbmZpZyBkZWwgXCJlbnRpdHkgaGVyb1wiIChibG9xdWUgb3BjaW9uYWwgYXJyaWJhIGRlbCBzdGF0dXM6IGVqLiBhbmltYWwgZW5cbiAqIENoZXNlZCwgcmVjZXRhIGVuIE1lYWxwbGFuKS4gQWduw7NzdGljbyBhbCBkb21pbmlvIOKAlCBjYWRhIGFwcCBkZWNsYXJhIGRlIHF1w6lcbiAqIGNhbXBvcyBkZSBgbWV0YWRhdGFgIHNhY2FyIG5vbWJyZS9pbWFnZW4geSBhIGTDs25kZSBuYXZlZ2FyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXZpZXdFbnRpdHlIZXJvQ29uZmlnIHtcbiAgbGFiZWxLZXk6IHN0cmluZztcbiAgbmFtZUZpZWxkOiBzdHJpbmc7XG4gIGltYWdlRmllbGQ/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVySWNvbj86IHN0cmluZztcbiAgY2FuTmF2aWdhdGU6IChtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gYm9vbGVhbjtcbiAgbmF2aWdhdGU6IChtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UmV2aWV3UGFuZWxDb25maWcge1xuICAvKiogTmFtZXNwYWNlIGkxOG4gZG9uZGUgdml2ZW4gbGFzIGtleXMgKHN0YXR1c18qLCBhcHByb3ZlLCByZWplY3QsIHN1Ym1pdHRlciwgZmllbGRzLCBjb21tZW50c1RpdGxlLCBub0NvbW1lbnRzLCBzdWJtaXR0ZWRBdCwgc3RhdHVzVXBkYXRlZCwgc3RhdHVzRXJyb3IsIGVycm9yVGl0bGUsIG9mZmxpbmVUaXRsZSwgb2ZmbGluZUhpbnQsIHJldHJ5LCB2aWV3QW5pbWFsKS4gKi9cbiAgaTE4bk5hbWVzcGFjZTogc3RyaW5nO1xuICBlbnRpdHlIZXJvPzogUmVxdWVzdFJldmlld0VudGl0eUhlcm9Db25maWc7XG4gIC8qKiBTaSBlbCB1c3VhcmlvIGFjdHVhbCBwdWVkZSBhcHJvYmFyL3JlY2hhemFyIChlai4gcGVyc29uYS5pc1B1Ymxpc2hlcigpKS4gKi9cbiAgY2FuUmV2aWV3OiAoKSA9PiBib29sZWFuO1xuICAvKiogQ1RBIHBvc3QtYXByb2JhY2nDs24gcGFyYSBxdWllbiBOTyByZXZpc2EgKGVqLiBcInZlciByZWNldGFcIi9cInZlciBhbmltYWxcIikuICovXG4gIHZpZXdFbnRpdHlDdGFMYWJlbEtleT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYW5lbCBkZSByZXZpc2nDs24gZGUgdW5hIFJlcXVlc3QgZ2Vuw6lyaWNhIChBRFItMDYxLzA2Mik6IHN0YXR1cyArIGFjY2lvbmVzXG4gKiBhcHByb3ZlL3JlamVjdCArIGZpZWxkcyBkZWwgZm9ybXVsYXJpbyArIGNvbWVudGFyaW9zLiBDb25maWctZHJpdmVuLCBzaW5cbiAqIGNvbm9jaW1pZW50byBkZWwgZG9taW5pbyAoYWRvcHRpb24sIHJlY2lwZV92ZXJpZmljYXRpb24sIGV0Yy4pIOKAlCBjYWRhXG4gKiBjb25zdW1lciBpbnllY3RhIHN1IGBSZXF1ZXN0UmV2aWV3UGFuZWxDb25maWdgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcmVxdWVzdC1yZXZpZXctcGFuZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQnV0dG9uQ29tcG9uZW50LCBFbXB0eVN0YXRlQ29tcG9uZW50LCBTa2VsZXRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza2VsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICc4OHB4JywgYm9yZGVyUmFkaXVzOiAnMTRweCcgfVwiIC8+XG4gICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICc2NHB4JywgYm9yZGVyUmFkaXVzOiAnMTJweCcgfVwiIC8+XG4gICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICc4MHB4JywgYm9yZGVyUmFkaXVzOiAnMTJweCcgfVwiIC8+XG4gICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICcxMjBweCcsIGJvcmRlclJhZGl1czogJzEycHgnIH1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2UgaWYgKGxvYWRFcnJvcigpKSB7XG4gICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImVycm9yU3RhdGUoKVwiIC8+XG4gICAgICB9IEBlbHNlIGlmIChyZXEoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsXCI+XG4gICAgICAgICAgQGlmIChoZXJvQ29uZmlnKCkgJiYgaGVyb05hbWUoKSkge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVudGl0eS1oZXJvXCIgKGNsaWNrKT1cIm9uSGVyb0NsaWNrKClcIiBbZGlzYWJsZWRdPVwiIWNhbk5hdmlnYXRlSGVybygpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRpdHktaGVyb19fbWVkaWFcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGhlcm9JbWFnZSgpICYmICFoZXJvSW1nRmFpbGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJoZXJvSW1hZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthbHRdPVwiaGVyb05hbWUoKSFcIlxuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJoZXJvSW1nRmFpbGVkLnNldCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZW50aXR5LWhlcm9fX2ltZ1wiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbnRpdHktaGVyb19fcGxhY2Vob2xkZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj57e1xuICAgICAgICAgICAgICAgICAgICBoZXJvQ29uZmlnKCkhLnBsYWNlaG9sZGVySWNvbiB8fCAn8J+ThCdcbiAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRpdHktaGVyb19fYm9keVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW50aXR5LWhlcm9fX2xhYmVsXCI+e3sgdChoZXJvQ29uZmlnKCkhLmxhYmVsS2V5KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVudGl0eS1oZXJvX19uYW1lXCI+e3sgaGVyb05hbWUoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoY2FuTmF2aWdhdGVIZXJvKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVudGl0eS1oZXJvX19jaGV2cm9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+4oC6PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNhcmRcIiBbc3R5bGUuYm9yZGVyLWxlZnQtY29sb3JdPVwic3RhdHVzU3R5bGUoKS5iZ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jYXJkX190b3BcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGF0dXMtYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJzdGF0dXNTdHlsZSgpLmJnXCIgW3N0eWxlLmNvbG9yXT1cInN0YXR1c1N0eWxlKCkuY29sb3JcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdzdGF0dXNfJyArIHJlcSgpIS5zdGF0dXMpIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJtaXR0ZWQtYXRcIj57eyB0KCdzdWJtaXR0ZWRBdCcpIH19OiB7eyBmb3JtYXREYXRlKHJlcSgpIS5jcmVhdGVkQXQpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoY29uZmlnKCkuY2FuUmV2aWV3KCkgJiYgKHJlcSgpIS5zdGF0dXMgPT09ICdwZW5kaW5nJyB8fCByZXEoKSEuc3RhdHVzID09PSAnaW5fcmV2aWV3JykpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtcm93XCI+XG4gICAgICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHRva2VuOiAnYXBwcm92ZScsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHQoJ2FwcHJvdmUnKSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogdHJhbnNpdGlvbmluZygpID8gJ1dPUktJTkcnIDogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVyOiB0cmFuc2l0aW9uLmJpbmQodGhpcywgJ2FwcHJvdmVkJyksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0b2tlbjogJ3JlamVjdCcsXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IHQoJ3JlamVjdCcpLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IHRyYW5zaXRpb25pbmcoKSA/ICdXT1JLSU5HJyA6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcjogdHJhbnNpdGlvbi5iaW5kKHRoaXMsICdyZWplY3RlZCcpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKHJlcSgpIS5zdWJtaXR0ZXIpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwic2VjdGlvbl9fdGl0bGVcIj57eyB0KCdzdWJtaXR0ZXInKSB9fTwvcD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Ym1pdHRlci1yb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VibWl0dGVyLWF2YXRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IHN1Ym1pdHRlckluaXRpYWwoKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXR0ZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgQGlmIChyZXEoKSEuc3VibWl0dGVyIS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VibWl0dGVyLW5hbWVcIj57eyByZXEoKSEuc3VibWl0dGVyIS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChyZXEoKSEuc3VibWl0dGVyIS5lbWFpbCkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1pdHRlci1lbWFpbFwiPnt7IHJlcSgpIS5zdWJtaXR0ZXIhLmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChyZXEoKSEuc3VibWl0dGVyIS5waG9uZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1pdHRlci1lbWFpbFwiPnt7IHJlcSgpIS5zdWJtaXR0ZXIhLnBob25lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoZmllbGRFbnRyaWVzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb25fX3RpdGxlXCI+e3sgdCgnZmllbGRzJykgfX08L3A+XG4gICAgICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIGZpZWxkRW50cmllcygpOyB0cmFjayBlbnRyeS5rZXkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtcm93XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpZWxkLXJvd19fbGFiZWxcIj57eyBlbnRyeS5rZXkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpZWxkLXJvd19fdmFsdWVcIj57eyBlbnRyeS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICFjb25maWcoKS5jYW5SZXZpZXcoKSAmJiByZXEoKSEuc3RhdHVzID09PSAnYXBwcm92ZWQnICYmIGNhbk5hdmlnYXRlSGVybygpICYmIGNvbmZpZygpLnZpZXdFbnRpdHlDdGFMYWJlbEtleVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0b2tlbjogJ3ZpZXctZW50aXR5JyxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0KGNvbmZpZygpLnZpZXdFbnRpdHlDdGFMYWJlbEtleSEpLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBvbkhlcm9DbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic2VjdGlvbl9fdGl0bGVcIj57eyB0KCdjb21tZW50c1RpdGxlJykgfX08L3A+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmdDb21tZW50cygpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXBhZFwiPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnNDhweCcsIGJvcmRlclJhZGl1czogJzhweCcgfVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoY29tbWVudHMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJuby1jb21tZW50c1wiPnt7IHQoJ25vQ29tbWVudHMnKSB9fTwvcD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb21tZW50c1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGMgb2YgY29tbWVudHMoKTsgdHJhY2sgYy5jb21tZW50SWQpIHtcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImNvbW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnRfX2F2YXRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IGF1dGhvckluaXRpYWwoYykgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnRfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1lbnRfX2F1dGhvclwiPnt7IGMuYXV0aG9yLm5hbWUgfHwgYy5hdXRob3IuZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1lbnRfX2RhdGVcIj57eyByZWxhdGl2ZVRpbWUoYy5jcmVhdGVkQXQpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY29tbWVudF9fYm9keVwiPnt7IGMuYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgfVxuICAgICAgLnNrZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICAuc2tlbCB2YWwtc2tlbGV0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5kZXRhaWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC5lbnRpdHktaGVybyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC5lbnRpdHktaGVybzpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIC5lbnRpdHktaGVyb19fbWVkaWEge1xuICAgICAgICB3aWR0aDogNTZweDtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAuZW50aXR5LWhlcm9fX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuICAgICAgLmVudGl0eS1oZXJvX19wbGFjZWhvbGRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gICAgICB9XG4gICAgICAuZW50aXR5LWhlcm9fX2JvZHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLmVudGl0eS1oZXJvX19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjNjM2NDY5KTtcbiAgICAgIH1cbiAgICAgIC5lbnRpdHktaGVyb19fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAuZW50aXR5LWhlcm9fX2NoZXZyb24ge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5zdGF0dXMtY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkO1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zdGF0dXMtY2FyZF9fdG9wIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgICAuc3RhdHVzLWJhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA0cHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgLnN1Ym1pdHRlZC1hdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsICMxZTIwMjMpO1xuICAgICAgfVxuICAgICAgLmFjdGlvbnMtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG5cbiAgICAgIC5zZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgICAuc2VjdGlvbl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsICMxZTIwMjMpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLXBhZCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnN1Ym1pdHRlci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIH1cbiAgICAgIC5zdWJtaXR0ZXItYXZhdGFyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzMxMzEzMSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLnN1Ym1pdHRlci1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5zdWJtaXR0ZXItbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgfVxuICAgICAgLnN1Ym1pdHRlci1lbWFpbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM2MzY0NjkpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLmZpZWxkLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogM3B4O1xuICAgICAgICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDYpKTtcbiAgICAgIH1cbiAgICAgIC5maWVsZC1yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgICAuZmllbGQtcm93X19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjNjM2NDY5KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICB9XG4gICAgICAuZmllbGQtcm93X192YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICB9XG5cbiAgICAgIC5uby1jb21tZW50cyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnRzIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDYpKTtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50Omxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnRfX2F2YXRhciB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICMzMTMxMzEpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktY29udHJhc3QsICNmZmYpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50X19jb250ZW50IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDNweDtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50X19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuY29tbWVudF9fYXV0aG9yIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50X19kYXRlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnRfX2JvZHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0UmV2aWV3UGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHJlYWRvbmx5IHJlcXVlc3RJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8UmVxdWVzdFJldmlld1BhbmVsQ29uZmlnPigpO1xuXG4gIHJlYWRvbmx5IGxvYWRlZCA9IG91dHB1dDxBcHBSZXF1ZXN0PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcSA9IHNpZ25hbDxBcHBSZXF1ZXN0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRFcnJvciA9IHNpZ25hbDx1bmtub3duIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbW1lbnRzID0gc2lnbmFsPFJlcXVlc3RDb21tZW50W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZ0NvbW1lbnRzID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNpdGlvbmluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcmVxID0gdGhpcy5fcmVxLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHRoaXMuX2xvYWRpbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSB0aGlzLl9sb2FkRXJyb3IuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjb21tZW50cyA9IHRoaXMuX2NvbW1lbnRzLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbG9hZGluZ0NvbW1lbnRzID0gdGhpcy5fbG9hZGluZ0NvbW1lbnRzLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgdHJhbnNpdGlvbmluZyA9IHRoaXMuX3RyYW5zaXRpb25pbmcuYXNSZWFkb25seSgpO1xuXG4gIHJlYWRvbmx5IGhlcm9JbWdGYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGhlcm9Db25maWcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmVudGl0eUhlcm8pO1xuICByZWFkb25seSBzdGF0dXNTdHlsZSA9IGNvbXB1dGVkKCgpID0+IFNUQVRVU19TVFlMRVt0aGlzLl9yZXEoKT8uc3RhdHVzID8/ICcnXSA/PyBTVEFUVVNfU1RZTEVbJ3BlbmRpbmcnXSk7XG4gIHJlYWRvbmx5IGhlcm9OYW1lID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGhlcm8gPSB0aGlzLmhlcm9Db25maWcoKTtcbiAgICBpZiAoIWhlcm8pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuX3JlcSgpPy5tZXRhZGF0YT8uW2hlcm8ubmFtZUZpZWxkXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0pO1xuICByZWFkb25seSBoZXJvSW1hZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaGVybyA9IHRoaXMuaGVyb0NvbmZpZygpO1xuICAgIGlmICghaGVybz8uaW1hZ2VGaWVsZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5fcmVxKCk/Lm1ldGFkYXRhPy5baGVyby5pbWFnZUZpZWxkXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0pO1xuICByZWFkb25seSBjYW5OYXZpZ2F0ZUhlcm8gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaGVybyA9IHRoaXMuaGVyb0NvbmZpZygpO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5fcmVxKCk/Lm1ldGFkYXRhO1xuICAgIGlmICghaGVybyB8fCAhbWV0YWRhdGEpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaGVyby5jYW5OYXZpZ2F0ZShtZXRhZGF0YSk7XG4gIH0pO1xuICByZWFkb25seSBzdWJtaXR0ZXJJbml0aWFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHMgPSB0aGlzLl9yZXEoKT8uc3VibWl0dGVyO1xuICAgIGlmICghcykgcmV0dXJuICc/JztcbiAgICByZXR1cm4gKChzLm5hbWUgfHwgcy5lbWFpbCkgPz8gJz8nKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGZpZWxkRW50cmllcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLl9yZXEoKT8uZmllbGRzID8/IHt9O1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhmaWVsZHMpXG4gICAgICAuZmlsdGVyKChbLCB2XSkgPT4gdiAhPSBudWxsICYmIHYgIT09ICcnKVxuICAgICAgLm1hcCgoW2ssIHZdKSA9PiAoeyBrZXk6IGssIHZhbHVlOiBTdHJpbmcodikgfSkpO1xuICB9KTtcblxuICByZWFkb25seSBlcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBlcnIgPSB0aGlzLl9sb2FkRXJyb3IoKTtcbiAgICBjb25zdCBtc2cgPSAoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIgPz8gJycpKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGlzT2ZmbGluZSA9IG1zZy5pbmNsdWRlcygnbmV0d29yaycpIHx8IG1zZy5pbmNsdWRlcygnb2ZmbGluZScpO1xuICAgIHJldHVybiB7XG4gICAgICB2YXJpYW50OiAnZXJyb3InLFxuICAgICAgdGl0bGU6IGlzT2ZmbGluZSA/IHRoaXMudCgnb2ZmbGluZVRpdGxlJykgOiB0aGlzLnQoJ2Vycm9yVGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpc09mZmxpbmUgPyB0aGlzLnQoJ29mZmxpbmVIaW50JykgOiAnJyxcbiAgICAgIGN0YTogeyBsYWJlbDogdGhpcy50KCdyZXRyeScpLCBoYW5kbGVyOiAoKSA9PiB2b2lkIHRoaXMubG9hZCgpIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5yZXF1ZXN0SWQoKTtcbiAgICB0aGlzLl9sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLl9sb2FkRXJyb3Iuc2V0KG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLmdldFJlcXVlc3QoaWQpKTtcbiAgICAgIHRoaXMuX3JlcS5zZXQocmVxKTtcbiAgICAgIHRoaXMubG9hZGVkLmVtaXQocmVxKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlQ29tbWVudHMocmVxLmFwcElkLCByZXEub3JnSWQsIGlkKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX2xvYWRFcnJvci5zZXQoZXJyKTtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3JlcXVlc3QtcmV2aWV3LXBhbmVsLmxvYWQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ2Vycm9yVGl0bGUnLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlQ29tbWVudHMoYXBwSWQ6IHN0cmluZywgb3JnSWQ6IHN0cmluZywgcmVxdWVzdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2FkaW5nQ29tbWVudHMuc2V0KHRydWUpO1xuICAgIHRoaXMucmVxdWVzdHNcbiAgICAgIC53YXRjaENvbW1lbnRzKGFwcElkLCBvcmdJZCwgcmVxdWVzdElkKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogY29tbWVudHMgPT4ge1xuICAgICAgICAgIHRoaXMuX2NvbW1lbnRzLnNldChjb21tZW50cyk7XG4gICAgICAgICAgdGhpcy5fbG9hZGluZ0NvbW1lbnRzLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29tZW50YXJpb3Mgc29uIGJlc3QtZWZmb3J0OyBzaSBlbCBsaXN0ZW5lciBmYWxsYSwgc2lsZW5jaWFyIHkgb2N1bHRhciBzcGlubmVyXG4gICAgICAgICAgdGhpcy5fbG9hZGluZ0NvbW1lbnRzLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHRyYW5zaXRpb24oc3RhdHVzOiAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcSA9IHRoaXMuX3JlcSgpO1xuICAgIGlmICghcmVxIHx8IHRoaXMuX3RyYW5zaXRpb25pbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuX3RyYW5zaXRpb25pbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLnRyYW5zaXRpb24ocmVxLmlkLCB7IHN0YXR1cyB9KSk7XG4gICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7IG1lc3NhZ2U6IHRoaXMudCgnc3RhdHVzVXBkYXRlZCcpLCBkdXJhdGlvbjogMjUwMCwgY29sb3I6ICdkYXJrJywgcG9zaXRpb246ICd0b3AnIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAncmVxdWVzdC1yZXZpZXctcGFuZWwudHJhbnNpdGlvbicsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc3RhdHVzRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fdHJhbnNpdGlvbmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGVyb0NsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGhlcm8gPSB0aGlzLmhlcm9Db25maWcoKTtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuX3JlcSgpPy5tZXRhZGF0YTtcbiAgICBpZiAoaGVybyAmJiBtZXRhZGF0YSkgaGVyby5uYXZpZ2F0ZShtZXRhZGF0YSk7XG4gIH1cblxuICBmb3JtYXREYXRlKGlzbzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzbykgcmV0dXJuICcnO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZURhdGVTdHJpbmcodGhpcy5pMThuLmxhbmcoKSA9PT0gJ2VzJyA/ICdlcy1DTCcgOiAnZW4tVVMnLCB7XG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gaXNvO1xuICAgIH1cbiAgfVxuXG4gIGF1dGhvckluaXRpYWwoYzogUmVxdWVzdENvbW1lbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiAoKGMuYXV0aG9yLm5hbWUgfHwgYy5hdXRob3IuZW1haWwpID8/ICc/JykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICByZWxhdGl2ZVRpbWUoaXNvOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaXNvKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZGlmZk1zID0gRGF0ZS5ub3coKSAtIG5ldyBEYXRlKGlzbykuZ2V0VGltZSgpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4oZGlmZk1zKSkgcmV0dXJuIGlzbztcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBtaW5zID0gTWF0aC5mbG9vcihkaWZmTXMgLyA2MDAwMCk7XG4gICAgaWYgKG1pbnMgPCAxKSByZXR1cm4gbGFuZyA9PT0gJ2VzJyA/ICdoYWNlIHVuIG1vbWVudG8nIDogJ2p1c3Qgbm93JztcbiAgICBpZiAobWlucyA8IDYwKSByZXR1cm4gbGFuZyA9PT0gJ2VzJyA/IGBoYWNlICR7bWluc30gbWluYCA6IGAke21pbnN9bSBhZ29gO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW5zIC8gNjApO1xuICAgIGlmIChob3VycyA8IDI0KSByZXR1cm4gbGFuZyA9PT0gJ2VzJyA/IGBoYWNlICR7aG91cnN9IGhgIDogYCR7aG91cnN9aCBhZ29gO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuICAgIGlmIChkYXlzIDwgNykgcmV0dXJuIGxhbmcgPT09ICdlcycgPyBgaGFjZSAke2RheXN9IGRpYSR7ZGF5cyA+IDEgPyAncycgOiAnJ31gIDogYCR7ZGF5c31kIGFnb2A7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RGF0ZShpc28pO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
|
|
526
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1yZXZpZXctcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9yZXF1ZXN0LXJldmlldy1wYW5lbC9yZXF1ZXN0LXJldmlldy1wYW5lbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFNdEUsTUFBTSxZQUFZLEdBQWdDO0lBQ2hELFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUMxQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDMUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVB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LEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQztRQUMvRixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELENBQUMsQ0FBQyxHQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBOUtVLDJCQUEyQjttR0FBM0IsMkJBQTJCLDRYQWphNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEpULG1sSUEvSlMsZUFBZSwwR0FBRSxtQkFBbUIsK0VBQUUsaUJBQWlCOzs0RkFrYXRELDJCQUEyQjtrQkFyYXZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxZQUN4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4SlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIE9uSW5pdCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwUmVxdWVzdCwgUmVxdWVzdENvbW1lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy90eXBlcyc7XG5pbXBvcnQgeyBSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFN0YXR1c1N0eWxlIHtcbiAgYmc6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbn1cbmNvbnN0IFNUQVRVU19TVFlMRTogUmVjb3JkPHN0cmluZywgU3RhdHVzU3R5bGU+ID0ge1xuICBhcHByb3ZlZDogeyBiZzogJyMyMmM1NWUnLCBjb2xvcjogJyNmZmYnIH0sXG4gIHJlamVjdGVkOiB7IGJnOiAnI2VmNDQ0NCcsIGNvbG9yOiAnI2ZmZicgfSxcbiAgaW5fcmV2aWV3OiB7IGJnOiAnI2ZlZjNjNycsIGNvbG9yOiAnIzkyNDAwZScgfSxcbiAgcGVuZGluZzogeyBiZzogJ3ZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCknLCBjb2xvcjogJ3ZhcigtLWlvbi1jb2xvci1kYXJrLCAjMjIyKScgfSxcbiAgY2FuY2VsbGVkOiB7IGJnOiAndmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KScsIGNvbG9yOiAndmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzYzNjQ2OSknIH0sXG4gIGNsb3NlZDogeyBiZzogJ3ZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCknLCBjb2xvcjogJ3ZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM2MzY0NjkpJyB9LFxufTtcblxuLyoqXG4gKiBDb25maWcgZGVsIFwiZW50aXR5IGhlcm9cIiAoYmxvcXVlIG9wY2lvbmFsIGFycmliYSBkZWwgc3RhdHVzOiBlai4gYW5pbWFsIGVuXG4gKiBDaGVzZWQsIHJlY2V0YSBlbiBNZWFscGxhbikuIEFnbsOzc3RpY28gYWwgZG9taW5pbyDigJQgY2FkYSBhcHAgZGVjbGFyYSBkZSBxdcOpXG4gKiBjYW1wb3MgZGUgYG1ldGFkYXRhYCBzYWNhciBub21icmUvaW1hZ2VuIHkgYSBkw7NuZGUgbmF2ZWdhci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UmV2aWV3RW50aXR5SGVyb0NvbmZpZyB7XG4gIGxhYmVsS2V5OiBzdHJpbmc7XG4gIG5hbWVGaWVsZDogc3RyaW5nO1xuICBpbWFnZUZpZWxkPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlckljb24/OiBzdHJpbmc7XG4gIGNhbk5hdmlnYXRlOiAobWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IGJvb2xlYW47XG4gIG5hdmlnYXRlOiAobWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFJldmlld1BhbmVsQ29uZmlnIHtcbiAgLyoqIE5hbWVzcGFjZSBpMThuIGRvbmRlIHZpdmVuIGxhcyBrZXlzIChzdGF0dXNfKiwgYXBwcm92ZSwgcmVqZWN0LCBzdWJtaXR0ZXIsIGZpZWxkcywgY29tbWVudHNUaXRsZSwgbm9Db21tZW50cywgc3VibWl0dGVkQXQsIHN0YXR1c1VwZGF0ZWQsIHN0YXR1c0Vycm9yLCBlcnJvclRpdGxlLCBvZmZsaW5lVGl0bGUsIG9mZmxpbmVIaW50LCByZXRyeSwgdmlld0FuaW1hbCkuICovXG4gIGkxOG5OYW1lc3BhY2U6IHN0cmluZztcbiAgZW50aXR5SGVybz86IFJlcXVlc3RSZXZpZXdFbnRpdHlIZXJvQ29uZmlnO1xuICAvKiogU2kgZWwgdXN1YXJpbyBhY3R1YWwgcHVlZGUgYXByb2Jhci9yZWNoYXphciAoZWouIHBlcnNvbmEuaXNQdWJsaXNoZXIoKSkuICovXG4gIGNhblJldmlldzogKCkgPT4gYm9vbGVhbjtcbiAgLyoqIENUQSBwb3N0LWFwcm9iYWNpw7NuIHBhcmEgcXVpZW4gTk8gcmV2aXNhIChlai4gXCJ2ZXIgcmVjZXRhXCIvXCJ2ZXIgYW5pbWFsXCIpLiAqL1xuICB2aWV3RW50aXR5Q3RhTGFiZWxLZXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFuZWwgZGUgcmV2aXNpw7NuIGRlIHVuYSBSZXF1ZXN0IGdlbsOpcmljYSAoQURSLTA2MS8wNjIpOiBzdGF0dXMgKyBhY2Npb25lc1xuICogYXBwcm92ZS9yZWplY3QgKyBmaWVsZHMgZGVsIGZvcm11bGFyaW8gKyBjb21lbnRhcmlvcy4gQ29uZmlnLWRyaXZlbiwgc2luXG4gKiBjb25vY2ltaWVudG8gZGVsIGRvbWluaW8gKGFkb3B0aW9uLCByZWNpcGVfdmVyaWZpY2F0aW9uLCBldGMuKSDigJQgY2FkYVxuICogY29uc3VtZXIgaW55ZWN0YSBzdSBgUmVxdWVzdFJldmlld1BhbmVsQ29uZmlnYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXJlcXVlc3QtcmV2aWV3LXBhbmVsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgRW1wdHlTdGF0ZUNvbXBvbmVudCwgU2tlbGV0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnODhweCcsIGJvcmRlclJhZGl1czogJzE0cHgnIH1cIiAvPlxuICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnNjRweCcsIGJvcmRlclJhZGl1czogJzEycHgnIH1cIiAvPlxuICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnODBweCcsIGJvcmRlclJhZGl1czogJzEycHgnIH1cIiAvPlxuICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTIwcHgnLCBib3JkZXJSYWRpdXM6ICcxMnB4JyB9XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIGlmIChsb2FkRXJyb3IoKSkge1xuICAgICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJlcnJvclN0YXRlKClcIiAvPlxuICAgICAgfSBAZWxzZSBpZiAocmVxKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbFwiPlxuICAgICAgICAgIEBpZiAoaGVyb0NvbmZpZygpICYmIGhlcm9OYW1lKCkpIHtcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlbnRpdHktaGVyb1wiIChjbGljayk9XCJvbkhlcm9DbGljaygpXCIgW2Rpc2FibGVkXT1cIiFjYW5OYXZpZ2F0ZUhlcm8oKVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50aXR5LWhlcm9fX21lZGlhXCI+XG4gICAgICAgICAgICAgICAgQGlmIChoZXJvSW1hZ2UoKSAmJiAhaGVyb0ltZ0ZhaWxlZCgpKSB7XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaGVyb0ltYWdlKClcIlxuICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImhlcm9OYW1lKCkhXCJcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiaGVyb0ltZ0ZhaWxlZC5zZXQodHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVudGl0eS1oZXJvX19pbWdcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW50aXR5LWhlcm9fX3BsYWNlaG9sZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgaGVyb0NvbmZpZygpIS5wbGFjZWhvbGRlckljb24gfHwgJ/Cfk4QnXG4gICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50aXR5LWhlcm9fX2JvZHlcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVudGl0eS1oZXJvX19sYWJlbFwiPnt7IHQoaGVyb0NvbmZpZygpIS5sYWJlbEtleSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbnRpdHktaGVyb19fbmFtZVwiPnt7IGhlcm9OYW1lKCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKGNhbk5hdmlnYXRlSGVybygpKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbnRpdHktaGVyb19fY2hldnJvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPuKAujwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jYXJkXCIgW3N0eWxlLmJvcmRlci1sZWZ0LWNvbG9yXT1cInN0YXR1c1N0eWxlKCkuYmdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtY2FyZF9fdG9wXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RhdHVzLWJhZGdlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwic3RhdHVzU3R5bGUoKS5iZ1wiIFtzdHlsZS5jb2xvcl09XCJzdGF0dXNTdHlsZSgpLmNvbG9yXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnc3RhdHVzXycgKyByZXEoKSEuc3RhdHVzKSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VibWl0dGVkLWF0XCI+e3sgdCgnc3VibWl0dGVkQXQnKSB9fToge3sgZm9ybWF0RGF0ZShyZXEoKSEuY3JlYXRlZEF0KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKGNvbmZpZygpLmNhblJldmlldygpICYmIChyZXEoKSEuc3RhdHVzID09PSAncGVuZGluZycgfHwgcmVxKCkhLnN0YXR1cyA9PT0gJ2luX3JldmlldycpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXJvd1wiPlxuICAgICAgICAgICAgICAgIDx2YWwtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICB0b2tlbjogJ2FwcHJvdmUnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0KCdhcHByb3ZlJyksXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IHRyYW5zaXRpb25pbmcoKSA/ICdXT1JLSU5HJyA6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcjogdHJhbnNpdGlvbi5iaW5kKHRoaXMsICdhcHByb3ZlZCcpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgdG9rZW46ICdyZWplY3QnLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0KCdyZWplY3QnKSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgc3RhdGU6IHRyYW5zaXRpb25pbmcoKSA/ICdXT1JLSU5HJyA6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcjogdHJhbnNpdGlvbi5iaW5kKHRoaXMsICdyZWplY3RlZCcpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKHJlcSgpIS5zdWJtaXR0ZXIpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwic2VjdGlvbl9fdGl0bGVcIj57eyB0KCdzdWJtaXR0ZXInKSB9fTwvcD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Ym1pdHRlci1yb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VibWl0dGVyLWF2YXRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IHN1Ym1pdHRlckluaXRpYWwoKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXR0ZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgQGlmIChyZXEoKSEuc3VibWl0dGVyIS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VibWl0dGVyLW5hbWVcIj57eyByZXEoKSEuc3VibWl0dGVyIS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChyZXEoKSEuc3VibWl0dGVyIS5lbWFpbCkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1pdHRlci1lbWFpbFwiPnt7IHJlcSgpIS5zdWJtaXR0ZXIhLmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChyZXEoKSEuc3VibWl0dGVyIS5waG9uZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Ym1pdHRlci1lbWFpbFwiPnt7IHJlcSgpIS5zdWJtaXR0ZXIhLnBob25lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoZmllbGRFbnRyaWVzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInNlY3Rpb25fX3RpdGxlXCI+e3sgdCgnZmllbGRzJykgfX08L3A+XG4gICAgICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIGZpZWxkRW50cmllcygpOyB0cmFjayBlbnRyeS5rZXkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtcm93XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpZWxkLXJvd19fbGFiZWxcIj57eyBlbnRyeS5rZXkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpZWxkLXJvd19fdmFsdWVcIj57eyBlbnRyeS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICFjb25maWcoKS5jYW5SZXZpZXcoKSAmJiByZXEoKSEuc3RhdHVzID09PSAnYXBwcm92ZWQnICYmIGNhbk5hdmlnYXRlSGVybygpICYmIGNvbmZpZygpLnZpZXdFbnRpdHlDdGFMYWJlbEtleVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0b2tlbjogJ3ZpZXctZW50aXR5JyxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0KGNvbmZpZygpLnZpZXdFbnRpdHlDdGFMYWJlbEtleSEpLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBvbkhlcm9DbGljay5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic2VjdGlvbl9fdGl0bGVcIj57eyB0KCdjb21tZW50c1RpdGxlJykgfX08L3A+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmdDb21tZW50cygpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXBhZFwiPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgd2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnNDhweCcsIGJvcmRlclJhZGl1czogJzhweCcgfVwiIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoY29tbWVudHMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJuby1jb21tZW50c1wiPnt7IHQoJ25vQ29tbWVudHMnKSB9fTwvcD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJjb21tZW50c1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGMgb2YgY29tbWVudHMoKTsgdHJhY2sgYy5jb21tZW50SWQpIHtcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImNvbW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnRfX2F2YXRhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IGF1dGhvckluaXRpYWwoYykgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnRfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1lbnRfX2F1dGhvclwiPnt7IGMuYXV0aG9yLm5hbWUgfHwgYy5hdXRob3IuZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1lbnRfX2RhdGVcIj57eyByZWxhdGl2ZVRpbWUoYy5jcmVhdGVkQXQpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY29tbWVudF9fYm9keVwiPnt7IGMuYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgfVxuICAgICAgLnNrZWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICAuc2tlbCB2YWwtc2tlbGV0b24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5kZXRhaWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgICB9XG5cbiAgICAgIC5lbnRpdHktaGVybyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC5lbnRpdHktaGVybzpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cbiAgICAgIC5lbnRpdHktaGVyb19fbWVkaWEge1xuICAgICAgICB3aWR0aDogNTZweDtcbiAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAuZW50aXR5LWhlcm9fX2ltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuICAgICAgLmVudGl0eS1oZXJvX19wbGFjZWhvbGRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gICAgICB9XG4gICAgICAuZW50aXR5LWhlcm9fX2JvZHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuICAgICAgLmVudGl0eS1oZXJvX19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjNjM2NDY5KTtcbiAgICAgIH1cbiAgICAgIC5lbnRpdHktaGVyb19fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAuZW50aXR5LWhlcm9fX2NoZXZyb24ge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjOTI5NDljKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5zdGF0dXMtY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkO1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zdGF0dXMtY2FyZF9fdG9wIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG4gICAgICAuc3RhdHVzLWJhZGdlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA0cHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgLnN1Ym1pdHRlZC1hdCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsICMxZTIwMjMpO1xuICAgICAgfVxuICAgICAgLmFjdGlvbnMtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICB9XG5cbiAgICAgIC5zZWN0aW9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmZmYpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG4gICAgICAuc2VjdGlvbl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmstc2hhZGUsICMxZTIwMjMpO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLXBhZCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIH1cblxuICAgICAgLnN1Ym1pdHRlci1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgIH1cbiAgICAgIC5zdWJtaXR0ZXItYXZhdGFyIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzMxMzEzMSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLnN1Ym1pdHRlci1pbmZvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5zdWJtaXR0ZXItbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgfVxuICAgICAgLnN1Ym1pdHRlci1lbWFpbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM2MzY0NjkpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLmZpZWxkLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogM3B4O1xuICAgICAgICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDYpKTtcbiAgICAgIH1cbiAgICAgIC5maWVsZC1yb3c6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgICAuZmllbGQtcm93X19sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrLCAjNjM2NDY5KTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICB9XG4gICAgICAuZmllbGQtcm93X192YWx1ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IsICMwMDApO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgICB9XG5cbiAgICAgIC5uby1jb21tZW50cyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnRzIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDYpKTtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50Omxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnRfX2F2YXRhciB7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICMzMTMxMzEpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktY29udHJhc3QsICNmZmYpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50X19jb250ZW50IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDNweDtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50X19oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuY29tbWVudF9fYXV0aG9yIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgIH1cbiAgICAgIC5jb21tZW50X19kYXRlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICM5Mjk0OWMpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgICAgLmNvbW1lbnRfX2JvZHkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0UmV2aWV3UGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlcXVlc3RzID0gaW5qZWN0KFJlcXVlc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHJlYWRvbmx5IHJlcXVlc3RJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8UmVxdWVzdFJldmlld1BhbmVsQ29uZmlnPigpO1xuXG4gIHJlYWRvbmx5IGxvYWRlZCA9IG91dHB1dDxBcHBSZXF1ZXN0PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlcSA9IHNpZ25hbDxBcHBSZXF1ZXN0IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRFcnJvciA9IHNpZ25hbDx1bmtub3duIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbW1lbnRzID0gc2lnbmFsPFJlcXVlc3RDb21tZW50W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZ0NvbW1lbnRzID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNpdGlvbmluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcmVxID0gdGhpcy5fcmVxLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHRoaXMuX2xvYWRpbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSB0aGlzLl9sb2FkRXJyb3IuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjb21tZW50cyA9IHRoaXMuX2NvbW1lbnRzLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbG9hZGluZ0NvbW1lbnRzID0gdGhpcy5fbG9hZGluZ0NvbW1lbnRzLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgdHJhbnNpdGlvbmluZyA9IHRoaXMuX3RyYW5zaXRpb25pbmcuYXNSZWFkb25seSgpO1xuXG4gIHJlYWRvbmx5IGhlcm9JbWdGYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGhlcm9Db25maWcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmVudGl0eUhlcm8pO1xuICByZWFkb25seSBzdGF0dXNTdHlsZSA9IGNvbXB1dGVkKCgpID0+IFNUQVRVU19TVFlMRVt0aGlzLl9yZXEoKT8uc3RhdHVzID8/ICcnXSA/PyBTVEFUVVNfU1RZTEVbJ3BlbmRpbmcnXSk7XG4gIHJlYWRvbmx5IGhlcm9OYW1lID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGhlcm8gPSB0aGlzLmhlcm9Db25maWcoKTtcbiAgICBpZiAoIWhlcm8pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuX3JlcSgpPy5tZXRhZGF0YT8uW2hlcm8ubmFtZUZpZWxkXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0pO1xuICByZWFkb25seSBoZXJvSW1hZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaGVybyA9IHRoaXMuaGVyb0NvbmZpZygpO1xuICAgIGlmICghaGVybz8uaW1hZ2VGaWVsZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5fcmVxKCk/Lm1ldGFkYXRhPy5baGVyby5pbWFnZUZpZWxkXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0pO1xuICByZWFkb25seSBjYW5OYXZpZ2F0ZUhlcm8gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaGVybyA9IHRoaXMuaGVyb0NvbmZpZygpO1xuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5fcmVxKCk/Lm1ldGFkYXRhO1xuICAgIGlmICghaGVybyB8fCAhbWV0YWRhdGEpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaGVyby5jYW5OYXZpZ2F0ZShtZXRhZGF0YSk7XG4gIH0pO1xuICByZWFkb25seSBzdWJtaXR0ZXJJbml0aWFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHMgPSB0aGlzLl9yZXEoKT8uc3VibWl0dGVyO1xuICAgIGlmICghcykgcmV0dXJuICc/JztcbiAgICByZXR1cm4gKChzLm5hbWUgfHwgcy5lbWFpbCkgPz8gJz8nKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKTtcbiAgfSk7XG4gIHJlYWRvbmx5IGZpZWxkRW50cmllcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLl9yZXEoKT8uZmllbGRzID8/IHt9O1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhmaWVsZHMpXG4gICAgICAuZmlsdGVyKChbLCB2XSkgPT4gdiAhPSBudWxsICYmIHYgIT09ICcnKVxuICAgICAgLm1hcCgoW2ssIHZdKSA9PiAoeyBrZXk6IGssIHZhbHVlOiBTdHJpbmcodikgfSkpO1xuICB9KTtcblxuICByZWFkb25seSBlcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBlcnIgPSB0aGlzLl9sb2FkRXJyb3IoKTtcbiAgICBjb25zdCBtc2cgPSAoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IFN0cmluZyhlcnIgPz8gJycpKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGlzT2ZmbGluZSA9IG1zZy5pbmNsdWRlcygnbmV0d29yaycpIHx8IG1zZy5pbmNsdWRlcygnb2ZmbGluZScpO1xuICAgIHJldHVybiB7XG4gICAgICB2YXJpYW50OiAnZXJyb3InLFxuICAgICAgdGl0bGU6IGlzT2ZmbGluZSA/IHRoaXMudCgnb2ZmbGluZVRpdGxlJykgOiB0aGlzLnQoJ2Vycm9yVGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBpc09mZmxpbmUgPyB0aGlzLnQoJ29mZmxpbmVIaW50JykgOiAnJyxcbiAgICAgIGN0YTogeyBsYWJlbDogdGhpcy50KCdyZXRyeScpLCBoYW5kbGVyOiAoKSA9PiB2b2lkIHRoaXMubG9hZCgpIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5yZXF1ZXN0SWQoKTtcbiAgICB0aGlzLl9sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLl9sb2FkRXJyb3Iuc2V0KG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXEgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLmdldFJlcXVlc3QoaWQpKTtcbiAgICAgIHRoaXMuX3JlcS5zZXQocmVxKTtcbiAgICAgIHRoaXMubG9hZGVkLmVtaXQocmVxKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlQ29tbWVudHMocmVxLmFwcElkLCByZXEub3JnSWQsIGlkKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX2xvYWRFcnJvci5zZXQoZXJyKTtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3JlcXVlc3QtcmV2aWV3LXBhbmVsLmxvYWQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ2Vycm9yVGl0bGUnLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlQ29tbWVudHMoYXBwSWQ6IHN0cmluZywgb3JnSWQ6IHN0cmluZywgcmVxdWVzdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2FkaW5nQ29tbWVudHMuc2V0KHRydWUpO1xuICAgIHRoaXMucmVxdWVzdHNcbiAgICAgIC53YXRjaENvbW1lbnRzKGFwcElkLCBvcmdJZCwgcmVxdWVzdElkKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogY29tbWVudHMgPT4ge1xuICAgICAgICAgIHRoaXMuX2NvbW1lbnRzLnNldChjb21tZW50cyk7XG4gICAgICAgICAgdGhpcy5fbG9hZGluZ0NvbW1lbnRzLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29tZW50YXJpb3Mgc29uIGJlc3QtZWZmb3J0OyBzaSBlbCBsaXN0ZW5lciBmYWxsYSwgc2lsZW5jaWFyIHkgb2N1bHRhciBzcGlubmVyXG4gICAgICAgICAgdGhpcy5fbG9hZGluZ0NvbW1lbnRzLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHRyYW5zaXRpb24oc3RhdHVzOiAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcSA9IHRoaXMuX3JlcSgpO1xuICAgIGlmICghcmVxIHx8IHRoaXMuX3RyYW5zaXRpb25pbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuX3RyYW5zaXRpb25pbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLnRyYW5zaXRpb24ocmVxLmlkLCB7IHN0YXR1cyB9KSk7XG4gICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7IG1lc3NhZ2U6IHRoaXMudCgnc3RhdHVzVXBkYXRlZCcpLCBkdXJhdGlvbjogMjUwMCwgY29sb3I6ICdkYXJrJywgcG9zaXRpb246ICd0b3AnIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAncmVxdWVzdC1yZXZpZXctcGFuZWwudHJhbnNpdGlvbicsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc3RhdHVzRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fdHJhbnNpdGlvbmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGVyb0NsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IGhlcm8gPSB0aGlzLmhlcm9Db25maWcoKTtcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuX3JlcSgpPy5tZXRhZGF0YTtcbiAgICBpZiAoaGVybyAmJiBtZXRhZGF0YSkgaGVyby5uYXZpZ2F0ZShtZXRhZGF0YSk7XG4gIH1cblxuICBmb3JtYXREYXRlKGlzbzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzbykgcmV0dXJuICcnO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoaXNvKS50b0xvY2FsZURhdGVTdHJpbmcodGhpcy5pMThuLmxhbmcoKSA9PT0gJ2VzJyA/ICdlcy1DTCcgOiAnZW4tVVMnLCB7XG4gICAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gaXNvO1xuICAgIH1cbiAgfVxuXG4gIGF1dGhvckluaXRpYWwoYzogUmVxdWVzdENvbW1lbnQpOiBzdHJpbmcge1xuICAgIHJldHVybiAoKGMuYXV0aG9yLm5hbWUgfHwgYy5hdXRob3IuZW1haWwpID8/ICc/JykuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gIH1cblxuICByZWxhdGl2ZVRpbWUoaXNvOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaXNvKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZGlmZk1zID0gRGF0ZS5ub3coKSAtIG5ldyBEYXRlKGlzbykuZ2V0VGltZSgpO1xuICAgIGlmIChOdW1iZXIuaXNOYU4oZGlmZk1zKSkgcmV0dXJuIGlzbztcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBtaW5zID0gTWF0aC5mbG9vcihkaWZmTXMgLyA2MDAwMCk7XG4gICAgaWYgKG1pbnMgPCAxKSByZXR1cm4gbGFuZyA9PT0gJ2VzJyA/ICdoYWNlIHVuIG1vbWVudG8nIDogJ2p1c3Qgbm93JztcbiAgICBpZiAobWlucyA8IDYwKSByZXR1cm4gbGFuZyA9PT0gJ2VzJyA/IGBoYWNlICR7bWluc30gbWluYCA6IGAke21pbnN9bSBhZ29gO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW5zIC8gNjApO1xuICAgIGlmIChob3VycyA8IDI0KSByZXR1cm4gbGFuZyA9PT0gJ2VzJyA/IGBoYWNlICR7aG91cnN9IGhgIDogYCR7aG91cnN9aCBhZ29gO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuICAgIGlmIChkYXlzIDwgNykgcmV0dXJuIGxhbmcgPT09ICdlcycgPyBgaGFjZSAke2RheXN9IGRpYSR7ZGF5cyA+IDEgPyAncycgOiAnJ31gIDogYCR7ZGF5c31kIGFnb2A7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RGF0ZShpc28pO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
|