ecabs-components 1.1.17 → 1.1.19

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/README.md CHANGED
@@ -23,55 +23,57 @@ Run `ng test ecabs-components` to execute the unit tests via [Karma](https://kar
23
23
 
24
24
  To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
25
25
 
26
- v1.0.13 - Fixed emitEvent behaviour of checkbox
27
- v1.0.18 - - Fixed width of date time picker
28
- v1.0.75 - Upgrade `EcabsButtons` module to `MDC` styling.
29
- v1.0.76 - Upgrade `EcabsInput` module to `MDC` styling.
30
- v1.0.77 - Upgrade `MatChips` to `MDC`.
31
- v1.0.78 - Upgrade `MatSelect` to `MDC`.
32
- v1.0.79 - feat(CU-11266): Update `MatDialog` to `MDC`.
26
+ v1.0.13 Fixed emitEvent behaviour of checkbox
27
+ v1.0.18 Fixed width of date time picker
28
+ v1.0.75 Upgrade `EcabsButtons` module to `MDC` styling.
29
+ v1.0.76 Upgrade `EcabsInput` module to `MDC` styling.
30
+ v1.0.77 Upgrade `MatChips` to `MDC`.
31
+ v1.0.78 Upgrade `MatSelect` to `MDC`.
32
+ v1.0.79 feat(CU-11266): Update `MatDialog` to `MDC`.
33
33
  - Fix button height issue on anchor tags marked as `mat-button`.
34
34
  - Update default font family.
35
35
  - Rename `NoteComponent` to `EcabsNoteComponent`.
36
36
  - Add `expired` style for `EcabsChip`.
37
- v1.0.80 - Allow custom button options for `Confirm` and `Cancel` buttons on `EcabsDialog`.
38
- v1.0.81 - Fix font size of `EcabsSelect`.
39
- v1.0.82 - Improve appearance of disabled inputs.
37
+ v1.0.80 Allow custom button options for `Confirm` and `Cancel` buttons on `EcabsDialog`.
38
+ v1.0.81 Fix font size of `EcabsSelect`.
39
+ v1.0.82 Improve appearance of disabled inputs.
40
40
  - Fix placeholder text of `EcabsSelect`.
41
- v1.0.83 - Fix buttons height.
42
- v1.0.84 - Emit `falsey` result when Close button is clicked on `EcabsDialogConfirm` and `EcabsDialogMessage`.
43
- v1.0.85 - Improve styling for `EcabsTable` row colors.
44
- v1.0.87 - Apply min/max Date logic for date picker
45
- v1.0.88 - Roll back 1.0.87
46
- v1.0.84 - Emit `falsey` result when Close button is clicked on `EcabsDialogConfirm` and `EcabsDialogMessage`.
47
- v1.0.89 - Upgrade `MatLegacyTable` and `MatLegacyProgress` to `MDC`.
48
- v1.0.90 - Upgrade `MatLegacyPaginator` to `MDC`.
41
+ v1.0.83 Fix buttons height.
42
+ v1.0.84 Emit `falsey` result when Close button is clicked on `EcabsDialogConfirm` and `EcabsDialogMessage`.
43
+ v1.0.85 Improve styling for `EcabsTable` row colors.
44
+ v1.0.87 Apply min/max Date logic for date picker
45
+ v1.0.88 Roll back 1.0.87
46
+ v1.0.84 Emit `falsey` result when Close button is clicked on `EcabsDialogConfirm` and `EcabsDialogMessage`.
47
+ v1.0.89 Upgrade `MatLegacyTable` and `MatLegacyProgress` to `MDC`.
48
+ v1.0.90 Upgrade `MatLegacyPaginator` to `MDC`.
49
49
  - Add `EcabsPaginatorDirective`.
50
50
  - Rename `AppHint` to `EcabsHint`.
51
51
  - Apply `ngx-toaster` overrides.
52
- v1.0.91 - Upgrade `MatLegacyCheckbox` and `MatSlideToggle` to `MDC`.
53
- v1.0.92 - Add default buttons for Confirm and Cancel buttons on dialog.
54
- v1.0.93 - Update progress colors for percentage.
55
- v1.0.94 - Upgrade `MatLegacyTabs` to `MDC`.
56
- v1.0.95 - Upgrade `MatLegacyTooltip` to `MDC`.
57
- v1.0.96 - Add missing styles for nested columns on `Table`.
58
- v1.0.97 - Correct misaligned icon and text on `EcabsNotes`.
59
- v1.0.98 - Upgrade `MatLegacyAutocomplete` to `MDC`.
60
- v1.0.99 - Add `mini` and `maxi` directive and validators to `EcabsInput`.
61
- v1.1.0 - Upgrade `MatLegacyMenu` to `MDC`.
62
- v1.1.1 - Hide `Timepicker` options on input blur.
63
- v1.1.2 - Introduce new select component (`EcabsSelectV2`) to deprecate `EcabsSelect`.
64
- v1.1.3 - Upgrade `MatLegacyCard` to `MDC`.
65
- v1.1.4 - Fixed blur issue for input.
66
- v1.1.5 - added slider
67
- v1.1.6 - accumulate all directives
68
- v1.1.7 - Add message for alphanumeric-only validation.
69
- v1.1.8 - Add directive show-on-truncated to directives.
70
- v1.1.9 - Fixed i18n issue.
71
- v1.1.10 - Added color styles for prompt title message.
72
- v1.1.12 - Extend @Input properties of `EcabsSelectV2` from `@ng-select` lib.
73
- v1.1.13 - Fix `overflow-y` issue on `MatCardContent`.
74
- v1.1.14 - Update styles for disabled indeterminate checkboxes.
75
- v1.1.15 - Cleanup `EcabsComponentsService` and provide default config via `config` property.
76
- v1.1.16 - Implemented custom phone number control.
77
- v1.1.17 - Fix peerDependency on `libphonenumber-js`.
52
+ v1.0.91 Upgrade `MatLegacyCheckbox` and `MatSlideToggle` to `MDC`.
53
+ v1.0.92 Add default buttons for Confirm and Cancel buttons on dialog.
54
+ v1.0.93 Update progress colors for percentage.
55
+ v1.0.94 Upgrade `MatLegacyTabs` to `MDC`.
56
+ v1.0.95 Upgrade `MatLegacyTooltip` to `MDC`.
57
+ v1.0.96 Add missing styles for nested columns on `Table`.
58
+ v1.0.97 Correct misaligned icon and text on `EcabsNotes`.
59
+ v1.0.98 Upgrade `MatLegacyAutocomplete` to `MDC`.
60
+ v1.0.99 Add `mini` and `maxi` directive and validators to `EcabsInput`.
61
+ v1.1.0 Upgrade `MatLegacyMenu` to `MDC`.
62
+ v1.1.1 Hide `Timepicker` options on input blur.
63
+ v1.1.2 Introduce new select component (`EcabsSelectV2`) to deprecate `EcabsSelect`.
64
+ v1.1.3 Upgrade `MatLegacyCard` to `MDC`.
65
+ v1.1.4 Fixed blur issue for input.
66
+ v1.1.5 added slider
67
+ v1.1.6 accumulate all directives
68
+ v1.1.7 Add a message for alphanumeric-only validation.
69
+ v1.1.8 Add directive show-on-truncated to directives.
70
+ v1.1.9 Fixed i18n issue.
71
+ v1.1.10 Added color styles for prompt title message.
72
+ v1.1.12 Extend @Input properties of `EcabsSelectV2` from `@ng-select` lib.
73
+ v1.1.13 Fix `overflow-y` issue on `MatCardContent`.
74
+ v1.1.14 Update styles for disabled indeterminate checkboxes.
75
+ v1.1.15 Cleanup `EcabsComponentsService` and provide default config via `config` property.
76
+ v1.1.16 Implemented custom phone number control.
77
+ v1.1.17 Fix peerDependency on `libphonenumber-js`.
78
+ v1.1.18 — Adjust position of `sticky` header on `MatTable`.
79
+ v1.1.19 - Increase delay for phone control. Add it to config
@@ -9,6 +9,7 @@ export class EcabsComponentsService {
9
9
  errorMessages: [...errorMessages],
10
10
  i18n,
11
11
  claims: [],
12
+ defaultPhoneDebounceTimeMs: 1000,
12
13
  };
13
14
  config;
14
15
  _config = new BehaviorSubject(this.defaultConfig);
@@ -65,4 +66,4 @@ export class GenericComponentConfig {
65
66
  i18n;
66
67
  claims = [];
67
68
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY29tcG9uZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2Uvc2VydmljZXMvZWNhYnMtY29tcG9uZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQU1yRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGFBQWEsR0FBMEI7UUFDckMsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixhQUFhLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUNqQyxJQUFJO1FBQ0osTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBRUYsTUFBTSxDQUF3QjtJQUViLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FDNUMsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQztJQUVGLFNBQVMsQ0FBQyxNQUE2QjtRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTNDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBbUM7UUFDOUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxNQUFNLGFBQWEsR0FBMEIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBRTFFLEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFO1lBQy9CLElBQ0UsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQ3ZEO2dCQUNBLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDcEQsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQy9DLENBQUMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDckQ7aUJBQU07Z0JBQ0wsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6QztTQUNGO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUM7UUFFNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVEsQ0FBQyxnQkFBMEIsRUFBRTtRQUNuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU07WUFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO2lCQUNULFFBQVEsRUFBRTtpQkFDVixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBdUIsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNoRSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3dHQTlEVSxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQW1GRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUNoQyxhQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUNuQyxJQUFJLENBQVk7SUFDaEIsTUFBTSxHQUFnQixFQUFFLENBQUM7Q0FDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZXJyb3JNZXNzYWdlcyB9IGZyb20gJy4uL2NvbnN0cy9lcnJvci1tZXNzYWdlcy5jb25zdHMnO1xyXG5pbXBvcnQgeyBpMThuIH0gZnJvbSAnLi4vY29uc3RzL3RyYW5zbGF0aW9ucy5jb25zdHMnO1xyXG5pbXBvcnQgeyBVc2VyQ2xhaW0gfSBmcm9tICcuLi9tb2RlbHMvdXNlci1jbGFpbS5tb2RlbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzQ29tcG9uZW50c1NlcnZpY2Uge1xyXG4gIGRlZmF1bHRDb25maWc6IEVjYWJzQ29tcG9uZW50c0NvbmZpZyA9IHtcclxuICAgIGRlZmF1bHRDb3VudHJpZXM6IFtdLFxyXG4gICAgZXJyb3JNZXNzYWdlczogWy4uLmVycm9yTWVzc2FnZXNdLFxyXG4gICAgaTE4bixcclxuICAgIGNsYWltczogW10sXHJcbiAgfTtcclxuXHJcbiAgY29uZmlnOiBFY2Fic0NvbXBvbmVudHNDb25maWc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWNhYnNDb21wb25lbnRzQ29uZmlnPihcclxuICAgIHRoaXMuZGVmYXVsdENvbmZpZyxcclxuICApO1xyXG5cclxuICBzZXRDb25maWcoY29uZmlnOiBFY2Fic0NvbXBvbmVudHNDb25maWcpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnIHx8IHRoaXMuZGVmYXVsdENvbmZpZztcclxuXHJcbiAgICB0aGlzLl9jb25maWcubmV4dChjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29uZmlnKCk6IE9ic2VydmFibGU8RWNhYnNDb21wb25lbnRzQ29uZmlnPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29uZmlnKGNvbmZpZ1VwZGF0ZTogRWNhYnNDb21wb25lbnRzQ29uZmlnKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gdGhpcy5fY29uZmlnLmdldFZhbHVlKCk7XHJcbiAgICBjb25zdCB1cGRhdGVkQ29uZmlnOiBFY2Fic0NvbXBvbmVudHNDb25maWcgPSBuZXcgR2VuZXJpY0NvbXBvbmVudENvbmZpZygpO1xyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IGluIGN1cnJlbnRDb25maWcpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW50Q29uZmlnLCBrZXkpICYmXHJcbiAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZ1VwZGF0ZSwga2V5KVxyXG4gICAgICApIHtcclxuICAgICAgICB1cGRhdGVkQ29uZmlnW2tleV0gPSBBcnJheS5pc0FycmF5KGN1cnJlbnRDb25maWdba2V5XSlcclxuICAgICAgICAgID8gWy4uLmN1cnJlbnRDb25maWdba2V5XSwgLi4uY29uZmlnVXBkYXRlW2tleV1dXHJcbiAgICAgICAgICA6IHsgLi4uY3VycmVudENvbmZpZ1trZXldLCAuLi5jb25maWdVcGRhdGVba2V5XSB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVwZGF0ZWRDb25maWdba2V5XSA9IGN1cnJlbnRDb25maWdba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29uZmlnID0gdXBkYXRlZENvbmZpZztcclxuXHJcbiAgICB0aGlzLl9jb25maWcubmV4dCh1cGRhdGVkQ29uZmlnKTtcclxuICB9XHJcblxyXG4gIGhhc0NsYWltKGFsbG93ZWRDbGFpbXM6IHN0cmluZ1tdID0gW10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHVzZXJDbGFpbXMgPSB0aGlzLl9jb25maWcuZ2V0VmFsdWUoKS5jbGFpbXNcclxuICAgICAgPyB0aGlzLl9jb25maWdcclxuICAgICAgICAgIC5nZXRWYWx1ZSgpXHJcbiAgICAgICAgICAuY2xhaW1zLm1hcCgoYXBwVXNlckNsYWltOiBVc2VyQ2xhaW0pID0+IGFwcFVzZXJDbGFpbS5jbGFpbSlcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgaWYgKGFsbG93ZWRDbGFpbXMuaW5jbHVkZXMoJ2FsbG93JykpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZXJDbGFpbXMpIHtcclxuICAgICAgcmV0dXJuIGFsbG93ZWRDbGFpbXMuZXZlcnkoKGNsYWltKSA9PiB1c2VyQ2xhaW1zLmluY2x1ZGVzKGNsYWltKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFY2Fic0NvbXBvbmVudHNDb25maWcge1xyXG4gIGRlZmF1bHRDb3VudHJpZXM/OiBzdHJpbmdbXTtcclxuICBlcnJvck1lc3NhZ2VzPzogRXJyb3JNZXNzYWdlW107XHJcbiAgaTE4bj86IEVjYWJzaTE4bjtcclxuICBjbGFpbXM/OiBVc2VyQ2xhaW1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFcnJvck1lc3NhZ2Uge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVjYWJzaTE4biB7XHJcbiAgY2FuY2VsTGFiZWw/OiBzdHJpbmc7XHJcbiAgY29uZmlybUxhYmVsPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NvbXBvbmVudENvbmZpZyBpbXBsZW1lbnRzIEVjYWJzQ29tcG9uZW50c0NvbmZpZyB7XHJcbiAgZGVmYXVsdENvdW50cmllczogc3RyaW5nW10gPSBbXTtcclxuICBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xyXG4gIGkxOG46IEVjYWJzaTE4bjtcclxuICBjbGFpbXM6IFVzZXJDbGFpbVtdID0gW107XHJcbn1cclxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtY29tcG9uZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2Uvc2VydmljZXMvZWNhYnMtY29tcG9uZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQU1yRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGFBQWEsR0FBMEI7UUFDckMsZ0JBQWdCLEVBQUUsRUFBRTtRQUNwQixhQUFhLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUNqQyxJQUFJO1FBQ0osTUFBTSxFQUFFLEVBQUU7UUFDViwwQkFBMEIsRUFBRSxJQUFJO0tBQ2pDLENBQUM7SUFFRixNQUFNLENBQXdCO0lBRWIsT0FBTyxHQUFHLElBQUksZUFBZSxDQUM1QyxJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFDO0lBRUYsU0FBUyxDQUFDLE1BQTZCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFtQztRQUM5QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUEwQixJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFFMUUsS0FBSyxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7WUFDL0IsSUFDRSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztnQkFDeEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFDdkQ7Z0JBQ0EsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNwRCxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDL0MsQ0FBQyxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3pDO1NBQ0Y7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUU1QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUSxDQUFDLGdCQUEwQixFQUFFO1FBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTTtZQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87aUJBQ1QsUUFBUSxFQUFFO2lCQUNWLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUF1QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbkU7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0dBL0RVLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBcUZELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBQ25DLElBQUksQ0FBWTtJQUNoQixNQUFNLEdBQWdCLEVBQUUsQ0FBQztDQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBlcnJvck1lc3NhZ2VzIH0gZnJvbSAnLi4vY29uc3RzL2Vycm9yLW1lc3NhZ2VzLmNvbnN0cyc7XHJcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9jb25zdHMvdHJhbnNsYXRpb25zLmNvbnN0cyc7XHJcbmltcG9ydCB7IFVzZXJDbGFpbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWNsYWltLm1vZGVscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNDb21wb25lbnRzU2VydmljZSB7XHJcbiAgZGVmYXVsdENvbmZpZzogRWNhYnNDb21wb25lbnRzQ29uZmlnID0ge1xyXG4gICAgZGVmYXVsdENvdW50cmllczogW10sXHJcbiAgICBlcnJvck1lc3NhZ2VzOiBbLi4uZXJyb3JNZXNzYWdlc10sXHJcbiAgICBpMThuLFxyXG4gICAgY2xhaW1zOiBbXSxcclxuICAgIGRlZmF1bHRQaG9uZURlYm91bmNlVGltZU1zOiAxMDAwLFxyXG4gIH07XHJcblxyXG4gIGNvbmZpZzogRWNhYnNDb21wb25lbnRzQ29uZmlnO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVjYWJzQ29tcG9uZW50c0NvbmZpZz4oXHJcbiAgICB0aGlzLmRlZmF1bHRDb25maWcsXHJcbiAgKTtcclxuXHJcbiAgc2V0Q29uZmlnKGNvbmZpZzogRWNhYnNDb21wb25lbnRzQ29uZmlnKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZyB8fCB0aGlzLmRlZmF1bHRDb25maWc7XHJcblxyXG4gICAgdGhpcy5fY29uZmlnLm5leHQoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIGdldENvbmZpZygpOiBPYnNlcnZhYmxlPEVjYWJzQ29tcG9uZW50c0NvbmZpZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbmZpZyhjb25maWdVcGRhdGU6IEVjYWJzQ29tcG9uZW50c0NvbmZpZyk6IHZvaWQge1xyXG4gICAgY29uc3QgY3VycmVudENvbmZpZyA9IHRoaXMuX2NvbmZpZy5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgdXBkYXRlZENvbmZpZzogRWNhYnNDb21wb25lbnRzQ29uZmlnID0gbmV3IEdlbmVyaWNDb21wb25lbnRDb25maWcoKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjdXJyZW50Q29uZmlnKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudENvbmZpZywga2V5KSAmJlxyXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb25maWdVcGRhdGUsIGtleSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdXBkYXRlZENvbmZpZ1trZXldID0gQXJyYXkuaXNBcnJheShjdXJyZW50Q29uZmlnW2tleV0pXHJcbiAgICAgICAgICA/IFsuLi5jdXJyZW50Q29uZmlnW2tleV0sIC4uLmNvbmZpZ1VwZGF0ZVtrZXldXVxyXG4gICAgICAgICAgOiB7IC4uLmN1cnJlbnRDb25maWdba2V5XSwgLi4uY29uZmlnVXBkYXRlW2tleV0gfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1cGRhdGVkQ29uZmlnW2tleV0gPSBjdXJyZW50Q29uZmlnW2tleV07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbmZpZyA9IHVwZGF0ZWRDb25maWc7XHJcblxyXG4gICAgdGhpcy5fY29uZmlnLm5leHQodXBkYXRlZENvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBoYXNDbGFpbShhbGxvd2VkQ2xhaW1zOiBzdHJpbmdbXSA9IFtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB1c2VyQ2xhaW1zID0gdGhpcy5fY29uZmlnLmdldFZhbHVlKCkuY2xhaW1zXHJcbiAgICAgID8gdGhpcy5fY29uZmlnXHJcbiAgICAgICAgICAuZ2V0VmFsdWUoKVxyXG4gICAgICAgICAgLmNsYWltcy5tYXAoKGFwcFVzZXJDbGFpbTogVXNlckNsYWltKSA9PiBhcHBVc2VyQ2xhaW0uY2xhaW0pXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgIGlmIChhbGxvd2VkQ2xhaW1zLmluY2x1ZGVzKCdhbGxvdycpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1c2VyQ2xhaW1zKSB7XHJcbiAgICAgIHJldHVybiBhbGxvd2VkQ2xhaW1zLmV2ZXJ5KChjbGFpbSkgPT4gdXNlckNsYWltcy5pbmNsdWRlcyhjbGFpbSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWNhYnNDb21wb25lbnRzQ29uZmlnIHtcclxuICBkZWZhdWx0Q291bnRyaWVzPzogc3RyaW5nW107XHJcbiAgZXJyb3JNZXNzYWdlcz86IEVycm9yTWVzc2FnZVtdO1xyXG4gIGkxOG4/OiBFY2Fic2kxOG47XHJcbiAgY2xhaW1zPzogVXNlckNsYWltW107XHJcbiAgZGVmYXVsdFBob25lRGVib3VuY2VUaW1lTXM/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JNZXNzYWdlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFY2Fic2kxOG4ge1xyXG4gIGNhbmNlbExhYmVsPzogc3RyaW5nO1xyXG4gIGNvbmZpcm1MYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNDb21wb25lbnRDb25maWcgaW1wbGVtZW50cyBFY2Fic0NvbXBvbmVudHNDb25maWcge1xyXG4gIGRlZmF1bHRDb3VudHJpZXM6IHN0cmluZ1tdID0gW107XHJcbiAgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcclxuICBpMThuOiBFY2Fic2kxOG47XHJcbiAgY2xhaW1zOiBVc2VyQ2xhaW1bXSA9IFtdO1xyXG59XHJcbiJdfQ==
@@ -50,7 +50,7 @@ export class EcabsBasePhoneComponent extends _NgxMatIntlTelInputMixinBase {
50
50
  enableSearch = false;
51
51
  searchPlaceholder;
52
52
  describedBy = '';
53
- debounceTimeMs = 500;
53
+ debounceTimeMs;
54
54
  get format() {
55
55
  return this._format;
56
56
  }
@@ -412,4 +412,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
412
412
  type: HostBinding,
413
413
  args: ['class.ngx-floating']
414
414
  }] } });
415
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYmFzZS1waG9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1iYXNlLXBob25lLWlucHV0L2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBSUwsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFNBQVMsRUFHVCxnQkFBZ0IsRUFFaEIsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixlQUFlLEdBR2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7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cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBEb0NoZWNrLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICBOZ0NvbnRyb2wsXHJcbiAgTmdGb3JtLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFzWW91VHlwZSxcclxuICBDb3VudHJ5Q29kZSBhcyBDQyxcclxuICBFMTY0TnVtYmVyLFxyXG4gIGdldEV4YW1wbGVOdW1iZXIsXHJcbiAgTmF0aW9uYWxOdW1iZXIsXHJcbiAgcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcsXHJcbiAgUGhvbmVOdW1iZXIsXHJcbn0gZnJvbSAnbGlicGhvbmVudW1iZXItanMnO1xyXG5cclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQge1xyXG4gIENhblVwZGF0ZUVycm9yU3RhdGUsXHJcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXHJcbiAgbWl4aW5FcnJvclN0YXRlLFxyXG4gIF9BYnN0cmFjdENvbnN0cnVjdG9yLFxyXG4gIF9Db25zdHJ1Y3RvcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ291bnRyeUNvZGUsIEV4YW1wbGVzIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvY291bnRyeS1jb2Rlcyc7XHJcbmltcG9ydCB7IHBob25lTnVtYmVyVmFsaWRhdG9yIH0gZnJvbSAnLi4vYmFzZS92YWxpZGF0b3JzL3Bob25lLW51bWJlci52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBDb3VudHJ5LCBQaG9uZU51bWJlckZvcm1hdCB9IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscyc7XHJcblxyXG5jbGFzcyBOZ3hNYXRJbnRsVGVsSW5wdXRCYXNlIHtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxyXG4gICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICApIHt9XHJcbn1cclxuXHJcbmRlY2xhcmUgdHlwZSBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciA9IF9Db25zdHJ1Y3RvcjxDYW5VcGRhdGVFcnJvclN0YXRlPiAmXHJcbiAgX0Fic3RyYWN0Q29uc3RydWN0b3I8Q2FuVXBkYXRlRXJyb3JTdGF0ZT47XHJcblxyXG5jb25zdCBfTmd4TWF0SW50bFRlbElucHV0TWl4aW5CYXNlOiBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciAmXHJcbiAgdHlwZW9mIE5neE1hdEludGxUZWxJbnB1dEJhc2UgPSBtaXhpbkVycm9yU3RhdGUoTmd4TWF0SW50bFRlbElucHV0QmFzZSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWJhc2UtcGhvbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDb3VudHJ5Q29kZSxcclxuICAgIHsgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVjYWJzQmFzZVBob25lQ29tcG9uZW50IH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZVZhbHVlOiBwaG9uZU51bWJlclZhbGlkYXRvcixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRWNhYnNCYXNlUGhvbmVDb21wb25lbnRcclxuICBleHRlbmRzIF9OZ3hNYXRJbnRsVGVsSW5wdXRNaXhpbkJhc2VcclxuICBpbXBsZW1lbnRzXHJcbiAgICBPbkluaXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcclxuICAgIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PlxyXG57XHJcbiAgQElucHV0KCkgcHJlZmVycmVkQ291bnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVBsYWNlaG9sZGVyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgY3NzQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgb25seUNvdW50cmllczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIgPVxyXG4gICAgbmV3IEVycm9yU3RhdGVNYXRjaGVyKCk7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZU1zID0gNTAwO1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGZvcm1hdCgpOiBQaG9uZU51bWJlckZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlciB8fCAnJztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgY291bnRyeUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvdW50cnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0TWVudSkgbWF0TWVudTogTWF0TWVudSB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHNlYXJjaElucHV0OiBFbGVtZW50UmVmO1xyXG5cclxuICBASG9zdEJpbmRpbmcoKVxyXG4gIGlkID0gYGVjYWJzLWludGwtdGVsLWlucHV0LSR7RWNhYnNCYXNlUGhvbmVDb21wb25lbnQubmV4dElkKyt9YDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZ3gtZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9wcmV2aW91c0Zvcm1hdHRlZE51bWJlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX2Zvcm1hdDogUGhvbmVOdW1iZXJGb3JtYXQgPSAnZGVmYXVsdCc7XHJcbiAgb3ZlcnJpZGUgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIHBob25lTnVtYmVyOiBOYXRpb25hbE51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBhbGxDb3VudHJpZXM6IENvdW50cnlbXSA9IFtdO1xyXG4gIHByZWZlcnJlZENvdW50cmllc0luRHJvcERvd246IENvdW50cnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkQ291bnRyeTogQ291bnRyeSB8IHVuZGVmaW5lZDtcclxuICBudW1iZXJJbnN0YW5jZTogUGhvbmVOdW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgdmFsdWU6IEUxNjROdW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgc2VhcmNoQ3JpdGVyaWE6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnBob25lTnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZvcm1hdCh2YWx1ZTogUGhvbmVOdW1iZXJGb3JtYXQpIHtcclxuICAgIHRoaXMuX2Zvcm1hdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXI7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0UGhvbmVOdW1iZXJQbGFjZUhvbGRlcihjb3VudHJ5SVNPQ29kZTogQ0MpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gZ2V0RXhhbXBsZU51bWJlcihjb3VudHJ5SVNPQ29kZSwgRXhhbXBsZXMpO1xyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1leHRyYS1ib29sZWFuLWNhc3RcclxuICAgIHJldHVybiAhIXJlc3VsdCA/IHJlc3VsdC5udW1iZXIudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IHVua25vd24pID0+IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBjb3VudHJ5Q29kZURhdGE6IENvdW50cnlDb2RlLFxyXG4gICAgcHJpdmF0ZSBmbTogRm9jdXNNb25pdG9yLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBvdmVycmlkZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm06IE5nRm9ybSxcclxuICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICApIHtcclxuICAgIHN1cGVyKGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciwgcGFyZW50Rm9ybSwgcGFyZW50Rm9ybUdyb3VwLCBuZ0NvbnRyb2wpO1xyXG5cclxuICAgIGZtLm1vbml0b3IoZWxSZWYsIHRydWUpLnN1YnNjcmliZSgob3JpZ2luKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgIW9yaWdpbikge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZXRjaENvdW50cnlEYXRhKCk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlYXJjaFBsYWNlaG9sZGVyKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoIC4uLic7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmZvckVhY2goKGlzbzIpID0+IHtcclxuICAgICAgICBjb25zdCBwcmVmZXJyZWRDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXNcclxuICAgICAgICAgIC5maWx0ZXIoKGMpID0+IGMuaXNvMiA9PT0gaXNvMilcclxuICAgICAgICAgIC5zaGlmdCgpO1xyXG4gICAgICAgIGlmIChwcmVmZXJyZWRDb3VudHJ5KSB7XHJcbiAgICAgICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24ucHVzaChwcmVmZXJyZWRDb3VudHJ5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25seUNvdW50cmllcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hbGxDb3VudHJpZXMgPSB0aGlzLmFsbENvdW50cmllcy5maWx0ZXIoKGMpID0+XHJcbiAgICAgICAgdGhpcy5vbmx5Q291bnRyaWVzLmluY2x1ZGVzKGMuaXNvMiksXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5udW1iZXJJbnN0YW5jZSAmJiB0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkpIHtcclxuICAgICAgLy8gSWYgYW4gZXhpc3RpbmcgbnVtYmVyIGlzIHByZXNlbnQsIHdlIHVzZSBpdCB0byBkZXRlcm1pbmUgc2VsZWN0ZWRDb3VudHJ5XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRDb3VudHJ5KHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duWzBdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5hbGxDb3VudHJpZXNbMF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3RcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lTXMpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmNvdW50cnlDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMuZm0uc3RvcE1vbml0b3JpbmcodGhpcy5lbFJlZik7XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBvblBob25lTnVtYmVyQ2hhbmdlRGVib3VuY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0Lm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG9uUGhvbmVOdW1iZXJDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICB0aGlzLm51bWJlckluc3RhbmNlID0gcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcoXHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKSB8fCAnJyxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMi50b1VwcGVyQ2FzZSgpIGFzIENDLFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZvcm1hdEFzWW91VHlwZUlmRW5hYmxlZCgpO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5udW1iZXJJbnN0YW5jZT8ubnVtYmVyO1xyXG4gICAgICBpZiAodGhpcy5udW1iZXJJbnN0YW5jZSAmJiB0aGlzLm51bWJlckluc3RhbmNlLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIGlmICh0aGlzLnBob25lTnVtYmVyICE9PSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyKSB7XHJcbiAgICAgICAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5mb3JtYXR0ZWRQaG9uZU51bWJlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIgIT09IHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSAmJlxyXG4gICAgICAgICAgISF0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRDb3VudHJ5KHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSk7XHJcbiAgICAgICAgICB0aGlzLmNvdW50cnlDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIC8vIGlmIG5vIHBvc3NpYmxlIG51bWJlcnMgYXJlIHRoZXJlLFxyXG4gICAgICAvLyB0aGVuIHRoZSBmdWxsIG51bWJlciBpcyBwYXNzZWQgc28gdGhhdCB2YWxpZGF0b3IgY291bGQgYmUgdHJpZ2dlcmVkIGFuZCBwcm9wZXIgZXJyb3IgY291bGQgYmUgc2hvd25cclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkNvdW50cnlTZWxlY3QoY291bnRyeTogQ291bnRyeSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGhvbmVOdW1iZXIpIHtcclxuICAgICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMubnVtYmVySW5zdGFuY2U/Lm5hdGlvbmFsTnVtYmVyO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5O1xyXG4gICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgIHRoaXMub25QaG9uZU51bWJlckNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q291bnRyeShjb2RlOiBzdHJpbmcpOiBDb3VudHJ5IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzLmZpbmQoKGMpID0+IGMuaXNvMiA9PT0gY29kZS50b0xvd2VyQ2FzZSgpKSB8fCB7XHJcbiAgICAgICAgbmFtZTogJ1VOJyxcclxuICAgICAgICBpc28yOiAnVU4nLFxyXG4gICAgICAgIGRpYWxDb2RlOiAnJyxcclxuICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICBhcmVhQ29kZXM6IHVuZGVmaW5lZCxcclxuICAgICAgICBmbGFnQ2xhc3M6ICdVTicsXHJcbiAgICAgICAgcGxhY2VIb2xkZXI6ICcnLFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL1swLTkrXFwtIF0vO1xyXG4gICAgaWYgKCFwYXR0ZXJuLnRlc3QoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmxhZ0NsYXNzKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGZpIGZpLSR7bGFuZz8uc2xpY2UoLTIpLnRvTG93ZXJDYXNlKCl9YDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVySW5zdGFuY2UgPSBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyh2YWx1ZSk7XHJcbiAgICAgIGlmICh0aGlzLm51bWJlckluc3RhbmNlKSB7XHJcbiAgICAgICAgY29uc3QgY291bnRyeUNvZGUgPSB0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnk7XHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXI7XHJcbiAgICAgICAgaWYgKCFjb3VudHJ5Q29kZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5nZXRDb3VudHJ5KGNvdW50cnlDb2RlKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUgJiZcclxuICAgICAgICAgICAgIXRoaXMucHJlZmVycmVkQ291bnRyaWVzLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLnB1c2godGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuXHJcbiAgICAgICAgICAvLyBJbml0aWFsIHZhbHVlIGlzIHNldFxyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICB9LCAxKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBob25lTnVtYmVyID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWx1ZSBpcyBzZXQgZnJvbSBvdXRzaWRlIHVzaW5nIHNldFZhbHVlKClcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcblxyXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ2lucHV0Jykge1xyXG4gICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKSEuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5waG9uZU51bWJlciA9ICcnO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UobnVsbCk7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoSW5wdXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZmV0Y2hDb3VudHJ5RGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY291bnRyeUNvZGVEYXRhLmFsbENvdW50cmllcy5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSB7XHJcbiAgICAgICAgbmFtZTogY1swXS50b1N0cmluZygpLFxyXG4gICAgICAgIGlzbzI6IGNbMV0udG9TdHJpbmcoKSxcclxuICAgICAgICBkaWFsQ29kZTogY1syXS50b1N0cmluZygpLFxyXG4gICAgICAgIHByaW9yaXR5OiArY1szXSB8fCAwLFxyXG4gICAgICAgIGFyZWFDb2RlczogKGNbNF0gYXMgc3RyaW5nW10pIHx8IHVuZGVmaW5lZCxcclxuICAgICAgICBmbGFnQ2xhc3M6IGNbMV0udG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgIHBsYWNlSG9sZGVyOiAnJyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmVuYWJsZVBsYWNlaG9sZGVyKSB7XHJcbiAgICAgICAgY291bnRyeS5wbGFjZUhvbGRlciA9IEVjYWJzQmFzZVBob25lQ29tcG9uZW50LmdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoXHJcbiAgICAgICAgICBjb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKSBhcyBDQyxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmFsbENvdW50cmllcy5wdXNoKGNvdW50cnkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBmb3JtYXR0ZWRQaG9uZU51bWJlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLm51bWJlckluc3RhbmNlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnBob25lTnVtYmVyPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLmZvcm1hdCkge1xyXG4gICAgICBjYXNlICduYXRpb25hbCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVySW5zdGFuY2UuZm9ybWF0TmF0aW9uYWwoKTtcclxuXHJcbiAgICAgIGNhc2UgJ2ludGVybmF0aW9uYWwnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckluc3RhbmNlLmZvcm1hdEludGVybmF0aW9uYWwoKTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVySW5zdGFuY2UubmF0aW9uYWxOdW1iZXIudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0QXNZb3VUeXBlSWZFbmFibGVkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnZGVmYXVsdCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXNZb3VUeXBlOiBBc1lvdVR5cGUgPSBuZXcgQXNZb3VUeXBlKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMi50b1VwcGVyQ2FzZSgpIGFzIENDLFxyXG4gICAgKTtcclxuICAgIC8vIFRvIGF2b2lkIGNhcmV0IHBvc2l0aW9uaW5nIHdlIGFwcGx5IGZvcm1hdHRpbmcgb25seSBpZiB0aGUgY2FyZXQgaXMgYXQgdGhlIGVuZDpcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5waG9uZU51bWJlclxyXG4gICAgICAgID8udG9TdHJpbmcoKVxyXG4gICAgICAgIC5zdGFydHNXaXRoKHRoaXMuX3ByZXZpb3VzRm9ybWF0dGVkTnVtYmVyIHx8ICcnKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSBhc1lvdVR5cGUuaW5wdXQodGhpcy5waG9uZU51bWJlci50b1N0cmluZygpKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3ByZXZpb3VzRm9ybWF0dGVkTnVtYmVyID0gdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1jb250YWluZXJcIj5cclxuICA8YnV0dG9uXHJcbiAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgIG1hdC1idXR0b25cclxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICAgIGNsYXNzPVwiY291bnRyeS1zZWxlY3RvclwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gID5cclxuICAgIDxzcGFuXHJcbiAgICAgIGNsYXNzPVwiY291bnRyeS1zZWxlY3Rvci1mbGFnIGZsYWdcIlxyXG4gICAgICBbbmdDbGFzc109XCJmbGFnQ2xhc3Moc2VsZWN0ZWRDb3VudHJ5Py5mbGFnQ2xhc3MpXCJcclxuICAgID48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cImNvdW50cnktc2VsZWN0b3ItY29kZVwiICpuZ0lmPVwic2VsZWN0ZWRDb3VudHJ5Py5kaWFsQ29kZVwiXHJcbiAgICA+K3t7IHNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSB9fTwvc3BhblxyXG4gICAgPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1tYXQtbWVudS1wYW5lbFwiXHJcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtb3ZlcmxheS1iYWNrZHJvcFwiXHJcbiAgICAgICAgICAgIG92ZXJsYXlQYW5lbENsYXNzPVwiZWNhYnMtdGVsLWlucHV0LW92ZXJsYXktcGFuZVwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgICNzZWFyY2hJbnB1dFxyXG4gICAgICAqbmdJZj1cImVuYWJsZVNlYXJjaFwiXHJcbiAgICAgIGNsYXNzPVwiY291bnRyeS1zZWFyY2hcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaENyaXRlcmlhXCJcclxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hJbnB1dCgpXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIC8+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaENyaXRlcmlhXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJjb3VudHJ5LWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBwcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5U2VsZWN0KGNvdW50cnkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnXCIgICAgXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJmbGFnQ2xhc3MoY291bnRyeS5mbGFnQ2xhc3MpXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXdyYXBwZXJcIj5cclxuICAgICAgICAgIHt7IGNvdW50cnkubmFtZSB9fVxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudHJ5Py5kaWFsQ29kZVwiPit7eyBjb3VudHJ5LmRpYWxDb2RlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwicHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bj8ubGVuZ3RoXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBhbGxDb3VudHJpZXNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICBjbGFzcz1cImNvdW50cnktbGlzdC1idXR0b25cIlxyXG4gICAgICAgICpuZ0lmPVwiY291bnRyeSB8IHNlYXJjaDogc2VhcmNoQ3JpdGVyaWFcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvdW50cnlTZWxlY3QoY291bnRyeSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsYWdcIiBbbmdDbGFzc109XCJmbGFnQ2xhc3MoY291bnRyeS5mbGFnQ2xhc3MpXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLXdyYXBwZXJcIj5cclxuICAgICAgICAgIHt7IGNvdW50cnkubmFtZSB9fSAre3sgY291bnRyeS5kaWFsQ29kZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LW1lbnU+XHJcblxyXG4gIDxpbnB1dFxyXG4gICAgbWF0SW5wdXRcclxuICAgIHR5cGU9XCJ0ZWxcIlxyXG4gICAgYXV0b2NvbXBsZXRlPVwidGVsXCJcclxuICAgIFtuZ0NsYXNzXT1cImNzc0NsYXNzXCJcclxuICAgIChibHVyKT1cIm9uVG91Y2hlZCgpXCJcclxuICAgIChrZXlwcmVzcyk9XCJvbklucHV0S2V5UHJlc3MoJGV2ZW50KVwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInBob25lTnVtYmVyXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGhvbmVOdW1iZXJDaGFuZ2VEZWJvdW5jZSgpXCJcclxuICAgIFtlcnJvclN0YXRlTWF0Y2hlcl09XCJlcnJvclN0YXRlTWF0Y2hlclwiXHJcbiAgICBbcGxhY2Vob2xkZXJdPVwiaW5wdXRQbGFjZWhvbGRlclwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiZGVzY3JpYmVkQnlcIlxyXG4gIC8+XHJcbjwvZGl2PiJdfQ==
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYmFzZS1waG9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1iYXNlLXBob25lLWlucHV0L2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBSUwsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFNBQVMsRUFHVCxnQkFBZ0IsRUFFaEIsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixlQUFlLEdBR2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7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dCI6WyIvLyBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERvQ2hlY2ssXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIE5nQ29udHJvbCxcclxuICBOZ0Zvcm0sXHJcbiAgTkdfVkFMSURBVE9SUyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgQXNZb3VUeXBlLFxyXG4gIENvdW50cnlDb2RlIGFzIENDLFxyXG4gIEUxNjROdW1iZXIsXHJcbiAgZ2V0RXhhbXBsZU51bWJlcixcclxuICBOYXRpb25hbE51bWJlcixcclxuICBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyxcclxuICBQaG9uZU51bWJlcixcclxufSBmcm9tICdsaWJwaG9uZW51bWJlci1qcyc7XHJcblxyXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7XHJcbiAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcclxuICBFcnJvclN0YXRlTWF0Y2hlcixcclxuICBtaXhpbkVycm9yU3RhdGUsXHJcbiAgX0Fic3RyYWN0Q29uc3RydWN0b3IsXHJcbiAgX0NvbnN0cnVjdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRNZW51IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb3VudHJ5Q29kZSwgRXhhbXBsZXMgfSBmcm9tICcuLi9iYXNlL2NvbnN0cy9jb3VudHJ5LWNvZGVzJztcclxuaW1wb3J0IHsgcGhvbmVOdW1iZXJWYWxpZGF0b3IgfSBmcm9tICcuLi9iYXNlL3ZhbGlkYXRvcnMvcGhvbmUtbnVtYmVyLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENvdW50cnksIFBob25lTnVtYmVyRm9ybWF0IH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvcGhvbmUubW9kZWxzJztcclxuXHJcbmNsYXNzIE5neE1hdEludGxUZWxJbnB1dEJhc2Uge1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxyXG4gICAgcHVibGljIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXHJcbiAgICBwdWJsaWMgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICkge31cclxufVxyXG5cclxuZGVjbGFyZSB0eXBlIENhblVwZGF0ZUVycm9yU3RhdGVDdG9yID0gX0NvbnN0cnVjdG9yPENhblVwZGF0ZUVycm9yU3RhdGU+ICZcclxuICBfQWJzdHJhY3RDb25zdHJ1Y3RvcjxDYW5VcGRhdGVFcnJvclN0YXRlPjtcclxuXHJcbmNvbnN0IF9OZ3hNYXRJbnRsVGVsSW5wdXRNaXhpbkJhc2U6IENhblVwZGF0ZUVycm9yU3RhdGVDdG9yICZcclxuICB0eXBlb2YgTmd4TWF0SW50bFRlbElucHV0QmFzZSA9IG1peGluRXJyb3JTdGF0ZShOZ3hNYXRJbnRsVGVsSW5wdXRCYXNlKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtYmFzZS1waG9uZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiBmYWxzZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvdW50cnlDb2RlLFxyXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWNhYnNCYXNlUGhvbmVDb21wb25lbnQgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlVmFsdWU6IHBob25lTnVtYmVyVmFsaWRhdG9yLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzQmFzZVBob25lQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBfTmd4TWF0SW50bFRlbElucHV0TWl4aW5CYXNlXHJcbiAgaW1wbGVtZW50c1xyXG4gICAgT25Jbml0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgRG9DaGVjayxcclxuICAgIENhblVwZGF0ZUVycm9yU3RhdGUsXHJcbiAgICBNYXRGb3JtRmllbGRDb250cm9sPGFueT5cclxue1xyXG4gIEBJbnB1dCgpIHByZWZlcnJlZENvdW50cmllczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBlbmFibGVQbGFjZWhvbGRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgaW5wdXRQbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG9ubHlDb3VudHJpZXM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgZXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyID1cclxuICAgIG5ldyBFcnJvclN0YXRlTWF0Y2hlcigpO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGVzY3JpYmVkQnkgPSAnJztcclxuICBASW5wdXQoKSBkZWJvdW5jZVRpbWVNcztcclxuICBASW5wdXQoKVxyXG4gIGdldCBmb3JtYXQoKTogUGhvbmVOdW1iZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXIgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGNvdW50cnlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5PigpO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdE1lbnUpIG1hdE1lbnU6IE1hdE1lbnUgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKClcclxuICBpZCA9IGBlY2Ficy1pbnRsLXRlbC1pbnB1dC0ke0VjYWJzQmFzZVBob25lQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Mubmd4LWZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbmdlU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtYXR0ZWROdW1iZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9mb3JtYXQ6IFBob25lTnVtYmVyRm9ybWF0ID0gJ2RlZmF1bHQnO1xyXG4gIG92ZXJyaWRlIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBwaG9uZU51bWJlcjogTmF0aW9uYWxOdW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgYWxsQ291bnRyaWVzOiBDb3VudHJ5W10gPSBbXTtcclxuICBwcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duOiBDb3VudHJ5W10gPSBbXTtcclxuICBzZWxlY3RlZENvdW50cnk6IENvdW50cnkgfCB1bmRlZmluZWQ7XHJcbiAgbnVtYmVySW5zdGFuY2U6IFBob25lTnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIHZhbHVlOiBFMTY0TnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHNlYXJjaENyaXRlcmlhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5waG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIHNldCBmb3JtYXQodmFsdWU6IFBob25lTnVtYmVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLl9mb3JtYXQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoY291bnRyeUlTT0NvZGU6IENDKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IGdldEV4YW1wbGVOdW1iZXIoY291bnRyeUlTT0NvZGUsIEV4YW1wbGVzKTtcclxuXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0cmEtYm9vbGVhbi1jYXN0XHJcbiAgICByZXR1cm4gISFyZXN1bHQgPyByZXN1bHQubnVtYmVyLnRvU3RyaW5nKCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiB1bmtub3duKSA9PiB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgY291bnRyeUNvZGVEYXRhOiBDb3VudHJ5Q29kZSxcclxuICAgIHByaXZhdGUgZm06IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgb3ZlcnJpZGUgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtOiBOZ0Zvcm0sXHJcbiAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIsIHBhcmVudEZvcm0sIHBhcmVudEZvcm1Hcm91cCwgbmdDb250cm9sKTtcclxuXHJcbiAgICBmbS5tb25pdG9yKGVsUmVmLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZmV0Y2hDb3VudHJ5RGF0YSgpO1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zZWFyY2hQbGFjZWhvbGRlcikge1xyXG4gICAgICB0aGlzLnNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCAuLi4nO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllcy5mb3JFYWNoKChpc28yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJlZmVycmVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzXHJcbiAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjLmlzbzIgPT09IGlzbzIpXHJcbiAgICAgICAgICAuc2hpZnQoKTtcclxuICAgICAgICBpZiAocHJlZmVycmVkQ291bnRyeSkge1xyXG4gICAgICAgICAgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLnB1c2gocHJlZmVycmVkQ291bnRyeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9ubHlDb3VudHJpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PlxyXG4gICAgICAgIHRoaXMub25seUNvdW50cmllcy5pbmNsdWRlcyhjLmlzbzIpLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubnVtYmVySW5zdGFuY2UgJiYgdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5KSB7XHJcbiAgICAgIC8vIElmIGFuIGV4aXN0aW5nIG51bWJlciBpcyBwcmVzZW50LCB3ZSB1c2UgaXQgdG8gZGV0ZXJtaW5lIHNlbGVjdGVkQ291bnRyeVxyXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0Q291bnRyeSh0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93blswXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzWzBdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0XHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZU1zKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYpO1xyXG4gICAgdGhpcy5fY2hhbmdlU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25QaG9uZU51bWJlckNoYW5nZURlYm91bmNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2hhbmdlU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBvblBob25lTnVtYmVyQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5udW1iZXJJbnN0YW5jZSA9IHBhcnNlUGhvbmVOdW1iZXJGcm9tU3RyaW5nKFxyXG4gICAgICAgIHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCkgfHwgJycsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIudG9VcHBlckNhc2UoKSBhcyBDQyxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5mb3JtYXRBc1lvdVR5cGVJZkVuYWJsZWQoKTtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubnVtYmVySW5zdGFuY2U/Lm51bWJlcjtcclxuICAgICAgaWYgKHRoaXMubnVtYmVySW5zdGFuY2UgJiYgdGhpcy5udW1iZXJJbnN0YW5jZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICBpZiAodGhpcy5waG9uZU51bWJlciAhPT0gdGhpcy5mb3JtYXR0ZWRQaG9uZU51bWJlcikge1xyXG4gICAgICAgICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Py5pc28yICE9PSB0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkgJiZcclxuICAgICAgICAgICEhdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0Q291bnRyeSh0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkpO1xyXG4gICAgICAgICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICAvLyBpZiBubyBwb3NzaWJsZSBudW1iZXJzIGFyZSB0aGVyZSxcclxuICAgICAgLy8gdGhlbiB0aGUgZnVsbCBudW1iZXIgaXMgcGFzc2VkIHNvIHRoYXQgdmFsaWRhdG9yIGNvdWxkIGJlIHRyaWdnZXJlZCBhbmQgcHJvcGVyIGVycm9yIGNvdWxkIGJlIHNob3duXHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnBob25lTnVtYmVyPy50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25Db3VudHJ5U2VsZWN0KGNvdW50cnk6IENvdW50cnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBob25lTnVtYmVyKSB7XHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLm51bWJlckluc3RhbmNlPy5uYXRpb25hbE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcclxuICAgIHRoaXMuY291bnRyeUNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcbiAgICB0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50cnkoY29kZTogc3RyaW5nKTogQ291bnRyeSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmFsbENvdW50cmllcy5maW5kKChjKSA9PiBjLmlzbzIgPT09IGNvZGUudG9Mb3dlckNhc2UoKSkgfHwge1xyXG4gICAgICAgIG5hbWU6ICdVTicsXHJcbiAgICAgICAgaXNvMjogJ1VOJyxcclxuICAgICAgICBkaWFsQ29kZTogJycsXHJcbiAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgYXJlYUNvZGVzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgZmxhZ0NsYXNzOiAnVU4nLFxyXG4gICAgICAgIHBsYWNlSG9sZGVyOiAnJyxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRLZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC9bMC05K1xcLSBdLztcclxuICAgIGlmICghcGF0dGVybi50ZXN0KGV2ZW50LmtleSkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZsYWdDbGFzcyhsYW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBmaSBmaS0ke2xhbmc/LnNsaWNlKC0yKS50b0xvd2VyQ2FzZSgpfWA7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLm51bWJlckluc3RhbmNlID0gcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcodmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5udW1iZXJJbnN0YW5jZSkge1xyXG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5O1xyXG4gICAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyO1xyXG4gICAgICAgIGlmICghY291bnRyeUNvZGUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0Q291bnRyeShjb3VudHJ5Q29kZSk7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlICYmXHJcbiAgICAgICAgICAgICF0aGlzLnByZWZlcnJlZENvdW50cmllcy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5wdXNoKHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY291bnRyeUNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcblxyXG4gICAgICAgICAgLy8gSW5pdGlhbCB2YWx1ZSBpcyBzZXRcclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSwgMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlciA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsdWUgaXMgc2V0IGZyb20gb3V0c2lkZSB1c2luZyBzZXRWYWx1ZSgpXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdpbnB1dCcpIHtcclxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykhLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGhvbmVOdW1iZXIgPSAnJztcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaElucHV0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZldGNoQ291bnRyeURhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvdW50cnlDb2RlRGF0YS5hbGxDb3VudHJpZXMuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0ge1xyXG4gICAgICAgIG5hbWU6IGNbMF0udG9TdHJpbmcoKSxcclxuICAgICAgICBpc28yOiBjWzFdLnRvU3RyaW5nKCksXHJcbiAgICAgICAgZGlhbENvZGU6IGNbMl0udG9TdHJpbmcoKSxcclxuICAgICAgICBwcmlvcml0eTogK2NbM10gfHwgMCxcclxuICAgICAgICBhcmVhQ29kZXM6IChjWzRdIGFzIHN0cmluZ1tdKSB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgZmxhZ0NsYXNzOiBjWzFdLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSxcclxuICAgICAgICBwbGFjZUhvbGRlcjogJycsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVQbGFjZWhvbGRlcikge1xyXG4gICAgICAgIGNvdW50cnkucGxhY2VIb2xkZXIgPSBFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudC5nZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKFxyXG4gICAgICAgICAgY291bnRyeS5pc28yLnRvVXBwZXJDYXNlKCkgYXMgQ0MsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hbGxDb3VudHJpZXMucHVzaChjb3VudHJ5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgZm9ybWF0dGVkUGhvbmVOdW1iZXIoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5udW1iZXJJbnN0YW5jZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgIH1cclxuICAgIHN3aXRjaCAodGhpcy5mb3JtYXQpIHtcclxuICAgICAgY2FzZSAnbmF0aW9uYWwnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckluc3RhbmNlLmZvcm1hdE5hdGlvbmFsKCk7XHJcblxyXG4gICAgICBjYXNlICdpbnRlcm5hdGlvbmFsJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJJbnN0YW5jZS5mb3JtYXRJbnRlcm5hdGlvbmFsKCk7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckluc3RhbmNlLm5hdGlvbmFsTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdEFzWW91VHlwZUlmRW5hYmxlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2RlZmF1bHQnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGFzWW91VHlwZTogQXNZb3VUeXBlID0gbmV3IEFzWW91VHlwZShcclxuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIudG9VcHBlckNhc2UoKSBhcyBDQyxcclxuICAgICk7XHJcbiAgICAvLyBUbyBhdm9pZCBjYXJldCBwb3NpdGlvbmluZyB3ZSBhcHBseSBmb3JtYXR0aW5nIG9ubHkgaWYgdGhlIGNhcmV0IGlzIGF0IHRoZSBlbmQ6XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXJcclxuICAgICAgICA/LnRvU3RyaW5nKClcclxuICAgICAgICAuc3RhcnRzV2l0aCh0aGlzLl9wcmV2aW91c0Zvcm1hdHRlZE51bWJlciB8fCAnJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBob25lTnVtYmVyID0gYXNZb3VUeXBlLmlucHV0KHRoaXMucGhvbmVOdW1iZXIudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wcmV2aW91c0Zvcm1hdHRlZE51bWJlciA9IHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICBtYXQtYnV0dG9uXHJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcbiAgICBjbGFzcz1cImNvdW50cnktc2VsZWN0b3JcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICA+XHJcbiAgICA8c3BhblxyXG4gICAgICBjbGFzcz1cImNvdW50cnktc2VsZWN0b3ItZmxhZyBmbGFnXCJcclxuICAgICAgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKHNlbGVjdGVkQ291bnRyeT8uZmxhZ0NsYXNzKVwiXHJcbiAgICA+PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjb3VudHJ5LXNlbGVjdG9yLWNvZGVcIiAqbmdJZj1cInNlbGVjdGVkQ291bnRyeT8uZGlhbENvZGVcIlxyXG4gICAgPit7eyBzZWxlY3RlZENvdW50cnkuZGlhbENvZGUgfX08L3NwYW5cclxuICAgID5cclxuICA8L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtbWF0LW1lbnUtcGFuZWxcIlxyXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzPVwiZWNhYnMtdGVsLWlucHV0LW92ZXJsYXktYmFja2Ryb3BcIlxyXG4gICAgICAgICAgICBvdmVybGF5UGFuZWxDbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1vdmVybGF5LXBhbmVcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICAjc2VhcmNoSW5wdXRcclxuICAgICAgKm5nSWY9XCJlbmFibGVTZWFyY2hcIlxyXG4gICAgICBjbGFzcz1cImNvdW50cnktc2VhcmNoXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hDcml0ZXJpYVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoSW5wdXQoKVwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAvPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWFyY2hDcml0ZXJpYVwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgIGNsYXNzPVwiY291bnRyeS1saXN0LWJ1dHRvblwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgcHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93blwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ291bnRyeVNlbGVjdChjb3VudHJ5KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxhZ1wiICAgIFxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGNvdW50cnkuZmxhZ0NsYXNzKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICB7eyBjb3VudHJ5Lm5hbWUgfX1cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRyeT8uZGlhbENvZGVcIj4re3sgY291bnRyeS5kaWFsQ29kZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24/Lmxlbmd0aFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgYWxsQ291bnRyaWVzXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJjb3VudHJ5LWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAqbmdJZj1cImNvdW50cnkgfCBzZWFyY2g6IHNlYXJjaENyaXRlcmlhXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5U2VsZWN0KGNvdW50cnkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnXCIgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGNvdW50cnkuZmxhZ0NsYXNzKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICB7eyBjb3VudHJ5Lm5hbWUgfX0gK3t7IGNvdW50cnkuZGlhbENvZGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1tZW51PlxyXG5cclxuICA8aW5wdXRcclxuICAgIG1hdElucHV0XHJcbiAgICB0eXBlPVwidGVsXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cInRlbFwiXHJcbiAgICBbbmdDbGFzc109XCJjc3NDbGFzc1wiXHJcbiAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAoa2V5cHJlc3MpPVwib25JbnB1dEtleVByZXNzKCRldmVudClcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJwaG9uZU51bWJlclwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblBob25lTnVtYmVyQ2hhbmdlRGVib3VuY2UoKVwiXHJcbiAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cImlucHV0UGxhY2Vob2xkZXJcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cImRlc2NyaWJlZEJ5XCJcclxuICAvPlxyXG48L2Rpdj4iXX0=
@@ -1,24 +1,23 @@
1
1
  import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR, NgControl, UntypedFormControl, UntypedFormGroup, Validators, } from '@angular/forms';
3
3
  import EcabsElementBaseComponent from '../base/element-base';
4
- import { UnsubscribeService } from '../base/services/unsubscribe.service';
5
- import { takeUntil } from 'rxjs';
4
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "../base/services/ecabs-components.service";
8
- import * as i2 from "../base/services/unsubscribe.service";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "../base/element-wrapper/element-wrapper.component";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "../ecabs-base-phone-input/ecabs-base-phone.component";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "../base/element-wrapper/element-wrapper.component";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "../ecabs-base-phone-input/ecabs-base-phone.component";
13
11
  export class EcabsPhoneComponent extends EcabsElementBaseComponent {
14
12
  injector;
15
13
  ecabsComponentsService;
16
- unsubscribeService;
14
+ destroyRef;
17
15
  preferredCountries;
18
16
  enablePlaceholder;
19
17
  enableSearch = true;
20
18
  useOnlyDisabledClass = false;
21
19
  required;
20
+ debounceTimeMs;
22
21
  onblur = new EventEmitter();
23
22
  phoneInput;
24
23
  phoneForm;
@@ -32,11 +31,11 @@ export class EcabsPhoneComponent extends EcabsElementBaseComponent {
32
31
  this.phoneForm.setValue({ phone: val });
33
32
  }
34
33
  }
35
- constructor(injector, ecabsComponentsService, unsubscribeService) {
34
+ constructor(injector, ecabsComponentsService, destroyRef) {
36
35
  super();
37
36
  this.injector = injector;
38
37
  this.ecabsComponentsService = ecabsComponentsService;
39
- this.unsubscribeService = unsubscribeService;
38
+ this.destroyRef = destroyRef;
40
39
  }
41
40
  onInput(event) {
42
41
  if (this.prohibitedCharacters.includes(event.key)) {
@@ -49,11 +48,14 @@ export class EcabsPhoneComponent extends EcabsElementBaseComponent {
49
48
  });
50
49
  this.ecabsComponentsService
51
50
  .getConfig()
52
- .pipe(takeUntil(this.unsubscribeService.subscription()))
51
+ .pipe(takeUntilDestroyed(this.destroyRef))
53
52
  .subscribe((val) => {
54
53
  if (!this.preferredCountries?.length) {
55
54
  this.preferredCountries = val.defaultCountries;
56
55
  }
56
+ if (!this.debounceTimeMs) {
57
+ this.debounceTimeMs = val.defaultPhoneDebounceTimeMs;
58
+ }
57
59
  });
58
60
  }
59
61
  ngAfterViewInit() {
@@ -107,27 +109,25 @@ export class EcabsPhoneComponent extends EcabsElementBaseComponent {
107
109
  }
108
110
  this.control?.setErrors(this.phoneForm.get('phone').errors);
109
111
  }
110
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPhoneComponent, deps: [{ token: i0.Injector }, { token: i1.EcabsComponentsService }, { token: i2.UnsubscribeService }], target: i0.ɵɵFactoryTarget.Component });
111
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPhoneComponent, selector: "ecabs-phone", inputs: { preferredCountries: "preferredCountries", enablePlaceholder: "enablePlaceholder", enableSearch: "enableSearch", useOnlyDisabledClass: "useOnlyDisabledClass", required: "required" }, outputs: { onblur: "onblur" }, host: { listeners: { "keypress": "onInput($event)" } }, providers: [
112
- UnsubscribeService,
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPhoneComponent, deps: [{ token: i0.Injector }, { token: i1.EcabsComponentsService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsPhoneComponent, selector: "ecabs-phone", inputs: { preferredCountries: "preferredCountries", enablePlaceholder: "enablePlaceholder", enableSearch: "enableSearch", useOnlyDisabledClass: "useOnlyDisabledClass", required: "required", debounceTimeMs: "debounceTimeMs" }, outputs: { onblur: "onblur" }, host: { listeners: { "keypress": "onInput($event)" } }, providers: [
113
114
  {
114
115
  provide: NG_VALUE_ACCESSOR,
115
116
  useExisting: EcabsPhoneComponent,
116
117
  multi: true,
117
118
  },
118
- ], viewQueries: [{ propertyName: "phoneInput", first: true, predicate: ["phoneInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"phoneForm\">\r\n <ecabs-base-phone\r\n (focusout)=\"onBlur()\"\r\n [ngClass]=\"{ error: phoneForm.invalid && (phoneForm.dirty || phoneForm.touched) }\"\r\n #phoneInput\r\n [preferredCountries]=\"preferredCountries\"\r\n [enablePlaceholder]=\"enablePlaceholder\"\r\n [enableSearch]=\"enableSearch\"\r\n [disabled]=\"disabled\"\r\n [formControlName]=\"'phone'\"\r\n name=\"phone\"\r\n [inputPlaceholder]=\"placeholder\"\r\n >\r\n </ecabs-base-phone>\r\n </form>\r\n</ecabs-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.EcabsBasePhoneComponent, selector: "ecabs-base-phone", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "debounceTimeMs", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }] });
119
+ ], viewQueries: [{ propertyName: "phoneInput", first: true, predicate: ["phoneInput"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"phoneForm\">\r\n <ecabs-base-phone\r\n [ngClass]=\"{ error: phoneForm.invalid && (phoneForm.dirty || phoneForm.touched) }\"\r\n #phoneInput\r\n [preferredCountries]=\"preferredCountries\"\r\n [enablePlaceholder]=\"enablePlaceholder\"\r\n [enableSearch]=\"enableSearch\"\r\n [disabled]=\"disabled\"\r\n [formControlName]=\"'phone'\"\r\n [inputPlaceholder]=\"placeholder\"\r\n [debounceTimeMs]=\"debounceTimeMs\"\r\n name=\"phone\"\r\n (focusout)=\"onBlur()\"\r\n >\r\n </ecabs-base-phone>\r\n </form>\r\n</ecabs-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.EcabsBasePhoneComponent, selector: "ecabs-base-phone", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "debounceTimeMs", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }] });
119
120
  }
120
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsPhoneComponent, decorators: [{
121
122
  type: Component,
122
123
  args: [{ selector: 'ecabs-phone', providers: [
123
- UnsubscribeService,
124
124
  {
125
125
  provide: NG_VALUE_ACCESSOR,
126
126
  useExisting: EcabsPhoneComponent,
127
127
  multi: true,
128
128
  },
129
- ], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"phoneForm\">\r\n <ecabs-base-phone\r\n (focusout)=\"onBlur()\"\r\n [ngClass]=\"{ error: phoneForm.invalid && (phoneForm.dirty || phoneForm.touched) }\"\r\n #phoneInput\r\n [preferredCountries]=\"preferredCountries\"\r\n [enablePlaceholder]=\"enablePlaceholder\"\r\n [enableSearch]=\"enableSearch\"\r\n [disabled]=\"disabled\"\r\n [formControlName]=\"'phone'\"\r\n name=\"phone\"\r\n [inputPlaceholder]=\"placeholder\"\r\n >\r\n </ecabs-base-phone>\r\n </form>\r\n</ecabs-element-wrapper>\r\n" }]
130
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.EcabsComponentsService }, { type: i2.UnsubscribeService }]; }, propDecorators: { preferredCountries: [{
129
+ ], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <form #f=\"ngForm\" [formGroup]=\"phoneForm\">\r\n <ecabs-base-phone\r\n [ngClass]=\"{ error: phoneForm.invalid && (phoneForm.dirty || phoneForm.touched) }\"\r\n #phoneInput\r\n [preferredCountries]=\"preferredCountries\"\r\n [enablePlaceholder]=\"enablePlaceholder\"\r\n [enableSearch]=\"enableSearch\"\r\n [disabled]=\"disabled\"\r\n [formControlName]=\"'phone'\"\r\n [inputPlaceholder]=\"placeholder\"\r\n [debounceTimeMs]=\"debounceTimeMs\"\r\n name=\"phone\"\r\n (focusout)=\"onBlur()\"\r\n >\r\n </ecabs-base-phone>\r\n </form>\r\n</ecabs-element-wrapper>\r\n" }]
130
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.EcabsComponentsService }, { type: i0.DestroyRef }]; }, propDecorators: { preferredCountries: [{
131
131
  type: Input
132
132
  }], enablePlaceholder: [{
133
133
  type: Input
@@ -137,6 +137,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
137
137
  type: Input
138
138
  }], required: [{
139
139
  type: Input
140
+ }], debounceTimeMs: [{
141
+ type: Input
140
142
  }], onblur: [{
141
143
  type: Output
142
144
  }], phoneInput: [{
@@ -146,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
146
148
  type: HostListener,
147
149
  args: ['keypress', ['$event']]
148
150
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXBob25lL2VjYWJzLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1waG9uZS9lY2Ficy1waG9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLHlCQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBZWpDLE1BQU0sT0FBTyxtQkFDWCxTQUFRLHlCQUF5QjtJQTZCZDtJQUNBO0lBQ1Q7SUE1QkQsa0JBQWtCLENBQVk7SUFDOUIsaUJBQWlCLENBQVc7SUFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDckIsUUFBUSxDQUFVO0lBRXpCLE1BQU0sR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUd2RSxVQUFVLENBQTJCO0lBRXJDLFNBQVMsQ0FBbUI7SUFDNUIsUUFBUSxDQUFPO0lBQ2Ysb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU3QixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FB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VSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw2VEFUbkI7WUFDVCxrQkFBa0I7WUFDbEI7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLG1CQUFtQjtnQkFDaEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGdMQ3RDSCx1cEJBaUJBOzs0RkR1QmEsbUJBQW1CO2tCQVovQixTQUFTOytCQUNFLGFBQWEsYUFFWjt3QkFDVCxrQkFBa0I7d0JBQ2xCOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcscUJBQXFCOzRCQUNoQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtxS0FNUSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNXLFFBQVE7c0JBQXhCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUdQLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxZQUFZO2dCQXlCZSxPQUFPO3NCQUE1QyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgTmdDb250cm9sLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7IEVjYWJzQ29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFVuc3Vic2NyaWJlU2VydmljZSB9IGZyb20gJy4uL2Jhc2Uvc2VydmljZXMvdW5zdWJzY3JpYmUuc2VydmljZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudCB9IGZyb20gJy4uL2VjYWJzLWJhc2UtcGhvbmUtaW5wdXQvZWNhYnMtYmFzZS1waG9uZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlY2Ficy1waG9uZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXBob25lLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFVuc3Vic2NyaWJlU2VydmljZSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic1Bob25lQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzUGhvbmVDb21wb25lbnRcclxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT25DaGFuZ2VzXHJcbntcclxuICBASW5wdXQoKSBwcmVmZXJyZWRDb3VudHJpZXMhOiBzdHJpbmdbXTtcclxuICBASW5wdXQoKSBlbmFibGVQbGFjZWhvbGRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoID0gdHJ1ZTtcclxuICBASW5wdXQoKSB1c2VPbmx5RGlzYWJsZWRDbGFzcyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2xhcmUgcmVxdWlyZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbmJsdXI6IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBzdHJpbmcgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Bob25lSW5wdXQnKVxyXG4gIHBob25lSW5wdXQhOiBFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudDtcclxuXHJcbiAgcGhvbmVGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHBob25lU3ViITogYW55O1xyXG4gIHByb2hpYml0ZWRDaGFyYWN0ZXJzID0gWyctJ107XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMucGhvbmVGb3JtLmdldCgncGhvbmUnKT8udmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsKSB7XHJcbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdGhpcy52YWx1ZSAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMucGhvbmVGb3JtLnNldFZhbHVlKHsgcGhvbmU6IHZhbCB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVjYWJzQ29tcG9uZW50c1NlcnZpY2U6IEVjYWJzQ29tcG9uZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlU2VydmljZTogVW5zdWJzY3JpYmVTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSkgb25JbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJvaGliaXRlZENoYXJhY3RlcnMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgcGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LFxyXG4gICAgICAgIHRoaXMucmVxdWlyZWQgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSxcclxuICAgICAgKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZWNhYnNDb21wb25lbnRzU2VydmljZVxyXG4gICAgICAuZ2V0Q29uZmlnKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVTZXJ2aWNlLnN1YnNjcmlwdGlvbigpKSlcclxuICAgICAgLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnByZWZlcnJlZENvdW50cmllcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllcyA9IHZhbC5kZWZhdWx0Q291bnRyaWVzO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnBob25lU3ViID0gdGhpcy5waG9uZUZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoZm9ybVZhbCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZm9ybVZhbD8ucGhvbmU7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMub25Ub3VjaCh0aGlzLnZhbHVlKTtcclxuICAgICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcclxuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICB0aGlzLnBob25lRm9ybT8uZ2V0KCdwaG9uZScpPy5kaXNhYmxlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5waG9uZUZvcm0/LmdldCgncGhvbmUnKT8uZW5hYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoKTogdm9pZCA9PiB7fTtcclxuICBvblRvdWNoOiBhbnkgPSAoKTogdm9pZCA9PiB7fTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lSW5wdXQucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmhhbmRsZUVycm9ycygpO1xyXG4gICAgdGhpcy5vbmJsdXIuZW1pdCh7IHZhbHVlOiB0aGlzLnZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3JzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhdGhpcy5waG9uZUlucHV0LmVtcHR5KSB7XHJcbiAgICAgIHRoaXMucGhvbmVGb3JtLmNvbnRyb2xzWydwaG9uZSddLnNldEVycm9ycyh7IHZhbGlkYXRlUGhvbmVOdW1iZXI6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2w/LnNldEVycm9ycyh0aGlzLnBob25lRm9ybS5nZXQoJ3Bob25lJykuZXJyb3JzKTtcclxuICB9XHJcbn1cclxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8Zm9ybSAjZj1cIm5nRm9ybVwiIFtmb3JtR3JvdXBdPVwicGhvbmVGb3JtXCI+XHJcbiAgICAgIDxlY2Ficy1iYXNlLXBob25lXHJcbiAgICAgICAgKGZvY3Vzb3V0KT1cIm9uQmx1cigpXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7IGVycm9yOiBwaG9uZUZvcm0uaW52YWxpZCAmJiAocGhvbmVGb3JtLmRpcnR5IHx8IHBob25lRm9ybS50b3VjaGVkKSB9XCJcclxuICAgICAgICAjcGhvbmVJbnB1dFxyXG4gICAgICAgIFtwcmVmZXJyZWRDb3VudHJpZXNdPVwicHJlZmVycmVkQ291bnRyaWVzXCJcclxuICAgICAgICBbZW5hYmxlUGxhY2Vob2xkZXJdPVwiZW5hYmxlUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtlbmFibGVTZWFyY2hdPVwiZW5hYmxlU2VhcmNoXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3Bob25lJ1wiXHJcbiAgICAgICAgbmFtZT1cInBob25lXCJcclxuICAgICAgICBbaW5wdXRQbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgID5cclxuICAgICAgPC9lY2Ficy1iYXNlLXBob25lPlxyXG4gIDwvZm9ybT5cclxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XHJcbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXBob25lL2VjYWJzLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1waG9uZS9lY2Ficy1waG9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLHlCQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBRzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBYWhFLE1BQU0sT0FBTyxtQkFDWCxTQUFRLHlCQUF5QjtJQThCZDtJQUNBO0lBQ0E7SUE3QlYsa0JBQWtCLENBQVk7SUFDOUIsaUJBQWlCLENBQVc7SUFDNUIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDckIsUUFBUSxDQUFVO0lBQzFCLGNBQWMsQ0FBQztJQUVkLE1BQU0sR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUd2RSxVQUFVLENBQTJCO0lBRXJDLFNBQVMsQ0FBbUI7SUFDNUIsUUFBUSxDQUFPO0lBQ2Ysb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU3QixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8s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Q0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7d0dBN0hVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLCtWQVJuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxtQkFBbUI7Z0JBQ2hDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixnTENyQ0gsc3NCQWtCQTs7NEZEcUJhLG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDRSxhQUFhLGFBRVo7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxxQkFBcUI7NEJBQ2hDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzZKQU1RLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFHUCxVQUFVO3NCQURULFNBQVM7dUJBQUMsWUFBWTtnQkF5QmUsT0FBTztzQkFBNUMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgTmdDb250cm9sLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XHJcbmltcG9ydCB7IEVjYWJzQ29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuLi9iYXNlL3NlcnZpY2VzL2VjYWJzLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEVjYWJzQmFzZVBob25lQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtcGhvbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1waG9uZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogRWNhYnNQaG9uZUNvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1Bob25lQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIE9uQ2hhbmdlc1xyXG57XHJcbiAgQElucHV0KCkgcHJlZmVycmVkQ291bnRyaWVzITogc3RyaW5nW107XHJcbiAgQElucHV0KCkgZW5hYmxlUGxhY2Vob2xkZXIhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IHRydWU7XHJcbiAgQElucHV0KCkgdXNlT25seURpc2FibGVkQ2xhc3MgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZWNsYXJlIHJlcXVpcmVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZU1zO1xyXG5cclxuICBAT3V0cHV0KCkgb25ibHVyOiBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogc3RyaW5nIH0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdwaG9uZUlucHV0JylcclxuICBwaG9uZUlucHV0ITogRWNhYnNCYXNlUGhvbmVDb21wb25lbnQ7XHJcblxyXG4gIHBob25lRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwaG9uZVN1YiE6IGFueTtcclxuICBwcm9oaWJpdGVkQ2hhcmFjdGVycyA9IFsnLSddO1xyXG5cclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnBob25lRm9ybS5nZXQoJ3Bob25lJyk/LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbCkge1xyXG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHRoaXMudmFsdWUgIT09IHZhbCkge1xyXG4gICAgICB0aGlzLnBob25lRm9ybS5zZXRWYWx1ZSh7IHBob25lOiB2YWwgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlY2Fic0NvbXBvbmVudHNTZXJ2aWNlOiBFY2Fic0NvbXBvbmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXByZXNzJywgWyckZXZlbnQnXSkgb25JbnB1dChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJvaGliaXRlZENoYXJhY3RlcnMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgICAgcGhvbmU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXHJcbiAgICAgICAgeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LFxyXG4gICAgICAgIHRoaXMucmVxdWlyZWQgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSxcclxuICAgICAgKSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZWNhYnNDb21wb25lbnRzU2VydmljZVxyXG4gICAgICAuZ2V0Q29uZmlnKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5wcmVmZXJyZWRDb3VudHJpZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXMgPSB2YWwuZGVmYXVsdENvdW50cmllcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kZWJvdW5jZVRpbWVNcykge1xyXG4gICAgICAgICAgdGhpcy5kZWJvdW5jZVRpbWVNcyA9IHZhbC5kZWZhdWx0UGhvbmVEZWJvdW5jZVRpbWVNcztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG4gICAgaWYgKG5nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5waG9uZVN1YiA9IHRoaXMucGhvbmVGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGZvcm1WYWwpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGZvcm1WYWw/LnBob25lO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLm9uVG91Y2godGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XHJcbiAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5waG9uZUZvcm0/LmdldCgncGhvbmUnKT8uZGlzYWJsZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGhvbmVGb3JtPy5nZXQoJ3Bob25lJyk/LmVuYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCk6IHZvaWQgPT4ge307XHJcbiAgb25Ub3VjaDogYW55ID0gKCk6IHZvaWQgPT4ge307XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5waG9uZVN1Yj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5waG9uZUlucHV0LnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2godGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcclxuICAgIHRoaXMub25ibHVyLmVtaXQoeyB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9ycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgJiYgIXRoaXMucGhvbmVJbnB1dC5lbXB0eSkge1xyXG4gICAgICB0aGlzLnBob25lRm9ybS5jb250cm9sc1sncGhvbmUnXS5zZXRFcnJvcnMoeyB2YWxpZGF0ZVBob25lTnVtYmVyOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250cm9sPy5zZXRFcnJvcnModGhpcy5waG9uZUZvcm0uZ2V0KCdwaG9uZScpLmVycm9ycyk7XHJcbiAgfVxyXG59XHJcbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XHJcbiAgPGZvcm0gI2Y9XCJuZ0Zvcm1cIiBbZm9ybUdyb3VwXT1cInBob25lRm9ybVwiPlxyXG4gICAgICA8ZWNhYnMtYmFzZS1waG9uZVxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZXJyb3I6IHBob25lRm9ybS5pbnZhbGlkICYmIChwaG9uZUZvcm0uZGlydHkgfHwgcGhvbmVGb3JtLnRvdWNoZWQpIH1cIlxyXG4gICAgICAgICNwaG9uZUlucHV0XHJcbiAgICAgICAgW3ByZWZlcnJlZENvdW50cmllc109XCJwcmVmZXJyZWRDb3VudHJpZXNcIlxyXG4gICAgICAgIFtlbmFibGVQbGFjZWhvbGRlcl09XCJlbmFibGVQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2VuYWJsZVNlYXJjaF09XCJlbmFibGVTZWFyY2hcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCIncGhvbmUnXCJcclxuICAgICAgICBbaW5wdXRQbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2RlYm91bmNlVGltZU1zXT1cImRlYm91bmNlVGltZU1zXCJcclxuICAgICAgICBuYW1lPVwicGhvbmVcIlxyXG4gICAgICAgIChmb2N1c291dCk9XCJvbkJsdXIoKVwiXHJcbiAgICAgID5cclxuICAgICAgPC9lY2Ficy1iYXNlLXBob25lPlxyXG4gIDwvZm9ybT5cclxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XHJcbiJdfQ==