@skyux/phone-field 10.41.2 → 10.41.3
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/documentation.json +122 -122
- package/esm2022/lib/modules/phone-field/phone-field-input.directive.mjs +10 -4
- package/esm2022/lib/modules/phone-field/phone-field.component.mjs +2 -2
- package/fesm2022/skyux-phone-field.mjs +10 -4
- package/fesm2022/skyux-phone-field.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Directive, ElementRef, HostListener, Input, booleanAttribute, inject, } from '@angular/core';
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
3
|
import { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';
|
|
4
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import { Subject, take, takeUntil } from 'rxjs';
|
|
5
5
|
import { SkyPhoneFieldAdapterService } from './phone-field-adapter.service';
|
|
6
6
|
import { SkyPhoneFieldComponent } from './phone-field.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
@@ -80,8 +80,14 @@ export class SkyPhoneFieldInputDirective {
|
|
|
80
80
|
.subscribe(() => {
|
|
81
81
|
const value = this.#adapterSvc?.getInputValue(this.#elRef);
|
|
82
82
|
this.#setValue(value);
|
|
83
|
-
this.#
|
|
84
|
-
|
|
83
|
+
this.#control?.updateValueAndValidity();
|
|
84
|
+
});
|
|
85
|
+
this.#phoneFieldComponent.countrySearchForm
|
|
86
|
+
.get('countrySearch')
|
|
87
|
+
?.valueChanges.pipe(takeUntil(this.#ngUnsubscribe), take(1))
|
|
88
|
+
.subscribe(() => {
|
|
89
|
+
this.#control?.markAsDirty();
|
|
90
|
+
this.#control?.markAsTouched();
|
|
85
91
|
});
|
|
86
92
|
}
|
|
87
93
|
ngOnDestroy() {
|
|
@@ -252,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
252
258
|
type: HostListener,
|
|
253
259
|
args: ['input']
|
|
254
260
|
}] } });
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVqRTs7Ozs7Ozs7Ozs7O0dBWUc7QUFnQkgsTUFBTSxPQUFPLDJCQUEyQjtJQWZ4QztRQXFDRTs7Ozs7O1dBTUc7UUFFSSw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFdkMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3JDLGdCQUFXLEdBQUcsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5DLGdCQUFXLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFO1lBQ3pELElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FB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QkFEakIsWUFBWTt1QkFBQyxRQUFRO2dCQVFaLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBob25lTnVtYmVyRm9ybWF0LCBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJ1dHRvbiwgc2VhcmNoIGlucHV0LCBhbmQgdGV4dCBpbnB1dCBmb3IgZW50ZXJpbmcgYW5kIHZhbGlkYXRpbmdcbiAqIGludGVybmF0aW9uYWwgcGhvbmUgbnVtYmVycy4gUGxhY2UgdGhpcyBhdHRyaWJ1dGUgb24gYW4gYGlucHV0YCBlbGVtZW50LCBhbmQgd3JhcFxuICogdGhhdCBlbGVtZW50IGluIGEgYHNreS1waG9uZS1maWVsZGAgY29tcG9uZW50LiBCeSBkZWZhdWx0LCB0aGUgY291bnRyeSBzZWxlY3RvclxuICogYnV0dG9uIGRpc3BsYXlzIGEgZmxhZyBpY29uIGZvciB0aGUgZGVmYXVsdCBjb3VudHJ5LCBhbmQgdGhlIHBob25lIG51bWJlciBpbnB1dFxuICogZGlzcGxheXMgYSBzYW1wbGUgb2YgdGhlIGNvcnJlY3QgcGhvbmUgbnVtYmVyIGZvcm1hdC4gV2hlbiB1c2VycyBzZWxlY3QgdGhlIGNvdW50cnlcbiAqIHNlbGVjdG9yIGJ1dHRvbiwgdGhleSBleHBvc2UgdGhlIGNvdW50cnkgc2VhcmNoIGlucHV0LCB3aGljaCBpc1xuICogW2FuIGF1dG9jb21wbGV0ZSBpbnB1dF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2F1dG9jb21wbGV0ZSlcbiAqIHRoYXQgYWxsb3dzIHRoZW0gdG8gc2VsZWN0IGRpZmZlcmVudCBjb3VudHJpZXMuIFdoZW4gdXNlcnMgZW50ZXIgYCtgIGZvbGxvd2VkIGJ5IGFuXG4gKiBpbnRlcm5hdGlvbmFsIGRpYWwgY29kZSBpbiB0aGUgcGhvbmUgbnVtYmVyIGlucHV0LCB0aGUgY291bnRyeSBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzXG4gKiB0byB0aGUgY291bnRyeSBhc3NvY2lhdGVkIHdpdGggdGhlIGRpYWwgY29kZS5cbiAqIEByZXF1aXJlZFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5UGhvbmVGaWVsZElucHV0XScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkSW5wdXREaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBwaG9uZSBmaWVsZCBvbiB0ZW1wbGF0ZS1kcml2ZW4gZm9ybXMuIERvbid0IHVzZSB0aGlzIGlucHV0IG9uIHJlYWN0aXZlIGZvcm1zIGJlY2F1c2UgdGhleSBtYXkgb3ZlcndyaXRlIHRoZSBpbnB1dCBvciBsZWF2ZSB0aGUgY29udHJvbCBvdXQgb2Ygc3luYy5cbiAgICogVG8gc2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvbiByZWFjdGl2ZSBmb3JtcywgdXNlIHRoZSBgRm9ybUNvbnRyb2xgIGluc3RlYWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50LmNvdW50cnlTZWxlY3REaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgdGhpcy4jYWRhcHRlclN2Yz8uc2V0RWxlbWVudERpc2FibGVkU3RhdGUodGhpcy4jZWxSZWYsIHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLiNfZGlzYWJsZWQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHByZXZlbnQgdmFsaWRhdGlvbiBvbiB0aGUgcGhvbmUgbnVtYmVyIGlucHV0LiBGb3IgdmFsaWRhdGlvbixcbiAgICogcGhvbmUgbnVtYmVycyBhcmUgZHJpdmVuIHRocm91Z2ggdGhlIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiBhblxuICAgKiBgaW5wdXRgIGVsZW1lbnQgb3Igb24gYSBgRm9ybUNvbnRyb2xgIGluIGEgcmVhY3RpdmUgZm9ybS4gVG8gcHJldmVudCB2YWxpZGF0aW9uLFxuICAgKiBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNreVBob25lRmllbGROb1ZhbGlkYXRlID0gZmFsc2U7XG5cbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuICAjX3ZhbHVlID0gJyc7XG4gICNjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI25vdGlmeUNoYW5nZTogKCh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgI25vdGlmeVRvdWNoZWQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgI3Bob25lVXRpbHMgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcblxuICByZWFkb25seSAjYWRhcHRlclN2YyA9IGluamVjdChTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsIHtcbiAgICBob3N0OiB0cnVlLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIHNraXBTZWxmOiB0cnVlLFxuICB9KTtcblxuICByZWFkb25seSAjZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5ICNwaG9uZUZpZWxkQ29tcG9uZW50ID0gaW5qZWN0KFNreVBob25lRmllbGRDb21wb25lbnQsIHtcbiAgICBob3N0OiB0cnVlLFxuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdZb3UgbXVzdCB3cmFwIHRoZSBgc2t5UGhvbmVGaWVsZElucHV0YCBkaXJlY3RpdmUgd2l0aGluIGEgJyArXG4gICAgICAgICAgJ2A8c2t5LXBob25lLWZpZWxkPmAgY29tcG9uZW50IScsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI2FkYXB0ZXJTdmM/LnNldEVsZW1lbnRUeXBlKHRoaXMuI2VsUmVmKTtcbiAgICB0aGlzLiNhZGFwdGVyU3ZjPy5hZGRFbGVtZW50Q2xhc3ModGhpcy4jZWxSZWYsICdza3ktZm9ybS1jb250cm9sJyk7XG5cbiAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnlDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuI2FkYXB0ZXJTdmM/LmdldElucHV0VmFsdWUodGhpcy4jZWxSZWYpO1xuICAgICAgICB0aGlzLiNzZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMuI25vdGlmeUNoYW5nZT8uKHRoaXMuI2dldFZhbHVlKCkpO1xuICAgICAgICB0aGlzLiNub3RpZnlUb3VjaGVkPy4oKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuI25vdGlmeUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICB0aGlzLiNjb250cm9sID8/PSBjb250cm9sO1xuXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCB0aGlzLnNreVBob25lRmllbGROb1ZhbGlkYXRlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuI2lzVmFsaWRQaG9uZU51bWJlcih2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNreVBob25lRmllbGQ6IHtcbiAgICAgICAgICBpbnZhbGlkOiB2YWx1ZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogJyc7XG5cbiAgICB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZXRDb3VudHJ5QnlEaWFsQ29kZShyYXdWYWx1ZSk7XG4gICAgdGhpcy4jYWRhcHRlclN2Yz8uc2V0RWxlbWVudFZhbHVlKHRoaXMuI2VsUmVmLCByYXdWYWx1ZSk7XG5cbiAgICB0aGlzLiNzZXRWYWx1ZShyYXdWYWx1ZSk7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLiNnZXRWYWx1ZSgpO1xuXG4gICAgaWYgKHJhd1ZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIHNldCBiZWZvcmUgdGhlIGNvbnRyb2wgaXMgaW5pdGlhbGl6ZWQsIHdhaXQgZm9yIHRoZVxuICAgICAgLy8gZmlyc3QgY3ljbGUgdG8gY29tcGxldGUgYmVmb3JlIHRyaWdnZXJpbmcgYSB2YWx1ZSBjaGFuZ2UgZXZlbnQuXG4gICAgICAvLyAoVGhpcyBvY2N1cnMgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZCB3aXRoIGFuIHVuZm9ybWF0dGVkIHZhbHVlXG4gICAgICAvLyBidXQgaXMgZm9ybWF0dGVkIGludG8gYSBuZXcgdmFsdWUgaW1tZWRpYXRlbHkgaW4gdGhlIGB3cml0ZVZhbHVlYFxuICAgICAgLy8gbWV0aG9kLilcbiAgICAgIGlmICghdGhpcy4jY29udHJvbCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLiNub3RpZnlDaGFuZ2U/LihuZXdWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jbm90aWZ5Q2hhbmdlPy4obmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge1xuICAgIHRoaXMuI25vdGlmeVRvdWNoZWQ/LigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJylcbiAgcHJvdGVjdGVkIG9uQ2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy4jYWRhcHRlclN2Yz8uZ2V0SW5wdXRWYWx1ZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jc2V0VmFsdWUodmFsdWUpO1xuICAgIHRoaXMuI25vdGlmeUNoYW5nZT8uKHRoaXMuI2dldFZhbHVlKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnKVxuICBwcm90ZWN0ZWQgb25JbnB1dCgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuI2FkYXB0ZXJTdmM/LmdldElucHV0VmFsdWUodGhpcy4jZWxSZWYpO1xuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNldENvdW50cnlCeURpYWxDb2RlKHZhbHVlKTtcbiAgfVxuXG4gICNmb3JtYXRQaG9uZU51bWJlcih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdENvdW50cnkgPSB0aGlzLiNnZXREZWZhdWx0Q291bnRyeSgpO1xuICAgIGNvbnN0IHJlZ2lvbkNvZGUgPSB0aGlzLiNnZXRSZWdpb25Db2RlKCk7XG4gICAgY29uc3QgcmV0dXJuRm9ybWF0ID0gdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8ucmV0dXJuRm9ybWF0O1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBob25lTnVtYmVyID0gdGhpcy4jcGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHJlZ2lvbkNvZGUgPz8gZGVmYXVsdENvdW50cnksXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy4jcGhvbmVVdGlscy5pc1Bvc3NpYmxlTnVtYmVyKHBob25lTnVtYmVyKSkge1xuICAgICAgICBzd2l0Y2ggKHJldHVybkZvcm1hdCkge1xuICAgICAgICAgIGNhc2UgJ2ludGVybmF0aW9uYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICBjYXNlICduYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHJlZ2lvbkNvZGUgJiYgcmVnaW9uQ29kZSAhPT0gZGVmYXVsdENvdW50cnlcbiAgICAgICAgICAgICAgPyB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgICBwaG9uZU51bWJlcixcbiAgICAgICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8qICovXG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgI2dldERlZmF1bHRDb3VudHJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LmRlZmF1bHRDb3VudHJ5O1xuICB9XG5cbiAgI2dldFJlZ2lvbkNvZGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Py5pc28yO1xuICB9XG5cbiAgI2dldFZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI192YWx1ZTtcbiAgfVxuXG4gICNpc1ZhbGlkUGhvbmVOdW1iZXIodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlZmF1bHRDb3VudHJ5ID0gdGhpcy4jZ2V0RGVmYXVsdENvdW50cnkoKTtcbiAgICBjb25zdCByZWdpb25Db2RlID0gdGhpcy4jZ2V0UmVnaW9uQ29kZSgpID8/IGRlZmF1bHRDb3VudHJ5O1xuICAgIGNvbnN0IGFsbG93RXh0ZW5zaW9ucyA9ICEhdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uYWxsb3dFeHRlbnNpb25zO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBob25lTnVtYmVyID0gdGhpcy4jcGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIHJlZ2lvbkNvZGUsXG4gICAgICApO1xuXG4gICAgICBpZiAoIWFsbG93RXh0ZW5zaW9ucyAmJiBwaG9uZU51bWJlci5nZXRFeHRlbnNpb24oKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmlzVmFsaWROdW1iZXJGb3JSZWdpb24ocGhvbmVOdW1iZXIsIHJlZ2lvbkNvZGUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjc2V0VmFsdWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IHRoaXMuI2Zvcm1hdFBob25lTnVtYmVyKHZhbHVlKTtcbiAgICAgIHRoaXMuI192YWx1ZSA9IGZvcm1hdHRlZCA/PyB2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFakU7Ozs7Ozs7Ozs7OztHQVlHO0FBZ0JILE1BQU0sT0FBTywyQkFBMkI7SUFmeEM7UUFxQ0U7Ozs7OztXQU1HO1FBRUksNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRXZDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUViLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUdyQyxnQkFBVyxHQUFHLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRTtZQUN6RCxJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FD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LEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDZCQUE2Qjs0QkFDeEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7OEJBVVksUUFBUTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFzQi9CLHVCQUF1QjtzQkFEN0IsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFrSDVCLE1BQU07c0JBRGYsWUFBWTt1QkFBQyxNQUFNO2dCQU1WLFFBQVE7c0JBRGpCLFlBQVk7dUJBQUMsUUFBUTtnQkFRWixPQUFPO3NCQURoQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQaG9uZU51bWJlckZvcm1hdCwgUGhvbmVOdW1iZXJVdGlsIH0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3Bob25lLWZpZWxkLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9waG9uZS1maWVsZC5jb21wb25lbnQnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBidXR0b24sIHNlYXJjaCBpbnB1dCwgYW5kIHRleHQgaW5wdXQgZm9yIGVudGVyaW5nIGFuZCB2YWxpZGF0aW5nXG4gKiBpbnRlcm5hdGlvbmFsIHBob25lIG51bWJlcnMuIFBsYWNlIHRoaXMgYXR0cmlidXRlIG9uIGFuIGBpbnB1dGAgZWxlbWVudCwgYW5kIHdyYXBcbiAqIHRoYXQgZWxlbWVudCBpbiBhIGBza3ktcGhvbmUtZmllbGRgIGNvbXBvbmVudC4gQnkgZGVmYXVsdCwgdGhlIGNvdW50cnkgc2VsZWN0b3JcbiAqIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWcgaWNvbiBmb3IgdGhlIGRlZmF1bHQgY291bnRyeSwgYW5kIHRoZSBwaG9uZSBudW1iZXIgaW5wdXRcbiAqIGRpc3BsYXlzIGEgc2FtcGxlIG9mIHRoZSBjb3JyZWN0IHBob25lIG51bWJlciBmb3JtYXQuIFdoZW4gdXNlcnMgc2VsZWN0IHRoZSBjb3VudHJ5XG4gKiBzZWxlY3RvciBidXR0b24sIHRoZXkgZXhwb3NlIHRoZSBjb3VudHJ5IHNlYXJjaCBpbnB1dCwgd2hpY2ggaXNcbiAqIFthbiBhdXRvY29tcGxldGUgaW5wdXRdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9hdXRvY29tcGxldGUpXG4gKiB0aGF0IGFsbG93cyB0aGVtIHRvIHNlbGVjdCBkaWZmZXJlbnQgY291bnRyaWVzLiBXaGVuIHVzZXJzIGVudGVyIGArYCBmb2xsb3dlZCBieSBhblxuICogaW50ZXJuYXRpb25hbCBkaWFsIGNvZGUgaW4gdGhlIHBob25lIG51bWJlciBpbnB1dCwgdGhlIGNvdW50cnkgYXV0b21hdGljYWxseSBzd2l0Y2hlc1xuICogdG8gdGhlIGNvdW50cnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaWFsIGNvZGUuXG4gKiBAcmVxdWlyZWRcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVBob25lRmllbGRJbnB1dF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNreVBob25lRmllbGRJbnB1dERpcmVjdGl2ZSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZElucHV0RGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3JcbntcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgcGhvbmUgZmllbGQgb24gdGVtcGxhdGUtZHJpdmVuIGZvcm1zLiBEb24ndCB1c2UgdGhpcyBpbnB1dCBvbiByZWFjdGl2ZSBmb3JtcyBiZWNhdXNlIHRoZXkgbWF5IG92ZXJ3cml0ZSB0aGUgaW5wdXQgb3IgbGVhdmUgdGhlIGNvbnRyb2wgb3V0IG9mIHN5bmMuXG4gICAqIFRvIHNldCB0aGUgZGlzYWJsZWQgc3RhdGUgb24gcmVhY3RpdmUgZm9ybXMsIHVzZSB0aGUgYEZvcm1Db250cm9sYCBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCkge1xuICAgICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudC5jb3VudHJ5U2VsZWN0RGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTdmM/LnNldEVsZW1lbnREaXNhYmxlZFN0YXRlKHRoaXMuI2VsUmVmLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0byBwcmV2ZW50IHZhbGlkYXRpb24gb24gdGhlIHBob25lIG51bWJlciBpbnB1dC4gRm9yIHZhbGlkYXRpb24sXG4gICAqIHBob25lIG51bWJlcnMgYXJlIGRyaXZlbiB0aHJvdWdoIHRoZSBgbmdNb2RlbGAgYXR0cmlidXRlIHRoYXQgeW91IHNwZWNpZnkgb24gYW5cbiAgICogYGlucHV0YCBlbGVtZW50IG9yIG9uIGEgYEZvcm1Db250cm9sYCBpbiBhIHJlYWN0aXZlIGZvcm0uIFRvIHByZXZlbnQgdmFsaWRhdGlvbixcbiAgICogc2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBza3lQaG9uZUZpZWxkTm9WYWxpZGF0ZSA9IGZhbHNlO1xuXG4gICNfZGlzYWJsZWQgPSBmYWxzZTtcbiAgI192YWx1ZSA9ICcnO1xuICAjY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNub3RpZnlDaGFuZ2U6ICgodmFsdWU6IHN0cmluZykgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gICNub3RpZnlUb3VjaGVkOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XG4gICNwaG9uZVV0aWxzID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG5cbiAgcmVhZG9ubHkgI2FkYXB0ZXJTdmMgPSBpbmplY3QoU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlLCB7XG4gICAgaG9zdDogdHJ1ZSxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBza2lwU2VsZjogdHJ1ZSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgI2VsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjcGhvbmVGaWVsZENvbXBvbmVudCA9IGluamVjdChTa3lQaG9uZUZpZWxkQ29tcG9uZW50LCB7XG4gICAgaG9zdDogdHJ1ZSxcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgfSk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnWW91IG11c3Qgd3JhcCB0aGUgYHNreVBob25lRmllbGRJbnB1dGAgZGlyZWN0aXZlIHdpdGhpbiBhICcgK1xuICAgICAgICAgICdgPHNreS1waG9uZS1maWVsZD5gIGNvbXBvbmVudCEnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNhZGFwdGVyU3ZjPy5zZXRFbGVtZW50VHlwZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jYWRhcHRlclN2Yz8uYWRkRWxlbWVudENsYXNzKHRoaXMuI2VsUmVmLCAnc2t5LWZvcm0tY29udHJvbCcpO1xuXG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLiNhZGFwdGVyU3ZjPy5nZXRJbnB1dFZhbHVlKHRoaXMuI2VsUmVmKTtcbiAgICAgICAgdGhpcy4jc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLiNjb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQuY291bnRyeVNlYXJjaEZvcm1cbiAgICAgIC5nZXQoJ2NvdW50cnlTZWFyY2gnKVxuICAgICAgPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksIHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jY29udHJvbD8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy4jY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy4jbm90aWZ5Q2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLiNub3RpZnlUb3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHRoaXMuI2NvbnRyb2wgPz89IGNvbnRyb2w7XG5cbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG5cbiAgICBpZiAoIXZhbHVlIHx8IHRoaXMuc2t5UGhvbmVGaWVsZE5vVmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghdGhpcy4jaXNWYWxpZFBob25lTnVtYmVyKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2t5UGhvbmVGaWVsZDoge1xuICAgICAgICAgIGludmFsaWQ6IHZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgcmF3VmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUgOiAnJztcblxuICAgIHRoaXMuI3Bob25lRmllbGRDb21wb25lbnQ/LnNldENvdW50cnlCeURpYWxDb2RlKHJhd1ZhbHVlKTtcbiAgICB0aGlzLiNhZGFwdGVyU3ZjPy5zZXRFbGVtZW50VmFsdWUodGhpcy4jZWxSZWYsIHJhd1ZhbHVlKTtcblxuICAgIHRoaXMuI3NldFZhbHVlKHJhd1ZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuI2dldFZhbHVlKCk7XG5cbiAgICBpZiAocmF3VmFsdWUgIT09IG5ld1ZhbHVlKSB7XG4gICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgc2V0IGJlZm9yZSB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZCwgd2FpdCBmb3IgdGhlXG4gICAgICAvLyBmaXJzdCBjeWNsZSB0byBjb21wbGV0ZSBiZWZvcmUgdHJpZ2dlcmluZyBhIHZhbHVlIGNoYW5nZSBldmVudC5cbiAgICAgIC8vIChUaGlzIG9jY3VycyB3aGVuIHRoZSBjb250cm9sIGlzIGluaXRpYWxpemVkIHdpdGggYW4gdW5mb3JtYXR0ZWQgdmFsdWVcbiAgICAgIC8vIGJ1dCBpcyBmb3JtYXR0ZWQgaW50byBhIG5ldyB2YWx1ZSBpbW1lZGlhdGVseSBpbiB0aGUgYHdyaXRlVmFsdWVgXG4gICAgICAvLyBtZXRob2QuKVxuICAgICAgaWYgKCF0aGlzLiNjb250cm9sKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuI25vdGlmeUNoYW5nZT8uKG5ld1ZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNub3RpZnlDaGFuZ2U/LihuZXdWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHByb3RlY3RlZCBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy4jbm90aWZ5VG91Y2hlZD8uKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnKVxuICBwcm90ZWN0ZWQgb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLiNhZGFwdGVyU3ZjPy5nZXRJbnB1dFZhbHVlKHRoaXMuI2VsUmVmKTtcbiAgICB0aGlzLiNzZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy4jbm90aWZ5Q2hhbmdlPy4odGhpcy4jZ2V0VmFsdWUoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcpXG4gIHByb3RlY3RlZCBvbklucHV0KCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy4jYWRhcHRlclN2Yz8uZ2V0SW5wdXRWYWx1ZSh0aGlzLiNlbFJlZik7XG4gICAgdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uc2V0Q291bnRyeUJ5RGlhbENvZGUodmFsdWUpO1xuICB9XG5cbiAgI2Zvcm1hdFBob25lTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0Q291bnRyeSA9IHRoaXMuI2dldERlZmF1bHRDb3VudHJ5KCk7XG4gICAgY29uc3QgcmVnaW9uQ29kZSA9IHRoaXMuI2dldFJlZ2lvbkNvZGUoKTtcbiAgICBjb25zdCByZXR1cm5Gb3JtYXQgPSB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5yZXR1cm5Gb3JtYXQ7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGhvbmVOdW1iZXIgPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgcmVnaW9uQ29kZSA/PyBkZWZhdWx0Q291bnRyeSxcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLiNwaG9uZVV0aWxzLmlzUG9zc2libGVOdW1iZXIocGhvbmVOdW1iZXIpKSB7XG4gICAgICAgIHN3aXRjaCAocmV0dXJuRm9ybWF0KSB7XG4gICAgICAgICAgY2FzZSAnaW50ZXJuYXRpb25hbCc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGNhc2UgJ25hdGlvbmFsJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIGNhc2UgJ2RlZmF1bHQnOlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gcmVnaW9uQ29kZSAmJiByZWdpb25Db2RlICE9PSBkZWZhdWx0Q291bnRyeVxuICAgICAgICAgICAgICA/IHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgcGhvbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5JTlRFUk5BVElPTkFMLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiB0aGlzLiNwaG9uZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgUGhvbmVOdW1iZXJGb3JtYXQuTkFUSU9OQUwsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLyogKi9cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAjZ2V0RGVmYXVsdENvdW50cnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jcGhvbmVGaWVsZENvbXBvbmVudD8uZGVmYXVsdENvdW50cnk7XG4gIH1cblxuICAjZ2V0UmVnaW9uQ29kZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5zZWxlY3RlZENvdW50cnk/LmlzbzI7XG4gIH1cblxuICAjZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX3ZhbHVlO1xuICB9XG5cbiAgI2lzVmFsaWRQaG9uZU51bWJlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVmYXVsdENvdW50cnkgPSB0aGlzLiNnZXREZWZhdWx0Q291bnRyeSgpO1xuICAgIGNvbnN0IHJlZ2lvbkNvZGUgPSB0aGlzLiNnZXRSZWdpb25Db2RlKCkgPz8gZGVmYXVsdENvdW50cnk7XG4gICAgY29uc3QgYWxsb3dFeHRlbnNpb25zID0gISF0aGlzLiNwaG9uZUZpZWxkQ29tcG9uZW50Py5hbGxvd0V4dGVuc2lvbnM7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGhvbmVOdW1iZXIgPSB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgcmVnaW9uQ29kZSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghYWxsb3dFeHRlbnNpb25zICYmIHBob25lTnVtYmVyLmdldEV4dGVuc2lvbigpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuI3Bob25lVXRpbHMuaXNWYWxpZE51bWJlckZvclJlZ2lvbihwaG9uZU51bWJlciwgcmVnaW9uQ29kZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gICNzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy4jZm9ybWF0UGhvbmVOdW1iZXIodmFsdWUpO1xuICAgICAgdGhpcy4jX3ZhbHVlID0gZm9ybWF0dGVkID8/IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -76,6 +76,7 @@ export class SkyPhoneFieldComponent {
|
|
|
76
76
|
this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(numberObj, PhoneNumberFormat.NATIONAL);
|
|
77
77
|
}
|
|
78
78
|
this.#populateInputBoxHelpText();
|
|
79
|
+
this.selectedCountryChange.emit(this.#_selectedCountry);
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
get selectedCountry() {
|
|
@@ -165,7 +166,6 @@ export class SkyPhoneFieldComponent {
|
|
|
165
166
|
this.#countrySearchFormControl.valueChanges.subscribe((newValue) => {
|
|
166
167
|
if (newValue?.iso2 !== this.selectedCountry?.iso2) {
|
|
167
168
|
this.selectedCountry = newValue || undefined;
|
|
168
|
-
this.selectedCountryChange.emit(this.selectedCountry);
|
|
169
169
|
}
|
|
170
170
|
});
|
|
171
171
|
}
|
|
@@ -448,4 +448,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
|
|
|
448
448
|
static: true,
|
|
449
449
|
}]
|
|
450
450
|
}] } });
|
|
451
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxF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QUFFO3dCQUNwQyxJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbmltYXRpb25FdmVudCxcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTa2lwU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNreUFwcEZvcm1hdCB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7XG4gIFNLWV9DT1VOVFJZX0ZJRUxEX0NPTlRFWFQsXG4gIFNreUNvdW50cnlGaWVsZENvdW50cnksXG59IGZyb20gJ0Bza3l1eC9sb29rdXAnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHtcbiAgUGhvbmVOdW1iZXJGb3JtYXQsXG4gIFBob25lTnVtYmVyVHlwZSxcbiAgUGhvbmVOdW1iZXJVdGlsLFxufSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuaW1wb3J0ICdpbnRsLXRlbC1pbnB1dCc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9waG9uZS1maWVsZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZENvdW50cnkgfSBmcm9tICcuL3R5cGVzL2NvdW50cnknO1xuaW1wb3J0IHsgU2t5UGhvbmVGaWVsZE51bWJlclJldHVybkZvcm1hdCB9IGZyb20gJy4vdHlwZXMvbnVtYmVyLXJldHVybi1mb3JtYXQnO1xuXG5jb25zdCBERUZBVUxUX0NPVU5UUllfQ09ERSA9ICd1cyc7XG5cbi8vIE5PVEU6IFRoZSBuby1vcCBhbmltYXRpb24gaXMgaGVyZSBpbiBvcmRlciB0byBibG9jayB0aGUgaW5wdXQncyBcImZhZGUgaW5cIiBhbmltYXRpb25cbi8vIGZyb20gZmlyaW5nIG9uIGluaXRpYWwgbG9hZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyB0ZWNobmlxdWUgeW91IGNhbiBzZWVcbi8vIGh0dHBzOi8vd3d3LmJlbm5hZGVsLmNvbS9ibG9nLzM0MTctdXNpbmctbm8tb3AtdHJhbnNpdGlvbnMtdG8tcHJldmVudC1hbmltYXRpb24tZHVyaW5nLXRoZS1pbml0aWFsLXJlbmRlci1vZi1uZ2Zvci1pbi1hbmd1bGFyLTUtMi02Lmh0bVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXBob25lLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICAvLyBQcmV2ZW50cyB0aGUgZW1iZWRkZWQgY291bnRyeSBmaWVsZCBjb21wb25lbnQgZnJvbSBjaGFuZ2luZyBpdHMgYmVoYXZpb3IgYmFzZWQgb25cbiAgICAvLyBiZWluZyBpbnNpZGUgYW4gaW5wdXQgYm94LiBUaGUgcGhvbmUgZmllbGQgaXRzZWxmIHdpbGwgaGFuZGxlIHRoZSByZXF1aXJlZCBjaGFuZ2VzXG4gICAgLy8gZm9yIGlucHV0IGJveC5cbiAgICB7XG4gICAgICBwcm92aWRlOiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICAgICAgdXNlVmFsdWU6IHVuZGVmaW5lZCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9DT1VOVFJZX0ZJRUxEX0NPTlRFWFQsXG4gICAgICB1c2VWYWx1ZTogeyBzaG93UGxhY2Vob2xkZXJUZXh0OiB0cnVlIH0sXG4gICAgfSxcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2Jsb2NrQW5pbWF0aW9uT25Mb2FkJywgW3RyYW5zaXRpb24oJzplbnRlcicsIFtdKV0pLFxuICAgIHRyaWdnZXIoJ2NvdW50cnlTZWFyY2hBbmltYXRpb24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IG9wZW4nLCBbXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICB9KSxcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgIHdpZHRoOiAnKicsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gdm9pZCcsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IG9wZW4tbW9kZXJuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4tbW9kZXJuID0+IHZvaWQnLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCdwaG9uZUlucHV0QW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gdm9pZCcsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMjAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQaG9uZUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogV2hldGhlciBwaG9uZSBudW1iZXIgZXh0ZW5zaW9ucyBhcmUgYWxsb3dlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbGxvd0V4dGVuc2lvbnModmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYWxsb3dFeHRlbnNpb25zID0gdmFsdWUgIT09IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBhbGxvd0V4dGVuc2lvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19hbGxvd0V4dGVuc2lvbnM7XG4gIH1cblxuICAjX2FsbG93RXh0ZW5zaW9ucyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZVxuICAgKiBbSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiBBbHBoYSAyXShodHRwczovL3d3dy5uYXRpb25zb25saW5lLm9yZy9vbmV3b3JsZC9jb3VudHJ5X2NvZGVfbGlzdC5odG0pXG4gICAqIGNvdW50cnkgY29kZSBmb3IgdGhlIGRlZmF1bHQgY291bnRyeS4gVGhlIGNvdW50cnkgc2VsZWN0b3IgYnV0dG9uIGRpc3BsYXlzIGEgZmxhZ1xuICAgKiBpY29uIGZvciB0aGlzIGRlZmF1bHQgY291bnRyeSB1bnRpbCB1c2VycyBzZWxlY3QgYSBkaWZmZXJlbnQgY291bnRyeS5cbiAgICogQGRlZmF1bHQgXCJ1c1wiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRlZmF1bHRDb3VudHJ5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuI19kZWZhdWx0Q291bnRyeSkge1xuICAgICAgdmFsdWUgPz89IERFRkFVTFRfQ09VTlRSWV9DT0RFO1xuICAgICAgdGhpcy4jX2RlZmF1bHRDb3VudHJ5ID0gdmFsdWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgIHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSA9IHRoaXMuI2dldERlZmF1bHRDb3VudHJ5RGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdENvdW50cnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jX2RlZmF1bHRDb3VudHJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXQgZm9yIHZhbGlkYXRlZCBwaG9uZSBudW1iZXJzLlxuICAgKiBPcHRpb25zIGluY2x1ZGU6IGBcImRlZmF1bHRcImAsIGBcImludGVybmF0aW9uYWxcImAsIGFuZCBgXCJuYXRpb25hbFwiYC5cbiAgICogQGRlZmF1bHQgXCJkZWZhdWx0XCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgcmV0dXJuRm9ybWF0KCk6IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQge1xuICAgIHJldHVybiB0aGlzLiNfcmV0dXJuRm9ybWF0O1xuICB9XG5cbiAgcHVibGljIHNldCByZXR1cm5Gb3JtYXQodmFsdWU6IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfcmV0dXJuRm9ybWF0ID0gdmFsdWUgfHwgJ2RlZmF1bHQnO1xuICB9XG5cbiAgI19yZXR1cm5Gb3JtYXQ6IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqIFRoZSBbSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbiBBbHBoYSAyXShodHRwczovL3d3dy5uYXRpb25zb25saW5lLm9yZy9vbmV3b3JsZC9jb3VudHJ5X2NvZGVfbGlzdC5odG0pXG4gICAqIGNvdW50cnkgY29kZXMgZm9yIHRoZSBjb3VudHJpZXMgdGhhdCB1c2VycyBjYW4gc2VsZWN0LiBCeSBkZWZhdWx0LCBhbGwgY291bnRyaWVzIGFyZSBhdmFpbGFibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3VwcG9ydGVkQ291bnRyeUlTT3M6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGBTa3lQaG9uZUZpZWxkQ291bnRyeWAgb2JqZWN0IHdoZW4gdGhlIHNlbGVjdGVkIGNvdW50cnkgaW4gdGhlIGNvdW50cnkgc2VhcmNoXG4gICAqIGlucHV0IGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkQ291bnRyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UGhvbmVGaWVsZENvdW50cnk+KCk7XG5cbiAgcHVibGljIGNvdW50cmllczogU2t5UGhvbmVGaWVsZENvdW50cnlbXTtcblxuICBwdWJsaWMgY291bnRyeVNlbGVjdERpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hTaG93biA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwaG9uZUlucHV0U2hvd24gPSB0cnVlO1xuXG4gIHB1YmxpYyBjb3VudHJ5U2VhcmNoRm9ybTogRm9ybUdyb3VwPHtcbiAgICBjb3VudHJ5U2VhcmNoOiBGb3JtQ29udHJvbDxTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHwgbnVsbD47XG4gIH0+O1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGNvdW50cnkgdG8gdmFsaWRhdGUgYWdhaW5zdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRDb3VudHJ5KG5ld0NvdW50cnk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKFxuICAgICAgbmV3Q291bnRyeSAmJlxuICAgICAgKCF0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5IHx8XG4gICAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkuaXNvMiAhPT0gbmV3Q291bnRyeS5pc28yKVxuICAgICkge1xuICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIgPT09IG5ld0NvdW50cnkuaXNvMixcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5ICYmICF0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5LmV4YW1wbGVOdW1iZXIpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyT2JqID0gdGhpcy4jcGhvbmVVdGlscy5nZXRFeGFtcGxlTnVtYmVyRm9yVHlwZShcbiAgICAgICAgICBuZXdDb3VudHJ5LmlzbzIsXG4gICAgICAgICAgUGhvbmVOdW1iZXJUeXBlLkZJWEVEX0xJTkUsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyID0gdGhpcy4jcGhvbmVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgbnVtYmVyT2JqLFxuICAgICAgICAgIFBob25lTnVtYmVyRm9ybWF0Lk5BVElPTkFMLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNwb3B1bGF0ZUlucHV0Qm94SGVscFRleHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkQ291bnRyeSgpOiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19zZWxlY3RlZENvdW50cnk7XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dFRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGlucHV0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvdW50cnlCdG5UZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBjb3VudHJ5QnRuVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbnNJbnNldFRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGJ1dHRvbnNJbnNldFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAjZGVmYXVsdENvdW50cnlEYXRhOiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZDtcblxuICAjcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCA9IGZhbHNlO1xuXG4gICNwaG9uZU51bWJlckZvcm1hdEhpbnRUZXh0VGVtcGxhdGVTdHJpbmcgPSAnJztcblxuICAjcGhvbmVVdGlscyA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG4gICNsb25nZXN0RGlhbENvZGVMZW5ndGggPSAwO1xuXG4gICNfZGVmYXVsdENvdW50cnkgPSBERUZBVUxUX0NPVU5UUllfQ09ERTtcblxuICAjX3NlbGVjdGVkQ291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxcbiAgICBTa3lDb3VudHJ5RmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHwgbnVsbFxuICA+KHVuZGVmaW5lZCk7XG5cbiAgI2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcjtcbiAgI2FkYXB0ZXJTZXJ2aWNlOiBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2U7XG4gIHJlYWRvbmx5ICNhcHBGb3JtYXQgPSBpbmplY3QoU2t5QXBwRm9ybWF0KTtcbiAgI2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZWFkb25seSAjcmVzb3VyY2VTdmMgPSBpbmplY3QoU2t5TGliUmVzb3VyY2VzU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIGFkYXB0ZXJTZXJ2aWNlOiBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwdWJsaWMgaW5wdXRCb3hIb3N0U3ZjPzogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jZm9ybUJ1aWxkZXIgPSBmb3JtQnVpbGRlcjtcbiAgICB0aGlzLiNhZGFwdGVyU2VydmljZSA9IGFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yID0gY2hhbmdlRGV0ZWN0b3I7XG4gICAgLyoqXG4gICAgICogVGhlIGpzb24gZnVuY3Rpb25zIGhlcmUgZW5zdXJlcyB0aGF0IHdlIGdldCBhIGNvcHkgb2YgdGhlIGFycmF5IGFuZCBub3QgdGhlIGdsb2JhbCBvcmlnaW5hbC5cbiAgICAgKiBUaGlzIGVuc3VyZXMgdGhhdCBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgdGhlIGNvbXBvbmVudCBkb24ndCBvdmVyd3JpdGUgdGhlIG9yaWdpbmFsIGRhdGEuXG4gICAgICpcbiAgICAgKiBXZSBtdXN0IHR5cGUgdGhlIHdpbmRvdyBvYmplY3QgYXMgYW55IGhlcmUgYXMgdGhlIGludGwtdGVsLWlucHV0IGxpYnJhcnkgYWRkcyBpdHMgb2JqZWN0XG4gICAgICogdG8gdGhlIG1haW4gd2luZG93IG9iamVjdC5cbiAgICAgKi9cbiAgICB0aGlzLmNvdW50cmllcyA9IEpTT04ucGFyc2UoXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgSlNPTi5zdHJpbmdpZnkoKHdpbmRvdyBhcyBhbnkpLmludGxUZWxJbnB1dEdsb2JhbHMuZ2V0Q291bnRyeURhdGEoKSksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgY291bnRyeSBvZiB0aGlzLmNvdW50cmllcykge1xuICAgICAgY291bnRyeS5kaWFsQ29kZSA9ICcrJyArIGNvdW50cnkuZGlhbENvZGU7XG5cbiAgICAgIGlmIChjb3VudHJ5LmRpYWxDb2RlLmxlbmd0aCA+IHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCkge1xuICAgICAgICB0aGlzLiNsb25nZXN0RGlhbENvZGVMZW5ndGggPSBjb3VudHJ5LmRpYWxDb2RlLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNkZWZhdWx0Q291bnRyeURhdGEgPSB0aGlzLiNnZXREZWZhdWx0Q291bnRyeURhdGEoKTtcblxuICAgIHRoaXMuY291bnRyeVNlYXJjaEZvcm0gPSB0aGlzLiNmb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBjb3VudHJ5U2VhcmNoOiB0aGlzLiNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wsXG4gICAgfSk7XG5cbiAgICB0aGlzLiNyZXNvdXJjZVN2Y1xuICAgICAgLmdldFN0cmluZygnc2t5dXhfcGhvbmVfZmllbGRfZm9ybWF0X2hpbnRfdGV4dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh0ZW1wbGF0ZVN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLiNwaG9uZU51bWJlckZvcm1hdEhpbnRUZXh0VGVtcGxhdGVTdHJpbmcgPSB0ZW1wbGF0ZVN0cmluZztcbiAgICAgICAgdGhpcy4jcG9wdWxhdGVJbnB1dEJveEhlbHBUZXh0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBUaGUgdGltZW91dCBoZXJlIGlzIG5lZWRlZCB0byBhdm9pZCBhIGNoYW5nZSBiZWZvcmUgY2hlY2tlZCBlcnJvciB3aGVuIGEgdXNlciBzcGVjaWZpZXNcbiAgICAvLyBhIHNlbGVjdGVkIGNvdW50cnkgb24gaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvbXBvbmVudC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2YyAmJiB0aGlzLmlucHV0VGVtcGxhdGVSZWYpIHtcbiAgICAgICAgdGhpcy5pbnB1dEJveEhvc3RTdmMucG9wdWxhdGUoe1xuICAgICAgICAgIGlucHV0VGVtcGxhdGU6IHRoaXMuaW5wdXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zSW5zZXRUZW1wbGF0ZTogdGhpcy5idXR0b25zSW5zZXRUZW1wbGF0ZVJlZixcbiAgICAgICAgICBidXR0b25zTGVmdFRlbXBsYXRlOiB0aGlzLmNvdW50cnlCdG5UZW1wbGF0ZVJlZixcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID8/PSB0aGlzLiNkZWZhdWx0Q291bnRyeURhdGE7XG5cbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDApO1xuXG4gICAgdGhpcy4jY291bnRyeVNlYXJjaEZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXG4gICAgICAobmV3VmFsdWU6IFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmIChuZXdWYWx1ZT8uaXNvMiAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG5ld1ZhbHVlIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvdW50cnkgdG8gdmFsaWRhdGUgYWdhaW5zdCBiYXNlZCBvbiB0aGUgY291bnR5J3MgaXNvMiBjb2RlLlxuICAgKiBAcGFyYW0gY291bnRyeUNvZGUgVGhlIEludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24ncyB0d28tbGV0dGVyIGNvZGVcbiAgICogZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG9uQ291bnRyeVNlbGVjdGVkKG5ld0NvdW50cnk6IFNreUNvdW50cnlGaWVsZENvdW50cnkpOiB2b2lkIHtcbiAgICBpZiAobmV3Q291bnRyeSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeUluZm8pID0+IGNvdW50cnlJbmZvLmlzbzIgPT09IG5ld0NvdW50cnkuaXNvMixcbiAgICAgICk7XG4gICAgICB0aGlzLnRvZ2dsZUNvdW50cnlTZWFyY2goZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDb3VudHJ5U2VhcmNoKHNob3dTZWFyY2g6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkID0gdHJ1ZTtcblxuICAgIGlmIChzaG93U2VhcmNoKSB7XG4gICAgICB0aGlzLnBob25lSW5wdXRTaG93biA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdW50cnlTZWFyY2hTaG93biA9IGZhbHNlO1xuXG4gICAgICB0aGlzLiNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wuc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbnB1dEJveEhvc3RTdmMgJiYgdGhpcy5pbnB1dFRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLmlucHV0Qm94SG9zdFN2Yy5zZXRIaW50VGV4dEhpZGRlbihzaG93U2VhcmNoKTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3VudHJ5U2VhcmNoQW5pbWF0aW9uRW5kKGU6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvdW50cnlTZWFyY2hTaG93bikge1xuICAgICAgdGhpcy5waG9uZUlucHV0U2hvd24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c0NvdW50cnlTZWFyY2hFbGVtZW50KGUuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgcGhvbmVJbnB1dEFuaW1hdGlvbkVuZChlOiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5waG9uZUlucHV0U2hvd24pIHtcbiAgICAgIHRoaXMuY291bnRyeVNlYXJjaFNob3duID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQpIHtcbiAgICAgICAgdGhpcy4jYWRhcHRlclNlcnZpY2UuZm9jdXNQaG9uZUlucHV0KGUuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb3VudHJ5QnlEaWFsQ29kZShwaG9uZU51bWJlclJhdzogc3RyaW5nIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgaWYgKCFwaG9uZU51bWJlclJhdyB8fCAhcGhvbmVOdW1iZXJSYXcuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IGRpYWxDb2RlID0gJyc7XG4gICAgbGV0IGZvdW5kQ291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG4gICAgbGV0IG5ld0NvdW50cnk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBob25lTnVtYmVyUGFyc2VkID1cbiAgICAgICAgdGhpcy4jcGhvbmVVdGlscy5wYXJzZUFuZEtlZXBSYXdJbnB1dChwaG9uZU51bWJlclJhdyk7XG4gICAgICBjb25zdCByZWdpb25Db2RlID1cbiAgICAgICAgdGhpcy4jcGhvbmVVdGlscy5nZXRSZWdpb25Db2RlRm9yTnVtYmVyKHBob25lTnVtYmVyUGFyc2VkKTtcbiAgICAgIGZvdW5kQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKSA9PT0gcmVnaW9uQ29kZT8udG9VcHBlckNhc2UoKSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChmb3VuZENvdW50cnkgJiYgIXRoaXMuI3ZhbGlkYXRlU3VwcG9ydGVkQ291bnRyeShmb3VuZENvdW50cnkpKSB7XG4gICAgICAgIGZvdW5kQ291bnRyeSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLnNlbGVjdGVkQ291bnRyeT8uZGlhbENvZGUgfHxcbiAgICAgICAgIXBob25lTnVtYmVyUmF3LnN0YXJ0c1dpdGgoYCR7dGhpcy5zZWxlY3RlZENvdW50cnk/LmRpYWxDb2RlfWApXG4gICAgICApIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCB0aGlzLiNsb25nZXN0RGlhbENvZGVMZW5ndGggKyAxOyBpKyspIHtcbiAgICAgICAgICBkaWFsQ29kZSA9IHBob25lTnVtYmVyUmF3LnN1YnN0cmluZygwLCBpKTtcblxuICAgICAgICAgIGlmICh0aGlzLiNkZWZhdWx0Q291bnRyeURhdGE/LmRpYWxDb2RlID09PSBkaWFsQ29kZSkge1xuICAgICAgICAgICAgZm91bmRDb3VudHJ5ID0gdGhpcy4jZGVmYXVsdENvdW50cnlEYXRhO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZENvdW50cnk/LmRpYWxDb2RlICE9PSBkaWFsQ29kZSkge1xuICAgICAgICAgICAgY29uc3QgZGlhbENvZGVDb3VudHJpZXMgPSB0aGlzLmNvdW50cmllcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChjb3VudHJ5KSA9PiBjb3VudHJ5LmRpYWxDb2RlID09PSBkaWFsQ29kZSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChkaWFsQ29kZUNvdW50cmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIGZvdW5kQ291bnRyeSA9XG4gICAgICAgICAgICAgICAgZGlhbENvZGVDb3VudHJpZXMuZmluZCgoY291bnRyeSkgPT4gY291bnRyeS5wcmlvcml0eSA9PT0gMCkgPz9cbiAgICAgICAgICAgICAgICBkaWFsQ29kZUNvdW50cmllc1swXTtcbiAgICAgICAgICAgICAgLy8gVE9ETzogUmVmYWN0b3IgdGhlIGxvZ2ljIGluIHRoaXMgbWV0aG9kIGZvciByZWFkYWJpbGl0eS5cbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1kZXB0aFxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZm91bmRDb3VudHJ5ICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuI3ZhbGlkYXRlU3VwcG9ydGVkQ291bnRyeShmb3VuZENvdW50cnkpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGZvdW5kQ291bnRyeSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmb3VuZENvdW50cnkgIT09IHRoaXMuc2VsZWN0ZWRDb3VudHJ5KSB7XG4gICAgICBuZXdDb3VudHJ5ID0gZm91bmRDb3VudHJ5O1xuICAgIH1cblxuICAgIGlmIChuZXdDb3VudHJ5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IG5ld0NvdW50cnk7XG4gICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNnZXREZWZhdWx0Q291bnRyeURhdGEoKTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMiA9PT0gdGhpcy4jX2RlZmF1bHRDb3VudHJ5LFxuICAgICk7XG4gIH1cblxuICAjcG9wdWxhdGVJbnB1dEJveEhlbHBUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2YyAmJiB0aGlzLmlucHV0VGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuaW5wdXRCb3hIb3N0U3ZjPy5zZXRIaW50VGV4dChcbiAgICAgICAgdGhpcy4jYXBwRm9ybWF0LmZvcm1hdFRleHQoXG4gICAgICAgICAgdGhpcy4jcGhvbmVOdW1iZXJGb3JtYXRIaW50VGV4dFRlbXBsYXRlU3RyaW5nLFxuICAgICAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnk/LmV4YW1wbGVOdW1iZXIsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN2YWxpZGF0ZVN1cHBvcnRlZENvdW50cnkoY291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MgfHxcbiAgICAgIHRoaXMuc3VwcG9ydGVkQ291bnRyeUlTT3MuZmluZEluZGV4KFxuICAgICAgICAoaXNvQ29kZSkgPT4gaXNvQ29kZS50b1VwcGVyQ2FzZSgpID09PSBjb3VudHJ5LmlzbzIudG9VcHBlckNhc2UoKSxcbiAgICAgICkgPj0gMFxuICAgICk7XG4gIH1cbn1cbiIsIkBpZiAoIWlucHV0Qm94SG9zdFN2Yykge1xuICA8ZGl2IGNsYXNzPVwic2t5LWlucHV0LWdyb3VwIHNreS1waG9uZS1maWVsZFwiIFtAYmxvY2tBbmltYXRpb25PbkxvYWRdPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb3VudHJ5QnRuVGVtcGxhdGVSZWZcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlUmVmXCIgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uc0luc2V0VGVtcGxhdGVSZWZcIiAvPlxuICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNjb3VudHJ5QnRuVGVtcGxhdGVSZWY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1pbnB1dC1ncm91cC1idG4gc2t5LXBob25lLWZpZWxkLWNvdW50cnktYnRuXCJcbiAgICBbYXR0ci5kYXRhLXNreS10ZXN0LWlzbzJdPVwic2VsZWN0ZWRDb3VudHJ5Py5pc28yXCJcbiAgICBbYXR0ci5kYXRhLXNreS10ZXN0LW5hbWVdPVwic2VsZWN0ZWRDb3VudHJ5Py5uYW1lXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIudGl0bGVdPVwiXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKSArXG4gICAgICAgICcgJyArXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RlZF9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogc2VsZWN0ZWRDb3VudHJ5Py5uYW1lKVxuICAgICAgXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RfbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzKSArXG4gICAgICAgICcgJyArXG4gICAgICAgICgnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWxlY3RlZF9sYWJlbCdcbiAgICAgICAgICB8IHNreUxpYlJlc291cmNlczogc2VsZWN0ZWRDb3VudHJ5Py5uYW1lKVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb3VudHJ5U2VsZWN0RGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvdW50cnlTZWFyY2godHJ1ZSlcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtZmxhZyBpdGlfX2ZsYWdcIlxuICAgICAgICBbbmdDbGFzc109XCInaXRpX18nICsgc2VsZWN0ZWRDb3VudHJ5Py5pc28yXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0VGVtcGxhdGVSZWY+XG4gIEBpZiAocGhvbmVJbnB1dFNob3duKSB7XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LXBob25lLWZpZWxkLWNvbnRhaW5lclwiXG4gICAgICBbQHBob25lSW5wdXRBbmltYXRpb25dPVwicGhvbmVJbnB1dFNob3duID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgICAgKEBwaG9uZUlucHV0QW5pbWF0aW9uLmRvbmUpPVwicGhvbmVJbnB1dEFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgIDwvc3Bhbj5cbiAgfSBAZWxzZSBpZiAoY291bnRyeVNlYXJjaFNob3duKSB7XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwic2t5LXBob25lLWZpZWxkLWNvbnRhaW5lclwiXG4gICAgICBbQGNvdW50cnlTZWFyY2hBbmltYXRpb25dPVwiXG4gICAgICAgICdvcGVuJyArXG4gICAgICAgICgodGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlIHwgYXN5bmMpPy5jdXJyZW50U2V0dGluZ3M/LnRoZW1lPy5uYW1lID09PVxuICAgICAgICAnbW9kZXJuJ1xuICAgICAgICAgID8gJy1tb2Rlcm4nXG4gICAgICAgICAgOiAnJylcbiAgICAgIFwiXG4gICAgICAoQGNvdW50cnlTZWFyY2hBbmltYXRpb24uZG9uZSk9XCJjb3VudHJ5U2VhcmNoQW5pbWF0aW9uRW5kKCRldmVudClcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtY291bnRyeS1zZWFyY2hcIlxuICAgICAgICBbZm9ybUdyb3VwXT1cImNvdW50cnlTZWFyY2hGb3JtXCJcbiAgICAgID5cbiAgICAgICAgPHNreS1jb3VudHJ5LWZpZWxkXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeVNlYXJjaFwiXG4gICAgICAgICAgW2RlZmF1bHRDb3VudHJ5XT1cImRlZmF1bHRDb3VudHJ5XCJcbiAgICAgICAgICBbaGlkZVNlbGVjdGVkQ291bnRyeUZsYWddPVwidHJ1ZVwiXG4gICAgICAgICAgW2luY2x1ZGVQaG9uZUluZm9dPVwidHJ1ZVwiXG4gICAgICAgICAgW3N1cHBvcnRlZENvdW50cnlJU09zXT1cInN1cHBvcnRlZENvdW50cnlJU09zXCJcbiAgICAgICAgICAoc2VsZWN0ZWRDb3VudHJ5Q2hhbmdlKT1cIm9uQ291bnRyeVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9zcGFuPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbnNJbnNldFRlbXBsYXRlUmVmPlxuICBAaWYgKGNvdW50cnlTZWFyY2hTaG93bikge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0biBza3ktaW5wdXQtYm94LWJ0bi1pbnNldCBza3ktc2VhcmNoLWl0ZW0tZGlzbWlzc1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LXBob25lLWZpZWxkLXNlYXJjaC1idG4tZGlzbWlzc1wiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgICAnc2t5dXhfcGhvbmVfZmllbGRfY291bnRyeV9zZWFyY2hfZGlzbWlzcycgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgICAgXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktYnRuLWRlZmF1bHQnOlxuICAgICAgICAgICAgKHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZSB8IGFzeW5jKT8uY3VycmVudFNldHRpbmdzPy50aGVtZT8ubmFtZSA9PT1cbiAgICAgICAgICAgICdtb2Rlcm4nXG4gICAgICAgIH1cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSlcIlxuICAgICAgPlxuICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiXG4gICAgICAgICAgaWNvbj1cImNoZXZyb24tY2lyY2xlLWxlZnRcIlxuICAgICAgICAgIHNpemU9XCJsZ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidtb2Rlcm4nXCIgaWNvbj1cImRvdWJsZS1jaGV2cm9uLWxlZnRcIiBzaXplPVwiMnhcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3Bob25lLWZpZWxkL3NyYy9saWIvbW9kdWxlcy9waG9uZS1maWVsZC9waG9uZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcGhvbmUtZmllbGQvc3JjL2xpYi9tb2R1bGVzL3Bob25lLWZpZWxkL3Bob25lLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFDTCx5QkFBeUIsR0FFMUIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxF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RUFBRTt3QkFDcEMsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQW5pbWF0aW9uRXZlbnQsXG4gIGFuaW1hdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lBcHBGb3JtYXQgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcbmltcG9ydCB7IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5pbXBvcnQge1xuICBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICBTa3lDb3VudHJ5RmllbGRDb3VudHJ5LFxufSBmcm9tICdAc2t5dXgvbG9va3VwJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFBob25lTnVtYmVyRm9ybWF0LFxuICBQaG9uZU51bWJlclR5cGUsXG4gIFBob25lTnVtYmVyVXRpbCxcbn0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcbmltcG9ydCAnaW50bC10ZWwtaW5wdXQnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcGhvbmUtZmllbGQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVBob25lRmllbGRDb3VudHJ5IH0gZnJvbSAnLi90eXBlcy9jb3VudHJ5JztcbmltcG9ydCB7IFNreVBob25lRmllbGROdW1iZXJSZXR1cm5Gb3JtYXQgfSBmcm9tICcuL3R5cGVzL251bWJlci1yZXR1cm4tZm9ybWF0JztcblxuY29uc3QgREVGQVVMVF9DT1VOVFJZX0NPREUgPSAndXMnO1xuXG4vLyBOT1RFOiBUaGUgbm8tb3AgYW5pbWF0aW9uIGlzIGhlcmUgaW4gb3JkZXIgdG8gYmxvY2sgdGhlIGlucHV0J3MgXCJmYWRlIGluXCIgYW5pbWF0aW9uXG4vLyBmcm9tIGZpcmluZyBvbiBpbml0aWFsIGxvYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgdGVjaG5pcXVlIHlvdSBjYW4gc2VlXG4vLyBodHRwczovL3d3dy5iZW5uYWRlbC5jb20vYmxvZy8zNDE3LXVzaW5nLW5vLW9wLXRyYW5zaXRpb25zLXRvLXByZXZlbnQtYW5pbWF0aW9uLWR1cmluZy10aGUtaW5pdGlhbC1yZW5kZXItb2Ytbmdmb3ItaW4tYW5ndWxhci01LTItNi5odG1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1waG9uZS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waG9uZS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lQaG9uZUZpZWxkQWRhcHRlclNlcnZpY2UsXG4gICAgLy8gUHJldmVudHMgdGhlIGVtYmVkZGVkIGNvdW50cnkgZmllbGQgY29tcG9uZW50IGZyb20gY2hhbmdpbmcgaXRzIGJlaGF2aW9yIGJhc2VkIG9uXG4gICAgLy8gYmVpbmcgaW5zaWRlIGFuIGlucHV0IGJveC4gVGhlIHBob25lIGZpZWxkIGl0c2VsZiB3aWxsIGhhbmRsZSB0aGUgcmVxdWlyZWQgY2hhbmdlc1xuICAgIC8vIGZvciBpbnB1dCBib3guXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgICAgIHVzZVZhbHVlOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfQ09VTlRSWV9GSUVMRF9DT05URVhULFxuICAgICAgdXNlVmFsdWU6IHsgc2hvd1BsYWNlaG9sZGVyVGV4dDogdHJ1ZSB9LFxuICAgIH0sXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdibG9ja0FuaW1hdGlvbk9uTG9hZCcsIFt0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSldKSxcbiAgICB0cmlnZ2VyKCdjb3VudHJ5U2VhcmNoQW5pbWF0aW9uJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuJywgW1xuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgfSksXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICB3aWR0aDogJyonLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IHZvaWQnLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBvcGVuLW1vZGVybicsIFtcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuLW1vZGVybiA9PiB2b2lkJywgW1xuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgXSksXG4gICAgdHJpZ2dlcigncGhvbmVJbnB1dEFuaW1hdGlvbicsIFtcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gb3BlbicsIFtcbiAgICAgICAgc3R5bGUoe1xuICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICcyMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCdvcGVuID0+IHZvaWQnLCBbXG4gICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgJzIwMG1zIGVhc2UtaW4nLFxuICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGhvbmVGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgcGhvbmUgbnVtYmVyIGV4dGVuc2lvbnMgYXJlIGFsbG93ZWQuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dFeHRlbnNpb25zKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2FsbG93RXh0ZW5zaW9ucyA9IHZhbHVlICE9PSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxsb3dFeHRlbnNpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfYWxsb3dFeHRlbnNpb25zO1xuICB9XG5cbiAgI19hbGxvd0V4dGVuc2lvbnMgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGVcbiAgICogW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGUgZm9yIHRoZSBkZWZhdWx0IGNvdW50cnkuIFRoZSBjb3VudHJ5IHNlbGVjdG9yIGJ1dHRvbiBkaXNwbGF5cyBhIGZsYWdcbiAgICogaWNvbiBmb3IgdGhpcyBkZWZhdWx0IGNvdW50cnkgdW50aWwgdXNlcnMgc2VsZWN0IGEgZGlmZmVyZW50IGNvdW50cnkuXG4gICAqIEBkZWZhdWx0IFwidXNcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0Q291bnRyeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLiNfZGVmYXVsdENvdW50cnkpIHtcbiAgICAgIHZhbHVlID8/PSBERUZBVUxUX0NPVU5UUllfQ09ERTtcbiAgICAgIHRoaXMuI19kZWZhdWx0Q291bnRyeSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICB0aGlzLiNkZWZhdWx0Q291bnRyeURhdGEgPSB0aGlzLiNnZXREZWZhdWx0Q291bnRyeURhdGEoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRDb3VudHJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI19kZWZhdWx0Q291bnRyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZm9ybWF0IGZvciB2YWxpZGF0ZWQgcGhvbmUgbnVtYmVycy5cbiAgICogT3B0aW9ucyBpbmNsdWRlOiBgXCJkZWZhdWx0XCJgLCBgXCJpbnRlcm5hdGlvbmFsXCJgLCBhbmQgYFwibmF0aW9uYWxcImAuXG4gICAqIEBkZWZhdWx0IFwiZGVmYXVsdFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHJldHVybkZvcm1hdCgpOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHtcbiAgICByZXR1cm4gdGhpcy4jX3JldHVybkZvcm1hdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmV0dXJuRm9ybWF0KHZhbHVlOiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3JldHVybkZvcm1hdCA9IHZhbHVlIHx8ICdkZWZhdWx0JztcbiAgfVxuXG4gICNfcmV0dXJuRm9ybWF0OiBTa3lQaG9uZUZpZWxkTnVtYmVyUmV0dXJuRm9ybWF0ID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgW0ludGVybmF0aW9uYWwgT3JnYW5pemF0aW9uIGZvciBTdGFuZGFyZGl6YXRpb24gQWxwaGEgMl0oaHR0cHM6Ly93d3cubmF0aW9uc29ubGluZS5vcmcvb25ld29ybGQvY291bnRyeV9jb2RlX2xpc3QuaHRtKVxuICAgKiBjb3VudHJ5IGNvZGVzIGZvciB0aGUgY291bnRyaWVzIHRoYXQgdXNlcnMgY2FuIHNlbGVjdC4gQnkgZGVmYXVsdCwgYWxsIGNvdW50cmllcyBhcmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN1cHBvcnRlZENvdW50cnlJU09zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRW1pdHMgYSBgU2t5UGhvbmVGaWVsZENvdW50cnlgIG9iamVjdCB3aGVuIHRoZSBzZWxlY3RlZCBjb3VudHJ5IGluIHRoZSBjb3VudHJ5IHNlYXJjaFxuICAgKiBpbnB1dCBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENvdW50cnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVBob25lRmllbGRDb3VudHJ5PigpO1xuXG4gIHB1YmxpYyBjb3VudHJpZXM6IFNreVBob25lRmllbGRDb3VudHJ5W107XG5cbiAgcHVibGljIGNvdW50cnlTZWxlY3REaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb3VudHJ5U2VhcmNoU2hvd24gPSBmYWxzZTtcblxuICBwdWJsaWMgcGhvbmVJbnB1dFNob3duID0gdHJ1ZTtcblxuICBwdWJsaWMgY291bnRyeVNlYXJjaEZvcm06IEZvcm1Hcm91cDx7XG4gICAgY291bnRyeVNlYXJjaDogRm9ybUNvbnRyb2w8U2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCB8IG51bGw+O1xuICB9PjtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb3VudHJ5IHRvIHZhbGlkYXRlIGFnYWluc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkQ291bnRyeShuZXdDb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChcbiAgICAgIG5ld0NvdW50cnkgJiZcbiAgICAgICghdGhpcy4jX3NlbGVjdGVkQ291bnRyeSB8fFxuICAgICAgICB0aGlzLiNfc2VsZWN0ZWRDb3VudHJ5LmlzbzIgIT09IG5ld0NvdW50cnkuaXNvMilcbiAgICApIHtcbiAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKFxuICAgICAgICAoY291bnRyeSkgPT4gY291bnRyeS5pc28yID09PSBuZXdDb3VudHJ5LmlzbzIsXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy4jX3NlbGVjdGVkQ291bnRyeSAmJiAhdGhpcy4jX3NlbGVjdGVkQ291bnRyeS5leGFtcGxlTnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG51bWJlck9iaiA9IHRoaXMuI3Bob25lVXRpbHMuZ2V0RXhhbXBsZU51bWJlckZvclR5cGUoXG4gICAgICAgICAgbmV3Q291bnRyeS5pc28yLFxuICAgICAgICAgIFBob25lTnVtYmVyVHlwZS5GSVhFRF9MSU5FLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuI19zZWxlY3RlZENvdW50cnkuZXhhbXBsZU51bWJlciA9IHRoaXMuI3Bob25lVXRpbHMuZm9ybWF0KFxuICAgICAgICAgIG51bWJlck9iaixcbiAgICAgICAgICBQaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jcG9wdWxhdGVJbnB1dEJveEhlbHBUZXh0KCk7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeUNoYW5nZS5lbWl0KHRoaXMuI19zZWxlY3RlZENvdW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRDb3VudHJ5KCk6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3NlbGVjdGVkQ291bnRyeTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY291bnRyeUJ0blRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIGNvdW50cnlCdG5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uc0luc2V0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICNkZWZhdWx0Q291bnRyeURhdGE6IFNreVBob25lRmllbGRDb3VudHJ5IHwgdW5kZWZpbmVkO1xuXG4gICNwaG9uZUlucHV0QW5pbWF0aW9uVHJpZ2dlcmVkID0gZmFsc2U7XG5cbiAgI3Bob25lTnVtYmVyRm9ybWF0SGludFRleHRUZW1wbGF0ZVN0cmluZyA9ICcnO1xuXG4gICNwaG9uZVV0aWxzID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG5cbiAgI2xvbmdlc3REaWFsQ29kZUxlbmd0aCA9IDA7XG5cbiAgI19kZWZhdWx0Q291bnRyeSA9IERFRkFVTFRfQ09VTlRSWV9DT0RFO1xuXG4gICNfc2VsZWN0ZWRDb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZDtcblxuICAjY291bnRyeVNlYXJjaEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sPFxuICAgIFNreUNvdW50cnlGaWVsZENvdW50cnkgfCB1bmRlZmluZWQgfCBudWxsXG4gID4odW5kZWZpbmVkKTtcblxuICAjZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyO1xuICAjYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZTtcbiAgcmVhZG9ubHkgI2FwcEZvcm1hdCA9IGluamVjdChTa3lBcHBGb3JtYXQpO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5ICNyZXNvdXJjZVN2YyA9IGluamVjdChTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgYWRhcHRlclNlcnZpY2U6IFNreVBob25lRmllbGRBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHB1YmxpYyBpbnB1dEJveEhvc3RTdmM/OiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNmb3JtQnVpbGRlciA9IGZvcm1CdWlsZGVyO1xuICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlID0gYWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IgPSBjaGFuZ2VEZXRlY3RvcjtcbiAgICAvKipcbiAgICAgKiBUaGUganNvbiBmdW5jdGlvbnMgaGVyZSBlbnN1cmVzIHRoYXQgd2UgZ2V0IGEgY29weSBvZiB0aGUgYXJyYXkgYW5kIG5vdCB0aGUgZ2xvYmFsIG9yaWdpbmFsLlxuICAgICAqIFRoaXMgZW5zdXJlcyB0aGF0IG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGUgY29tcG9uZW50IGRvbid0IG92ZXJ3cml0ZSB0aGUgb3JpZ2luYWwgZGF0YS5cbiAgICAgKlxuICAgICAqIFdlIG11c3QgdHlwZSB0aGUgd2luZG93IG9iamVjdCBhcyBhbnkgaGVyZSBhcyB0aGUgaW50bC10ZWwtaW5wdXQgbGlicmFyeSBhZGRzIGl0cyBvYmplY3RcbiAgICAgKiB0byB0aGUgbWFpbiB3aW5kb3cgb2JqZWN0LlxuICAgICAqL1xuICAgIHRoaXMuY291bnRyaWVzID0gSlNPTi5wYXJzZShcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICBKU09OLnN0cmluZ2lmeSgod2luZG93IGFzIGFueSkuaW50bFRlbElucHV0R2xvYmFscy5nZXRDb3VudHJ5RGF0YSgpKSxcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBjb3VudHJ5IG9mIHRoaXMuY291bnRyaWVzKSB7XG4gICAgICBjb3VudHJ5LmRpYWxDb2RlID0gJysnICsgY291bnRyeS5kaWFsQ29kZTtcblxuICAgICAgaWYgKGNvdW50cnkuZGlhbENvZGUubGVuZ3RoID4gdGhpcy4jbG9uZ2VzdERpYWxDb2RlTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCA9IGNvdW50cnkuZGlhbENvZGUubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YSA9IHRoaXMuI2dldERlZmF1bHRDb3VudHJ5RGF0YSgpO1xuXG4gICAgdGhpcy5jb3VudHJ5U2VhcmNoRm9ybSA9IHRoaXMuI2Zvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNvdW50cnlTZWFyY2g6IHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbCxcbiAgICB9KTtcblxuICAgIHRoaXMuI3Jlc291cmNlU3ZjXG4gICAgICAuZ2V0U3RyaW5nKCdza3l1eF9waG9uZV9maWVsZF9mb3JtYXRfaGludF90ZXh0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRlbXBsYXRlU3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuI3Bob25lTnVtYmVyRm9ybWF0SGludFRleHRUZW1wbGF0ZVN0cmluZyA9IHRlbXBsYXRlU3RyaW5nO1xuICAgICAgICB0aGlzLiNwb3B1bGF0ZUlucHV0Qm94SGVscFRleHQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRoZSB0aW1lb3V0IGhlcmUgaXMgbmVlZGVkIHRvIGF2b2lkIGEgY2hhbmdlIGJlZm9yZSBjaGVja2VkIGVycm9yIHdoZW4gYSB1c2VyIHNwZWNpZmllc1xuICAgIC8vIGEgc2VsZWN0ZWQgY291bnRyeSBvbiBpbml0aWFsaXphdGlvbiBvZiB0aGUgY29tcG9uZW50LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5wdXRCb3hIb3N0U3ZjICYmIHRoaXMuaW5wdXRUZW1wbGF0ZVJlZikge1xuICAgICAgICB0aGlzLmlucHV0Qm94SG9zdFN2Yy5wb3B1bGF0ZSh7XG4gICAgICAgICAgaW5wdXRUZW1wbGF0ZTogdGhpcy5pbnB1dFRlbXBsYXRlUmVmLFxuICAgICAgICAgIGJ1dHRvbnNJbnNldFRlbXBsYXRlOiB0aGlzLmJ1dHRvbnNJbnNldFRlbXBsYXRlUmVmLFxuICAgICAgICAgIGJ1dHRvbnNMZWZ0VGVtcGxhdGU6IHRoaXMuY291bnRyeUJ0blRlbXBsYXRlUmVmLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPz89IHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YTtcblxuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMCk7XG5cbiAgICB0aGlzLiNjb3VudHJ5U2VhcmNoRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgIChuZXdWYWx1ZTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKG5ld1ZhbHVlPy5pc28yICE9PSB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3VmFsdWUgfHwgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENvdW50cnlDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY291bnRyeSB0byB2YWxpZGF0ZSBhZ2FpbnN0IGJhc2VkIG9uIHRoZSBjb3VudHkncyBpc28yIGNvZGUuXG4gICAqIEBwYXJhbSBjb3VudHJ5Q29kZSBUaGUgSW50ZXJuYXRpb25hbCBPcmdhbml6YXRpb24gZm9yIFN0YW5kYXJkaXphdGlvbidzIHR3by1sZXR0ZXIgY29kZVxuICAgKiBmb3IgdGhlIGRlZmF1bHQgY291bnRyeS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb25Db3VudHJ5U2VsZWN0ZWQobmV3Q291bnRyeTogU2t5Q291bnRyeUZpZWxkQ291bnRyeSk6IHZvaWQge1xuICAgIGlmIChuZXdDb3VudHJ5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAgIChjb3VudHJ5SW5mbykgPT4gY291bnRyeUluZm8uaXNvMiA9PT0gbmV3Q291bnRyeS5pc28yLFxuICAgICAgKTtcbiAgICAgIHRoaXMudG9nZ2xlQ291bnRyeVNlYXJjaChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvdW50cnlTZWFyY2goc2hvd1NlYXJjaDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI3Bob25lSW5wdXRBbmltYXRpb25UcmlnZ2VyZWQgPSB0cnVlO1xuXG4gICAgaWYgKHNob3dTZWFyY2gpIHtcbiAgICAgIHRoaXMucGhvbmVJbnB1dFNob3duID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY291bnRyeVNlYXJjaFNob3duID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuI2NvdW50cnlTZWFyY2hGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0Qm94SG9zdFN2YyAmJiB0aGlzLmlucHV0VGVtcGxhdGVSZWYpIHtcbiAgICAgIHRoaXMuaW5wdXRCb3hIb3N0U3ZjLnNldEhpbnRUZXh0SGlkZGVuKHNob3dTZWFyY2gpO1xuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGNvdW50cnlTZWFyY2hBbmltYXRpb25FbmQoZTogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY291bnRyeVNlYXJjaFNob3duKSB7XG4gICAgICB0aGlzLnBob25lSW5wdXRTaG93biA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2FkYXB0ZXJTZXJ2aWNlLmZvY3VzQ291bnRyeVNlYXJjaEVsZW1lbnQoZS5lbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBwaG9uZUlucHV0QW5pbWF0aW9uRW5kKGU6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBob25lSW5wdXRTaG93bikge1xuICAgICAgdGhpcy5jb3VudHJ5U2VhcmNoU2hvd24gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCkge1xuICAgICAgICB0aGlzLiNhZGFwdGVyU2VydmljZS5mb2N1c1Bob25lSW5wdXQoZS5lbGVtZW50KTtcbiAgICAgICAgdGhpcy4jcGhvbmVJbnB1dEFuaW1hdGlvblRyaWdnZXJlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldENvdW50cnlCeURpYWxDb2RlKHBob25lTnVtYmVyUmF3OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICBpZiAoIXBob25lTnVtYmVyUmF3IHx8ICFwaG9uZU51bWJlclJhdy5zdGFydHNXaXRoKCcrJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgZGlhbENvZGUgPSAnJztcbiAgICBsZXQgZm91bmRDb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgbmV3Q291bnRyeTogU2t5UGhvbmVGaWVsZENvdW50cnkgfCB1bmRlZmluZWQ7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcGhvbmVOdW1iZXJQYXJzZWQgPVxuICAgICAgICB0aGlzLiNwaG9uZVV0aWxzLnBhcnNlQW5kS2VlcFJhd0lucHV0KHBob25lTnVtYmVyUmF3KTtcbiAgICAgIGNvbnN0IHJlZ2lvbkNvZGUgPVxuICAgICAgICB0aGlzLiNwaG9uZVV0aWxzLmdldFJlZ2lvbkNvZGVGb3JOdW1iZXIocGhvbmVOdW1iZXJQYXJzZWQpO1xuICAgICAgZm91bmRDb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZChcbiAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpID09PSByZWdpb25Db2RlPy50b1VwcGVyQ2FzZSgpLFxuICAgICAgKTtcblxuICAgICAgaWYgKGZvdW5kQ291bnRyeSAmJiAhdGhpcy4jdmFsaWRhdGVTdXBwb3J0ZWRDb3VudHJ5KGZvdW5kQ291bnRyeSkpIHtcbiAgICAgICAgZm91bmRDb3VudHJ5ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuc2VsZWN0ZWRDb3VudHJ5Py5kaWFsQ29kZSB8fFxuICAgICAgICAhcGhvbmVOdW1iZXJSYXcuc3RhcnRzV2l0aChgJHt0aGlzLnNlbGVjdGVkQ291bnRyeT8uZGlhbENvZGV9YClcbiAgICAgICkge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRoaXMuI2xvbmdlc3REaWFsQ29kZUxlbmd0aCArIDE7IGkrKykge1xuICAgICAgICAgIGRpYWxDb2RlID0gcGhvbmVOdW1iZXJSYXcuc3Vic3RyaW5nKDAsIGkpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuI2RlZmF1bHRDb3VudHJ5RGF0YT8uZGlhbENvZGUgPT09IGRpYWxDb2RlKSB7XG4gICAgICAgICAgICBmb3VuZENvdW50cnkgPSB0aGlzLiNkZWZhdWx0Q291bnRyeURhdGE7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ291bnRyeT8uZGlhbENvZGUgIT09IGRpYWxDb2RlKSB7XG4gICAgICAgICAgICBjb25zdCBkaWFsQ29kZUNvdW50cmllcyA9IHRoaXMuY291bnRyaWVzLmZpbHRlcihcbiAgICAgICAgICAgICAgKGNvdW50cnkpID0+IGNvdW50cnkuZGlhbENvZGUgPT09IGRpYWxDb2RlLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGRpYWxDb2RlQ291bnRyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgZm91bmRDb3VudHJ5ID1cbiAgICAgICAgICAgICAgICBkaWFsQ29kZUNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiBjb3VudHJ5LnByaW9yaXR5ID09PSAwKSA/P1xuICAgICAgICAgICAgICAgIGRpYWxDb2RlQ291bnRyaWVzWzBdO1xuICAgICAgICAgICAgICAvLyBUT0RPOiBSZWZhY3RvciB0aGUgbG9naWMgaW4gdGhpcyBtZXRob2QgZm9yIHJlYWRhYmlsaXR5LlxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWRlcHRoXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmb3VuZENvdW50cnkgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy4jdmFsaWRhdGVTdXBwb3J0ZWRDb3VudHJ5KGZvdW5kQ291bnRyeSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZm91bmRDb3VudHJ5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZvdW5kQ291bnRyeSAhPT0gdGhpcy5zZWxlY3RlZENvdW50cnkpIHtcbiAgICAgIG5ld0NvdW50cnkgPSBmb3VuZENvdW50cnk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0NvdW50cnkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gbmV3Q291bnRyeTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI2dldERlZmF1bHRDb3VudHJ5RGF0YSgpOiBTa3lQaG9uZUZpZWxkQ291bnRyeSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY291bnRyaWVzLmZpbmQoXG4gICAgICAoY291bnRyeSkgPT4gY291bnRyeS5pc28yID09PSB0aGlzLiNfZGVmYXVsdENvdW50cnksXG4gICAgKTtcbiAgfVxuXG4gICNwb3B1bGF0ZUlucHV0Qm94SGVscFRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRCb3hIb3N0U3ZjICYmIHRoaXMuaW5wdXRUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5pbnB1dEJveEhvc3RTdmM/LnNldEhpbnRUZXh0KFxuICAgICAgICB0aGlzLiNhcHBGb3JtYXQuZm9ybWF0VGV4dChcbiAgICAgICAgICB0aGlzLiNwaG9uZU51bWJlckZvcm1hdEhpbnRUZXh0VGVtcGxhdGVTdHJpbmcsXG4gICAgICAgICAgdGhpcy4jX3NlbGVjdGVkQ291bnRyeT8uZXhhbXBsZU51bWJlcixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3ZhbGlkYXRlU3VwcG9ydGVkQ291bnRyeShjb3VudHJ5OiBTa3lQaG9uZUZpZWxkQ291bnRyeSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcyB8fFxuICAgICAgdGhpcy5zdXBwb3J0ZWRDb3VudHJ5SVNPcy5maW5kSW5kZXgoXG4gICAgICAgIChpc29Db2RlKSA9PiBpc29Db2RlLnRvVXBwZXJDYXNlKCkgPT09IGNvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpLFxuICAgICAgKSA+PSAwXG4gICAgKTtcbiAgfVxufVxuIiwiQGlmICghaW5wdXRCb3hIb3N0U3ZjKSB7XG4gIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAgc2t5LXBob25lLWZpZWxkXCIgW0BibG9ja0FuaW1hdGlvbk9uTG9hZF0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvdW50cnlCdG5UZW1wbGF0ZVJlZlwiIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVSZWZcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25zSW5zZXRUZW1wbGF0ZVJlZlwiIC8+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2NvdW50cnlCdG5UZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWlucHV0LWdyb3VwLWJ0biBza3ktcGhvbmUtZmllbGQtY291bnRyeS1idG5cIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtaXNvMl09XCJzZWxlY3RlZENvdW50cnk/LmlzbzJcIlxuICAgIFthdHRyLmRhdGEtc2t5LXRlc3QtbmFtZV09XCJzZWxlY3RlZENvdW50cnk/Lm5hbWVcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbYXR0ci50aXRsZV09XCJcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdGVkX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBzZWxlY3RlZENvdW50cnk/Lm5hbWUpXG4gICAgICBcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMpICtcbiAgICAgICAgJyAnICtcbiAgICAgICAgKCdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlbGVjdGVkX2xhYmVsJ1xuICAgICAgICAgIHwgc2t5TGliUmVzb3VyY2VzOiBzZWxlY3RlZENvdW50cnk/Lm5hbWUpXG4gICAgICBcIlxuICAgICAgW2Rpc2FibGVkXT1cImNvdW50cnlTZWxlY3REaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlQ291bnRyeVNlYXJjaCh0cnVlKVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1mbGFnIGl0aV9fZmxhZ1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIidpdGlfXycgKyBzZWxlY3RlZENvdW50cnk/LmlzbzJcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZVJlZj5cbiAgQGlmIChwaG9uZUlucHV0U2hvd24pIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtY29udGFpbmVyXCJcbiAgICAgIFtAcGhvbmVJbnB1dEFuaW1hdGlvbl09XCJwaG9uZUlucHV0U2hvd24gPyAnb3BlbicgOiAnY2xvc2VkJ1wiXG4gICAgICAoQHBob25lSW5wdXRBbmltYXRpb24uZG9uZSk9XCJwaG9uZUlucHV0QW5pbWF0aW9uRW5kKCRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgPC9zcGFuPlxuICB9IEBlbHNlIGlmIChjb3VudHJ5U2VhcmNoU2hvd24pIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJza3ktcGhvbmUtZmllbGQtY29udGFpbmVyXCJcbiAgICAgIFtAY291bnRyeVNlYXJjaEFuaW1hdGlvbl09XCJcbiAgICAgICAgJ29wZW4nICtcbiAgICAgICAgKCh0aGVtZVN2Yz8uc2V0dGluZ3NDaGFuZ2UgfCBhc3luYyk/LmN1cnJlbnRTZXR0aW5ncz8udGhlbWU/Lm5hbWUgPT09XG4gICAgICAgICdtb2Rlcm4nXG4gICAgICAgICAgPyAnLW1vZGVybidcbiAgICAgICAgICA6ICcnKVxuICAgICAgXCJcbiAgICAgIChAY291bnRyeVNlYXJjaEFuaW1hdGlvbi5kb25lKT1cImNvdW50cnlTZWFyY2hBbmltYXRpb25FbmQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNreS1waG9uZS1maWVsZC1jb3VudHJ5LXNlYXJjaFwiXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY291bnRyeVNlYXJjaEZvcm1cIlxuICAgICAgPlxuICAgICAgICA8c2t5LWNvdW50cnktZmllbGRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHJ5U2VhcmNoXCJcbiAgICAgICAgICBbZGVmYXVsdENvdW50cnldPVwiZGVmYXVsdENvdW50cnlcIlxuICAgICAgICAgIFtoaWRlU2VsZWN0ZWRDb3VudHJ5RmxhZ109XCJ0cnVlXCJcbiAgICAgICAgICBbaW5jbHVkZVBob25lSW5mb109XCJ0cnVlXCJcbiAgICAgICAgICBbc3VwcG9ydGVkQ291bnRyeUlTT3NdPVwic3VwcG9ydGVkQ291bnRyeUlTT3NcIlxuICAgICAgICAgIChzZWxlY3RlZENvdW50cnlDaGFuZ2UpPVwib25Db3VudHJ5U2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9uc0luc2V0VGVtcGxhdGVSZWY+XG4gIEBpZiAoY291bnRyeVNlYXJjaFNob3duKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtYnRuIHNreS1pbnB1dC1ib3gtYnRuLWluc2V0IHNreS1zZWFyY2gtaXRlbS1kaXNtaXNzXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktcGhvbmUtZmllbGQtc2VhcmNoLWJ0bi1kaXNtaXNzXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cIlxuICAgICAgICAgICdza3l1eF9waG9uZV9maWVsZF9jb3VudHJ5X3NlYXJjaF9kaXNtaXNzJyB8IHNreUxpYlJlc291cmNlc1xuICAgICAgICBcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ3NreS1idG4tZGVmYXVsdCc6XG4gICAgICAgICAgICAodGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlIHwgYXN5bmMpPy5jdXJyZW50U2V0dGluZ3M/LnRoZW1lPy5uYW1lID09PVxuICAgICAgICAgICAgJ21vZGVybidcbiAgICAgICAgfVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDb3VudHJ5U2VhcmNoKGZhbHNlKVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICpza3lUaGVtZUlmPVwiJ2RlZmF1bHQnXCJcbiAgICAgICAgICBpY29uPVwiY2hldnJvbi1jaXJjbGUtbGVmdFwiXG4gICAgICAgICAgc2l6ZT1cImxnXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNreS1pY29uICpza3lUaGVtZUlmPVwiJ21vZGVybidcIiBpY29uPVwiZG91YmxlLWNoZXZyb24tbGVmdFwiIHNpemU9XCIyeFwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -13,7 +13,7 @@ import { SkyThemeModule } from '@skyux/theme';
|
|
|
13
13
|
import * as i8 from '@skyux/i18n';
|
|
14
14
|
import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
|
|
15
15
|
import { PhoneNumberType, PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';
|
|
16
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
16
|
+
import { Subject, takeUntil, take } from 'rxjs';
|
|
17
17
|
import { trigger, transition, style, animate } from '@angular/animations';
|
|
18
18
|
import { SkyAppFormat } from '@skyux/core';
|
|
19
19
|
import * as i4 from '@skyux/forms';
|
|
@@ -183,6 +183,7 @@ class SkyPhoneFieldComponent {
|
|
|
183
183
|
this.#_selectedCountry.exampleNumber = this.#phoneUtils.format(numberObj, PhoneNumberFormat.NATIONAL);
|
|
184
184
|
}
|
|
185
185
|
this.#populateInputBoxHelpText();
|
|
186
|
+
this.selectedCountryChange.emit(this.#_selectedCountry);
|
|
186
187
|
}
|
|
187
188
|
}
|
|
188
189
|
get selectedCountry() {
|
|
@@ -272,7 +273,6 @@ class SkyPhoneFieldComponent {
|
|
|
272
273
|
this.#countrySearchFormControl.valueChanges.subscribe((newValue) => {
|
|
273
274
|
if (newValue?.iso2 !== this.selectedCountry?.iso2) {
|
|
274
275
|
this.selectedCountry = newValue || undefined;
|
|
275
|
-
this.selectedCountryChange.emit(this.selectedCountry);
|
|
276
276
|
}
|
|
277
277
|
});
|
|
278
278
|
}
|
|
@@ -631,8 +631,14 @@ class SkyPhoneFieldInputDirective {
|
|
|
631
631
|
.subscribe(() => {
|
|
632
632
|
const value = this.#adapterSvc?.getInputValue(this.#elRef);
|
|
633
633
|
this.#setValue(value);
|
|
634
|
-
this.#
|
|
635
|
-
|
|
634
|
+
this.#control?.updateValueAndValidity();
|
|
635
|
+
});
|
|
636
|
+
this.#phoneFieldComponent.countrySearchForm
|
|
637
|
+
.get('countrySearch')
|
|
638
|
+
?.valueChanges.pipe(takeUntil(this.#ngUnsubscribe), take(1))
|
|
639
|
+
.subscribe(() => {
|
|
640
|
+
this.#control?.markAsDirty();
|
|
641
|
+
this.#control?.markAsTouched();
|
|
636
642
|
});
|
|
637
643
|
}
|
|
638
644
|
ngOnDestroy() {
|