igniteui-angular 17.1.0-rc.0 → 17.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/badge/badge.component.mjs +2 -2
- package/esm2022/lib/banner/banner.component.mjs +1 -1
- package/esm2022/lib/calendar/calendar-base.mjs +3 -3
- package/esm2022/lib/calendar/calendar.component.mjs +22 -22
- package/esm2022/lib/calendar/calendar.mjs +9 -23
- package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +2 -3
- package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-base.mjs +2 -7
- package/esm2022/lib/carousel/carousel.component.mjs +3 -7
- package/esm2022/lib/carousel/enums.mjs +11 -0
- package/esm2022/lib/carousel/public_api.mjs +3 -2
- package/esm2022/lib/carousel/slide.component.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.component.mjs +2 -2
- package/esm2022/lib/chips/chip.component.mjs +2 -2
- package/esm2022/lib/combo/combo.common.mjs +7 -15
- package/esm2022/lib/core/selection.mjs +8 -1
- package/esm2022/lib/data-operations/data-util.mjs +2 -2
- package/esm2022/lib/date-common/types.mjs +3 -3
- package/esm2022/lib/directives/button/button-base.mjs +2 -2
- package/esm2022/lib/directives/button/button.directive.mjs +2 -2
- package/esm2022/lib/directives/divider/divider.directive.mjs +2 -2
- package/esm2022/lib/directives/mask/mask.directive.mjs +1 -1
- package/esm2022/lib/drop-down/drop-down.common.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down.component.mjs +3 -3
- package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +2 -2
- package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +2 -2
- package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
- package/esm2022/lib/grids/grid-base.directive.mjs +2 -2
- package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +39 -10
- package/esm2022/lib/input-group/input-group.component.mjs +2 -2
- package/esm2022/lib/input-group/inputGroupType.mjs +3 -3
- package/esm2022/lib/progressbar/progressbar.component.mjs +3 -3
- package/esm2022/lib/select/select.component.mjs +1 -9
- package/esm2022/lib/services/direction/directionality.mjs +2 -2
- package/esm2022/lib/splitter/splitter.component.mjs +3 -3
- package/esm2022/lib/stepper/step/step.component.mjs +3 -2
- package/esm2022/lib/stepper/stepper.common.mjs +3 -3
- package/esm2022/lib/stepper/stepper.component.mjs +1 -1
- package/esm2022/lib/tabs/tabs/tabs.component.mjs +11 -18
- package/esm2022/lib/tree/common.mjs +4 -4
- package/fesm2022/igniteui-angular.mjs +136 -136
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/calendar/calendar.d.ts +1 -1
- package/lib/carousel/carousel-base.d.ts +1 -6
- package/lib/carousel/carousel.component.d.ts +2 -6
- package/lib/carousel/enums.d.ts +11 -0
- package/lib/carousel/public_api.d.ts +2 -1
- package/lib/combo/combo.common.d.ts +1 -1
- package/lib/core/selection.d.ts +5 -0
- package/lib/grids/common/grid.interface.d.ts +3 -0
- package/lib/grids/hierarchical-grid/row-island.component.d.ts +25 -5
- package/lib/select/select.component.d.ts +0 -4
- package/lib/splitter/splitter.component.d.ts +1 -1
- package/lib/stepper/stepper.common.d.ts +2 -1
- package/lib/stepper/stepper.component.d.ts +2 -1
- package/package.json +2 -2
|
@@ -325,8 +325,8 @@ export class IgxDropDownComponent extends IgxDropDownBaseDirective {
|
|
|
325
325
|
ngOnDestroy() {
|
|
326
326
|
this.destroy$.next(true);
|
|
327
327
|
this.destroy$.complete();
|
|
328
|
-
this.selection.
|
|
329
|
-
this.selection.
|
|
328
|
+
this.selection.delete(this.id);
|
|
329
|
+
this.selection.delete(`${this.id}-active`);
|
|
330
330
|
}
|
|
331
331
|
/** @hidden @internal */
|
|
332
332
|
calculateScrollPosition(item) {
|
|
@@ -557,4 +557,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
557
557
|
type: ViewChild,
|
|
558
558
|
args: ['scrollContainer', { static: true }]
|
|
559
559
|
}] } });
|
|
560
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFVBQVUsRUFHVixLQUFLLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixNQUFNLEVBQ04sWUFBWSxFQUNaLFFBQVEsRUFDUixNQUFNLEVBRU4sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQXFCLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUl0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FB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ZUFBZTtzQkFEeEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXJDLGtCQUFrQjtzQkFEM0IsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hUb2dnbGVEaXJlY3RpdmUsIFRvZ2dsZVZpZXdFdmVudEFyZ3MgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneERyb3BEb3duQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcC1kb3duLmJhc2UnO1xuaW1wb3J0IHsgRHJvcERvd25BY3Rpb25LZXksIE5hdmlnYXRlIH0gZnJvbSAnLi9kcm9wLWRvd24uY29tbW9uJztcbmltcG9ydCB7IElHWF9EUk9QRE9XTl9CQVNFLCBJRHJvcERvd25CYXNlIH0gZnJvbSAnLi9kcm9wLWRvd24uY29tbW9uJztcbmltcG9ydCB7IElTZWxlY3Rpb25FdmVudEFyZ3MgfSBmcm9tICcuL2Ryb3AtZG93bi5jb21tb24nO1xuaW1wb3J0IHsgSUJhc2VDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneFNlbGVjdGlvbkFQSVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wLWRvd24taXRlbS5iYXNlJztcbmltcG9ydCB7IElneEZvck9mVG9rZW4gfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvci1vZi9mb3Jfb2YuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eVRva2VuLCBJRGlzcGxheURlbnNpdHlPcHRpb25zIH0gZnJvbSAnLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIERyb3BEb3duKiogLVxuICogW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2Ryb3AtZG93bilcbiAqXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIERyb3AgRG93biBkaXNwbGF5cyBhIHNjcm9sbGFibGUgbGlzdCBvZiBpdGVtcyB3aGljaCBtYXkgYmUgdmlzdWFsbHkgZ3JvdXBlZCBhbmRcbiAqIHN1cHBvcnRzIHNlbGVjdGlvbiBvZiBhIHNpbmdsZSBpdGVtLiBDbGlja2luZyBvciB0YXBwaW5nIGFuIGl0ZW0gc2VsZWN0cyBpdCBhbmQgY2xvc2VzIHRoZSBEcm9wIERvd25cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGlneC1kcm9wLWRvd24+XG4gKiAgIDxpZ3gtZHJvcC1kb3duLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiBkaXNhYmxlZD17e2l0ZW0uZGlzYWJsZWR9fSBpc0hlYWRlcj17e2l0ZW0uaGVhZGVyfX0+XG4gKiAgICAge3sgaXRlbS52YWx1ZSB9fVxuICogICA8L2lneC1kcm9wLWRvd24taXRlbT5cbiAqIDwvaWd4LWRyb3AtZG93bj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1kcm9wLWRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wLWRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSUdYX0RST1BET1dOX0JBU0UsIHVzZUV4aXN0aW5nOiBJZ3hEcm9wRG93bkNvbXBvbmVudCB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hUb2dnbGVEaXJlY3RpdmUsIE5nSWZdXG59KVxuZXhwb3J0IGNsYXNzIElneERyb3BEb3duQ29tcG9uZW50IGV4dGVuZHMgSWd4RHJvcERvd25CYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgSURyb3BEb3duQmFzZSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gSWd4RHJvcERvd25JdGVtQ29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHB1YmxpYyBvdmVycmlkZSBjaGlsZHJlbjogUXVlcnlMaXN0PElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBiZWZvcmUgdGhlIGRyb3Bkb3duIGlzIG9wZW5lZFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZHJvcC1kb3duIChvcGVuaW5nKT0naGFuZGxlT3BlbmluZygkZXZlbnQpJz48L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcm9wZG93biBpcyBvcGVuZWRcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRyb3AtZG93biAob3BlbmVkKT0naGFuZGxlT3BlbmVkKCRldmVudCknPjwvaWd4LWRyb3AtZG93bj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxJQmFzZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBkcm9wZG93biBpcyBjbG9zZWRcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRyb3AtZG93biAoY2xvc2luZyk9J2hhbmRsZUNsb3NpbmcoJGV2ZW50KSc+PC9pZ3gtZHJvcC1kb3duPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbG9zaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQmFzZUNhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBhZnRlciB0aGUgZHJvcGRvd24gaXMgY2xvc2VkXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kcm9wLWRvd24gKGNsb3NlZCk9J2hhbmRsZUNsb3NlZCgkZXZlbnQpJz48L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgd2hldGhlciBpdGVtcyB0YWtlIGZvY3VzLiBEaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgICAqIFdoZW4gZW5hYmxlZCwgZHJvcCBkb3duIGl0ZW1zIGdhaW4gdGFiIGluZGV4IGFuZCBhcmUgZm9jdXNlZCB3aGVuIGFjdGl2ZSAtXG4gICAgICogdGhpcyBpbmNsdWRlcyBhY3RpdmF0aW5nIHRoZSBzZWxlY3RlZCBpdGVtIHdoZW4gb3BlbmluZyB0aGUgZHJvcCBkb3duIGFuZCBtb3Zpbmcgd2l0aCBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICAgICAqXG4gICAgICogTm90ZTogS2VlcCB0aGF0IGZvY3VzIHNoaWZ0IGluIG1pbmQgd2hlbiB1c2luZyB0aGUgaWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbiBkaXJlY3RpdmVcbiAgICAgKiBhbmQgZW5zdXJlIGl0J3MgcGxhY2VkIGVpdGhlciBvbiBlYWNoIGZvY3VzYWJsZSBpdGVtIG9yIGEgY29tbW9uIGFuY2VzdG9yIHRvIGFsbG93IGl0IHRvIGhhbmRsZSBrZXlib2FyZCBldmVudHMuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gZ2V0XG4gICAgICogbGV0IGRyb3BEb3duQWxsb3dzSXRlbUZvY3VzID0gdGhpcy5kcm9wZG93bi5hbGxvd0l0ZW1zRm9jdXM7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPCEtLXNldC0tPlxuICAgICAqIDxpZ3gtZHJvcC1kb3duIFthbGxvd0l0ZW1zRm9jdXNdPSd0cnVlJz48L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGFsbG93SXRlbXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0IGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kcm9wLWRvd24gW2xhYmVsbGVkYnldPVwibGFiZWxJZFwiPjwvaWd4LWRyb3AtZG93bj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbGxlZEJ5OiBzdHJpbmc7XG5cbiAgICBAQ29udGVudENoaWxkKElneEZvck9mVG9rZW4pXG4gICAgcHJvdGVjdGVkIHZpcnREaXI6IElneEZvck9mVG9rZW48YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoSWd4VG9nZ2xlRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCB0b2dnbGVEaXJlY3RpdmU6IElneFRvZ2dsZURpcmVjdGl2ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ3Njcm9sbENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIHNjcm9sbENvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBmb2N1c2VkSXRlbSgpOiBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWRJdGVtICYmIHRoaXMuX2ZvY3VzZWRJdGVtLmluZGV4ICE9PSAtMSA/XG4gICAgICAgICAgICAgICAgKHRoaXMuY2hpbGRyZW4uZmluZChlID0+IGUuaW5kZXggPT09IHRoaXMuX2ZvY3VzZWRJdGVtLmluZGV4KSB8fCBudWxsKSA6XG4gICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZEl0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNldCBmb2N1c2VkSXRlbSh2YWx1ZTogSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcihgJHt0aGlzLmlkfS1hY3RpdmVgKTtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb2N1c2VkSXRlbSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy52aXJ0RGlyKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkSXRlbSA9IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXG4gICAgICAgICAgICAgICAgaW5kZXg6IHZhbHVlLmluZGV4XG4gICAgICAgICAgICB9IGFzIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0KGAke3RoaXMuaWR9LWFjdGl2ZWAsIG5ldyBTZXQoW3RoaXMuX2ZvY3VzZWRJdGVtXSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0KHZhbHVlLCB0aGlzLnNlbGVjdGlvbi5nZXQodGhpcy5pZCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcih0aGlzLmlkKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0KHZhbHVlLCB0aGlzLnNlbGVjdGlvbi5nZXQoYCR7dGhpcy5pZH0tYWN0aXZlYCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcihgJHt0aGlzLmlkfS1hY3RpdmVgKTtcbiAgICAgICAgdGhpcy5faWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogSWQgb2YgdGhlIGludGVybmFsIGxpc3Rib3ggb2YgdGhlIGRyb3AgZG93biAqL1xuICAgIHB1YmxpYyBnZXQgbGlzdElkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCArICctbGlzdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGN1cnJlbnRJdGVtID0gdGhpcy5kcm9wZG93bi5zZWxlY3RlZEl0ZW07XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBzZWxlY3RlZEl0ZW0oKTogSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0aW9uLmZpcnN0X2l0ZW0odGhpcy5pZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBpZiB0aGUgZHJvcGRvd24gaXMgY29sbGFwc2VkXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ29sbGFwc2VkID0gdGhpcy5kcm9wZG93bi5jb2xsYXBzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb2xsYXBzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvZ2dsZURpcmVjdGl2ZS5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBzY3JvbGxDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxDb250YWluZXJSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbGxlY3Rpb25MZW5ndGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnREaXIudG90YWxJdGVtQ291bnQgfHwgdGhpcy52aXJ0RGlyLmlneEZvck9mLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJvdGVjdGVkIF9zY3JvbGxQb3NpdGlvbjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBzZWxlY3Rpb246IElneFNlbGVjdGlvbkFQSVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucykge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIsIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBkcm9wZG93blxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZHJvcGRvd24ub3BlbigpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKG92ZXJsYXlTZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncykge1xuICAgICAgICB0aGlzLnRvZ2dsZURpcmVjdGl2ZS5vcGVuKG92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgIHRoaXMudXBkYXRlU2Nyb2xsUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIGRyb3Bkb3duXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5kcm9wZG93bi5jbG9zZSgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShldmVudD86IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudG9nZ2xlRGlyZWN0aXZlLmNsb3NlKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHRoZSBkcm9wZG93blxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZShvdmVybGF5U2V0dGluZ3M/OiBPdmVybGF5U2V0dGluZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2VkIHx8IHRoaXMudG9nZ2xlRGlyZWN0aXZlLmlzQ2xvc2luZykge1xuICAgICAgICAgICAgdGhpcy5vcGVuKG92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3QgYW4gaXRlbSBieSBpbmRleFxuICAgICAqXG4gICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBpdGVtIHRvIHNlbGVjdDsgSWYgdGhlIGRyb3AgZG93biB1c2VzICppZ3hGb3IsIHBhc3MgdGhlIGluZGV4IGluIGRhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBuZXdTZWxlY3Rpb246IElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy52aXJ0RGlyLmlneEZvck9mW2luZGV4XSxcbiAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgfSBhcyBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gdGhpcy5pdGVtc1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtKG5ld1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTmF2aWdhdGVzIHRvIHRoZSBpdGVtIG9uIHRoZSBzcGVjaWZpZWQgaW5kZXhcbiAgICAgKiBJZiB0aGUgZGF0YSBpbiB0aGUgZHJvcC1kb3duIGlzIHZpcnR1YWxpemVkLCBwYXNzIHRoZSBpbmRleCBvZiB0aGUgaXRlbSBpbiB0aGUgdmlydHVhbGl6ZWQgZGF0YS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdJbmRleCBudW1iZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmF2aWdhdGVJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSB8fCBpbmRleCA+PSB0aGlzLmNvbGxlY3Rpb25MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBpbmRleCA+ICh0aGlzLmZvY3VzZWRJdGVtID8gdGhpcy5mb2N1c2VkSXRlbS5pbmRleCA6IC0xKSA/IE5hdmlnYXRlLkRvd24gOiBOYXZpZ2F0ZS5VcDtcbiAgICAgICAgICAgIGNvbnN0IHN1YlJlcXVpcmVkID0gdGhpcy5pc0luZGV4T3V0T2ZCb3VuZHMoaW5kZXgsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZpcnREaXIuaWd4Rm9yT2ZbaW5kZXhdLFxuICAgICAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgICB9IGFzIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgICAgICBpZiAoc3ViUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpcnREaXIuc2Nyb2xsVG8oaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN1YlJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXJ0RGlyLmNodW5rTG9hZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2tpcEhlYWRlcihkaXJlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBIZWFkZXIoZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm5hdmlnYXRlSXRlbShpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWxsb3dJdGVtc0ZvY3VzICYmIHRoaXMuZm9jdXNlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW0uZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVNjcm9sbFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAoIXRoaXMudmlydERpcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMudmlydERpci5zY3JvbGxUbygwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGFyZ2V0U2Nyb2xsID0gdGhpcy52aXJ0RGlyLmdldFNjcm9sbEZvckluZGV4KHRoaXMuc2VsZWN0ZWRJdGVtLmluZGV4KTtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBsb2dpYyBfY2Fubm90XyBiZSByaWdodCwgdGhvc2UgYXJlIG9wdGlvbmFsIHVzZXItcHJvdmlkZWQgaW5wdXRzIHRoYXQgY2FuIGJlIHN0cmluZ3Mgd2l0aCB1bml0cywgcmVmYWN0b3I6XG4gICAgICAgIGNvbnN0IGl0ZW1zSW5WaWV3ID0gdGhpcy52aXJ0RGlyLmlneEZvckNvbnRhaW5lclNpemUgLyB0aGlzLnZpcnREaXIuaWd4Rm9ySXRlbVNpemU7XG4gICAgICAgIHRhcmdldFNjcm9sbCAtPSAoaXRlbXNJblZpZXcgLyAyIC0gMSkgKiB0aGlzLnZpcnREaXIuaWd4Rm9ySXRlbVNpemU7XG4gICAgICAgIHRoaXMudmlydERpci5nZXRTY3JvbGwoKS5zY3JvbGxUb3AgPSB0YXJnZXRTY3JvbGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub2dnbGVPcGVuaW5nKGU6IElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3MpIHtcbiAgICAgICAgY29uc3QgYXJnczogSUJhc2VDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncyA9IHsgb3duZXI6IHRoaXMsIGV2ZW50OiBlLmV2ZW50LCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgIHRoaXMub3BlbmluZy5lbWl0KGFyZ3MpO1xuICAgICAgICBlLmNhbmNlbCA9IGFyZ3MuY2FuY2VsO1xuICAgICAgICBpZiAoZS5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHRoaXMudmlydERpci5zY3JvbGxQb3NpdGlvbiA9IHRoaXMuX3Njcm9sbFBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub2dnbGVDb250ZW50QXBwZW5kZWQoX2V2ZW50OiBUb2dnbGVWaWV3RXZlbnRBcmdzKSB7XG4gICAgICAgIGlmICghdGhpcy52aXJ0RGlyICYmIHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvSXRlbSh0aGlzLnNlbGVjdGVkSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvZ2dsZU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtRm9jdXMoKTtcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCh7IG93bmVyOiB0aGlzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG9uVG9nZ2xlQ2xvc2luZyhlOiBJQmFzZUNhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzKSB7XG4gICAgICAgIGNvbnN0IGFyZ3M6IElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3MgPSB7IG93bmVyOiB0aGlzLCBldmVudDogZS5ldmVudCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICB0aGlzLmNsb3NpbmcuZW1pdChhcmdzKTtcbiAgICAgICAgZS5jYW5jZWwgPSBhcmdzLmNhbmNlbDtcbiAgICAgICAgaWYgKGUuY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsUG9zaXRpb24gPSB0aGlzLnZpcnREaXIuc2Nyb2xsUG9zaXRpb247XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvZ2dsZUNsb3NlZCgpIHtcbiAgICAgICAgdGhpcy5mb2N1c0l0ZW0oZmFsc2UpO1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KHsgb3duZXI6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcih0aGlzLmlkKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoYCR7dGhpcy5pZH0tYWN0aXZlYCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGNhbGN1bGF0ZVNjcm9sbFBvc2l0aW9uKGl0ZW06IElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmUpOiBudW1iZXIge1xuICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3QgPSBpdGVtLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBzY3JvbGxEZWx0YSA9IHBhcmVudFJlY3QudG9wIC0gZWxlbWVudFJlY3QudG9wO1xuICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLnNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgLSBzY3JvbGxEZWx0YTtcblxuICAgICAgICBjb25zdCBkcm9wRG93bkhlaWdodCA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLmNsaWVudEhlaWdodDtcbiAgICAgICAgc2Nyb2xsUG9zaXRpb24gLT0gZHJvcERvd25IZWlnaHQgLyAyO1xuICAgICAgICBzY3JvbGxQb3NpdGlvbiArPSBpdGVtLmVsZW1lbnRIZWlnaHQgLyAyO1xuXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHNjcm9sbFBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmlkKSB7XG4gICAgICAgICAgICAvLyB0ZW1wIHdvcmthcm91bmQgdW50aWwgZml4IC0tPiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8zNDk5MlxuICAgICAgICAgICAgdGhpcy50b2dnbGVEaXJlY3RpdmUuaWQgPSBjaGFuZ2VzLmlkLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHRoaXMudmlydERpci5pZ3hGb3JJdGVtU2l6ZSA9IDI4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEtleWRvd24gSGFuZGxlciAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBvbkl0ZW1BY3Rpb25LZXkoa2V5OiBEcm9wRG93bkFjdGlvbktleSwgZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICBzdXBlci5vbkl0ZW1BY3Rpb25LZXkoa2V5LCBldmVudCk7XG4gICAgICAgIHRoaXMuY2xvc2UoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZpcnR1YWwgc2Nyb2xsIGltcGxlbWVudGF0aW9uXG4gICAgICpcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBuYXZpZ2F0ZUZpcnN0KCkge1xuICAgICAgICBpZiAodGhpcy52aXJ0RGlyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlSXRlbSgwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm5hdmlnYXRlRmlyc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5hdmlnYXRlTGFzdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZUl0ZW0odGhpcy52aXJ0RGlyLnRvdGFsSXRlbUNvdW50ID8gdGhpcy52aXJ0RGlyLnRvdGFsSXRlbUNvdW50IC0gMSA6IHRoaXMudmlydERpci5pZ3hGb3JPZi5sZW5ndGggLSAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm5hdmlnYXRlTGFzdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmF2aWdhdGVOZXh0KCkge1xuICAgICAgICBpZiAodGhpcy52aXJ0RGlyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlSXRlbSh0aGlzLl9mb2N1c2VkSXRlbSA/IHRoaXMuX2ZvY3VzZWRJdGVtLmluZGV4ICsgMSA6IDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIubmF2aWdhdGVOZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBuYXZpZ2F0ZVByZXYoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGVJdGVtKHRoaXMuX2ZvY3VzZWRJdGVtID8gdGhpcy5fZm9jdXNlZEl0ZW0uaW5kZXggLSAxIDogMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5uYXZpZ2F0ZVByZXYoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGBzZWxlY3Rpb25DaGFuZ2luZ2AgZW1pdCBhbmQgdGhlIGRyb3AgZG93biB0b2dnbGUgd2hlbiBzZWxlY3Rpb24gY2hhbmdlc1xuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqIEBwYXJhbSBuZXdTZWxlY3Rpb25cbiAgICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0SXRlbShuZXdTZWxlY3Rpb24/OiBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlLCBldmVudD86IEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG9sZFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0ZWRJdGVtO1xuICAgICAgICBpZiAoIW5ld1NlbGVjdGlvbikge1xuICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gdGhpcy5mb2N1c2VkSXRlbTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3U2VsZWN0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld1NlbGVjdGlvbiBpbnN0YW5jZW9mIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmUgJiYgbmV3U2VsZWN0aW9uLmlzSGVhZGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdTZWxlY3Rpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgaW5kZXg6IG5ld1NlbGVjdGlvbi5pbmRleFxuICAgICAgICAgICAgfSBhcyBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFyZ3M6IElTZWxlY3Rpb25FdmVudEFyZ3MgPSB7IG9sZFNlbGVjdGlvbiwgbmV3U2VsZWN0aW9uLCBjYW5jZWw6IGZhbHNlLCBvd25lcjogdGhpcyB9O1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5naW5nLmVtaXQoYXJncyk7XG5cbiAgICAgICAgaWYgKCFhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3Rpb25WYWxpZChhcmdzLm5ld1NlbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZXQodGhpcy5pZCwgbmV3IFNldChbYXJncy5uZXdTZWxlY3Rpb25dKSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2xkU2VsZWN0aW9uLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFyZ3MubmV3U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzLm5ld1NlbGVjdGlvbi5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRGlyZWN0aXZlLmNsb3NlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBkcm9wLWRvd24gaXRlbSBmb3IgdGhlIHNlbGVjdGlvbiEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgc2VsZWN0aW9uIG9mIHRoZSBkcm9wZG93blxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmRyb3Bkb3duLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgICAgICBjb25zdCBvbGRTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkSXRlbTtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uOiBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlID0gbnVsbDtcbiAgICAgICAgY29uc3QgYXJnczogSVNlbGVjdGlvbkV2ZW50QXJncyA9IHsgb2xkU2VsZWN0aW9uLCBuZXdTZWxlY3Rpb24sIGNhbmNlbDogZmFsc2UsIG93bmVyOiB0aGlzIH07XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdpbmcuZW1pdChhcmdzKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtICYmICFhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKHRoaXMuaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHNlbGVjdGlvbiBpcyB2YWxpZFxuICAgICAqIGBudWxsYCAtIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIGVtcHRpZWRcbiAgICAgKiBWaXJ0dWFsPyAtIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGF0IGxlYXN0IGhhdmUgYW5kIGBpbmRleGAgYW5kIGB2YWx1ZWAgcHJvcGVydHlcbiAgICAgKiBOb24tdmlydHVhbD8gLSB0aGUgc2VsZWN0aW9uIHNob3VsZCBiZSBhIHZhbGlkIGRyb3AtZG93biBpdGVtIGFuZCAqKm5vdCoqIGJlIGEgaGVhZGVyXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzU2VsZWN0aW9uVmFsaWQoc2VsZWN0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvbiA9PT0gbnVsbFxuICAgICAgICAgICAgfHwgKHRoaXMudmlydERpciAmJiBzZWxlY3Rpb24uaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykgJiYgc2VsZWN0aW9uLmhhc093blByb3BlcnR5KCdpbmRleCcpKVxuICAgICAgICAgICAgfHwgKHNlbGVjdGlvbiBpbnN0YW5jZW9mIElneERyb3BEb3duSXRlbUNvbXBvbmVudCAmJiAhc2VsZWN0aW9uLmlzSGVhZGVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2Nyb2xsVG9JdGVtKGl0ZW06IElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmUpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0gdGhpcy5jYWxjdWxhdGVTY3JvbGxQb3NpdGlvbihpdGVtKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9jdXNJdGVtKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSB8fCB0aGlzLl9mb2N1c2VkSXRlbSkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZEl0ZW0uZm9jdXNlZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUl0ZW1Gb2N1cygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgICAgICAgICB0aGlzLmZvY3VzSXRlbSh0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFsbG93SXRlbXNGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZUZpcnN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2tpcEhlYWRlcihkaXJlY3Rpb246IE5hdmlnYXRlKSB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c2VkSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRJdGVtLmlzSGVhZGVyIHx8IHRoaXMuZm9jdXNlZEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09IE5hdmlnYXRlLlVwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVByZXYoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZU5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNJbmRleE91dE9mQm91bmRzKGluZGV4OiBudW1iZXIsIGRpcmVjdGlvbjogTmF2aWdhdGUpIHtcbiAgICAgICAgY29uc3QgdmlydFN0YXRlID0gdGhpcy52aXJ0RGlyLnN0YXRlO1xuICAgICAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLnZpcnREaXIuZ2V0U2Nyb2xsKCkuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBpdGVtUG9zaXRpb24gPSB0aGlzLnZpcnREaXIuZ2V0U2Nyb2xsRm9ySW5kZXgoaW5kZXgsIGRpcmVjdGlvbiA9PT0gTmF2aWdhdGUuRG93bik7XG4gICAgICAgIGNvbnN0IGluZGV4T3V0T2ZDaHVuayA9IGluZGV4IDwgdmlydFN0YXRlLnN0YXJ0SW5kZXggfHwgaW5kZXggPiB2aXJ0U3RhdGUuY2h1bmtTaXplICsgdmlydFN0YXRlLnN0YXJ0SW5kZXg7XG4gICAgICAgIGNvbnN0IHNjcm9sbE5lZWRlZCA9IGRpcmVjdGlvbiA9PT0gTmF2aWdhdGUuRG93biA/IGN1cnJlbnRQb3NpdGlvbiA8IGl0ZW1Qb3NpdGlvbiA6IGN1cnJlbnRQb3NpdGlvbiA+IGl0ZW1Qb3NpdGlvbjtcbiAgICAgICAgY29uc3Qgc3ViUmVxdWlyZWQgPSBpbmRleE91dE9mQ2h1bmsgfHwgc2Nyb2xsTmVlZGVkO1xuICAgICAgICByZXR1cm4gc3ViUmVxdWlyZWQ7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWRyb3AtZG93bl9fbGlzdFwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgaWd4VG9nZ2xlXG4gICAgW3N0eWxlLi0tY29tcG9uZW50LXNpemVdPVwiZ2V0Q29tcG9uZW50U2l6ZVN0eWxlcygpXCJcbiAgICAoYXBwZW5kZWQpPVwib25Ub2dnbGVDb250ZW50QXBwZW5kZWQoJGV2ZW50KVwiXG4gICAgKG9wZW5pbmcpPVwib25Ub2dnbGVPcGVuaW5nKCRldmVudClcIiAob3BlbmVkKT1cIm9uVG9nZ2xlT3BlbmVkKClcIlxuICAgIChjbG9zaW5nKT1cIm9uVG9nZ2xlQ2xvc2luZygkZXZlbnQpXCIgKGNsb3NlZCk9XCJvblRvZ2dsZUNsb3NlZCgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImlneC1kcm9wLWRvd25fX2xpc3Qtc2Nyb2xsXCIgI3Njcm9sbENvbnRhaW5lciBbYXR0ci5pZF09XCJsaXN0SWRcIiByb2xlPVwibGlzdGJveFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5XCJcbiAgICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gICAgW3N0eWxlLm1heEhlaWdodF09XCJtYXhIZWlnaHRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
560
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFVBQVUsRUFHVixLQUFLLEVBRUwsU0FBUyxFQUNULFlBQVksRUFFWixNQUFNLEVBQ04sWUFBWSxFQUNaLFFBQVEsRUFDUixNQUFNLEVBRU4sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQXFCLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUl0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FB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ZUFBZTtzQkFEeEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXJDLGtCQUFrQjtzQkFEM0IsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9wdGlvbmFsLFxuICAgIEluamVjdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hUb2dnbGVEaXJlY3RpdmUsIFRvZ2dsZVZpZXdFdmVudEFyZ3MgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneERyb3BEb3duQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcC1kb3duLmJhc2UnO1xuaW1wb3J0IHsgRHJvcERvd25BY3Rpb25LZXksIE5hdmlnYXRlIH0gZnJvbSAnLi9kcm9wLWRvd24uY29tbW9uJztcbmltcG9ydCB7IElHWF9EUk9QRE9XTl9CQVNFLCBJRHJvcERvd25CYXNlIH0gZnJvbSAnLi9kcm9wLWRvd24uY29tbW9uJztcbmltcG9ydCB7IElTZWxlY3Rpb25FdmVudEFyZ3MgfSBmcm9tICcuL2Ryb3AtZG93bi5jb21tb24nO1xuaW1wb3J0IHsgSUJhc2VDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneFNlbGVjdGlvbkFQSVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9kcm9wLWRvd24taXRlbS5iYXNlJztcbmltcG9ydCB7IElneEZvck9mVG9rZW4gfSBmcm9tICcuLi9kaXJlY3RpdmVzL2Zvci1vZi9mb3Jfb2YuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eVRva2VuLCBJRGlzcGxheURlbnNpdHlPcHRpb25zIH0gZnJvbSAnLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIERyb3BEb3duKiogLVxuICogW0RvY3VtZW50YXRpb25dKGh0dHBzOi8vd3d3LmluZnJhZ2lzdGljcy5jb20vcHJvZHVjdHMvaWduaXRlLXVpLWFuZ3VsYXIvYW5ndWxhci9jb21wb25lbnRzL2Ryb3AtZG93bilcbiAqXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIERyb3AgRG93biBkaXNwbGF5cyBhIHNjcm9sbGFibGUgbGlzdCBvZiBpdGVtcyB3aGljaCBtYXkgYmUgdmlzdWFsbHkgZ3JvdXBlZCBhbmRcbiAqIHN1cHBvcnRzIHNlbGVjdGlvbiBvZiBhIHNpbmdsZSBpdGVtLiBDbGlja2luZyBvciB0YXBwaW5nIGFuIGl0ZW0gc2VsZWN0cyBpdCBhbmQgY2xvc2VzIHRoZSBEcm9wIERvd25cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGlneC1kcm9wLWRvd24+XG4gKiAgIDxpZ3gtZHJvcC1kb3duLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiBkaXNhYmxlZD17e2l0ZW0uZGlzYWJsZWR9fSBpc0hlYWRlcj17e2l0ZW0uaGVhZGVyfX0+XG4gKiAgICAge3sgaXRlbS52YWx1ZSB9fVxuICogICA8L2lneC1kcm9wLWRvd24taXRlbT5cbiAqIDwvaWd4LWRyb3AtZG93bj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1kcm9wLWRvd24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kcm9wLWRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSUdYX0RST1BET1dOX0JBU0UsIHVzZUV4aXN0aW5nOiBJZ3hEcm9wRG93bkNvbXBvbmVudCB9XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hUb2dnbGVEaXJlY3RpdmUsIE5nSWZdXG59KVxuZXhwb3J0IGNsYXNzIElneERyb3BEb3duQ29tcG9uZW50IGV4dGVuZHMgSWd4RHJvcERvd25CYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgSURyb3BEb3duQmFzZSwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gSWd4RHJvcERvd25JdGVtQ29tcG9uZW50KSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHB1YmxpYyBvdmVycmlkZSBjaGlsZHJlbjogUXVlcnlMaXN0PElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBiZWZvcmUgdGhlIGRyb3Bkb3duIGlzIG9wZW5lZFxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZHJvcC1kb3duIChvcGVuaW5nKT0naGFuZGxlT3BlbmluZygkZXZlbnQpJz48L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcm9wZG93biBpcyBvcGVuZWRcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRyb3AtZG93biAob3BlbmVkKT0naGFuZGxlT3BlbmVkKCRldmVudCknPjwvaWd4LWRyb3AtZG93bj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxJQmFzZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSBkcm9wZG93biBpcyBjbG9zZWRcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRyb3AtZG93biAoY2xvc2luZyk9J2hhbmRsZUNsb3NpbmcoJGV2ZW50KSc+PC9pZ3gtZHJvcC1kb3duPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbG9zaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQmFzZUNhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBhZnRlciB0aGUgZHJvcGRvd24gaXMgY2xvc2VkXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kcm9wLWRvd24gKGNsb3NlZCk9J2hhbmRsZUNsb3NlZCgkZXZlbnQpJz48L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgd2hldGhlciBpdGVtcyB0YWtlIGZvY3VzLiBEaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgICAqIFdoZW4gZW5hYmxlZCwgZHJvcCBkb3duIGl0ZW1zIGdhaW4gdGFiIGluZGV4IGFuZCBhcmUgZm9jdXNlZCB3aGVuIGFjdGl2ZSAtXG4gICAgICogdGhpcyBpbmNsdWRlcyBhY3RpdmF0aW5nIHRoZSBzZWxlY3RlZCBpdGVtIHdoZW4gb3BlbmluZyB0aGUgZHJvcCBkb3duIGFuZCBtb3Zpbmcgd2l0aCBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICAgICAqXG4gICAgICogTm90ZTogS2VlcCB0aGF0IGZvY3VzIHNoaWZ0IGluIG1pbmQgd2hlbiB1c2luZyB0aGUgaWd4RHJvcERvd25JdGVtTmF2aWdhdGlvbiBkaXJlY3RpdmVcbiAgICAgKiBhbmQgZW5zdXJlIGl0J3MgcGxhY2VkIGVpdGhlciBvbiBlYWNoIGZvY3VzYWJsZSBpdGVtIG9yIGEgY29tbW9uIGFuY2VzdG9yIHRvIGFsbG93IGl0IHRvIGhhbmRsZSBrZXlib2FyZCBldmVudHMuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gZ2V0XG4gICAgICogbGV0IGRyb3BEb3duQWxsb3dzSXRlbUZvY3VzID0gdGhpcy5kcm9wZG93bi5hbGxvd0l0ZW1zRm9jdXM7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPCEtLXNldC0tPlxuICAgICAqIDxpZ3gtZHJvcC1kb3duIFthbGxvd0l0ZW1zRm9jdXNdPSd0cnVlJz48L2lneC1kcm9wLWRvd24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGFsbG93SXRlbXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0IGFyaWEtbGFiZWxsZWRieSBhdHRyaWJ1dGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kcm9wLWRvd24gW2xhYmVsbGVkYnldPVwibGFiZWxJZFwiPjwvaWd4LWRyb3AtZG93bj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbGxlZEJ5OiBzdHJpbmc7XG5cbiAgICBAQ29udGVudENoaWxkKElneEZvck9mVG9rZW4pXG4gICAgcHJvdGVjdGVkIHZpcnREaXI6IElneEZvck9mVG9rZW48YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoSWd4VG9nZ2xlRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCB0b2dnbGVEaXJlY3RpdmU6IElneFRvZ2dsZURpcmVjdGl2ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ3Njcm9sbENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIHNjcm9sbENvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBmb2N1c2VkSXRlbSgpOiBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWRJdGVtICYmIHRoaXMuX2ZvY3VzZWRJdGVtLmluZGV4ICE9PSAtMSA/XG4gICAgICAgICAgICAgICAgKHRoaXMuY2hpbGRyZW4uZmluZChlID0+IGUuaW5kZXggPT09IHRoaXMuX2ZvY3VzZWRJdGVtLmluZGV4KSB8fCBudWxsKSA6XG4gICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNlZEl0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHNldCBmb2N1c2VkSXRlbSh2YWx1ZTogSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcihgJHt0aGlzLmlkfS1hY3RpdmVgKTtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb2N1c2VkSXRlbSA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy52aXJ0RGlyKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkSXRlbSA9IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXG4gICAgICAgICAgICAgICAgaW5kZXg6IHZhbHVlLmluZGV4XG4gICAgICAgICAgICB9IGFzIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0KGAke3RoaXMuaWR9LWFjdGl2ZWAsIG5ldyBTZXQoW3RoaXMuX2ZvY3VzZWRJdGVtXSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGlkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0KHZhbHVlLCB0aGlzLnNlbGVjdGlvbi5nZXQodGhpcy5pZCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcih0aGlzLmlkKTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2V0KHZhbHVlLCB0aGlzLnNlbGVjdGlvbi5nZXQoYCR7dGhpcy5pZH0tYWN0aXZlYCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcihgJHt0aGlzLmlkfS1hY3RpdmVgKTtcbiAgICAgICAgdGhpcy5faWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogSWQgb2YgdGhlIGludGVybmFsIGxpc3Rib3ggb2YgdGhlIGRyb3AgZG93biAqL1xuICAgIHB1YmxpYyBnZXQgbGlzdElkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pZCArICctbGlzdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGN1cnJlbnRJdGVtID0gdGhpcy5kcm9wZG93bi5zZWxlY3RlZEl0ZW07XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBzZWxlY3RlZEl0ZW0oKTogSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0aW9uLmZpcnN0X2l0ZW0odGhpcy5pZCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBpZiB0aGUgZHJvcGRvd24gaXMgY29sbGFwc2VkXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzQ29sbGFwc2VkID0gdGhpcy5kcm9wZG93bi5jb2xsYXBzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb2xsYXBzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvZ2dsZURpcmVjdGl2ZS5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBzY3JvbGxDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zY3JvbGxDb250YWluZXJSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbGxlY3Rpb25MZW5ndGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnREaXIudG90YWxJdGVtQ291bnQgfHwgdGhpcy52aXJ0RGlyLmlneEZvck9mLmxlbmd0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJvdGVjdGVkIF9zY3JvbGxQb3NpdGlvbjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBzZWxlY3Rpb246IElneFNlbGVjdGlvbkFQSVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucykge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIsIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIHRoZSBkcm9wZG93blxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZHJvcGRvd24ub3BlbigpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuKG92ZXJsYXlTZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncykge1xuICAgICAgICB0aGlzLnRvZ2dsZURpcmVjdGl2ZS5vcGVuKG92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgIHRoaXMudXBkYXRlU2Nyb2xsUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZXMgdGhlIGRyb3Bkb3duXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5kcm9wZG93bi5jbG9zZSgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShldmVudD86IEV2ZW50KSB7XG4gICAgICAgIHRoaXMudG9nZ2xlRGlyZWN0aXZlLmNsb3NlKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIHRoZSBkcm9wZG93blxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHRvZ2dsZShvdmVybGF5U2V0dGluZ3M/OiBPdmVybGF5U2V0dGluZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sbGFwc2VkIHx8IHRoaXMudG9nZ2xlRGlyZWN0aXZlLmlzQ2xvc2luZykge1xuICAgICAgICAgICAgdGhpcy5vcGVuKG92ZXJsYXlTZXR0aW5ncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3QgYW4gaXRlbSBieSBpbmRleFxuICAgICAqXG4gICAgICogQHBhcmFtIGluZGV4IG9mIHRoZSBpdGVtIHRvIHNlbGVjdDsgSWYgdGhlIGRyb3AgZG93biB1c2VzICppZ3hGb3IsIHBhc3MgdGhlIGluZGV4IGluIGRhdGFcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0U2VsZWN0ZWRJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBuZXdTZWxlY3Rpb246IElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy52aXJ0RGlyLmlneEZvck9mW2luZGV4XSxcbiAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgfSBhcyBJZ3hEcm9wRG93bkl0ZW1CYXNlRGlyZWN0aXZlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gdGhpcy5pdGVtc1tpbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtKG5ld1NlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTmF2aWdhdGVzIHRvIHRoZSBpdGVtIG9uIHRoZSBzcGVjaWZpZWQgaW5kZXhcbiAgICAgKiBJZiB0aGUgZGF0YSBpbiB0aGUgZHJvcC1kb3duIGlzIHZpcnR1YWxpemVkLCBwYXNzIHRoZSBpbmRleCBvZiB0aGUgaXRlbSBpbiB0aGUgdmlydHVhbGl6ZWQgZGF0YS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdJbmRleCBudW1iZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmF2aWdhdGVJdGVtKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSAtMSB8fCBpbmRleCA+PSB0aGlzLmNvbGxlY3Rpb25MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBpbmRleCA+ICh0aGlzLmZvY3VzZWRJdGVtID8gdGhpcy5mb2N1c2VkSXRlbS5pbmRleCA6IC0xKSA/IE5hdmlnYXRlLkRvd24gOiBOYXZpZ2F0ZS5VcDtcbiAgICAgICAgICAgIGNvbnN0IHN1YlJlcXVpcmVkID0gdGhpcy5pc0luZGV4T3V0T2ZCb3VuZHMoaW5kZXgsIGRpcmVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtID0ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZpcnREaXIuaWd4Rm9yT2ZbaW5kZXhdLFxuICAgICAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgICB9IGFzIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgICAgICBpZiAoc3ViUmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpcnREaXIuc2Nyb2xsVG8oaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN1YlJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXJ0RGlyLmNodW5rTG9hZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2tpcEhlYWRlcihkaXJlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBIZWFkZXIoZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm5hdmlnYXRlSXRlbShpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYWxsb3dJdGVtc0ZvY3VzICYmIHRoaXMuZm9jdXNlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW0uZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVNjcm9sbFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAoIXRoaXMudmlydERpcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMudmlydERpci5zY3JvbGxUbygwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdGFyZ2V0U2Nyb2xsID0gdGhpcy52aXJ0RGlyLmdldFNjcm9sbEZvckluZGV4KHRoaXMuc2VsZWN0ZWRJdGVtLmluZGV4KTtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBsb2dpYyBfY2Fubm90XyBiZSByaWdodCwgdGhvc2UgYXJlIG9wdGlvbmFsIHVzZXItcHJvdmlkZWQgaW5wdXRzIHRoYXQgY2FuIGJlIHN0cmluZ3Mgd2l0aCB1bml0cywgcmVmYWN0b3I6XG4gICAgICAgIGNvbnN0IGl0ZW1zSW5WaWV3ID0gdGhpcy52aXJ0RGlyLmlneEZvckNvbnRhaW5lclNpemUgLyB0aGlzLnZpcnREaXIuaWd4Rm9ySXRlbVNpemU7XG4gICAgICAgIHRhcmdldFNjcm9sbCAtPSAoaXRlbXNJblZpZXcgLyAyIC0gMSkgKiB0aGlzLnZpcnREaXIuaWd4Rm9ySXRlbVNpemU7XG4gICAgICAgIHRoaXMudmlydERpci5nZXRTY3JvbGwoKS5zY3JvbGxUb3AgPSB0YXJnZXRTY3JvbGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub2dnbGVPcGVuaW5nKGU6IElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3MpIHtcbiAgICAgICAgY29uc3QgYXJnczogSUJhc2VDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncyA9IHsgb3duZXI6IHRoaXMsIGV2ZW50OiBlLmV2ZW50LCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgIHRoaXMub3BlbmluZy5lbWl0KGFyZ3MpO1xuICAgICAgICBlLmNhbmNlbCA9IGFyZ3MuY2FuY2VsO1xuICAgICAgICBpZiAoZS5jYW5jZWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHRoaXMudmlydERpci5zY3JvbGxQb3NpdGlvbiA9IHRoaXMuX3Njcm9sbFBvc2l0aW9uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Ub2dnbGVDb250ZW50QXBwZW5kZWQoX2V2ZW50OiBUb2dnbGVWaWV3RXZlbnRBcmdzKSB7XG4gICAgICAgIGlmICghdGhpcy52aXJ0RGlyICYmIHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvSXRlbSh0aGlzLnNlbGVjdGVkSXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvZ2dsZU9wZW5lZCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJdGVtRm9jdXMoKTtcbiAgICAgICAgdGhpcy5vcGVuZWQuZW1pdCh7IG93bmVyOiB0aGlzIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG9uVG9nZ2xlQ2xvc2luZyhlOiBJQmFzZUNhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzKSB7XG4gICAgICAgIGNvbnN0IGFyZ3M6IElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3MgPSB7IG93bmVyOiB0aGlzLCBldmVudDogZS5ldmVudCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICB0aGlzLmNsb3NpbmcuZW1pdChhcmdzKTtcbiAgICAgICAgZS5jYW5jZWwgPSBhcmdzLmNhbmNlbDtcbiAgICAgICAgaWYgKGUuY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsUG9zaXRpb24gPSB0aGlzLnZpcnREaXIuc2Nyb2xsUG9zaXRpb247XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvblRvZ2dsZUNsb3NlZCgpIHtcbiAgICAgICAgdGhpcy5mb2N1c0l0ZW0oZmFsc2UpO1xuICAgICAgICB0aGlzLmNsb3NlZC5lbWl0KHsgb3duZXI6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5kZWxldGUodGhpcy5pZCk7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRlbGV0ZShgJHt0aGlzLmlkfS1hY3RpdmVgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgY2FsY3VsYXRlU2Nyb2xsUG9zaXRpb24oaXRlbTogSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSk6IG51bWJlciB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbGVtZW50UmVjdCA9IGl0ZW0uZWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gdGhpcy5zY3JvbGxDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbERlbHRhID0gcGFyZW50UmVjdC50b3AgLSBlbGVtZW50UmVjdC50b3A7XG4gICAgICAgIGxldCBzY3JvbGxQb3NpdGlvbiA9IHRoaXMuc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCAtIHNjcm9sbERlbHRhO1xuXG4gICAgICAgIGNvbnN0IGRyb3BEb3duSGVpZ2h0ID0gdGhpcy5zY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgICAgICBzY3JvbGxQb3NpdGlvbiAtPSBkcm9wRG93bkhlaWdodCAvIDI7XG4gICAgICAgIHNjcm9sbFBvc2l0aW9uICs9IGl0ZW0uZWxlbWVudEhlaWdodCAvIDI7XG5cbiAgICAgICAgcmV0dXJuIE1hdGguZmxvb3Ioc2Nyb2xsUG9zaXRpb24pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaWQpIHtcbiAgICAgICAgICAgIC8vIHRlbXAgd29ya2Fyb3VuZCB1bnRpbCBmaXggLS0+IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzM0OTkyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZURpcmVjdGl2ZS5pZCA9IGNoYW5nZXMuaWQuY3VycmVudFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgdGhpcy52aXJ0RGlyLmlneEZvckl0ZW1TaXplID0gMjg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogS2V5ZG93biBIYW5kbGVyICovXG4gICAgcHVibGljIG92ZXJyaWRlIG9uSXRlbUFjdGlvbktleShrZXk6IERyb3BEb3duQWN0aW9uS2V5LCBldmVudD86IEV2ZW50KSB7XG4gICAgICAgIHN1cGVyLm9uSXRlbUFjdGlvbktleShrZXksIGV2ZW50KTtcbiAgICAgICAgdGhpcy5jbG9zZShldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmlydHVhbCBzY3JvbGwgaW1wbGVtZW50YXRpb25cbiAgICAgKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5hdmlnYXRlRmlyc3QoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGVJdGVtKDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIubmF2aWdhdGVGaXJzdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgbmF2aWdhdGVMYXN0KCkge1xuICAgICAgICBpZiAodGhpcy52aXJ0RGlyKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlSXRlbSh0aGlzLnZpcnREaXIudG90YWxJdGVtQ291bnQgPyB0aGlzLnZpcnREaXIudG90YWxJdGVtQ291bnQgLSAxIDogdGhpcy52aXJ0RGlyLmlneEZvck9mLmxlbmd0aCAtIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIubmF2aWdhdGVMYXN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBuYXZpZ2F0ZU5leHQoKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnREaXIpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGVJdGVtKHRoaXMuX2ZvY3VzZWRJdGVtID8gdGhpcy5fZm9jdXNlZEl0ZW0uaW5kZXggKyAxIDogMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5uYXZpZ2F0ZU5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIG5hdmlnYXRlUHJldigpIHtcbiAgICAgICAgaWYgKHRoaXMudmlydERpcikge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZUl0ZW0odGhpcy5fZm9jdXNlZEl0ZW0gPyB0aGlzLl9mb2N1c2VkSXRlbS5pbmRleCAtIDEgOiAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm5hdmlnYXRlUHJldigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB0aGUgYHNlbGVjdGlvbkNoYW5naW5nYCBlbWl0IGFuZCB0aGUgZHJvcCBkb3duIHRvZ2dsZSB3aGVuIHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICogQHBhcmFtIG5ld1NlbGVjdGlvblxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBzZWxlY3RJdGVtKG5ld1NlbGVjdGlvbj86IElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmUsIGV2ZW50PzogRXZlbnQpIHtcbiAgICAgICAgY29uc3Qgb2xkU2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgICAgIGlmICghbmV3U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBuZXdTZWxlY3Rpb24gPSB0aGlzLmZvY3VzZWRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdTZWxlY3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3U2VsZWN0aW9uIGluc3RhbmNlb2YgSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSAmJiBuZXdTZWxlY3Rpb24uaXNIZWFkZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52aXJ0RGlyKSB7XG4gICAgICAgICAgICBuZXdTZWxlY3Rpb24gPSB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IG5ld1NlbGVjdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICBpbmRleDogbmV3U2VsZWN0aW9uLmluZGV4XG4gICAgICAgICAgICB9IGFzIElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYXJnczogSVNlbGVjdGlvbkV2ZW50QXJncyA9IHsgb2xkU2VsZWN0aW9uLCBuZXdTZWxlY3Rpb24sIGNhbmNlbDogZmFsc2UsIG93bmVyOiB0aGlzIH07XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdpbmcuZW1pdChhcmdzKTtcblxuICAgICAgICBpZiAoIWFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGlvblZhbGlkKGFyZ3MubmV3U2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNldCh0aGlzLmlkLCBuZXcgU2V0KFthcmdzLm5ld1NlbGVjdGlvbl0pKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudmlydERpcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAob2xkU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbGRTZWxlY3Rpb24uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoYXJncy5uZXdTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MubmV3U2VsZWN0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVEaXJlY3RpdmUuY2xvc2UoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGRyb3AtZG93biBpdGVtIGZvciB0aGUgc2VsZWN0aW9uIScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBzZWxlY3Rpb24gb2YgdGhlIGRyb3Bkb3duXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZHJvcGRvd24uY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IG9sZFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0ZWRJdGVtO1xuICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb246IElneERyb3BEb3duSXRlbUJhc2VEaXJlY3RpdmUgPSBudWxsO1xuICAgICAgICBjb25zdCBhcmdzOiBJU2VsZWN0aW9uRXZlbnRBcmdzID0geyBvbGRTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbiwgY2FuY2VsOiBmYWxzZSwgb3duZXI6IHRoaXMgfTtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2luZy5lbWl0KGFyZ3MpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0gJiYgIWFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIodGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgc2VsZWN0aW9uIGlzIHZhbGlkXG4gICAgICogYG51bGxgIC0gdGhlIHNlbGVjdGlvbiBzaG91bGQgYmUgZW1wdGllZFxuICAgICAqIFZpcnR1YWw/IC0gdGhlIHNlbGVjdGlvbiBzaG91bGQgYXQgbGVhc3QgaGF2ZSBhbmQgYGluZGV4YCBhbmQgYHZhbHVlYCBwcm9wZXJ0eVxuICAgICAqIE5vbi12aXJ0dWFsPyAtIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIGEgdmFsaWQgZHJvcC1kb3duIGl0ZW0gYW5kICoqbm90KiogYmUgYSBoZWFkZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNTZWxlY3Rpb25WYWxpZChzZWxlY3Rpb246IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gc2VsZWN0aW9uID09PSBudWxsXG4gICAgICAgICAgICB8fCAodGhpcy52aXJ0RGlyICYmIHNlbGVjdGlvbi5oYXNPd25Qcm9wZXJ0eSgndmFsdWUnKSAmJiBzZWxlY3Rpb24uaGFzT3duUHJvcGVydHkoJ2luZGV4JykpXG4gICAgICAgICAgICB8fCAoc2VsZWN0aW9uIGluc3RhbmNlb2YgSWd4RHJvcERvd25JdGVtQ29tcG9uZW50ICYmICFzZWxlY3Rpb24uaXNIZWFkZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxUb0l0ZW0oaXRlbTogSWd4RHJvcERvd25JdGVtQmFzZURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLnNjcm9sbENvbnRhaW5lci5zY3JvbGxUb3AgPSB0aGlzLmNhbGN1bGF0ZVNjcm9sbFBvc2l0aW9uKGl0ZW0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb2N1c0l0ZW0odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlIHx8IHRoaXMuX2ZvY3VzZWRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkSXRlbS5mb2N1c2VkID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlSXRlbUZvY3VzKCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNJdGVtKHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWxsb3dJdGVtc0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRlRmlyc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBza2lwSGVhZGVyKGRpcmVjdGlvbjogTmF2aWdhdGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWRJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZEl0ZW0uaXNIZWFkZXIgfHwgdGhpcy5mb2N1c2VkSXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gTmF2aWdhdGUuVXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRlUHJldigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRlTmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0luZGV4T3V0T2ZCb3VuZHMoaW5kZXg6IG51bWJlciwgZGlyZWN0aW9uOiBOYXZpZ2F0ZSkge1xuICAgICAgICBjb25zdCB2aXJ0U3RhdGUgPSB0aGlzLnZpcnREaXIuc3RhdGU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQb3NpdGlvbiA9IHRoaXMudmlydERpci5nZXRTY3JvbGwoKS5zY3JvbGxUb3A7XG4gICAgICAgIGNvbnN0IGl0ZW1Qb3NpdGlvbiA9IHRoaXMudmlydERpci5nZXRTY3JvbGxGb3JJbmRleChpbmRleCwgZGlyZWN0aW9uID09PSBOYXZpZ2F0ZS5Eb3duKTtcbiAgICAgICAgY29uc3QgaW5kZXhPdXRPZkNodW5rID0gaW5kZXggPCB2aXJ0U3RhdGUuc3RhcnRJbmRleCB8fCBpbmRleCA+IHZpcnRTdGF0ZS5jaHVua1NpemUgKyB2aXJ0U3RhdGUuc3RhcnRJbmRleDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTmVlZGVkID0gZGlyZWN0aW9uID09PSBOYXZpZ2F0ZS5Eb3duID8gY3VycmVudFBvc2l0aW9uIDwgaXRlbVBvc2l0aW9uIDogY3VycmVudFBvc2l0aW9uID4gaXRlbVBvc2l0aW9uO1xuICAgICAgICBjb25zdCBzdWJSZXF1aXJlZCA9IGluZGV4T3V0T2ZDaHVuayB8fCBzY3JvbGxOZWVkZWQ7XG4gICAgICAgIHJldHVybiBzdWJSZXF1aXJlZDtcbiAgICB9XG59XG5cbiIsIjxkaXYgY2xhc3M9XCJpZ3gtZHJvcC1kb3duX19saXN0XCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICBpZ3hUb2dnbGVcbiAgICBbc3R5bGUuLS1jb21wb25lbnQtc2l6ZV09XCJnZXRDb21wb25lbnRTaXplU3R5bGVzKClcIlxuICAgIChhcHBlbmRlZCk9XCJvblRvZ2dsZUNvbnRlbnRBcHBlbmRlZCgkZXZlbnQpXCJcbiAgICAob3BlbmluZyk9XCJvblRvZ2dsZU9wZW5pbmcoJGV2ZW50KVwiIChvcGVuZWQpPVwib25Ub2dnbGVPcGVuZWQoKVwiXG4gICAgKGNsb3NpbmcpPVwib25Ub2dnbGVDbG9zaW5nKCRldmVudClcIiAoY2xvc2VkKT1cIm9uVG9nZ2xlQ2xvc2VkKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWRyb3AtZG93bl9fbGlzdC1zY3JvbGxcIiAjc2Nyb2xsQ29udGFpbmVyIFthdHRyLmlkXT1cImxpc3RJZFwiIHJvbGU9XCJsaXN0Ym94XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsbGVkQnlcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICBbc3R5bGUubWF4SGVpZ2h0XT1cIm1heEhlaWdodFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
/**
|
|
9
9
|
* @hidden
|
|
10
10
|
*/
|
|
11
|
-
export const ExpansionPanelHeaderIconPosition = mkenum({
|
|
11
|
+
export const ExpansionPanelHeaderIconPosition = /*@__PURE__*/ mkenum({
|
|
12
12
|
LEFT: 'left',
|
|
13
13
|
NONE: 'none',
|
|
14
14
|
RIGHT: 'right'
|
|
@@ -283,4 +283,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
283
283
|
type: HostListener,
|
|
284
284
|
args: ['keydown.Alt.ArrowUp', ['$event']]
|
|
285
285
|
}] } });
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQTZELE1BQU0sMEJBQTBCLENBQUM7QUFDcEksT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsTUFBTSxDQUFDO0lBQ25ELElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsT0FBTztDQUNqQixDQUFDLENBQUM7QUFVSCxNQUFNLE9BQU8sZ0NBQWdDO0lBQ3pDOzs7T0FHRztJQUNILElBQVcsT0FBTztRQUNkLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxD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OztzQkFDeEMsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDM0MsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUIxQixTQUFTO3NCQURmLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYzFDLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBIb3N0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEluamVjdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEV4cGFuc2lvblBhbmVsSWNvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZXhwYW5zaW9uLXBhbmVsLmRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgSUdYX0VYUEFOU0lPTl9QQU5FTF9DT01QT05FTlQsIElneEV4cGFuc2lvblBhbmVsQmFzZSwgSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyB9IGZyb20gJy4vZXhwYW5zaW9uLXBhbmVsLmNvbW1vbic7XG5pbXBvcnQgeyBta2VudW0gfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGNvbnN0IEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uID0gbWtlbnVtKHtcbiAgICBMRUZUOiAnbGVmdCcsXG4gICAgTk9ORTogJ25vbmUnLFxuICAgIFJJR0hUOiAncmlnaHQnXG59KTtcbmV4cG9ydCB0eXBlIEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uID0gKHR5cGVvZiBFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbilba2V5b2YgdHlwZW9mIEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uXTtcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4cGFuc2lvblBhbmVsSGVhZGVyQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBgaWd4LWV4cGFuc2lvbi1wYW5lbC1pY29uYCBlbGVtZW50O1xuICAgICAqIElmIGBpY29uUG9zaXRpb25gIGlzIGBOT05FYCAtIHJldHVybiBudWxsO1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaWNvblJlZigpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgY29uc3QgcmVuZGVyZWRUZW1wbGF0ZSA9IHRoaXMuY3VzdG9tSWNvblJlZiA/PyB0aGlzLmRlZmF1bHRJY29uUmVmO1xuICAgICAgICByZXR1cm4gdGhpcy5pY29uUG9zaXRpb24gIT09IEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uLk5PTkUgPyByZW5kZXJlZFRlbXBsYXRlIDogbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hFeHBhbnNpb25QYW5lbEljb25EaXJlY3RpdmUpXG4gICAgcHVibGljIHNldCBpY29uVGVtcGxhdGUodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2ljb25UZW1wbGF0ZSA9IHZhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uVGVtcGxhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSBgYXJpYS1sZXZlbGAgYXR0cmlidXRlIG9mIHRoZSBoZWFkZXJcbiAgICAgKiBHZXRcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIGNvbnN0IGN1cnJlbnRBcmlhTGV2ZWwgPSB0aGlzLnBhbmVsLmhlYWRlci5sdjtcbiAgICAgKiBgYGBcbiAgICAgKiBTZXRcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIHRoaXMucGFuZWwuaGVhZGVyLmx2ID0gJzUnO1xuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIFtsdl09XCJteUN1c3RvbUxldmVsXCI+PC9pZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sZXZlbCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbHYgPSAnMyc7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGhlYWRlclxuICAgICAqIEdldFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgY29uc3QgY3VycmVudFJvbGUgPSB0aGlzLnBhbmVsLmhlYWRlci5yb2xlO1xuICAgICAqIGBgYFxuICAgICAqIFNldFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgdGhpcy5wYW5lbC5oZWFkZXIucm9sZSA9ICc1JztcbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBbcm9sZV09XCInY3VzdG9tJ1wiPjwvaWd4LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvbGUgPSAnaGVhZGluZyc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBjb250cm9scygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5wYW5lbC5pZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW5uZXJFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBleHBhbmQvY29sbGFwc2UgaWNvblxuICAgICAqIEFjY2VwdHMgYGxlZnRgLCBgcmlnaHRgIG9yIGBub25lYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgY29uc3QgY3VycmVudEljb25Qb3NpdGlvbiA9IHRoaXMucGFuZWwuaGVhZGVyLmljb25Qb3NpdGlvbjtcbiAgICAgKiBgYGBcbiAgICAgKiBTZXRcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIHRoaXMucGFuZWwuaGVhZGVyLmljb25Qb3NpdGlvbiA9ICdsZWZ0JztcbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBbaWNvblBvc2l0aW9uXT1cIidyaWdodCdcIj48L2lneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25Qb3NpdGlvbjogRXhwYW5zaW9uUGFuZWxIZWFkZXJJY29uUG9zaXRpb24gPSBFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbi5MRUZUO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuZXZlciBhIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhlYWRlciBob3N0XG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBoYW5kbGVJbnRlcmFjdGlvbihldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykge1xuICAgICAqICAuLi5cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqICA8aWd4LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIgKGludGVyYWN0aW9uKT1cImhhbmRsZUludGVyYWN0aW9uKCRldmVudClcIj5cbiAgICAgKiAgICAgIC4uLlxuICAgICAqICA8L2lneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBpbnRlcmFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8SUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1leHBhbnNpb24tcGFuZWxfX2hlYWRlcicpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1leHBhbnNpb24tcGFuZWxfX2hlYWRlcic7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZXhwYW5zaW9uLXBhbmVsX19oZWFkZXItLWV4cGFuZGVkJylcbiAgICBwdWJsaWMgZ2V0IGlzRXhwYW5kZWQoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5wYW5lbC5jb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cy9zZXRzIHRoZSB3aGV0aGVyIHRoZSBoZWFkZXIgaXMgZGlzYWJsZWRcbiAgICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgaGVhZGVyIHdpbGwgbm90IGhhbmRsZSB1c2VyIGV2ZW50cyBhbmQgd2lsbCBzdG9wIHRoZWlyIHByb3BhZ2F0aW9uXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIGNvbnN0IGlzRGlzYWJsZWQgPSB0aGlzLnBhbmVsLmhlYWRlci5kaXNhYmxlZDtcbiAgICAgKiBgYGBcbiAgICAgKiBTZXRcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIHRoaXMucGFuZWwuaGVhZGVyLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBbZGlzYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAqICAgICAuLi5cbiAgICAgKiAgPC9pZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1leHBhbnNpb24tcGFuZWwtLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSB2YWw7XG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICAgIC8vIFYuUy4gSnVuZSAxMXRoLCAyMDIxOiAjOTY5NiBUYWJJbmRleCBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHBhbmVsIGlzIGRpc2FibGVkXG4gICAgICAgICAgICBkZWxldGUgdGhpcy50YWJJbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFiSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hFeHBhbnNpb25QYW5lbEljb25EaXJlY3RpdmUsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByaXZhdGUgY3VzdG9tSWNvblJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBWaWV3Q2hpbGQoSWd4SWNvbkNvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSBkZWZhdWx0SWNvblJlZjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgZXhwYW5zaW9uIHBhbmVsIGhlYWRlci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IHBhbmVsSGVhZGVySWQgPSAgdGhpcy5wYW5lbC5oZWFkZXIuaWQ7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgaWQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyB0YWJJbmRleCA9IDA7XG5cbiAgICAvLyBwcm9wZXJ0aWVzIHNlY3Rpb25cbiAgICBwcml2YXRlIF9pY29uVGVtcGxhdGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoQEhvc3QoKSBASW5qZWN0KElHWF9FWFBBTlNJT05fUEFORUxfQ09NUE9ORU5UKSBwdWJsaWMgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQmFzZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHRoaXMuaWQgPSBgJHt0aGlzLnBhbmVsLmlkfS1oZWFkZXJgO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkVudGVyJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLlNwYWNlJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLlNwYWNlYmFyJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQWN0aW9uKGV2dD86IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXZlbnRBcmdzOiBJRXhwYW5zaW9uUGFuZWxDYW5jZWxhYmxlRXZlbnRBcmdzID0geyBldmVudDogZXZ0LCBvd25lcjogdGhpcy5wYW5lbCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICB0aGlzLmludGVyYWN0aW9uLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgaWYgKGV2ZW50QXJncy5jYW5jZWwgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBhbmVsLnRvZ2dsZShldnQpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkFsdC5BcnJvd0Rvd24nLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvcGVuUGFuZWwoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgICAgY29uc3QgZXZlbnRBcmdzOiBJRXhwYW5zaW9uUGFuZWxDYW5jZWxhYmxlRXZlbnRBcmdzID0geyBldmVudCwgb3duZXI6IHRoaXMucGFuZWwsIGNhbmNlbDogZmFsc2UgfTtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJhY3Rpb24uZW1pdChldmVudEFyZ3MpO1xuICAgICAgICAgICAgaWYgKGV2ZW50QXJncy5jYW5jZWwgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBhbmVsLmV4cGFuZChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkFsdC5BcnJvd1VwJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgY2xvc2VQYW5lbChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICBjb25zdCBldmVudEFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MgPSB7IGV2ZW50LCBvd25lcjogdGhpcy5wYW5lbCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGlvbi5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgICAgICBpZiAoZXZlbnRBcmdzLmNhbmNlbCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGFuZWwuY29sbGFwc2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaWNvblBvc2l0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmljb25Qb3NpdGlvbikge1xuICAgICAgICAgICAgY2FzZSAoRXhwYW5zaW9uUGFuZWxIZWFkZXJJY29uUG9zaXRpb24uTEVGVCk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBpZ3gtZXhwYW5zaW9uLXBhbmVsX19oZWFkZXItaWNvbi0tc3RhcnRgO1xuICAgICAgICAgICAgY2FzZSAoRXhwYW5zaW9uUGFuZWxIZWFkZXJJY29uUG9zaXRpb24uUklHSFQpOlxuICAgICAgICAgICAgICAgIHJldHVybiBgaWd4LWV4cGFuc2lvbi1wYW5lbF9faGVhZGVyLWljb24tLWVuZGA7XG4gICAgICAgICAgICBjYXNlIChFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbi5OT05FKTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYGlneC1leHBhbnNpb24tcGFuZWxfX2hlYWRlci1pY29uLS1ub25lYDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlneC1leHBhbnNpb24tcGFuZWxfX2hlYWRlci1pbm5lclwiIFthdHRyLnRhYmluZGV4XT1cInRhYkluZGV4XCIgcm9sZT1cImJ1dHRvblwiIFthdHRyLmlkXT1cImlkXCJcblthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIiBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImNvbnRyb2xzXCI+XG4gICAgPGRpdiBjbGFzcz1cImlneC1leHBhbnNpb24tcGFuZWxfX3RpdGxlLXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LWV4cGFuc2lvbi1wYW5lbC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LWV4cGFuc2lvbi1wYW5lbC1kZXNjcmlwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBbY2xhc3NdPVwiaWNvblBvc2l0aW9uQ2xhc3NcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCJpY29uVGVtcGxhdGVcIiBzZWxlY3Q9XCJpZ3gtZXhwYW5zaW9uLXBhbmVsLWljb25cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFpY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIHt7cGFuZWwuY29sbGFwc2VkPyAnZXhwYW5kX21vcmUnOidleHBhbmRfbGVzcyd9fVxuICAgICAgICA8L2lneC1pY29uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQTZELE1BQU0sMEJBQTBCLENBQUM7QUFDcEksT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsYUFBYSxDQUFBLE1BQU0sQ0FBQztJQUNoRSxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQyxDQUFDO0FBVUgsTUFBTSxPQUFPLGdDQUFnQztJQUN6Qzs7O09BR0c7SUFDSCxJQUFXLE9BQU87UUFDZCxNQUFNLGdCQUFnQixH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LFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDeEMsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQzNDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCMUIsU0FBUztzQkFEZixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWMxQyxVQUFVO3NCQURoQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgSG9zdCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT3V0cHV0LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBJbmplY3QsXG4gICAgVmlld0NoaWxkLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hFeHBhbnNpb25QYW5lbEljb25EaXJlY3RpdmUgfSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC5kaXJlY3RpdmVzJztcbmltcG9ydCB7IElHWF9FWFBBTlNJT05fUEFORUxfQ09NUE9ORU5ULCBJZ3hFeHBhbnNpb25QYW5lbEJhc2UsIElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MgfSBmcm9tICcuL2V4cGFuc2lvbi1wYW5lbC5jb21tb24nO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbmV4cG9ydCBjb25zdCBFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbiA9IC8qQF9fUFVSRV9fKi9ta2VudW0oe1xuICAgIExFRlQ6ICdsZWZ0JyxcbiAgICBOT05FOiAnbm9uZScsXG4gICAgUklHSFQ6ICdyaWdodCdcbn0pO1xuZXhwb3J0IHR5cGUgRXhwYW5zaW9uUGFuZWxIZWFkZXJJY29uUG9zaXRpb24gPSAodHlwZW9mIEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uKVtrZXlvZiB0eXBlb2YgRXhwYW5zaW9uUGFuZWxIZWFkZXJJY29uUG9zaXRpb25dO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnZXhwYW5zaW9uLXBhbmVsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWd4SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4RXhwYW5zaW9uUGFuZWxIZWFkZXJDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGBpZ3gtZXhwYW5zaW9uLXBhbmVsLWljb25gIGVsZW1lbnQ7XG4gICAgICogSWYgYGljb25Qb3NpdGlvbmAgaXMgYE5PTkVgIC0gcmV0dXJuIG51bGw7XG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uUmVmKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICBjb25zdCByZW5kZXJlZFRlbXBsYXRlID0gdGhpcy5jdXN0b21JY29uUmVmID8/IHRoaXMuZGVmYXVsdEljb25SZWY7XG4gICAgICAgIHJldHVybiB0aGlzLmljb25Qb3NpdGlvbiAhPT0gRXhwYW5zaW9uUGFuZWxIZWFkZXJJY29uUG9zaXRpb24uTk9ORSA/IHJlbmRlcmVkVGVtcGxhdGUgOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKElneEV4cGFuc2lvblBhbmVsSWNvbkRpcmVjdGl2ZSlcbiAgICBwdWJsaWMgc2V0IGljb25UZW1wbGF0ZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faWNvblRlbXBsYXRlID0gdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGljb25UZW1wbGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb25UZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIGBhcmlhLWxldmVsYCBhdHRyaWJ1dGUgb2YgdGhlIGhlYWRlclxuICAgICAqIEdldFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgY29uc3QgY3VycmVudEFyaWFMZXZlbCA9IHRoaXMucGFuZWwuaGVhZGVyLmx2O1xuICAgICAqIGBgYFxuICAgICAqIFNldFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgdGhpcy5wYW5lbC5oZWFkZXIubHYgPSAnNSc7XG4gICAgICogYGBgXG4gICAgICogYGBgaHRtbFxuICAgICAqICA8aWd4LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIgW2x2XT1cIm15Q3VzdG9tTGV2ZWxcIj48L2lneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxldmVsJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsdiA9ICczJztcblxuICAgIC8qKlxuICAgICAqIEdldHMvc2V0cyB0aGUgYHJvbGVgIGF0dHJpYnV0ZSBvZiB0aGUgaGVhZGVyXG4gICAgICogR2V0XG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBjb25zdCBjdXJyZW50Um9sZSA9IHRoaXMucGFuZWwuaGVhZGVyLnJvbGU7XG4gICAgICogYGBgXG4gICAgICogU2V0XG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICB0aGlzLnBhbmVsLmhlYWRlci5yb2xlID0gJzUnO1xuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIFtyb2xlXT1cIidjdXN0b20nXCI+PC9pZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm9sZSA9ICdoZWFkaW5nJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvbnRyb2xzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhbmVsLmlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbm5lckVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIHBvc2l0aW9uIG9mIHRoZSBleHBhbnNpb24tcGFuZWwtaGVhZGVyIGV4cGFuZC9jb2xsYXBzZSBpY29uXG4gICAgICogQWNjZXB0cyBgbGVmdGAsIGByaWdodGAgb3IgYG5vbmVgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICBjb25zdCBjdXJyZW50SWNvblBvc2l0aW9uID0gdGhpcy5wYW5lbC5oZWFkZXIuaWNvblBvc2l0aW9uO1xuICAgICAqIGBgYFxuICAgICAqIFNldFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgdGhpcy5wYW5lbC5oZWFkZXIuaWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIFtpY29uUG9zaXRpb25dPVwiJ3JpZ2h0J1wiPjwvaWd4LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvblBvc2l0aW9uOiBFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbiA9IEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uLkxFRlQ7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW5ldmVyIGEgdXNlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGVhZGVyIGhvc3RcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogIGhhbmRsZUludGVyYWN0aW9uKGV2ZW50OiBJRXhwYW5zaW9uUGFuZWxDYW5jZWxhYmxlRXZlbnRBcmdzKSB7XG4gICAgICogIC4uLlxuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciAoaW50ZXJhY3Rpb24pPVwiaGFuZGxlSW50ZXJhY3Rpb24oJGV2ZW50KVwiPlxuICAgICAqICAgICAgLi4uXG4gICAgICogIDwvaWd4LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGludGVyYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxJRXhwYW5zaW9uUGFuZWxDYW5jZWxhYmxlRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWV4cGFuc2lvbi1wYW5lbF9faGVhZGVyJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWV4cGFuc2lvbi1wYW5lbF9faGVhZGVyJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1leHBhbnNpb24tcGFuZWxfX2hlYWRlci0tZXhwYW5kZWQnKVxuICAgIHB1YmxpYyBnZXQgaXNFeHBhbmRlZCgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnBhbmVsLmNvbGxhcHNlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL3NldHMgdGhlIHdoZXRoZXIgdGhlIGhlYWRlciBpcyBkaXNhYmxlZFxuICAgICAqIFdoZW4gZGlzYWJsZWQsIHRoZSBoZWFkZXIgd2lsbCBub3QgaGFuZGxlIHVzZXIgZXZlbnRzIGFuZCB3aWxsIHN0b3AgdGhlaXIgcHJvcGFnYXRpb25cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMucGFuZWwuaGVhZGVyLmRpc2FibGVkO1xuICAgICAqIGBgYFxuICAgICAqIFNldFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgdGhpcy5wYW5lbC5oZWFkZXIuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAqIGBgYFxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIFtkaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICogICAgIC4uLlxuICAgICAqICA8L2lneC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWV4cGFuc2lvbi1wYW5lbC0tZGlzYWJsZWQnKVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbDtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgLy8gVi5TLiBKdW5lIDExdGgsIDIwMjE6ICM5Njk2IFRhYkluZGV4IHNob3VsZCBiZSByZW1vdmVkIHdoZW4gcGFuZWwgaXMgZGlzYWJsZWRcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRhYkluZGV4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWJJbmRleCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAQ29udGVudENoaWxkKElneEV4cGFuc2lvblBhbmVsSWNvbkRpcmVjdGl2ZSwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJpdmF0ZSBjdXN0b21JY29uUmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQFZpZXdDaGlsZChJZ3hJY29uQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBwcml2YXRlIGRlZmF1bHRJY29uUmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBgaWRgIG9mIHRoZSBleHBhbnNpb24gcGFuZWwgaGVhZGVyLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcGFuZWxIZWFkZXJJZCA9ICB0aGlzLnBhbmVsLmhlYWRlci5pZDtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBpZCA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIHRhYkluZGV4ID0gMDtcblxuICAgIC8vIHByb3BlcnRpZXMgc2VjdGlvblxuICAgIHByaXZhdGUgX2ljb25UZW1wbGF0ZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihASG9zdCgpIEBJbmplY3QoSUdYX0VYUEFOU0lPTl9QQU5FTF9DT01QT05FTlQpIHB1YmxpYyBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxCYXNlLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5pZCA9IGAke3RoaXMucGFuZWwuaWR9LWhlYWRlcmA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uRW50ZXInLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uU3BhY2UnLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uU3BhY2ViYXInLCBbJyRldmVudCddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25BY3Rpb24oZXZ0PzogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBldmVudEFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MgPSB7IGV2ZW50OiBldnQsIG93bmVyOiB0aGlzLnBhbmVsLCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgIHRoaXMuaW50ZXJhY3Rpb24uZW1pdChldmVudEFyZ3MpO1xuICAgICAgICBpZiAoZXZlbnRBcmdzLmNhbmNlbCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGFuZWwudG9nZ2xlKGV2dCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uQWx0LkFycm93RG93bicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9wZW5QYW5lbChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgICBjb25zdCBldmVudEFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MgPSB7IGV2ZW50LCBvd25lcjogdGhpcy5wYW5lbCwgY2FuY2VsOiBmYWxzZSB9O1xuICAgICAgICAgICAgdGhpcy5pbnRlcmFjdGlvbi5lbWl0KGV2ZW50QXJncyk7XG4gICAgICAgICAgICBpZiAoZXZlbnRBcmdzLmNhbmNlbCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGFuZWwuZXhwYW5kKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uQWx0LkFycm93VXAnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBjbG9zZVBhbmVsKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50QXJnczogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyA9IHsgZXZlbnQsIG93bmVyOiB0aGlzLnBhbmVsLCBjYW5jZWw6IGZhbHNlIH07XG4gICAgICAgICAgICB0aGlzLmludGVyYWN0aW9uLmVtaXQoZXZlbnRBcmdzKTtcbiAgICAgICAgICAgIGlmIChldmVudEFyZ3MuY2FuY2VsID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wYW5lbC5jb2xsYXBzZShldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpY29uUG9zaXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaWNvblBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIChFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbi5MRUZUKTpcbiAgICAgICAgICAgICAgICByZXR1cm4gYGlneC1leHBhbnNpb24tcGFuZWxfX2hlYWRlci1pY29uLS1zdGFydGA7XG4gICAgICAgICAgICBjYXNlIChFeHBhbnNpb25QYW5lbEhlYWRlckljb25Qb3NpdGlvbi5SSUdIVCk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBpZ3gtZXhwYW5zaW9uLXBhbmVsX19oZWFkZXItaWNvbi0tZW5kYDtcbiAgICAgICAgICAgIGNhc2UgKEV4cGFuc2lvblBhbmVsSGVhZGVySWNvblBvc2l0aW9uLk5PTkUpOlxuICAgICAgICAgICAgICAgIHJldHVybiBgaWd4LWV4cGFuc2lvbi1wYW5lbF9faGVhZGVyLWljb24tLW5vbmVgO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWV4cGFuc2lvbi1wYW5lbF9faGVhZGVyLWlubmVyXCIgW2F0dHIudGFiaW5kZXhdPVwidGFiSW5kZXhcIiByb2xlPVwiYnV0dG9uXCIgW2F0dHIuaWRdPVwiaWRcIlxuW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiIFthdHRyLmFyaWEtY29udHJvbHNdPVwiY29udHJvbHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWV4cGFuc2lvbi1wYW5lbF9fdGl0bGUtd3JhcHBlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtZXhwYW5zaW9uLXBhbmVsLXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtZXhwYW5zaW9uLXBhbmVsLWRlc2NyaXB0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8ZGl2IFtjbGFzc109XCJpY29uUG9zaXRpb25DbGFzc1wiPlxuICAgICAgICA8bmctY29udGVudCAqbmdJZj1cImljb25UZW1wbGF0ZVwiIHNlbGVjdD1cImlneC1leHBhbnNpb24tcGFuZWwtaWNvblwiPjwvbmctY29udGVudD5cbiAgICAgICAgPGlneC1pY29uICpuZ0lmPVwiIWljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAge3twYW5lbC5jb2xsYXBzZWQ/ICdleHBhbmRfbW9yZSc6J2V4cGFuZF9sZXNzJ319XG4gICAgICAgIDwvaWd4LWljb24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Directive, InjectionToken } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/** @hidden */
|
|
4
|
-
export const IGX_EXPANSION_PANEL_COMPONENT = new InjectionToken('IgxExpansionPanelToken');
|
|
4
|
+
export const IGX_EXPANSION_PANEL_COMPONENT = /*@__PURE__*/ new InjectionToken('IgxExpansionPanelToken');
|
|
5
5
|
export class HeaderContentBaseDirective {
|
|
6
6
|
constructor(element) {
|
|
7
7
|
this.element = element;
|
|
@@ -42,4 +42,4 @@ export class HeaderContentBaseDirective {
|
|
|
42
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: HeaderContentBaseDirective, decorators: [{
|
|
43
43
|
type: Directive
|
|
44
44
|
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5zaW9uLXBhbmVsLmNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBb0JwRixjQUFjO0FBQ2QsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsYUFBYSxDQUFBLElBQUksY0FBYyxDQUF3Qix3QkFBd0IsQ0FBQyxDQUFDO0FBUzlILE1BQU0sT0FBZ0IsMEJBQTBCO0lBRTVDLFlBQXNCLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFFekM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBb0JHO1FBQ0ksc0JBQWlCLEdBQUcsQ0FBQyxPQUFtQixFQUFVLEVBQUU7WUFDdkQsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDN0IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQzthQUN0QztZQUNELElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUU7Z0JBQ25DLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbkQ7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7SUFoQzJDLENBQUM7OEdBRjVCLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUQvQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmltYXRpb25SZWZlcmVuY2VNZXRhZGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2FuY2VsYWJsZUV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBJZ3hFeHBhbnNpb25QYW5lbEJhc2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY3NzQ2xhc3M6IHN0cmluZztcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJJZDogc3RyaW5nO1xuICAgIGNvbGxhcHNlZDogYm9vbGVhbjtcbiAgICBhbmltYXRpb25TZXR0aW5nczogeyBvcGVuQW5pbWF0aW9uOiBBbmltYXRpb25SZWZlcmVuY2VNZXRhZGF0YTsgY2xvc2VBbmltYXRpb246IEFuaW1hdGlvblJlZmVyZW5jZU1ldGFkYXRhIH07XG4gICAgY29udGVudENvbGxhcHNlZDogRXZlbnRFbWl0dGVyPGFueT47XG4gICAgY29udGVudENvbGxhcHNpbmc6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICAgIGNvbnRlbnRFeHBhbmRlZDogRXZlbnRFbWl0dGVyPGFueT47XG4gICAgY29udGVudEV4cGFuZGluZzogRXZlbnRFbWl0dGVyPGFueT47XG4gICAgY29sbGFwc2UoZXZ0PzogRXZlbnQpO1xuICAgIGV4cGFuZChldnQ/OiBFdmVudCk7XG4gICAgdG9nZ2xlKGV2dD86IEV2ZW50KTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBjb25zdCBJR1hfRVhQQU5TSU9OX1BBTkVMX0NPTVBPTkVOVCA9IC8qQF9fUFVSRV9fKi9uZXcgSW5qZWN0aW9uVG9rZW48SWd4RXhwYW5zaW9uUGFuZWxCYXNlPignSWd4RXhwYW5zaW9uUGFuZWxUb2tlbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFeHBhbnNpb25QYW5lbEV2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBldmVudDogRXZlbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyAgZXh0ZW5kcyBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3MsIENhbmNlbGFibGVFdmVudEFyZ3Mge31cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSGVhZGVyQ29udGVudEJhc2VEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYHRleHRDb250ZW50YCBvZiBhbiBlbGVtZW50XG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1leHBhbnNpb24tcGFuZWwtdGl0bGU+XG4gICAgICogIFRvb2x0aXAgY29udGVudFxuICAgICAqIDwvaWd4LWV4cGFuc2lvbi1wYW5lbC10aXRsZT5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqICBvciB0aGUgYHRpdGxlYCBjb250ZW50XG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1leHBhbnNpb24tcGFuZWwtdGl0bGUgW3RpdGxlXT1cIidUb29sdGlwIGNvbnRlbnQnXCI+XG4gICAgICogPC9pZ3gtZXhwYW5zaW9uLXBhbmVsLXRpdGxlPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogSWYgYm90aCBhcmUgcHJvdmlkZWQsIHJldHVybnMgdGhlIGB0aXRsZWAgY29udGVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbGVtZW50XG4gICAgICogQHJldHVybnMgdG9vbHRpcCBjb250ZW50IGZvciBhbiBlbGVtZW50XG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2x0aXBDb250ZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBzdHJpbmcgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudC5uYXRpdmVFbGVtZW50LnRpdGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5uYXRpdmVFbGVtZW50LnRpdGxlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfTtcbn1cbiJdfQ==
|