valtech-components 2.0.1019 → 2.0.1020
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/organisms/about-view/about-view.component.mjs +18 -7
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +17 -6
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/about-view/about-view.component.d.ts +11 -4
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, computed, inject,
|
|
1
|
+
import { Component, computed, inject, input } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute } from '@angular/router';
|
|
3
3
|
import { IonButton, IonGrid, IonIcon } from '@ionic/angular/standalone';
|
|
4
4
|
import { addIcons } from 'ionicons';
|
|
@@ -76,9 +76,22 @@ export class AboutViewComponent {
|
|
|
76
76
|
this.modalService = inject(ModalService);
|
|
77
77
|
this.toast = inject(ToastService);
|
|
78
78
|
this.route = inject(ActivatedRoute, { optional: true });
|
|
79
|
+
/**
|
|
80
|
+
* Config vía input (object-first). Si no se pasa, se cae al route data
|
|
81
|
+
* `aboutConfig` (poblado por `provideValtechAboutRoutes`). `resolvedConfig`
|
|
82
|
+
* mergea con los defaults — el input gana sobre route data.
|
|
83
|
+
*
|
|
84
|
+
* **Signal input** (no `@Input` clásico): `resolvedConfig` es un `computed` que se
|
|
85
|
+
* evalúa por primera vez en el constructor (vía `this.ns` → `setBackHeader`), ANTES
|
|
86
|
+
* de que un `@Input` clásico esté bindeado. Con `@Input` el computed memoizaba la
|
|
87
|
+
* config vacía y, al no depender de ninguna señal, NUNCA recomputaba → ignoraba
|
|
88
|
+
* `[config]` (social/acciones/versión/marca quedaban en default). Como signal, el
|
|
89
|
+
* computed lo trackea y recomputa cuando el binding llega.
|
|
90
|
+
*/
|
|
91
|
+
this.config = input(undefined);
|
|
79
92
|
this.resolvedConfig = computed(() => {
|
|
80
93
|
const fromRoute = (this.route?.snapshot.data['aboutConfig'] ?? {});
|
|
81
|
-
const merged = { ...fromRoute, ...(this.config ?? {}) };
|
|
94
|
+
const merged = { ...fromRoute, ...(this.config() ?? {}) };
|
|
82
95
|
return {
|
|
83
96
|
brand: {
|
|
84
97
|
name: merged.brand?.name ?? DEFAULT_BRAND_NAME,
|
|
@@ -216,7 +229,7 @@ export class AboutViewComponent {
|
|
|
216
229
|
this.resolvedConfig().onRated?.();
|
|
217
230
|
}
|
|
218
231
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
219
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AboutViewComponent, isStandalone: true, selector: "val-about-view", inputs: { config: "config" }, ngImport: i0, template: `
|
|
232
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AboutViewComponent, isStandalone: true, selector: "val-about-view", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
220
233
|
<ion-grid class="about-grid">
|
|
221
234
|
<!-- HERO: logo + name + version -->
|
|
222
235
|
<div class="about-hero">
|
|
@@ -457,7 +470,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
457
470
|
</footer>
|
|
458
471
|
</ion-grid>
|
|
459
472
|
`, styles: [":host{display:block}.about-grid{padding:16px 0;max-width:720px;margin:0 auto}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
|
|
460
|
-
}], ctorParameters: () => []
|
|
461
|
-
type: Input
|
|
462
|
-
}] } });
|
|
463
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Fib3V0LXZpZXcvYWJvdXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGFBQWEsRUFDYixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFdBQVcsR0FDWixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBR3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNIVCw0M0VBdkhTLFNBQVMsb1BBQUUsT0FBTyx3RUFBRSxPQUFPLDJKQUFFLGFBQWEsd0hBQUUsY0FBYyx5RUFBRSxhQUFhLHdFQUFFLG1CQUFtQjs7NEZBa1E3RixrQkFBa0I7a0JBclE5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDLFlBQy9GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0hUO3dEQXVKUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkdyaWQsIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgY29weU91dGxpbmUsXG4gIGhlbHBDaXJjbGVPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb1Rpa3RvayxcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBzaGFyZVNvY2lhbE91dGxpbmUsXG4gIHN0YXJPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb250ZW50LXJlYWN0aW9uL2NvbnRlbnQtcmVhY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBBYm91dEFjdGlvbiwgQWJvdXRWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBQk9VVF9WSUVXX0kxOE4gfSBmcm9tICcuL2Fib3V0LXZpZXcuaTE4bic7XG5cbmFkZEljb25zKHtcbiAgY29weU91dGxpbmUsXG4gIHN0YXJPdXRsaW5lLFxuICBjaGF0YnViYmxlRWxsaXBzZXNPdXRsaW5lLFxuICBzaGFyZVNvY2lhbE91dGxpbmUsXG4gIGhlbHBDaXJjbGVPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBsb2dvVGlrdG9rLFxufSk7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkFib3V0JztcbmNvbnN0IERFRkFVTFRfQlJBTkRfTkFNRSA9ICdWYWx0ZWNoJztcbmNvbnN0IERFRkFVTFRfTE9HT19TUkMgPSAnYXNzZXRzL2ltYWdlcy9tYWluLWljb24ucG5nJztcbi8vIFBvciBkZWZhdWx0IGVsIEhFUk8gdXNhIGxhIENTUyB2YXIgZGUgbWFyY2EgZGVsIGZhY3RvcnkgKGAtLW1haW4tbG9nby1taW5pYCksXG4vLyBxdWUgY2FkYSBhcHAgZGVmaW5lIGVuIHN1IGB0aGVtZS92YXJpYWJsZXMuc2Nzc2AgKHRoZW1lLWF3YXJlKS4gU2kgbGEgYXBwIG5vXG4vLyBsYSBkZWZpbmUsIGVsIGB2YXIoLi4uKWAgY2FlIGFsIGBsb2dvU3JjYCAodmVyIHRlbXBsYXRlKS4gRWwgY29uc3VtZXIgcHVlZGVcbi8vIHBhc2FyIGBicmFuZC5sb2dvVmFyOiAnJ2AgcGFyYSBmb3J6YXIgZWwgYDxpbWcgc3JjPWxvZ29TcmM+YCBjbMOhc2ljby5cbmNvbnN0IERFRkFVTFRfTE9HT19WQVIgPSAnLS1tYWluLWxvZ28tbWluaSc7XG5jb25zdCBERUZBVUxUX1JBVElOR19FTlRJVFlfSUQgPSAnZXhwZXJpZW5jZSc7XG5cbi8qKlxuICogYHZhbC1hYm91dC12aWV3YCDigJQgdmlzdGEgQWJvdXQgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkhFUk8qKiDigJQgbG9nbyArIG5vbWJyZSBkZSBtYXJjYSArIHRhZ2xpbmUgKyBwaWxsIGRlIHZlcnNpw7NuIChjb3BpYWJsZSkuXG4gKiAgLSAqKkRlc2NyaXBjacOzbioqIOKAlCB0w610dWxvICsgY3VlcnBvLlxuICogIC0gKipBY2Npb25lcyoqIOKAlCBhY3Rpb24tY2FyZCBkZSByYXRpbmcgYnVpbHQtaW4gKGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYFxuICogICAgRElSRUNUQU1FTlRFIHbDrWEgYE1vZGFsU2VydmljZWAsIHNpbiB3cmFwcGVyIGxvY2FsIOKAlCBkZWNpc2nDs24gQ1RPKSArIGxhc1xuICogICAgYWNjaW9uZXMgZ2Vuw6lyaWNhcyBxdWUgZWwgY29uc3VtZXIgYXBvcnRlIHBvciBgY29uZmlnLmFjdGlvbnNgLlxuICogIC0gKipSZWRlcyoqIOKAlCBsaW5rcyBzb2NpYWxlcyAoYGNvbmZpZy5zb2NpYWxMaW5rc2ApOyBzZWNjacOzbiBvY3VsdGEgc2kgdmFjw61hLlxuICogIC0gKipGb290ZXIqKiDigJQgY29weXJpZ2h0IGNvbiBlbCBhw7FvIGFjdHVhbC5cbiAqXG4gKiBMbyBhcHAtc3BlY2lmaWMgKGxvZ28sIG5vbWJyZSwgdmVyc2nDs24sIHJlZGVzLCBhY2Npb25lcyBzaGFyZS9mYXEpIHZpYWphIGNvbW9cbiAqIERBVEEgZGUgY29uZmlnIOKAlCBOTyBjb21vIHNsb3RzIChBRFItMDIxKS4gTGEgdmVyc2nDs24gbGEgcGFzYSBlbCBjb25zdW1lclxuICogKGBjb25maWcudmVyc2lvbmAgPSBzdSBgQVBQX1ZFUlNJT05gKTsgbGEgbGliIE5PIGltcG9ydGEgZWwgYHZlcnNpb24udHNgIGRlIGxhXG4gKiBhcHAuIFNpIG5vIHNlIHBhc2EgdmVyc2nDs24sIGVsIHBpbGwgc2Ugb2N1bHRhLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci4gYEFjdGl2YXRlZFJvdXRlYFxuICogc2UgaW55ZWN0YSBgeyBvcHRpb25hbDogdHJ1ZSB9YCBzb2xvIHBhcmEgbGVlciBlbCByb3V0ZSBkYXRhIGRlIGNvbmZpZy5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuQWJvdXRgKS5cbiAqXG4gKiBHT1RDSEEgaTE4biBDb250ZW50UmVhY3Rpb246IGB2YWwtY29udGVudC1yZWFjdGlvbmAgZXhpZ2Ugc3UgbmFtZXNwYWNlXG4gKiBgQ29udGVudFJlYWN0aW9uYCByZWdpc3RyYWRvIGRvbmRlIHNlIHVzZSAoa2V5IGZhbHRhbnRlIGVuIGJpbmRpbmcgKyBDRCA9XG4gKiBuYXZlZ2Fkb3IgY29uZ2VsYWRvIGVuIGRldikuIGBDb250ZW50UmVhY3Rpb25Db21wb25lbnRgIHNlIGF1dG8tcmVnaXN0cmEgZXNlXG4gKiBuYW1lc3BhY2UgZW4gU1UgY29uc3RydWN0b3IsIHkgY29tbyBzZSBhYnJlIHbDrWEgYE1vZGFsU2VydmljZWAgZXNlIGNvbnN0cnVjdG9yXG4gKiBjb3JyZSBhbnRlcyBkZSBxdWUgc3UgdGVtcGxhdGUgYmluZGUg4oCUIHF1ZWRhIGN1YmllcnRvLiBJZ3VhbCBsbyBpbXBvcnRhbW9zXG4gKiBjb21vIGRlcGVuZGVuY2lhIGV4cGzDrWNpdGEgZGUgZXN0YSB2aXN0YSBwYXJhIHF1ZSBsYSBnYXJhbnTDrWEgc2VhIGxvY2FsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYWJvdXQtdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25CdXR0b24sIElvbkdyaWQsIElvbkljb24sIFBpbGxDb21wb25lbnQsIFRpdGxlQ29tcG9uZW50LCBUZXh0Q29tcG9uZW50LCBBY3Rpb25DYXJkQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWdyaWQgY2xhc3M9XCJhYm91dC1ncmlkXCI+XG4gICAgICA8IS0tIEhFUk86IGxvZ28gKyBuYW1lICsgdmVyc2lvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhYm91dC1oZXJvXCI+XG4gICAgICAgIEBpZiAobG9nb1ZhcigpKSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJhYm91dC1oZXJvX19sb2dvIGFib3V0LWhlcm9fX2xvZ28tLXZhclwiXG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnJhbmROYW1lKClcIlxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3ZhcignICsgbG9nb1ZhcigpICsgJywgdXJsKCcgKyBsb2dvU3JjKCkgKyAnKSknXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxpbWcgY2xhc3M9XCJhYm91dC1oZXJvX19sb2dvXCIgW3NyY109XCJsb2dvU3JjKClcIiBbYWx0XT1cImJyYW5kTmFtZSgpXCIgLz5cbiAgICAgICAgfVxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IGJyYW5kTmFtZSgpLFxuICAgICAgICAgICAgc2l6ZTogJ3hsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCd0YWdsaW5lJyksXG4gICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmICh2ZXJzaW9uKCkpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInZlcnNpb24tcm93XCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb3B5VmVyc2lvbigpXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0dCgndmVyc2lvbkxhYmVsJykgKyAnICcgKyB2ZXJzaW9uKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx2YWwtcGlsbFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0dCgndmVyc2lvbkxhYmVsJykgKyAnICcgKyB2ZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICB3ZWlnaHQ6ICdib2xkJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIGNsYXNzPVwidmVyc2lvbi1jb3B5LWljb25cIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBERVNDUklQVElPTiAtLT5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvblwiPlxuICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2Rlc2NUaXRsZScpXCIgLz5cbiAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdkZXNjQm9keScpLFxuICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDwhLS0gQUNUSU9OUyDigJQgcmF0aW5nIGJ1aWx0LWluICsgYWNjaW9uZXMgZGVsIGNvbnN1bWVyLiAtLT5cbiAgICAgIEBpZiAoc2hvd1JhdGluZygpIHx8IGFjdGlvbnMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvbiBhYm91dC1zZWN0aW9uLS1yZXZpZXdzXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwic2VjdGlvblRpdGxlKCdhY3Rpb25zVGl0bGUnKVwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFib3V0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgIEBpZiAoc2hvd1JhdGluZygpKSB7XG4gICAgICAgICAgICAgIDx2YWwtYWN0aW9uLWNhcmQgW3Byb3BzXT1cInJhdGVBY3Rpb25DYXJkKClcIiAob25DbGljayk9XCJvcGVuUmF0aW5nKClcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnMoKTsgdHJhY2sgYWN0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgIDx2YWwtYWN0aW9uLWNhcmQgW3Byb3BzXT1cImV4dHJhQWN0aW9uQ2FyZChhY3Rpb24pXCIgKG9uQ2xpY2spPVwiYWN0aW9uLm9uQ2xpY2soKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBTT0NJQUwg4oCUIHBlbsO6bHRpbW8sIGp1c3RvIGFudGVzIGRlbCBmb290ZXIgZGUgZGVyZWNob3MuIC0tPlxuICAgICAgQGlmIChzb2NpYWxMaW5rcygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJhYm91dC1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwic2VjdGlvblRpdGxlKCdzb2NpYWxUaXRsZScpXCIgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzb2NpYWxEZXNjJyksXG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFib3V0LXNvY2lhbFwiPlxuICAgICAgICAgICAgQGZvciAocyBvZiBzb2NpYWxMaW5rcygpOyB0cmFjayBzLnVybCkge1xuICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNvY2lhbC1idG5cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Vcmwocy51cmwpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzLmljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gRk9PVEVSIC0tPlxuICAgICAgPGZvb3RlciBjbGFzcz1cImFib3V0LWZvb3RlclwiPlxuICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogY29weXJpZ2h0KCksXG4gICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9pb24tZ3JpZD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWdyaWQge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtaGVybyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDAgMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtaGVyb19fbG9nbyB7XG4gICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtaGVyb19fbG9nby0tdmFyIHtcbiAgICAgICAgd2lkdGg6IDk2cHg7XG4gICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnZlcnNpb24tcm93OmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLnZlcnNpb24tY29weS1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwIDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuIHtcbiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICAtLXBhZGRpbmctc3RhcnQ6IDA7XG4gICAgICAgIC0tcGFkZGluZy1lbmQ6IDA7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG46aG92ZXIge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXRpbnQsICM4YTRjZTUpO1xuICAgICAgICAtLWNvbG9yOiAjZmZmO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4gaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQ6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQ6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0bixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0biB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBYm91dFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgYWJvdXRDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hBYm91dFJvdXRlc2ApLiBgcmVzb2x2ZWRDb25maWdgXG4gICAqIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBgQElucHV0YCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqL1xuICBASW5wdXQoKSBjb25maWc/OiBBYm91dFZpZXdDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxSZXF1aXJlZDxPbWl0PEFib3V0Vmlld0NvbmZpZywgJ29uUmF0ZWQnPj4gJiBQaWNrPEFib3V0Vmlld0NvbmZpZywgJ29uUmF0ZWQnPj4oXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ2Fib3V0Q29uZmlnJ10gPz8ge30pIGFzIEFib3V0Vmlld0NvbmZpZztcbiAgICAgIGNvbnN0IG1lcmdlZDogQWJvdXRWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJyYW5kOiB7XG4gICAgICAgICAgbmFtZTogbWVyZ2VkLmJyYW5kPy5uYW1lID8/IERFRkFVTFRfQlJBTkRfTkFNRSxcbiAgICAgICAgICBsb2dvU3JjOiBtZXJnZWQuYnJhbmQ/LmxvZ29TcmMgPz8gREVGQVVMVF9MT0dPX1NSQyxcbiAgICAgICAgICBsb2dvVmFyOiBtZXJnZWQuYnJhbmQ/LmxvZ29WYXIgPz8gREVGQVVMVF9MT0dPX1ZBUixcbiAgICAgICAgfSxcbiAgICAgICAgdmVyc2lvbjogbWVyZ2VkLnZlcnNpb24gPz8gJycsXG4gICAgICAgIHNvY2lhbExpbmtzOiBtZXJnZWQuc29jaWFsTGlua3MgPz8gW10sXG4gICAgICAgIHNob3dSYXRpbmc6IG1lcmdlZC5zaG93UmF0aW5nID8/IHRydWUsXG4gICAgICAgIHJhdGluZ0VudGl0eUlkOiBtZXJnZWQucmF0aW5nRW50aXR5SWQgPz8gREVGQVVMVF9SQVRJTkdfRU5USVRZX0lELFxuICAgICAgICBhY3Rpb25zOiBtZXJnZWQuYWN0aW9ucyA/PyBbXSxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICAgIG9uUmF0ZWQ6IG1lcmdlZC5vblJhdGVkLFxuICAgICAgfTtcbiAgICB9XG4gICk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IGJyYW5kTmFtZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5icmFuZC5uYW1lISk7XG4gIHJlYWRvbmx5IGxvZ29TcmMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYnJhbmQubG9nb1NyYyEpO1xuICByZWFkb25seSBsb2dvVmFyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmJyYW5kLmxvZ29WYXIgPz8gJycpO1xuICByZWFkb25seSB2ZXJzaW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnZlcnNpb24pO1xuICByZWFkb25seSBzb2NpYWxMaW5rcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5zb2NpYWxMaW5rcyk7XG4gIHJlYWRvbmx5IHNob3dSYXRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc2hvd1JhdGluZyk7XG4gIHJlYWRvbmx5IGFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYWN0aW9ucyk7XG5cbiAgLyoqIENvcHlyaWdodCBkZWwgZm9vdGVyIOKAlCBhw7FvIGFjdHVhbCBpbnRlcnBvbGFkbyBlbiBgY29weXJpZ2h0VGV4dGAuICovXG4gIHJlYWRvbmx5IGNvcHlyaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IHllYXIgPSBTdHJpbmcobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKTtcbiAgICByZXR1cm4gdGhpcy50dCgnY29weXJpZ2h0VGV4dCcpLnJlcGxhY2UoJ3t5ZWFyfScsIHllYXIpO1xuICB9KTtcblxuICAvKiogVGl0bGUgbWV0YWRhdGEgcGFyYSBzZWNjaW9uZXMg4oCUIGJvbGQgKyBzaXplIHNtYWxsLiAqL1xuICByZWFkb25seSByYXRlQWN0aW9uQ2FyZCA9IGNvbXB1dGVkPEFjdGlvbkNhcmRNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246IHsgaW9uaWNvbjogJ3N0YXItb3V0bGluZScsIGNvbG9yOiAncHJpbWFyeScgfSxcbiAgICAgIHRpdGxlOiB0aGlzLnR0KCdyYXRlVGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnR0KCdyYXRlRGVzYycpLFxuICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBzaGFkb3dlZDogZmFsc2UsXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShucykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQobnMsIEFCT1VUX1ZJRVdfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqIEhlbHBlciBpMThuIGJvdW5kIGFsIG5hbWVzcGFjZSByZXN1ZWx0by4gUmVhY3Rpdm8gdsOtYSBgbGFuZygpYC4gKi9cbiAgcHJvdGVjdGVkIHR0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG5cbiAgLyoqIFRpdGxlIG1ldGFkYXRhIHBhcmEgc2VjY2lvbmVzIOKAlCBib2xkICsgc2l6ZSBzbWFsbC4gKi9cbiAgcHJvdGVjdGVkIHNlY3Rpb25UaXRsZShrZXk6IHN0cmluZyk6IFRpdGxlTWV0YWRhdGEge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMudHQoa2V5KSxcbiAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgYm9sZDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEFjdGlvbkNhcmRNZXRhZGF0YSBwYXJhIHVuYSBhY2Npw7NuIGdlbsOpcmljYSBkZWwgY29uc3VtZXIuICovXG4gIHByb3RlY3RlZCBleHRyYUFjdGlvbkNhcmQoYWN0aW9uOiBBYm91dEFjdGlvbik6IEFjdGlvbkNhcmRNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246IHsgaW9uaWNvbjogYWN0aW9uLmljb24gPz8gJ2NoYXRidWJibGUtZWxsaXBzZXMtb3V0bGluZScsIGNvbG9yOiAncHJpbWFyeScgfSxcbiAgICAgIHRpdGxlOiBhY3Rpb24ubGFiZWwsXG4gICAgICBkZXNjcmlwdGlvbjogYWN0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBzaGFkb3dlZDogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDb3BpYSBsYSB2ZXJzacOzbiBhbCBwb3J0YXBhcGVsZXMgKyB0b2FzdCAoY29sb3IgZGFyaykuICovXG4gIGFzeW5jIGNvcHlWZXJzaW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHYgPSB0aGlzLnZlcnNpb24oKTtcbiAgICBpZiAoIXYpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodik7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCd2ZXJzaW9uQ29waWVkJykucmVwbGFjZSgne3Z9JywgdiksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAxNTAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgc2lsZW5jaW9zb1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBYnJlIHVuYSBVUkwgZXh0ZXJuYSBlbiBudWV2YSB0YWIuIGBtYWlsdG86YCBxdWVkYSBlbiBsYSBtaXNtYSB0YWIuICovXG4gIG9wZW5VcmwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgoJ21haWx0bzonKSkge1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gIH1cblxuICAvKipcbiAgICogXCJDYWxpZmljYXIgbGEgYXBwXCIg4oCUIGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYCBESVJFQ1RBTUVOVEUgY29tbyBzaGVldFxuICAgKiBtb2RhbCAoc2luIHdyYXBwZXIgbG9jYWwg4oCUIGRlY2lzacOzbiBDVE8pLiBFbCBjb21wb25lbnRlIHBlcnNpc3RlIGxhIHJlYWNjacOzblxuICAgKiBjb250cmEgZWwgYmFja2VuZCBkZSBmZWVkYmFjayB5IG11ZXN0cmEgc3UgcHJvcGlvIGVzdGFkbyBkZSBcImdyYWNpYXNcIjsgZWxcbiAgICogc2hlZXQgc2UgY2llcnJhIGFycmFzdHJhbmRvIChicmVha3BvaW50IDApLiBFbCBuYW1lc3BhY2UgaTE4blxuICAgKiBgQ29udGVudFJlYWN0aW9uYCBsbyBhdXRvLXJlZ2lzdHJhIGBDb250ZW50UmVhY3Rpb25Db21wb25lbnRgIGVuIHN1XG4gICAqIGNvbnN0cnVjdG9yLCBxdWUgY29ycmUgYWwgY3JlYXIgZWwgbW9kYWwg4oCUIHNpbiByaWVzZ28gZGUga2V5IGZhbHRhbnRlLlxuICAgKlxuICAgKiBTaGVldCAoYm90dG9tIHNoZWV0KTogZWwgY29udGVuaWRvIHNjcm9sbGVhIGRlbnRybyB5IGVsIGJvdMOzbiBcIkVudmlhclwiIHF1ZWRhXG4gICAqIHNpZW1wcmUgYWxjYW56YWJsZSwgdGFtYmnDqW4gZW4gdmlld3BvcnRzIGNoaWNvcy5cbiAgICovXG4gIGFzeW5jIG9wZW5SYXRpbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVhY3Rpb25Qcm9wczogUGFydGlhbDxDb250ZW50UmVhY3Rpb25NZXRhZGF0YT4gPSB7XG4gICAgICAvLyBlbnRpdHlUeXBlIFwiYXBwXCIgZGlzdGluZ3VlIGVzdGEgcmVhY2Npw7NuIGRlIGxhcyBkZSBhcnTDrWN1bG9zL0ZBUXMuXG4gICAgICBlbnRpdHlSZWY6IHsgZW50aXR5VHlwZTogJ2FwcCcsIGVudGl0eUlkOiB0aGlzLnJlc29sdmVkQ29uZmlnKCkucmF0aW5nRW50aXR5SWQgfSxcbiAgICAgIHF1ZXN0aW9uOiB0aGlzLnR0KCdyYXRlUXVlc3Rpb24nKSxcbiAgICAgIGNvbW1lbnRQbGFjZWhvbGRlcjogdGhpcy50dCgncmF0ZUNvbW1lbnQnKSxcbiAgICAgIHRoYW5rWW91TWVzc2FnZTogdGhpcy50dCgncmF0ZVRoYW5rcycpLFxuICAgICAgc2hvd0NvbW1lbnQ6IHRydWUsXG4gICAgICBzaG93VGhhbmtZb3U6IHRydWUsXG4gICAgICAvLyBNb2RhbCBvbmUtc2hvdDogTk8gYmxvcXVlYXIgZWwgcmVuZGVyIGNvbiBlbCBjaGVjayBkZSByYXRpbmcgcHJldmlvLlxuICAgICAgc2tpcEluaXRpYWxDaGVjazogdHJ1ZSxcbiAgICAgIGVtb2ppczogWyfwn5iVJywgJ/CfmYInLCAn8J+YjSddLFxuICAgICAgZW1vamlMYWJlbHM6IFt0aGlzLnR0KCdyYXRlQmFkJyksIHRoaXMudHQoJ3JhdGVNaWQnKSwgdGhpcy50dCgncmF0ZUdvb2QnKV0sXG4gICAgICAvLyBTaGVldCBhYmllcnRvIHbDrWEgTW9kYWxTZXJ2aWNlOiBib3TDs24gZGUgY2llcnJlIGFkZW3DoXMgZGVsIGRyYWctaGFuZGxlLlxuICAgICAgc2hvd0Nsb3NlQnV0dG9uOiB0cnVlLFxuICAgIH07XG4gICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbjxDb250ZW50UmVhY3Rpb25Db21wb25lbnQ+KHtcbiAgICAgIGNvbXBvbmVudDogQ29udGVudFJlYWN0aW9uQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHsgcHJvcHM6IHJlYWN0aW9uUHJvcHMgfSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIGluaXRpYWxCcmVha3BvaW50OiAwLjksXG4gICAgICAgIGJyZWFrcG9pbnRzOiBbMCwgMC45LCAxXSxcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgICAgaGFuZGxlQmVoYXZpb3I6ICdjeWNsZScsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vblJhdGVkPy4oKTtcbiAgfVxufVxuIl19
|
|
473
|
+
}], ctorParameters: () => [] });
|
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Fib3V0LXZpZXcvYWJvdXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGFBQWEsRUFDYixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFdBQVcsR0FDWixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBR3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzSFQsNDNFQXZIUyxTQUFTLG9QQUFFLE9BQU8sd0VBQUUsT0FBTywySkFBRSxhQUFhLHdIQUFFLGNBQWMseUVBQUUsYUFBYSx3RUFBRSxtQkFBbUI7OzRGQWtRN0Ysa0JBQWtCO2tCQXJROUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxZQUMvRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNIVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uR3JpZCwgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBjaGF0YnViYmxlRWxsaXBzZXNPdXRsaW5lLFxuICBjb3B5T3V0bGluZSxcbiAgaGVscENpcmNsZU91dGxpbmUsXG4gIGxvZ29GYWNlYm9vayxcbiAgbG9nb0luc3RhZ3JhbSxcbiAgbG9nb0xpbmtlZGluLFxuICBsb2dvVGlrdG9rLFxuICBsb2dvVHdpdHRlcixcbiAgbG9nb1lvdXR1YmUsXG4gIHNoYXJlU29jaWFsT3V0bGluZSxcbiAgc3Rhck91dGxpbmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgUGlsbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9waWxsL3BpbGwuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvYWN0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFjdGlvbkNhcmRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9hY3Rpb24tY2FyZC90eXBlcyc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdHlwZXMnO1xuaW1wb3J0IHsgQ29udGVudFJlYWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFJlYWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1yZWFjdGlvbi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbmltcG9ydCB7IEFib3V0QWN0aW9uLCBBYm91dFZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFCT1VUX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWJvdXQtdmlldy5pMThuJztcblxuYWRkSWNvbnMoe1xuICBjb3B5T3V0bGluZSxcbiAgc3Rhck91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHNoYXJlU29jaWFsT3V0bGluZSxcbiAgaGVscENpcmNsZU91dGxpbmUsXG4gIGxvZ29GYWNlYm9vayxcbiAgbG9nb0luc3RhZ3JhbSxcbiAgbG9nb0xpbmtlZGluLFxuICBsb2dvVHdpdHRlcixcbiAgbG9nb1lvdXR1YmUsXG4gIGxvZ29UaWt0b2ssXG59KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWJvdXQnO1xuY29uc3QgREVGQVVMVF9CUkFORF9OQU1FID0gJ1ZhbHRlY2gnO1xuY29uc3QgREVGQVVMVF9MT0dPX1NSQyA9ICdhc3NldHMvaW1hZ2VzL21haW4taWNvbi5wbmcnO1xuLy8gUG9yIGRlZmF1bHQgZWwgSEVSTyB1c2EgbGEgQ1NTIHZhciBkZSBtYXJjYSBkZWwgZmFjdG9yeSAoYC0tbWFpbi1sb2dvLW1pbmlgKSxcbi8vIHF1ZSBjYWRhIGFwcCBkZWZpbmUgZW4gc3UgYHRoZW1lL3ZhcmlhYmxlcy5zY3NzYCAodGhlbWUtYXdhcmUpLiBTaSBsYSBhcHAgbm9cbi8vIGxhIGRlZmluZSwgZWwgYHZhciguLi4pYCBjYWUgYWwgYGxvZ29TcmNgICh2ZXIgdGVtcGxhdGUpLiBFbCBjb25zdW1lciBwdWVkZVxuLy8gcGFzYXIgYGJyYW5kLmxvZ29WYXI6ICcnYCBwYXJhIGZvcnphciBlbCBgPGltZyBzcmM9bG9nb1NyYz5gIGNsw6FzaWNvLlxuY29uc3QgREVGQVVMVF9MT0dPX1ZBUiA9ICctLW1haW4tbG9nby1taW5pJztcbmNvbnN0IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCA9ICdleHBlcmllbmNlJztcblxuLyoqXG4gKiBgdmFsLWFib3V0LXZpZXdgIOKAlCB2aXN0YSBBYm91dCBmdWxsLWZlYXR1cmUgYXV0b2NvbnRlbmlkYSAob3JnYW5pc20pLlxuICogUHJvbW92aWRhIGRlc2RlIGBzaG93Y2FzZWAgYmFqbyBlbCBwcm9jZXNvIGRlIEFEUi0wMjEuIFJlw7puZTpcbiAqICAtICoqSEVSTyoqIOKAlCBsb2dvICsgbm9tYnJlIGRlIG1hcmNhICsgdGFnbGluZSArIHBpbGwgZGUgdmVyc2nDs24gKGNvcGlhYmxlKS5cbiAqICAtICoqRGVzY3JpcGNpw7NuKiog4oCUIHTDrXR1bG8gKyBjdWVycG8uXG4gKiAgLSAqKkFjY2lvbmVzKiog4oCUIGFjdGlvbi1jYXJkIGRlIHJhdGluZyBidWlsdC1pbiAoYWJyZSBgdmFsLWNvbnRlbnQtcmVhY3Rpb25gXG4gKiAgICBESVJFQ1RBTUVOVEUgdsOtYSBgTW9kYWxTZXJ2aWNlYCwgc2luIHdyYXBwZXIgbG9jYWwg4oCUIGRlY2lzacOzbiBDVE8pICsgbGFzXG4gKiAgICBhY2Npb25lcyBnZW7DqXJpY2FzIHF1ZSBlbCBjb25zdW1lciBhcG9ydGUgcG9yIGBjb25maWcuYWN0aW9uc2AuXG4gKiAgLSAqKlJlZGVzKiog4oCUIGxpbmtzIHNvY2lhbGVzIChgY29uZmlnLnNvY2lhbExpbmtzYCk7IHNlY2Npw7NuIG9jdWx0YSBzaSB2YWPDrWEuXG4gKiAgLSAqKkZvb3RlcioqIOKAlCBjb3B5cmlnaHQgY29uIGVsIGHDsW8gYWN0dWFsLlxuICpcbiAqIExvIGFwcC1zcGVjaWZpYyAobG9nbywgbm9tYnJlLCB2ZXJzacOzbiwgcmVkZXMsIGFjY2lvbmVzIHNoYXJlL2ZhcSkgdmlhamEgY29tb1xuICogREFUQSBkZSBjb25maWcg4oCUIE5PIGNvbW8gc2xvdHMgKEFEUi0wMjEpLiBMYSB2ZXJzacOzbiBsYSBwYXNhIGVsIGNvbnN1bWVyXG4gKiAoYGNvbmZpZy52ZXJzaW9uYCA9IHN1IGBBUFBfVkVSU0lPTmApOyBsYSBsaWIgTk8gaW1wb3J0YSBlbCBgdmVyc2lvbi50c2AgZGUgbGFcbiAqIGFwcC4gU2kgbm8gc2UgcGFzYSB2ZXJzacOzbiwgZWwgcGlsbCBzZSBvY3VsdGEuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgXG4gKiBzZSBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5BYm91dGApLlxuICpcbiAqIEdPVENIQSBpMThuIENvbnRlbnRSZWFjdGlvbjogYHZhbC1jb250ZW50LXJlYWN0aW9uYCBleGlnZSBzdSBuYW1lc3BhY2VcbiAqIGBDb250ZW50UmVhY3Rpb25gIHJlZ2lzdHJhZG8gZG9uZGUgc2UgdXNlIChrZXkgZmFsdGFudGUgZW4gYmluZGluZyArIENEID1cbiAqIG5hdmVnYWRvciBjb25nZWxhZG8gZW4gZGV2KS4gYENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudGAgc2UgYXV0by1yZWdpc3RyYSBlc2VcbiAqIG5hbWVzcGFjZSBlbiBTVSBjb25zdHJ1Y3RvciwgeSBjb21vIHNlIGFicmUgdsOtYSBgTW9kYWxTZXJ2aWNlYCBlc2UgY29uc3RydWN0b3JcbiAqIGNvcnJlIGFudGVzIGRlIHF1ZSBzdSB0ZW1wbGF0ZSBiaW5kZSDigJQgcXVlZGEgY3ViaWVydG8uIElndWFsIGxvIGltcG9ydGFtb3NcbiAqIGNvbW8gZGVwZW5kZW5jaWEgZXhwbMOtY2l0YSBkZSBlc3RhIHZpc3RhIHBhcmEgcXVlIGxhIGdhcmFudMOtYSBzZWEgbG9jYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hYm91dC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvbkJ1dHRvbiwgSW9uR3JpZCwgSW9uSWNvbiwgUGlsbENvbXBvbmVudCwgVGl0bGVDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEFjdGlvbkNhcmRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tZ3JpZCBjbGFzcz1cImFib3V0LWdyaWRcIj5cbiAgICAgIDwhLS0gSEVSTzogbG9nbyArIG5hbWUgKyB2ZXJzaW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFib3V0LWhlcm9cIj5cbiAgICAgICAgQGlmIChsb2dvVmFyKCkpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImFib3V0LWhlcm9fX2xvZ28gYWJvdXQtaGVyb19fbG9nby0tdmFyXCJcbiAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicmFuZE5hbWUoKVwiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCIndmFyKCcgKyBsb2dvVmFyKCkgKyAnLCB1cmwoJyArIGxvZ29TcmMoKSArICcpKSdcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGltZyBjbGFzcz1cImFib3V0LWhlcm9fX2xvZ29cIiBbc3JjXT1cImxvZ29TcmMoKVwiIFthbHRdPVwiYnJhbmROYW1lKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogYnJhbmROYW1lKCksXG4gICAgICAgICAgICBzaXplOiAneGxhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogdHQoJ3RhZ2xpbmUnKSxcbiAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKHZlcnNpb24oKSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1yb3dcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlWZXJzaW9uKClcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInR0KCd2ZXJzaW9uTGFiZWwnKSArICcgJyArIHZlcnNpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHZhbC1waWxsXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHR0KCd2ZXJzaW9uTGFiZWwnKSArICcgJyArIHZlcnNpb24oKSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY29weS1vdXRsaW5lXCIgY2xhc3M9XCJ2ZXJzaW9uLWNvcHktaWNvblwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJhYm91dC1zZWN0aW9uXCI+XG4gICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInNlY3Rpb25UaXRsZSgnZGVzY1RpdGxlJylcIiAvPlxuICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogdHQoJ2Rlc2NCb2R5JyksXG4gICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPCEtLSBBQ1RJT05TIOKAlCByYXRpbmcgYnVpbHQtaW4gKyBhY2Npb25lcyBkZWwgY29uc3VtZXIuIC0tPlxuICAgICAgQGlmIChzaG93UmF0aW5nKCkgfHwgYWN0aW9ucygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJhYm91dC1zZWN0aW9uIGFib3V0LXNlY3Rpb24tLXJldmlld3NcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2FjdGlvbnNUaXRsZScpXCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChzaG93UmF0aW5nKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwicmF0ZUFjdGlvbkNhcmQoKVwiIChvbkNsaWNrKT1cIm9wZW5SYXRpbmcoKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9ucygpOyB0cmFjayBhY3Rpb24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwiZXh0cmFBY3Rpb25DYXJkKGFjdGlvbilcIiAob25DbGljayk9XCJhY3Rpb24ub25DbGljaygpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICA8IS0tIFNPQ0lBTCDigJQgcGVuw7psdGltbywganVzdG8gYW50ZXMgZGVsIGZvb3RlciBkZSBkZXJlY2hvcy4gLS0+XG4gICAgICBAaWYgKHNvY2lhbExpbmtzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImFib3V0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ3NvY2lhbFRpdGxlJylcIiAvPlxuICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogdHQoJ3NvY2lhbERlc2MnKSxcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtc29jaWFsXCI+XG4gICAgICAgICAgICBAZm9yIChzIG9mIHNvY2lhbExpbmtzKCk7IHRyYWNrIHMudXJsKSB7XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic29jaWFsLWJ0blwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblVybChzLnVybClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInMuaWNvblwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBGT09URVIgLS0+XG4gICAgICA8Zm9vdGVyIGNsYXNzPVwiYWJvdXQtZm9vdGVyXCI+XG4gICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBjb250ZW50OiBjb3B5cmlnaHQoKSxcbiAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Zvb3Rlcj5cbiAgICA8L2lvbi1ncmlkPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtZ3JpZCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMCAxNnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1oZXJvX19sb2dvIHtcbiAgICAgICAgaGVpZ2h0OiA5NnB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1oZXJvX19sb2dvLS12YXIge1xuICAgICAgICB3aWR0aDogOTZweDtcbiAgICAgICAgaGVpZ2h0OiA5NnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIH1cblxuICAgICAgLnZlcnNpb24tcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMC44NTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAudmVyc2lvbi1yb3c6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICAudmVyc2lvbi1jb3B5LWljb24ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmRfX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4ge1xuICAgICAgICAtLWJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpO1xuICAgICAgICAtLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIC0tcGFkZGluZy1zdGFydDogMDtcbiAgICAgICAgLS1wYWRkaW5nLWVuZDogMDtcbiAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0bjpob3ZlciB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktdGludCwgIzhhNGNlNSk7XG4gICAgICAgIC0tY29sb3I6ICNmZmY7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0biBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZDpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZDpob3ZlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0bixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFib3V0Vmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2UgPSBpbmplY3QoTW9kYWxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBpbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYGFib3V0Q29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoQWJvdXRSb3V0ZXNgKS4gYHJlc29sdmVkQ29uZmlnYFxuICAgKiBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cyDigJQgZWwgaW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKlxuICAgKiAqKlNpZ25hbCBpbnB1dCoqIChubyBgQElucHV0YCBjbMOhc2ljbyk6IGByZXNvbHZlZENvbmZpZ2AgZXMgdW4gYGNvbXB1dGVkYCBxdWUgc2VcbiAgICogZXZhbMO6YSBwb3IgcHJpbWVyYSB2ZXogZW4gZWwgY29uc3RydWN0b3IgKHbDrWEgYHRoaXMubnNgIOKGkiBgc2V0QmFja0hlYWRlcmApLCBBTlRFU1xuICAgKiBkZSBxdWUgdW4gYEBJbnB1dGAgY2zDoXNpY28gZXN0w6kgYmluZGVhZG8uIENvbiBgQElucHV0YCBlbCBjb21wdXRlZCBtZW1vaXphYmEgbGFcbiAgICogY29uZmlnIHZhY8OtYSB5LCBhbCBubyBkZXBlbmRlciBkZSBuaW5ndW5hIHNlw7FhbCwgTlVOQ0EgcmVjb21wdXRhYmEg4oaSIGlnbm9yYWJhXG4gICAqIGBbY29uZmlnXWAgKHNvY2lhbC9hY2Npb25lcy92ZXJzacOzbi9tYXJjYSBxdWVkYWJhbiBlbiBkZWZhdWx0KS4gQ29tbyBzaWduYWwsIGVsXG4gICAqIGNvbXB1dGVkIGxvIHRyYWNrZWEgeSByZWNvbXB1dGEgY3VhbmRvIGVsIGJpbmRpbmcgbGxlZ2EuXG4gICAqL1xuICByZWFkb25seSBjb25maWcgPSBpbnB1dDxBYm91dFZpZXdDb25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxSZXF1aXJlZDxPbWl0PEFib3V0Vmlld0NvbmZpZywgJ29uUmF0ZWQnPj4gJiBQaWNrPEFib3V0Vmlld0NvbmZpZywgJ29uUmF0ZWQnPj4oXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ2Fib3V0Q29uZmlnJ10gPz8ge30pIGFzIEFib3V0Vmlld0NvbmZpZztcbiAgICAgIGNvbnN0IG1lcmdlZDogQWJvdXRWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZygpID8/IHt9KSB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYnJhbmQ6IHtcbiAgICAgICAgICBuYW1lOiBtZXJnZWQuYnJhbmQ/Lm5hbWUgPz8gREVGQVVMVF9CUkFORF9OQU1FLFxuICAgICAgICAgIGxvZ29TcmM6IG1lcmdlZC5icmFuZD8ubG9nb1NyYyA/PyBERUZBVUxUX0xPR09fU1JDLFxuICAgICAgICAgIGxvZ29WYXI6IG1lcmdlZC5icmFuZD8ubG9nb1ZhciA/PyBERUZBVUxUX0xPR09fVkFSLFxuICAgICAgICB9LFxuICAgICAgICB2ZXJzaW9uOiBtZXJnZWQudmVyc2lvbiA/PyAnJyxcbiAgICAgICAgc29jaWFsTGlua3M6IG1lcmdlZC5zb2NpYWxMaW5rcyA/PyBbXSxcbiAgICAgICAgc2hvd1JhdGluZzogbWVyZ2VkLnNob3dSYXRpbmcgPz8gdHJ1ZSxcbiAgICAgICAgcmF0aW5nRW50aXR5SWQ6IG1lcmdlZC5yYXRpbmdFbnRpdHlJZCA/PyBERUZBVUxUX1JBVElOR19FTlRJVFlfSUQsXG4gICAgICAgIGFjdGlvbnM6IG1lcmdlZC5hY3Rpb25zID8/IFtdLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgICAgb25SYXRlZDogbWVyZ2VkLm9uUmF0ZWQsXG4gICAgICB9O1xuICAgIH1cbiAgKTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgYnJhbmROYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmJyYW5kLm5hbWUhKTtcbiAgcmVhZG9ubHkgbG9nb1NyYyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5icmFuZC5sb2dvU3JjISk7XG4gIHJlYWRvbmx5IGxvZ29WYXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYnJhbmQubG9nb1ZhciA/PyAnJyk7XG4gIHJlYWRvbmx5IHZlcnNpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkudmVyc2lvbik7XG4gIHJlYWRvbmx5IHNvY2lhbExpbmtzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnNvY2lhbExpbmtzKTtcbiAgcmVhZG9ubHkgc2hvd1JhdGluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5zaG93UmF0aW5nKTtcbiAgcmVhZG9ubHkgYWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5hY3Rpb25zKTtcblxuICAvKiogQ29weXJpZ2h0IGRlbCBmb290ZXIg4oCUIGHDsW8gYWN0dWFsIGludGVycG9sYWRvIGVuIGBjb3B5cmlnaHRUZXh0YC4gKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgeWVhciA9IFN0cmluZyhuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkpO1xuICAgIHJldHVybiB0aGlzLnR0KCdjb3B5cmlnaHRUZXh0JykucmVwbGFjZSgne3llYXJ9JywgeWVhcik7XG4gIH0pO1xuXG4gIC8qKiBUaXRsZSBtZXRhZGF0YSBwYXJhIHNlY2Npb25lcyDigJQgYm9sZCArIHNpemUgc21hbGwuICovXG4gIHJlYWRvbmx5IHJhdGVBY3Rpb25DYXJkID0gY29tcHV0ZWQ8QWN0aW9uQ2FyZE1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogeyBpb25pY29uOiAnc3Rhci1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICAgICAgdGl0bGU6IHRoaXMudHQoJ3JhdGVUaXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ3JhdGVEZXNjJyksXG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgIHNoYWRvd2VkOiBmYWxzZSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBucyA9IHRoaXMubnM7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKG5zKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudChucywgQUJPVVRfVklFV19JMThOKTtcbiAgICB9XG4gICAgdGhpcy5uYXYuc2V0QmFja0hlYWRlcigncGFnZVRpdGxlJywgbnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gIH1cblxuICAvKiogSGVscGVyIGkxOG4gYm91bmQgYWwgbmFtZXNwYWNlIHJlc3VlbHRvLiBSZWFjdGl2byB2w61hIGBsYW5nKClgLiAqL1xuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5ucyk7XG4gIH1cblxuICAvKiogVGl0bGUgbWV0YWRhdGEgcGFyYSBzZWNjaW9uZXMg4oCUIGJvbGQgKyBzaXplIHNtYWxsLiAqL1xuICBwcm90ZWN0ZWQgc2VjdGlvblRpdGxlKGtleTogc3RyaW5nKTogVGl0bGVNZXRhZGF0YSB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogdGhpcy50dChrZXkpLFxuICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBib2xkOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICAvKiogQWN0aW9uQ2FyZE1ldGFkYXRhIHBhcmEgdW5hIGFjY2nDs24gZ2Vuw6lyaWNhIGRlbCBjb25zdW1lci4gKi9cbiAgcHJvdGVjdGVkIGV4dHJhQWN0aW9uQ2FyZChhY3Rpb246IEFib3V0QWN0aW9uKTogQWN0aW9uQ2FyZE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogeyBpb25pY29uOiBhY3Rpb24uaWNvbiA/PyAnY2hhdGJ1YmJsZS1lbGxpcHNlcy1vdXRsaW5lJywgY29sb3I6ICdwcmltYXJ5JyB9LFxuICAgICAgdGl0bGU6IGFjdGlvbi5sYWJlbCxcbiAgICAgIGRlc2NyaXB0aW9uOiBhY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIGJvcmRlcmVkOiBmYWxzZSxcbiAgICAgIHNoYWRvd2VkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENvcGlhIGxhIHZlcnNpw7NuIGFsIHBvcnRhcGFwZWxlcyArIHRvYXN0IChjb2xvciBkYXJrKS4gKi9cbiAgYXN5bmMgY29weVZlcnNpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmVyc2lvbigpO1xuICAgIGlmICghdikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh2KTtcbiAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ3ZlcnNpb25Db3BpZWQnKS5yZXBsYWNlKCd7dn0nLCB2KSxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgZHVyYXRpb246IDE1MDAsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBzaWxlbmNpb3NvXG4gICAgfVxuICB9XG5cbiAgLyoqIEFicmUgdW5hIFVSTCBleHRlcm5hIGVuIG51ZXZhIHRhYi4gYG1haWx0bzpgIHF1ZWRhIGVuIGxhIG1pc21hIHRhYi4gKi9cbiAgb3BlblVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnbWFpbHRvOicpKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcIkNhbGlmaWNhciBsYSBhcHBcIiDigJQgYWJyZSBgdmFsLWNvbnRlbnQtcmVhY3Rpb25gIERJUkVDVEFNRU5URSBjb21vIHNoZWV0XG4gICAqIG1vZGFsIChzaW4gd3JhcHBlciBsb2NhbCDigJQgZGVjaXNpw7NuIENUTykuIEVsIGNvbXBvbmVudGUgcGVyc2lzdGUgbGEgcmVhY2Npw7NuXG4gICAqIGNvbnRyYSBlbCBiYWNrZW5kIGRlIGZlZWRiYWNrIHkgbXVlc3RyYSBzdSBwcm9waW8gZXN0YWRvIGRlIFwiZ3JhY2lhc1wiOyBlbFxuICAgKiBzaGVldCBzZSBjaWVycmEgYXJyYXN0cmFuZG8gKGJyZWFrcG9pbnQgMCkuIEVsIG5hbWVzcGFjZSBpMThuXG4gICAqIGBDb250ZW50UmVhY3Rpb25gIGxvIGF1dG8tcmVnaXN0cmEgYENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudGAgZW4gc3VcbiAgICogY29uc3RydWN0b3IsIHF1ZSBjb3JyZSBhbCBjcmVhciBlbCBtb2RhbCDigJQgc2luIHJpZXNnbyBkZSBrZXkgZmFsdGFudGUuXG4gICAqXG4gICAqIFNoZWV0IChib3R0b20gc2hlZXQpOiBlbCBjb250ZW5pZG8gc2Nyb2xsZWEgZGVudHJvIHkgZWwgYm90w7NuIFwiRW52aWFyXCIgcXVlZGFcbiAgICogc2llbXByZSBhbGNhbnphYmxlLCB0YW1iacOpbiBlbiB2aWV3cG9ydHMgY2hpY29zLlxuICAgKi9cbiAgYXN5bmMgb3BlblJhdGluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZWFjdGlvblByb3BzOiBQYXJ0aWFsPENvbnRlbnRSZWFjdGlvbk1ldGFkYXRhPiA9IHtcbiAgICAgIC8vIGVudGl0eVR5cGUgXCJhcHBcIiBkaXN0aW5ndWUgZXN0YSByZWFjY2nDs24gZGUgbGFzIGRlIGFydMOtY3Vsb3MvRkFRcy5cbiAgICAgIGVudGl0eVJlZjogeyBlbnRpdHlUeXBlOiAnYXBwJywgZW50aXR5SWQ6IHRoaXMucmVzb2x2ZWRDb25maWcoKS5yYXRpbmdFbnRpdHlJZCB9LFxuICAgICAgcXVlc3Rpb246IHRoaXMudHQoJ3JhdGVRdWVzdGlvbicpLFxuICAgICAgY29tbWVudFBsYWNlaG9sZGVyOiB0aGlzLnR0KCdyYXRlQ29tbWVudCcpLFxuICAgICAgdGhhbmtZb3VNZXNzYWdlOiB0aGlzLnR0KCdyYXRlVGhhbmtzJyksXG4gICAgICBzaG93Q29tbWVudDogdHJ1ZSxcbiAgICAgIHNob3dUaGFua1lvdTogdHJ1ZSxcbiAgICAgIC8vIE1vZGFsIG9uZS1zaG90OiBOTyBibG9xdWVhciBlbCByZW5kZXIgY29uIGVsIGNoZWNrIGRlIHJhdGluZyBwcmV2aW8uXG4gICAgICBza2lwSW5pdGlhbENoZWNrOiB0cnVlLFxuICAgICAgZW1vamlzOiBbJ/CfmJUnLCAn8J+ZgicsICfwn5iNJ10sXG4gICAgICBlbW9qaUxhYmVsczogW3RoaXMudHQoJ3JhdGVCYWQnKSwgdGhpcy50dCgncmF0ZU1pZCcpLCB0aGlzLnR0KCdyYXRlR29vZCcpXSxcbiAgICAgIC8vIFNoZWV0IGFiaWVydG8gdsOtYSBNb2RhbFNlcnZpY2U6IGJvdMOzbiBkZSBjaWVycmUgYWRlbcOhcyBkZWwgZHJhZy1oYW5kbGUuXG4gICAgICBzaG93Q2xvc2VCdXR0b246IHRydWUsXG4gICAgfTtcbiAgICBhd2FpdCB0aGlzLm1vZGFsU2VydmljZS5vcGVuPENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudD4oe1xuICAgICAgY29tcG9uZW50OiBDb250ZW50UmVhY3Rpb25Db21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczogeyBwcm9wczogcmVhY3Rpb25Qcm9wcyB9LFxuICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuOSxcbiAgICAgICAgYnJlYWtwb2ludHM6IFswLCAwLjksIDFdLFxuICAgICAgICBzaG93SGFuZGxlOiB0cnVlLFxuICAgICAgICBoYW5kbGVCZWhhdmlvcjogJ2N5Y2xlJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uUmF0ZWQ/LigpO1xuICB9XG59XG4iXX0=
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '2.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '2.0.1020';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDIwJztcbiJdfQ==
|
|
@@ -54,7 +54,7 @@ import 'prismjs/components/prism-json';
|
|
|
54
54
|
* Current version of valtech-components.
|
|
55
55
|
* This is automatically updated during the publish process.
|
|
56
56
|
*/
|
|
57
|
-
const VERSION = '2.0.
|
|
57
|
+
const VERSION = '2.0.1020';
|
|
58
58
|
|
|
59
59
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
60
60
|
let isRefreshing = false;
|
|
@@ -54199,9 +54199,22 @@ class AboutViewComponent {
|
|
|
54199
54199
|
this.modalService = inject(ModalService);
|
|
54200
54200
|
this.toast = inject(ToastService);
|
|
54201
54201
|
this.route = inject(ActivatedRoute, { optional: true });
|
|
54202
|
+
/**
|
|
54203
|
+
* Config vía input (object-first). Si no se pasa, se cae al route data
|
|
54204
|
+
* `aboutConfig` (poblado por `provideValtechAboutRoutes`). `resolvedConfig`
|
|
54205
|
+
* mergea con los defaults — el input gana sobre route data.
|
|
54206
|
+
*
|
|
54207
|
+
* **Signal input** (no `@Input` clásico): `resolvedConfig` es un `computed` que se
|
|
54208
|
+
* evalúa por primera vez en el constructor (vía `this.ns` → `setBackHeader`), ANTES
|
|
54209
|
+
* de que un `@Input` clásico esté bindeado. Con `@Input` el computed memoizaba la
|
|
54210
|
+
* config vacía y, al no depender de ninguna señal, NUNCA recomputaba → ignoraba
|
|
54211
|
+
* `[config]` (social/acciones/versión/marca quedaban en default). Como signal, el
|
|
54212
|
+
* computed lo trackea y recomputa cuando el binding llega.
|
|
54213
|
+
*/
|
|
54214
|
+
this.config = input(undefined);
|
|
54202
54215
|
this.resolvedConfig = computed(() => {
|
|
54203
54216
|
const fromRoute = (this.route?.snapshot.data['aboutConfig'] ?? {});
|
|
54204
|
-
const merged = { ...fromRoute, ...(this.config ?? {}) };
|
|
54217
|
+
const merged = { ...fromRoute, ...(this.config() ?? {}) };
|
|
54205
54218
|
return {
|
|
54206
54219
|
brand: {
|
|
54207
54220
|
name: merged.brand?.name ?? DEFAULT_BRAND_NAME,
|
|
@@ -54339,7 +54352,7 @@ class AboutViewComponent {
|
|
|
54339
54352
|
this.resolvedConfig().onRated?.();
|
|
54340
54353
|
}
|
|
54341
54354
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54342
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AboutViewComponent, isStandalone: true, selector: "val-about-view", inputs: { config: "config" }, ngImport: i0, template: `
|
|
54355
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AboutViewComponent, isStandalone: true, selector: "val-about-view", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
54343
54356
|
<ion-grid class="about-grid">
|
|
54344
54357
|
<!-- HERO: logo + name + version -->
|
|
54345
54358
|
<div class="about-hero">
|
|
@@ -54580,9 +54593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
54580
54593
|
</footer>
|
|
54581
54594
|
</ion-grid>
|
|
54582
54595
|
`, styles: [":host{display:block}.about-grid{padding:16px 0;max-width:720px;margin:0 auto}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
|
|
54583
|
-
}], ctorParameters: () => []
|
|
54584
|
-
type: Input
|
|
54585
|
-
}] } });
|
|
54596
|
+
}], ctorParameters: () => [] });
|
|
54586
54597
|
|
|
54587
54598
|
/**
|
|
54588
54599
|
* Configuración acotada de `val-about-view` (object-first). La vista About es
|