@fundamental-ngx/core 0.43.4 → 0.43.6
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/button/base-button.d.ts +3 -1
- package/button/button.component.d.ts +5 -0
- package/date-picker/date-picker.component.d.ts +15 -2
- package/datetime-picker/datetime-picker.component.d.ts +6 -0
- package/esm2020/button/base-button.mjs +4 -2
- package/esm2020/button/button.component.mjs +19 -5
- package/esm2020/carousel/carousel.service.mjs +5 -1
- package/esm2020/date-picker/date-picker.component.mjs +51 -22
- package/esm2020/datetime-picker/datetime-picker.component.mjs +29 -17
- package/esm2020/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
- package/esm2020/multi-input/multi-input.component.mjs +3 -3
- package/esm2020/switch/switch.component.mjs +3 -3
- package/fesm2015/fundamental-ngx-core-button.mjs +21 -5
- package/fesm2015/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-carousel.mjs +4 -0
- package/fesm2015/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-date-picker.mjs +51 -21
- package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +28 -16
- package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-multi-input.mjs +4 -4
- package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2015/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-button.mjs +21 -5
- package/fesm2020/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-carousel.mjs +4 -0
- package/fesm2020/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-date-picker.mjs +50 -21
- package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +28 -16
- package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-multi-input.mjs +4 -4
- package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2020/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fundamental-ngx-core-v0.43.6.tgz +0 -0
- package/multi-input/multi-input.component.d.ts +3 -1
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/fundamental-ngx-core-v0.43.4.tgz +0 -0
package/button/base-button.d.ts
CHANGED
|
@@ -31,6 +31,8 @@ export declare class BaseButton {
|
|
|
31
31
|
fdMenu: boolean;
|
|
32
32
|
/** adding native aria-label to the component */
|
|
33
33
|
ariaLabel: Nullable<string>;
|
|
34
|
+
/** adding native aria-description to the componenet */
|
|
35
|
+
ariaDescription: Nullable<string>;
|
|
34
36
|
/** @hidden */
|
|
35
37
|
_toggled: boolean;
|
|
36
38
|
/** @hidden */
|
|
@@ -51,5 +53,5 @@ export declare class BaseButton {
|
|
|
51
53
|
set ariaDisabled(value: BooleanInput);
|
|
52
54
|
get ariaDisabled(): boolean;
|
|
53
55
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseButton, never>;
|
|
54
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseButton, never, never, { "type": "type"; "glyphPosition": "glyphPosition"; "glyph": "glyph"; "fdType": "fdType"; "label": "label"; "fdMenu": "fdMenu"; "ariaLabel": "ariaLabel"; "toggled": "toggled"; "disabled": "disabled"; "ariaDisabled": "aria-disabled"; }, {}, never, never, false, never>;
|
|
56
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<BaseButton, never, never, { "type": "type"; "glyphPosition": "glyphPosition"; "glyph": "glyph"; "fdType": "fdType"; "label": "label"; "fdMenu": "fdMenu"; "ariaLabel": "ariaLabel"; "ariaDescription": "ariaDescription"; "toggled": "toggled"; "disabled": "disabled"; "ariaDisabled": "aria-disabled"; }, {}, never, never, false, never>;
|
|
55
57
|
}
|
|
@@ -26,6 +26,11 @@ export declare class ButtonComponent extends BaseButton implements OnChanges, Cs
|
|
|
26
26
|
* @hidden
|
|
27
27
|
*/
|
|
28
28
|
get buttonArialabel(): string | null;
|
|
29
|
+
/**
|
|
30
|
+
* Calculate aria-description attribute
|
|
31
|
+
* @hidden
|
|
32
|
+
*/
|
|
33
|
+
get buttonAriaDescription(): string | null;
|
|
29
34
|
/** @hidden */
|
|
30
35
|
private _subscriptions;
|
|
31
36
|
/** Forces the focus outline around the button, which is not default behavior in Safari. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessor, Validator } from '@angular/forms';
|
|
3
3
|
import { Placement, SpecialDayRule } from '@fundamental-ngx/core/shared';
|
|
4
4
|
import { CalendarComponent, CalendarType, CalendarYearGrid, DateRange, DaysOfWeek, FdCalendarView, NavigationButtonDisableFunction } from '@fundamental-ngx/core/calendar';
|
|
@@ -156,7 +156,10 @@ export declare class DatePickerComponent<D> implements OnInit, OnDestroy, AfterV
|
|
|
156
156
|
*/
|
|
157
157
|
showWeekNumbers: boolean;
|
|
158
158
|
/** Whether the date picker is open. Can be used through two-way binding. */
|
|
159
|
-
isOpen: boolean;
|
|
159
|
+
set isOpen(value: boolean);
|
|
160
|
+
get isOpen(): boolean;
|
|
161
|
+
/** @hidden */
|
|
162
|
+
private _isOpen;
|
|
160
163
|
/** Should date picker be inlined. */
|
|
161
164
|
inline: boolean;
|
|
162
165
|
/** aria-labelledby for element describing date-picker. */
|
|
@@ -182,6 +185,8 @@ export declare class DatePickerComponent<D> implements OnInit, OnDestroy, AfterV
|
|
|
182
185
|
readonly selectedRangeDateChange: EventEmitter<DateRange<D>>;
|
|
183
186
|
/** Event thrown every time calendar active view is changed */
|
|
184
187
|
readonly activeViewChange: EventEmitter<FdCalendarView>;
|
|
188
|
+
/** @hideen */
|
|
189
|
+
private readonly _calendars;
|
|
185
190
|
/** @hidden */
|
|
186
191
|
_calendarComponent: CalendarComponent<D>;
|
|
187
192
|
/** @hidden */
|
|
@@ -193,8 +198,12 @@ export declare class DatePickerComponent<D> implements OnInit, OnDestroy, AfterV
|
|
|
193
198
|
/** @hidden Whether the date input is invalid */
|
|
194
199
|
_isInvalidDateInput: boolean;
|
|
195
200
|
/** @hidden */
|
|
201
|
+
_showPopoverContents: boolean;
|
|
202
|
+
/** @hidden */
|
|
196
203
|
readonly _formValueStateMessageId: string;
|
|
197
204
|
/** @hidden */
|
|
205
|
+
private _calendarPendingDate;
|
|
206
|
+
/** @hidden */
|
|
198
207
|
private readonly _onDestroy$;
|
|
199
208
|
/** @hidden */
|
|
200
209
|
private _subscriptions;
|
|
@@ -234,6 +243,8 @@ export declare class DatePickerComponent<D> implements OnInit, OnDestroy, AfterV
|
|
|
234
243
|
/** @hidden */
|
|
235
244
|
ngOnInit(): void;
|
|
236
245
|
/** @hidden */
|
|
246
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
247
|
+
/** @hidden */
|
|
237
248
|
ngAfterViewInit(): void;
|
|
238
249
|
/** @hidden */
|
|
239
250
|
ngOnDestroy(): void;
|
|
@@ -328,6 +339,8 @@ export declare class DatePickerComponent<D> implements OnInit, OnDestroy, AfterV
|
|
|
328
339
|
private _formatDateRange;
|
|
329
340
|
/** @hidden */
|
|
330
341
|
private _InitialiseVariablesInMessageService;
|
|
342
|
+
/** @hidden */
|
|
343
|
+
private _setOpenState;
|
|
331
344
|
static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent<any>, [null, { optional: true; }, { optional: true; }, null]>;
|
|
332
345
|
static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent<any>, "fd-date-picker", never, { "type": "type"; "placeholder": "placeholder"; "inputId": "inputId"; "required": "required"; "message": "message"; "messageTriggers": "messageTriggers"; "selectedDate": "selectedDate"; "selectedRangeDate": "selectedRangeDate"; "startingDayOfWeek": "startingDayOfWeek"; "rangeHoverEffect": "rangeHoverEffect"; "useValidation": "useValidation"; "dateInputLabel": "dateInputLabel"; "dateRangeInputLabel": "dateRangeInputLabel"; "displayCalendarToggleLabel": "displayCalendarToggleLabel"; "valueStateSuccessMessage": "valueStateSuccessMessage"; "valueStateInformationMessage": "valueStateInformationMessage"; "valueStateWarningMessage": "valueStateWarningMessage"; "valueStateErrorMessage": "valueStateErrorMessage"; "allowNull": "allowNull"; "activeView": "activeView"; "placement": "placement"; "appendTo": "appendTo"; "disabled": "disabled"; "closeOnDateChoose": "closeOnDateChoose"; "showTodayButton": "showTodayButton"; "todayButtonLabel": "todayButtonLabel"; "previousButtonDisableFunction": "previousButtonDisableFunction"; "nextButtonDisableFunction": "nextButtonDisableFunction"; "state": "state"; "buttonFocusable": "buttonFocusable"; "specialDaysRules": "specialDaysRules"; "yearGrid": "yearGrid"; "aggregatedYearGrid": "aggregatedYearGrid"; "markWeekends": "markWeekends"; "showWeekNumbers": "showWeekNumbers"; "isOpen": "isOpen"; "inline": "inline"; "ariaLabelledBy": "ariaLabelledBy"; "processInputOnBlur": "processInputOnBlur"; "preventScrollOnFocus": "preventScrollOnFocus"; "disableFunction": "disableFunction"; "disableRangeStartFunction": "disableRangeStartFunction"; "disableRangeEndFunction": "disableRangeEndFunction"; }, { "isOpenChange": "isOpenChange"; "selectedDateChange": "selectedDateChange"; "selectedRangeDateChange": "selectedRangeDateChange"; "activeViewChange": "activeViewChange"; }, never, ["*"], false, never>;
|
|
333
346
|
}
|
|
@@ -190,6 +190,8 @@ export declare class DatetimePickerComponent<D> implements OnInit, OnDestroy, On
|
|
|
190
190
|
/** Indicates when datetime input is in invalid state. */
|
|
191
191
|
get isInvalidDateInput(): boolean;
|
|
192
192
|
/** @hidden Reference to the inner calendar component. */
|
|
193
|
+
private set _calendarCmp(value);
|
|
194
|
+
/** @hidden */
|
|
193
195
|
_calendarComponent: CalendarComponent<D>;
|
|
194
196
|
/** @hidden */
|
|
195
197
|
_inputGroupElement: ElementRef;
|
|
@@ -218,6 +220,10 @@ export declare class DatetimePickerComponent<D> implements OnInit, OnDestroy, On
|
|
|
218
220
|
/** @hidden whether to display date or time in mobile mode */
|
|
219
221
|
_displayType: 'date' | 'time';
|
|
220
222
|
/** @hidden */
|
|
223
|
+
_showPopoverContents: boolean;
|
|
224
|
+
/** @hidden */
|
|
225
|
+
private _calendarPendingDate;
|
|
226
|
+
/** @hidden */
|
|
221
227
|
private readonly _onDestroy$;
|
|
222
228
|
/** @hidden */
|
|
223
229
|
private _subscriptions;
|
|
@@ -50,7 +50,7 @@ export class BaseButton {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
BaseButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseButton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
-
BaseButton.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseButton, inputs: { type: "type", glyphPosition: "glyphPosition", glyph: "glyph", fdType: "fdType", label: "label", fdMenu: "fdMenu", ariaLabel: "ariaLabel", toggled: "toggled", disabled: "disabled", ariaDisabled: ["aria-disabled", "ariaDisabled"] }, host: { properties: { "class.fd-button--toggled": "this._toggled", "attr.aria-pressed": "this._toggled" } }, ngImport: i0 });
|
|
53
|
+
BaseButton.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: BaseButton, inputs: { type: "type", glyphPosition: "glyphPosition", glyph: "glyph", fdType: "fdType", label: "label", fdMenu: "fdMenu", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", toggled: "toggled", disabled: "disabled", ariaDisabled: ["aria-disabled", "ariaDisabled"] }, host: { properties: { "class.fd-button--toggled": "this._toggled", "attr.aria-pressed": "this._toggled" } }, ngImport: i0 });
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseButton, decorators: [{
|
|
55
55
|
type: Directive
|
|
56
56
|
}], propDecorators: { type: [{
|
|
@@ -67,6 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
67
67
|
type: Input
|
|
68
68
|
}], ariaLabel: [{
|
|
69
69
|
type: Input
|
|
70
|
+
}], ariaDescription: [{
|
|
71
|
+
type: Input
|
|
70
72
|
}], _toggled: [{
|
|
71
73
|
type: HostBinding,
|
|
72
74
|
args: ['class.fd-button--toggled']
|
|
@@ -81,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
81
83
|
type: Input,
|
|
82
84
|
args: ['aria-disabled']
|
|
83
85
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9idXR0b24vYmFzZS1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBbUI1RSxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVJOztXQUVHO1FBRUgsU0FBSSxHQUFxQixRQUFRLENBQUM7UUFFbEMsd0NBQXdDO1FBRXhDLGtCQUFhLEdBQWtCLFFBQVEsQ0FBQztRQVN4Qzs7OztXQUlHO1FBRUgsV0FBTSxHQUFlLFVBQVUsQ0FBQztRQVFoQzs7V0FFRztRQUVILFdBQU0sR0FBRyxLQUFLLENBQUM7UUFlZixjQUFjO1FBQ2QsY0FBUyxHQUFHLEtBQUssQ0FBQztLQW1DckI7SUE5QkcsMENBQTBDO0lBQzFDLElBQ0ksT0FBTyxDQUFDLEtBQW1CO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLFFBQVEsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxZQUFZLENBQUMsS0FBbUI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7O3VHQXRGUSxVQUFVOzJGQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsU0FBUzs4QkFNTixJQUFJO3NCQURILEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQVFOLEtBQUs7c0JBREosS0FBSztnQkFTTixNQUFNO3NCQURMLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLE1BQU07c0JBREwsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQU1OLFFBQVE7c0JBRlAsV0FBVzt1QkFBQywwQkFBMEI7O3NCQUN0QyxXQUFXO3VCQUFDLG1CQUFtQjtnQkFXNUIsT0FBTztzQkFEVixLQUFLO2dCQVlGLFFBQVE7c0JBRFgsS0FBSztnQkFZRixZQUFZO3NCQURmLEtBQUs7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmcgKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBHbHlwaFBvc2l0aW9uID0gJ2JlZm9yZScgfCAnYWZ0ZXInO1xuXG5leHBvcnQgdHlwZSBCdXR0b25UeXBlID1cbiAgICB8ICcnXG4gICAgfCAnc3RhbmRhcmQnXG4gICAgfCAncG9zaXRpdmUnXG4gICAgfCAnbmVnYXRpdmUnXG4gICAgfCAnYXR0ZW50aW9uJ1xuICAgIHwgJ2hhbGYnXG4gICAgfCAnZ2hvc3QnXG4gICAgfCAndHJhbnNwYXJlbnQnXG4gICAgfCAnZW1waGFzaXplZCdcbiAgICB8ICdtZW51JztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUJ1dHRvbiB7XG4gICAgLyoqXG4gICAgICogTmF0aXZlIHR5cGUgb2YgYnV0dG9uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGU6IE51bGxhYmxlPHN0cmluZz4gPSAnYnV0dG9uJztcblxuICAgIC8qKiBQb3NpdGlvbiBvZiBnbHlwaCByZWxhdGVkIHRvIHRleHQgKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoUG9zaXRpb246IEdseXBoUG9zaXRpb24gPSAnYmVmb3JlJztcblxuICAgIC8qKiBUaGUgaWNvbiB0byBpbmNsdWRlIGluIHRoZSBidXR0b24uIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29ucy5cbiAgICAgKiBTZXR0ZXIgaXMgdXNlZCB0byBjb250cm9sIHdoZW4gY3NzIGNsYXNzIGhhdmUgdG8gYmUgcmVidWlsZGVkLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgc2V0IHRvICcnLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIGJ1dHRvbi4gVHlwZXMgaW5jbHVkZTpcbiAgICAgKiAnc3RhbmRhcmQnIHwgJ3Bvc2l0aXZlJyB8ICduZWdhdGl2ZScgfCAnYXR0ZW50aW9uJyB8ICdoYWxmJyB8ICdnaG9zdCcgfCAndHJhbnNwYXJlbnQnIHwgJ2VtcGhhc2l6ZWQnIHwgJ21lbnUnLlxuICAgICAqIExlYXZlIGVtcHR5IGZvciBkZWZhdWx0IChTdGFuZGFyZCBidXR0b24pLidcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIHNldCB0byAnc3RhbmRhcmQnXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmZFR5cGU6IEJ1dHRvblR5cGUgPSAnc3RhbmRhcmQnO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCByZW5kZXJlZCBpbnNpZGUgYnV0dG9uIGNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGFwcGx5IG1lbnUgbW9kZSB0byB0aGUgYnV0dG9uLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgc2V0IHRvIGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmZE1lbnUgPSBmYWxzZTtcblxuICAgIC8qKiBhZGRpbmcgbmF0aXZlIGFyaWEtbGFiZWwgdG8gdGhlIGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIGFkZGluZyBuYXRpdmUgYXJpYS1kZXNjcmlwdGlvbiB0byB0aGUgY29tcG9uZW5ldCAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYURlc2NyaXB0aW9uOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLWJ1dHRvbi0tdG9nZ2xlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcHJlc3NlZCcpXG4gICAgX3RvZ2dsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYXJpYURpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgYnV0dG9uIGlzIGluIHRvZ2dsZWQgc3RhdGUuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdG9nZ2xlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3RvZ2dsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgdG9nZ2xlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTmF0aXZlIGRpc2FibGVkIGF0dHJpYnV0ZSBvZiBidXR0b24gZWxlbWVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOYXRpdmUgYXJpYS1kaXNhYmxlZCBhdHRyaWJ1dGUgb2YgYnV0dG9uIGVsZW1lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoJ2FyaWEtZGlzYWJsZWQnKVxuICAgIHNldCBhcmlhRGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9hcmlhRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgYXJpYURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJpYURpc2FibGVkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -30,14 +30,27 @@ export class ButtonComponent extends BaseButton {
|
|
|
30
30
|
}
|
|
31
31
|
if (this.specialButtonType.includes(this.fdType)) {
|
|
32
32
|
if (this.label != null) {
|
|
33
|
-
return this.label
|
|
33
|
+
return this.label;
|
|
34
34
|
}
|
|
35
35
|
if (this.glyph != null) {
|
|
36
|
-
return this.
|
|
36
|
+
return this.glyph.split('-').join(' ');
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Calculate aria-description attribute
|
|
43
|
+
* @hidden
|
|
44
|
+
*/
|
|
45
|
+
get buttonAriaDescription() {
|
|
46
|
+
if (this.ariaDescription) {
|
|
47
|
+
return this.ariaDescription;
|
|
48
|
+
}
|
|
49
|
+
if (this.specialButtonType.includes(this.fdType)) {
|
|
50
|
+
return this.fdType;
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
41
54
|
/** Forces the focus outline around the button, which is not default behavior in Safari. */
|
|
42
55
|
clicked(event) {
|
|
43
56
|
const target = event?.target;
|
|
@@ -96,7 +109,7 @@ export class ButtonComponent extends BaseButton {
|
|
|
96
109
|
}
|
|
97
110
|
}
|
|
98
111
|
ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
-
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: { class: "class" }, host: { listeners: { "click": "clicked($event)" }, properties: { "attr.type": "type", "attr.disabled": "_disabled || null", "attr.aria-label": "buttonArialabel" } }, providers: [
|
|
112
|
+
ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: { class: "class" }, host: { listeners: { "click": "clicked($event)" }, properties: { "attr.type": "type", "attr.disabled": "_disabled || null", "attr.aria-label": "buttonArialabel", "attr.aria-description": "buttonAriaDescription" } }, providers: [
|
|
100
113
|
contentDensityObserverProviders(),
|
|
101
114
|
{
|
|
102
115
|
provide: FD_BUTTON_COMPONENT,
|
|
@@ -114,7 +127,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
114
127
|
args: [{ selector: 'button[fd-button], a[fd-button]', exportAs: 'fd-button', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
115
128
|
'[attr.type]': 'type',
|
|
116
129
|
'[attr.disabled]': '_disabled || null',
|
|
117
|
-
'[attr.aria-label]': 'buttonArialabel'
|
|
130
|
+
'[attr.aria-label]': 'buttonArialabel',
|
|
131
|
+
'[attr.aria-description]': 'buttonAriaDescription'
|
|
118
132
|
}, providers: [
|
|
119
133
|
contentDensityObserverProviders(),
|
|
120
134
|
{
|
|
@@ -128,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
128
142
|
type: HostListener,
|
|
129
143
|
args: ['click', ['$event']]
|
|
130
144
|
}], buildComponentCssClass: [] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBbUIsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVoSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRS9DOzs7Ozs7Ozs7R0FTRztBQXNCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBUTNDOzs7T0FHRztJQUNILElBQUksZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDekI7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUMxQztZQUVELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQy9EO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBS0QsMkZBQTJGO0lBRTNGLE9BQU8sQ0FBQyxLQUFpQjtRQUNyQixNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsTUFBcUIsQ0FBQztRQUM1QyxtREFBbUQ7UUFDbkQsSUFBSSxNQUFNLElBQUksUUFBUSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2xCO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxZQUNvQixVQUFzQixFQUM5QixrQkFBcUMsRUFDckMsdUJBQStDO1FBRXZELEtBQUssRUFBRSxDQUFDO1FBSlEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUM5Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUE5QzNELCtEQUErRDtRQUUvRCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsY0FBYztRQUNkLHNCQUFpQixHQUFrQixDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBd0J2RixjQUFjO1FBQ04sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBbUJ4Qyx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVztRQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO0lBQ1AsUUFBUTtRQUNYLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxzQkFBc0I7UUFDbEIsT0FBTztZQUNILFdBQVc7WUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsS0FBSztTQUNiLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNkLGFBQWE7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7NEdBM0ZRLGVBQWU7Z0dBQWYsZUFBZSw0UEFSYjtRQUNQLCtCQUErQixFQUFFO1FBQ2pDO1lBQ0ksT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsZUFBZTtTQUMvQjtLQUNKLCtGQ2hETCxrYUFjQTtBRGdISTtJQUFDLGFBQWE7Ozs7NkRBVWI7MkZBdEZRLGVBQWU7a0JBckIzQixTQUFTOytCQUVJLGlDQUFpQyxZQUNqQyxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsYUFBYSxFQUFFLE1BQU07d0JBQ3JCLGlCQUFpQixFQUFFLG1CQUFtQjt3QkFDdEMsbUJBQW1CLEVBQUUsaUJBQWlCO3FCQUN6QyxhQUNVO3dCQUNQLCtCQUErQixFQUFFO3dCQUNqQzs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLGlCQUFpQjt5QkFDL0I7cUJBQ0o7c0tBS0QsS0FBSztzQkFESixLQUFLO2dCQWlDTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJDakMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQnV0dG9uIH0gZnJvbSAnLi9iYXNlLWJ1dHRvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MsIENzc0NsYXNzQnVpbGRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcblxuaW1wb3J0IHsgRkRfQlVUVE9OX0NPTVBPTkVOVCB9IGZyb20gJy4vdG9rZW5zJztcblxuLyoqXG4gKiBCdXR0b24gZGlyZWN0aXZlLCB1c2VkIHRvIGVuaGFuY2Ugc3RhbmRhcmQgSFRNTCBidXR0b25zLlxuICpcbiAqIGBgYCBzZWxlY3RvcjogYnV0dG9uW2ZkLWJ1dHRvbl0sIGFbZmQtYnV0dG9uXSBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIGZkLWJ1dHRvbiBsYWJlbD1cIkJ1dHRvbiBUZXh0XCI+PC9idXR0b24+XG4gKiA8YSBmZC1idXR0b24gbGFiZWw9XCJCdXR0b24gVGV4dFwiPjwvYT5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW2ZkLWJ1dHRvbl0sIGFbZmQtYnV0dG9uXScsXG4gICAgZXhwb3J0QXM6ICdmZC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudHlwZV0nOiAndHlwZScsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnX2Rpc2FibGVkIHx8IG51bGwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYnV0dG9uQXJpYWxhYmVsJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRkRfQlVUVE9OX0NPTVBPTkVOVCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBCdXR0b25Db21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZUJ1dHRvbiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIFRoZSBwcm9wZXJ0eSBhbGxvd3MgdXNlciB0byBwYXNzIGFkZGl0aW9uYWwgY3NzIGNsYXNzZXMuICovXG4gICAgQElucHV0KClcbiAgICBjbGFzcyA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzcGVjaWFsQnV0dG9uVHlwZTogQXJyYXk8c3RyaW5nPiA9IFsnZW1waGFzaXplZCcsICdwb3NpdGl2ZScsICduZWdhdGl2ZScsICdhdHRlbnRpb24nXTtcblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSBhcmlhLWxhYmVsIGF0dHJpYnV0ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBnZXQgYnV0dG9uQXJpYWxhYmVsKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5hcmlhTGFiZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNwZWNpYWxCdXR0b25UeXBlLmluY2x1ZGVzKHRoaXMuZmRUeXBlKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubGFiZWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxhYmVsICsgJywgJyArIHRoaXMuZmRUeXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5nbHlwaCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmRUeXBlICsgJywgJyArIHRoaXMuZ2x5cGguc3BsaXQoJy0nKS5qb2luKCcgJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogRm9yY2VzIHRoZSBmb2N1cyBvdXRsaW5lIGFyb3VuZCB0aGUgYnV0dG9uLCB3aGljaCBpcyBub3QgZGVmYXVsdCBiZWhhdmlvciBpbiBTYWZhcmkuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGNsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQ/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgLy8gVGFyZ2V0IGNhbiBiZSBlbXB0eSBkdXJpbmcgdW5pdCB0ZXN0cyBleGVjdXRpb24uXG4gICAgICAgIGlmICh0YXJnZXQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGFyZ2V0KSB7XG4gICAgICAgICAgICB0YXJnZXQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHJ1bnMgd2hlbiBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWRcbiAgICAgKiBmdW5jdGlvbiBzaG91bGQgYnVpbGQgY29tcG9uZW50IGNzcyBjbGFzc1xuICAgICAqIGZ1bmN0aW9uIHNob3VsZCBidWlsZCBjc3Mgc3R5bGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZmQtYnV0dG9uJyxcbiAgICAgICAgICAgIHRoaXMuZmRUeXBlID8gYGZkLWJ1dHRvbi0tJHt0aGlzLmZkVHlwZX1gIDogJycsXG4gICAgICAgICAgICB0aGlzLmZkTWVudSA/ICdmZC1idXR0b24tLW1lbnUnIDogJycsXG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLl9hcmlhRGlzYWJsZWQgPyAnaXMtZGlzYWJsZWQnIDogJycsXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZWQgPyBgZmQtYnV0dG9uLS10b2dnbGVkYCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJnbHlwaCAmJiBnbHlwaFBvc2l0aW9uID09PSAnYmVmb3JlJ1wiPlxuICAgIDxmZC1pY29uIFtnbHlwaF09XCJnbHlwaFwiPjwvZmQtaWNvbj5cbjwvbmctY29udGFpbmVyPlxuXG48c3BhbiBjbGFzcz1cImZkLWJ1dHRvbl9fdGV4dFwiICpuZ0lmPVwibGFiZWxcIj5cbiAgICB7eyBsYWJlbCB9fVxuPC9zcGFuPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiZ2x5cGggJiYgZ2x5cGhQb3NpdGlvbiA9PT0gJ2FmdGVyJ1wiPlxuICAgIDxmZC1pY29uIFtnbHlwaF09XCJnbHlwaFwiPjwvZmQtaWNvbj5cbjwvbmctY29udGFpbmVyPlxuXG48ZmQtaWNvbiBnbHlwaD1cInNsaW0tYXJyb3ctZG93blwiICpuZ0lmPVwiZmRNZW51XCI+PC9mZC1pY29uPlxuIl19
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBbUIsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVoSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7O0FBRS9DOzs7Ozs7Ozs7R0FTRztBQXVCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBUTNDOzs7T0FHRztJQUNILElBQUksZUFBZTtRQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDekI7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNyQjtZQUVELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE9B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O3dCQUNGLGFBQWEsRUFBRSxNQUFNO3dCQUNyQixpQkFBaUIsRUFBRSxtQkFBbUI7d0JBQ3RDLG1CQUFtQixFQUFFLGlCQUFpQjt3QkFDdEMseUJBQXlCLEVBQUUsdUJBQXVCO3FCQUNyRCxhQUNVO3dCQUNQLCtCQUErQixFQUFFO3dCQUNqQzs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLGlCQUFpQjt5QkFDL0I7cUJBQ0o7c0tBS0QsS0FBSztzQkFESixLQUFLO2dCQWlETixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJDakMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQnV0dG9uIH0gZnJvbSAnLi9iYXNlLWJ1dHRvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MsIENzc0NsYXNzQnVpbGRlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcblxuaW1wb3J0IHsgRkRfQlVUVE9OX0NPTVBPTkVOVCB9IGZyb20gJy4vdG9rZW5zJztcblxuLyoqXG4gKiBCdXR0b24gZGlyZWN0aXZlLCB1c2VkIHRvIGVuaGFuY2Ugc3RhbmRhcmQgSFRNTCBidXR0b25zLlxuICpcbiAqIGBgYCBzZWxlY3RvcjogYnV0dG9uW2ZkLWJ1dHRvbl0sIGFbZmQtYnV0dG9uXSBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIGZkLWJ1dHRvbiBsYWJlbD1cIkJ1dHRvbiBUZXh0XCI+PC9idXR0b24+XG4gKiA8YSBmZC1idXR0b24gbGFiZWw9XCJCdXR0b24gVGV4dFwiPjwvYT5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW2ZkLWJ1dHRvbl0sIGFbZmQtYnV0dG9uXScsXG4gICAgZXhwb3J0QXM6ICdmZC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2J1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudHlwZV0nOiAndHlwZScsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnX2Rpc2FibGVkIHx8IG51bGwnLFxuICAgICAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnYnV0dG9uQXJpYWxhYmVsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtZGVzY3JpcHRpb25dJzogJ2J1dHRvbkFyaWFEZXNjcmlwdGlvbidcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0JVVFRPTl9DT01QT05FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogQnV0dG9uQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VCdXR0b24gaW1wbGVtZW50cyBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgcHJvcGVydHkgYWxsb3dzIHVzZXIgdG8gcGFzcyBhZGRpdGlvbmFsIGNzcyBjbGFzc2VzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3MgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3BlY2lhbEJ1dHRvblR5cGU6IEFycmF5PHN0cmluZz4gPSBbJ2VtcGhhc2l6ZWQnLCAncG9zaXRpdmUnLCAnbmVnYXRpdmUnLCAnYXR0ZW50aW9uJ107XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGVcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZ2V0IGJ1dHRvbkFyaWFsYWJlbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMuYXJpYUxhYmVsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcmlhTGFiZWw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zcGVjaWFsQnV0dG9uVHlwZS5pbmNsdWRlcyh0aGlzLmZkVHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxhYmVsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZ2x5cGggIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdseXBoLnNwbGl0KCctJykuam9pbignICcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIGFyaWEtZGVzY3JpcHRpb24gYXR0cmlidXRlXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIGdldCBidXR0b25BcmlhRGVzY3JpcHRpb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLmFyaWFEZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJpYURlc2NyaXB0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3BlY2lhbEJ1dHRvblR5cGUuaW5jbHVkZXModGhpcy5mZFR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mZFR5cGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogRm9yY2VzIHRoZSBmb2N1cyBvdXRsaW5lIGFyb3VuZCB0aGUgYnV0dG9uLCB3aGljaCBpcyBub3QgZGVmYXVsdCBiZWhhdmlvciBpbiBTYWZhcmkuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGNsaWNrZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQ/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgLy8gVGFyZ2V0IGNhbiBiZSBlbXB0eSBkdXJpbmcgdW5pdCB0ZXN0cyBleGVjdXRpb24uXG4gICAgICAgIGlmICh0YXJnZXQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGFyZ2V0KSB7XG4gICAgICAgICAgICB0YXJnZXQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHJ1bnMgd2hlbiBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWRcbiAgICAgKiBmdW5jdGlvbiBzaG91bGQgYnVpbGQgY29tcG9uZW50IGNzcyBjbGFzc1xuICAgICAqIGZ1bmN0aW9uIHNob3VsZCBidWlsZCBjc3Mgc3R5bGVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZmQtYnV0dG9uJyxcbiAgICAgICAgICAgIHRoaXMuZmRUeXBlID8gYGZkLWJ1dHRvbi0tJHt0aGlzLmZkVHlwZX1gIDogJycsXG4gICAgICAgICAgICB0aGlzLmZkTWVudSA/ICdmZC1idXR0b24tLW1lbnUnIDogJycsXG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLl9hcmlhRGlzYWJsZWQgPyAnaXMtZGlzYWJsZWQnIDogJycsXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZWQgPyBgZmQtYnV0dG9uLS10b2dnbGVkYCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5jbGFzc1xuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJnbHlwaCAmJiBnbHlwaFBvc2l0aW9uID09PSAnYmVmb3JlJ1wiPlxuICAgIDxmZC1pY29uIFtnbHlwaF09XCJnbHlwaFwiPjwvZmQtaWNvbj5cbjwvbmctY29udGFpbmVyPlxuXG48c3BhbiBjbGFzcz1cImZkLWJ1dHRvbl9fdGV4dFwiICpuZ0lmPVwibGFiZWxcIj5cbiAgICB7eyBsYWJlbCB9fVxuPC9zcGFuPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiZ2x5cGggJiYgZ2x5cGhQb3NpdGlvbiA9PT0gJ2FmdGVyJ1wiPlxuICAgIDxmZC1pY29uIFtnbHlwaF09XCJnbHlwaFwiPjwvZmQtaWNvbj5cbjwvbmctY29udGFpbmVyPlxuXG48ZmQtaWNvbiBnbHlwaD1cInNsaW0tYXJyb3ctZG93blwiICpuZ0lmPVwiZmRNZW51XCI+PC9mZC1pY29uPlxuIl19
|
|
@@ -112,6 +112,10 @@ export class CarouselService {
|
|
|
112
112
|
}
|
|
113
113
|
/** @hidden */
|
|
114
114
|
_centerActive(index) {
|
|
115
|
+
const size = this._getSize(this.items.first);
|
|
116
|
+
if (isNaN(size)) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
115
119
|
const middleIndex = Math.ceil(this.items.length / 2);
|
|
116
120
|
const offset = Math.ceil(this.elementsAtOnce / 2);
|
|
117
121
|
const missingItems = index + offset - middleIndex;
|
|
@@ -330,4 +334,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
330
334
|
type: Inject,
|
|
331
335
|
args: [DOCUMENT]
|
|
332
336
|
}] }]; } });
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQXdCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHM0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDO0FBMEJuRCxlQUFlO0FBSWYsTUFBTSxPQUFPLGVBQWU7SUFtQnhCLHFDQUFxQztJQUNyQyxJQUFJLG1CQUFtQixDQUFDLG1CQUEyQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFBWSxjQUFjO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUE0QkQsY0FBYztJQUNkLFlBQStDLFNBQTBCO1FBQTFCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBNUR6RSxzR0FBc0c7UUFDN0YscUJBQWdCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFL0UsbURBQW1EO1FBQzFDLGtCQUFhLEdBQStCLElBQUksWUFBWSxF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Q0FBQyxvQkFBb0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQixDQUFDLEtBQThCO1FBQ3JELElBQUksV0FBK0IsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RDthQUFNO1lBQ0gsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQUVELGNBQWM7SUFDTixhQUFhLENBQUMsS0FBOEI7UUFDaEQsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEtBQUssWUFBWSxVQUFVLENBQUM7SUFDNUQsQ0FBQzs7NEdBOVpRLGVBQWUsa0JBNkRKLFFBQVE7Z0hBN0RuQixlQUFlLGNBRlosTUFBTTsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBOERnQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25EZXN0cm95LCBRdWVyeUxpc3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UUkFOU0lUSU9OX0RVUkFUSU9OID0gJzE1MG1zJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJvdXNlbEl0ZW1JbnRlcmZhY2Uge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIGdldEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0V2lkdGgoKTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcm91c2VsQ29uZmlnIHtcbiAgICAvKiogRGVmaW5lcyBpZiBjYXJvdXNlbCBpdGVtcyBhcmUgcGxhY2VkIHZlcnRpY2FsbHkgKi9cbiAgICB2ZXJ0aWNhbD86IGJvb2xlYW47XG4gICAgLyoqIEFtb3VudCBvZiB2aXNpYmxlIGVsZW1lbnRzIGluIGNhcm91c2VsICovXG4gICAgZWxlbWVudHNBdE9uY2U/OiBudW1iZXI7XG4gICAgLyoqIERlZmluZXMgaWYgc3VwcG9ydCBmb3IgZ2VzdHVyZXMsIGxpa2UgdG91Y2ggc3dpcGUgb3IgbW91c2UgZHJhZyBzaG91bGQgYmUgZW5hYmxlZCAqL1xuICAgIGdlc3R1cmVTdXBwb3J0PzogYm9vbGVhbjtcbiAgICAvKiogRGVmaW5lcyBpZiBjYXJvdXNlbCBzaG91bGQgbW92ZSBlbGVtZW50cyB0byBzaWRlcy4gSXQgYWxsb3dzIHRvIHNsaWRlIGluZmluaXRlbHkgaW4gb25lIGRpcmVjdGlvbiAqL1xuICAgIGluZmluaXRlPzogYm9vbGVhbjtcbiAgICAvKiogVHJhbnNpdGlvbiB0aW1lIG9mIENTUyB0cmFuc2xhdGUsIGAxNTBtc2AgYnkgZGVmYXVsdCAqL1xuICAgIHRyYW5zaXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFuRW5kT3V0cHV0IHtcbiAgICBpdGVtOiBDYXJvdXNlbEl0ZW1JbnRlcmZhY2U7XG4gICAgYWZ0ZXI6IGJvb2xlYW47XG59XG5cbi8qKiBAZHluYW1pYyAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBFdmVudCB0aHJvd24gd2hlbiBlbGVtZW50IGlzIGRyYWdnZWQuIEVtaXRzIFwidHJ1ZVwiIHdoZW4gZHJhZyBzdGFydHMgYW5kIFwiZmFsc2VcIiB3aGVuIGRyYWcgZW5kcy4gKi9cbiAgICByZWFkb25seSBkcmFnU3RhdGVDaGFuZ2UkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGFjdGl2ZSBlbGVtZW50IGlzIGNoYW5nZWQgKi9cbiAgICByZWFkb25seSBhY3RpdmVDaGFuZ2UkOiBFdmVudEVtaXR0ZXI8UGFuRW5kT3V0cHV0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UGFuRW5kT3V0cHV0PigpO1xuXG4gICAgLyoqIENvbmZpZ3VyYXRpb24gZm9yIGNhcm91c2VsICovXG4gICAgY29uZmlnOiBDYXJvdXNlbENvbmZpZztcblxuICAgIC8qKiBJbml0aWFsIGFjdGl2ZSBpdGVtIG9mIGNhcm91c2VsLCBwb3NpdGlvbiBmaXJzdCArIG9mZnNldCAqL1xuICAgIGFjdGl2ZTogTnVsbGFibGU8Q2Fyb3VzZWxJdGVtSW50ZXJmYWNlPjtcblxuICAgIC8qKiBTZXQgdG8gdHJ1ZSBmb3IgcnRsIG1vZGUgKi9cbiAgICBpc1J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIGNhcm91c2VsIGl0ZW1zIHF1ZXJ5IGxpc3QgKi9cbiAgICBpdGVtczogUXVlcnlMaXN0PENhcm91c2VsSXRlbUludGVyZmFjZT47XG5cbiAgICAvKiogQ3VycmVudCB0cmFuc2l0aW9uIHZhbHVlIGluIHB4ICovXG4gICAgc2V0IGN1cnJlbnRUcmFuc2l0aW9uUHgoY3VycmVudFRyYW5zaXRpb25QeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggPSBjdXJyZW50VHJhbnNpdGlvblB4O1xuICAgIH1cbiAgICBnZXQgY3VycmVudFRyYW5zaXRpb25QeCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFRyYW5zaXRpb25QeDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnRzQXRPbmNlKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG51bSA9IHRoaXMuY29uZmlnPy5lbGVtZW50c0F0T25jZSA/PyAxO1xuXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgxLCBudW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFzdERpc3RhbmNlID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3VycmVudFRyYW5zaXRpb25QeCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsRHJhZ1Bvc2l0aW9uID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFzdERyYWdQb3NpdGlvbiA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvTW91c2VNb3ZlID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kcmFnU3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IERvY3VtZW50IHwgbnVsbCkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZHJhZ1N0YXRlQ2hhbmdlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBzZXQgaW5pdGlhbCB2YWx1ZXMgZm9yIHRoZSBzZXJ2aWNlICovXG4gICAgaW5pdGlhbGlzZShcbiAgICAgICAgY29uZmlnOiBDYXJvdXNlbENvbmZpZyxcbiAgICAgICAgaXRlbXM6IFF1ZXJ5TGlzdDxDYXJvdXNlbEl0ZW1JbnRlcmZhY2U+LFxuICAgICAgICBsaXN0RWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZlxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5zZXRFbGVtZW50KGxpc3RFbGVtZW50UmVmZXJlbmNlKTtcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhpdGVtcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmdlc3R1cmVTdXBwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXR1cEdlc3R1cmVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogdXBkYXRlIGNvbmZpZyB2YWx1ZSBmb3IgdGhlIHNlcnZpY2UgKi9cbiAgICB1cGRhdGVDb25maWcoY29uZmlnOiBDYXJvdXNlbENvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICAvKiogc2V0IGVsZW1lbnQgcmVmICovXG4gICAgc2V0RWxlbWVudChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIHNldCBpdGVtcyBhbmQgYXNzaWduIGFjdGl2ZSBpdGVtLCBpZiBub3QgYWxyZWFkeSB0aGVyZSAqL1xuICAgIHNldEl0ZW1zKGl0ZW1zOiBRdWVyeUxpc3Q8Q2Fyb3VzZWxJdGVtSW50ZXJmYWNlPik6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zID0gaXRlbXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0aGlzLml0ZW1zLmZpcnN0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoYW5nZSBhY3RpdmUgZWxlbWVudCAqL1xuICAgIGdvVG9JdGVtKGl0ZW06IENhcm91c2VsSXRlbUludGVyZmFjZSwgc21vb3RoPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9nZXRJbmRleE9mSXRlbShpdGVtKTtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmluZmluaXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9jZW50ZXJBY3RpdmUoaW5kZXgpO1xuXG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuX2dldEluZGV4T2ZJdGVtKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdHJhbnNpdGlvblRvSW5kZXgoaW5kZXgsIHNtb290aCk7XG4gICAgfVxuXG4gICAgLyoqIHBpY2sgbmV4dCBlbGVtZW50IGFuZCBzZXQgaXQgYWN0aXZlICovXG4gICAgcGlja05leHQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5pdGVtcy5maXJzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMuX2dldEluZGV4T2ZJdGVtKHRoaXMuYWN0aXZlKTtcbiAgICAgICAgY29uc3QgaXRlbVRvQWN0aXZhdGUgPSB0aGlzLml0ZW1zLmdldChhY3RpdmVJdGVtSW5kZXggKyAxKSA/PyB0aGlzLml0ZW1zLmZpcnN0O1xuXG4gICAgICAgIHRoaXMuZ29Ub0l0ZW0oaXRlbVRvQWN0aXZhdGUsIHRydWUpO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGl0ZW1Ub0FjdGl2YXRlO1xuICAgIH1cblxuICAgIC8qKiBwaWNrIHByZXZpb3VzIGVsZW1lbnQgYW5kIHNldCBpdCBhY3RpdmUgKi9cbiAgICBwaWNrUHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5pdGVtcy5nZXQoMik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLl9nZXRJbmRleE9mSXRlbSh0aGlzLmFjdGl2ZSk7XG4gICAgICAgIGxldCBpdGVtVG9BY3RpdmF0ZSA9IHRoaXMuaXRlbXMuZ2V0KGFjdGl2ZUl0ZW1JbmRleCAtIDEpO1xuXG4gICAgICAgIC8vIGNhc2Ugd2hlcmUgc2xpZGVzIGNhbiBtb3ZlIGluZmluaXRlbHkgaW4gb25lIGRpcmVjdGlvblxuICAgICAgICAvLyBoYW5kbGUgY2FzZSB3aGVyZSBvbi1sb2FkIGFjdGl2ZUl0ZW1JbmRleCA9IDAgYW5kIGFjdGl2ZUl0ZW1JbmRleCAtIDEgcmV0dXJucyB1bmRlZmluZWQgaXRlbSBmcm9tIGl0ZW0gYXJyYXkuXG4gICAgICAgIGlmICghaXRlbVRvQWN0aXZhdGUpIHtcbiAgICAgICAgICAgIGl0ZW1Ub0FjdGl2YXRlID0gdGhpcy5pdGVtcy5sYXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nb1RvSXRlbShpdGVtVG9BY3RpdmF0ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gaXRlbVRvQWN0aXZhdGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jZW50ZXJBY3RpdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBtaWRkbGVJbmRleCA9IE1hdGguY2VpbCh0aGlzLml0ZW1zLmxlbmd0aCAvIDIpO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSBNYXRoLmNlaWwodGhpcy5lbGVtZW50c0F0T25jZSAvIDIpO1xuICAgICAgICBjb25zdCBtaXNzaW5nSXRlbXMgPSBpbmRleCArIG9mZnNldCAtIG1pZGRsZUluZGV4O1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuXG4gICAgICAgIGlmIChtaXNzaW5nSXRlbXMgPiAwKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pc3NpbmdJdGVtczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGFycmF5LnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgaXRlbSAmJiBhcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmFicyhtaXNzaW5nSXRlbXMpOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gYXJyYXkucG9wKCk7XG4gICAgICAgICAgICAgICAgaXRlbSAmJiBhcnJheS51bnNoaWZ0KGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqIENoYW5naW5nIG9yZGVyIG9mIGVsZW1lbnRzIGluIFF1ZXJ5TGlzdCBhbmQgTmF0aXZlIEhUTUwgKi9cbiAgICAgICAgdGhpcy5pdGVtcy5yZXNldChhcnJheSk7XG4gICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5lbGVtZW50LnBhcmVudE5vZGU/LmFwcGVuZENoaWxkKGl0ZW0uZWxlbWVudCkpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb3IgcHJvcGVyIGFuaW1hdGlvbiBpdCdzIG5lZWRlZCB0byB0cmFuc2Zvcm0gZWxlbWVudHMsXG4gICAgICAgICAqIGJ5IGNoYW5naW5nIHRyYW5zaXRpb24gYnkgYW1vdW50IG9mIGVsZW1lbnRzIHBsYWNlZCBhdCB0b3AvYm90dG9tXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICcwcyc7XG4gICAgICAgIHRoaXMuX3RyYW5zaXRpb25DYXJvdXNlbCh0aGlzLl9jdXJyZW50VHJhbnNpdGlvblB4ICsgdGhpcy5fZ2V0U2l6ZSh0aGlzLml0ZW1zLmZpcnN0KSAqIG1pc3NpbmdJdGVtcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmFuc2l0aW9uVG9JbmRleChpbmRleDogbnVtYmVyLCBzbW9vdGg/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGxldCB0cmFuc2l0aW9uUHg6IG51bWJlciA9IHRoaXMuX2dldFNpemUodGhpcy5pdGVtcy5maXJzdCkgKiBpbmRleDtcblxuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IHNtb290aCA/IHRoaXMuX2dldFRyYW5zaXRpb24oKSA6ICcwcyc7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzUnRsIHx8ICh0aGlzLmNvbmZpZy52ZXJ0aWNhbCAmJiB0aGlzLmlzUnRsKSkge1xuICAgICAgICAgICAgdHJhbnNpdGlvblB4ID0gLXRyYW5zaXRpb25QeDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RyYW5zaXRpb25DYXJvdXNlbCh0cmFuc2l0aW9uUHgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEdldCBjbG9zZXMgZWxlbWVudCwgYmFzZWQgb24gY3VycmVudCB0cmFuc2l0aW9uICovXG4gICAgcHJpdmF0ZSBfZ2V0Q2xvc2VzdCgpOiBDYXJvdXNlbEl0ZW1JbnRlcmZhY2Uge1xuICAgICAgICAvKiogSWYgdHJhbnNpdGlvbiBpcyBwb3NpdGl2ZSwgaXQgc2hvdWxkIGdvIHRvIGZpcnN0IGVsZW1lbnQgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuY29uZmlnLmluZmluaXRlICYmXG4gICAgICAgICAgICAoKCF0aGlzLmNvbmZpZy52ZXJ0aWNhbCAmJlxuICAgICAgICAgICAgICAgICgoIXRoaXMuaXNSdGwgJiYgdGhpcy5fY3VycmVudFRyYW5zaXRpb25QeCA+IDApIHx8ICh0aGlzLmlzUnRsICYmIHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggPCAwKSkpIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMuY29uZmlnLnZlcnRpY2FsICYmIHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggPiAwKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maXJzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLl9nZXRTaXplKHRoaXMuaXRlbXMuZmlyc3QpO1xuXG4gICAgICAgIC8qKiBXaGVuIHNjcm9sbCBpcyBhZnRlciBoYWxmIG9mIGVsZW1lbnQsIHRoZW4gZXh0IG9uZSBzaG91bGQgYmUgYWN0aXZlICovXG4gICAgICAgIGNvbnN0IGhhbGZBcHByb2FjaGVkOiBib29sZWFuID0gTWF0aC5hYnModGhpcy5fY3VycmVudFRyYW5zaXRpb25QeCAlIHNpemUpID4gc2l6ZSAvIDI7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbmRleCBiYXNlZCBvbiB0cmFuc2l0aW9uIHB4IGRpdmlkZWQgYnkgc2l6ZSBvZiBlbGVtZW50cyxcbiAgICAgICAgICogZXZlcnkgZWxlbWVudCBzaG91bGQgaGF2ZSBzYW1lIHdpZHRoLCBvdGhlcndpc2UgaXQgc2hvdWxkIGJlIGxvb3BlZCB0aHJvdWdoIGFsbCBlbGVtZW50cyxcbiAgICAgICAgICogd2hpY2ggaXMgbm90IGdvb2QgZm9yIHBlcmZvcm1hbmNlXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgaW5kZXggPSBNYXRoLmNlaWwoTWF0aC5hYnModGhpcy5fY3VycmVudFRyYW5zaXRpb25QeCAvIHNpemUpKTtcblxuICAgICAgICAvLyBXaGVuIGVsZW1lbnRzQXRPbmNlID4gMSwgc3dpcGluZyBzaG91bGQgc3RvcCBhdCBsYXN0IGluZGV4IC0gZWxlbWVudHNBdE9uY2VcbiAgICAgICAgY29uc3QgZWxlbWVudHNBdE9uY2UgPSB0aGlzLmVsZW1lbnRzQXRPbmNlO1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmluZmluaXRlICYmIGVsZW1lbnRzQXRPbmNlID4gMSkge1xuICAgICAgICAgICAgLy8gV2hlbiB0aGVyZSdyZSBsZXNzIGl0ZW1zIGluIHRoZSBjYXJvdXNlbCB0aGFuIHRoZSBhcmVhIG1pZ2h0IGRpc3BsYXksIGl0IHNob3VsZCBzdG9wIHRvIGZpcnN0XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggPCBlbGVtZW50c0F0T25jZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpcnN0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaW5kZXggKyBlbGVtZW50c0F0T25jZSA+PSB0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmdldCh0aGlzLml0ZW1zLmxlbmd0aCAtIGVsZW1lbnRzQXRPbmNlKSA/PyB0aGlzLml0ZW1zLmZpcnN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5kZXggPSBpbmRleCArIChoYWxmQXBwcm9hY2hlZCA/IDAgOiAtMSk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zLmdldChpbmRleCk7XG5cbiAgICAgICAgLyoqIENoZWNraW5nIGlmIHRyYW5zaXRpb24gd2VudCBvdXQgb2Ygc2NvcGUgb2YgYXJyYXkgKi9cbiAgICAgICAgcmV0dXJuIGl0ZW0gfHwgdGhpcy5pdGVtcy5sYXN0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0SW5kZXhPZkl0ZW0oaXRlbT86IENhcm91c2VsSXRlbUludGVyZmFjZSk6IG51bWJlciB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gR2V0dGluZyBzaXplIG9mIGNhcm91c2VsLCB3aWR0aCBmb3IgaG9yaXpvbnRhbCwgaGVpZ2h0IGZvciB2ZXJ0aWNhbCAqL1xuICAgIHByaXZhdGUgX2dldFNpemUoaXRlbTogQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5nZXRIZWlnaHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtLmdldFdpZHRoKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVQYW4oZGVsdGE6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRlbHRhIC0gdGhpcy5fbGFzdERpc3RhbmNlO1xuXG4gICAgICAgIHRoaXMuX2xhc3REaXN0YW5jZSA9IGRlbHRhO1xuXG4gICAgICAgIHRoaXMuX3RyYW5zaXRpb25DYXJvdXNlbCh0aGlzLl9jdXJyZW50VHJhbnNpdGlvblB4ICsgZGlzdGFuY2UpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlUGFuRW5kKGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGFuZGxlUGFuKGRlbHRhKTtcblxuICAgICAgICBjb25zdCBjbG9zZXN0SXRlbTogQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlID0gdGhpcy5fZ2V0Q2xvc2VzdCgpO1xuXG4gICAgICAgIHRoaXMuZ29Ub0l0ZW0oY2xvc2VzdEl0ZW0sIHRydWUpO1xuXG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gY2xvc2VzdEl0ZW07XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNoYW5nZSQuZW1pdCh7XG4gICAgICAgICAgICAgICAgaXRlbTogY2xvc2VzdEl0ZW0sXG4gICAgICAgICAgICAgICAgYWZ0ZXI6IGRlbHRhIDwgMFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmUgIT09IGNsb3Nlc3RJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGNsb3Nlc3RJdGVtO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVDaGFuZ2UkLmVtaXQoe1xuICAgICAgICAgICAgICAgIGl0ZW06IGNsb3Nlc3RJdGVtLFxuICAgICAgICAgICAgICAgIGFmdGVyOiBkZWx0YSA8IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kcmFnU3RhdGVDaGFuZ2UkLmVtaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLl9sYXN0RGlzdGFuY2UgPSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQW5pbWF0ZXMgdGhlIGNhcm91c2VsIHRvIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc2xpZGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdHJhbnNpdGlvbkNhcm91c2VsKHRyYW5zaXRpb25QeDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggPSB0cmFuc2l0aW9uUHg7XG4gICAgICAgIGNvbnN0IGF4aXMgPSB0aGlzLmNvbmZpZy52ZXJ0aWNhbCA/ICdZJyA6ICdYJztcblxuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUke2F4aXN9KCR7dGhpcy5fY3VycmVudFRyYW5zaXRpb25QeH1weClgO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFBhbSBTdGFydCBoYW5kbGVyLCByZW1vdmVzIHRyYW5zaXRpb24gZHVyYXRpb24sICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlUGFuU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQuc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gJzBzJztcbiAgICAgICAgdGhpcy5kcmFnU3RhdGVDaGFuZ2UkLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXR1cEdlc3R1cmVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXR1cERyYWdTdGFydCgpO1xuICAgICAgICB0aGlzLl9zZXR1cERyYWcoKTtcbiAgICAgICAgdGhpcy5fc2V0dXBEcmFnRW5kKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb0V2ZW50cyhcbiAgICAgICAgZXZlbnRzOiBzdHJpbmdbXSxcbiAgICAgICAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBEb2N1bWVudCxcbiAgICAgICAgY2FsbGJhY2s6IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWRcbiAgICApOiB2b2lkIHtcbiAgICAgICAgbWVyZ2UoZXZlbnRzLm1hcCgoZSkgPT4gZnJvbUV2ZW50PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50PihlbGVtZW50LCBlLCB7IHBhc3NpdmU6IHRydWUgfSkpKS5mb3JFYWNoKFxuICAgICAgICAgICAgKGV2dDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50IHwgVG91Y2hFdmVudD4pID0+IHtcbiAgICAgICAgICAgICAgICBldnQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBEcmFnU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IFsnbW91c2Vkb3duJywgJ3RvdWNoc3RhcnQnXTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVUb0V2ZW50cyhldmVudHMsIHRoaXMuX2VsZW1lbnQsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbGlzdGVuVG9Nb3VzZU1vdmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fbGFzdERyYWdQb3NpdGlvbiA9IHRoaXMuX2luaXRpYWxEcmFnUG9zaXRpb24gPSB0aGlzLl9nZXREcmFnQ29vcmRpbmF0ZShldmVudCk7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVQYW5TdGFydCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwRHJhZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gWydtb3VzZW1vdmUnLCAndG91Y2htb3ZlJ107XG5cbiAgICAgICAgaWYgKCF0aGlzLl9kb2N1bWVudCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBDb3VsZCBub3Qgc2V0dXAgZHJhZyBldmVudCBzdWJzY3JpcHRpb24uIEV4cGVjdGVkIHRvIGdldCBkb2N1bWVudCByZWYsIGdvdCAke3RoaXMuX2RvY3VtZW50fSBpbnN0ZWFkYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVRvRXZlbnRzKGV2ZW50cywgdGhpcy5fZG9jdW1lbnQsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29vcmRpbmF0ZSA9IHRoaXMuX2dldERyYWdDb29yZGluYXRlKGV2ZW50KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9saXN0ZW5Ub01vdXNlTW92ZSB8fCBjb29yZGluYXRlID09PSB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9kcmFnU3RhcnRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVQYW4odGhpcy5fZ2V0RHJhZ2dlZERlbHRhKGNvb3JkaW5hdGUpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXR1cERyYWdFbmQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IFsnbW91c2V1cCcsICd0b3VjaGVuZCddO1xuXG4gICAgICAgIGlmICghdGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgQ291bGQgbm90IHNldHVwIGRyYWcgZXZlbnQgc3Vic2NyaXB0aW9uLiBFeHBlY3RlZCB0byBnZXQgZG9jdW1lbnQgcmVmLCBnb3QgJHt0aGlzLl9kb2N1bWVudH0gaW5zdGVhZGBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVUb0V2ZW50cyhldmVudHMsIHRoaXMuX2RvY3VtZW50LCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5fbGlzdGVuVG9Nb3VzZU1vdmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9kcmFnU3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBhbkVuZCh0aGlzLl9nZXREcmFnZ2VkRGVsdGEodGhpcy5fZ2V0RHJhZ0Nvb3JkaW5hdGUoZXZlbnQpKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXRlQ2hhbmdlJC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fbGlzdGVuVG9Nb3VzZU1vdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX2RyYWdTdGFydGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0VHJhbnNpdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWc/LnRyYW5zaXRpb24gPz8gREVGQVVMVF9UUkFOU0lUSU9OX0RVUkFUSU9OO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0RHJhZ2dlZERlbHRhKG9mZnNldDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgdGhpcy5fbGFzdERyYWdQb3NpdGlvbiA9IG9mZnNldDtcblxuICAgICAgICByZXR1cm4gb2Zmc2V0IC0gdGhpcy5faW5pdGlhbERyYWdQb3NpdGlvbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldERyYWdDb29yZGluYXRlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IG51bWJlciB7XG4gICAgICAgIGxldCBjb29yZGluYXRlczogVG91Y2ggfCBNb3VzZUV2ZW50O1xuXG4gICAgICAgIGlmICh0aGlzLl9pc1RvdWNoRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICBjb29yZGluYXRlcyA9IGV2ZW50LnRvdWNoZXNbMF0gfHwgZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb29yZGluYXRlcyA9IGV2ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnZlcnRpY2FsID8gY29vcmRpbmF0ZXMucGFnZVkgOiBjb29yZGluYXRlcy5wYWdlWDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzVG91Y2hFdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBldmVudCBpcyBUb3VjaEV2ZW50IHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5Ub3VjaEV2ZW50ICYmIGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudDtcbiAgICB9XG59XG4iXX0=
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2Nhcm91c2VsL2Nhcm91c2VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQXdCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHM0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsT0FBTyxDQUFDO0FBMEJuRCxlQUFlO0FBSWYsTUFBTSxPQUFPLGVBQWU7SUFtQnhCLHFDQUFxQztJQUNyQyxJQUFJLG1CQUFtQixDQUFDLG1CQUEyQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFBWSxjQUFjO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxJQUFJLENBQUMsQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUE0QkQsY0FBYztJQUNkLFlBQStDLFNBQTBCO1FBQTFCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBNUR6RSxzR0FBc0c7UUFDN0YscUJBQWdCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFL0UsbURBQW1EO1FBQzFDLGtCQUFhLEdBQStCLElBQUksWUFBWSxF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VSxJQUFJLDJCQUEyQixDQUFDO0lBQ2xFLENBQUM7SUFFRCxjQUFjO0lBQ04sZ0JBQWdCLENBQUMsTUFBYztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBRWhDLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQixDQUFDLEtBQThCO1FBQ3JELElBQUksV0FBK0IsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RDthQUFNO1lBQ0gsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUN2QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQUVELGNBQWM7SUFDTixhQUFhLENBQUMsS0FBOEI7UUFDaEQsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEtBQUssWUFBWSxVQUFVLENBQUM7SUFDNUQsQ0FBQzs7NEdBbGFRLGVBQWUsa0JBNkRKLFFBQVE7Z0hBN0RuQixlQUFlLGNBRlosTUFBTTsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBOERnQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25EZXN0cm95LCBRdWVyeUxpc3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9UUkFOU0lUSU9OX0RVUkFUSU9OID0gJzE1MG1zJztcblxuZXhwb3J0IGludGVyZmFjZSBDYXJvdXNlbEl0ZW1JbnRlcmZhY2Uge1xuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIGdldEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0V2lkdGgoKTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcm91c2VsQ29uZmlnIHtcbiAgICAvKiogRGVmaW5lcyBpZiBjYXJvdXNlbCBpdGVtcyBhcmUgcGxhY2VkIHZlcnRpY2FsbHkgKi9cbiAgICB2ZXJ0aWNhbD86IGJvb2xlYW47XG4gICAgLyoqIEFtb3VudCBvZiB2aXNpYmxlIGVsZW1lbnRzIGluIGNhcm91c2VsICovXG4gICAgZWxlbWVudHNBdE9uY2U/OiBudW1iZXI7XG4gICAgLyoqIERlZmluZXMgaWYgc3VwcG9ydCBmb3IgZ2VzdHVyZXMsIGxpa2UgdG91Y2ggc3dpcGUgb3IgbW91c2UgZHJhZyBzaG91bGQgYmUgZW5hYmxlZCAqL1xuICAgIGdlc3R1cmVTdXBwb3J0PzogYm9vbGVhbjtcbiAgICAvKiogRGVmaW5lcyBpZiBjYXJvdXNlbCBzaG91bGQgbW92ZSBlbGVtZW50cyB0byBzaWRlcy4gSXQgYWxsb3dzIHRvIHNsaWRlIGluZmluaXRlbHkgaW4gb25lIGRpcmVjdGlvbiAqL1xuICAgIGluZmluaXRlPzogYm9vbGVhbjtcbiAgICAvKiogVHJhbnNpdGlvbiB0aW1lIG9mIENTUyB0cmFuc2xhdGUsIGAxNTBtc2AgYnkgZGVmYXVsdCAqL1xuICAgIHRyYW5zaXRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFuRW5kT3V0cHV0IHtcbiAgICBpdGVtOiBDYXJvdXNlbEl0ZW1JbnRlcmZhY2U7XG4gICAgYWZ0ZXI6IGJvb2xlYW47XG59XG5cbi8qKiBAZHluYW1pYyAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBFdmVudCB0aHJvd24gd2hlbiBlbGVtZW50IGlzIGRyYWdnZWQuIEVtaXRzIFwidHJ1ZVwiIHdoZW4gZHJhZyBzdGFydHMgYW5kIFwiZmFsc2VcIiB3aGVuIGRyYWcgZW5kcy4gKi9cbiAgICByZWFkb25seSBkcmFnU3RhdGVDaGFuZ2UkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGFjdGl2ZSBlbGVtZW50IGlzIGNoYW5nZWQgKi9cbiAgICByZWFkb25seSBhY3RpdmVDaGFuZ2UkOiBFdmVudEVtaXR0ZXI8UGFuRW5kT3V0cHV0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UGFuRW5kT3V0cHV0PigpO1xuXG4gICAgLyoqIENvbmZpZ3VyYXRpb24gZm9yIGNhcm91c2VsICovXG4gICAgY29uZmlnOiBDYXJvdXNlbENvbmZpZztcblxuICAgIC8qKiBJbml0aWFsIGFjdGl2ZSBpdGVtIG9mIGNhcm91c2VsLCBwb3NpdGlvbiBmaXJzdCArIG9mZnNldCAqL1xuICAgIGFjdGl2ZTogTnVsbGFibGU8Q2Fyb3VzZWxJdGVtSW50ZXJmYWNlPjtcblxuICAgIC8qKiBTZXQgdG8gdHJ1ZSBmb3IgcnRsIG1vZGUgKi9cbiAgICBpc1J0bCA9IGZhbHNlO1xuXG4gICAgLyoqIGNhcm91c2VsIGl0ZW1zIHF1ZXJ5IGxpc3QgKi9cbiAgICBpdGVtczogUXVlcnlMaXN0PENhcm91c2VsSXRlbUludGVyZmFjZT47XG5cbiAgICAvKiogQ3VycmVudCB0cmFuc2l0aW9uIHZhbHVlIGluIHB4ICovXG4gICAgc2V0IGN1cnJlbnRUcmFuc2l0aW9uUHgoY3VycmVudFRyYW5zaXRpb25QeDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggPSBjdXJyZW50VHJhbnNpdGlvblB4O1xuICAgIH1cbiAgICBnZXQgY3VycmVudFRyYW5zaXRpb25QeCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFRyYW5zaXRpb25QeDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IGVsZW1lbnRzQXRPbmNlKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG51bSA9IHRoaXMuY29uZmlnPy5lbGVtZW50c0F0T25jZSA/PyAxO1xuXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgxLCBudW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFzdERpc3RhbmNlID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3VycmVudFRyYW5zaXRpb25QeCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsRHJhZ1Bvc2l0aW9uID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGFzdERyYWdQb3NpdGlvbiA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvTW91c2VNb3ZlID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kcmFnU3RhcnRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IERvY3VtZW50IHwgbnVsbCkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZHJhZ1N0YXRlQ2hhbmdlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBzZXQgaW5pdGlhbCB2YWx1ZXMgZm9yIHRoZSBzZXJ2aWNlICovXG4gICAgaW5pdGlhbGlzZShcbiAgICAgICAgY29uZmlnOiBDYXJvdXNlbENvbmZpZyxcbiAgICAgICAgaXRlbXM6IFF1ZXJ5TGlzdDxDYXJvdXNlbEl0ZW1JbnRlcmZhY2U+LFxuICAgICAgICBsaXN0RWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZlxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5zZXRFbGVtZW50KGxpc3RFbGVtZW50UmVmZXJlbmNlKTtcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhpdGVtcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmdlc3R1cmVTdXBwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXR1cEdlc3R1cmVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogdXBkYXRlIGNvbmZpZyB2YWx1ZSBmb3IgdGhlIHNlcnZpY2UgKi9cbiAgICB1cGRhdGVDb25maWcoY29uZmlnOiBDYXJvdXNlbENvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICAvKiogc2V0IGVsZW1lbnQgcmVmICovXG4gICAgc2V0RWxlbWVudChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIHNldCBpdGVtcyBhbmQgYXNzaWduIGFjdGl2ZSBpdGVtLCBpZiBub3QgYWxyZWFkeSB0aGVyZSAqL1xuICAgIHNldEl0ZW1zKGl0ZW1zOiBRdWVyeUxpc3Q8Q2Fyb3VzZWxJdGVtSW50ZXJmYWNlPik6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zID0gaXRlbXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSB0aGlzLml0ZW1zLmZpcnN0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoYW5nZSBhY3RpdmUgZWxlbWVudCAqL1xuICAgIGdvVG9JdGVtKGl0ZW06IENhcm91c2VsSXRlbUludGVyZmFjZSwgc21vb3RoPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9nZXRJbmRleE9mSXRlbShpdGVtKTtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmluZmluaXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9jZW50ZXJBY3RpdmUoaW5kZXgpO1xuXG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuX2dldEluZGV4T2ZJdGVtKGl0ZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdHJhbnNpdGlvblRvSW5kZXgoaW5kZXgsIHNtb290aCk7XG4gICAgfVxuXG4gICAgLyoqIHBpY2sgbmV4dCBlbGVtZW50IGFuZCBzZXQgaXQgYWN0aXZlICovXG4gICAgcGlja05leHQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5pdGVtcy5maXJzdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMuX2dldEluZGV4T2ZJdGVtKHRoaXMuYWN0aXZlKTtcbiAgICAgICAgY29uc3QgaXRlbVRvQWN0aXZhdGUgPSB0aGlzLml0ZW1zLmdldChhY3RpdmVJdGVtSW5kZXggKyAxKSA/PyB0aGlzLml0ZW1zLmZpcnN0O1xuXG4gICAgICAgIHRoaXMuZ29Ub0l0ZW0oaXRlbVRvQWN0aXZhdGUsIHRydWUpO1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGl0ZW1Ub0FjdGl2YXRlO1xuICAgIH1cblxuICAgIC8qKiBwaWNrIHByZXZpb3VzIGVsZW1lbnQgYW5kIHNldCBpdCBhY3RpdmUgKi9cbiAgICBwaWNrUHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5pdGVtcy5nZXQoMik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLl9nZXRJbmRleE9mSXRlbSh0aGlzLmFjdGl2ZSk7XG4gICAgICAgIGxldCBpdGVtVG9BY3RpdmF0ZSA9IHRoaXMuaXRlbXMuZ2V0KGFjdGl2ZUl0ZW1JbmRleCAtIDEpO1xuXG4gICAgICAgIC8vIGNhc2Ugd2hlcmUgc2xpZGVzIGNhbiBtb3ZlIGluZmluaXRlbHkgaW4gb25lIGRpcmVjdGlvblxuICAgICAgICAvLyBoYW5kbGUgY2FzZSB3aGVyZSBvbi1sb2FkIGFjdGl2ZUl0ZW1JbmRleCA9IDAgYW5kIGFjdGl2ZUl0ZW1JbmRleCAtIDEgcmV0dXJucyB1bmRlZmluZWQgaXRlbSBmcm9tIGl0ZW0gYXJyYXkuXG4gICAgICAgIGlmICghaXRlbVRvQWN0aXZhdGUpIHtcbiAgICAgICAgICAgIGl0ZW1Ub0FjdGl2YXRlID0gdGhpcy5pdGVtcy5sYXN0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nb1RvSXRlbShpdGVtVG9BY3RpdmF0ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gaXRlbVRvQWN0aXZhdGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jZW50ZXJBY3RpdmUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5fZ2V0U2l6ZSh0aGlzLml0ZW1zLmZpcnN0KTtcbiAgICAgICAgaWYgKGlzTmFOKHNpemUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWlkZGxlSW5kZXggPSBNYXRoLmNlaWwodGhpcy5pdGVtcy5sZW5ndGggLyAyKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gTWF0aC5jZWlsKHRoaXMuZWxlbWVudHNBdE9uY2UgLyAyKTtcbiAgICAgICAgY29uc3QgbWlzc2luZ0l0ZW1zID0gaW5kZXggKyBvZmZzZXQgLSBtaWRkbGVJbmRleDtcbiAgICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKTtcblxuICAgICAgICBpZiAobWlzc2luZ0l0ZW1zID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtaXNzaW5nSXRlbXM7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhcnJheS5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIGl0ZW0gJiYgYXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5hYnMobWlzc2luZ0l0ZW1zKTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGFycmF5LnBvcCgpO1xuICAgICAgICAgICAgICAgIGl0ZW0gJiYgYXJyYXkudW5zaGlmdChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKiBDaGFuZ2luZyBvcmRlciBvZiBlbGVtZW50cyBpbiBRdWVyeUxpc3QgYW5kIE5hdGl2ZSBIVE1MICovXG4gICAgICAgIHRoaXMuaXRlbXMucmVzZXQoYXJyYXkpO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uZWxlbWVudC5wYXJlbnROb2RlPy5hcHBlbmRDaGlsZChpdGVtLmVsZW1lbnQpKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogRm9yIHByb3BlciBhbmltYXRpb24gaXQncyBuZWVkZWQgdG8gdHJhbnNmb3JtIGVsZW1lbnRzLFxuICAgICAgICAgKiBieSBjaGFuZ2luZyB0cmFuc2l0aW9uIGJ5IGFtb3VudCBvZiBlbGVtZW50cyBwbGFjZWQgYXQgdG9wL2JvdHRvbVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSAnMHMnO1xuICAgICAgICB0aGlzLl90cmFuc2l0aW9uQ2Fyb3VzZWwodGhpcy5fY3VycmVudFRyYW5zaXRpb25QeCArIHRoaXMuX2dldFNpemUodGhpcy5pdGVtcy5maXJzdCkgKiBtaXNzaW5nSXRlbXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNpdGlvblRvSW5kZXgoaW5kZXg6IG51bWJlciwgc21vb3RoPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBsZXQgdHJhbnNpdGlvblB4OiBudW1iZXIgPSB0aGlzLl9nZXRTaXplKHRoaXMuaXRlbXMuZmlyc3QpICogaW5kZXg7XG5cbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBzbW9vdGggPyB0aGlzLl9nZXRUcmFuc2l0aW9uKCkgOiAnMHMnO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1J0bCB8fCAodGhpcy5jb25maWcudmVydGljYWwgJiYgdGhpcy5pc1J0bCkpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb25QeCA9IC10cmFuc2l0aW9uUHg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90cmFuc2l0aW9uQ2Fyb3VzZWwodHJhbnNpdGlvblB4KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBHZXQgY2xvc2VzIGVsZW1lbnQsIGJhc2VkIG9uIGN1cnJlbnQgdHJhbnNpdGlvbiAqL1xuICAgIHByaXZhdGUgX2dldENsb3Nlc3QoKTogQ2Fyb3VzZWxJdGVtSW50ZXJmYWNlIHtcbiAgICAgICAgLyoqIElmIHRyYW5zaXRpb24gaXMgcG9zaXRpdmUsIGl0IHNob3VsZCBnbyB0byBmaXJzdCBlbGVtZW50ICovXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLmNvbmZpZy5pbmZpbml0ZSAmJlxuICAgICAgICAgICAgKCghdGhpcy5jb25maWcudmVydGljYWwgJiZcbiAgICAgICAgICAgICAgICAoKCF0aGlzLmlzUnRsICYmIHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggPiAwKSB8fCAodGhpcy5pc1J0bCAmJiB0aGlzLl9jdXJyZW50VHJhbnNpdGlvblB4IDwgMCkpKSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmNvbmZpZy52ZXJ0aWNhbCAmJiB0aGlzLl9jdXJyZW50VHJhbnNpdGlvblB4ID4gMCkpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlyc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5fZ2V0U2l6ZSh0aGlzLml0ZW1zLmZpcnN0KTtcblxuICAgICAgICAvKiogV2hlbiBzY3JvbGwgaXMgYWZ0ZXIgaGFsZiBvZiBlbGVtZW50LCB0aGVuIGV4dCBvbmUgc2hvdWxkIGJlIGFjdGl2ZSAqL1xuICAgICAgICBjb25zdCBoYWxmQXBwcm9hY2hlZDogYm9vbGVhbiA9IE1hdGguYWJzKHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggJSBzaXplKSA+IHNpemUgLyAyO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW5kZXggYmFzZWQgb24gdHJhbnNpdGlvbiBweCBkaXZpZGVkIGJ5IHNpemUgb2YgZWxlbWVudHMsXG4gICAgICAgICAqIGV2ZXJ5IGVsZW1lbnQgc2hvdWxkIGhhdmUgc2FtZSB3aWR0aCwgb3RoZXJ3aXNlIGl0IHNob3VsZCBiZSBsb29wZWQgdGhyb3VnaCBhbGwgZWxlbWVudHMsXG4gICAgICAgICAqIHdoaWNoIGlzIG5vdCBnb29kIGZvciBwZXJmb3JtYW5jZVxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGluZGV4ID0gTWF0aC5jZWlsKE1hdGguYWJzKHRoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHggLyBzaXplKSk7XG5cbiAgICAgICAgLy8gV2hlbiBlbGVtZW50c0F0T25jZSA+IDEsIHN3aXBpbmcgc2hvdWxkIHN0b3AgYXQgbGFzdCBpbmRleCAtIGVsZW1lbnRzQXRPbmNlXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzQXRPbmNlID0gdGhpcy5lbGVtZW50c0F0T25jZTtcbiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy5pbmZpbml0ZSAmJiBlbGVtZW50c0F0T25jZSA+IDEpIHtcbiAgICAgICAgICAgIC8vIFdoZW4gdGhlcmUncmUgbGVzcyBpdGVtcyBpbiB0aGUgY2Fyb3VzZWwgdGhhbiB0aGUgYXJlYSBtaWdodCBkaXNwbGF5LCBpdCBzaG91bGQgc3RvcCB0byBmaXJzdFxuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoIDwgZWxlbWVudHNBdE9uY2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maXJzdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGluZGV4ICsgZWxlbWVudHNBdE9uY2UgPj0gdGhpcy5pdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5nZXQodGhpcy5pdGVtcy5sZW5ndGggLSBlbGVtZW50c0F0T25jZSkgPz8gdGhpcy5pdGVtcy5maXJzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluZGV4ID0gaW5kZXggKyAoaGFsZkFwcHJvYWNoZWQgPyAwIDogLTEpO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5nZXQoaW5kZXgpO1xuXG4gICAgICAgIC8qKiBDaGVja2luZyBpZiB0cmFuc2l0aW9uIHdlbnQgb3V0IG9mIHNjb3BlIG9mIGFycmF5ICovXG4gICAgICAgIHJldHVybiBpdGVtIHx8IHRoaXMuaXRlbXMubGFzdDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEluZGV4T2ZJdGVtKGl0ZW0/OiBDYXJvdXNlbEl0ZW1JbnRlcmZhY2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy50b0FycmF5KCkuZmluZEluZGV4KChfaXRlbSkgPT4gX2l0ZW0gPT09IGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEdldHRpbmcgc2l6ZSBvZiBjYXJvdXNlbCwgd2lkdGggZm9yIGhvcml6b250YWwsIGhlaWdodCBmb3IgdmVydGljYWwgKi9cbiAgICBwcml2YXRlIF9nZXRTaXplKGl0ZW06IENhcm91c2VsSXRlbUludGVyZmFjZSk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZ2V0SGVpZ2h0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbS5nZXRXaWR0aCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlUGFuKGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkZWx0YSAtIHRoaXMuX2xhc3REaXN0YW5jZTtcblxuICAgICAgICB0aGlzLl9sYXN0RGlzdGFuY2UgPSBkZWx0YTtcblxuICAgICAgICB0aGlzLl90cmFuc2l0aW9uQ2Fyb3VzZWwodGhpcy5fY3VycmVudFRyYW5zaXRpb25QeCArIGRpc3RhbmNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVBhbkVuZChkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hhbmRsZVBhbihkZWx0YSk7XG5cbiAgICAgICAgY29uc3QgY2xvc2VzdEl0ZW06IENhcm91c2VsSXRlbUludGVyZmFjZSA9IHRoaXMuX2dldENsb3Nlc3QoKTtcblxuICAgICAgICB0aGlzLmdvVG9JdGVtKGNsb3Nlc3RJdGVtLCB0cnVlKTtcblxuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGNsb3Nlc3RJdGVtO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVDaGFuZ2UkLmVtaXQoe1xuICAgICAgICAgICAgICAgIGl0ZW06IGNsb3Nlc3RJdGVtLFxuICAgICAgICAgICAgICAgIGFmdGVyOiBkZWx0YSA8IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlICE9PSBjbG9zZXN0SXRlbSkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmUgPSBjbG9zZXN0SXRlbTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlQ2hhbmdlJC5lbWl0KHtcbiAgICAgICAgICAgICAgICBpdGVtOiBjbG9zZXN0SXRlbSxcbiAgICAgICAgICAgICAgICBhZnRlcjogZGVsdGEgPCAwXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZHJhZ1N0YXRlQ2hhbmdlJC5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fbGFzdERpc3RhbmNlID0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEFuaW1hdGVzIHRoZSBjYXJvdXNlbCB0byB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHNsaWRlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3RyYW5zaXRpb25DYXJvdXNlbCh0cmFuc2l0aW9uUHg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50VHJhbnNpdGlvblB4ID0gdHJhbnNpdGlvblB4O1xuICAgICAgICBjb25zdCBheGlzID0gdGhpcy5jb25maWcudmVydGljYWwgPyAnWScgOiAnWCc7XG5cbiAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlJHtheGlzfSgke3RoaXMuX2N1cnJlbnRUcmFuc2l0aW9uUHh9cHgpYDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBQYW0gU3RhcnQgaGFuZGxlciwgcmVtb3ZlcyB0cmFuc2l0aW9uIGR1cmF0aW9uLCAqL1xuICAgIHByaXZhdGUgX2hhbmRsZVBhblN0YXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICcwcyc7XG4gICAgICAgIHRoaXMuZHJhZ1N0YXRlQ2hhbmdlJC5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBHZXN0dXJlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0dXBEcmFnU3RhcnQoKTtcbiAgICAgICAgdGhpcy5fc2V0dXBEcmFnKCk7XG4gICAgICAgIHRoaXMuX3NldHVwRHJhZ0VuZCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9FdmVudHMoXG4gICAgICAgIGV2ZW50czogc3RyaW5nW10sXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgRG9jdW1lbnQsXG4gICAgICAgIGNhbGxiYWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkXG4gICAgKTogdm9pZCB7XG4gICAgICAgIG1lcmdlKGV2ZW50cy5tYXAoKGUpID0+IGZyb21FdmVudDxNb3VzZUV2ZW50IHwgVG91Y2hFdmVudD4oZWxlbWVudCwgZSwgeyBwYXNzaXZlOiB0cnVlIH0pKSkuZm9yRWFjaChcbiAgICAgICAgICAgIChldnQ6IE9ic2VydmFibGU8TW91c2VFdmVudCB8IFRvdWNoRXZlbnQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZ0LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwRHJhZ1N0YXJ0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBldmVudHMgPSBbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J107XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9FdmVudHMoZXZlbnRzLCB0aGlzLl9lbGVtZW50LCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvTW91c2VNb3ZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSB0aGlzLl9pbml0aWFsRHJhZ1Bvc2l0aW9uID0gdGhpcy5fZ2V0RHJhZ0Nvb3JkaW5hdGUoZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlUGFuU3RhcnQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXR1cERyYWcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IFsnbW91c2Vtb3ZlJywgJ3RvdWNobW92ZSddO1xuXG4gICAgICAgIGlmICghdGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgQ291bGQgbm90IHNldHVwIGRyYWcgZXZlbnQgc3Vic2NyaXB0aW9uLiBFeHBlY3RlZCB0byBnZXQgZG9jdW1lbnQgcmVmLCBnb3QgJHt0aGlzLl9kb2N1bWVudH0gaW5zdGVhZGBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVUb0V2ZW50cyhldmVudHMsIHRoaXMuX2RvY3VtZW50LCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGUgPSB0aGlzLl9nZXREcmFnQ29vcmRpbmF0ZShldmVudCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fbGlzdGVuVG9Nb3VzZU1vdmUgfHwgY29vcmRpbmF0ZSA9PT0gdGhpcy5fbGFzdERyYWdQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fZHJhZ1N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlUGFuKHRoaXMuX2dldERyYWdnZWREZWx0YShjb29yZGluYXRlKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBEcmFnRW5kKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBldmVudHMgPSBbJ21vdXNldXAnLCAndG91Y2hlbmQnXTtcblxuICAgICAgICBpZiAoIXRoaXMuX2RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYENvdWxkIG5vdCBzZXR1cCBkcmFnIGV2ZW50IHN1YnNjcmlwdGlvbi4gRXhwZWN0ZWQgdG8gZ2V0IGRvY3VtZW50IHJlZiwgZ290ICR7dGhpcy5fZG9jdW1lbnR9IGluc3RlYWRgXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlVG9FdmVudHMoZXZlbnRzLCB0aGlzLl9kb2N1bWVudCwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2xpc3RlblRvTW91c2VNb3ZlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fZHJhZ1N0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVQYW5FbmQodGhpcy5fZ2V0RHJhZ2dlZERlbHRhKHRoaXMuX2dldERyYWdDb29yZGluYXRlKGV2ZW50KSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdTdGF0ZUNoYW5nZSQuZW1pdChmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvTW91c2VNb3ZlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9kcmFnU3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFRyYW5zaXRpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnPy50cmFuc2l0aW9uID8/IERFRkFVTFRfVFJBTlNJVElPTl9EVVJBVElPTjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldERyYWdnZWREZWx0YShvZmZzZXQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBvZmZzZXQ7XG5cbiAgICAgICAgcmV0dXJuIG9mZnNldCAtIHRoaXMuX2luaXRpYWxEcmFnUG9zaXRpb247XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXREcmFnQ29vcmRpbmF0ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBudW1iZXIge1xuICAgICAgICBsZXQgY29vcmRpbmF0ZXM6IFRvdWNoIHwgTW91c2VFdmVudDtcblxuICAgICAgICBpZiAodGhpcy5faXNUb3VjaEV2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMgPSBldmVudC50b3VjaGVzWzBdIHx8IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMgPSBldmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy52ZXJ0aWNhbCA/IGNvb3JkaW5hdGVzLnBhZ2VZIDogY29vcmRpbmF0ZXMucGFnZVg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1RvdWNoRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuVG91Y2hFdmVudCAmJiBldmVudCBpbnN0YW5jZW9mIFRvdWNoRXZlbnQ7XG4gICAgfVxufVxuIl19
|