valtech-components 4.0.1033 → 4.0.1034
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.
|
@@ -340,7 +340,7 @@ export class MenuComponent {
|
|
|
340
340
|
}
|
|
341
341
|
<ion-header [class.ion-no-border]="true">
|
|
342
342
|
<ion-toolbar>
|
|
343
|
-
<ion-buttons slot="start"
|
|
343
|
+
<ion-buttons slot="start" class="menu-logo-slot">
|
|
344
344
|
<val-image
|
|
345
345
|
[props]="{
|
|
346
346
|
src: '--main-logo-mini',
|
|
@@ -406,7 +406,7 @@ export class MenuComponent {
|
|
|
406
406
|
/>
|
|
407
407
|
}
|
|
408
408
|
</ion-menu>
|
|
409
|
-
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
409
|
+
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}ion-menu .menu-logo-slot{padding-left:.5rem}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-logo-slot{width:100%;justify-content:center;padding-left:0;margin:0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
410
410
|
}
|
|
411
411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuComponent, decorators: [{
|
|
412
412
|
type: Component,
|
|
@@ -448,7 +448,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
448
448
|
}
|
|
449
449
|
<ion-header [class.ion-no-border]="true">
|
|
450
450
|
<ion-toolbar>
|
|
451
|
-
<ion-buttons slot="start"
|
|
451
|
+
<ion-buttons slot="start" class="menu-logo-slot">
|
|
452
452
|
<val-image
|
|
453
453
|
[props]="{
|
|
454
454
|
src: '--main-logo-mini',
|
|
@@ -514,7 +514,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
514
514
|
/>
|
|
515
515
|
}
|
|
516
516
|
</ion-menu>
|
|
517
|
-
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
517
|
+
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}ion-menu .menu-logo-slot{padding-left:.5rem}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-logo-slot{width:100%;justify-content:center;padding-left:0;margin:0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
518
518
|
}], propDecorators: { props: [{
|
|
519
519
|
type: Input
|
|
520
520
|
}], onTouchStart: [{
|
|
@@ -530,4 +530,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
530
530
|
type: HostListener,
|
|
531
531
|
args: ['document:pointerup', ['$event']]
|
|
532
532
|
}] } });
|
|
533
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWlISCxNQUFNLE9BQU8sYUFBYTtJQS9HMUI7UUFnSFUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXpELDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxzQkFBc0I7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNW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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQsb3RFQXhHQyxZQUFZLCtCQUNaLE9BQU8sa0pBQ1AsVUFBVSw4RUFDVixhQUFhLDBGQUNiLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSx3S0FDVixjQUFjLHlFQUNkLGVBQWU7OzRGQWlHTixhQUFhO2tCQS9HekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQ7OEJBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFnQ04sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVkvQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUg3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblRvb2xiYXIsXG4gIE1lbnVDb250cm9sbGVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtbWVudVxuICpcbiAqIEEgc2lkZSBtZW51IGNvbXBvbmVudCB1c2luZyBJb25pYyBJb25NZW51IHdpdGggY3VzdG9taXphYmxlIGxvZ28sXG4gKiBjbG9zZSBidXR0b24sIGFuZCBjb250ZW50IHByb2plY3Rpb24gZm9yIG1lbnUgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbWVudVxuICogICBbcHJvcHNdPVwie1xuICogICAgIGlkOiAnbWFpbi1tZW51JyxcbiAqICAgICBjb250ZW50SWQ6ICdtYWluLWNvbnRlbnQnLFxuICogICAgIHNpZGU6ICdzdGFydCcsXG4gKiAgICAgdHlwZTogJ292ZXJsYXknLFxuICogICAgIHN3aXBlOiB0cnVlLFxuICogICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogICB9XCJcbiAqID5cbiAqICAgPHZhbC1saW5rcy1hY2NvcmRpb24gW3Byb3BzXT1cIm1lbnVMaW5rc1wiPjwvdmFsLWxpbmtzLWFjY29yZGlvbj5cbiAqIDwvdmFsLW1lbnU+XG4gKlxuICogPGlvbi1yb3V0ZXItb3V0bGV0IGlkPVwibWFpbi1jb250ZW50XCI+PC9pb24tcm91dGVyLW91dGxldD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBNZW51IGNvbmZpZ3VyYXRpb25cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTWVudSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQ29udGVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tZW51XG4gICAgICBbbWVudUlkXT1cInByb3BzLmlkXCJcbiAgICAgIFtjb250ZW50SWRdPVwicHJvcHMuY29udGVudElkXCJcbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ292ZXJsYXknXCJcbiAgICAgIFtzaWRlXT1cInByb3BzLnNpZGUgfHwgJ3N0YXJ0J1wiXG4gICAgICBbc3dpcGVHZXN0dXJlXT1cInByb3BzLnN3aXBlICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuaXMtZGVza3RvcC1jb2xsYXBzaWJsZV09XCJyZXRyYWN0YWJsZU1lbnVFbmFibGVkKClcIlxuICAgICAgW2NsYXNzLmlzLWRlc2t0b3AtY29sbGFwc2VkXT1cImlzRGVza3RvcENvbGxhcHNlZCgpXCJcbiAgICAgIFtzdHlsZS4tLXZhbC1tZW51LWV4cGFuZGVkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8IG51bGxcIlxuICAgICAgW3N0eWxlLi0tdmFsLW1lbnUtY29sbGFwc2VkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCBudWxsXCJcbiAgICA+XG4gICAgICA8IS0tIEVkZ2UgaW5kaWNhdG9yOiB0aGluIGxpbmUgb24gcmlnaHQgZWRnZSwgY2xpY2sgb3Igc3dpcGUgdG8gY29sbGFwc2UvZXhwYW5kIC0tPlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWVudS1lZGdlLXN3aXBlLWluZGljYXRvclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbkVkZ2VQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwidG9nZ2xlRGVza3RvcENvbGxhcHNlKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IC41cmVtO1wiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvLW1pbmknLFxuICAgICAgICAgICAgICAgIGFsdDogJ21lbnUgbG9nbycsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlIGNsYXNzPVwibWVudS1tb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtcHJvamVjdGVkLWNvbnRlbnRcIlxuICAgICAgICAgICh2YWxNZW51RXhwYW5kUmVxdWVzdCk9XCJleHBhbmREZXNrdG9wUmFpbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29sbGFwc2UtZm9vdGVyXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jb2xsYXBzZS10b2dnbGVcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNEZXNrdG9wQ29sbGFwc2VkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJtZWRpdW1cIiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiZGVza3RvcENvbGxhcHNlSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wcy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1lbnUtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdGV4dDogY2xvc2VCdXR0b25UZXh0KCksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjbG9zZS1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgc2xvdDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiY2xvc2VNZW51KClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvaW9uLW1lbnU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtZW51Q3RybCA9IGluamVjdChNZW51Q29udHJvbGxlcik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgc3BsaXRQYW5lPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNrdG9wQ29sbGFwc2VkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBFZGdlLXN3aXBlIHRyYWNraW5nXG4gIHByaXZhdGUgdG91Y2hTdGFydFggPSAwO1xuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBFREdFX1NXSVBFX1RIUkVTSE9MRCA9IDIwOyAvLyBweCBmcm9tIGxlZnQgZWRnZVxuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9TV0lQRV9ESVNUQU5DRSA9IDgwOyAvLyBweCB0byB0cmlnZ2VyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NXSVBFX0RVUkFUSU9OID0gNTAwOyAvLyBtc1xuXG4gIC8qKlxuICAgKiBNZW51IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogTWVudU1ldGFkYXRhID0ge1xuICAgIHNpZGU6ICdzdGFydCcsXG4gICAgdHlwZTogJ292ZXJsYXknLFxuICAgIHN3aXBlOiB0cnVlLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wc0NoYW5nZSA9IGNoYW5nZXNbJ3Byb3BzJ107XG4gICAgaWYgKCFwcm9wc0NoYW5nZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXMgPSBwcm9wc0NoYW5nZS5wcmV2aW91c1ZhbHVlIGFzIE1lbnVNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBwcm9wc0NoYW5nZS5maXJzdENoYW5nZSB8fFxuICAgICAgcHJldmlvdXM/LmRlc2t0b3BDb2xsYXBzZWQgIT09IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCB8fFxuICAgICAgcHJldmlvdXM/LnJldHJhY3RhYmxlTWVudSAhPT0gdGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnVcbiAgICApIHtcbiAgICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldCghIXRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHRvdWNoID0gZXZlbnQudG91Y2hlc1swXTtcbiAgICAvLyBTb2xvIGRldGVjdGFyIGRlc2RlIGJvcmRlIGl6cXVpZXJkb1xuICAgIGlmICh0b3VjaC5jbGllbnRYIDw9IHRoaXMuRURHRV9TV0lQRV9USFJFU0hPTEQpIHtcbiAgICAgIHRoaXMudG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCB0aGlzLnRvdWNoU3RhcnRYID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBjaGFuZ2VkVG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtcbiAgICBjb25zdCB0b3VjaEVuZFggPSBjaGFuZ2VkVG91Y2guY2xpZW50WDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IHRvdWNoRW5kWCAtIHRoaXMudG91Y2hTdGFydFg7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy50b3VjaFN0YXJ0VGltZTtcblxuICAgIC8vIFZhbGlkYXI6IHN3aXBlIGhhY2lhIGxhIGRlcmVjaGEsIGRpc3RhbmNpYSBtw61uaW1hLCBkdXJhY2nDs24gbcOheGltYVxuICAgIGlmIChkaXN0YW5jZSA+PSB0aGlzLk1JTl9TV0lQRV9ESVNUQU5DRSAmJiBkdXJhdGlvbiA8PSB0aGlzLk1BWF9TV0lQRV9EVVJBVElPTikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlRGVza3RvcENvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRleHQgLSByZWFjdGl2ZSB0byBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2xvc2VCdXR0b25UZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jbG9zZUJ1dHRvblRleHQgfHwgdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBhc3luYyBjbG9zZU1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSh0aGlzLnByb3BzLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRlIGVsIHJhaWwgYSBwZWRpZG8gZGUgbG8gcXVlIGVzdMOhIHByb3llY3RhZG8gYWRlbnRyby4gVW5hIHNlY2Npw7NuIHF1ZVxuICAgKiBzb2xvIGFncnVwYSBoaWpvcyBubyBwdWVkZSBkZXNwbGVnYXJzZSBlbiA1NnB4LCBhc8OtIHF1ZSBwaWRlIGx1Z2FyIGVuIHZlelxuICAgKiBkZSBubyBoYWNlciBuYWRhLlxuICAgKi9cbiAgZXhwYW5kRGVza3RvcFJhaWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCAhdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIHRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQudXBkYXRlKGNvbGxhcHNlZCA9PiAhY29sbGFwc2VkKTtcbiAgICB0aGlzLnN5bmNTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgcmV0cmFjdGFibGVNZW51RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnUgPz8gdGhpcy5wcm9wcy5kZXNrdG9wQ29sbGFwc2libGUpO1xuICB9XG5cbiAgZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKVxuICAgICAgPyB0aGlzLnByb3BzLmRlc2t0b3BFeHBhbmRMYWJlbCB8fCAnRXhwYW5kaXIgbWVuw7onXG4gICAgICA6IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlTGFiZWwgfHwgJ0NvbnRyYWVyIG1lbsO6JztcbiAgfVxuXG4gIGRlc2t0b3BDb2xsYXBzZUljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0VuZCA9IHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCc7XG4gICAgaWYgKHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkpIHtcbiAgICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWJhY2stY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1jaXJjbGUtb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWZvcndhcmQtY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tYmFjay1jaXJjbGUtb3V0bGluZSc7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQXJyYXN0cmUgZGVsIGJvcmRlXG4gIC8vXG4gIC8vIEFycmFzdHJhciBlbmdhbmNoYSBhIGFiaWVydG8vY2VycmFkbzsgTk8gZXMgYWp1c3RlIGxpYnJlIGRlIGFuY2hvLiBFbCBhbmNob1xuICAvLyBkZSBjb250ZW5pZG8gdGllbmUgZXN0YWRvcyBkZWZpbmlkb3MgKHZhbC1jb250YWluZXIgbG9zIGxlZSB2w61hIGRhdGEtbWVudSksXG4gIC8vIGFzw60gcXVlIHVuIGFuY2hvIGFyYml0cmFyaW8gZGVqYXLDrWEgZWwgY29udGVuaWRvIGEgbWVyY2VkIGRlIGTDs25kZSBzb2x0w7MgZWxcbiAgLy8gbW91c2UgY2FkYSB1c3VhcmlvLiBEdXJhbnRlIGVsIGFycmFzdHJlIGVsIHJhaWwgc8OtIHNpZ3VlIGFsIHB1bnRlcm8g4oCUIGVsXG4gIC8vIGVuZ2FuY2hlIG9jdXJyZSBhbCBzb2x0YXIsIGNvbnRyYSBlbCBwdW50byBtZWRpbyBlbnRyZSBhbWJvcyBhbmNob3MuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZHJhZ1N0YXJ0WCA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0V2lkdGggPSAwO1xuICBwcml2YXRlIGRyYWdCb3VuZHM6IHsgY29sbGFwc2VkOiBudW1iZXI7IGV4cGFuZGVkOiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYWdnaW5nID0gZmFsc2U7XG4gIC8qKiBQb3IgZGViYWpvIGRlIGVzdG8gbm8gaHVibyBhcnJhc3RyZTogZnVlIHVuIGNsaWNrIHNvYnJlIGVsIGJvcmRlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IERSQUdfQ0xJQ0tfU0xPUCA9IDU7XG5cbiAgb25FZGdlUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51RWxlbWVudCgpO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghbWVudSB8fCAhc3BsaXRQYW5lKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLnJlc29sdmVXaWR0aFB4KHRoaXMuY29sbGFwc2VkV2lkdGhWYWx1ZSgpKTtcbiAgICBjb25zdCBleHBhbmRlZCA9IHRoaXMucmVzb2x2ZVdpZHRoUHgodGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKSk7XG4gICAgLy8gU2kgZWwgc29uZGVvIG5vIHB1ZG8gcmVzb2x2ZXIgbG9zIGFuY2hvcywgZWwgYXJyYXN0cmUgbm8gdGllbmUgY29udHJhIHF1w6lcbiAgICAvLyBlbmdhbmNoYXI6IHNlIGRlZ3JhZGEgYSBjbGljayBwdXJvIChlbCBwb2ludGVydXAgc2luIGJvdW5kcyBubyBoYWNlIG5hZGFcbiAgICAvLyB5IGVsIHNsb3AgbG8gdHJhdGEgY29tbyB0b2dnbGUpLlxuICAgIGlmICghKGV4cGFuZGVkID4gY29sbGFwc2VkKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5kcmFnU3RhcnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICAvLyBBbmNsYSBlbiBlbCBhbmNobyBERUNMQVJBRE8gZGVsIGVzdGFkbyBhY3R1YWwsIG5vIGVuIGVsIG1lZGlkby4gU2kgZWxcbiAgICAvLyBtZW7DuiBlc3TDoSByZW5kZXJpemFkbyBhIHVuIGFuY2hvIHF1ZSBubyBlcyBuaW5ndW5vIGRlIGxvcyBkb3MgKGxheW91dFxuICAgIC8vIGVuIHRyYW5zaWNpw7NuLCBlc3RpbG9zIGRlIGxhIGFwcCksIG1lZGlyIGNvcnJlIGVsIG9yaWdlbiBkZWwgYXJyYXN0cmUgeVxuICAgIC8vIGVsIGVuZ2FuY2hlIGNhZSBkZWwgbGFkbyBlcXVpdm9jYWRvLlxuICAgIHRoaXMuZHJhZ1N0YXJ0V2lkdGggPSB0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpID8gY29sbGFwc2VkIDogZXhwYW5kZWQ7XG4gICAgdGhpcy5kcmFnQm91bmRzID0geyBjb2xsYXBzZWQsIGV4cGFuZGVkIH07XG4gICAgc3BsaXRQYW5lLmNsYXNzTGlzdC5hZGQoJ3ZhbC1tZW51LWRyYWdnaW5nJyk7XG4gICAgLy8gTGEgY2FwdHVyYSBtYW50aWVuZSBlbCBhcnJhc3RyZSB2aXZvIHNpIGVsIHB1bnRlcm8gc2Ugc2FsZSBkZWwgYm9yZGUuXG4gICAgLy8gRXMgdW5hIG1lam9yYSwgbm8gdW4gcmVxdWlzaXRvOiBsYW56YSBjdWFuZG8gZWwgcG9pbnRlcklkIG5vIGNvcnJlc3BvbmRlIGFcbiAgICAvLyB1biBwdW50ZXJvIGFjdGl2bywgeSBlc2UgdGhyb3cgbm8gcHVlZGUgbGxldmFyc2UgcHVlc3RvIGVsIGdlc3RvLlxuICAgIHRyeSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBzaW4gY2FwdHVyYTogZWwgYXJyYXN0cmUgc2lndWUgZnVuY2lvbmFuZG8gdsOtYSBsaXN0ZW5lcnMgZGUgZG9jdW1lbnQgKi9cbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25FZGdlUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZykgcmV0dXJuO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghc3BsaXRQYW5lKSByZXR1cm47XG4gICAgdGhpcy5hcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZSwgYCR7dGhpcy53aWR0aEZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFgpfXB4YCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnLCBbJyRldmVudCddKVxuICBvbkVkZ2VQb2ludGVyVXAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZyB8fCAhdGhpcy5kcmFnQm91bmRzKSByZXR1cm47XG5cbiAgICBjb25zdCB7IGNvbGxhcHNlZCwgZXhwYW5kZWQgfSA9IHRoaXMuZHJhZ0JvdW5kcztcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGhGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKTtcbiAgICBjb25zdCB0cmF2ZWxsZWQgPSBNYXRoLmFicyhldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRYKTtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWdCb3VuZHMgPSBudWxsO1xuICAgIHRoaXMuZmluZFNwbGl0UGFuZSgpPy5jbGFzc0xpc3QucmVtb3ZlKCd2YWwtbWVudS1kcmFnZ2luZycpO1xuXG4gICAgaWYgKHRyYXZlbGxlZCA8IHRoaXMuRFJBR19DTElDS19TTE9QKSB7XG4gICAgICB0aGlzLnRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQod2lkdGggPCAoY29sbGFwc2VkICsgZXhwYW5kZWQpIC8gMik7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIC8qKiBBbmNobyBxdWUgY29ycmVzcG9uZGUgYWwgcHVudGVybywgYWNvdGFkbyBhIGxvcyBkb3MgZXh0cmVtb3MuICovXG4gIHByaXZhdGUgd2lkdGhGcm9tUG9pbnRlcihjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5kcmFnQm91bmRzKSByZXR1cm4gdGhpcy5kcmFnU3RhcnRXaWR0aDtcbiAgICBjb25zdCBkZWx0YSA9IGNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgY29uc3QgcmF3ID1cbiAgICAgIHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCdcbiAgICAgICAgPyB0aGlzLmRyYWdTdGFydFdpZHRoIC0gZGVsdGFcbiAgICAgICAgOiB0aGlzLmRyYWdTdGFydFdpZHRoICsgZGVsdGE7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZHJhZ0JvdW5kcy5leHBhbmRlZCwgTWF0aC5tYXgodGhpcy5kcmFnQm91bmRzLmNvbGxhcHNlZCwgcmF3KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdWVsdmUgdW4gYW5jaG8gQ1NTIGEgcMOteGVsZXMgbWlkaWVuZG8gdW4gZWxlbWVudG8gZGUgc29uZGVvLiBIYWNlIGZhbHRhXG4gICAqIHBvcnF1ZSBsb3MgdmFsb3JlcyBzb24gZXhwcmVzaW9uZXMgKGBtaW4oNDB2dywgMjJyZW0pYCkgcXVlIGdldENvbXB1dGVkU3R5bGVcbiAgICogZGV2dWVsdmUgc2luIHJlc29sdmVyIGN1YW5kbyB2aXZlbiBlbiB1bmEgY3VzdG9tIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlV2lkdGhQeCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHByb2JlLnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoke3ZhbHVlfTtgO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHByb2JlKTtcbiAgICBjb25zdCBweCA9IHByb2JlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIHByb2JlLnJlbW92ZSgpO1xuICAgIHJldHVybiBweDtcbiAgfVxuXG4gIHByaXZhdGUgbWVudUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW9uLW1lbnUnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VkV2lkdGhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCAnMy41cmVtJztcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kZWRXaWR0aFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVza3RvcEV4cGFuZGVkV2lkdGggfHwgJ21pbig0MHZ3LCAyMnJlbSknO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZTogSFRNTEVsZW1lbnQsIHdpZHRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS13aWR0aCcsIHdpZHRoKTtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS1taW4td2lkdGgnLCB3aWR0aCk7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtbWF4LXdpZHRoJywgd2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIXNwbGl0UGFuZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYXB0dXJlT3JpZ2luYWxTcGxpdFBhbmVTdHlsZXMoc3BsaXRQYW5lKTtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKClcbiAgICAgID8gdGhpcy5jb2xsYXBzZWRXaWR0aFZhbHVlKClcbiAgICAgIDogdGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKTtcblxuICAgIHRoaXMuYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmUsIHdpZHRoKTtcblxuICAgIHRoaXMubWFya1NoZWxsTWVudVN0YXRlKHNwbGl0UGFuZSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljYSBlbCBlc3RhZG8gZGVsIG1lbsO6IGVuIGVsIHNoZWxsLCBwYXJhIHF1ZSBlbCBDT05URU5JRE8gcHVlZGFcbiAgICogYWRhcHRhcnNlLlxuICAgKlxuICAgKiBFbCBtZW7DuiB5YSBzYWLDrWEgc2kgZXN0YWJhIGFiaWVydG8gbyBjZXJyYWRvLCBwZXJvIHNvbG8gc2UgbG8gZGVjw61hIGEgc8OtXG4gICAqIG1pc21vIHkgYWwgYW5jaG8gZGVsIHBhbmU6IGVsIGNvbnRlbmlkbyBzZWd1w61hIGNvbiBlbCBtaXNtbyB0b3BlLCBhc8OtIHF1ZVxuICAgKiBlbCBlc3BhY2lvIHF1ZSBkZWphYmEgbGEgbmF2ZWdhY2nDs24gc2Ugdm9sdsOtYSBhaXJlIGxhdGVyYWwgZW4gdmV6IGRlXG4gICAqIGNvbnRlbmlkby5cbiAgICpcbiAgICogU2UgbWFyY2EgZWwgYGlvbi1zcGxpdC1wYW5lYCBwb3JxdWUgZXMgZWwgYW5jZXN0cm8gY29tw7puIGRlbCBtZW7DuiB5IGRlbFxuICAgKiBjb250ZW5pZG87IGRlc2RlIGFow60gYHZhbC1jb250YWluZXJgIGxvIGxlZSBjb24gYDpob3N0LWNvbnRleHRgIHkgbmluZ3VuYVxuICAgKiBhcHAgbmVjZXNpdGEgY2FibGVhciBuYWRhLiBFbCBhdHJpYnV0byBzZSBsaW1waWEgYWwgcmVzdGF1cmFyICh2ZXJcbiAgICogcmVzdG9yZVNwbGl0UGFuZVdpZHRoKSBwYXJhIG5vIGRlamFyIHVuIHNoZWxsIFwiY29sYXBzYWRvXCIgY3VhbmRvIGVsIHJhaWxcbiAgICogZGVqYSBkZSBlc3RhciBhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIG1hcmtTaGVsbE1lbnVTdGF0ZShzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgc3BsaXRQYW5lLnNldEF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW1lbnUnLFxuICAgICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU3BsaXRQYW5lKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmU/LmlzQ29ubmVjdGVkKSByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gICAgdGhpcy5zcGxpdFBhbmUgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnaW9uLXNwbGl0LXBhbmUnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVPcmlnaW5hbFNwbGl0UGFuZVN0eWxlcyhzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbJy0tc2lkZS13aWR0aCcsICctLXNpZGUtbWluLXdpZHRoJywgJy0tc2lkZS1tYXgtd2lkdGgnXSkge1xuICAgICAgaWYgKCF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5zZXQocHJvcGVydHksIHNwbGl0UGFuZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BsaXRQYW5lID0gdGhpcy5maW5kU3BsaXRQYW5lKCk7XG4gICAgLy8gRWwgYXRyaWJ1dG8gc2UgcXVpdGEgYXVucXVlIG5vIGhheWEgZXN0aWxvcyBxdWUgcmVzdGF1cmFyOiBzaSBlbCByYWlsIHNlXG4gICAgLy8gZGVzYWN0aXZhLCBlbCBzaGVsbCBubyBwdWVkZSBxdWVkYXIgZGVjbGFyw6FuZG9zZSBjb2xhcHNhZG8uXG4gICAgc3BsaXRQYW5lPy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudScpO1xuICAgIGlmICghc3BsaXRQYW5lIHx8ICF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLnNpemUpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNwbGl0UGFuZS5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BsaXRQYW5lLnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
533
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixVQUFVLEVBQ1YsY0FBYyxHQUNmLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQWlISCxNQUFNLE9BQU8sYUFBYTtJQS9HMUI7UUFnSFUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBRXpELDRCQUF1QixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxzQkFBc0I7UUFDZCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNW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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQsdzJFQXhHQyxZQUFZLCtCQUNaLE9BQU8sa0pBQ1AsVUFBVSw4RUFDVixhQUFhLDBGQUNiLFNBQVMsb1BBQ1QsT0FBTywySkFDUCxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSx3S0FDVixjQUFjLHlFQUNkLGVBQWU7OzRGQWlHTixhQUFhO2tCQS9HekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RlQ7OEJBcUJRLEtBQUs7c0JBQWIsS0FBSztnQkFnQ04sWUFBWTtzQkFEWCxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVkvQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBdUg3QyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2hELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvbk1lbnUsXG4gIElvbk1lbnVUb2dnbGUsXG4gIElvblRvb2xiYXIsXG4gIE1lbnVDb250cm9sbGVyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuLyoqXG4gKiB2YWwtbWVudVxuICpcbiAqIEEgc2lkZSBtZW51IGNvbXBvbmVudCB1c2luZyBJb25pYyBJb25NZW51IHdpdGggY3VzdG9taXphYmxlIGxvZ28sXG4gKiBjbG9zZSBidXR0b24sIGFuZCBjb250ZW50IHByb2plY3Rpb24gZm9yIG1lbnUgaXRlbXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtbWVudVxuICogICBbcHJvcHNdPVwie1xuICogICAgIGlkOiAnbWFpbi1tZW51JyxcbiAqICAgICBjb250ZW50SWQ6ICdtYWluLWNvbnRlbnQnLFxuICogICAgIHNpZGU6ICdzdGFydCcsXG4gKiAgICAgdHlwZTogJ292ZXJsYXknLFxuICogICAgIHN3aXBlOiB0cnVlLFxuICogICAgIHNob3dDbG9zZUJ1dHRvbjogdHJ1ZVxuICogICB9XCJcbiAqID5cbiAqICAgPHZhbC1saW5rcy1hY2NvcmRpb24gW3Byb3BzXT1cIm1lbnVMaW5rc1wiPjwvdmFsLWxpbmtzLWFjY29yZGlvbj5cbiAqIDwvdmFsLW1lbnU+XG4gKlxuICogPGlvbi1yb3V0ZXItb3V0bGV0IGlkPVwibWFpbi1jb250ZW50XCI+PC9pb24tcm91dGVyLW91dGxldD5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBNZW51IGNvbmZpZ3VyYXRpb25cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uTWVudSxcbiAgICBJb25CdXR0b25zLFxuICAgIElvbk1lbnVUb2dnbGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQ29udGVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1tZW51XG4gICAgICBbbWVudUlkXT1cInByb3BzLmlkXCJcbiAgICAgIFtjb250ZW50SWRdPVwicHJvcHMuY29udGVudElkXCJcbiAgICAgIFt0eXBlXT1cInByb3BzLnR5cGUgfHwgJ292ZXJsYXknXCJcbiAgICAgIFtzaWRlXT1cInByb3BzLnNpZGUgfHwgJ3N0YXJ0J1wiXG4gICAgICBbc3dpcGVHZXN0dXJlXT1cInByb3BzLnN3aXBlICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuaXMtZGVza3RvcC1jb2xsYXBzaWJsZV09XCJyZXRyYWN0YWJsZU1lbnVFbmFibGVkKClcIlxuICAgICAgW2NsYXNzLmlzLWRlc2t0b3AtY29sbGFwc2VkXT1cImlzRGVza3RvcENvbGxhcHNlZCgpXCJcbiAgICAgIFtzdHlsZS4tLXZhbC1tZW51LWV4cGFuZGVkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BFeHBhbmRlZFdpZHRoIHx8IG51bGxcIlxuICAgICAgW3N0eWxlLi0tdmFsLW1lbnUtY29sbGFwc2VkLXdpZHRoXT1cInByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCBudWxsXCJcbiAgICA+XG4gICAgICA8IS0tIEVkZ2UgaW5kaWNhdG9yOiB0aGluIGxpbmUgb24gcmlnaHQgZWRnZSwgY2xpY2sgb3Igc3dpcGUgdG8gY29sbGFwc2UvZXhwYW5kIC0tPlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibWVudS1lZGdlLXN3aXBlLWluZGljYXRvclwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRlc2t0b3BDb2xsYXBzZUJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgIChwb2ludGVyZG93bik9XCJvbkVkZ2VQb2ludGVyRG93bigkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVEZXNrdG9wQ29sbGFwc2UoKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwidG9nZ2xlRGVza3RvcENvbGxhcHNlKClcIlxuICAgICAgICA+PC9kaXY+XG4gICAgICB9XG4gICAgICA8aW9uLWhlYWRlciBbY2xhc3MuaW9uLW5vLWJvcmRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgY2xhc3M9XCJtZW51LWxvZ28tc2xvdFwiPlxuICAgICAgICAgICAgPHZhbC1pbWFnZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNyYzogJy0tbWFpbi1sb2dvLW1pbmknLFxuICAgICAgICAgICAgICAgIGFsdDogJ21lbnUgbG9nbycsXG4gICAgICAgICAgICAgICAgbW9kZTogJ2JveCcsXG4gICAgICAgICAgICAgICAgc2hhZGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBsaW1pdGVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3aWR0aDogMixcbiAgICAgICAgICAgICAgICBmbGV4OiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9pb24tYnV0dG9ucz5cblxuICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLW1lbnUtdG9nZ2xlIGNsYXNzPVwibWVudS1tb2JpbGUtY2xvc2VcIj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIGNvbG9yPVwiZGFya1wiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvaW9uLW1lbnUtdG9nZ2xlPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1lbnUtcHJvamVjdGVkLWNvbnRlbnRcIlxuICAgICAgICAgICh2YWxNZW51RXhwYW5kUmVxdWVzdCk9XCJleHBhbmREZXNrdG9wUmFpbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgQGlmIChyZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29sbGFwc2UtZm9vdGVyXCI+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWVudS1jb2xsYXBzZS10b2dnbGVcIlxuICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwiaXNEZXNrdG9wQ29sbGFwc2VkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gY29sb3I9XCJtZWRpdW1cIiBzbG90PVwiaWNvbi1vbmx5XCIgW25hbWVdPVwiZGVza3RvcENvbGxhcHNlSWNvbigpXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wcy5zaG93Q2xvc2VCdXR0b24pIHtcbiAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICBjbGFzcz1cIm1lbnUtY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgdGV4dDogY2xvc2VCdXR0b25UZXh0KCksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgICBpY29uOiB7XG4gICAgICAgICAgICAgIG5hbWU6ICdjbG9zZS1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgc2xvdDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiY2xvc2VNZW51KClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvaW9uLW1lbnU+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtZW51Q3RybCA9IGluamVjdChNZW51Q29udHJvbGxlcik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHByaXZhdGUgc3BsaXRQYW5lPzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgc3BsaXRQYW5lT3JpZ2luYWxTdHlsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNrdG9wQ29sbGFwc2VkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvLyBFZGdlLXN3aXBlIHRyYWNraW5nXG4gIHByaXZhdGUgdG91Y2hTdGFydFggPSAwO1xuICBwcml2YXRlIHRvdWNoU3RhcnRUaW1lID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBFREdFX1NXSVBFX1RIUkVTSE9MRCA9IDIwOyAvLyBweCBmcm9tIGxlZnQgZWRnZVxuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9TV0lQRV9ESVNUQU5DRSA9IDgwOyAvLyBweCB0byB0cmlnZ2VyXG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX1NXSVBFX0RVUkFUSU9OID0gNTAwOyAvLyBtc1xuXG4gIC8qKlxuICAgKiBNZW51IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogTWVudU1ldGFkYXRhID0ge1xuICAgIHNpZGU6ICdzdGFydCcsXG4gICAgdHlwZTogJ292ZXJsYXknLFxuICAgIHN3aXBlOiB0cnVlLFxuICB9O1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wc0NoYW5nZSA9IGNoYW5nZXNbJ3Byb3BzJ107XG4gICAgaWYgKCFwcm9wc0NoYW5nZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJldmlvdXMgPSBwcm9wc0NoYW5nZS5wcmV2aW91c1ZhbHVlIGFzIE1lbnVNZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSB7XG4gICAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBwcm9wc0NoYW5nZS5maXJzdENoYW5nZSB8fFxuICAgICAgcHJldmlvdXM/LmRlc2t0b3BDb2xsYXBzZWQgIT09IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCB8fFxuICAgICAgcHJldmlvdXM/LnJldHJhY3RhYmxlTWVudSAhPT0gdGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnVcbiAgICApIHtcbiAgICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldCghIXRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlZCk7XG4gICAgfVxuICAgIHRoaXMuc3luY1NwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdG9yZVNwbGl0UGFuZVdpZHRoKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCBldmVudC50b3VjaGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IHRvdWNoID0gZXZlbnQudG91Y2hlc1swXTtcbiAgICAvLyBTb2xvIGRldGVjdGFyIGRlc2RlIGJvcmRlIGl6cXVpZXJkb1xuICAgIGlmICh0b3VjaC5jbGllbnRYIDw9IHRoaXMuRURHRV9TV0lQRV9USFJFU0hPTEQpIHtcbiAgICAgIHRoaXMudG91Y2hTdGFydFggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgdGhpcy50b3VjaFN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCB0aGlzLnRvdWNoU3RhcnRYID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBjaGFuZ2VkVG91Y2ggPSBldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtcbiAgICBjb25zdCB0b3VjaEVuZFggPSBjaGFuZ2VkVG91Y2guY2xpZW50WDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IHRvdWNoRW5kWCAtIHRoaXMudG91Y2hTdGFydFg7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gdGhpcy50b3VjaFN0YXJ0VGltZTtcblxuICAgIC8vIFZhbGlkYXI6IHN3aXBlIGhhY2lhIGxhIGRlcmVjaGEsIGRpc3RhbmNpYSBtw61uaW1hLCBkdXJhY2nDs24gbcOheGltYVxuICAgIGlmIChkaXN0YW5jZSA+PSB0aGlzLk1JTl9TV0lQRV9ESVNUQU5DRSAmJiBkdXJhdGlvbiA8PSB0aGlzLk1BWF9TV0lQRV9EVVJBVElPTikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9nZ2xlRGVza3RvcENvbGxhcHNlKCk7XG4gICAgfVxuXG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgYnV0dG9uIHRleHQgLSByZWFjdGl2ZSB0byBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKi9cbiAgY2xvc2VCdXR0b25UZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7IC8vIFRyYWNrIGxhbmd1YWdlIGNoYW5nZXNcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jbG9zZUJ1dHRvblRleHQgfHwgdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBhc3luYyBjbG9zZU1lbnUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5tZW51Q3RybC5jbG9zZSh0aGlzLnByb3BzLmlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRlIGVsIHJhaWwgYSBwZWRpZG8gZGUgbG8gcXVlIGVzdMOhIHByb3llY3RhZG8gYWRlbnRyby4gVW5hIHNlY2Npw7NuIHF1ZVxuICAgKiBzb2xvIGFncnVwYSBoaWpvcyBubyBwdWVkZSBkZXNwbGVnYXJzZSBlbiA1NnB4LCBhc8OtIHF1ZSBwaWRlIGx1Z2FyIGVuIHZlelxuICAgKiBkZSBubyBoYWNlciBuYWRhLlxuICAgKi9cbiAgZXhwYW5kRGVza3RvcFJhaWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSB8fCAhdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIHRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmV0cmFjdGFibGVNZW51RW5hYmxlZCgpKSByZXR1cm47XG4gICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQudXBkYXRlKGNvbGxhcHNlZCA9PiAhY29sbGFwc2VkKTtcbiAgICB0aGlzLnN5bmNTcGxpdFBhbmVXaWR0aCgpO1xuICB9XG5cbiAgcmV0cmFjdGFibGVNZW51RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5wcm9wcy5yZXRyYWN0YWJsZU1lbnUgPz8gdGhpcy5wcm9wcy5kZXNrdG9wQ29sbGFwc2libGUpO1xuICB9XG5cbiAgZGVza3RvcENvbGxhcHNlQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKVxuICAgICAgPyB0aGlzLnByb3BzLmRlc2t0b3BFeHBhbmRMYWJlbCB8fCAnRXhwYW5kaXIgbWVuw7onXG4gICAgICA6IHRoaXMucHJvcHMuZGVza3RvcENvbGxhcHNlTGFiZWwgfHwgJ0NvbnRyYWVyIG1lbsO6JztcbiAgfVxuXG4gIGRlc2t0b3BDb2xsYXBzZUljb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc0VuZCA9IHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCc7XG4gICAgaWYgKHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKCkpIHtcbiAgICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWJhY2stY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tZm9yd2FyZC1jaXJjbGUtb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiBpc0VuZCA/ICdjaGV2cm9uLWZvcndhcmQtY2lyY2xlLW91dGxpbmUnIDogJ2NoZXZyb24tYmFjay1jaXJjbGUtb3V0bGluZSc7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQXJyYXN0cmUgZGVsIGJvcmRlXG4gIC8vXG4gIC8vIEFycmFzdHJhciBlbmdhbmNoYSBhIGFiaWVydG8vY2VycmFkbzsgTk8gZXMgYWp1c3RlIGxpYnJlIGRlIGFuY2hvLiBFbCBhbmNob1xuICAvLyBkZSBjb250ZW5pZG8gdGllbmUgZXN0YWRvcyBkZWZpbmlkb3MgKHZhbC1jb250YWluZXIgbG9zIGxlZSB2w61hIGRhdGEtbWVudSksXG4gIC8vIGFzw60gcXVlIHVuIGFuY2hvIGFyYml0cmFyaW8gZGVqYXLDrWEgZWwgY29udGVuaWRvIGEgbWVyY2VkIGRlIGTDs25kZSBzb2x0w7MgZWxcbiAgLy8gbW91c2UgY2FkYSB1c3VhcmlvLiBEdXJhbnRlIGVsIGFycmFzdHJlIGVsIHJhaWwgc8OtIHNpZ3VlIGFsIHB1bnRlcm8g4oCUIGVsXG4gIC8vIGVuZ2FuY2hlIG9jdXJyZSBhbCBzb2x0YXIsIGNvbnRyYSBlbCBwdW50byBtZWRpbyBlbnRyZSBhbWJvcyBhbmNob3MuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgZHJhZ1N0YXJ0WCA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0V2lkdGggPSAwO1xuICBwcml2YXRlIGRyYWdCb3VuZHM6IHsgY29sbGFwc2VkOiBudW1iZXI7IGV4cGFuZGVkOiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYWdnaW5nID0gZmFsc2U7XG4gIC8qKiBQb3IgZGViYWpvIGRlIGVzdG8gbm8gaHVibyBhcnJhc3RyZTogZnVlIHVuIGNsaWNrIHNvYnJlIGVsIGJvcmRlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IERSQUdfQ0xJQ0tfU0xPUCA9IDU7XG5cbiAgb25FZGdlUG9pbnRlckRvd24oZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXRyYWN0YWJsZU1lbnVFbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZW51ID0gdGhpcy5tZW51RWxlbWVudCgpO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghbWVudSB8fCAhc3BsaXRQYW5lKSByZXR1cm47XG5cbiAgICBjb25zdCBjb2xsYXBzZWQgPSB0aGlzLnJlc29sdmVXaWR0aFB4KHRoaXMuY29sbGFwc2VkV2lkdGhWYWx1ZSgpKTtcbiAgICBjb25zdCBleHBhbmRlZCA9IHRoaXMucmVzb2x2ZVdpZHRoUHgodGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKSk7XG4gICAgLy8gU2kgZWwgc29uZGVvIG5vIHB1ZG8gcmVzb2x2ZXIgbG9zIGFuY2hvcywgZWwgYXJyYXN0cmUgbm8gdGllbmUgY29udHJhIHF1w6lcbiAgICAvLyBlbmdhbmNoYXI6IHNlIGRlZ3JhZGEgYSBjbGljayBwdXJvIChlbCBwb2ludGVydXAgc2luIGJvdW5kcyBubyBoYWNlIG5hZGFcbiAgICAvLyB5IGVsIHNsb3AgbG8gdHJhdGEgY29tbyB0b2dnbGUpLlxuICAgIGlmICghKGV4cGFuZGVkID4gY29sbGFwc2VkKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy5kcmFnU3RhcnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICAvLyBBbmNsYSBlbiBlbCBhbmNobyBERUNMQVJBRE8gZGVsIGVzdGFkbyBhY3R1YWwsIG5vIGVuIGVsIG1lZGlkby4gU2kgZWxcbiAgICAvLyBtZW7DuiBlc3TDoSByZW5kZXJpemFkbyBhIHVuIGFuY2hvIHF1ZSBubyBlcyBuaW5ndW5vIGRlIGxvcyBkb3MgKGxheW91dFxuICAgIC8vIGVuIHRyYW5zaWNpw7NuLCBlc3RpbG9zIGRlIGxhIGFwcCksIG1lZGlyIGNvcnJlIGVsIG9yaWdlbiBkZWwgYXJyYXN0cmUgeVxuICAgIC8vIGVsIGVuZ2FuY2hlIGNhZSBkZWwgbGFkbyBlcXVpdm9jYWRvLlxuICAgIHRoaXMuZHJhZ1N0YXJ0V2lkdGggPSB0aGlzLmlzRGVza3RvcENvbGxhcHNlZCgpID8gY29sbGFwc2VkIDogZXhwYW5kZWQ7XG4gICAgdGhpcy5kcmFnQm91bmRzID0geyBjb2xsYXBzZWQsIGV4cGFuZGVkIH07XG4gICAgc3BsaXRQYW5lLmNsYXNzTGlzdC5hZGQoJ3ZhbC1tZW51LWRyYWdnaW5nJyk7XG4gICAgLy8gTGEgY2FwdHVyYSBtYW50aWVuZSBlbCBhcnJhc3RyZSB2aXZvIHNpIGVsIHB1bnRlcm8gc2Ugc2FsZSBkZWwgYm9yZGUuXG4gICAgLy8gRXMgdW5hIG1lam9yYSwgbm8gdW4gcmVxdWlzaXRvOiBsYW56YSBjdWFuZG8gZWwgcG9pbnRlcklkIG5vIGNvcnJlc3BvbmRlIGFcbiAgICAvLyB1biBwdW50ZXJvIGFjdGl2bywgeSBlc2UgdGhyb3cgbm8gcHVlZGUgbGxldmFyc2UgcHVlc3RvIGVsIGdlc3RvLlxuICAgIHRyeSB7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvKiBzaW4gY2FwdHVyYTogZWwgYXJyYXN0cmUgc2lndWUgZnVuY2lvbmFuZG8gdsOtYSBsaXN0ZW5lcnMgZGUgZG9jdW1lbnQgKi9cbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnBvaW50ZXJtb3ZlJywgWyckZXZlbnQnXSlcbiAgb25FZGdlUG9pbnRlck1vdmUoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZykgcmV0dXJuO1xuICAgIGNvbnN0IHNwbGl0UGFuZSA9IHRoaXMuZmluZFNwbGl0UGFuZSgpO1xuICAgIGlmICghc3BsaXRQYW5lKSByZXR1cm47XG4gICAgdGhpcy5hcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZSwgYCR7dGhpcy53aWR0aEZyb21Qb2ludGVyKGV2ZW50LmNsaWVudFgpfXB4YCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpwb2ludGVydXAnLCBbJyRldmVudCddKVxuICBvbkVkZ2VQb2ludGVyVXAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcmFnZ2luZyB8fCAhdGhpcy5kcmFnQm91bmRzKSByZXR1cm47XG5cbiAgICBjb25zdCB7IGNvbGxhcHNlZCwgZXhwYW5kZWQgfSA9IHRoaXMuZHJhZ0JvdW5kcztcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGhGcm9tUG9pbnRlcihldmVudC5jbGllbnRYKTtcbiAgICBjb25zdCB0cmF2ZWxsZWQgPSBNYXRoLmFicyhldmVudC5jbGllbnRYIC0gdGhpcy5kcmFnU3RhcnRYKTtcblxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRyYWdCb3VuZHMgPSBudWxsO1xuICAgIHRoaXMuZmluZFNwbGl0UGFuZSgpPy5jbGFzc0xpc3QucmVtb3ZlKCd2YWwtbWVudS1kcmFnZ2luZycpO1xuXG4gICAgaWYgKHRyYXZlbGxlZCA8IHRoaXMuRFJBR19DTElDS19TTE9QKSB7XG4gICAgICB0aGlzLnRvZ2dsZURlc2t0b3BDb2xsYXBzZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzRGVza3RvcENvbGxhcHNlZC5zZXQod2lkdGggPCAoY29sbGFwc2VkICsgZXhwYW5kZWQpIC8gMik7XG4gICAgdGhpcy5zeW5jU3BsaXRQYW5lV2lkdGgoKTtcbiAgfVxuXG4gIC8qKiBBbmNobyBxdWUgY29ycmVzcG9uZGUgYWwgcHVudGVybywgYWNvdGFkbyBhIGxvcyBkb3MgZXh0cmVtb3MuICovXG4gIHByaXZhdGUgd2lkdGhGcm9tUG9pbnRlcihjbGllbnRYOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5kcmFnQm91bmRzKSByZXR1cm4gdGhpcy5kcmFnU3RhcnRXaWR0aDtcbiAgICBjb25zdCBkZWx0YSA9IGNsaWVudFggLSB0aGlzLmRyYWdTdGFydFg7XG4gICAgY29uc3QgcmF3ID1cbiAgICAgIHRoaXMucHJvcHMuc2lkZSA9PT0gJ2VuZCdcbiAgICAgICAgPyB0aGlzLmRyYWdTdGFydFdpZHRoIC0gZGVsdGFcbiAgICAgICAgOiB0aGlzLmRyYWdTdGFydFdpZHRoICsgZGVsdGE7XG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMuZHJhZ0JvdW5kcy5leHBhbmRlZCwgTWF0aC5tYXgodGhpcy5kcmFnQm91bmRzLmNvbGxhcHNlZCwgcmF3KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzdWVsdmUgdW4gYW5jaG8gQ1NTIGEgcMOteGVsZXMgbWlkaWVuZG8gdW4gZWxlbWVudG8gZGUgc29uZGVvLiBIYWNlIGZhbHRhXG4gICAqIHBvcnF1ZSBsb3MgdmFsb3JlcyBzb24gZXhwcmVzaW9uZXMgKGBtaW4oNDB2dywgMjJyZW0pYCkgcXVlIGdldENvbXB1dGVkU3R5bGVcbiAgICogZGV2dWVsdmUgc2luIHJlc29sdmVyIGN1YW5kbyB2aXZlbiBlbiB1bmEgY3VzdG9tIHByb3BlcnR5LlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlV2lkdGhQeCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBwcm9iZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHByb2JlLnN0eWxlLmNzc1RleHQgPSBgcG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt3aWR0aDoke3ZhbHVlfTtgO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHByb2JlKTtcbiAgICBjb25zdCBweCA9IHByb2JlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIHByb2JlLnJlbW92ZSgpO1xuICAgIHJldHVybiBweDtcbiAgfVxuXG4gIHByaXZhdGUgbWVudUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW9uLW1lbnUnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2VkV2lkdGhWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRlc2t0b3BDb2xsYXBzZWRXaWR0aCB8fCAnMy41cmVtJztcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kZWRXaWR0aFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVza3RvcEV4cGFuZGVkV2lkdGggfHwgJ21pbig0MHZ3LCAyMnJlbSknO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNwbGl0UGFuZVdpZHRoKHNwbGl0UGFuZTogSFRNTEVsZW1lbnQsIHdpZHRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS13aWR0aCcsIHdpZHRoKTtcbiAgICBzcGxpdFBhbmUuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2lkZS1taW4td2lkdGgnLCB3aWR0aCk7XG4gICAgc3BsaXRQYW5lLnN0eWxlLnNldFByb3BlcnR5KCctLXNpZGUtbWF4LXdpZHRoJywgd2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJldHJhY3RhYmxlTWVudUVuYWJsZWQoKSkge1xuICAgICAgdGhpcy5yZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzcGxpdFBhbmUgPSB0aGlzLmZpbmRTcGxpdFBhbmUoKTtcbiAgICBpZiAoIXNwbGl0UGFuZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYXB0dXJlT3JpZ2luYWxTcGxpdFBhbmVTdHlsZXMoc3BsaXRQYW5lKTtcbiAgICBjb25zdCB3aWR0aCA9IHRoaXMuaXNEZXNrdG9wQ29sbGFwc2VkKClcbiAgICAgID8gdGhpcy5jb2xsYXBzZWRXaWR0aFZhbHVlKClcbiAgICAgIDogdGhpcy5leHBhbmRlZFdpZHRoVmFsdWUoKTtcblxuICAgIHRoaXMuYXBwbHlTcGxpdFBhbmVXaWR0aChzcGxpdFBhbmUsIHdpZHRoKTtcblxuICAgIHRoaXMubWFya1NoZWxsTWVudVN0YXRlKHNwbGl0UGFuZSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljYSBlbCBlc3RhZG8gZGVsIG1lbsO6IGVuIGVsIHNoZWxsLCBwYXJhIHF1ZSBlbCBDT05URU5JRE8gcHVlZGFcbiAgICogYWRhcHRhcnNlLlxuICAgKlxuICAgKiBFbCBtZW7DuiB5YSBzYWLDrWEgc2kgZXN0YWJhIGFiaWVydG8gbyBjZXJyYWRvLCBwZXJvIHNvbG8gc2UgbG8gZGVjw61hIGEgc8OtXG4gICAqIG1pc21vIHkgYWwgYW5jaG8gZGVsIHBhbmU6IGVsIGNvbnRlbmlkbyBzZWd1w61hIGNvbiBlbCBtaXNtbyB0b3BlLCBhc8OtIHF1ZVxuICAgKiBlbCBlc3BhY2lvIHF1ZSBkZWphYmEgbGEgbmF2ZWdhY2nDs24gc2Ugdm9sdsOtYSBhaXJlIGxhdGVyYWwgZW4gdmV6IGRlXG4gICAqIGNvbnRlbmlkby5cbiAgICpcbiAgICogU2UgbWFyY2EgZWwgYGlvbi1zcGxpdC1wYW5lYCBwb3JxdWUgZXMgZWwgYW5jZXN0cm8gY29tw7puIGRlbCBtZW7DuiB5IGRlbFxuICAgKiBjb250ZW5pZG87IGRlc2RlIGFow60gYHZhbC1jb250YWluZXJgIGxvIGxlZSBjb24gYDpob3N0LWNvbnRleHRgIHkgbmluZ3VuYVxuICAgKiBhcHAgbmVjZXNpdGEgY2FibGVhciBuYWRhLiBFbCBhdHJpYnV0byBzZSBsaW1waWEgYWwgcmVzdGF1cmFyICh2ZXJcbiAgICogcmVzdG9yZVNwbGl0UGFuZVdpZHRoKSBwYXJhIG5vIGRlamFyIHVuIHNoZWxsIFwiY29sYXBzYWRvXCIgY3VhbmRvIGVsIHJhaWxcbiAgICogZGVqYSBkZSBlc3RhciBhY3Rpdm8uXG4gICAqL1xuICBwcml2YXRlIG1hcmtTaGVsbE1lbnVTdGF0ZShzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgc3BsaXRQYW5lLnNldEF0dHJpYnV0ZShcbiAgICAgICdkYXRhLW1lbnUnLFxuICAgICAgdGhpcy5pc0Rlc2t0b3BDb2xsYXBzZWQoKSA/ICdjb2xsYXBzZWQnIDogJ2V4cGFuZGVkJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kU3BsaXRQYW5lKCk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zcGxpdFBhbmU/LmlzQ29ubmVjdGVkKSByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gICAgdGhpcy5zcGxpdFBhbmUgPSAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnaW9uLXNwbGl0LXBhbmUnKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5zcGxpdFBhbmU7XG4gIH1cblxuICBwcml2YXRlIGNhcHR1cmVPcmlnaW5hbFNwbGl0UGFuZVN0eWxlcyhzcGxpdFBhbmU6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbJy0tc2lkZS13aWR0aCcsICctLXNpZGUtbWluLXdpZHRoJywgJy0tc2lkZS1tYXgtd2lkdGgnXSkge1xuICAgICAgaWYgKCF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgICAgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcy5zZXQocHJvcGVydHksIHNwbGl0UGFuZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXN0b3JlU3BsaXRQYW5lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc3BsaXRQYW5lID0gdGhpcy5maW5kU3BsaXRQYW5lKCk7XG4gICAgLy8gRWwgYXRyaWJ1dG8gc2UgcXVpdGEgYXVucXVlIG5vIGhheWEgZXN0aWxvcyBxdWUgcmVzdGF1cmFyOiBzaSBlbCByYWlsIHNlXG4gICAgLy8gZGVzYWN0aXZhLCBlbCBzaGVsbCBubyBwdWVkZSBxdWVkYXIgZGVjbGFyw6FuZG9zZSBjb2xhcHNhZG8uXG4gICAgc3BsaXRQYW5lPy5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbWVudScpO1xuICAgIGlmICghc3BsaXRQYW5lIHx8ICF0aGlzLnNwbGl0UGFuZU9yaWdpbmFsU3R5bGVzLnNpemUpIHJldHVybjtcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5LCB2YWx1ZV0gb2YgdGhpcy5zcGxpdFBhbmVPcmlnaW5hbFN0eWxlcykge1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHNwbGl0UGFuZS5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3BsaXRQYW5lLnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
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 = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.1034';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4xMDM0JztcbiJdfQ==
|
|
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
70
70
|
* Current version of valtech-components.
|
|
71
71
|
* This is automatically updated during the publish process.
|
|
72
72
|
*/
|
|
73
|
-
const VERSION = '4.0.
|
|
73
|
+
const VERSION = '4.0.1034';
|
|
74
74
|
|
|
75
75
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
76
76
|
if (rule == null)
|
|
@@ -54659,7 +54659,7 @@ class MenuComponent {
|
|
|
54659
54659
|
}
|
|
54660
54660
|
<ion-header [class.ion-no-border]="true">
|
|
54661
54661
|
<ion-toolbar>
|
|
54662
|
-
<ion-buttons slot="start"
|
|
54662
|
+
<ion-buttons slot="start" class="menu-logo-slot">
|
|
54663
54663
|
<val-image
|
|
54664
54664
|
[props]="{
|
|
54665
54665
|
src: '--main-logo-mini',
|
|
@@ -54725,7 +54725,7 @@ class MenuComponent {
|
|
|
54725
54725
|
/>
|
|
54726
54726
|
}
|
|
54727
54727
|
</ion-menu>
|
|
54728
|
-
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
54728
|
+
`, isInline: true, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}ion-menu .menu-logo-slot{padding-left:.5rem}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-logo-slot{width:100%;justify-content:center;padding-left:0;margin:0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonMenu, selector: "ion-menu", inputs: ["contentId", "disabled", "maxEdgeStart", "menuId", "side", "swipeGesture", "type"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonMenuToggle, selector: "ion-menu-toggle", inputs: ["autoHide", "menu"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
54729
54729
|
}
|
|
54730
54730
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MenuComponent, decorators: [{
|
|
54731
54731
|
type: Component,
|
|
@@ -54767,7 +54767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
54767
54767
|
}
|
|
54768
54768
|
<ion-header [class.ion-no-border]="true">
|
|
54769
54769
|
<ion-toolbar>
|
|
54770
|
-
<ion-buttons slot="start"
|
|
54770
|
+
<ion-buttons slot="start" class="menu-logo-slot">
|
|
54771
54771
|
<val-image
|
|
54772
54772
|
[props]="{
|
|
54773
54773
|
src: '--main-logo-mini',
|
|
@@ -54833,7 +54833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
54833
54833
|
/>
|
|
54834
54834
|
}
|
|
54835
54835
|
</ion-menu>
|
|
54836
|
-
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
54836
|
+
`, styles: [":host{display:contents}ion-menu{--val-menu-expanded-width: 75%;--val-menu-collapsed-width: 3.5rem;--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--background: var(--ion-color-light);transition:--width .18s ease,--min-width .18s ease}@media (min-width: 768px){ion-menu{--val-menu-expanded-width: min(40vw, 22rem)}}ion-menu ion-header{background:var(--ion-color-light)}ion-menu ion-content{--background: var(--ion-color-light)}ion-menu .menu-logo-slot{padding-left:.5rem}@media (min-width: 1200px){ion-menu.is-desktop-collapsible{--width: var(--val-menu-expanded-width);--min-width: var(--val-menu-expanded-width);--max-width: var(--val-menu-expanded-width)}ion-menu.is-desktop-collapsible .menu-mobile-close{display:none}}@media (min-width: 1200px){ion-menu.is-desktop-collapsed{--width: var(--val-menu-collapsed-width);--min-width: var(--val-menu-collapsed-width);--max-width: var(--val-menu-collapsed-width)}ion-menu.is-desktop-collapsed ion-toolbar{--padding-start: 0;--padding-end: 0}ion-menu.is-desktop-collapsed .menu-logo-slot{width:100%;justify-content:center;padding-left:0;margin:0}ion-menu.is-desktop-collapsed .menu-close-button{visibility:hidden;opacity:0;pointer-events:none}}.menu-collapse-toggle{display:none}@media (min-width: 1200px){.menu-collapse-toggle{display:inline-flex;--min-width: 44px;--min-height: 44px;width:44px;height:44px;margin:0}.menu-collapse-toggle ion-icon{font-size:1.75rem}}.menu-projected-content{transition:opacity .16s ease,visibility .16s ease}.menu-close-button{display:block;text-align:center;padding:1rem .5rem;background:var(--ion-color-light)}@media (min-width: 1200px){.menu-close-button{display:none}}:host-context(.val-menu-dragging) ion-menu{transition:none}.menu-collapse-footer{display:none}@media (min-width: 1200px){.menu-collapse-footer{display:flex;justify-content:center;padding:.5rem 0;border-top:1px solid var(--ion-color-step-150, rgba(0, 0, 0, .08));background:var(--ion-color-light)}}.menu-edge-swipe-indicator{display:none}@media (min-width: 1200px){.menu-edge-swipe-indicator{display:block;position:absolute;top:0;right:0;width:4px;height:100%;background:transparent;cursor:col-resize;transition:all .15s ease;z-index:100;opacity:0}.menu-edge-swipe-indicator:hover{background:var(--ion-color-primary, #7026df);width:6px;opacity:1}}\n"] }]
|
|
54837
54837
|
}], propDecorators: { props: [{
|
|
54838
54838
|
type: Input
|
|
54839
54839
|
}], onTouchStart: [{
|