@fundamental-ngx/core 0.46.1-rc.2 → 0.46.1-rc.4

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.
@@ -71,15 +71,15 @@ export class PopoverService extends BasePopoverClass {
71
71
  }
72
72
  /** Closes the popover. */
73
73
  close(focusActiveElement = true) {
74
- if (this._overlayRef && this._overlayRef.hasAttached()) {
74
+ if (this._overlayRef) {
75
75
  this._overlayRef.dispose();
76
- const prevState = this.isOpen;
77
- this.isOpen = false;
78
- if (prevState !== this.isOpen) {
79
- this.isOpenChange.emit(this.isOpen);
80
- }
81
- this._focusLastActiveElementBeforeOpen(focusActiveElement);
82
76
  }
77
+ const prevState = this.isOpen;
78
+ this.isOpen = false;
79
+ if (prevState !== this.isOpen) {
80
+ this.isOpenChange.emit(this.isOpen);
81
+ }
82
+ this._focusLastActiveElementBeforeOpen(focusActiveElement);
83
83
  }
84
84
  /** Opens the popover. */
85
85
  open() {
@@ -425,4 +425,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
425
425
  }] }, { type: i3.PopoverContainerDirective, decorators: [{
426
426
  type: Optional
427
427
  }] }]; } });
428
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9wb3Zlci9wb3BvdmVyLXNlcnZpY2UvcG9wb3Zlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxPQUFPLEVBQ1AsYUFBYSxFQUViLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEYsT0FBTyxFQUFZLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLDRCQUE0QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7OztBQUU3RixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFTL0IsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFpRGhELGNBQWM7SUFDZCxZQUNZLFFBQWlCLEVBQ2pCLFNBQW9CLEVBQ3BCLGNBQTZCLEVBQzdCLFNBQW1CLEVBQ1AsV0FBdUIsRUFDZCxp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Z0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3RFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuQztJQUNMLENBQUM7OEdBeGdCUSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQXdERixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsXG4gICAgQ29ubmVjdGVkUG9zaXRpb24sXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbmZpZyxcbiAgICBPdmVybGF5UmVmLFxuICAgIFZpZXdwb3J0UnVsZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlLCBSdGxTZXJ2aWNlLCBpc09kZCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEdldERlZmF1bHRQb3NpdGlvbiwgUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmltcG9ydCB7IEJhc2VQb3BvdmVyQ2xhc3MsIFRyaWdnZXJDb25maWcgfSBmcm9tICcuLi9iYXNlL2Jhc2UtcG9wb3Zlci5jbGFzcyc7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXItYm9keS9wb3BvdmVyLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wb3BvdmVyLWNvbnRhaW5lci9wb3BvdmVyLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuXG5jb25zdCBNQVhfQk9EWV9TSVpFID0gOTk5OTk5OTk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3ZlclRlbXBsYXRlIHtcbiAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gICAgcG9wb3ZlckJvZHk6IFBvcG92ZXJCb2R5Q29tcG9uZW50O1xuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9wb3ZlclNlcnZpY2UgZXh0ZW5kcyBCYXNlUG9wb3ZlckNsYXNzIHtcbiAgICAvKiogU3RyaW5nIGNvbnRlbnQgZGlzcGxheWVkIGluc2lkZSBwb3BvdmVyIGJvZHkgKi9cbiAgICBzdHJpbmdDb250ZW50OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRlbXBsYXRlIGNvbnRlbnQgZGlzcGxheWVkIGluc2lkZSBwb3BvdmVyIGJvZHkgKi9cbiAgICB0ZW1wbGF0ZUNvbnRlbnQ6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Mb2FkID0gbmV3IFN1YmplY3Q8RWxlbWVudFJlZj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX21vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ldmVudFJlZjogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVmcmVzaCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHZvaWQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdG9wQ2xvc2VMaXN0ZW5pbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VtZW50UmVmcmVzaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wb3BvdmVyQm9keTogUG9wb3ZlckJvZHlDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RlbXBsYXRlRGF0YTogTnVsbGFibGU8UG9wb3ZlclRlbXBsYXRlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcGxhY2VtZW50Q29udGFpbmVyOiBCYXNlUG9wb3ZlckNsYXNzWydwbGFjZW1lbnRDb250YWluZXInXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaWdub3JlVHJpZ2dlcnMgPSBmYWxzZTtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9wb3BvdmVyQ29udGFpbmVyOiBQb3BvdmVyQ29udGFpbmVyRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqIE1lcmdlIG9ic2VydmFibGVzIC0gY2xvc2Ugb3IgZGVzdHJveSAqL1xuICAgICAgICB0aGlzLl9yZWZyZXNoJCA9IG1lcmdlKHRoaXMuaXNPcGVuQ2hhbmdlLCB0aGlzLl9vbkRlc3Ryb3kkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgaW5pdGlhbGlzaW5nIHRoZSBwb3BvdmVyIHNlcnZpY2UgLSBzaG91bGQgYmUgY2FsbGVkLCBhZnRlciB2aWV3IGlzIGluaXRpYWxpc2VkLCBwYXJhbXM6XG4gICAgICogLSB0cmlnZ2VyRWxlbWVudCAtIGVsZW1lbnQsIHdoaWNoIGlzIGVxdWl2YWxlbnQgZm9yIGNka092ZXJsYXlPcmlnaW4sIG9yIGZkLXBvcG92ZXItY29udHJvbCxcbiAgICAgKiAgIGJ5IGRlZmF1bHQgdG8gdGhpcyBlbGVtZW50IHRoZSBwb3BvdmVyIGJvZHkgd2lsbCBsYmUgYXBwZW5kZWQgYW5kIGV2ZW50cyBvbiB0aGlzIGVsZW1lbnQgd2lsbCB0cmlnZ2VyXG4gICAgICogICBwb3BvdmVyJ3MgIHRvZ2dsZVxuICAgICAqIC0gY29uZmlnIC0gY29uZmlndXJhdGlvbiBvYmplY3QgLSBpbiB0aGlzIGNhc2UgdGhlIGludGVudGlvbiBpcyB0byB1c2UgaW5oZXJpdGFuY2Ugb2YgQmFzZVBvcG92ZXJDbGFzcyBpbiBjb21wb25lbnRcbiAgICAgKiAtIHRlbXBsYXRlRGF0YSAtIGluIGNhc2Ugb2YgaGF2aW5nIGFscmVhZHkgUG9wb3ZlckJvZHlDb21wb25lbnQsIHRoZXJlIGlzIHdheSB0byBwYXNzIGNvbnRhaW5lciwgdGVtcGxhdGUgY29udGFpbmluZ1xuICAgICAqICAgUG9wb3ZlckNvbXBvbmVudCBhbmQgUG9wb3ZlckNvbXBvbmVudCBpbnN0YW5jZVxuICAgICAqL1xuICAgIGluaXRpYWxpc2UoXG4gICAgICAgIHRyaWdnZXJFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBjb25maWc/OiBCYXNlUG9wb3ZlckNsYXNzLFxuICAgICAgICB0ZW1wbGF0ZURhdGE/OiBQb3BvdmVyVGVtcGxhdGUgfCBUZW1wbGF0ZVJlZjx2b2lkPiB8IG51bGxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRlbXBsYXRlRGF0YSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlQ29udGVudCA9IHRlbXBsYXRlRGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlRGF0YSA9IHRlbXBsYXRlRGF0YTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRyaWdnZXJFbGVtZW50O1xuXG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaENvbmZpZ3VyYXRpb24oY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3JlZnJlc2hUcmlnZ2VyTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHdyYXBwZXIgY29udGFpbmVyIGhlaWdodCBjaGFuZ2VzIG91dHNpZGUsIHJlZnJlc2ggcG9wb3ZlciBwb3NpdGlvbi5cbiAgICAgICAgdGhpcy5fcG9wb3ZlckNvbnRhaW5lcj8ucmVmcmVzaFBvc2l0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLl9yZWZyZXNoJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2VzIHRoZSBwb3BvdmVyLiAqL1xuICAgIGNsb3NlKGZvY3VzQWN0aXZlRWxlbWVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5fb3ZlcmxheVJlZi5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcblxuICAgICAgICAgICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5pc09wZW47XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZm9jdXNMYXN0QWN0aXZlRWxlbWVudEJlZm9yZU9wZW4oZm9jdXNBY3RpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBPcGVucyB0aGUgcG9wb3Zlci4gKi9cbiAgICBvcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAoKCF0aGlzLl9vdmVybGF5UmVmIHx8ICF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpICYmICF0aGlzLmRpc2FibGVkICYmIHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3koKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh0aGlzLl9nZXRPdmVybGF5Q29uZmlnKHBvc2l0aW9uKSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9wbGFjZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGFjZW1lbnRFbGVtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGxhY2VtZW50Q29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudFJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl9wbGFjZW1lbnRDb250YWluZXIubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9wbGFjZW1lbnRDb250YWluZXI7XG5cbiAgICAgICAgICAgICAgICBwbGFjZW1lbnRFbGVtZW50LmFwcGVuZCh0aGlzLl9vdmVybGF5UmVmLmhvc3RFbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlRGF0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaFRlbXBsYXRlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2F0dGFjaEJvZHlDb21wb25lbnQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fc3RvcENsb3NlTGlzdGVuaW5nJC5uZXh0KCk7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Gb3JQb3NpdGlvbkNoYW5nZShwb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5maWxsQ29udHJvbE1vZGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5PblJlc2l6ZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwcmV2U3RhdGUgPSB0aGlzLmlzT3BlbjtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmIChwcmV2U3RhdGUgIT09IHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdCh0aGlzLmlzT3Blbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgdGhpcy5fbGlzdGVuT25DbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpO1xuICAgICAgICAgICAgdGhpcy5fb25Mb2FkLm5leHQodGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5fZWxlbWVudFJlZik7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogbWV0aG9kIHVwZGF0aW5nIHRlbXBsYXRlIG9yIHRleHQgaW5zaWRlIHJlbmRlcmVkIFBvcG92ZXJCb2R5ICovXG4gICAgdXBkYXRlQ29udGVudChcbiAgICAgICAgc3RyaW5nQ29udGVudDogTnVsbGFibGU8c3RyaW5nPiB8IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+LFxuICAgICAgICB0ZW1wbGF0ZUNvbnRlbnQ6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRlbXBsYXRlQ29udGVudCA9ICF0ZW1wbGF0ZUNvbnRlbnRcbiAgICAgICAgICAgID8gdHlwZW9mIHN0cmluZ0NvbnRlbnQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgOiBzdHJpbmdDb250ZW50XG4gICAgICAgICAgICA6IHRlbXBsYXRlQ29udGVudDtcbiAgICAgICAgc3RyaW5nQ29udGVudCA9IHR5cGVvZiBzdHJpbmdDb250ZW50ID09PSAnc3RyaW5nJyA/IHN0cmluZ0NvbnRlbnQgOiBudWxsO1xuICAgICAgICB0aGlzLnN0cmluZ0NvbnRlbnQgPSBzdHJpbmdDb250ZW50O1xuICAgICAgICB0aGlzLnRlbXBsYXRlQ29udGVudCA9IHRlbXBsYXRlQ29udGVudDtcbiAgICAgICAgaWYgKHRoaXMuX2dldFBvcG92ZXJCb2R5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUb2dnbGVzIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgKi9cbiAgICB0b2dnbGUob3BlbkFjdGlvbiA9IHRydWUsIGNsb3NlQWN0aW9uID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIGNsb3NlQWN0aW9uICYmIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wZW5BY3Rpb24gJiYgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgY2FsbGVkIHRvIGNoYW5nZSBwb3NpdGlvbiBvZiBwb3BvdmVyLFxuICAgICAqIHJlY29tbWVuZGVkIHRvIGJlIHVzZWQgb25seSB3aGVuIHBvcG92ZXIgaXMgb3BlbmVkLCBvdGhlcndpc2UgY2hhbmdlIHBvc2l0aW9uIG9yIGNka1BsYWNlbWVudFxuICAgICAqL1xuICAgIGFwcGx5TmV3UG9zaXRpb24ocG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlZlBvc2l0aW9uID0gdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneShwb3NpdGlvbnMpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Gb3JQb3NpdGlvbkNoYW5nZShyZWZQb3NpdGlvbi5wb3NpdGlvbkNoYW5nZXMpO1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kocmVmUG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgY2FsbGVkIHRvIHJlZnJlc2ggcG9zaXRpb24gb2Ygb3BlbmVkIHBvcG92ZXIgKi9cbiAgICByZWZyZXNoUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIFRlbXBvcmFyeSBzZXRzIHRoZSBpZ25vcmluZyBvZiB0aGUgZXZlbnQgdHJpZ2dlcnMuICovXG4gICAgc2V0SWdub3JlVHJpZ2dlcnMoaWdub3JlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lnbm9yZVRyaWdnZXJzID0gaWdub3JlO1xuICAgIH1cblxuICAgIC8qKiBFcXVpdmFsZW50IGZvciBuZ09uRGVzdHJveSBtZXRob2QsIHdoZXRoZXIgY29tcG9uZW50IGlzIGRlc3Ryb3llZCwgdGhpcyBtZXRob2Qgc2hvdWxkIGJlIGNhbGxlZCAqL1xuICAgIG9uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckxpc3RlbmVycygpO1xuICAgICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRoYXQgc2V0cyBjb25maWd1cmF0aW9uL29wdGlvbnMsIGl0IGRldGVjdHMgaWYgdGhlcmUgaXMgc29tZXRoaW5nIGNoYW5nZWQgYW5kIG92ZXJ3cml0ZXMgdGhlbVxuICAgICAqL1xuICAgIHJlZnJlc2hDb25maWd1cmF0aW9uKGNvbmZpZzogQmFzZVBvcG92ZXJDbGFzcyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wbGFjZW1lbnRDb250YWluZXIgPSBjb25maWcucGxhY2VtZW50Q29udGFpbmVyO1xuICAgICAgICBjb25zdCBvbmx5Q2hhbmdlZCA9IE9iamVjdC5rZXlzKG5ldyBCYXNlUG9wb3ZlckNsYXNzKCkpLmZpbHRlcigoa2V5KSA9PiB0aGlzW2tleV0gIT09IGNvbmZpZ1trZXldKTtcblxuICAgICAgICBpZiAob25seUNoYW5nZWQuaW5jbHVkZXMoJ2lzT3BlbicpKSB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob25seUNoYW5nZWQuaW5jbHVkZXMoJ3BsYWNlbWVudENvbnRhaW5lcicpKSB7XG4gICAgICAgICAgICB0aGlzLl9wbGFjZW1lbnRDb250YWluZXIgPSBjb25maWcucGxhY2VtZW50Q29udGFpbmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIFRPRE9cbiAgICAgICAgICogVGhpcyBvdmVycmlkaW5nIGlzIGRhbmdlcm91cyB0aGluZyBhbmQgbGVhZHMgdG8gdW5leHBlY3RlZCBiZWhhdmlvclxuICAgICAgICAgKiBXZSBoYXZlIHRvIGF2b2lkIHRoaXMuXG4gICAgICAgICAqL1xuICAgICAgICBvbmx5Q2hhbmdlZC5mb3JFYWNoKChrZXkpID0+ICh0aGlzW2tleV0gPSBjb25maWdba2V5XSkpO1xuXG4gICAgICAgIGlmIChvbmx5Q2hhbmdlZC5pbmNsdWRlcygndHJpZ2dlcnMnKSkge1xuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRyaWdnZXJMaXN0ZW5lcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBpbiBvcmRlclxuICAgICAqIHRvIHBvc3Rwb25lIHRoZSBtYWluIGZ1bmN0aW9uYWxpdHkgYnV0IGJlIGFibGVcbiAgICAgKiB0byBlbmFibGUgaXQgYmFjayBpbiB0aGUgZnV0dXJlIGJ5IGluaXRpYWxpc2UoKVxuICAgICAqL1xuICAgIGRlYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRyaWdnZXJMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICAvKiogUmVmcmVzaCBsaXN0ZW5lcnMgb24gdHJpZ2dlciBlbGVtZW50IGV2ZW50cyAqL1xuICAgIF9yZWZyZXNoVHJpZ2dlckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckxpc3RlbmVycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX25vcm1hbGl6ZVRyaWdnZXJzKCkuZm9yRWFjaCgodHJpZ2dlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50UmVmLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLl90cmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50LCB0cmlnZ2VyLnRyaWdnZXIsIChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9pZ25vcmVUcmlnZ2Vycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb3NlQWN0aW9uID0gISF0cmlnZ2VyLmNsb3NlQWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3BlbkFjdGlvbiA9ICEhdHJpZ2dlci5vcGVuQWN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGUob3BlbkFjdGlvbiwgY2xvc2VBY3Rpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJpZ2dlci5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRyaWdnZXIgZWxlbWVudCBhbmQgcmVmcmVzaGVzIHRoZSBsaXN0ZW5lcnMuXG4gICAgICogQHBhcmFtIHRyaWdnZXIgVHJpZ2dlciBlbGVtZW50IHJlZi5cbiAgICAgKi9cbiAgICB1cGRhdGVUcmlnZ2VyRWxlbWVudCh0cmlnZ2VyOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlcjtcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRyaWdnZXJMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25vcm1hbGl6ZVRyaWdnZXJzKCk6IFRyaWdnZXJDb25maWdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyaWdnZXJzLm1hcCgodHJpZ2dlciwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdHJpZ2dlciA9PT0gJ29iamVjdCcgJiYgdHJpZ2dlci50cmlnZ2VyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyaWdnZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG9kZE51bWJlciA9IGlzT2RkKGluZGV4ICsgMSk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHJpZ2dlcixcbiAgICAgICAgICAgICAgICBvcGVuQWN0aW9uOiB0aGlzLnRyaWdnZXJzLmxlbmd0aCA9PT0gMSB8fCBvZGROdW1iZXIsXG4gICAgICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRoaXMudHJpZ2dlcnMubGVuZ3RoID09PSAxIHx8ICFvZGROdW1iZXIsXG4gICAgICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiBmYWxzZVxuICAgICAgICAgICAgfSBhcyBUcmlnZ2VyQ29uZmlnO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE92ZXJsYXlDb25maWcocG9zaXRpb246IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSk6IE92ZXJsYXlDb25maWcge1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLl9nZXREaXJlY3Rpb24oKTtcblxuICAgICAgICByZXR1cm4gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgZGlzcG9zZU9uTmF2aWdhdGlvbjogdGhpcy5jbG9zZU9uTmF2aWdhdGlvbixcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHBvc2l0aW9uLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uUmVzaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyXG4gICAgICAgICAgICAuY2hhbmdlKDE1KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3JlZnJlc2gkKSwgc3RhcnRXaXRoKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9hcHBseVdpZHRoT3ZlcmxheSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldERpcmVjdGlvbigpOiAncnRsJyB8ICdsdHInIHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydGxTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2x0cic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fcnRsU2VydmljZS5ydGwuZ2V0VmFsdWUoKSA/ICdydGwnIDogJ2x0cic7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRQb3NpdGlvblN0cmF0ZWd5KGZvcmNlZFBvc2l0aW9ucz86IENvbm5lY3RlZFBvc2l0aW9uW10pOiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgICAgICBsZXQgcmVzdWx0UG9zaXRpb24gPSBmb3JjZWRQb3NpdGlvbnMgPyBmb3JjZWRQb3NpdGlvbnMgOiB0aGlzLl9nZXRQb3NpdGlvbnMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZml4ZWRQb3NpdGlvbikge1xuICAgICAgICAgICAgcmVzdWx0UG9zaXRpb24gPSByZXN1bHRQb3NpdGlvbi5jb25jYXQoR2V0RGVmYXVsdFBvc2l0aW9uKHJlc3VsdFBvc2l0aW9uKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuYXBwZW5kVG8gfHwgdGhpcy5fdHJpZ2dlckVsZW1lbnQpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhyZXN1bHRQb3NpdGlvbilcbiAgICAgICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgICAgIC53aXRoR3Jvd0FmdGVyT3Blbih0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogcmVtb3ZlIGxpc3RlbmVycyBmcm9tIHRyaWdnZXIgZWxlbWVudCBldmVudHMgKi9cbiAgICBwcml2YXRlIF9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ldmVudFJlZi5mb3JFYWNoKChldmVudCkgPT4gZXZlbnQoKSk7XG4gICAgICAgIHRoaXMuX2V2ZW50UmVmID0gW107XG4gICAgfVxuXG4gICAgLyoqIEF0dGFjaCB0ZW1wbGF0ZSBjb250YWluaW5nIHBvcG92ZXIgYm9keSB0byBvdmVybGF5ICovXG4gICAgcHJpdmF0ZSBfYXR0YWNoVGVtcGxhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTtcbiAgICAgICAgaWYgKHRoaXMuX3RlbXBsYXRlRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3RlbXBsYXRlRGF0YS50ZW1wbGF0ZSwgdGhpcy5fdGVtcGxhdGVEYXRhLmNvbnRhaW5lcikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENyZWF0ZSBQb3BvdmVyQm9keUNvbXBvbmVudCBhbmQgYXR0YWNoIGl0IGludG8gb3ZlcmxheSAqL1xuICAgIHByaXZhdGUgX2F0dGFjaEJvZHlDb21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgQ29tcG9uZW50UG9ydGFsKFBvcG92ZXJCb2R5Q29tcG9uZW50LCBudWxsLCB0aGlzLl9pbmplY3RvcikpO1xuICAgICAgICB0aGlzLl9wb3BvdmVyQm9keSA9IG92ZXJsYXkuaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlbkZvclBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uQ2hhbmdlOiBPYnNlcnZhYmxlPENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGxhY2VtZW50UmVmcmVzaCQubmV4dCgpO1xuICAgICAgICBwb3NpdGlvbkNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3BsYWNlbWVudFJlZnJlc2gkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLm5vQXJyb3cgJiYgISF0aGlzLl9nZXRQb3BvdmVyQm9keSgpKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldmlvdXMsIGN1cnJlbnQpID0+IHByZXZpb3VzLmNvbm5lY3Rpb25QYWlyID09PSBjdXJyZW50LmNvbm5lY3Rpb25QYWlyKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMuX2dldFBvcG92ZXJCb2R5KCkuX3NldEFycm93U3R5bGVzKGV2ZW50LmNvbm5lY3Rpb25QYWlyLCB0aGlzLl9nZXREaXJlY3Rpb24oKSkpO1xuICAgIH1cblxuICAgIC8qKiBTdWJzY3JpYmUgdG8gY2xvc2UgZXZlbnRzIGZyb20gQ0RLIE92ZXJsYXksIHRvIHRocm93IHByb3BlciBldmVudHMsIGNoYW5nZSB2YWx1ZXMgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5PbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjbG9zZUV2ZW50cyQgPSBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNobWVudHMoKSxcbiAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJCb2R5KCkub25DbG9zZSxcbiAgICAgICAgICAgIHRoaXMuX291dHNpZGVDbGlja3MkKClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmluYWxpemVyJCA9IG1lcmdlKHRoaXMuX3N0b3BDbG9zZUxpc3RlbmluZyQsIHRoaXMuX3JlZnJlc2gkKTtcbiAgICAgICAgY2xvc2VFdmVudHMkLnBpcGUodGFrZVVudGlsKGZpbmFsaXplciQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB9XG5cbiAgICAvKiogTGlzdGVuZXIgZm9yIGNsaWNrIGV2ZW50cyAqL1xuICAgIHByaXZhdGUgX291dHNpZGVDbGlja3MkKCk6IE9ic2VydmFibGU8TW91c2VFdmVudD4ge1xuICAgICAgICByZXR1cm4gbWVyZ2UodGhpcy5fb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCksIHRoaXMuX292ZXJsYXlSZWYuX291dHNpZGVQb2ludGVyRXZlbnRzKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gdGhpcy5fc2hvdWxkQ2xvc2UoZXZlbnQpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkQ2xvc2UoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuICYmXG4gICAgICAgICAgICB0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2sgJiZcbiAgICAgICAgICAgICF0aGlzLl90cmlnZ2VyQ29udGFpbnNUYXJnZXQoZXZlbnQpICYmXG4gICAgICAgICAgICAhdGhpcy5fdGFyZ2V0SXNQb3BvdmVyTW9iaWxlRGlhbG9nKGV2ZW50KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFyZ2V0SXNQb3BvdmVyTW9iaWxlRGlhbG9nKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLl9tb2JpbGUpIHtcbiAgICAgICAgICAgIGxldCBlbCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICB3aGlsZSAoZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWwuaGFzQXR0cmlidXRlKCdkYXRhLW1vYmlsZS1wb3BvdmVyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEV2ZW50VGFyZ2V0KGV2ZW50OiBFdmVudCk6IEV2ZW50VGFyZ2V0IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBldmVudC5jb21wb3NlZFBhdGggPyBldmVudC5jb21wb3NlZFBhdGgoKVswXSA6IGV2ZW50LnRhcmdldDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJDb250YWluc1RhcmdldChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckVsZW1lbnQgPSB0aGlzLl90cmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICByZXR1cm4gdHJpZ2dlckVsZW1lbnQuY29udGFpbnModGhpcy5fZ2V0RXZlbnRUYXJnZXQoZXZlbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBvc2l0aW9ucygpOiBDb25uZWN0ZWRQb3NpdGlvbltdIHtcbiAgICAgICAgaWYgKHRoaXMuY2RrUG9zaXRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jZGtQb3NpdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBbUG9wb3ZlclBvc2l0aW9uLmdldENka1BsYWNlbWVudCh0aGlzLnBsYWNlbWVudCwgdGhpcy5fZ2V0RGlyZWN0aW9uKCkpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGx5V2lkdGhPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBtYXhXaWR0aExpbWl0ID0gdGhpcy5tYXhXaWR0aCA/IHRoaXMubWF4V2lkdGggOiBNQVhfQk9EWV9TSVpFO1xuICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKHRoaXMuX2dldFRyaWdnZXJXaWR0aCgpLCBtYXhXaWR0aExpbWl0KTtcbiAgICAgICAgaWYgKHRoaXMuZmlsbENvbnRyb2xNb2RlID09PSAnYXQtbGVhc3QnKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLl9wb3BvdmVyQm9keU1pbldpZHRoID0gd2lkdGg7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5maWxsQ29udHJvbE1vZGUgPT09ICdlcXVhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJCb2R5KCkuX3BvcG92ZXJCb2R5V2lkdGggPSB3aWR0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXNzVmFyaWFibGVzVG9Cb2R5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBib2R5ID0gdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKTtcbiAgICAgICAgYm9keS50ZXh0ID0gdGhpcy5zdHJpbmdDb250ZW50O1xuICAgICAgICBib2R5Ll9hZGRpdGlvbmFsQm9keUNsYXNzID0gdGhpcy5hZGRpdGlvbmFsQm9keUNsYXNzO1xuICAgICAgICBib2R5Ll9mb2N1c1RyYXBwZWQgPSB0aGlzLmZvY3VzVHJhcHBlZDtcbiAgICAgICAgYm9keS5fbWF4V2lkdGggPSB0aGlzLm1heFdpZHRoO1xuICAgICAgICBib2R5Ll9ub0Fycm93ID0gdGhpcy5ub0Fycm93O1xuICAgICAgICBib2R5Ll9mb2N1c0F1dG9DYXB0dXJlID0gdGhpcy5mb2N1c0F1dG9DYXB0dXJlO1xuICAgICAgICBib2R5Ll9kaXNhYmxlU2Nyb2xsYmFyID0gdGhpcy5kaXNhYmxlU2Nyb2xsYmFyO1xuICAgICAgICBib2R5Ll90YWJiYWJsZVNjcm9sbGJhciA9IHRoaXMudGFiYmFibGVTY3JvbGxiYXI7XG4gICAgICAgIGJvZHkuX3RlbXBsYXRlVG9EaXNwbGF5ID0gdGhpcy50ZW1wbGF0ZUNvbnRlbnQhO1xuICAgICAgICBib2R5Ll9jbG9zZU9uRXNjYXBlS2V5ID0gdGhpcy5jbG9zZU9uRXNjYXBlS2V5O1xuICAgICAgICBib2R5Ll9ib2R5Um9sZSA9IHRoaXMuX2JvZHlSb2xlO1xuICAgICAgICBib2R5Ll9ib2R5SWQgPSB0aGlzLl9ib2R5SWQ7XG4gICAgICAgIGJvZHkuX3Jlc2l6YWJsZSA9IHRoaXMucmVzaXphYmxlO1xuICAgICAgICBib2R5Ll9zZXRCb2R5Q29tcG9uZW50Q2xhc3Nlcyh0aGlzLmFkZGl0aW9uYWxCb2R5Q29tcG9uZW50Q2xhc3Nlcyk7XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFRyaWdnZXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBvcG92ZXJCb2R5KCk6IFBvcG92ZXJCb2R5Q29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlRGF0YT8ucG9wb3ZlckJvZHkgfHwgdGhpcy5fcG9wb3ZlckJvZHk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZ2V0UG9wb3ZlckJvZHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoZm9jdXNMYXN0RWxlbWVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZvY3VzTGFzdEVsZW1lbnQgJiYgdGhpcy5mb2N1c0F1dG9DYXB0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCA9IDxIVE1MRWxlbWVudD5kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKT8uX2ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNMYXN0QWN0aXZlRWxlbWVudEJlZm9yZU9wZW4oZm9jdXNMYXN0RWxlbWVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZvY3VzTGFzdEVsZW1lbnQgJiYgdGhpcy5mb2N1c0F1dG9DYXB0dXJlICYmIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
428
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcG9wb3Zlci9wb3BvdmVyLXNlcnZpY2UvcG9wb3Zlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxPQUFPLEVBQ1AsYUFBYSxFQUViLGFBQWEsRUFDaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEYsT0FBTyxFQUFZLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkYsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLDRCQUE0QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7OztBQUU3RixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFTL0IsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFpRGhELGNBQWM7SUFDZCxZQUNZLFFBQWlCLEVBQ2pCLFNBQW9CLEVBQ3BCLGNBQTZCLEVBQzdCLFNBQW1CLEVBQ1AsV0FBdUIsRUFDZCxp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QUFDLGtCQUFrQixFQUFFO1lBQ3RFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNuQztJQUNMLENBQUM7OEdBeGdCUSxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQXdERixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsXG4gICAgQ29ubmVjdGVkUG9zaXRpb24sXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbmZpZyxcbiAgICBPdmVybGF5UmVmLFxuICAgIFZpZXdwb3J0UnVsZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlLCBSdGxTZXJ2aWNlLCBpc09kZCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEdldERlZmF1bHRQb3NpdGlvbiwgUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5cbmltcG9ydCB7IEJhc2VQb3BvdmVyQ2xhc3MsIFRyaWdnZXJDb25maWcgfSBmcm9tICcuLi9iYXNlL2Jhc2UtcG9wb3Zlci5jbGFzcyc7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCB9IGZyb20gJy4uL3BvcG92ZXItYm9keS9wb3BvdmVyLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJDb250YWluZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9wb3BvdmVyLWNvbnRhaW5lci9wb3BvdmVyLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuXG5jb25zdCBNQVhfQk9EWV9TSVpFID0gOTk5OTk5OTk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wb3ZlclRlbXBsYXRlIHtcbiAgICBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gICAgcG9wb3ZlckJvZHk6IFBvcG92ZXJCb2R5Q29tcG9uZW50O1xuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9wb3ZlclNlcnZpY2UgZXh0ZW5kcyBCYXNlUG9wb3ZlckNsYXNzIHtcbiAgICAvKiogU3RyaW5nIGNvbnRlbnQgZGlzcGxheWVkIGluc2lkZSBwb3BvdmVyIGJvZHkgKi9cbiAgICBzdHJpbmdDb250ZW50OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFRlbXBsYXRlIGNvbnRlbnQgZGlzcGxheWVkIGluc2lkZSBwb3BvdmVyIGJvZHkgKi9cbiAgICB0ZW1wbGF0ZUNvbnRlbnQ6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Mb2FkID0gbmV3IFN1YmplY3Q8RWxlbWVudFJlZj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX21vYmlsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ldmVudFJlZjogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVmcmVzaCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHZvaWQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdG9wQ2xvc2VMaXN0ZW5pbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VtZW50UmVmcmVzaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wb3BvdmVyQm9keTogUG9wb3ZlckJvZHlDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RlbXBsYXRlRGF0YTogTnVsbGFibGU8UG9wb3ZlclRlbXBsYXRlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcGxhY2VtZW50Q29udGFpbmVyOiBCYXNlUG9wb3ZlckNsYXNzWydwbGFjZW1lbnRDb250YWluZXInXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaWdub3JlVHJpZ2dlcnMgPSBmYWxzZTtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfdmlld3BvcnRSdWxlcjogVmlld3BvcnRSdWxlcixcbiAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9wb3BvdmVyQ29udGFpbmVyOiBQb3BvdmVyQ29udGFpbmVyRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgLyoqIE1lcmdlIG9ic2VydmFibGVzIC0gY2xvc2Ugb3IgZGVzdHJveSAqL1xuICAgICAgICB0aGlzLl9yZWZyZXNoJCA9IG1lcmdlKHRoaXMuaXNPcGVuQ2hhbmdlLCB0aGlzLl9vbkRlc3Ryb3kkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgaW5pdGlhbGlzaW5nIHRoZSBwb3BvdmVyIHNlcnZpY2UgLSBzaG91bGQgYmUgY2FsbGVkLCBhZnRlciB2aWV3IGlzIGluaXRpYWxpc2VkLCBwYXJhbXM6XG4gICAgICogLSB0cmlnZ2VyRWxlbWVudCAtIGVsZW1lbnQsIHdoaWNoIGlzIGVxdWl2YWxlbnQgZm9yIGNka092ZXJsYXlPcmlnaW4sIG9yIGZkLXBvcG92ZXItY29udHJvbCxcbiAgICAgKiAgIGJ5IGRlZmF1bHQgdG8gdGhpcyBlbGVtZW50IHRoZSBwb3BvdmVyIGJvZHkgd2lsbCBsYmUgYXBwZW5kZWQgYW5kIGV2ZW50cyBvbiB0aGlzIGVsZW1lbnQgd2lsbCB0cmlnZ2VyXG4gICAgICogICBwb3BvdmVyJ3MgIHRvZ2dsZVxuICAgICAqIC0gY29uZmlnIC0gY29uZmlndXJhdGlvbiBvYmplY3QgLSBpbiB0aGlzIGNhc2UgdGhlIGludGVudGlvbiBpcyB0byB1c2UgaW5oZXJpdGFuY2Ugb2YgQmFzZVBvcG92ZXJDbGFzcyBpbiBjb21wb25lbnRcbiAgICAgKiAtIHRlbXBsYXRlRGF0YSAtIGluIGNhc2Ugb2YgaGF2aW5nIGFscmVhZHkgUG9wb3ZlckJvZHlDb21wb25lbnQsIHRoZXJlIGlzIHdheSB0byBwYXNzIGNvbnRhaW5lciwgdGVtcGxhdGUgY29udGFpbmluZ1xuICAgICAqICAgUG9wb3ZlckNvbXBvbmVudCBhbmQgUG9wb3ZlckNvbXBvbmVudCBpbnN0YW5jZVxuICAgICAqL1xuICAgIGluaXRpYWxpc2UoXG4gICAgICAgIHRyaWdnZXJFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBjb25maWc/OiBCYXNlUG9wb3ZlckNsYXNzLFxuICAgICAgICB0ZW1wbGF0ZURhdGE/OiBQb3BvdmVyVGVtcGxhdGUgfCBUZW1wbGF0ZVJlZjx2b2lkPiB8IG51bGxcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHRlbXBsYXRlRGF0YSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlQ29udGVudCA9IHRlbXBsYXRlRGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBsYXRlRGF0YSA9IHRlbXBsYXRlRGF0YTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRyaWdnZXJFbGVtZW50O1xuXG4gICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaENvbmZpZ3VyYXRpb24oY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3JlZnJlc2hUcmlnZ2VyTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHdyYXBwZXIgY29udGFpbmVyIGhlaWdodCBjaGFuZ2VzIG91dHNpZGUsIHJlZnJlc2ggcG9wb3ZlciBwb3NpdGlvbi5cbiAgICAgICAgdGhpcy5fcG9wb3ZlckNvbnRhaW5lcj8ucmVmcmVzaFBvc2l0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLl9yZWZyZXNoJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2VzIHRoZSBwb3BvdmVyLiAqL1xuICAgIGNsb3NlKGZvY3VzQWN0aXZlRWxlbWVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5pc09wZW47XG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgIGlmIChwcmV2U3RhdGUgIT09IHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2ZvY3VzTGFzdEFjdGl2ZUVsZW1lbnRCZWZvcmVPcGVuKGZvY3VzQWN0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW5zIHRoZSBwb3BvdmVyLiAqL1xuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICgoIXRoaXMuX292ZXJsYXlSZWYgfHwgIXRoaXMuX292ZXJsYXlSZWYuaGFzQXR0YWNoZWQoKSkgJiYgIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneSgpO1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHRoaXMuX2dldE92ZXJsYXlDb25maWcocG9zaXRpb24pKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX3BsYWNlbWVudENvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYWNlbWVudEVsZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wbGFjZW1lbnRDb250YWluZXIgaW5zdGFuY2VvZiBFbGVtZW50UmVmXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX3BsYWNlbWVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuX3BsYWNlbWVudENvbnRhaW5lcjtcblxuICAgICAgICAgICAgICAgIHBsYWNlbWVudEVsZW1lbnQuYXBwZW5kKHRoaXMuX292ZXJsYXlSZWYuaG9zdEVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGVEYXRhKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXR0YWNoVGVtcGxhdGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYXR0YWNoQm9keUNvbXBvbmVudCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9zdG9wQ2xvc2VMaXN0ZW5pbmckLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlbkZvclBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbGxDb250cm9sTW9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3Rlbk9uUmVzaXplKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMuaXNPcGVuO1xuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5PbkNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLl9vbkxvYWQubmV4dCh0aGlzLl9nZXRQb3BvdmVyQm9keSgpLl9lbGVtZW50UmVmKTtcbiAgICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBtZXRob2QgdXBkYXRpbmcgdGVtcGxhdGUgb3IgdGV4dCBpbnNpZGUgcmVuZGVyZWQgUG9wb3ZlckJvZHkgKi9cbiAgICB1cGRhdGVDb250ZW50KFxuICAgICAgICBzdHJpbmdDb250ZW50OiBOdWxsYWJsZTxzdHJpbmc+IHwgTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj4sXG4gICAgICAgIHRlbXBsYXRlQ29udGVudDogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGVtcGxhdGVDb250ZW50ID0gIXRlbXBsYXRlQ29udGVudFxuICAgICAgICAgICAgPyB0eXBlb2Ygc3RyaW5nQ29udGVudCA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IHN0cmluZ0NvbnRlbnRcbiAgICAgICAgICAgIDogdGVtcGxhdGVDb250ZW50O1xuICAgICAgICBzdHJpbmdDb250ZW50ID0gdHlwZW9mIHN0cmluZ0NvbnRlbnQgPT09ICdzdHJpbmcnID8gc3RyaW5nQ29udGVudCA6IG51bGw7XG4gICAgICAgIHRoaXMuc3RyaW5nQ29udGVudCA9IHN0cmluZ0NvbnRlbnQ7XG4gICAgICAgIHRoaXMudGVtcGxhdGVDb250ZW50ID0gdGVtcGxhdGVDb250ZW50O1xuICAgICAgICBpZiAodGhpcy5fZ2V0UG9wb3ZlckJvZHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fcGFzc1ZhcmlhYmxlc1RvQm9keSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFRvZ2dsZXMgdGhlIHBvcG92ZXIgb3BlbiBzdGF0ZSAqL1xuICAgIHRvZ2dsZShvcGVuQWN0aW9uID0gdHJ1ZSwgY2xvc2VBY3Rpb24gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgY2xvc2VBY3Rpb24gJiYgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3BlbkFjdGlvbiAmJiB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBjYWxsZWQgdG8gY2hhbmdlIHBvc2l0aW9uIG9mIHBvcG92ZXIsXG4gICAgICogcmVjb21tZW5kZWQgdG8gYmUgdXNlZCBvbmx5IHdoZW4gcG9wb3ZlciBpcyBvcGVuZWQsIG90aGVyd2lzZSBjaGFuZ2UgcG9zaXRpb24gb3IgY2RrUGxhY2VtZW50XG4gICAgICovXG4gICAgYXBwbHlOZXdQb3NpdGlvbihwb3NpdGlvbnM6IENvbm5lY3RlZFBvc2l0aW9uW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVmUG9zaXRpb24gPSB0aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9ucyk7XG4gICAgICAgIHRoaXMuX2xpc3RlbkZvclBvc2l0aW9uQ2hhbmdlKHJlZlBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcyk7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb25TdHJhdGVneShyZWZQb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCBjYWxsZWQgdG8gcmVmcmVzaCBwb3NpdGlvbiBvZiBvcGVuZWQgcG9wb3ZlciAqL1xuICAgIHJlZnJlc2hQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogVGVtcG9yYXJ5IHNldHMgdGhlIGlnbm9yaW5nIG9mIHRoZSBldmVudCB0cmlnZ2Vycy4gKi9cbiAgICBzZXRJZ25vcmVUcmlnZ2VycyhpZ25vcmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faWdub3JlVHJpZ2dlcnMgPSBpZ25vcmU7XG4gICAgfVxuXG4gICAgLyoqIEVxdWl2YWxlbnQgZm9yIG5nT25EZXN0cm95IG1ldGhvZCwgd2hldGhlciBjb21wb25lbnQgaXMgZGVzdHJveWVkLCB0aGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkICovXG4gICAgb25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk7XG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZXRob2QgdGhhdCBzZXRzIGNvbmZpZ3VyYXRpb24vb3B0aW9ucywgaXQgZGV0ZWN0cyBpZiB0aGVyZSBpcyBzb21ldGhpbmcgY2hhbmdlZCBhbmQgb3ZlcndyaXRlcyB0aGVtXG4gICAgICovXG4gICAgcmVmcmVzaENvbmZpZ3VyYXRpb24oY29uZmlnOiBCYXNlUG9wb3ZlckNsYXNzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BsYWNlbWVudENvbnRhaW5lciA9IGNvbmZpZy5wbGFjZW1lbnRDb250YWluZXI7XG4gICAgICAgIGNvbnN0IG9ubHlDaGFuZ2VkID0gT2JqZWN0LmtleXMobmV3IEJhc2VQb3BvdmVyQ2xhc3MoKSkuZmlsdGVyKChrZXkpID0+IHRoaXNba2V5XSAhPT0gY29uZmlnW2tleV0pO1xuXG4gICAgICAgIGlmIChvbmx5Q2hhbmdlZC5pbmNsdWRlcygnaXNPcGVuJykpIHtcbiAgICAgICAgICAgIGlmIChjb25maWcuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbmx5Q2hhbmdlZC5pbmNsdWRlcygncGxhY2VtZW50Q29udGFpbmVyJykpIHtcbiAgICAgICAgICAgIHRoaXMuX3BsYWNlbWVudENvbnRhaW5lciA9IGNvbmZpZy5wbGFjZW1lbnRDb250YWluZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogVE9ET1xuICAgICAgICAgKiBUaGlzIG92ZXJyaWRpbmcgaXMgZGFuZ2Vyb3VzIHRoaW5nIGFuZCBsZWFkcyB0byB1bmV4cGVjdGVkIGJlaGF2aW9yXG4gICAgICAgICAqIFdlIGhhdmUgdG8gYXZvaWQgdGhpcy5cbiAgICAgICAgICovXG4gICAgICAgIG9ubHlDaGFuZ2VkLmZvckVhY2goKGtleSkgPT4gKHRoaXNba2V5XSA9IGNvbmZpZ1trZXldKSk7XG5cbiAgICAgICAgaWYgKG9ubHlDaGFuZ2VkLmluY2x1ZGVzKCd0cmlnZ2VycycpKSB7XG4gICAgICAgICAgICB0aGlzLl9yZWZyZXNoVHJpZ2dlckxpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gYmUgY2FsbGVkIGluIG9yZGVyXG4gICAgICogdG8gcG9zdHBvbmUgdGhlIG1haW4gZnVuY3Rpb25hbGl0eSBidXQgYmUgYWJsZVxuICAgICAqIHRvIGVuYWJsZSBpdCBiYWNrIGluIHRoZSBmdXR1cmUgYnkgaW5pdGlhbGlzZSgpXG4gICAgICovXG4gICAgZGVhY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVHJpZ2dlckxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIC8qKiBSZWZyZXNoIGxpc3RlbmVycyBvbiB0cmlnZ2VyIGVsZW1lbnQgZXZlbnRzICovXG4gICAgX3JlZnJlc2hUcmlnZ2VyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZW1vdmVUcmlnZ2VyTGlzdGVuZXJzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplVHJpZ2dlcnMoKS5mb3JFYWNoKCh0cmlnZ2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXZlbnRSZWYucHVzaChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIubGlzdGVuKHRoaXMuX3RyaWdnZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRyaWdnZXIudHJpZ2dlciwgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2lnbm9yZVRyaWdnZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xvc2VBY3Rpb24gPSAhIXRyaWdnZXIuY2xvc2VBY3Rpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcGVuQWN0aW9uID0gISF0cmlnZ2VyLm9wZW5BY3Rpb247XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZShvcGVuQWN0aW9uLCBjbG9zZUFjdGlvbik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmlnZ2VyLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdHJpZ2dlciBlbGVtZW50IGFuZCByZWZyZXNoZXMgdGhlIGxpc3RlbmVycy5cbiAgICAgKiBAcGFyYW0gdHJpZ2dlciBUcmlnZ2VyIGVsZW1lbnQgcmVmLlxuICAgICAqL1xuICAgIHVwZGF0ZVRyaWdnZXJFbGVtZW50KHRyaWdnZXI6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0cmlnZ2VyO1xuICAgICAgICB0aGlzLl9yZWZyZXNoVHJpZ2dlckxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplVHJpZ2dlcnMoKTogVHJpZ2dlckNvbmZpZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJpZ2dlcnMubWFwKCh0cmlnZ2VyLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0cmlnZ2VyID09PSAnb2JqZWN0JyAmJiB0cmlnZ2VyLnRyaWdnZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJpZ2dlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgb2RkTnVtYmVyID0gaXNPZGQoaW5kZXggKyAxKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyLFxuICAgICAgICAgICAgICAgIG9wZW5BY3Rpb246IHRoaXMudHJpZ2dlcnMubGVuZ3RoID09PSAxIHx8IG9kZE51bWJlcixcbiAgICAgICAgICAgICAgICBjbG9zZUFjdGlvbjogdGhpcy50cmlnZ2Vycy5sZW5ndGggPT09IDEgfHwgIW9kZE51bWJlcixcbiAgICAgICAgICAgICAgICBzdG9wUHJvcGFnYXRpb246IGZhbHNlXG4gICAgICAgICAgICB9IGFzIFRyaWdnZXJDb25maWc7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0T3ZlcmxheUNvbmZpZyhwb3NpdGlvbjogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMuX2dldERpcmVjdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0aGlzLmNsb3NlT25OYXZpZ2F0aW9uLFxuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogcG9zaXRpb24sXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5zY3JvbGxTdHJhdGVneSB8fCB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZpZXdwb3J0UnVsZXJcbiAgICAgICAgICAgIC5jaGFuZ2UoMTUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fcmVmcmVzaCQpLCBzdGFydFdpdGgoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2FwcGx5V2lkdGhPdmVybGF5KCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0RGlyZWN0aW9uKCk6ICdydGwnIHwgJ2x0cicge1xuICAgICAgICBpZiAoIXRoaXMuX3J0bFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiAnbHRyJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlLnJ0bC5nZXRWYWx1ZSgpID8gJ3J0bCcgOiAnbHRyJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFBvc2l0aW9uU3RyYXRlZ3koZm9yY2VkUG9zaXRpb25zPzogQ29ubmVjdGVkUG9zaXRpb25bXSk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgICAgIGxldCByZXN1bHRQb3NpdGlvbiA9IGZvcmNlZFBvc2l0aW9ucyA/IGZvcmNlZFBvc2l0aW9ucyA6IHRoaXMuX2dldFBvc2l0aW9ucygpO1xuXG4gICAgICAgIGlmICghdGhpcy5maXhlZFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXN1bHRQb3NpdGlvbiA9IHJlc3VsdFBvc2l0aW9uLmNvbmNhdChHZXREZWZhdWx0UG9zaXRpb24ocmVzdWx0UG9zaXRpb24pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5hcHBlbmRUbyB8fCB0aGlzLl90cmlnZ2VyRWxlbWVudClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKHJlc3VsdFBvc2l0aW9uKVxuICAgICAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhHcm93QWZ0ZXJPcGVuKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiByZW1vdmUgbGlzdGVuZXJzIGZyb20gdHJpZ2dlciBlbGVtZW50IGV2ZW50cyAqL1xuICAgIHByaXZhdGUgX3JlbW92ZVRyaWdnZXJMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V2ZW50UmVmLmZvckVhY2goKGV2ZW50KSA9PiBldmVudCgpKTtcbiAgICAgICAgdGhpcy5fZXZlbnRSZWYgPSBbXTtcbiAgICB9XG5cbiAgICAvKiogQXR0YWNoIHRlbXBsYXRlIGNvbnRhaW5pbmcgcG9wb3ZlciBib2R5IHRvIG92ZXJsYXkgKi9cbiAgICBwcml2YXRlIF9hdHRhY2hUZW1wbGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcGFzc1ZhcmlhYmxlc1RvQm9keSgpO1xuICAgICAgICBpZiAodGhpcy5fdGVtcGxhdGVEYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fdGVtcGxhdGVEYXRhLnRlbXBsYXRlLCB0aGlzLl90ZW1wbGF0ZURhdGEuY29udGFpbmVyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ3JlYXRlIFBvcG92ZXJCb2R5Q29tcG9uZW50IGFuZCBhdHRhY2ggaXQgaW50byBvdmVybGF5ICovXG4gICAgcHJpdmF0ZSBfYXR0YWNoQm9keUNvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoUG9wb3ZlckJvZHlDb21wb25lbnQsIG51bGwsIHRoaXMuX2luamVjdG9yKSk7XG4gICAgICAgIHRoaXMuX3BvcG92ZXJCb2R5ID0gb3ZlcmxheS5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fcGFzc1ZhcmlhYmxlc1RvQm9keSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuRm9yUG9zaXRpb25DaGFuZ2UocG9zaXRpb25DaGFuZ2U6IE9ic2VydmFibGU8Q29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9wbGFjZW1lbnRSZWZyZXNoJC5uZXh0KCk7XG4gICAgICAgIHBvc2l0aW9uQ2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fcGxhY2VtZW50UmVmcmVzaCQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMubm9BcnJvdyAmJiAhIXRoaXMuX2dldFBvcG92ZXJCb2R5KCkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2aW91cywgY3VycmVudCkgPT4gcHJldmlvdXMuY29ubmVjdGlvblBhaXIgPT09IGN1cnJlbnQuY29ubmVjdGlvblBhaXIpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5fc2V0QXJyb3dTdHlsZXMoZXZlbnQuY29ubmVjdGlvblBhaXIsIHRoaXMuX2dldERpcmVjdGlvbigpKSk7XG4gICAgfVxuXG4gICAgLyoqIFN1YnNjcmliZSB0byBjbG9zZSBldmVudHMgZnJvbSBDREsgT3ZlcmxheSwgdG8gdGhyb3cgcHJvcGVyIGV2ZW50cywgY2hhbmdlIHZhbHVlcyAqL1xuICAgIHByaXZhdGUgX2xpc3Rlbk9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNsb3NlRXZlbnRzJCA9IG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpLFxuICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5vbkNsb3NlLFxuICAgICAgICAgICAgdGhpcy5fb3V0c2lkZUNsaWNrcyQoKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmaW5hbGl6ZXIkID0gbWVyZ2UodGhpcy5fc3RvcENsb3NlTGlzdGVuaW5nJCwgdGhpcy5fcmVmcmVzaCQpO1xuICAgICAgICBjbG9zZUV2ZW50cyQucGlwZSh0YWtlVW50aWwoZmluYWxpemVyJCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIC8qKiBMaXN0ZW5lciBmb3IgY2xpY2sgZXZlbnRzICovXG4gICAgcHJpdmF0ZSBfb3V0c2lkZUNsaWNrcyQoKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgICAgIHJldHVybiBtZXJnZSh0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKSwgdGhpcy5fb3ZlcmxheVJlZi5fb3V0c2lkZVBvaW50ZXJFdmVudHMpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB0aGlzLl9zaG91bGRDbG9zZShldmVudCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zaG91bGRDbG9zZShldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5pc09wZW4gJiZcbiAgICAgICAgICAgIHRoaXMuY2xvc2VPbk91dHNpZGVDbGljayAmJlxuICAgICAgICAgICAgIXRoaXMuX3RyaWdnZXJDb250YWluc1RhcmdldChldmVudCkgJiZcbiAgICAgICAgICAgICF0aGlzLl90YXJnZXRJc1BvcG92ZXJNb2JpbGVEaWFsb2coZXZlbnQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YXJnZXRJc1BvcG92ZXJNb2JpbGVEaWFsb2coZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX21vYmlsZSkge1xuICAgICAgICAgICAgbGV0IGVsID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudDtcbiAgICAgICAgICAgIHdoaWxlIChlbCkge1xuICAgICAgICAgICAgICAgIGlmIChlbC5oYXNBdHRyaWJ1dGUoJ2RhdGEtbW9iaWxlLXBvcG92ZXInKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0RXZlbnRUYXJnZXQoZXZlbnQ6IEV2ZW50KTogRXZlbnRUYXJnZXQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmNvbXBvc2VkUGF0aCA/IGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdIDogZXZlbnQudGFyZ2V0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJpZ2dlckNvbnRhaW5zVGFyZ2V0KGV2ZW50OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHRoaXMuX3RyaWdnZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHJldHVybiB0cmlnZ2VyRWxlbWVudC5jb250YWlucyh0aGlzLl9nZXRFdmVudFRhcmdldChldmVudCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UG9zaXRpb25zKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuICAgICAgICBpZiAodGhpcy5jZGtQb3NpdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNka1Bvc2l0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBsYWNlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFtQb3BvdmVyUG9zaXRpb24uZ2V0Q2RrUGxhY2VtZW50KHRoaXMucGxhY2VtZW50LCB0aGlzLl9nZXREaXJlY3Rpb24oKSldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwbHlXaWR0aE92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoTGltaXQgPSB0aGlzLm1heFdpZHRoID8gdGhpcy5tYXhXaWR0aCA6IE1BWF9CT0RZX1NJWkU7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4odGhpcy5fZ2V0VHJpZ2dlcldpZHRoKCksIG1heFdpZHRoTGltaXQpO1xuICAgICAgICBpZiAodGhpcy5maWxsQ29udHJvbE1vZGUgPT09ICdhdC1sZWFzdCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJCb2R5KCkuX3BvcG92ZXJCb2R5TWluV2lkdGggPSB3aWR0aDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbGxDb250cm9sTW9kZSA9PT0gJ2VxdWFsJykge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UG9wb3ZlckJvZHkoKS5fcG9wb3ZlckJvZHlXaWR0aCA9IHdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Bhc3NWYXJpYWJsZXNUb0JvZHkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB0aGlzLl9nZXRQb3BvdmVyQm9keSgpO1xuICAgICAgICBib2R5LnRleHQgPSB0aGlzLnN0cmluZ0NvbnRlbnQ7XG4gICAgICAgIGJvZHkuX2FkZGl0aW9uYWxCb2R5Q2xhc3MgPSB0aGlzLmFkZGl0aW9uYWxCb2R5Q2xhc3M7XG4gICAgICAgIGJvZHkuX2ZvY3VzVHJhcHBlZCA9IHRoaXMuZm9jdXNUcmFwcGVkO1xuICAgICAgICBib2R5Ll9tYXhXaWR0aCA9IHRoaXMubWF4V2lkdGg7XG4gICAgICAgIGJvZHkuX25vQXJyb3cgPSB0aGlzLm5vQXJyb3c7XG4gICAgICAgIGJvZHkuX2ZvY3VzQXV0b0NhcHR1cmUgPSB0aGlzLmZvY3VzQXV0b0NhcHR1cmU7XG4gICAgICAgIGJvZHkuX2Rpc2FibGVTY3JvbGxiYXIgPSB0aGlzLmRpc2FibGVTY3JvbGxiYXI7XG4gICAgICAgIGJvZHkuX3RhYmJhYmxlU2Nyb2xsYmFyID0gdGhpcy50YWJiYWJsZVNjcm9sbGJhcjtcbiAgICAgICAgYm9keS5fdGVtcGxhdGVUb0Rpc3BsYXkgPSB0aGlzLnRlbXBsYXRlQ29udGVudCE7XG4gICAgICAgIGJvZHkuX2Nsb3NlT25Fc2NhcGVLZXkgPSB0aGlzLmNsb3NlT25Fc2NhcGVLZXk7XG4gICAgICAgIGJvZHkuX2JvZHlSb2xlID0gdGhpcy5fYm9keVJvbGU7XG4gICAgICAgIGJvZHkuX2JvZHlJZCA9IHRoaXMuX2JvZHlJZDtcbiAgICAgICAgYm9keS5fcmVzaXphYmxlID0gdGhpcy5yZXNpemFibGU7XG4gICAgICAgIGJvZHkuX3NldEJvZHlDb21wb25lbnRDbGFzc2VzKHRoaXMuYWRkaXRpb25hbEJvZHlDb21wb25lbnRDbGFzc2VzKTtcbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VHJpZ2dlcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmlnZ2VyRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UG9wb3ZlckJvZHkoKTogUG9wb3ZlckJvZHlDb21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGVEYXRhPy5wb3BvdmVyQm9keSB8fCB0aGlzLl9wb3BvdmVyQm9keTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9nZXRQb3BvdmVyQm9keSgpKSB7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudChmb2N1c0xhc3RFbGVtZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoZm9jdXNMYXN0RWxlbWVudCAmJiB0aGlzLmZvY3VzQXV0b0NhcHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50ID0gPEhUTUxFbGVtZW50PmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQm9keSgpPy5fZm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c0xhc3RBY3RpdmVFbGVtZW50QmVmb3JlT3Blbihmb2N1c0xhc3RFbGVtZW50ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoZm9jdXNMYXN0RWxlbWVudCAmJiB0aGlzLmZvY3VzQXV0b0NhcHR1cmUgJiYgdGhpcy5fbGFzdEFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,29 +1,54 @@
1
1
  import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { ChangeDetectionStrategy, Component, ContentChildren, HostListener, Input, QueryList, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, HostListener, Input, QueryList, ViewEncapsulation, effect, signal } from '@angular/core';
3
3
  import { ListComponent, ListNavigationItemComponent } from '@fundamental-ngx/core/list';
4
4
  import { Subject, delay, map, merge, startWith, takeUntil } from 'rxjs';
5
5
  import { VerticalNavigationMainNavigationComponent } from './vertical-navigation-main-navigation.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export class VerticalNavigationComponent {
8
+ /** Whether or not this component is to be shown in 'condensed' mode. */
9
+ set condensed(value) {
10
+ this._condensed.set(value);
11
+ }
12
+ get condensed() {
13
+ return this._condensed();
14
+ }
15
+ /** @hidden
16
+ * Querylist of list-items in main navigation.
17
+ */
18
+ set _mainItems(items) {
19
+ this._mainNavItems.set(items?.toArray() ?? []);
20
+ }
21
+ /** @hidden */
8
22
  constructor() {
9
- /** Whether or not this component is to be shown in 'condensed' mode. */
10
- this.condensed = false;
11
23
  /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */
12
24
  this._onDestroy$ = new Subject();
13
25
  /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */
14
26
  this._onRefresh$ = new Subject();
27
+ /** @hidden */
28
+ this._condensed = signal(false);
29
+ /** @hidden */
30
+ this._contentInited = signal(false);
31
+ /** @hidden */
32
+ this._mainNavItems = signal([]);
33
+ effect(() => {
34
+ if (!this._contentInited()) {
35
+ return;
36
+ }
37
+ const isCondensed = this._condensed();
38
+ this._mainNavItems().forEach((item) => {
39
+ item._condensed.set(isCondensed);
40
+ });
41
+ }, {
42
+ allowSignalWrites: true
43
+ });
15
44
  }
16
45
  /** @hidden */
17
46
  ngAfterContentInit() {
18
- if (this.condensed) {
19
- this._mainNavigationItems.forEach((navItem) => {
20
- navItem._condensed = true;
21
- });
22
- }
47
+ this._contentInited.set(true);
23
48
  this._keyManager?.destroy();
24
49
  this._keyManager = new FocusKeyManager(this._navigationItems)
25
50
  .withHomeAndEnd()
26
- .skipPredicate((item) => !item._isItemVisible || (item._condensed && item.expanded));
51
+ .skipPredicate((item) => !item._isItemVisible || (item._condensed() && item.expanded));
27
52
  this._listenOnQueryChange();
28
53
  }
29
54
  /** @hidden */
@@ -68,21 +93,21 @@ export class VerticalNavigationComponent {
68
93
  event.stopPropagation();
69
94
  }
70
95
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: VerticalNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: VerticalNavigationComponent, isStandalone: true, selector: "fd-vertical-navigation", inputs: { condensed: "condensed" }, host: { listeners: { "keydown": "keyDownHandler($event)" } }, queries: [{ propertyName: "_navigationItems", predicate: ListNavigationItemComponent, descendants: true }, { propertyName: "_mainNavigationItems", predicate: ListNavigationItemComponent }], ngImport: i0, template: "<div class=\"fd-vertical-nav\" [class.fd-vertical-nav--condensed]=\"condensed\">\n <fd-vertical-navigation-main-navigation>\n <ul fd-list role=\"tree\">\n <ng-content></ng-content>\n </ul>\n </fd-vertical-navigation-main-navigation>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-vertical-nav{-webkit-box-sizing:border-box;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-shadow:var(--sapContent_Shadow0);background-color:var(--sapList_AlternatingBackground);border:0;box-shadow:var(--sapContent_Shadow0);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0;text-shadow:var(--fdVerticalNav_Text_Shadow);width:15rem}.fd-vertical-nav:after,.fd-vertical-nav:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after,.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after{background-color:var(--sapSelectedColor);border-radius:var(--sapField_BorderCornerRadius);color:var(--sapSelectedColor);content:\"\";display:inline-block;height:var(--fdVerticalNav_Item_Indicator_Height);margin-right:var(--fdVerticalNavigation_Indicator_Spacing);position:absolute;right:0;top:var(--fdVerticalNav_Item_Indicator_Top);width:.1875rem}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator[dir=rtl]:after,[dir=rtl] .fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after{left:0;margin-left:var(--fdVerticalNavigation_Indicator_Spacing);margin-right:0;right:unset}.fd-vertical-nav .fd-list__navigation-item{-webkit-box-sizing:border-box;background:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0 1rem 0 .5rem;position:relative}.fd-vertical-nav .fd-list__navigation-item:after,.fd-vertical-nav .fd-list__navigation-item:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item.is-focus,.fd-vertical-nav .fd-list__navigation-item:focus{outline-color:var(--sapContent_FocusColor);outline-offset:-.1875rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-vertical-nav .fd-list__navigation-item[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item{padding-left:1rem;padding-right:.5rem}.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item.is-focus,.fd-vertical-nav .fd-list__navigation-item:focus{outline-offset:var(--fdVerticalNav_Item_Focus_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated.is-focus,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated:focus{outline-offset:var(--fdVerticalNav_Item_Indicated_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item .fd-list{display:none}.fd-vertical-nav .fd-list__navigation-item--expandable{margin:var(--fdVerticalNav_Item_Expandable_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded{-webkit-box-shadow:var(--fdVerticalNav_Item_Expanded_Box_Shadow);border-radius:var(--fdVerticalNav_Item_Expanded_Border_Radius);box-shadow:var(--fdVerticalNav_Item_Expanded_Box_Shadow);height:100%;overflow:hidden;padding-left:var(--fdVerticalNav_Item_Expanded_Padding_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded,.fd-vertical-nav .fd-list__navigation-item.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded{margin-left:var(--fdVerticalNav_Item_Expanded_Margin);margin-right:var(--fdVerticalNav_Item_Expanded_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded{padding-left:0;padding-right:var(--fdVerticalNav_Item_Expanded_Padding_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded.is-hover .fd-list,.fd-vertical-nav .fd-list__navigation-item.is-expanded:hover .fd-list{background-color:var(--sapList_AlternatingBackground)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item{border-bottom:none;width:100%}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdVerticalNav_Item_Child_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:2.75rem;margin:0;margin-left:var(--fdVerticalNav_Item_Text_No_Icon_Margin);padding:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text:after,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:0;margin-right:var(--fdVerticalNav_Item_Text_No_Icon_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text{padding-left:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text{padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon{padding-right:.5rem}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon{padding-left:.5rem;padding-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list{display:block;margin-left:var(--fdVerticalNav_Expanded_Item_Margin_Left);margin-right:-1rem;width:auto}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list{margin-left:0;margin-right:var(--fdVerticalNav_Expanded_Item_Margin_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after{margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded>.fd-list__navigation-item-indicator:after{display:none}.fd-vertical-nav .fd-list__navigation-item .fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item--condensed{padding-left:0;padding-right:0;position:relative;width:3.25rem}.fd-vertical-nav .fd-list__navigation-item--condensed[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed{padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-popover--first-level,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-popover--second-level{background:var(--sapList_AlternatingBackground);display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-text{display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{height:2.75rem;line-height:2.75rem;margin-left:.5rem;margin-right:.5rem}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:.5rem;margin-right:.5rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded{height:2.75rem;margin-left:0;margin-right:0;overflow:visible;visibility:hidden}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item[dir=rtl],.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded,[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:0;padding-left:.875rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:.5rem;margin-right:0;padding-right:.875rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{display:block;overflow:hidden}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list{border-top-left-radius:0;border-top-right-radius:0;display:block;margin:0 auto;width:100%}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text{margin-left:0;padding-left:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text[dir=rtl],.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text,[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level{border-bottom-right-radius:0;height:100%;left:.325rem;top:0;width:14.325rem;z-index:3}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level{border-bottom-left-radius:0;border-bottom-right-radius:var(--sapElement_BorderCornerRadius);left:unset;right:.325rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{border-top-left-radius:0;border-top-right-radius:0;left:3.25rem;width:11.4rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{left:auto;right:3.25rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:1rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:0;margin-right:1rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after{display:inline-block;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-text{display:inline}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-indicator:after{display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow{width:100%}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow.is-focus,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:focus{z-index:5}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow.is-focus:after,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:focus:after{border-radius:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before{border-color:transparent var(--sapContent_NonInteractiveIconColor) transparent transparent;border-style:solid;border-width:.25rem .25rem 0 0;bottom:0;content:\"\";display:inline-block;margin-bottom:.5625rem;margin-right:.75rem;min-height:0;min-width:0;position:absolute;right:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before{left:0;margin-left:.75rem;margin-right:0;right:unset}.fd-vertical-nav .fd-list__navigation-item-icon{color:var(--fdVerticalNav_Icon_Color);font-family:SAP-icons;font-size:1rem;height:2.75rem;line-height:2.75rem;text-align:center;vertical-align:top;width:2.25rem}.fd-vertical-nav .fd-list__navigation-item-text{color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontLargeSize);line-height:2.75rem;max-width:9rem;overflow:hidden;padding-left:.25rem;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.fd-vertical-nav .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-text{padding-left:0;padding-right:.25rem}.fd-vertical-nav .fd-list__navigation-item-arrow{-webkit-box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;appearance:none;background-color:transparent;background-image:none;border:0;border-radius:var(--sapButton_BorderCornerRadius);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_NonInteractiveIconColor);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-family:SAP-icons;font-size:var(--sapFontSize);font-size:1rem;font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);line-height:2.75rem;margin:0;outline:0;padding:0;position:absolute;right:0;text-decoration:none;user-select:none;vertical-align:middle;white-space:nowrap;width:2.75rem}.fd-vertical-nav .fd-list__navigation-item-arrow:after,.fd-vertical-nav .fd-list__navigation-item-arrow:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item-arrow::-moz-focus-inner{border:0}.fd-vertical-nav .fd-list__navigation-item-arrow[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-arrow{-webkit-transform:scaleX(-1);left:0;right:auto;transform:scaleX(-1)}.fd-vertical-nav .fd-list__navigation-item-arrow.is-focus,.fd-vertical-nav .fd-list__navigation-item-arrow:focus{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:var(--fdVerticalNav_Item_Indicated_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item--condensed.is-hover,.fd-vertical-nav .fd-list__navigation-item--condensed:hover,.fd-vertical-nav .fd-list__navigation-item.is-hover,.fd-vertical-nav .fd-list__navigation-item:hover{background:var(--sapList_Hover_Background)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item--condensed:hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item:hover .fd-list__navigation-item-icon{color:var(--sapList_TextColor)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true],.fd-vertical-nav .fd-list__navigation-item.is-pressed,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true]{background:var(--sapList_Active_Background);color:var(--sapContent_ContrastTextColor)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true] .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true] .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-pressed .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.is-pressed .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true] .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true] .fd-list__navigation-item-icon{color:var(--sapContent_ContrastIconColor)}.fd-vertical-nav .fd-list__navigation-item--condensed:not(:last-child),.fd-vertical-nav .fd-list__navigation-item:not(:last-child){border-bottom:var(--fdVerticalNav_Item_Border_Top_Bottom)}.fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text{margin-left:var(--fdVerticalNav_Item_Text_Spacing)}.fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text{margin-left:0;margin-right:var(--fdVerticalNav_Item_Text_Spacing)}.fd-vertical-nav--overflow{overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-vertical-nav--overflow.is-focus,.fd-vertical-nav--overflow:focus{outline:none;z-index:5}.fd-vertical-nav--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-vertical-nav--overflow::-webkit-scrollbar-corner,.fd-vertical-nav--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-vertical-nav--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-vertical-nav--overflow::-webkit-scrollbar-thumb:active,.fd-vertical-nav--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-vertical-nav--condensed{width:3.25rem}.fd-vertical-nav--condensed .fd-vertical-nav__utility-section .fd-list__navigation-item-text{display:none}.fd-vertical-nav--condensed .fd-vertical-nav__utility-section:before{width:calc(100% - 1rem)}.fd-vertical-nav__main-navigation .fd-list__navigation-item--condensed:first-child,.fd-vertical-nav__main-navigation .fd-list__navigation-item:first-child{border-top:var(--fdVerticalNav_Item_Border_Top_Bottom)}.fd-vertical-nav__main-navigation,.fd-vertical-nav__utility-section{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-vertical-nav__main-navigation:after,.fd-vertical-nav__main-navigation:before,.fd-vertical-nav__utility-section:after,.fd-vertical-nav__utility-section:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav__utility-section{margin-top:auto}.fd-vertical-nav__utility-section:before{background-color:var(--sapAccentColor6);content:\" \";display:block;height:.0625rem;margin:.25rem auto;width:calc(100% - 2rem)}.fd-vertical-nav .fd-vertical-nav__group-header{background:var(--sapList_AlternatingBackground)}.fd-vertical-nav .fd-popover__body{--fdPopover_Offset: 100%;max-width:unset;max-height:unset}.fd-vertical-nav .fd-popover__body.fd-list__navigation-item-popover--first-level{z-index:1001}.fd-vertical-nav .fd-list__navigation-item:focus{outline:none}.fd-vertical-nav .fd-list__navigation-item:focus:before{content:\"\";display:block;position:absolute;outline-offset:var(--fdVerticalNav_Item_Focus_Outline_Offset);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);top:0;left:0;right:0;height:2.75rem}\n"], dependencies: [{ kind: "component", type: VerticalNavigationMainNavigationComponent, selector: "fd-vertical-navigation-main-navigation" }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: VerticalNavigationComponent, isStandalone: true, selector: "fd-vertical-navigation", inputs: { condensed: "condensed" }, host: { listeners: { "keydown": "keyDownHandler($event)" } }, queries: [{ propertyName: "_navigationItems", predicate: ListNavigationItemComponent, descendants: true }, { propertyName: "_mainItems", predicate: ListNavigationItemComponent }], ngImport: i0, template: "<div class=\"fd-vertical-nav\" [class.fd-vertical-nav--condensed]=\"condensed\">\n <fd-vertical-navigation-main-navigation>\n <ul fd-list role=\"tree\">\n <ng-content></ng-content>\n </ul>\n </fd-vertical-navigation-main-navigation>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-vertical-nav{-webkit-box-sizing:border-box;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-shadow:var(--sapContent_Shadow0);background-color:var(--sapList_AlternatingBackground);border:0;box-shadow:var(--sapContent_Shadow0);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0;text-shadow:var(--fdVerticalNav_Text_Shadow);width:15rem}.fd-vertical-nav:after,.fd-vertical-nav:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after,.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after{background-color:var(--sapSelectedColor);border-radius:var(--sapField_BorderCornerRadius);color:var(--sapSelectedColor);content:\"\";display:inline-block;height:var(--fdVerticalNav_Item_Indicator_Height);margin-right:var(--fdVerticalNavigation_Indicator_Spacing);position:absolute;right:0;top:var(--fdVerticalNav_Item_Indicator_Top);width:.1875rem}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator[dir=rtl]:after,[dir=rtl] .fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after{left:0;margin-left:var(--fdVerticalNavigation_Indicator_Spacing);margin-right:0;right:unset}.fd-vertical-nav .fd-list__navigation-item{-webkit-box-sizing:border-box;background:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0 1rem 0 .5rem;position:relative}.fd-vertical-nav .fd-list__navigation-item:after,.fd-vertical-nav .fd-list__navigation-item:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item.is-focus,.fd-vertical-nav .fd-list__navigation-item:focus{outline-color:var(--sapContent_FocusColor);outline-offset:-.1875rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-vertical-nav .fd-list__navigation-item[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item{padding-left:1rem;padding-right:.5rem}.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item.is-focus,.fd-vertical-nav .fd-list__navigation-item:focus{outline-offset:var(--fdVerticalNav_Item_Focus_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated.is-focus,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated:focus{outline-offset:var(--fdVerticalNav_Item_Indicated_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item .fd-list{display:none}.fd-vertical-nav .fd-list__navigation-item--expandable{margin:var(--fdVerticalNav_Item_Expandable_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded{-webkit-box-shadow:var(--fdVerticalNav_Item_Expanded_Box_Shadow);border-radius:var(--fdVerticalNav_Item_Expanded_Border_Radius);box-shadow:var(--fdVerticalNav_Item_Expanded_Box_Shadow);height:100%;overflow:hidden;padding-left:var(--fdVerticalNav_Item_Expanded_Padding_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded,.fd-vertical-nav .fd-list__navigation-item.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded{margin-left:var(--fdVerticalNav_Item_Expanded_Margin);margin-right:var(--fdVerticalNav_Item_Expanded_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded{padding-left:0;padding-right:var(--fdVerticalNav_Item_Expanded_Padding_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded.is-hover .fd-list,.fd-vertical-nav .fd-list__navigation-item.is-expanded:hover .fd-list{background-color:var(--sapList_AlternatingBackground)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item{border-bottom:none;width:100%}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdVerticalNav_Item_Child_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:2.75rem;margin:0;margin-left:var(--fdVerticalNav_Item_Text_No_Icon_Margin);padding:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text:after,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:0;margin-right:var(--fdVerticalNav_Item_Text_No_Icon_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text{padding-left:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text{padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon{padding-right:.5rem}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon{padding-left:.5rem;padding-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list{display:block;margin-left:var(--fdVerticalNav_Expanded_Item_Margin_Left);margin-right:-1rem;width:auto}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list{margin-left:0;margin-right:var(--fdVerticalNav_Expanded_Item_Margin_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after{margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded>.fd-list__navigation-item-indicator:after{display:none}.fd-vertical-nav .fd-list__navigation-item .fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item--condensed{padding-left:0;padding-right:0;position:relative;width:3.25rem}.fd-vertical-nav .fd-list__navigation-item--condensed[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed{padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-popover--first-level,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-popover--second-level{background:var(--sapList_AlternatingBackground);display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-text{display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{height:2.75rem;line-height:2.75rem;margin-left:.5rem;margin-right:.5rem}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:.5rem;margin-right:.5rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded{height:2.75rem;margin-left:0;margin-right:0;overflow:visible;visibility:hidden}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item[dir=rtl],.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded,[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:0;padding-left:.875rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:.5rem;margin-right:0;padding-right:.875rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{display:block;overflow:hidden}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list{border-top-left-radius:0;border-top-right-radius:0;display:block;margin:0 auto;width:100%}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text{margin-left:0;padding-left:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text[dir=rtl],.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text,[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level{border-bottom-right-radius:0;height:100%;left:.325rem;top:0;width:14.325rem;z-index:3}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level{border-bottom-left-radius:0;border-bottom-right-radius:var(--sapElement_BorderCornerRadius);left:unset;right:.325rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{border-top-left-radius:0;border-top-right-radius:0;left:3.25rem;width:11.4rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{left:auto;right:3.25rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:1rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:0;margin-right:1rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after{display:inline-block;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-text{display:inline}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-indicator:after{display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow{width:100%}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow.is-focus,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:focus{z-index:5}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow.is-focus:after,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:focus:after{border-radius:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before{border-color:transparent var(--sapContent_NonInteractiveIconColor) transparent transparent;border-style:solid;border-width:.25rem .25rem 0 0;bottom:0;content:\"\";display:inline-block;margin-bottom:.5625rem;margin-right:.75rem;min-height:0;min-width:0;position:absolute;right:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before{left:0;margin-left:.75rem;margin-right:0;right:unset}.fd-vertical-nav .fd-list__navigation-item-icon{color:var(--fdVerticalNav_Icon_Color);font-family:SAP-icons;font-size:1rem;height:2.75rem;line-height:2.75rem;text-align:center;vertical-align:top;width:2.25rem}.fd-vertical-nav .fd-list__navigation-item-text{color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontLargeSize);line-height:2.75rem;max-width:9rem;overflow:hidden;padding-left:.25rem;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.fd-vertical-nav .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-text{padding-left:0;padding-right:.25rem}.fd-vertical-nav .fd-list__navigation-item-arrow{-webkit-box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;appearance:none;background-color:transparent;background-image:none;border:0;border-radius:var(--sapButton_BorderCornerRadius);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_NonInteractiveIconColor);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-family:SAP-icons;font-size:var(--sapFontSize);font-size:1rem;font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);line-height:2.75rem;margin:0;outline:0;padding:0;position:absolute;right:0;text-decoration:none;user-select:none;vertical-align:middle;white-space:nowrap;width:2.75rem}.fd-vertical-nav .fd-list__navigation-item-arrow:after,.fd-vertical-nav .fd-list__navigation-item-arrow:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item-arrow::-moz-focus-inner{border:0}.fd-vertical-nav .fd-list__navigation-item-arrow[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-arrow{-webkit-transform:scaleX(-1);left:0;right:auto;transform:scaleX(-1)}.fd-vertical-nav .fd-list__navigation-item-arrow.is-focus,.fd-vertical-nav .fd-list__navigation-item-arrow:focus{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:var(--fdVerticalNav_Item_Indicated_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item--condensed.is-hover,.fd-vertical-nav .fd-list__navigation-item--condensed:hover,.fd-vertical-nav .fd-list__navigation-item.is-hover,.fd-vertical-nav .fd-list__navigation-item:hover{background:var(--sapList_Hover_Background)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item--condensed:hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item:hover .fd-list__navigation-item-icon{color:var(--sapList_TextColor)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true],.fd-vertical-nav .fd-list__navigation-item.is-pressed,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true]{background:var(--sapList_Active_Background);color:var(--sapContent_ContrastTextColor)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true] .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true] .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-pressed .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.is-pressed .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true] .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true] .fd-list__navigation-item-icon{color:var(--sapContent_ContrastIconColor)}.fd-vertical-nav .fd-list__navigation-item--condensed:not(:last-child),.fd-vertical-nav .fd-list__navigation-item:not(:last-child){border-bottom:var(--fdVerticalNav_Item_Border_Top_Bottom)}.fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text{margin-left:var(--fdVerticalNav_Item_Text_Spacing)}.fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text{margin-left:0;margin-right:var(--fdVerticalNav_Item_Text_Spacing)}.fd-vertical-nav--overflow{overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-vertical-nav--overflow.is-focus,.fd-vertical-nav--overflow:focus{outline:none;z-index:5}.fd-vertical-nav--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-vertical-nav--overflow::-webkit-scrollbar-corner,.fd-vertical-nav--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-vertical-nav--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-vertical-nav--overflow::-webkit-scrollbar-thumb:active,.fd-vertical-nav--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-vertical-nav--condensed{width:3.25rem}.fd-vertical-nav--condensed .fd-vertical-nav__utility-section .fd-list__navigation-item-text{display:none}.fd-vertical-nav--condensed .fd-vertical-nav__utility-section:before{width:calc(100% - 1rem)}.fd-vertical-nav__main-navigation .fd-list__navigation-item--condensed:first-child,.fd-vertical-nav__main-navigation .fd-list__navigation-item:first-child{border-top:var(--fdVerticalNav_Item_Border_Top_Bottom)}.fd-vertical-nav__main-navigation,.fd-vertical-nav__utility-section{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-vertical-nav__main-navigation:after,.fd-vertical-nav__main-navigation:before,.fd-vertical-nav__utility-section:after,.fd-vertical-nav__utility-section:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav__utility-section{margin-top:auto}.fd-vertical-nav__utility-section:before{background-color:var(--sapAccentColor6);content:\" \";display:block;height:.0625rem;margin:.25rem auto;width:calc(100% - 2rem)}.fd-vertical-nav .fd-vertical-nav__group-header{background:var(--sapList_AlternatingBackground)}.fd-vertical-nav .fd-popover__body{--fdPopover_Offset: 100%;max-width:unset;max-height:unset}.fd-vertical-nav .fd-popover__body.fd-list__navigation-item-popover--first-level{z-index:1001}.fd-vertical-nav .fd-list__navigation-item:focus{outline:none}.fd-vertical-nav .fd-list__navigation-item:focus:before{content:\"\";display:block;position:absolute;outline-offset:var(--fdVerticalNav_Item_Focus_Outline_Offset);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);top:0;left:0;right:0;height:2.75rem}\n"], dependencies: [{ kind: "component", type: VerticalNavigationMainNavigationComponent, selector: "fd-vertical-navigation-main-navigation" }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
72
97
  }
73
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: VerticalNavigationComponent, decorators: [{
74
99
  type: Component,
75
100
  args: [{ selector: 'fd-vertical-navigation', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [VerticalNavigationMainNavigationComponent, ListComponent], template: "<div class=\"fd-vertical-nav\" [class.fd-vertical-nav--condensed]=\"condensed\">\n <fd-vertical-navigation-main-navigation>\n <ul fd-list role=\"tree\">\n <ng-content></ng-content>\n </ul>\n </fd-vertical-navigation-main-navigation>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-vertical-nav{-webkit-box-sizing:border-box;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-shadow:var(--sapContent_Shadow0);background-color:var(--sapList_AlternatingBackground);border:0;box-shadow:var(--sapContent_Shadow0);box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:space-between;line-height:var(--sapContent_LineHeight);margin:0;padding:0;text-shadow:var(--fdVerticalNav_Text_Shadow);width:15rem}.fd-vertical-nav:after,.fd-vertical-nav:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after,.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after{background-color:var(--sapSelectedColor);border-radius:var(--sapField_BorderCornerRadius);color:var(--sapSelectedColor);content:\"\";display:inline-block;height:var(--fdVerticalNav_Item_Indicator_Height);margin-right:var(--fdVerticalNavigation_Indicator_Spacing);position:absolute;right:0;top:var(--fdVerticalNav_Item_Indicator_Top);width:.1875rem}.fd-vertical-nav .fd-list .fd-list__navigation-item-indicator[dir=rtl]:after,[dir=rtl] .fd-vertical-nav .fd-list .fd-list__navigation-item-indicator:after{left:0;margin-left:var(--fdVerticalNavigation_Indicator_Spacing);margin-right:0;right:unset}.fd-vertical-nav .fd-list__navigation-item{-webkit-box-sizing:border-box;background:transparent;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0 1rem 0 .5rem;position:relative}.fd-vertical-nav .fd-list__navigation-item:after,.fd-vertical-nav .fd-list__navigation-item:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item.is-focus,.fd-vertical-nav .fd-list__navigation-item:focus{outline-color:var(--sapContent_FocusColor);outline-offset:-.1875rem;outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth)}.fd-vertical-nav .fd-list__navigation-item[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item{padding-left:1rem;padding-right:.5rem}.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item.is-focus,.fd-vertical-nav .fd-list__navigation-item:focus{outline-offset:var(--fdVerticalNav_Item_Focus_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated.is-focus,.fd-vertical-nav .fd-list__navigation-item.fd-list__navigation-item--indicated:focus{outline-offset:var(--fdVerticalNav_Item_Indicated_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item .fd-list{display:none}.fd-vertical-nav .fd-list__navigation-item--expandable{margin:var(--fdVerticalNav_Item_Expandable_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded{-webkit-box-shadow:var(--fdVerticalNav_Item_Expanded_Box_Shadow);border-radius:var(--fdVerticalNav_Item_Expanded_Border_Radius);box-shadow:var(--fdVerticalNav_Item_Expanded_Box_Shadow);height:100%;overflow:hidden;padding-left:var(--fdVerticalNav_Item_Expanded_Padding_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded,.fd-vertical-nav .fd-list__navigation-item.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded{margin-left:var(--fdVerticalNav_Item_Expanded_Margin);margin-right:var(--fdVerticalNav_Item_Expanded_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded{padding-left:0;padding-right:var(--fdVerticalNav_Item_Expanded_Padding_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded.is-hover .fd-list,.fd-vertical-nav .fd-list__navigation-item.is-expanded:hover .fd-list{background-color:var(--sapList_AlternatingBackground)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item{border-bottom:none;width:100%}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item.fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdVerticalNav_Item_Child_Text_Color);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:2.75rem;margin:0;margin-left:var(--fdVerticalNav_Item_Text_No_Icon_Margin);padding:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text:after,.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:0;margin-right:var(--fdVerticalNav_Item_Text_No_Icon_Margin)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text{padding-left:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-text{padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon{padding-right:.5rem}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-icon{padding-left:.5rem;padding-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list{display:block;margin-left:var(--fdVerticalNav_Expanded_Item_Margin_Left);margin-right:-1rem;width:auto}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list{margin-left:0;margin-right:var(--fdVerticalNav_Expanded_Item_Margin_Left)}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after{margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item.is-expanded .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item.is-expanded>.fd-list__navigation-item-indicator:after{display:none}.fd-vertical-nav .fd-list__navigation-item .fd-list__navigation-item--indicated .fd-list__navigation-item-text{color:var(--sapSelectedColor)}.fd-vertical-nav .fd-list__navigation-item--condensed{padding-left:0;padding-right:0;position:relative;width:3.25rem}.fd-vertical-nav .fd-list__navigation-item--condensed[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed{padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-popover--first-level,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-popover--second-level{background:var(--sapList_AlternatingBackground);display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-text{display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{height:2.75rem;line-height:2.75rem;margin-left:.5rem;margin-right:.5rem}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:.5rem;margin-right:.5rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded{height:2.75rem;margin-left:0;margin-right:0;overflow:visible;visibility:hidden}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item[dir=rtl],.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded,[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:0;padding-left:.875rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item--condensed .fd-list__navigation-item-icon{margin-left:.5rem;margin-right:0;padding-right:.875rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{display:block;overflow:hidden}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list{border-top-left-radius:0;border-top-right-radius:0;display:block;margin:0 auto;width:100%}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text{margin-left:0;padding-left:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text[dir=rtl],.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level .fd-list__navigation-item-text,[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item-text{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level{border-bottom-right-radius:0;height:100%;left:.325rem;top:0;width:14.325rem;z-index:3}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--first-level{border-bottom-left-radius:0;border-bottom-right-radius:var(--sapElement_BorderCornerRadius);left:unset;right:.325rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{border-top-left-radius:0;border-top-right-radius:0;left:3.25rem;width:11.4rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level{left:auto;right:3.25rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:1rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-text{margin-left:0;margin-right:1rem}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after{display:inline-block;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-popover--second-level .fd-list__navigation-item .fd-list__navigation-item-indicator:after{margin-left:0;margin-right:0}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-text{display:inline}.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed.is-expanded .fd-list__navigation-item-indicator:after{display:none}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow{width:100%}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow.is-focus,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:focus{z-index:5}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow.is-focus:after,.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:focus:after{border-radius:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before{border-color:transparent var(--sapContent_NonInteractiveIconColor) transparent transparent;border-style:solid;border-width:.25rem .25rem 0 0;bottom:0;content:\"\";display:inline-block;margin-bottom:.5625rem;margin-right:.75rem;min-height:0;min-width:0;position:absolute;right:0}.fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item--condensed .fd-list__navigation-item-arrow:before{left:0;margin-left:.75rem;margin-right:0;right:unset}.fd-vertical-nav .fd-list__navigation-item-icon{color:var(--fdVerticalNav_Icon_Color);font-family:SAP-icons;font-size:1rem;height:2.75rem;line-height:2.75rem;text-align:center;vertical-align:top;width:2.25rem}.fd-vertical-nav .fd-list__navigation-item-text{color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontLargeSize);line-height:2.75rem;max-width:9rem;overflow:hidden;padding-left:.25rem;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.fd-vertical-nav .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-text{padding-left:0;padding-right:.25rem}.fd-vertical-nav .fd-list__navigation-item-arrow{-webkit-box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;appearance:none;background-color:transparent;background-image:none;border:0;border-radius:var(--sapButton_BorderCornerRadius);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_NonInteractiveIconColor);cursor:pointer;display:inline-block;font-family:var(--sapFontFamily);font-family:SAP-icons;font-size:var(--sapFontSize);font-size:1rem;font-weight:400;forced-color-adjust:none;height:2.75rem;line-height:var(--sapContent_LineHeight);line-height:2.75rem;margin:0;outline:0;padding:0;position:absolute;right:0;text-decoration:none;user-select:none;vertical-align:middle;white-space:nowrap;width:2.75rem}.fd-vertical-nav .fd-list__navigation-item-arrow:after,.fd-vertical-nav .fd-list__navigation-item-arrow:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav .fd-list__navigation-item-arrow::-moz-focus-inner{border:0}.fd-vertical-nav .fd-list__navigation-item-arrow[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-arrow{-webkit-transform:scaleX(-1);left:0;right:auto;transform:scaleX(-1)}.fd-vertical-nav .fd-list__navigation-item-arrow.is-focus,.fd-vertical-nav .fd-list__navigation-item-arrow:focus{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:var(--fdVerticalNav_Item_Indicated_Outline_Offset);z-index:5}.fd-vertical-nav .fd-list__navigation-item--condensed.is-hover,.fd-vertical-nav .fd-list__navigation-item--condensed:hover,.fd-vertical-nav .fd-list__navigation-item.is-hover,.fd-vertical-nav .fd-list__navigation-item:hover{background:var(--sapList_Hover_Background)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item--condensed:hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-hover .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item:hover .fd-list__navigation-item-icon{color:var(--sapList_TextColor)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true],.fd-vertical-nav .fd-list__navigation-item.is-pressed,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true]{background:var(--sapList_Active_Background);color:var(--sapContent_ContrastTextColor)}.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed.is-pressed .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true] .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item--condensed[aria-pressed=true] .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item.is-pressed .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item.is-pressed .fd-list__navigation-item-icon,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true] .fd-list__navigation-item-arrow,.fd-vertical-nav .fd-list__navigation-item[aria-pressed=true] .fd-list__navigation-item-icon{color:var(--sapContent_ContrastIconColor)}.fd-vertical-nav .fd-list__navigation-item--condensed:not(:last-child),.fd-vertical-nav .fd-list__navigation-item:not(:last-child){border-bottom:var(--fdVerticalNav_Item_Border_Top_Bottom)}.fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text{margin-left:var(--fdVerticalNav_Item_Text_Spacing)}.fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text[dir=rtl],[dir=rtl] .fd-vertical-nav .fd-list__navigation-item-icon+.fd-list__navigation-item-text+.fd-list__navigation-item-arrow+.fd-list .fd-list__navigation-item-text{margin-left:0;margin-right:var(--fdVerticalNav_Item_Text_Spacing)}.fd-vertical-nav--overflow{overflow-y:scroll;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-vertical-nav--overflow.is-focus,.fd-vertical-nav--overflow:focus{outline:none;z-index:5}.fd-vertical-nav--overflow::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-vertical-nav--overflow::-webkit-scrollbar-corner,.fd-vertical-nav--overflow::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-vertical-nav--overflow::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-vertical-nav--overflow::-webkit-scrollbar-thumb:active,.fd-vertical-nav--overflow::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}.fd-vertical-nav--condensed{width:3.25rem}.fd-vertical-nav--condensed .fd-vertical-nav__utility-section .fd-list__navigation-item-text{display:none}.fd-vertical-nav--condensed .fd-vertical-nav__utility-section:before{width:calc(100% - 1rem)}.fd-vertical-nav__main-navigation .fd-list__navigation-item--condensed:first-child,.fd-vertical-nav__main-navigation .fd-list__navigation-item:first-child{border-top:var(--fdVerticalNav_Item_Border_Top_Bottom)}.fd-vertical-nav__main-navigation,.fd-vertical-nav__utility-section{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-vertical-nav__main-navigation:after,.fd-vertical-nav__main-navigation:before,.fd-vertical-nav__utility-section:after,.fd-vertical-nav__utility-section:before{box-sizing:inherit;font-size:inherit}.fd-vertical-nav__utility-section{margin-top:auto}.fd-vertical-nav__utility-section:before{background-color:var(--sapAccentColor6);content:\" \";display:block;height:.0625rem;margin:.25rem auto;width:calc(100% - 2rem)}.fd-vertical-nav .fd-vertical-nav__group-header{background:var(--sapList_AlternatingBackground)}.fd-vertical-nav .fd-popover__body{--fdPopover_Offset: 100%;max-width:unset;max-height:unset}.fd-vertical-nav .fd-popover__body.fd-list__navigation-item-popover--first-level{z-index:1001}.fd-vertical-nav .fd-list__navigation-item:focus{outline:none}.fd-vertical-nav .fd-list__navigation-item:focus:before{content:\"\";display:block;position:absolute;outline-offset:var(--fdVerticalNav_Item_Focus_Outline_Offset);outline-color:var(--sapContent_FocusColor);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);top:0;left:0;right:0;height:2.75rem}\n"] }]
76
- }], propDecorators: { condensed: [{
101
+ }], ctorParameters: function () { return []; }, propDecorators: { condensed: [{
77
102
  type: Input
78
103
  }], _navigationItems: [{
79
104
  type: ContentChildren,
80
105
  args: [ListNavigationItemComponent, { descendants: true }]
81
- }], _mainNavigationItems: [{
106
+ }], _mainItems: [{
82
107
  type: ContentChildren,
83
108
  args: [ListNavigationItemComponent]
84
109
  }], keyDownHandler: [{
85
110
  type: HostListener,
86
111
  args: ['keydown', ['$event']]
87
112
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi92ZXJ0aWNhbC1uYXZpZ2F0aW9uL3ZlcnRpY2FsLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdmVydGljYWwtbmF2aWdhdGlvbi92ZXJ0aWNhbC1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0saURBQWlELENBQUM7O0FBVzVHLE1BQU0sT0FBTywyQkFBMkI7SUFUeEM7UUFVSSx3RUFBd0U7UUFFeEUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQix1R0FBdUc7UUFDdEYsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRW5ELGlHQUFpRztRQUNoRixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FnRnREO0lBakVHLGNBQWM7SUFDZCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8s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Q3JGLENBQUM7SUFFRCxjQUFjO0lBRWQsY0FBYyxDQUFDLEtBQW9CO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQXhGUSwyQkFBMkI7a0dBQTNCLDJCQUEyQixxTkFZbkIsMkJBQTJCLDBFQU0zQiwyQkFBMkIsNkJDM0NoRCxtUkFPQSw2K3VCRGdCYyx5Q0FBeUMsbUZBQUUsYUFBYTs7MkZBRXpELDJCQUEyQjtrQkFUdkMsU0FBUzsrQkFDSSx3QkFBd0IsaUJBR25CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMseUNBQXlDLEVBQUUsYUFBYSxDQUFDOzhCQUtuRSxTQUFTO3NCQURSLEtBQUs7Z0JBV0UsZ0JBQWdCO3NCQUR2QixlQUFlO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFPM0Qsb0JBQW9CO3NCQUQzQixlQUFlO3VCQUFDLDJCQUEyQjtnQkFtRTVDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3ROYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcbmltcG9ydCB7IFN1YmplY3QsIGRlbGF5LCBtYXAsIG1lcmdlLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmVydGljYWxOYXZpZ2F0aW9uTWFpbk5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3ZlcnRpY2FsLW5hdmlnYXRpb24tbWFpbi1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtdmVydGljYWwtbmF2aWdhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZlcnRpY2FsLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ZlcnRpY2FsLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1ZlcnRpY2FsTmF2aWdhdGlvbk1haW5OYXZpZ2F0aW9uQ29tcG9uZW50LCBMaXN0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBWZXJ0aWNhbE5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGNvbXBvbmVudCBpcyB0byBiZSBzaG93biBpbiAnY29uZGVuc2VkJyBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29uZGVuc2VkID0gZmFsc2U7XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIGNvbXBvbmVudOKAmXMgZGVzdHJ1Y3Rpb24gKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gcXVlcnlMaXN0IGNoYW5nZXMgKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vblJlZnJlc2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihMaXN0TmF2aWdhdGlvbkl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwcml2YXRlIF9uYXZpZ2F0aW9uSXRlbXM6IFF1ZXJ5TGlzdDxMaXN0TmF2aWdhdGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBRdWVyeWxpc3Qgb2YgbGlzdC1pdGVtcyBpbiBtYWluIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihMaXN0TmF2aWdhdGlvbkl0ZW1Db21wb25lbnQpXG4gICAgcHJpdmF0ZSBfbWFpbk5hdmlnYXRpb25JdGVtczogUXVlcnlMaXN0PExpc3ROYXZpZ2F0aW9uSXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2tleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxMaXN0TmF2aWdhdGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbmRlbnNlZCkge1xuICAgICAgICAgICAgdGhpcy5fbWFpbk5hdmlnYXRpb25JdGVtcy5mb3JFYWNoKChuYXZJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgbmF2SXRlbS5fY29uZGVuc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5fbmF2aWdhdGlvbkl0ZW1zKVxuICAgICAgICAgICAgLndpdGhIb21lQW5kRW5kKClcbiAgICAgICAgICAgIC5za2lwUHJlZGljYXRlKChpdGVtKSA9PiAhaXRlbS5faXNJdGVtVmlzaWJsZSB8fCAoaXRlbS5fY29uZGVuc2VkICYmIGl0ZW0uZXhwYW5kZWQpKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25RdWVyeUNoYW5nZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IGZha2UgZm9jdXMgb24gZWxlbWVudCB3aXRoIHBhc3NlZCBpbmRleCAqL1xuICAgIHNldEl0ZW1BY3RpdmUoaW5kZXg6IG51bWJlciwgdXBkYXRlT25seSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh1cGRhdGVPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLmNoYW5nZXMucGlwZShkZWxheSgwKSwgc3RhcnRXaXRoKDApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Pbkl0ZW1zQ2xpY2soKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHVzaW5nIHNldFRpbWVvdXQgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5mb3JFYWNoKChuYXZJdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCAhPT0gMCAmJiAobmF2SXRlbS5fdGFiSW5kZXggPSAtMSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbkl0ZW1zQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIC8qKiBGaW5pc2ggYWxsIHRoZSBzdHJlYW1zLCBmcm9tIGJlZm9yZSAqL1xuICAgICAgICB0aGlzLl9vblJlZnJlc2gkLm5leHQoKTtcblxuICAgICAgICAvKiogTWVyZ2UgcmVmcmVzaC9kZXN0cm95IG9ic2VydmFibGVzICovXG4gICAgICAgIGNvbnN0IGNvbXBsZXRpb24kID0gbWVyZ2UodGhpcy5fb25SZWZyZXNoJCwgdGhpcy5fb25EZXN0cm95JCk7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uQ2hhbmdlc0luZGV4ZXMgPSB0aGlzLl9uYXZpZ2F0aW9uSXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIGl0ZW0uX2NsaWNrZWQkLnBpcGUobWFwKCgpID0+ICh7IGluZGV4LCB1cGRhdGVPbmx5OiBmYWxzZSB9KSkpLFxuICAgICAgICAgICAgICAgIGl0ZW0uX2ZvY3VzZWQkLnBpcGUobWFwKChmb2N1c2VkT24pID0+ICh7IGluZGV4LCB1cGRhdGVPbmx5OiBmb2N1c2VkT24gfSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBtZXJnZSguLi5pbnRlcmFjdGlvbkNoYW5nZXNJbmRleGVzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNvbXBsZXRpb24kKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgaW5kZXgsIHVwZGF0ZU9ubHkgfSkgPT4gdGhpcy5zZXRJdGVtQWN0aXZlKGluZGV4LCB1cGRhdGVPbmx5KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC12ZXJ0aWNhbC1uYXZcIiBbY2xhc3MuZmQtdmVydGljYWwtbmF2LS1jb25kZW5zZWRdPVwiY29uZGVuc2VkXCI+XG4gICAgPGZkLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFpbi1uYXZpZ2F0aW9uPlxuICAgICAgICA8dWwgZmQtbGlzdCByb2xlPVwidHJlZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3VsPlxuICAgIDwvZmQtdmVydGljYWwtbmF2aWdhdGlvbi1tYWluLW5hdmlnYXRpb24+XG48L2Rpdj5cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi92ZXJ0aWNhbC1uYXZpZ2F0aW9uL3ZlcnRpY2FsLW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdmVydGljYWwtbmF2aWdhdGlvbi92ZXJ0aWNhbC1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFXNUcsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyx3RUFBd0U7SUFDeEUsSUFDSSxTQUFTLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQU1EOztPQUVHO0lBQ0gsSUFDWSxVQUFVLENBQUMsS0FBNkM7UUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENB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O2tCQVR2QyxTQUFTOytCQUNJLHdCQUF3QixpQkFHbkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyx5Q0FBeUMsRUFBRSxhQUFhLENBQUM7MEVBSy9ELFNBQVM7c0JBRFosS0FBSztnQkFXVyxnQkFBZ0I7c0JBRGhDLGVBQWU7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQU92RCxVQUFVO3NCQURyQixlQUFlO3VCQUFDLDJCQUEyQjtnQkFxRzVDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBlZmZlY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGlzdENvbXBvbmVudCwgTGlzdE5hdmlnYXRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2xpc3QnO1xuaW1wb3J0IHsgU3ViamVjdCwgZGVsYXksIG1hcCwgbWVyZ2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWZXJ0aWNhbE5hdmlnYXRpb25NYWluTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdmVydGljYWwtbmF2aWdhdGlvbi1tYWluLW5hdmlnYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC12ZXJ0aWNhbC1uYXZpZ2F0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmVydGljYWwtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdmVydGljYWwtbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVmVydGljYWxOYXZpZ2F0aW9uTWFpbk5hdmlnYXRpb25Db21wb25lbnQsIExpc3RDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFZlcnRpY2FsTmF2aWdhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFdoZXRoZXIgb3Igbm90IHRoaXMgY29tcG9uZW50IGlzIHRvIGJlIHNob3duIGluICdjb25kZW5zZWQnIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY29uZGVuc2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NvbmRlbnNlZC5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBjb25kZW5zZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25kZW5zZWQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTGlzdE5hdmlnYXRpb25JdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkl0ZW1zOiBRdWVyeUxpc3Q8TGlzdE5hdmlnYXRpb25JdGVtQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogUXVlcnlsaXN0IG9mIGxpc3QtaXRlbXMgaW4gbWFpbiBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oTGlzdE5hdmlnYXRpb25JdGVtQ29tcG9uZW50KVxuICAgIHByaXZhdGUgc2V0IF9tYWluSXRlbXMoaXRlbXM6IFF1ZXJ5TGlzdDxMaXN0TmF2aWdhdGlvbkl0ZW1Db21wb25lbnQ+KSB7XG4gICAgICAgIHRoaXMuX21haW5OYXZJdGVtcy5zZXQoaXRlbXM/LnRvQXJyYXkoKSA/PyBbXSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8TGlzdE5hdmlnYXRpb25JdGVtQ29tcG9uZW50PjtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBxdWVyeUxpc3QgY2hhbmdlcyAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uUmVmcmVzaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb25kZW5zZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb250ZW50SW5pdGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbWFpbk5hdkl0ZW1zID0gc2lnbmFsPExpc3ROYXZpZ2F0aW9uSXRlbUNvbXBvbmVudFtdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9jb250ZW50SW5pdGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ29uZGVuc2VkID0gdGhpcy5fY29uZGVuc2VkKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9tYWluTmF2SXRlbXMoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uX2NvbmRlbnNlZC5zZXQoaXNDb25kZW5zZWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250ZW50SW5pdGVkLnNldCh0cnVlKTtcblxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMuX25hdmlnYXRpb25JdGVtcylcbiAgICAgICAgICAgIC53aXRoSG9tZUFuZEVuZCgpXG4gICAgICAgICAgICAuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gIWl0ZW0uX2lzSXRlbVZpc2libGUgfHwgKGl0ZW0uX2NvbmRlbnNlZCgpICYmIGl0ZW0uZXhwYW5kZWQpKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25RdWVyeUNoYW5nZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IGZha2UgZm9jdXMgb24gZWxlbWVudCB3aXRoIHBhc3NlZCBpbmRleCAqL1xuICAgIHNldEl0ZW1BY3RpdmUoaW5kZXg6IG51bWJlciwgdXBkYXRlT25seSA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh1cGRhdGVPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oaW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuT25RdWVyeUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLmNoYW5nZXMucGlwZShkZWxheSgwKSwgc3RhcnRXaXRoKDApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Pbkl0ZW1zQ2xpY2soKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHVzaW5nIHNldFRpbWVvdXQgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvclxuICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5mb3JFYWNoKChuYXZJdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCAhPT0gMCAmJiAobmF2SXRlbS5fdGFiSW5kZXggPSAtMSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbkl0ZW1zQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIC8qKiBGaW5pc2ggYWxsIHRoZSBzdHJlYW1zLCBmcm9tIGJlZm9yZSAqL1xuICAgICAgICB0aGlzLl9vblJlZnJlc2gkLm5leHQoKTtcblxuICAgICAgICAvKiogTWVyZ2UgcmVmcmVzaC9kZXN0cm95IG9ic2VydmFibGVzICovXG4gICAgICAgIGNvbnN0IGNvbXBsZXRpb24kID0gbWVyZ2UodGhpcy5fb25SZWZyZXNoJCwgdGhpcy5fb25EZXN0cm95JCk7XG4gICAgICAgIGNvbnN0IGludGVyYWN0aW9uQ2hhbmdlc0luZGV4ZXMgPSB0aGlzLl9uYXZpZ2F0aW9uSXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIGl0ZW0uX2NsaWNrZWQkLnBpcGUobWFwKCgpID0+ICh7IGluZGV4LCB1cGRhdGVPbmx5OiBmYWxzZSB9KSkpLFxuICAgICAgICAgICAgICAgIGl0ZW0uX2ZvY3VzZWQkLnBpcGUobWFwKChmb2N1c2VkT24pID0+ICh7IGluZGV4LCB1cGRhdGVPbmx5OiBmb2N1c2VkT24gfSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICBtZXJnZSguLi5pbnRlcmFjdGlvbkNoYW5nZXNJbmRleGVzKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNvbXBsZXRpb24kKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgaW5kZXgsIHVwZGF0ZU9ubHkgfSkgPT4gdGhpcy5zZXRJdGVtQWN0aXZlKGluZGV4LCB1cGRhdGVPbmx5KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZC12ZXJ0aWNhbC1uYXZcIiBbY2xhc3MuZmQtdmVydGljYWwtbmF2LS1jb25kZW5zZWRdPVwiY29uZGVuc2VkXCI+XG4gICAgPGZkLXZlcnRpY2FsLW5hdmlnYXRpb24tbWFpbi1uYXZpZ2F0aW9uPlxuICAgICAgICA8dWwgZmQtbGlzdCByb2xlPVwidHJlZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3VsPlxuICAgIDwvZmQtdmVydGljYWwtbmF2aWdhdGlvbi1tYWluLW5hdmlnYXRpb24+XG48L2Rpdj5cbiJdfQ==