buildingproduct-library 0.2.78 → 0.2.79

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.
@@ -1,3 +1,4 @@
1
+ import { __awaiter } from "tslib";
1
2
  import { Component } from '@angular/core';
2
3
  import { BehaviorSubject } from 'rxjs';
3
4
  import * as i0 from "@angular/core";
@@ -17,32 +18,35 @@ export class AccountDropdownComponent {
17
18
  this.showToast = false;
18
19
  }
19
20
  ngOnInit() {
20
- this.selecteduserData = JSON.parse(localStorage.getItem('selectedAccout') || '{}');
21
- this.fiUserAccountDetailsService.getUserAccount().subscribe((user) => {
22
- var _a, _b;
23
- if (user) {
24
- const username = (_a = user.uid) === null || _a === void 0 ? void 0 : _a.toString();
25
- const cartObj = localStorage.getItem('spartacus⚿dimond-spa⚿cart');
26
- const cartId = (_b = JSON.parse(cartObj)) === null || _b === void 0 ? void 0 : _b.active;
27
- if (cartId) {
28
- this.service.getAccountDatawithCartId(cartId).subscribe((data) => {
29
- if (data) {
30
- this.showWaitCursor.next(false);
31
- this.accounts = data;
32
- this.getAccountsData();
33
- }
34
- });
35
- }
36
- else {
37
- this.service.getAccountData().subscribe((data) => {
38
- if (data) {
39
- this.showWaitCursor.next(false);
40
- this.accounts = data;
41
- this.getAccountsData();
42
- }
43
- });
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const isLoaded = yield this.fiUserAccountDetailsService.isEnviornmentLoaded();
23
+ this.selecteduserData = JSON.parse(localStorage.getItem('selectedAccout') || '{}');
24
+ this.fiUserAccountDetailsService.getUserAccount().subscribe((user) => {
25
+ var _a, _b;
26
+ if (user) {
27
+ const username = (_a = user.uid) === null || _a === void 0 ? void 0 : _a.toString();
28
+ const cartObj = localStorage.getItem('spartacus⚿dimond-spa⚿cart');
29
+ const cartId = (_b = JSON.parse(cartObj)) === null || _b === void 0 ? void 0 : _b.active;
30
+ if (cartId) {
31
+ this.service.getAccountDatawithCartId(cartId).subscribe((data) => {
32
+ if (data) {
33
+ this.showWaitCursor.next(false);
34
+ this.accounts = data;
35
+ this.getAccountsData();
36
+ }
37
+ });
38
+ }
39
+ else {
40
+ this.service.getAccountData().subscribe((data) => {
41
+ if (data) {
42
+ this.showWaitCursor.next(false);
43
+ this.accounts = data;
44
+ this.getAccountsData();
45
+ }
46
+ });
47
+ }
44
48
  }
45
- }
49
+ });
46
50
  });
47
51
  }
48
52
  getAccountsData() {
@@ -156,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
156
160
  styleUrls: ['./account-dropdown.component.scss']
157
161
  }]
158
162
  }], ctorParameters: function () { return [{ type: i1.AccountDropdownService }, { type: i2.UserAccountDetailServiceService }, { type: i3.FindStoreService }]; } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2FjY291bnQtZHJvcGRvd24vYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2FjY291bnQtZHJvcGRvd24vYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFVdkMsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNTLE9BQStCLEVBQzlCLDJCQUE0RCxFQUM1RCxnQkFBa0M7UUFGbkMsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFDOUIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUFpQztRQUM1RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBVHJDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVyRCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUt2QixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7O1lBQ3hFLElBQUksSUFBSSxFQUFFO2dCQUNSLE1BQU0sUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sT0FBTyxHQUFRLFlBQVksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztnQkFDdkUsTUFBTSxNQUFNLEdBQUcsTUFBQSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQywwQ0FBRSxNQUFNLENBQUM7Z0JBQzNDLElBQUksTUFBTSxFQUFFO29CQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7d0JBQ3BFLElBQUksSUFBSSxFQUFFOzRCQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzs0QkFDckIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3lCQUN4QjtvQkFDSCxDQUFDLENBQUMsQ0FBQTtpQkFDSDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dCQUNwRCxJQUFJLElBQUksRUFBRTs0QkFDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7NEJBQ3JCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzt5QkFDeEI7b0JBQ0gsQ0FBQyxDQUFDLENBQUE7aUJBQ0g7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGVBQWU7UUFDYixZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDckMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFO2dCQUNwQyxNQUFNLGVBQWUsR0FBUTtvQkFDM0IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO2lCQUNqQixDQUFBO2dCQUNELElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLE1BQU0sRUFBRTtvQkFDdkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7aUJBQ3pFO2dCQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFO29CQUNsRCxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUMxRTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO2dCQUNyQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtvQkFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQztvQkFDaEMsT0FBTztpQkFDUjtxQkFBTTtvQkFDTCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNuRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFOzRCQUN0QyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUc7Z0NBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7NEJBQ2hDLE9BQU87d0JBQ1QsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7b0JBQzVCLE9BQU8sR0FBRyxDQUFDO2lCQUNaO3FCQUFNO29CQUNMLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ25DLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRTs0QkFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQzs0QkFDOUIsT0FBTyxLQUFLLENBQUM7eUJBQ2Q7NkJBQU07NEJBQ0wsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtnQ0FDeEMsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFO29DQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO29DQUNqQyxPQUFPLFFBQVEsQ0FBQztpQ0FDakI7NEJBQ0gsQ0FBQyxDQUFDLENBQUE7eUJBQ0g7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xELFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDeEY7WUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUU7Z0JBQ2xELE1BQU0sZUFBZSxHQUFRO29CQUMzQixHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUc7aUJBQy9CLENBQUE7Z0JBQ0QsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksTUFBTSxFQUFFO29CQUN2RCxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztpQkFDekU7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JFLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ2xELFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQ3hGO2FBQ0Y7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0RTtJQUNILENBQUM7SUFDRCxjQUFjLENBQUMsSUFBUztRQUN0QixNQUFNLGVBQWUsR0FBUTtZQUMzQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDZCxDQUFBO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLFlBQVksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RSxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLFlBQVksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUVyRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVgsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsVUFBVTtRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLE9BQU87SUFDVCxDQUFDOztzSEExSVUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsNERDWnJDLDJ1SkEwREE7NEZEOUNhLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsbUNBQW1DO29CQUNoRCxTQUFTLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztpQkFDakQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxNZXNzYWdlU2VydmljZSwgR2xvYmFsTWVzc2FnZVR5cGUgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmluZFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbmQtc3RvcmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJBY2NvdW50RGV0YWlsU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLWFjY291bnQtZGV0YWlsLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnREcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL2FjY291bnQtZHJvcGRvd24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hY2NvdW50LWRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvdW50RHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgYWNjb3VudHM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkVXNlcjogYW55O1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgc2VsZWN0ZWR1c2VyRGF0YTogYW55O1xyXG4gIGlzQWNjb3VudENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93VG9hc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBBY2NvdW50RHJvcGRvd25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaVVzZXJBY2NvdW50RGV0YWlsc1NlcnZpY2U6IFVzZXJBY2NvdW50RGV0YWlsU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpbmRTdG9yZVNlcnZpY2U6IEZpbmRTdG9yZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NlbGVjdGVkQWNjb3V0JykgfHwgJ3t9Jyk7XHJcbiAgICB0aGlzLmZpVXNlckFjY291bnREZXRhaWxzU2VydmljZS5nZXRVc2VyQWNjb3VudCgpLnN1YnNjcmliZSgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIGlmICh1c2VyKSB7XHJcbiAgICAgICAgY29uc3QgdXNlcm5hbWUgPSB1c2VyLnVpZD8udG9TdHJpbmcoKTtcclxuICAgICAgICBjb25zdCBjYXJ0T2JqOiBhbnkgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3BhcnRhY3Vz4pq/ZGltb25kLXNwYeKav2NhcnQnKTtcclxuICAgICAgICBjb25zdCBjYXJ0SWQgPSBKU09OLnBhcnNlKGNhcnRPYmopPy5hY3RpdmU7XHJcbiAgICAgICAgaWYgKGNhcnRJZCkge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldEFjY291bnREYXRhd2l0aENhcnRJZChjYXJ0SWQpLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICB0aGlzLmFjY291bnRzID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLmdldEFjY291bnRzRGF0YSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0QWNjb3VudERhdGEoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY2NvdW50cyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRBY2NvdW50c0RhdGEoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldEFjY291bnRzRGF0YSgpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdBY2NvdW50RGF0YScsIEpTT04uc3RyaW5naWZ5KHRoaXMuYWNjb3VudHMpKTtcclxuICAgIHRoaXMuYWNjb3VudHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50LmlzRGVmYXVsdEFjY291bnQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQWNjb3VudDogYW55ID0ge1xyXG4gICAgICAgICAgdWlkOiBlbGVtZW50LnVpZFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2lzQUNjb3VudFNlbGVjdGVkJykgIT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VsZWN0ZWRBY2NvdXQnLCBKU09OLnN0cmluZ2lmeShzZWxlY3RlZEFjY291bnQpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maW5kU3RvcmVTZXJ2aWNlLmhvbWVCcmFuY2hBcGkoZWxlbWVudC5icmFuY2hQT1MpO1xyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnJhbmNoRGV0YWlscycpID09PSBudWxsKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYnJhbmNoRGV0YWlscycsIEpTT04uc3RyaW5naWZ5KGVsZW1lbnQuYnJhbmNoUE9TKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkdXNlckRhdGEgJiYgdGhpcy5zZWxlY3RlZHVzZXJEYXRhLm5hbWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZHVzZXJEYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2VsZWN0ZWRBY2NvdXQnKSB8fCAne30nKTtcclxuICAgICAgdGhpcy5hY2NvdW50cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC51aWQgPT0gdGhpcy5zZWxlY3RlZHVzZXJEYXRhLnVpZCkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZHVzZXJEYXRhID0gZWxlbWVudDtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY2hpbGRyZW4gJiYgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChjaGlsZC51aWQgPT0gdGhpcy5zZWxlY3RlZHVzZXJEYXRhLnVpZClcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IGNoaWxkO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWNjb3VudHMuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlzRGVmYXVsdEFjY291bnQgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZHVzZXJEYXRhID0gZWxlO1xyXG4gICAgICAgICAgcmV0dXJuIGVsZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZWxlPy5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZC5pc0RlZmF1bHRBY2NvdW50ID09IHRydWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlckRhdGEgPSBjaGlsZDtcclxuICAgICAgICAgICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY2hpbGQ/LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkcmVuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbi5pc0RlZmF1bHRBY2NvdW50ID09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZHVzZXJEYXRhID0gY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnJhbmNoRGV0YWlscycpID09PSBudWxsKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2JyYW5jaERldGFpbHMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkdXNlckRhdGEuYnJhbmNoUE9TKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS5pc0RlZmF1bHRBY2NvdW50ID09IHRydWUpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZEFjY291bnQ6IGFueSA9IHtcclxuICAgICAgICAgIHVpZDogdGhpcy5zZWxlY3RlZHVzZXJEYXRhLnVpZFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2lzQUNjb3VudFNlbGVjdGVkJykgIT0gJ3RydWUnKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VsZWN0ZWRBY2NvdXQnLCBKU09OLnN0cmluZ2lmeShzZWxlY3RlZEFjY291bnQpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maW5kU3RvcmVTZXJ2aWNlLmhvbWVCcmFuY2hBcGkodGhpcy5zZWxlY3RlZHVzZXJEYXRhLmJyYW5jaFBPUyk7XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJykgPT09IG51bGwpIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdicmFuY2hEZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZHVzZXJEYXRhLmJyYW5jaFBPUykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpbmRTdG9yZVNlcnZpY2UuaG9tZUJyYW5jaEFwaSh0aGlzLnNlbGVjdGVkdXNlckRhdGEuYnJhbmNoUE9TKTsgXHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEFjY291bnROYW1lKGRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRBY2NvdW50OiBhbnkgPSB7XHJcbiAgICAgIHVpZDogZGF0YS51aWRcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IGRhdGE7XHJcbiAgICB0aGlzLmlzQWNjb3VudENoYW5nZWQgPSB0cnVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkQWNjb3V0JywgSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRBY2NvdW50KSk7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnYnJhbmNoRGV0YWlscycpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2JyYW5jaERldGFpbHMnLCBKU09OLnN0cmluZ2lmeShkYXRhLmJyYW5jaFBPUykpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2lzQUNjb3VudFNlbGVjdGVkJywgJ3RydWUnKTtcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGVTZWxlY3RlZFVzZXIoZGF0YSkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIGxldCBicmFuY2hEZXRhaWxzID0gZGF0YS5icmFuY2hQT1M7XHJcbiAgICAgIHRoaXMuZmluZFN0b3JlU2VydmljZS5ob21lQnJhbmNoQXBpKGJyYW5jaERldGFpbHMpO1xyXG4gICAgICB0aGlzLnNob3dUb2FzdCA9IHRydWU7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzcGFydGFjdXPimr9kaW1vbmQtc3Bh4pq/Y2FydCcpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gICAgICB9LCAxMDAwKTtcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuICBjbG9zZVRvYXN0KCkge1xyXG4gICAgdGhpcy5zaG93VG9hc3QgPSBmYWxzZTtcclxuICAgIHJldHVybjtcclxuICB9XHJcbn1cclxuXHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwibG9hZGluZyBcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmMgXCI+TG9hZGluZyYjODIzMDs8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInJvdyBoZWxsb1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBjb2wtbWQtMTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3VudERyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93biBpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXByZXBlbmQgaW5wdXQtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9pb25pYy1pb3MtdXNlcnMtb3V0bGluZS5zdmdcIiBjbGFzcz1cInctMjBcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBjdXN0b20taW5wdXQgcG9zaXRpb24tcmVsYXRpdmVcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJicmFuY2hBY2NvdW50RHJvcGRvd25cIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cclxuXHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRVc2VyICYmICFzZWxlY3RlZHVzZXJEYXRhPy5uYW1lXCIgY2xhc3M9XCJhY2NvdW50TmFtZVwiPiB7e3NlbGVjdGVkVXNlclswXT8ubmFtZX19IDwvc3Bhbj5cclxuXHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwic2VsZWN0ZWR1c2VyRGF0YSAmJiBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lXCIgIGNsYXNzPVwiYWNjb3VudE5hbWVcIj57e3NlbGVjdGVkdXNlckRhdGE/Lm5hbWV9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBjdXN0b20tYXJyb3dcIj48L2k+XHJcblx0XHRcdFx0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duTWVudUJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRhdGEgb2YgYWNjb3VudHNcIiBjbGFzcz1cInBhcmVudC1kcm9wZG93bi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXRBY2NvdW50TmFtZShkYXRhKVwiIFtuZ0NsYXNzXT1cInsnaGlnaGxpZ2h0JzpkYXRhLm5hbWUgPT0gc2VsZWN0ZWR1c2VyRGF0YT8ubmFtZSB8fCBkYXRhLmlzRGVmYXVsdEFjY291bnQgJiYgIWlzQWNjb3VudENoYW5nZWR9XCIgY2xhc3M9XCJsYWJlbE9uZUNoaWxkIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50ZGF0YVwiPiB7e2RhdGEubmFtZX19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnRJY29uXCI+IFxyXG5cdFx0XHRcdFx0XHRcdFx0PGltZyAqbmdJZj1cImRhdGEuaXNEZWZhdWx0QWNjb3VudCAmJiAhaXNBY2NvdW50Q2hhbmdlZFwiIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvU2VsZWN0ZWQgaWNvbi5zdmdcIiBjbGFzcz1cInNlbGVjdEljb25cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxpbWcgKm5nSWY9XCJkYXRhLm5hbWUgPT0gc2VsZWN0ZWR1c2VyRGF0YT8ubmFtZVwiIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvU2VsZWN0ZWQgaWNvbi5zdmdcIiBjbGFzcz1cInNlbGVjdEljb25cIj5cclxuXHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlsZC1tZW51XCIgKm5nSWY9XCJkYXRhPy5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGRhdGE/LmNoaWxkcmVuXCIgY2xhc3M9XCJjaGlsZC1kcm9wZG93bi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldEFjY291bnROYW1lKGNoaWxkKVwiIFtuZ0NsYXNzXT1cInsnaGlnaGxpZ2h0JzpjaGlsZC5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWV9XCIgY2xhc3M9XCJsYWJlbFR3b0NoaWxkIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY291bnRkYXRhXCI+e3tjaGlsZC5uYW1lfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50SWNvblwiPjxpbWcgKm5nSWY9XCJjaGlsZC5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWVcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImNoaWxkLmlzRGVmYXVsdEFjY291bnQgJiYgIWlzQWNjb3VudENoYW5nZWRcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQgICAgICAgIDxpbWcgKm5nSWY9XCJjaGlsZC5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWVcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hpbGQ/LmNoaWxkcmVuPy5sZW5ndGggPiAwXCIgY2xhc3M9XCJzdWJjaGlsZC1tZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdWJDaGlsZCBvZiBjaGlsZC5jaGlsZHJlblwiIGNsYXNzPVwic3ViZHJvcGRvd24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldEFjY291bnROYW1lKHN1YkNoaWxkKVwiIFtuZ0NsYXNzXT1cInsnaGlnaGxpZ2h0JzpzdWJDaGlsZC5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWV9XCIgY2xhc3M9XCJsYWJlbFRocmVlQ2hpbGQgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50ZGF0YVwiPnt7c3ViQ2hpbGQubmFtZX19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50SWNvblwiPjxpbWcgKm5nSWY9XCJzdWJDaGlsZC5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWVcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwic3ViQ2hpbGQuaXNEZWZhdWx0QWNjb3VudCAmJiAhaXNBY2NvdW50Q2hhbmdlZFwiIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvU2VsZWN0ZWQgaWNvbi5zdmdcIiBjbGFzcz1cInNlbGVjdEljb25cIj5cclxuXHRcdFx0XHRcdFx0XHRcdCAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwic3ViQ2hpbGQubmFtZSA9PSBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lXCIgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9TZWxlY3RlZCBpY29uLnN2Z1wiIGNsYXNzPVwic2VsZWN0SWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLWxnLTcgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgPGFwcC1maW5kLXN0b3JlPjwvYXBwLWZpbmQtc3RvcmU+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbjwvZGl2PlxyXG48bmdiLXRvYXN0ICpuZ0lmPVwic2hvd1RvYXN0XCIgW2F1dG9oaWRlXT1cInRydWVcIiBbZGVsYXldPVwiNDAwMFwiPlxyXG4gICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL0FjdGl2YXRlSWNvbi5zdmdcIj4gIEFjY291bnQgaGFzIGJlZW4gY2hhbmdlZFxyXG4gICAgPGkgY2xhc3M9XCJpY29uLWNsb3NlIHRvYXN0LWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImNsb3NlVG9hc3QoKVwiPjwvaT5cclxuPC9uZ2ItdG9hc3Q+XHJcbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2FjY291bnQtZHJvcGRvd24vYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2FjY291bnQtZHJvcGRvd24vYWNjb3VudC1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVXZDLE1BQU0sT0FBTyx3QkFBd0I7SUFRbkMsWUFDUyxPQUErQixFQUM5QiwyQkFBNEQsRUFDNUQsZ0JBQWtDO1FBRm5DLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQzlCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBaUM7UUFDNUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVRyQyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFckQscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFLdkIsQ0FBQztJQUVDLFFBQVE7O1lBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM5RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7WUFDbkYsSUFBSSxDQUFDLDJCQUEyQixDQUFD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O2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2lCQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbE1lc3NhZ2VTZXJ2aWNlLCBHbG9iYWxNZXNzYWdlVHlwZSB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaW5kU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmluZC1zdG9yZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXItYWNjb3VudC1kZXRhaWwtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudERyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vYWNjb3VudC1kcm9wZG93bi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFjY291bnQtZHJvcGRvd24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvdW50LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hY2NvdW50LWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY291bnREcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBhY2NvdW50czogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRVc2VyOiBhbnk7XHJcbiAgc2hvd1dhaXRDdXJzb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBzZWxlY3RlZHVzZXJEYXRhOiBhbnk7XHJcbiAgaXNBY2NvdW50Q2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dUb2FzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlcnZpY2U6IEFjY291bnREcm9wZG93blNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpVXNlckFjY291bnREZXRhaWxzU2VydmljZTogVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgZmluZFN0b3JlU2VydmljZTogRmluZFN0b3JlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgaXNMb2FkZWQgPSBhd2FpdCB0aGlzLmZpVXNlckFjY291bnREZXRhaWxzU2VydmljZS5pc0Vudmlvcm5tZW50TG9hZGVkKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkdXNlckRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzZWxlY3RlZEFjY291dCcpIHx8ICd7fScpO1xyXG4gICAgdGhpcy5maVVzZXJBY2NvdW50RGV0YWlsc1NlcnZpY2UuZ2V0VXNlckFjY291bnQoKS5zdWJzY3JpYmUoKHVzZXI6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodXNlcikge1xyXG4gICAgICAgIGNvbnN0IHVzZXJuYW1lID0gdXNlci51aWQ/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgY29uc3QgY2FydE9iajogYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NwYXJ0YWN1c+Kav2RpbW9uZC1zcGHimr9jYXJ0Jyk7XHJcbiAgICAgICAgY29uc3QgY2FydElkID0gSlNPTi5wYXJzZShjYXJ0T2JqKT8uYWN0aXZlO1xyXG4gICAgICAgIGlmIChjYXJ0SWQpIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5nZXRBY2NvdW50RGF0YXdpdGhDYXJ0SWQoY2FydElkKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY2NvdW50cyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRBY2NvdW50c0RhdGEoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldEFjY291bnREYXRhKCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWNjb3VudHMgPSBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0QWNjb3VudHNEYXRhKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBnZXRBY2NvdW50c0RhdGEoKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnQWNjb3VudERhdGEnLCBKU09OLnN0cmluZ2lmeSh0aGlzLmFjY291bnRzKSk7XHJcbiAgICB0aGlzLmFjY291bnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudC5pc0RlZmF1bHRBY2NvdW50ID09IHRydWUpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZEFjY291bnQ6IGFueSA9IHtcclxuICAgICAgICAgIHVpZDogZWxlbWVudC51aWRcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpc0FDY291bnRTZWxlY3RlZCcpICE9ICd0cnVlJykge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkQWNjb3V0JywgSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRBY2NvdW50KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmluZFN0b3JlU2VydmljZS5ob21lQnJhbmNoQXBpKGVsZW1lbnQuYnJhbmNoUE9TKTtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2JyYW5jaERldGFpbHMnKSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2JyYW5jaERldGFpbHMnLCBKU09OLnN0cmluZ2lmeShlbGVtZW50LmJyYW5jaFBPUykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZHVzZXJEYXRhICYmIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS5uYW1lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NlbGVjdGVkQWNjb3V0JykgfHwgJ3t9Jyk7XHJcbiAgICAgIHRoaXMuYWNjb3VudHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQudWlkID09IHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS51aWQpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNoaWxkcmVuICYmIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoY2hpbGQudWlkID09IHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS51aWQpXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkdXNlckRhdGEgPSBjaGlsZDtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjY291bnRzLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZS5pc0RlZmF1bHRBY2NvdW50ID09IHRydWUpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IGVsZTtcclxuICAgICAgICAgIHJldHVybiBlbGU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVsZT8uY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQuaXNEZWZhdWx0QWNjb3VudCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZHVzZXJEYXRhID0gY2hpbGQ7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNoaWxkPy5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZHJlbjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW4uaXNEZWZhdWx0QWNjb3VudCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWR1c2VyRGF0YSA9IGNoaWxkcmVuO1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2JyYW5jaERldGFpbHMnKSA9PT0gbnVsbCkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdicmFuY2hEZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZHVzZXJEYXRhLmJyYW5jaFBPUykpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkdXNlckRhdGEuaXNEZWZhdWx0QWNjb3VudCA9PSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRBY2NvdW50OiBhbnkgPSB7XHJcbiAgICAgICAgICB1aWQ6IHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS51aWRcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpc0FDY291bnRTZWxlY3RlZCcpICE9ICd0cnVlJykge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3NlbGVjdGVkQWNjb3V0JywgSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRBY2NvdW50KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmluZFN0b3JlU2VydmljZS5ob21lQnJhbmNoQXBpKHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS5icmFuY2hQT1MpO1xyXG4gICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnJhbmNoRGV0YWlscycpID09PSBudWxsKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYnJhbmNoRGV0YWlscycsIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWR1c2VyRGF0YS5icmFuY2hQT1MpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maW5kU3RvcmVTZXJ2aWNlLmhvbWVCcmFuY2hBcGkodGhpcy5zZWxlY3RlZHVzZXJEYXRhLmJyYW5jaFBPUyk7IFxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRBY2NvdW50TmFtZShkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQWNjb3VudDogYW55ID0ge1xyXG4gICAgICB1aWQ6IGRhdGEudWlkXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkdXNlckRhdGEgPSBkYXRhO1xyXG4gICAgdGhpcy5pc0FjY291bnRDaGFuZ2VkID0gdHJ1ZTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzZWxlY3RlZEFjY291dCcsIEpTT04uc3RyaW5naWZ5KHNlbGVjdGVkQWNjb3VudCkpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2JyYW5jaERldGFpbHMnKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdicmFuY2hEZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkoZGF0YS5icmFuY2hQT1MpKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdpc0FDY291bnRTZWxlY3RlZCcsICd0cnVlJyk7XHJcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlU2VsZWN0ZWRVc2VyKGRhdGEpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICBsZXQgYnJhbmNoRGV0YWlscyA9IGRhdGEuYnJhbmNoUE9TO1xyXG4gICAgICB0aGlzLmZpbmRTdG9yZVNlcnZpY2UuaG9tZUJyYW5jaEFwaShicmFuY2hEZXRhaWxzKTtcclxuICAgICAgdGhpcy5zaG93VG9hc3QgPSB0cnVlO1xyXG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3BhcnRhY3Vz4pq/ZGltb25kLXNwYeKav2NhcnQnKTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgfSwgMTAwMCk7XHJcblxyXG4gICAgfSlcclxuICB9XHJcbiAgY2xvc2VUb2FzdCgpIHtcclxuICAgIHRoaXMuc2hvd1RvYXN0ID0gZmFsc2U7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiPGRpdiBjbGFzcz1cImxvYWRpbmcgXCIgKm5nSWY9XCJzaG93V2FpdEN1cnNvciB8IGFzeW5jIFwiPkxvYWRpbmcmIzgyMzA7PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJyb3cgaGVsbG9cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY291bnREcm9wZG93blwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1wcmVwZW5kIGlucHV0LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW9uaWMtaW9zLXVzZXJzLW91dGxpbmUuc3ZnXCIgY2xhc3M9XCJ3LTIwXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gY3VzdG9tLWlucHV0IHBvc2l0aW9uLXJlbGF0aXZlXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiYnJhbmNoQWNjb3VudERyb3Bkb3duXCIgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XHJcblx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cInNlbGVjdGVkVXNlciAmJiAhc2VsZWN0ZWR1c2VyRGF0YT8ubmFtZVwiIGNsYXNzPVwiYWNjb3VudE5hbWVcIj4ge3tzZWxlY3RlZFVzZXJbMF0/Lm5hbWV9fSA8L3NwYW4+XHJcblx0XHRcdFx0XHQ8c3BhbiAqbmdJZj1cInNlbGVjdGVkdXNlckRhdGEgJiYgc2VsZWN0ZWR1c2VyRGF0YT8ubmFtZVwiICBjbGFzcz1cImFjY291bnROYW1lXCI+e3tzZWxlY3RlZHVzZXJEYXRhPy5uYW1lfX08L3NwYW4+XHJcblx0XHRcdFx0XHQ8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvd24gY3VzdG9tLWFycm93XCI+PC9pPlxyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVCdXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXRhIG9mIGFjY291bnRzXCIgY2xhc3M9XCJwYXJlbnQtZHJvcGRvd24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ2V0QWNjb3VudE5hbWUoZGF0YSlcIiBbbmdDbGFzc109XCJ7J2hpZ2hsaWdodCc6ZGF0YS5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWUgfHwgZGF0YS5pc0RlZmF1bHRBY2NvdW50ICYmICFpc0FjY291bnRDaGFuZ2VkfVwiIGNsYXNzPVwibGFiZWxPbmVDaGlsZCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudGRhdGFcIj4ge3tkYXRhLm5hbWV9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50SWNvblwiPiBcclxuXHRcdFx0XHRcdFx0XHRcdDxpbWcgKm5nSWY9XCJkYXRhLmlzRGVmYXVsdEFjY291bnQgJiYgIWlzQWNjb3VudENoYW5nZWRcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aW1nICpuZ0lmPVwiZGF0YS5uYW1lID09IHNlbGVjdGVkdXNlckRhdGE/Lm5hbWVcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+XHJcblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpbGQtbWVudVwiICpuZ0lmPVwiZGF0YT8uY2hpbGRyZW4/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaGlsZCBvZiBkYXRhPy5jaGlsZHJlblwiIGNsYXNzPVwiY2hpbGQtZHJvcGRvd24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXRBY2NvdW50TmFtZShjaGlsZClcIiBbbmdDbGFzc109XCJ7J2hpZ2hsaWdodCc6Y2hpbGQubmFtZSA9PSBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lfVwiIGNsYXNzPVwibGFiZWxUd29DaGlsZCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvdW50ZGF0YVwiPnt7Y2hpbGQubmFtZX19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudEljb25cIj48aW1nICpuZ0lmPVwiY2hpbGQubmFtZSA9PSBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lXCIgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9TZWxlY3RlZCBpY29uLnN2Z1wiIGNsYXNzPVwic2VsZWN0SWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJjaGlsZC5pc0RlZmF1bHRBY2NvdW50ICYmICFpc0FjY291bnRDaGFuZ2VkXCIgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9TZWxlY3RlZCBpY29uLnN2Z1wiIGNsYXNzPVwic2VsZWN0SWNvblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0ICAgICAgICA8aW1nICpuZ0lmPVwiY2hpbGQubmFtZSA9PSBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lXCIgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9TZWxlY3RlZCBpY29uLnN2Z1wiIGNsYXNzPVwic2VsZWN0SWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNoaWxkPy5jaGlsZHJlbj8ubGVuZ3RoID4gMFwiIGNsYXNzPVwic3ViY2hpbGQtbWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3ViQ2hpbGQgb2YgY2hpbGQuY2hpbGRyZW5cIiBjbGFzcz1cInN1YmRyb3Bkb3duLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXRBY2NvdW50TmFtZShzdWJDaGlsZClcIiBbbmdDbGFzc109XCJ7J2hpZ2hsaWdodCc6c3ViQ2hpbGQubmFtZSA9PSBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lfVwiIGNsYXNzPVwibGFiZWxUaHJlZUNoaWxkIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudGRhdGFcIj57e3N1YkNoaWxkLm5hbWV9fSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3VudEljb25cIj48aW1nICpuZ0lmPVwic3ViQ2hpbGQubmFtZSA9PSBzZWxlY3RlZHVzZXJEYXRhPy5uYW1lXCIgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9TZWxlY3RlZCBpY29uLnN2Z1wiIGNsYXNzPVwic2VsZWN0SWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cInN1YkNoaWxkLmlzRGVmYXVsdEFjY291bnQgJiYgIWlzQWNjb3VudENoYW5nZWRcIiBzcmM9XCIuLi8uLi8uLi9hc3NldHMvaW1hZ2VzL1NlbGVjdGVkIGljb24uc3ZnXCIgY2xhc3M9XCJzZWxlY3RJY29uXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cInN1YkNoaWxkLm5hbWUgPT0gc2VsZWN0ZWR1c2VyRGF0YT8ubmFtZVwiIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvU2VsZWN0ZWQgaWNvbi5zdmdcIiBjbGFzcz1cInNlbGVjdEljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1sZy03IGNvbC1tZC0xMlwiPlxyXG4gICAgICAgIDxhcHAtZmluZC1zdG9yZT48L2FwcC1maW5kLXN0b3JlPlxyXG4gICAgPC9kaXY+IC0tPlxyXG48L2Rpdj5cclxuPG5nYi10b2FzdCAqbmdJZj1cInNob3dUb2FzdFwiIFthdXRvaGlkZV09XCJ0cnVlXCIgW2RlbGF5XT1cIjQwMDBcIj5cclxuICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9BY3RpdmF0ZUljb24uc3ZnXCI+ICBBY2NvdW50IGhhcyBiZWVuIGNoYW5nZWRcclxuICAgIDxpIGNsYXNzPVwiaWNvbi1jbG9zZSB0b2FzdC1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZVRvYXN0KClcIj48L2k+XHJcbjwvbmdiLXRvYXN0PlxyXG4iXX0=
@@ -1,13 +1,16 @@
1
+ import { __awaiter } from "tslib";
1
2
  import { Component } from '@angular/core';
2
3
  import { BehaviorSubject } from 'rxjs';
3
4
  import { storeLocations } from '../constants/general';
4
5
  import { DIRECTION_URL } from '../services/endPointURL';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../services/find-store.service";
7
- import * as i2 from "@angular/common";
8
+ import * as i2 from "../services/user-account-detail-service.service";
9
+ import * as i3 from "@angular/common";
8
10
  export class FindStoreComponent {
9
- constructor(findStoreService, cd) {
11
+ constructor(findStoreService, fiUserAccountDetailsService, cd) {
10
12
  this.findStoreService = findStoreService;
13
+ this.fiUserAccountDetailsService = fiUserAccountDetailsService;
11
14
  this.cd = cd;
12
15
  this.storeApiSubscried = false;
13
16
  this.homeBranchAddress = {};
@@ -26,21 +29,24 @@ export class FindStoreComponent {
26
29
  };
27
30
  }
28
31
  ngOnInit() {
29
- this.findStoreService.homeBranch.subscribe((data) => {
30
- setTimeout(() => {
31
- var _a;
32
- if (data) {
33
- if (localStorage.getItem('branchDetails')) {
34
- this.homeBranchData = localStorage.getItem('branchDetails');
35
- this.branchName = (_a = JSON.parse(this.homeBranchData)) === null || _a === void 0 ? void 0 : _a.displayName;
36
- this.cd.markForCheck();
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const isLoaded = yield this.fiUserAccountDetailsService.isEnviornmentLoaded();
34
+ this.findStoreService.homeBranch.subscribe((data) => {
35
+ setTimeout(() => {
36
+ var _a;
37
+ if (data) {
38
+ if (localStorage.getItem('branchDetails')) {
39
+ this.homeBranchData = localStorage.getItem('branchDetails');
40
+ this.branchName = (_a = JSON.parse(this.homeBranchData)) === null || _a === void 0 ? void 0 : _a.displayName;
41
+ this.cd.markForCheck();
42
+ }
43
+ else {
44
+ this.branchName = data === null || data === void 0 ? void 0 : data.displayName;
45
+ this.cd.markForCheck();
46
+ }
37
47
  }
38
- else {
39
- this.branchName = data === null || data === void 0 ? void 0 : data.displayName;
40
- this.cd.markForCheck();
41
- }
42
- }
43
- }, 100);
48
+ }, 100);
49
+ });
44
50
  });
45
51
  }
46
52
  getStores() {
@@ -81,8 +87,8 @@ export class FindStoreComponent {
81
87
  }
82
88
  }
83
89
  }
84
- FindStoreComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FindStoreComponent, deps: [{ token: i1.FindStoreService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
85
- FindStoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FindStoreComponent, selector: "app-find-store", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-lg-12 col-sm-12\">\r\n <div class=\"input-group storeFinder\">\r\n <div class=\"input-group-prepend input-icon po\">\r\n <img src=\"../../../assets/images/ionic-ios-location-outline.svg\" class=\"w-20\">\r\n </div>\r\n <button class=\"btn custom-input position-relative text-left\" type=\"button\" data-toggle=\"modal\" data-target=\"#storeFinderModal\" (click)=\"getStores()\">\r\n {{branchName}}\t\t\t\r\n </button>\r\n <p id=\"demo\"></p>\r\n <span class=\"placeholder-icon\" (click)=\"getLocation()\">\r\n <img src=\"../../../assets/images/ionic-ios-my-location.svg\" class=\"w-20\">\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade modal-right\" id=\"storeFinderModal\" role=\"dialog\" aria-labelledby=\"storeFinderLabel\" aria-hidden=\"true\">\r\n <div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\" container\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{locationModalConstantsData.homeBranch}}</h5>\r\n <i class=\"icon-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body px-2\">\r\n <div class=\"selected-location\">\r\n <address class=\"mb-0\">\r\n <h6>{{homeBranchAddress?.displayName}} <span>({{homeBranchAddress?.businessCategory}})</span></h6>\r\n <p class=\"mb-2\">\r\n {{homeBranchAddress?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{homeBranchAddress?.address?.email}}\">{{homeBranchAddress?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\"> Phone : </span><a href=\"tel:{{homeBranchAddress?.address?.phone}}\">{{homeBranchAddress?.address?.phone}}</a>\r\n </p>\r\n <span class=\"homeDirection\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(homeBranchAddress?.geoPoint.latitude, homeBranchAddress?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n </span>\r\n </address>\r\n </div>\r\n <div class=\"nearest-branch\">\r\n <h5>Branches</h5>\r\n <ul class=\"nav nav-tabs\" id=\"myTab\" role=\"tablist\">\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link active d-inline-block pl-1\" id=\"all-tab\" data-toggle=\"tab\" href=\"#all\" role=\"tab\" aria-controls=\"all\" aria-selected=\"true\">{{locationModalConstantsData.allTab}}</a>\r\n </li>\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link d-inline-block pl-1\" id=\"north-tab\" data-toggle=\"tab\" href=\"#north\" role=\"tab\" aria-controls=\"north\" aria-selected=\"false\">{{locationModalConstantsData.northIslandTab}}</a>\r\n </li>\r\n <li class=\"nav-item \">\r\n <a class=\"nav-link d-inline-block pl-1\" id=\"south-tab\" data-toggle=\"tab\" href=\"#south\" role=\"tab\" aria-controls=\"south\" aria-selected=\"false\">{{locationModalConstantsData.southIslandTab}}</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content mt-2\" id=\"myTabContent\">\r\n <div class=\"tab-pane fade show active\" id=\"all\" role=\"tabpanel\" aria-labelledby=\"all-tab\">\r\n <ng-container *ngIf=\"stores && stores?.length; else storesAvalable\">\r\n <address *ngFor=\"let store of stores\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #storesAvalable>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"tab-pane fade\" id=\"north\" role=\"tabpanel\" aria-labelledby=\"north-tab\">\r\n <ng-container *ngIf=\"arrayNorthIsland && arrayNorthIsland?.length>0; else northIsland\">\r\n <address *ngFor=\"let store of arrayNorthIsland\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #northIsland>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"tab-pane fade\" id=\"south\" role=\"tabpanel\" aria-labelledby=\"south-tab\">\r\n <ng-container *ngIf=\"arraySouthIsland && arraySouthIsland?.length>0; else southIsland\">\r\n <address *ngFor=\"let store of arraySouthIsland\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #southIsland>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.storeFinder{max-width:328px}.input-icon{background-color:#6f6f6f;padding:8px 10px}.w-20{width:20px}.custom-input{height:40px;background-color:#393939;border:1px solid #6F6F6F;color:#fff;border-radius:0;padding:.375rem .75rem;font-size:var(--fontsize16);line-height:var(--fontsize22);width:calc(100% - 42px)}.custom-input:hover{color:#fff}.placeholder-icon{position:absolute;right:0;top:0;z-index:4;cursor:pointer;width:40px;height:40px;display:flex}.form-control[type=text]:focus{background-color:#464645}.close{color:#fff}::placeholder{color:#fff}#storeFinderModal .modal-dialog{position:fixed;margin:auto;width:100%;height:100vh;right:0px;max-width:508px;padding-bottom:4.5rem}#storeFinderModal .modal-content{background-color:#393939;color:#fff}#storeFinderModal .modal-content .modal-header{border-bottom:none;padding:3rem .5rem 1rem}#storeFinderModal .modal-content .modal-header .modal-title{font-size:var(--fontsize24);line-height:var(--fontsize24);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .modal-content .modal-header .branch-pop-close{position:absolute;top:20px;right:25px;font-size:1.5rem;cursor:pointer}#storeFinderModal .modal-body{padding:1rem;height:calc(100vh - 88px)}#storeFinderModal .selected-location{background-color:#474747;padding:1rem}#storeFinderModal .selected-location .homeTxtLabel{width:60px;display:inline-block}#storeFinderModal .selected-location address{margin-bottom:0}#storeFinderModal .selected-location address h6{font-size:var(--fontsize18);line-height:var(--fontsize18);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .selected-location address h6 span{font-size:var(--fontsize14)}#storeFinderModal .selected-location address p{font-size:var(--fontsize16);line-height:30px}#storeFinderModal .selected-location address a{color:#fff;text-decoration:underline}#storeFinderModal .selected-location address .homeDirection{cursor:pointer;text-decoration:underline;text-transform:uppercase;font-size:var(--fontsize14);line-height:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .nearest-branch{margin-top:2rem;margin-bottom:3rem}#storeFinderModal .nearest-branch .tab-content .tab-pane{padding-right:1.5rem;overflow-y:auto;height:calc(100vh - 400px)}#storeFinderModal .nearest-branch h5{font-size:var(--fontsize18);line-height:var(--fontsize23);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .nearest-branch h5 span{font-size:var(--fontsize14)}#storeFinderModal .nearest-branch .nav-item{width:calc(100% / 3);text-align:left}#storeFinderModal .nearest-branch .nav-link{font-size:16px;padding-bottom:0;background:#393939;color:#fff}#storeFinderModal .nearest-branch .nav-link.active{border-bottom:4px solid #B61828}#storeFinderModal .nearest-branch address{padding:1rem 0;border-bottom:1px solid #707070}#storeFinderModal .nearest-branch address h5{font-size:var(--fontsize18);line-height:var(--fontsize18);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .nearest-branch address p{font-size:var(--fontsize16);line-height:30px}#storeFinderModal .nearest-branch address a{color:#fff;text-decoration:underline}#storeFinderModal .nearest-branch .direction{text-transform:uppercase}#storeFinderModal .nearest-branch .direction a{font-family:\"Arial Bold\",sans-serif;text-decoration:underline;font-size:var(--fontsize14)}#storeFinderModal .nearest-branch .select-btn{font-family:\"Arial Bold\",sans-serif;height:44px;width:132px;font-size:var(--fontsize14);line-height:var(--fontsize16);background-color:#b61828;color:#fff;border:none}.noDataAvailableLabel{font-size:var(--fontsize14)}.contactNumber{min-width:10em;font-size:var(--fontsize16);padding-top:2px;line-height:var(--fontsize40)}.contactNumber .contactNum i{font-size:var(--fontsize20)}.contactNumber .contactNum a{color:#fff;text-decoration:underline}@media screen and (max-width: 767px){#storeFinderModal .modal-content .modal-header .modal-title{font-size:1.5rem}}@media screen and (max-width: 576px){.storeFinder{max-width:100%}}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i2.AsyncPipe } });
90
+ FindStoreComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FindStoreComponent, deps: [{ token: i1.FindStoreService }, { token: i2.UserAccountDetailServiceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
+ FindStoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FindStoreComponent, selector: "app-find-store", ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-lg-12 col-sm-12\">\r\n <div class=\"input-group storeFinder\">\r\n <div class=\"input-group-prepend input-icon po\">\r\n <img src=\"../../../assets/images/ionic-ios-location-outline.svg\" class=\"w-20\">\r\n </div>\r\n <button class=\"btn custom-input position-relative text-left\" type=\"button\" data-toggle=\"modal\" data-target=\"#storeFinderModal\" (click)=\"getStores()\">\r\n {{branchName}}\t\t\t\r\n </button>\r\n <p id=\"demo\"></p>\r\n <span class=\"placeholder-icon\" (click)=\"getLocation()\">\r\n <img src=\"../../../assets/images/ionic-ios-my-location.svg\" class=\"w-20\">\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade modal-right\" id=\"storeFinderModal\" role=\"dialog\" aria-labelledby=\"storeFinderLabel\" aria-hidden=\"true\">\r\n <div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\" container\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{locationModalConstantsData.homeBranch}}</h5>\r\n <i class=\"icon-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body px-2\">\r\n <div class=\"selected-location\">\r\n <address class=\"mb-0\">\r\n <h6>{{homeBranchAddress?.displayName}} <span>({{homeBranchAddress?.businessCategory}})</span></h6>\r\n <p class=\"mb-2\">\r\n {{homeBranchAddress?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{homeBranchAddress?.address?.email}}\">{{homeBranchAddress?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\"> Phone : </span><a href=\"tel:{{homeBranchAddress?.address?.phone}}\">{{homeBranchAddress?.address?.phone}}</a>\r\n </p>\r\n <span class=\"homeDirection\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(homeBranchAddress?.geoPoint.latitude, homeBranchAddress?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n </span>\r\n </address>\r\n </div>\r\n <div class=\"nearest-branch\">\r\n <h5>Branches</h5>\r\n <ul class=\"nav nav-tabs\" id=\"myTab\" role=\"tablist\">\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link active d-inline-block pl-1\" id=\"all-tab\" data-toggle=\"tab\" href=\"#all\" role=\"tab\" aria-controls=\"all\" aria-selected=\"true\">{{locationModalConstantsData.allTab}}</a>\r\n </li>\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link d-inline-block pl-1\" id=\"north-tab\" data-toggle=\"tab\" href=\"#north\" role=\"tab\" aria-controls=\"north\" aria-selected=\"false\">{{locationModalConstantsData.northIslandTab}}</a>\r\n </li>\r\n <li class=\"nav-item \">\r\n <a class=\"nav-link d-inline-block pl-1\" id=\"south-tab\" data-toggle=\"tab\" href=\"#south\" role=\"tab\" aria-controls=\"south\" aria-selected=\"false\">{{locationModalConstantsData.southIslandTab}}</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content mt-2\" id=\"myTabContent\">\r\n <div class=\"tab-pane fade show active\" id=\"all\" role=\"tabpanel\" aria-labelledby=\"all-tab\">\r\n <ng-container *ngIf=\"stores && stores?.length; else storesAvalable\">\r\n <address *ngFor=\"let store of stores\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #storesAvalable>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"tab-pane fade\" id=\"north\" role=\"tabpanel\" aria-labelledby=\"north-tab\">\r\n <ng-container *ngIf=\"arrayNorthIsland && arrayNorthIsland?.length>0; else northIsland\">\r\n <address *ngFor=\"let store of arrayNorthIsland\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #northIsland>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"tab-pane fade\" id=\"south\" role=\"tabpanel\" aria-labelledby=\"south-tab\">\r\n <ng-container *ngIf=\"arraySouthIsland && arraySouthIsland?.length>0; else southIsland\">\r\n <address *ngFor=\"let store of arraySouthIsland\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #southIsland>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.storeFinder{max-width:328px}.input-icon{background-color:#6f6f6f;padding:8px 10px}.w-20{width:20px}.custom-input{height:40px;background-color:#393939;border:1px solid #6F6F6F;color:#fff;border-radius:0;padding:.375rem .75rem;font-size:var(--fontsize16);line-height:var(--fontsize22);width:calc(100% - 42px)}.custom-input:hover{color:#fff}.placeholder-icon{position:absolute;right:0;top:0;z-index:4;cursor:pointer;width:40px;height:40px;display:flex}.form-control[type=text]:focus{background-color:#464645}.close{color:#fff}::placeholder{color:#fff}#storeFinderModal .modal-dialog{position:fixed;margin:auto;width:100%;height:100vh;right:0px;max-width:508px;padding-bottom:4.5rem}#storeFinderModal .modal-content{background-color:#393939;color:#fff}#storeFinderModal .modal-content .modal-header{border-bottom:none;padding:3rem .5rem 1rem}#storeFinderModal .modal-content .modal-header .modal-title{font-size:var(--fontsize24);line-height:var(--fontsize24);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .modal-content .modal-header .branch-pop-close{position:absolute;top:20px;right:25px;font-size:1.5rem;cursor:pointer}#storeFinderModal .modal-body{padding:1rem;height:calc(100vh - 88px)}#storeFinderModal .selected-location{background-color:#474747;padding:1rem}#storeFinderModal .selected-location .homeTxtLabel{width:60px;display:inline-block}#storeFinderModal .selected-location address{margin-bottom:0}#storeFinderModal .selected-location address h6{font-size:var(--fontsize18);line-height:var(--fontsize18);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .selected-location address h6 span{font-size:var(--fontsize14)}#storeFinderModal .selected-location address p{font-size:var(--fontsize16);line-height:30px}#storeFinderModal .selected-location address a{color:#fff;text-decoration:underline}#storeFinderModal .selected-location address .homeDirection{cursor:pointer;text-decoration:underline;text-transform:uppercase;font-size:var(--fontsize14);line-height:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .nearest-branch{margin-top:2rem;margin-bottom:3rem}#storeFinderModal .nearest-branch .tab-content .tab-pane{padding-right:1.5rem;overflow-y:auto;height:calc(100vh - 400px)}#storeFinderModal .nearest-branch h5{font-size:var(--fontsize18);line-height:var(--fontsize23);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .nearest-branch h5 span{font-size:var(--fontsize14)}#storeFinderModal .nearest-branch .nav-item{width:calc(100% / 3);text-align:left}#storeFinderModal .nearest-branch .nav-link{font-size:16px;padding-bottom:0;background:#393939;color:#fff}#storeFinderModal .nearest-branch .nav-link.active{border-bottom:4px solid #B61828}#storeFinderModal .nearest-branch address{padding:1rem 0;border-bottom:1px solid #707070}#storeFinderModal .nearest-branch address h5{font-size:var(--fontsize18);line-height:var(--fontsize18);font-family:\"Arial Bold\",sans-serif}#storeFinderModal .nearest-branch address p{font-size:var(--fontsize16);line-height:30px}#storeFinderModal .nearest-branch address a{color:#fff;text-decoration:underline}#storeFinderModal .nearest-branch .direction{text-transform:uppercase}#storeFinderModal .nearest-branch .direction a{font-family:\"Arial Bold\",sans-serif;text-decoration:underline;font-size:var(--fontsize14)}#storeFinderModal .nearest-branch .select-btn{font-family:\"Arial Bold\",sans-serif;height:44px;width:132px;font-size:var(--fontsize14);line-height:var(--fontsize16);background-color:#b61828;color:#fff;border:none}.noDataAvailableLabel{font-size:var(--fontsize14)}.contactNumber{min-width:10em;font-size:var(--fontsize16);padding-top:2px;line-height:var(--fontsize40)}.contactNumber .contactNum i{font-size:var(--fontsize20)}.contactNumber .contactNum a{color:#fff;text-decoration:underline}@media screen and (max-width: 767px){#storeFinderModal .modal-content .modal-header .modal-title{font-size:1.5rem}}@media screen and (max-width: 576px){.storeFinder{max-width:100%}}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe } });
86
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FindStoreComponent, decorators: [{
87
93
  type: Component,
88
94
  args: [{
@@ -90,5 +96,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
90
96
  templateUrl: './find-store.component.html',
91
97
  styleUrls: ['./find-store.component.scss']
92
98
  }]
93
- }], ctorParameters: function () { return [{ type: i1.FindStoreService }, { type: i0.ChangeDetectorRef }]; } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zdG9yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2ZpbmQtc3RvcmUvZmluZC1zdG9yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2ZpbmQtc3RvcmUvZmluZC1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFReEQsTUFBTSxPQUFPLGtCQUFrQjtJQW9CN0IsWUFBb0IsZ0JBQWtDLEVBQzdDLEVBQXFCO1FBRFYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUM3QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhCOUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBR25DLHNCQUFpQixHQUFRLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXhCLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3JELHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFFcEIsZUFBVSxHQUFRLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekQsK0JBQTBCLEdBQUcsSUFB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QUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxFQUNELENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQU9ELFdBQVc7UUFDVCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLCtDQUErQyxDQUFDO1NBQzdFO0lBQ0gsQ0FBQzs7Z0hBekZVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHNEQ1ovQixpcVRBcUhNOzRGRHpHTyxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbmRTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maW5kLXN0b3JlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3RvcmVMb2NhdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvZ2VuZXJhbCc7XHJcbmltcG9ydCB7IERJUkVDVElPTl9VUkwgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbmRQb2ludFVSTCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmluZC1zdG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtc3RvcmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtc3RvcmUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmluZFN0b3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgc3RvcmVzOiBhbnk7XHJcbiAgbGF0aXR1ZGU/OiBudW1iZXI7XHJcbiAgbG9uZ2l0dWRlPzogbnVtYmVyO1xyXG4gIHN0b3JlQXBpU3Vic2NyaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgem9vbT86IG51bWJlcjtcclxuICBpc0RlZmF1bHRQT1M6IGFueTtcclxuICBob21lQnJhbmNoQWRkcmVzczogYW55ID0ge307XHJcbiAgcHVibGljIGFjY291bnRMaXN0czogYW55ID0gW107XHJcbiAgYnJhbmNoTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgaG9tZUJyYW5jaERhdGE6IGFueTtcclxuICBicmFuY2hSZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYXJyYXlOb3J0aElzbGFuZDogYW55ID0gW107XHJcbiAgYXJyYXlTb3V0aElzbGFuZDogYW55ID0gW107XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbklkOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImRlbW9cIik7XHJcblxyXG4gIGxvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhID0gbmV3IHN0b3JlTG9jYXRpb25zKCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaW5kU3RvcmVTZXJ2aWNlOiBGaW5kU3RvcmVTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmZpbmRTdG9yZVNlcnZpY2UuaG9tZUJyYW5jaC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJykpIHtcclxuICAgICAgICAgICAgdGhpcy5ob21lQnJhbmNoRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJyk7XHJcbiAgICAgICAgICAgIHRoaXMuYnJhbmNoTmFtZSA9IEpTT04ucGFyc2UodGhpcy5ob21lQnJhbmNoRGF0YSk/LmRpc3BsYXlOYW1lOyBcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmJyYW5jaE5hbWUgPSBkYXRhPy5kaXNwbGF5TmFtZTtcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVzKCkge1xyXG4gICAgY29uc3QgbGF0QW5kbG9uZyA9IHtcclxuICAgICAgbGF0OiB0aGlzLmxhdGl0dWRlLFxyXG4gICAgICBsb25nOiB0aGlzLmxvbmdpdHVkZVxyXG4gICAgfVxyXG4gICAgdGhpcy5maW5kU3RvcmVTZXJ2aWNlLmdldEFsbFN0b3JlcyhsYXRBbmRsb25nKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnN0b3JlcyA9IGRhdGEuc3RvcmVzO1xyXG4gICAgICB0aGlzLnN0b3JlQXBpU3Vic2NyaWVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc0RlZmF1bHRQT1MgPSBkYXRhLnN0b3Jlcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmlzRGVmYXVsdFBPUyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB0aGlzLmhvbWVCcmFuY2hBZGRyZXNzID0gZWxlbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFycmF5Tm9ydGhJc2xhbmQgPSB0aGlzLnN0b3Jlcy5maWx0ZXIoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5pc2xhbmROYW1lID09ICdOb3J0aCBJc2xhbmQnKTtcclxuICAgICAgdGhpcy5hcnJheVNvdXRoSXNsYW5kID0gdGhpcy5zdG9yZXMuZmlsdGVyKChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQuaXNsYW5kTmFtZSA9PSAnU291dGggSXNsYW5kJyk7XHJcbiAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBvcGVuTWFwKGxhdDogbnVtYmVyLCBsb25nOiBudW1iZXIpIHtcclxuICAgIHdpbmRvdy5vcGVuKERJUkVDVElPTl9VUkwudXJsICsgbGF0ICsgJywnICsgbG9uZywgJ19ibGFuaycpO1xyXG4gIH1cclxuXHJcbiAgb25CcmFuY2hDaGFuZ2UoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmZpbmRTdG9yZVNlcnZpY2UuY2hhbmdlQnJhbmNoKGRhdGEubmFtZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoX3Jlc3VsdCkgPT4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdicmFuY2hEZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKF9lcnJvcikgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgfSlcclxuICB9XHJcbiAgc2hvd1Bvc2l0aW9uID0gKHBvc2l0aW9uOiBhbnkpID0+IHtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLmxhdGl0dWRlID0gcG9zaXRpb24uY29vcmRzLmxhdGl0dWRlO1xyXG4gICAgdGhpcy5sb25naXR1ZGUgPSBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYXRpb24oKSB7XHJcbiAgICBpZiAobmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGFiYyA9IG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24odGhpcy5zaG93UG9zaXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2NhdGlvbklkLmlubmVySFRNTCA9IFwiR2VvbG9jYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGNvbC1zbS0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBzdG9yZUZpbmRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtcHJlcGVuZCBpbnB1dC1pY29uIHBvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW9uaWMtaW9zLWxvY2F0aW9uLW91dGxpbmUuc3ZnXCIgY2xhc3M9XCJ3LTIwXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGN1c3RvbS1pbnB1dCBwb3NpdGlvbi1yZWxhdGl2ZSB0ZXh0LWxlZnRcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI3N0b3JlRmluZGVyTW9kYWxcIiAoY2xpY2spPVwiZ2V0U3RvcmVzKClcIj5cclxuICAgICAgICAgICAgICAgIHt7YnJhbmNoTmFtZX19XHRcdFx0XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8cCBpZD1cImRlbW9cIj48L3A+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXItaWNvblwiIChjbGljayk9XCJnZXRMb2NhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW9uaWMtaW9zLW15LWxvY2F0aW9uLnN2Z1wiIGNsYXNzPVwidy0yMFwiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibW9kYWwgZmFkZSBtb2RhbC1yaWdodFwiIGlkPVwic3RvcmVGaW5kZXJNb2RhbFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJzdG9yZUZpbmRlckxhYmVsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZyBcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmMgXCI+TG9hZGluZyYjODIzMDs8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5ob21lQnJhbmNofX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi1jbG9zZSBicmFuY2gtcG9wLWNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHB4LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtbG9jYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZHJlc3MgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+e3tob21lQnJhbmNoQWRkcmVzcz8uZGlzcGxheU5hbWV9fSA8c3Bhbj4oe3tob21lQnJhbmNoQWRkcmVzcz8uYnVzaW5lc3NDYXRlZ29yeX19KTwvc3Bhbj48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tob21lQnJhbmNoQWRkcmVzcz8uYWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzc319PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZVR4dExhYmVsXCI+RW1haWwgOiA8L3NwYW4+PGEgaHJlZj1cIm1haWx0bzp7e2hvbWVCcmFuY2hBZGRyZXNzPy5hZGRyZXNzPy5lbWFpbH19XCI+e3tob21lQnJhbmNoQWRkcmVzcz8uYWRkcmVzcz8uZW1haWx9fTwvYT48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lVHh0TGFiZWxcIj4gUGhvbmUgOiA8L3NwYW4+PGEgaHJlZj1cInRlbDp7e2hvbWVCcmFuY2hBZGRyZXNzPy5hZGRyZXNzPy5waG9uZX19XCI+e3tob21lQnJhbmNoQWRkcmVzcz8uYWRkcmVzcz8ucGhvbmV9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZURpcmVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwib3Blbk1hcChob21lQnJhbmNoQWRkcmVzcz8uZ2VvUG9pbnQubGF0aXR1ZGUsIGhvbWVCcmFuY2hBZGRyZXNzPy5nZW9Qb2ludC5sb25naXR1ZGUpXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5nZXREaXJlY3Rpb25CdG59fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZWFyZXN0LWJyYW5jaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDU+QnJhbmNoZXM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXRhYnNcIiBpZD1cIm15VGFiXCIgcm9sZT1cInRhYmxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBhY3RpdmUgZC1pbmxpbmUtYmxvY2sgcGwtMVwiIGlkPVwiYWxsLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNhbGxcIiByb2xlPVwidGFiXCIgYXJpYS1jb250cm9scz1cImFsbFwiIGFyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5hbGxUYWJ9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgZC1pbmxpbmUtYmxvY2sgcGwtMVwiIGlkPVwibm9ydGgtdGFiXCIgZGF0YS10b2dnbGU9XCJ0YWJcIiBocmVmPVwiI25vcnRoXCIgcm9sZT1cInRhYlwiIGFyaWEtY29udHJvbHM9XCJub3J0aFwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiPnt7bG9jYXRpb25Nb2RhbENvbnN0YW50c0RhdGEubm9ydGhJc2xhbmRUYWJ9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGQtaW5saW5lLWJsb2NrIHBsLTFcIiBpZD1cInNvdXRoLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNzb3V0aFwiIHJvbGU9XCJ0YWJcIiBhcmlhLWNvbnRyb2xzPVwic291dGhcIiBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIj57e2xvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhLnNvdXRoSXNsYW5kVGFifX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgbXQtMlwiIGlkPVwibXlUYWJDb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZSBzaG93IGFjdGl2ZVwiIGlkPVwiYWxsXCIgcm9sZT1cInRhYnBhbmVsXCIgYXJpYS1sYWJlbGxlZGJ5PVwiYWxsLXRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yZXMgJiYgc3RvcmVzPy5sZW5ndGg7IGVsc2Ugc3RvcmVzQXZhbGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZHJlc3MgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHN0b3Jlc1wiIGNsYXNzPVwibWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7c3RvcmU/LmRpc3BsYXlOYW1lfX0gPHNwYW4+KHt7c3RvcmU/LmJ1c2luZXNzQ2F0ZWdvcnl9fSk8L3NwYW4+PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMlwiPnt7c3RvcmU/LmFkZHJlc3M/LmZvcm1hdHRlZEFkZHJlc3N9fTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvbWVUeHRMYWJlbFwiPkVtYWlsIDogPC9zcGFuPjxhIGhyZWY9XCJtYWlsdG86e3tzdG9yZT8uYWRkcmVzcz8uZW1haWx9fVwiPnt7c3RvcmU/LmFkZHJlc3M/LmVtYWlsfX08L2E+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZVR4dExhYmVsXCI+UGhvbmUgOiA8L3NwYW4+PGEgaHJlZj1cInRlbDp7e3N0b3JlPy5hZGRyZXNzPy5waG9uZX19XCI+e3tzdG9yZT8uYWRkcmVzcz8ucGhvbmV9fTwvYT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGRpcmVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwib3Blbk1hcChzdG9yZT8uZ2VvUG9pbnQubGF0aXR1ZGUsIHN0b3JlPy5nZW9Qb2ludC5sb25naXR1ZGUpXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5nZXREaXJlY3Rpb25CdG59fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIChjbGljayk9XCJvbkJyYW5jaENoYW5nZShzdG9yZSlcIj57e2xvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhLnNlbGVjdEJ0bn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RvcmVzQXZhbGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFBdmFpbGFibGVMYWJlbCB0ZXh0LWNlbnRlciBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vRGF0YVwiPk5vIGJyYW5jaCBpcyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBmYWRlXCIgaWQ9XCJub3J0aFwiIHJvbGU9XCJ0YWJwYW5lbFwiIGFyaWEtbGFiZWxsZWRieT1cIm5vcnRoLXRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnJheU5vcnRoSXNsYW5kICYmIGFycmF5Tm9ydGhJc2xhbmQ/Lmxlbmd0aD4wOyBlbHNlIG5vcnRoSXNsYW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRyZXNzICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBhcnJheU5vcnRoSXNsYW5kXCIgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3tzdG9yZT8uZGlzcGxheU5hbWV9fSA8c3Bhbj4oe3tzdG9yZT8uYnVzaW5lc3NDYXRlZ29yeX19KTwvc3Bhbj48L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0yXCI+e3tzdG9yZT8uYWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzc319PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZVR4dExhYmVsXCI+RW1haWwgOiA8L3NwYW4+PGEgaHJlZj1cIm1haWx0bzp7e3N0b3JlPy5hZGRyZXNzPy5lbWFpbH19XCI+e3tzdG9yZT8uYWRkcmVzcz8uZW1haWx9fTwvYT48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lVHh0TGFiZWxcIj5QaG9uZSA6IDwvc3Bhbj48YSBocmVmPVwidGVsOnt7c3RvcmU/LmFkZHJlc3M/LnBob25lfX1cIj57e3N0b3JlPy5hZGRyZXNzPy5waG9uZX19PC9hPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZGlyZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvcGVuTWFwKHN0b3JlPy5nZW9Qb2ludC5sYXRpdHVkZSwgc3RvcmU/Lmdlb1BvaW50LmxvbmdpdHVkZSlcIj57e2xvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhLmdldERpcmVjdGlvbkJ0bn19PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWxlY3QtYnRuXCIgKGNsaWNrKT1cIm9uQnJhbmNoQ2hhbmdlKHN0b3JlKVwiPnt7bG9jYXRpb25Nb2RhbENvbnN0YW50c0RhdGEuc2VsZWN0QnRufX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3J0aElzbGFuZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YUF2YWlsYWJsZUxhYmVsIHRleHQtY2VudGVyIHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9EYXRhXCI+Tm8gYnJhbmNoIGlzIGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGZhZGVcIiBpZD1cInNvdXRoXCIgcm9sZT1cInRhYnBhbmVsXCIgYXJpYS1sYWJlbGxlZGJ5PVwic291dGgtdGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycmF5U291dGhJc2xhbmQgJiYgYXJyYXlTb3V0aElzbGFuZD8ubGVuZ3RoPjA7IGVsc2Ugc291dGhJc2xhbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZHJlc3MgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGFycmF5U291dGhJc2xhbmRcIiBjbGFzcz1cIm1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57e3N0b3JlPy5kaXNwbGF5TmFtZX19IDxzcGFuPih7e3N0b3JlPy5idXNpbmVzc0NhdGVnb3J5fX0pPC9zcGFuPjwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTJcIj57e3N0b3JlPy5hZGRyZXNzPy5mb3JtYXR0ZWRBZGRyZXNzfX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lVHh0TGFiZWxcIj5FbWFpbCA6IDwvc3Bhbj48YSBocmVmPVwibWFpbHRvOnt7c3RvcmU/LmFkZHJlc3M/LmVtYWlsfX1cIj57e3N0b3JlPy5hZGRyZXNzPy5lbWFpbH19PC9hPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvbWVUeHRMYWJlbFwiPlBob25lIDogPC9zcGFuPjxhIGhyZWY9XCJ0ZWw6e3tzdG9yZT8uYWRkcmVzcz8ucGhvbmV9fVwiPnt7c3RvcmU/LmFkZHJlc3M/LnBob25lfX08L2E+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkaXJlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9wZW5NYXAoc3RvcmU/Lmdlb1BvaW50LmxhdGl0dWRlLCBzdG9yZT8uZ2VvUG9pbnQubG9uZ2l0dWRlKVwiPnt7bG9jYXRpb25Nb2RhbENvbnN0YW50c0RhdGEuZ2V0RGlyZWN0aW9uQnRufX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlbGVjdC1idG5cIiAoY2xpY2spPVwib25CcmFuY2hDaGFuZ2Uoc3RvcmUpXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5zZWxlY3RCdG59fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRkcmVzcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NvdXRoSXNsYW5kPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9EYXRhQXZhaWxhYmxlTGFiZWwgdGV4dC1jZW50ZXIgcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub0RhdGFcIj5ObyBicmFuY2ggaXMgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
99
+ }], ctorParameters: function () { return [{ type: i1.FindStoreService }, { type: i2.UserAccountDetailServiceService }, { type: i0.ChangeDetectorRef }]; } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zdG9yZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2ZpbmQtc3RvcmUvZmluZC1zdG9yZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2ZpbmQtc3RvcmUvZmluZC1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQVN4RCxNQUFNLE9BQU8sa0JBQWtCO0lBb0I3QixZQUFvQixnQkFBa0MsRUFDNUMsMkJBQTRELEVBQzdELEVBQXFCO1FBRlYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUM1QyxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQWlDO1FBQzdELE9BQUUsR0FBRixFQUFFLENBQW1CO1FBakI5QixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFeEIsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDckQscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBQzNCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUVwQixlQUFVLEdBQVEsUUFBUSxDQUFD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QUFRLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUNyRCxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxFQUNELENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQU9ELFdBQVc7UUFDVCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLCtDQUErQyxDQUFDO1NBQzdFO0lBQ0gsQ0FBQzs7Z0hBMUZVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHNEQ2IvQixpcVRBcUhNOzRGRHhHTyxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbmRTdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maW5kLXN0b3JlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc3RvcmVMb2NhdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvZ2VuZXJhbCc7XHJcbmltcG9ydCB7IERJUkVDVElPTl9VUkwgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbmRQb2ludFVSTCc7XHJcbmltcG9ydCB7IFVzZXJBY2NvdW50RGV0YWlsU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLWFjY291bnQtZGV0YWlsLXNlcnZpY2Uuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmluZC1zdG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtc3RvcmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtc3RvcmUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmluZFN0b3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgc3RvcmVzOiBhbnk7XHJcbiAgbGF0aXR1ZGU/OiBudW1iZXI7XHJcbiAgbG9uZ2l0dWRlPzogbnVtYmVyO1xyXG4gIHN0b3JlQXBpU3Vic2NyaWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgem9vbT86IG51bWJlcjtcclxuICBpc0RlZmF1bHRQT1M6IGFueTtcclxuICBob21lQnJhbmNoQWRkcmVzczogYW55ID0ge307XHJcbiAgcHVibGljIGFjY291bnRMaXN0czogYW55ID0gW107XHJcbiAgYnJhbmNoTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgaG9tZUJyYW5jaERhdGE6IGFueTtcclxuICBicmFuY2hSZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe30pO1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYXJyYXlOb3J0aElzbGFuZDogYW55ID0gW107XHJcbiAgYXJyYXlTb3V0aElzbGFuZDogYW55ID0gW107XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbklkOiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImRlbW9cIik7XHJcblxyXG4gIGxvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhID0gbmV3IHN0b3JlTG9jYXRpb25zKCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaW5kU3RvcmVTZXJ2aWNlOiBGaW5kU3RvcmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaVVzZXJBY2NvdW50RGV0YWlsc1NlcnZpY2U6IFVzZXJBY2NvdW50RGV0YWlsU2VydmljZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkgeyB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgaXNMb2FkZWQgPSBhd2FpdCB0aGlzLmZpVXNlckFjY291bnREZXRhaWxzU2VydmljZS5pc0Vudmlvcm5tZW50TG9hZGVkKCk7XHJcbiAgICB0aGlzLmZpbmRTdG9yZVNlcnZpY2UuaG9tZUJyYW5jaC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJykpIHtcclxuICAgICAgICAgICAgdGhpcy5ob21lQnJhbmNoRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJyk7XHJcbiAgICAgICAgICAgIHRoaXMuYnJhbmNoTmFtZSA9IEpTT04ucGFyc2UodGhpcy5ob21lQnJhbmNoRGF0YSk/LmRpc3BsYXlOYW1lOyBcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmJyYW5jaE5hbWUgPSBkYXRhPy5kaXNwbGF5TmFtZTtcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVzKCkge1xyXG4gICAgY29uc3QgbGF0QW5kbG9uZyA9IHtcclxuICAgICAgbGF0OiB0aGlzLmxhdGl0dWRlLFxyXG4gICAgICBsb25nOiB0aGlzLmxvbmdpdHVkZVxyXG4gICAgfVxyXG4gICAgdGhpcy5maW5kU3RvcmVTZXJ2aWNlLmdldEFsbFN0b3JlcyhsYXRBbmRsb25nKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnN0b3JlcyA9IGRhdGEuc3RvcmVzO1xyXG4gICAgICB0aGlzLnN0b3JlQXBpU3Vic2NyaWVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pc0RlZmF1bHRQT1MgPSBkYXRhLnN0b3Jlcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmlzRGVmYXVsdFBPUyA9PSB0cnVlKSB7XHJcbiAgICAgICAgICB0aGlzLmhvbWVCcmFuY2hBZGRyZXNzID0gZWxlbWVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmFycmF5Tm9ydGhJc2xhbmQgPSB0aGlzLnN0b3Jlcy5maWx0ZXIoKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5pc2xhbmROYW1lID09ICdOb3J0aCBJc2xhbmQnKTtcclxuICAgICAgdGhpcy5hcnJheVNvdXRoSXNsYW5kID0gdGhpcy5zdG9yZXMuZmlsdGVyKChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQuaXNsYW5kTmFtZSA9PSAnU291dGggSXNsYW5kJyk7XHJcbiAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBvcGVuTWFwKGxhdDogbnVtYmVyLCBsb25nOiBudW1iZXIpIHtcclxuICAgIHdpbmRvdy5vcGVuKERJUkVDVElPTl9VUkwudXJsICsgbGF0ICsgJywnICsgbG9uZywgJ19ibGFuaycpO1xyXG4gIH1cclxuXHJcbiAgb25CcmFuY2hDaGFuZ2UoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLmZpbmRTdG9yZVNlcnZpY2UuY2hhbmdlQnJhbmNoKGRhdGEubmFtZSkuc3Vic2NyaWJlKFxyXG4gICAgICAoX3Jlc3VsdCkgPT4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdicmFuY2hEZXRhaWxzJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKF9lcnJvcikgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgfSlcclxuICB9XHJcbiAgc2hvd1Bvc2l0aW9uID0gKHBvc2l0aW9uOiBhbnkpID0+IHtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLmxhdGl0dWRlID0gcG9zaXRpb24uY29vcmRzLmxhdGl0dWRlO1xyXG4gICAgdGhpcy5sb25naXR1ZGUgPSBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYXRpb24oKSB7XHJcbiAgICBpZiAobmF2aWdhdG9yLmdlb2xvY2F0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGFiYyA9IG5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24odGhpcy5zaG93UG9zaXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2NhdGlvbklkLmlubmVySFRNTCA9IFwiR2VvbG9jYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGNvbC1zbS0xMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBzdG9yZUZpbmRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtcHJlcGVuZCBpbnB1dC1pY29uIHBvXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW9uaWMtaW9zLWxvY2F0aW9uLW91dGxpbmUuc3ZnXCIgY2xhc3M9XCJ3LTIwXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGN1c3RvbS1pbnB1dCBwb3NpdGlvbi1yZWxhdGl2ZSB0ZXh0LWxlZnRcIiB0eXBlPVwiYnV0dG9uXCIgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI3N0b3JlRmluZGVyTW9kYWxcIiAoY2xpY2spPVwiZ2V0U3RvcmVzKClcIj5cclxuICAgICAgICAgICAgICAgIHt7YnJhbmNoTmFtZX19XHRcdFx0XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8cCBpZD1cImRlbW9cIj48L3A+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXItaWNvblwiIChjbGljayk9XCJnZXRMb2NhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW9uaWMtaW9zLW15LWxvY2F0aW9uLnN2Z1wiIGNsYXNzPVwidy0yMFwiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibW9kYWwgZmFkZSBtb2RhbC1yaWdodFwiIGlkPVwic3RvcmVGaW5kZXJNb2RhbFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJzdG9yZUZpbmRlckxhYmVsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZyBcIiAqbmdJZj1cInNob3dXYWl0Q3Vyc29yIHwgYXN5bmMgXCI+TG9hZGluZyYjODIzMDs8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5ob21lQnJhbmNofX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi1jbG9zZSBicmFuY2gtcG9wLWNsb3NlXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHB4LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtbG9jYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZHJlc3MgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDY+e3tob21lQnJhbmNoQWRkcmVzcz8uZGlzcGxheU5hbWV9fSA8c3Bhbj4oe3tob21lQnJhbmNoQWRkcmVzcz8uYnVzaW5lc3NDYXRlZ29yeX19KTwvc3Bhbj48L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tob21lQnJhbmNoQWRkcmVzcz8uYWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzc319PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZVR4dExhYmVsXCI+RW1haWwgOiA8L3NwYW4+PGEgaHJlZj1cIm1haWx0bzp7e2hvbWVCcmFuY2hBZGRyZXNzPy5hZGRyZXNzPy5lbWFpbH19XCI+e3tob21lQnJhbmNoQWRkcmVzcz8uYWRkcmVzcz8uZW1haWx9fTwvYT48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lVHh0TGFiZWxcIj4gUGhvbmUgOiA8L3NwYW4+PGEgaHJlZj1cInRlbDp7e2hvbWVCcmFuY2hBZGRyZXNzPy5hZGRyZXNzPy5waG9uZX19XCI+e3tob21lQnJhbmNoQWRkcmVzcz8uYWRkcmVzcz8ucGhvbmV9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZURpcmVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwib3Blbk1hcChob21lQnJhbmNoQWRkcmVzcz8uZ2VvUG9pbnQubGF0aXR1ZGUsIGhvbWVCcmFuY2hBZGRyZXNzPy5nZW9Qb2ludC5sb25naXR1ZGUpXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5nZXREaXJlY3Rpb25CdG59fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZWFyZXN0LWJyYW5jaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDU+QnJhbmNoZXM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXRhYnNcIiBpZD1cIm15VGFiXCIgcm9sZT1cInRhYmxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGluayBhY3RpdmUgZC1pbmxpbmUtYmxvY2sgcGwtMVwiIGlkPVwiYWxsLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNhbGxcIiByb2xlPVwidGFiXCIgYXJpYS1jb250cm9scz1cImFsbFwiIGFyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5hbGxUYWJ9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgZC1pbmxpbmUtYmxvY2sgcGwtMVwiIGlkPVwibm9ydGgtdGFiXCIgZGF0YS10b2dnbGU9XCJ0YWJcIiBocmVmPVwiI25vcnRoXCIgcm9sZT1cInRhYlwiIGFyaWEtY29udHJvbHM9XCJub3J0aFwiIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiPnt7bG9jYXRpb25Nb2RhbENvbnN0YW50c0RhdGEubm9ydGhJc2xhbmRUYWJ9fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGQtaW5saW5lLWJsb2NrIHBsLTFcIiBpZD1cInNvdXRoLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNzb3V0aFwiIHJvbGU9XCJ0YWJcIiBhcmlhLWNvbnRyb2xzPVwic291dGhcIiBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIj57e2xvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhLnNvdXRoSXNsYW5kVGFifX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgbXQtMlwiIGlkPVwibXlUYWJDb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZSBzaG93IGFjdGl2ZVwiIGlkPVwiYWxsXCIgcm9sZT1cInRhYnBhbmVsXCIgYXJpYS1sYWJlbGxlZGJ5PVwiYWxsLXRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yZXMgJiYgc3RvcmVzPy5sZW5ndGg7IGVsc2Ugc3RvcmVzQXZhbGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZHJlc3MgKm5nRm9yPVwibGV0IHN0b3JlIG9mIHN0b3Jlc1wiIGNsYXNzPVwibWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7c3RvcmU/LmRpc3BsYXlOYW1lfX0gPHNwYW4+KHt7c3RvcmU/LmJ1c2luZXNzQ2F0ZWdvcnl9fSk8L3NwYW4+PC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMlwiPnt7c3RvcmU/LmFkZHJlc3M/LmZvcm1hdHRlZEFkZHJlc3N9fTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvbWVUeHRMYWJlbFwiPkVtYWlsIDogPC9zcGFuPjxhIGhyZWY9XCJtYWlsdG86e3tzdG9yZT8uYWRkcmVzcz8uZW1haWx9fVwiPnt7c3RvcmU/LmFkZHJlc3M/LmVtYWlsfX08L2E+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZVR4dExhYmVsXCI+UGhvbmUgOiA8L3NwYW4+PGEgaHJlZj1cInRlbDp7e3N0b3JlPy5hZGRyZXNzPy5waG9uZX19XCI+e3tzdG9yZT8uYWRkcmVzcz8ucGhvbmV9fTwvYT48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGRpcmVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwib3Blbk1hcChzdG9yZT8uZ2VvUG9pbnQubGF0aXR1ZGUsIHN0b3JlPy5nZW9Qb2ludC5sb25naXR1ZGUpXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5nZXREaXJlY3Rpb25CdG59fTwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwic2VsZWN0LWJ0blwiIChjbGljayk9XCJvbkJyYW5jaENoYW5nZShzdG9yZSlcIj57e2xvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhLnNlbGVjdEJ0bn19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RvcmVzQXZhbGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub0RhdGFBdmFpbGFibGVMYWJlbCB0ZXh0LWNlbnRlciBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vRGF0YVwiPk5vIGJyYW5jaCBpcyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBmYWRlXCIgaWQ9XCJub3J0aFwiIHJvbGU9XCJ0YWJwYW5lbFwiIGFyaWEtbGFiZWxsZWRieT1cIm5vcnRoLXRhYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnJheU5vcnRoSXNsYW5kICYmIGFycmF5Tm9ydGhJc2xhbmQ/Lmxlbmd0aD4wOyBlbHNlIG5vcnRoSXNsYW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGRyZXNzICpuZ0Zvcj1cImxldCBzdG9yZSBvZiBhcnJheU5vcnRoSXNsYW5kXCIgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3tzdG9yZT8uZGlzcGxheU5hbWV9fSA8c3Bhbj4oe3tzdG9yZT8uYnVzaW5lc3NDYXRlZ29yeX19KTwvc3Bhbj48L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0yXCI+e3tzdG9yZT8uYWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzc319PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZVR4dExhYmVsXCI+RW1haWwgOiA8L3NwYW4+PGEgaHJlZj1cIm1haWx0bzp7e3N0b3JlPy5hZGRyZXNzPy5lbWFpbH19XCI+e3tzdG9yZT8uYWRkcmVzcz8uZW1haWx9fTwvYT48YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lVHh0TGFiZWxcIj5QaG9uZSA6IDwvc3Bhbj48YSBocmVmPVwidGVsOnt7c3RvcmU/LmFkZHJlc3M/LnBob25lfX1cIj57e3N0b3JlPy5hZGRyZXNzPy5waG9uZX19PC9hPjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZGlyZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvcGVuTWFwKHN0b3JlPy5nZW9Qb2ludC5sYXRpdHVkZSwgc3RvcmU/Lmdlb1BvaW50LmxvbmdpdHVkZSlcIj57e2xvY2F0aW9uTW9kYWxDb25zdGFudHNEYXRhLmdldERpcmVjdGlvbkJ0bn19PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzZWxlY3QtYnRuXCIgKGNsaWNrKT1cIm9uQnJhbmNoQ2hhbmdlKHN0b3JlKVwiPnt7bG9jYXRpb25Nb2RhbENvbnN0YW50c0RhdGEuc2VsZWN0QnRufX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2FkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3J0aElzbGFuZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vRGF0YUF2YWlsYWJsZUxhYmVsIHRleHQtY2VudGVyIHB0LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm9EYXRhXCI+Tm8gYnJhbmNoIGlzIGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGZhZGVcIiBpZD1cInNvdXRoXCIgcm9sZT1cInRhYnBhbmVsXCIgYXJpYS1sYWJlbGxlZGJ5PVwic291dGgtdGFiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFycmF5U291dGhJc2xhbmQgJiYgYXJyYXlTb3V0aElzbGFuZD8ubGVuZ3RoPjA7IGVsc2Ugc291dGhJc2xhbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZHJlc3MgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGFycmF5U291dGhJc2xhbmRcIiBjbGFzcz1cIm1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNT57e3N0b3JlPy5kaXNwbGF5TmFtZX19IDxzcGFuPih7e3N0b3JlPy5idXNpbmVzc0NhdGVnb3J5fX0pPC9zcGFuPjwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTJcIj57e3N0b3JlPy5hZGRyZXNzPy5mb3JtYXR0ZWRBZGRyZXNzfX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lVHh0TGFiZWxcIj5FbWFpbCA6IDwvc3Bhbj48YSBocmVmPVwibWFpbHRvOnt7c3RvcmU/LmFkZHJlc3M/LmVtYWlsfX1cIj57e3N0b3JlPy5hZGRyZXNzPy5lbWFpbH19PC9hPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvbWVUeHRMYWJlbFwiPlBob25lIDogPC9zcGFuPjxhIGhyZWY9XCJ0ZWw6e3tzdG9yZT8uYWRkcmVzcz8ucGhvbmV9fVwiPnt7c3RvcmU/LmFkZHJlc3M/LnBob25lfX08L2E+PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBkaXJlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9wZW5NYXAoc3RvcmU/Lmdlb1BvaW50LmxhdGl0dWRlLCBzdG9yZT8uZ2VvUG9pbnQubG9uZ2l0dWRlKVwiPnt7bG9jYXRpb25Nb2RhbENvbnN0YW50c0RhdGEuZ2V0RGlyZWN0aW9uQnRufX08L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInNlbGVjdC1idG5cIiAoY2xpY2spPVwib25CcmFuY2hDaGFuZ2Uoc3RvcmUpXCI+e3tsb2NhdGlvbk1vZGFsQ29uc3RhbnRzRGF0YS5zZWxlY3RCdG59fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRkcmVzcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NvdXRoSXNsYW5kPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9EYXRhQXZhaWxhYmxlTGFiZWwgdGV4dC1jZW50ZXIgcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJub0RhdGFcIj5ObyBicmFuY2ggaXMgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -128,6 +128,19 @@ export class UserAccountDetailServiceService {
128
128
  isAccountOwnerPermission() {
129
129
  return this._isAccountOwnerGroup;
130
130
  }
131
+ isEnviornmentLoaded() {
132
+ return new Promise((resolve) => {
133
+ let env = sessionStorage.getItem('env');
134
+ let environment = JSON.parse(env);
135
+ if (environment && environment.occBaseUrl == undefined) {
136
+ window.location.reload();
137
+ // this.isEnviornmentLoaded();
138
+ }
139
+ else {
140
+ resolve(true);
141
+ }
142
+ });
143
+ }
131
144
  isCreateInviteGroupPermission() {
132
145
  return new Promise((resolve) => {
133
146
  this._isDataLoaded.subscribe((isDataLoaded) => {
@@ -209,4 +222,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
209
222
  type: Inject,
210
223
  args: ['env']
211
224
  }] }]; } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2NvdW50LWRldGFpbC1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL3NlcnZpY2VzL3VzZXItYWNjb3VudC1kZXRhaWwtc2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFDakUsSUFBSSxTQUFjLENBQUM7QUFJbkIsTUFBTSxPQUFPLCtCQUErQjtJQWExQyxZQUFvQixJQUFpQixFQUFVLFdBQThCLEVBQVUsTUFBYyxFQUF3QixHQUFRO1FBQWpILFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQXdCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFackkseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBQzNDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzNELGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDZCxZQUFPLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3JELElBQUksTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDakMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0Isc0RBQXNEO1FBQ3RELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRCxZQUFZO1FBQ1YsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDcEMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxjQUFjLEVBQUU7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUMvQjtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBQ00saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM1QyxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUU7Z0JBQ3JCLDRCQUE0QjtnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksY0FBYyxHQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLENBQUM7Z0JBQ2pDLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzdCLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxLQUFLLElBQUksVUFBVSxJQUFJLGNBQWMsRUFBRTt3QkFFckMsSUFBSSxVQUFVLElBQUksV0FBVyxFQUFFOzRCQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDOzRCQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDOzRCQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzs0QkFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxDQUFDLDJCQUEyQjs0QkFDM0QsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQzs0QkFDdEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQzs0QkFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQzs0QkFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7eUJBQ3RCO3dCQUNELElBQUksVUFBVSxJQUFJLGFBQWEsRUFBRTs0QkFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQzs0QkFDakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQzs0QkFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7NEJBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQywyQkFBMkI7NEJBQzNELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7NEJBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7NEJBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7NEJBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUN0Qjt3QkFDRCxJQUFJLFVBQVUsSUFBSSxtQkFBbUIsRUFBRTs0QkFDckMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQzs0QkFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7NEJBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQywyQkFBMkI7NEJBQzNELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7NEJBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7NEJBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7NEJBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUN0Qjt3QkFDRCxJQUFJLFVBQVUsSUFBSSxnQkFBZ0IsRUFBRTs0QkFDbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7NEJBQzVCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7NEJBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsQ0FBQywyQkFBMkI7NEJBQzNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7eUJBQ2pDO3dCQUVELElBQUksVUFBVSxJQUFJLGVBQWUsRUFBRTs0QkFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7NEJBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7NEJBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUN0Qjt3QkFDRCxJQUFJLFVBQVUsSUFBSSxjQUFjLEVBQUU7NEJBQ2hDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7NEJBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDOzRCQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUMsMkJBQTJCOzRCQUMzRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDOzRCQUNoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO3lCQUNqQzt3QkFDRCxJQUFJLFVBQVUsSUFBSSxlQUFlLEVBQUU7NEJBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDOzRCQUM1QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDOzRCQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO3lCQUNqQzt3QkFDRCxJQUFJLFVBQVUsSUFBSSxhQUFhLEVBQUU7NEJBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7NEJBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7eUJBQ2hDO3FCQUNGO29CQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvQjtxQkFBTztvQkFDTixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDL0I7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRU0sNkJBQTZCO1FBQ2xDLE9BQU8sSUFBSSxPQUFPLENBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUM1QyxJQUFJLFlBQVksRUFBRTtvQkFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2lCQUNwQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUNBQWlDO1FBQ3RDLE9BQU8sSUFBSSxPQUFPLENBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUM1QyxJQUFJLFlBQVksRUFBRTtvQkFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2lCQUNuQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxPQUFPLENBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUM1QyxJQUFJLFlBQVksRUFBRTtvQkFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDL0I7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3hCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDTSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQzVDLElBQUksWUFBWSxFQUFFO29CQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7aUJBQ2xDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7Z0JBQzVDLElBQUksWUFBWSxFQUFFO29CQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ25DO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sNkJBQTZCO1FBQ2xDLE9BQU8sSUFBSSxPQUFPLENBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUM1QyxJQUFJLFlBQVksRUFBRTtvQkFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2lCQUN6QztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7NkhBeE1VLCtCQUErQixvR0FhcUUsS0FBSztpSUFiekcsK0JBQStCLGNBRjlCLE1BQU07NEZBRVAsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBY3lHLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbmltcG9ydCB7IFVzZXJBY2NvdW50RmFjYWRlIH0gZnJvbSAnQHNwYXJ0YWN1cy91c2VyL2FjY291bnQvcm9vdCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgR2xvYmFsRW52VmFyaWFibGUsIFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuL2VuZFBvaW50VVJMJztcclxubGV0IHNoYXJlZEVudjogYW55O1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyQWNjb3VudERldGFpbFNlcnZpY2VTZXJ2aWNlIHtcclxuICBfaXNDcmVhdGVJbnZpdGVHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIF9pc1ZpZXdPcmRlcnNHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIF9pc1ByaWNpbmdHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIF9pc1BsYWNlT3JkZXJzR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfaXNBY2NvdW50TWFuYWdlbWVudEdyb3VwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgX2lzQWNjb3VudE93bmVyR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfaXNJbnZvaWNlU3RhdGVtZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgX2lzSUNhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfY3VycmVudEVtYWlsOiBhbnkgPSAnJztcclxuICBwdWJsaWMgX2lzRGF0YUxvYWRlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGN1cnJlbnRVSUQ6IGFueSA9ICcnO1xyXG4gIHB1YmxpYyBlbnZEYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHVzZXJBY2NvdW50OiBVc2VyQWNjb3VudEZhY2FkZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgQEluamVjdCgnZW52JykgcHVibGljIGVudjogYW55KSB7XHJcbiAgICB0aGlzLmVudkRhdGEubmV4dChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnVUlzaXRlVVJsJykpO1xyXG4gICAgbGV0IHNoYXJlZCA9IG5ldyBTaGFyZWRTZXJ2aWNlKCk7XHJcbiAgICBzaGFyZWQuc2V0U2hhcmVkRW52RGF0YShlbnYpO1xyXG4gIH1cclxuICBpbml0aWFsaXplKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICB0aGlzLnNldENoZWNrUGVybWlzc2lvbnMoKTtcclxuICAgIC8vIE1ldGhvZCBsb2dpYyB0aGF0IHdpbGwgYmUgdHJpZ2dlcmVkIGluIGV2ZXJ5IG1vZHVsZVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xyXG4gIH1cclxuICBnZXRTaGFyZWRFbnYoKSB7XHJcbiAgICByZXR1cm4gc2hhcmVkRW52O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVzZXJBY2NvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aC5pc1VzZXJMb2dnZWRJbigpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoaXNVc2VyTG9nZ2VkSW4pID0+IHtcclxuICAgICAgICBpZiAoaXNVc2VyTG9nZ2VkSW4pIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJBY2NvdW50LmdldCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0SXNVc2VyTG9nZ2VkSW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoLmlzVXNlckxvZ2dlZEluKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q2hlY2tQZXJtaXNzaW9ucygpIHtcclxuICAgIHRoaXMuZ2V0VXNlckFjY291bnQoKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAvLyAgdGhpcy5lbWFpbElkID0gZGF0YS51aWQ7XHJcbiAgICAgICAgdGhpcy5fY3VycmVudEVtYWlsID0gZGF0YS51aWQ7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VUlEID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NlbGVjdGVkSVVJRCcpO1xyXG4gICAgICAgIGxldCBwZXJtaXNzaW9ubGlzdCA9IGRhdGE/LnJvbGVzO1xyXG4gICAgICAgIGlmIChwZXJtaXNzaW9ubGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdyb2xlJywgcGVybWlzc2lvbmxpc3RbMF0pO1xyXG4gICAgICAgICAgZm9yIChsZXQgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ubGlzdCkge1xyXG5cclxuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gJ0IyQiBPd25lcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0FjY291bnRPd25lckdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0NyZWF0ZUludml0ZUdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ByaWNpbmdHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNWaWV3T3JkZXJzR3JvdXAgPSB0cnVlOyAvL09yZGVycyAmIERlbGl2ZXJpZXMgcGFnZS5cclxuICAgICAgICAgICAgICB0aGlzLl9pc0FjY291bnRNYW5hZ2VtZW50R3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUGxhY2VPcmRlcnNHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNJbnZvaWNlU3RhdGVtZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0lDYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnQjJCIE1hbmFnZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNBY2NvdW50T3duZXJHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQcmljaW5nR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzVmlld09yZGVyc0dyb3VwID0gdHJ1ZTsgLy9PcmRlcnMgJiBEZWxpdmVyaWVzIHBhZ2UuXHJcbiAgICAgICAgICAgICAgdGhpcy5faXNBY2NvdW50TWFuYWdlbWVudEdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1BsYWNlT3JkZXJzR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzSW52b2ljZVN0YXRlbWVudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNJQ2FydCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gJ0IyQiBBZG1pbmlzdHJhdG9yJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQWNjb3VudE93bmVyR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUHJpY2luZ0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ZpZXdPcmRlcnNHcm91cCA9IHRydWU7IC8vT3JkZXJzICYgRGVsaXZlcmllcyBwYWdlLlxyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQWNjb3VudE1hbmFnZW1lbnRHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQbGFjZU9yZGVyc0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0ludm9pY2VTdGF0ZW1lbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzSUNhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdCMkIgU3VwZXJ2aXNvcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ByaWNpbmdHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNWaWV3T3JkZXJzR3JvdXAgPSB0cnVlOyAvL09yZGVycyAmIERlbGl2ZXJpZXMgcGFnZS5cclxuICAgICAgICAgICAgICB0aGlzLl9pc1BsYWNlT3JkZXJzR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnQjJCIFB1cmNoYXNlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ByaWNpbmdHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNWaWV3T3JkZXJzR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzSUNhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdCMkIgUGF5bWVudHMnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQcmljaW5nR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzVmlld09yZGVyc0dyb3VwID0gdHJ1ZTsgLy9PcmRlcnMgJiBEZWxpdmVyaWVzIHBhZ2UuXHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQbGFjZU9yZGVyc0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0ludm9pY2VTdGF0ZW1lbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdCMkIgU3BlY2lmaWVyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUHJpY2luZ0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0NyZWF0ZUludml0ZUdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1BsYWNlT3JkZXJzR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdCMkIgU3VwcG9ydCcpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0NyZWF0ZUludml0ZUdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ZpZXdPcmRlcnNHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5uZXh0KHRydWUpO1xyXG4gICAgICAgIH0gIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faXNEYXRhTG9hZGVkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNBY2NvdW50T3duZXJQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzQWNjb3VudE93bmVyR3JvdXA7XHJcbiAgfVxyXG4gIFxyXG4gIHB1YmxpYyBpc0NyZWF0ZUludml0ZUdyb3VwUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLl9pc0RhdGFMb2FkZWQuc3Vic2NyaWJlKChpc0RhdGFMb2FkZWQpID0+IHtcclxuICAgICAgICBpZiAoaXNEYXRhTG9hZGVkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2lzQ3JlYXRlSW52aXRlR3JvdXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzSW52b2ljZVN0YXRlbWVudEdyb3VwUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLl9pc0RhdGFMb2FkZWQuc3Vic2NyaWJlKChpc0RhdGFMb2FkZWQpID0+IHtcclxuICAgICAgICBpZiAoaXNEYXRhTG9hZGVkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2lzSW52b2ljZVN0YXRlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNQcmljaW5nUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLl9pc0RhdGFMb2FkZWQuc3Vic2NyaWJlKChpc0RhdGFMb2FkZWQpID0+IHtcclxuICAgICAgICBpZiAoaXNEYXRhTG9hZGVkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2lzUHJpY2luZ0dyb3VwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0NhcnRQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5zdWJzY3JpYmUoKGlzRGF0YUxvYWRlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RhdGFMb2FkZWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5faXNJQ2FydCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBpc1ZpZXdPcmRlcnNQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5zdWJzY3JpYmUoKGlzRGF0YUxvYWRlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RhdGFMb2FkZWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5faXNWaWV3T3JkZXJzR3JvdXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1BsYWNlT3JkZXJzUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLl9pc0RhdGFMb2FkZWQuc3Vic2NyaWJlKChpc0RhdGFMb2FkZWQpID0+IHtcclxuICAgICAgICBpZiAoaXNEYXRhTG9hZGVkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2lzUGxhY2VPcmRlcnNHcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmF2aWdhdGVUb0hvbWUoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNBY2NvdW50TWFuYWdlbWVudFBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5faXNEYXRhTG9hZGVkLnN1YnNjcmliZSgoaXNEYXRhTG9hZGVkKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGF0YUxvYWRlZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9pc0FjY291bnRNYW5hZ2VtZW50R3JvdXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEN1cnJlbnRFbWFpbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50RW1haWw7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY2NvdW50LWRldGFpbC1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL3NlcnZpY2VzL3VzZXItYWNjb3VudC1kZXRhaWwtc2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFDakUsSUFBSSxTQUFjLENBQUM7QUFJbkIsTUFBTSxPQUFPLCtCQUErQjtJQWExQyxZQUFvQixJQUFpQixFQUFVLFdBQThCLEVBQVUsTUFBYyxFQUF3QixHQUFRO1FBQWpILFNBQUksR0FBSixJQUFJLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQXdCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFackkseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBQzNDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFD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QUFDO0lBQzVCLENBQUM7OzZIQXJOVSwrQkFBK0Isb0dBYXFFLEtBQUs7aUlBYnpHLCtCQUErQixjQUY5QixNQUFNOzRGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQWN5RyxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xyXG5pbXBvcnQgeyBVc2VyQWNjb3VudEZhY2FkZSB9IGZyb20gJ0BzcGFydGFjdXMvdXNlci9hY2NvdW50L3Jvb3QnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEdsb2JhbEVudlZhcmlhYmxlLCBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi9lbmRQb2ludFVSTCc7XHJcbmxldCBzaGFyZWRFbnY6IGFueTtcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckFjY291bnREZXRhaWxTZXJ2aWNlU2VydmljZSB7XHJcbiAgX2lzQ3JlYXRlSW52aXRlR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfaXNWaWV3T3JkZXJzR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfaXNQcmljaW5nR3JvdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBfaXNQbGFjZU9yZGVyc0dyb3VwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgX2lzQWNjb3VudE1hbmFnZW1lbnRHcm91cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIF9pc0FjY291bnRPd25lckdyb3VwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgX2lzSW52b2ljZVN0YXRlbWVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIF9pc0lDYXJ0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgX2N1cnJlbnRFbWFpbDogYW55ID0gJyc7XHJcbiAgcHVibGljIF9pc0RhdGFMb2FkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBjdXJyZW50VUlEOiBhbnkgPSAnJztcclxuICBwdWJsaWMgZW52RGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSwgcHJpdmF0ZSB1c2VyQWNjb3VudDogVXNlckFjY291bnRGYWNhZGUsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIEBJbmplY3QoJ2VudicpIHB1YmxpYyBlbnY6IGFueSkge1xyXG4gICAgdGhpcy5lbnZEYXRhLm5leHQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ1VJc2l0ZVVSbCcpKTtcclxuICAgIGxldCBzaGFyZWQgPSBuZXcgU2hhcmVkU2VydmljZSgpO1xyXG4gICAgc2hhcmVkLnNldFNoYXJlZEVudkRhdGEoZW52KTtcclxuICB9XHJcbiAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgdGhpcy5zZXRDaGVja1Blcm1pc3Npb25zKCk7XHJcbiAgICAvLyBNZXRob2QgbG9naWMgdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBpbiBldmVyeSBtb2R1bGVcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuICB9XHJcbiAgZ2V0U2hhcmVkRW52KCkge1xyXG4gICAgcmV0dXJuIHNoYXJlZEVudjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVc2VyQWNjb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmF1dGguaXNVc2VyTG9nZ2VkSW4oKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKGlzVXNlckxvZ2dlZEluKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzVXNlckxvZ2dlZEluKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy51c2VyQWNjb3VudC5nZXQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHVibGljIGdldElzVXNlckxvZ2dlZEluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aC5pc1VzZXJMb2dnZWRJbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENoZWNrUGVybWlzc2lvbnMoKSB7XHJcbiAgICB0aGlzLmdldFVzZXJBY2NvdW50KCkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGRhdGEgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgLy8gIHRoaXMuZW1haWxJZCA9IGRhdGEudWlkO1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbnRFbWFpbCA9IGRhdGEudWlkO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVJRCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzZWxlY3RlZElVSUQnKTtcclxuICAgICAgICBsZXQgcGVybWlzc2lvbmxpc3QgPSBkYXRhPy5yb2xlcztcclxuICAgICAgICBpZiAocGVybWlzc2lvbmxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgncm9sZScsIHBlcm1pc3Npb25saXN0WzBdKTtcclxuICAgICAgICAgIGZvciAobGV0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbmxpc3QpIHtcclxuXHJcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdCMkIgT3duZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNBY2NvdW50T3duZXJHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQcmljaW5nR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzVmlld09yZGVyc0dyb3VwID0gdHJ1ZTsgLy9PcmRlcnMgJiBEZWxpdmVyaWVzIHBhZ2UuXHJcbiAgICAgICAgICAgICAgdGhpcy5faXNBY2NvdW50TWFuYWdlbWVudEdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1BsYWNlT3JkZXJzR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzSW52b2ljZVN0YXRlbWVudCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNJQ2FydCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gJ0IyQiBNYW5hZ2VyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQWNjb3VudE93bmVyR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQ3JlYXRlSW52aXRlR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUHJpY2luZ0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ZpZXdPcmRlcnNHcm91cCA9IHRydWU7IC8vT3JkZXJzICYgRGVsaXZlcmllcyBwYWdlLlxyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQWNjb3VudE1hbmFnZW1lbnRHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQbGFjZU9yZGVyc0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0ludm9pY2VTdGF0ZW1lbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzSUNhcnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdCMkIgQWRtaW5pc3RyYXRvcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0FjY291bnRPd25lckdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ByaWNpbmdHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNWaWV3T3JkZXJzR3JvdXAgPSB0cnVlOyAvL09yZGVycyAmIERlbGl2ZXJpZXMgcGFnZS5cclxuICAgICAgICAgICAgICB0aGlzLl9pc0FjY291bnRNYW5hZ2VtZW50R3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUGxhY2VPcmRlcnNHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNJbnZvaWNlU3RhdGVtZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0lDYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnQjJCIFN1cGVydmlzb3InKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQcmljaW5nR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQ3JlYXRlSW52aXRlR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzVmlld09yZGVyc0dyb3VwID0gdHJ1ZTsgLy9PcmRlcnMgJiBEZWxpdmVyaWVzIHBhZ2UuXHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQbGFjZU9yZGVyc0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gJ0IyQiBQdXJjaGFzZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQcmljaW5nR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzVmlld09yZGVyc0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc0lDYXJ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnQjJCIFBheW1lbnRzJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzQ3JlYXRlSW52aXRlR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUHJpY2luZ0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ZpZXdPcmRlcnNHcm91cCA9IHRydWU7IC8vT3JkZXJzICYgRGVsaXZlcmllcyBwYWdlLlxyXG4gICAgICAgICAgICAgIHRoaXMuX2lzUGxhY2VPcmRlcnNHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNJbnZvaWNlU3RhdGVtZW50ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnQjJCIFNwZWNpZmllcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLl9pc1ByaWNpbmdHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNQbGFjZU9yZGVyc0dyb3VwID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnQjJCIFN1cHBvcnQnKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXNWaWV3T3JkZXJzR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9pc0RhdGFMb2FkZWQubmV4dCh0cnVlKTtcclxuICAgICAgICB9ICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5uZXh0KHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzQWNjb3VudE93bmVyUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0FjY291bnRPd25lckdyb3VwO1xyXG4gIH1cclxuICBcclxuICBwdWJsaWMgaXNFbnZpb3JubWVudExvYWRlZCgpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4geyBcclxuICAgICAgICBsZXQgZW52OiBhbnkgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbnYnKTtcclxuICAgICAgICBsZXQgZW52aXJvbm1lbnQ6IGFueSA9IEpTT04ucGFyc2UoZW52KTtcclxuICAgICAgICBpZiAoZW52aXJvbm1lbnQgJiYgZW52aXJvbm1lbnQub2NjQmFzZVVybCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICAgIC8vIHRoaXMuaXNFbnZpb3JubWVudExvYWRlZCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzQ3JlYXRlSW52aXRlR3JvdXBQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5zdWJzY3JpYmUoKGlzRGF0YUxvYWRlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RhdGFMb2FkZWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5faXNDcmVhdGVJbnZpdGVHcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNJbnZvaWNlU3RhdGVtZW50R3JvdXBQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5zdWJzY3JpYmUoKGlzRGF0YUxvYWRlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RhdGFMb2FkZWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5faXNJbnZvaWNlU3RhdGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc1ByaWNpbmdQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5zdWJzY3JpYmUoKGlzRGF0YUxvYWRlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RhdGFMb2FkZWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5faXNQcmljaW5nR3JvdXApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzQ2FydFBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5faXNEYXRhTG9hZGVkLnN1YnNjcmliZSgoaXNEYXRhTG9hZGVkKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGF0YUxvYWRlZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9pc0lDYXJ0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIGlzVmlld09yZGVyc1Blcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5faXNEYXRhTG9hZGVkLnN1YnNjcmliZSgoaXNEYXRhTG9hZGVkKSA9PiB7XHJcbiAgICAgICAgaWYgKGlzRGF0YUxvYWRlZCkge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9pc1ZpZXdPcmRlcnNHcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzUGxhY2VPcmRlcnNQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzRGF0YUxvYWRlZC5zdWJzY3JpYmUoKGlzRGF0YUxvYWRlZCkgPT4ge1xyXG4gICAgICAgIGlmIChpc0RhdGFMb2FkZWQpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5faXNQbGFjZU9yZGVyc0dyb3VwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvSG9tZSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc0FjY291bnRNYW5hZ2VtZW50UGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLl9pc0RhdGFMb2FkZWQuc3Vic2NyaWJlKChpc0RhdGFMb2FkZWQpID0+IHtcclxuICAgICAgICBpZiAoaXNEYXRhTG9hZGVkKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2lzQWNjb3VudE1hbmFnZW1lbnRHcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q3VycmVudEVtYWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRFbWFpbDtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=