bx-rest 0.1.0 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/consts/part-name-metods.d.ts +9 -0
- package/esm2020/consts/part-name-metods.mjs +10 -1
- package/esm2020/map/lists.mjs +2 -2
- package/esm2020/map/task.mjs +10 -1
- package/esm2020/public-api.mjs +2 -2
- package/esm2020/request/bizproc/activity.mjs +23 -0
- package/esm2020/request/bizproc/event.mjs +19 -0
- package/esm2020/request/bizproc/robot.mjs +22 -0
- package/esm2020/request/bizproc/task.mjs +20 -0
- package/esm2020/request/bizproc/workflow/instance.mjs +19 -0
- package/esm2020/request/bizproc/workflow/template.mjs +27 -0
- package/esm2020/request/bizproc/workflow.mjs +31 -0
- package/esm2020/request/bizproc.mjs +25 -0
- package/esm2020/request/disk/file.mjs +3 -3
- package/esm2020/request/disk/folder.mjs +2 -2
- package/esm2020/request/disk/storage.mjs +3 -3
- package/esm2020/request/lists/element.mjs +5 -4
- package/esm2020/request/lists.mjs +2 -2
- package/esm2020/request/tasks/task.mjs +34 -1
- package/esm2020/request/user.mjs +40 -108
- package/esm2020/request-navvy/bizproc/workflow.mjs +22 -0
- package/esm2020/request-navvy/bizproc.mjs +60 -0
- package/esm2020/request-navvy/disk/file.mjs +12 -16
- package/esm2020/request-navvy/disk/folder.mjs +9 -10
- package/esm2020/request-navvy/disk/storage.mjs +20 -18
- package/esm2020/request-navvy/lists/element.mjs +11 -7
- package/esm2020/request-navvy/lists.mjs +2 -10
- package/esm2020/request-navvy/tasks/task.mjs +67 -19
- package/esm2020/request-navvy/user.mjs +33 -22
- package/esm2020/rest.mjs +21 -17
- package/esm2020/services/base.mjs +3 -3
- package/esm2020/services/http/HttpBX.mjs +44 -61
- package/esm2020/services/http/base/base.mjs +3 -4
- package/esm2020/services/http/base/http.mjs +6 -21
- package/esm2020/services/http/http.mjs +37 -103
- package/esm2020/services/http/sessionKey.mjs +128 -113
- package/esm2020/services/navvy.mjs +26 -0
- package/esm2020/services/vanilla/sessionStorage.mjs +23 -0
- package/esm2020/settings.mjs +2 -2
- package/esm2020/typification/auth/save.mjs +1 -1
- package/esm2020/typification/rest/base/OrderOptions.mjs +2 -0
- package/esm2020/typification/rest/base/sort.mjs +2 -0
- package/esm2020/typification/rest/bizproc/base/filedEnum.mjs +2 -0
- package/esm2020/typification/rest/bizproc/workflow/start.mjs +2 -0
- package/esm2020/typification/rest/bizproc/workflow/template/list.mjs +2 -0
- package/esm2020/typification/rest/lists/element/add.mjs +2 -0
- package/esm2020/typification/rest/task/base/fieldsName.mjs +2 -0
- package/esm2020/typification/rest/tasks/task/add.mjs +2 -0
- package/esm2020/typification/rest/tasks/task/get.mjs +2 -0
- package/esm2020/typification/rest/tasks/task/list.mjs +2 -0
- package/esm2020/typification/rest/user/get.mjs +1 -1
- package/fesm2015/bx-rest.mjs +970 -842
- package/fesm2015/bx-rest.mjs.map +1 -1
- package/fesm2020/bx-rest.mjs +973 -840
- package/fesm2020/bx-rest.mjs.map +1 -1
- package/map/lists.d.ts +1 -1
- package/map/task.d.ts +4 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/request/bizproc/activity.d.ts +12 -0
- package/request/bizproc/event.d.ts +8 -0
- package/request/bizproc/robot.d.ts +11 -0
- package/request/bizproc/task.d.ts +9 -0
- package/request/bizproc/workflow/instance.d.ts +8 -0
- package/request/bizproc/workflow/template.d.ts +16 -0
- package/request/bizproc/workflow.d.ts +20 -0
- package/request/bizproc.d.ts +16 -0
- package/request/lists/element.d.ts +2 -1
- package/request/lists.d.ts +1 -1
- package/request/tasks/task.d.ts +9 -1
- package/request/user.d.ts +7 -7
- package/request-navvy/bizproc/workflow.d.ts +12 -0
- package/request-navvy/bizproc.d.ts +24 -0
- package/request-navvy/disk/file.d.ts +7 -9
- package/request-navvy/disk/folder.d.ts +3 -1
- package/request-navvy/disk/storage.d.ts +5 -2
- package/request-navvy/lists/element.d.ts +6 -2
- package/request-navvy/lists.d.ts +1 -8
- package/request-navvy/tasks/task.d.ts +13 -3
- package/request-navvy/user.d.ts +12 -9
- package/rest.d.ts +13 -9
- package/services/http/HttpBX.d.ts +6 -6
- package/services/http/base/base.d.ts +4 -4
- package/services/http/base/http.d.ts +3 -3
- package/services/http/http.d.ts +3 -12
- package/services/http/sessionKey.d.ts +3 -23
- package/services/navvy.d.ts +11 -0
- package/services/vanilla/sessionStorage.d.ts +7 -0
- package/settings.d.ts +1 -1
- package/typification/auth/save.d.ts +1 -1
- package/typification/rest/base/OrderOptions.d.ts +1 -0
- package/typification/rest/base/sort.d.ts +1 -0
- package/typification/rest/bizproc/base/filedEnum.d.ts +1 -0
- package/typification/rest/bizproc/workflow/start.d.ts +5 -0
- package/typification/rest/bizproc/workflow/template/list.d.ts +8 -0
- package/typification/rest/lists/element/add.d.ts +9 -0
- package/typification/rest/task/base/fieldsName.d.ts +1 -0
- package/typification/rest/{task/fieldsForSend.d.ts → tasks/task/add.d.ts} +1 -1
- package/typification/rest/tasks/task/get.d.ts +5 -0
- package/typification/rest/tasks/task/list.d.ts +65 -0
- package/typification/rest/user/get.d.ts +7 -2
- package/esm2020/store/auth.mjs +0 -26
- package/esm2020/store/users.mjs +0 -67
- package/esm2020/typification/rest/task/fieldsForSend.mjs +0 -2
- package/store/auth.d.ts +0 -20
- package/store/users.d.ts +0 -34
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { throwError,
|
|
2
|
-
import { catchError, map } from 'rxjs/operators';
|
|
1
|
+
import { throwError, mergeMap } from 'rxjs';
|
|
3
2
|
import { Injectable } from '@angular/core';
|
|
4
3
|
import SnackBarService from '../../services/snack-bar/snack-bar.service';
|
|
5
4
|
import SessionKeyServices from '../../services/http/sessionKey';
|
|
@@ -7,115 +6,50 @@ import clone from 'just-clone';
|
|
|
7
6
|
import { BaseHttpServices } from './base/http';
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
9
8
|
import * as i1 from "@angular/common/http";
|
|
10
|
-
export
|
|
9
|
+
export class HttpServices extends BaseHttpServices {
|
|
11
10
|
constructor(http, snackBar, session) {
|
|
12
11
|
super(http, snackBar);
|
|
13
12
|
this.session = session;
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*/
|
|
27
|
-
branch(param) {
|
|
28
|
-
let prepareParam = Object.entries(this.prepareBatch(param));
|
|
29
|
-
const size = 50; // больше не отдаст
|
|
30
|
-
let subarray = []; //массив в который будет выведен результат.
|
|
31
|
-
for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {
|
|
32
|
-
subarray[i] = prepareParam.slice((i * size), (i * size) + size);
|
|
14
|
+
httpPost(url, params = {}, settings = this.defSettings) {
|
|
15
|
+
let auth = this.session.getAuthParams();
|
|
16
|
+
if (auth) {
|
|
17
|
+
const paramsClone = clone(params);
|
|
18
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
19
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
20
|
+
if (v) {
|
|
21
|
+
return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings));
|
|
22
|
+
}
|
|
23
|
+
return throwError(() => 'get base url error');
|
|
24
|
+
}));
|
|
33
25
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
cmd: Object.assign({}, ...i.map(x => {
|
|
38
|
-
return { [x[0]]: x[1] };
|
|
39
|
-
}))
|
|
40
|
-
});
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
prepareBatch(param) {
|
|
44
|
-
let res = Object.keys(param).reduce((obj, key) => {
|
|
45
|
-
obj[key] = '';
|
|
46
|
-
return obj;
|
|
47
|
-
}, {});
|
|
48
|
-
for (let key in param) {
|
|
49
|
-
if (typeof key === 'string' || typeof key === 'number' && param[key].param) {
|
|
50
|
-
res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString();
|
|
51
|
-
}
|
|
26
|
+
else {
|
|
27
|
+
this.snackBar.error('Error: Auth not get');
|
|
28
|
+
return throwError(() => 'auth not get');
|
|
52
29
|
}
|
|
53
|
-
return res;
|
|
54
30
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))
|
|
61
|
-
// }
|
|
62
|
-
httpPost(url, params = {}, textError = '', settings = this.defSettings) {
|
|
63
|
-
return this.session.getAuthParams().pipe(mergeMap(auth => {
|
|
64
|
-
if (auth) {
|
|
65
|
-
const paramsClone = clone(params);
|
|
66
|
-
paramsClone[this.session.getKeyAuth()] = auth;
|
|
67
|
-
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
68
|
-
if (v) {
|
|
69
|
-
return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))
|
|
70
|
-
.pipe(take(1), catchError(err => {
|
|
71
|
-
if (!textError.length && err.error.error_description) {
|
|
72
|
-
textError = err.error.error_description;
|
|
73
|
-
}
|
|
74
|
-
this.snackBar.error('Ошибка: ' + textError);
|
|
75
|
-
return throwError(() => err);
|
|
76
|
-
}));
|
|
77
|
-
}
|
|
78
|
-
return throwError(() => 'get base url error');
|
|
79
|
-
}));
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.snackBar.error('Error: Auth not get');
|
|
83
|
-
return throwError(() => 'auth not get');
|
|
31
|
+
httpGet(url, params = {}, settings = this.defSettings) {
|
|
32
|
+
let auth = this.session.getAuthParams();
|
|
33
|
+
if (auth) {
|
|
34
|
+
if (params === null) {
|
|
35
|
+
params = {};
|
|
84
36
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
37
|
+
const paramsClone = clone(params);
|
|
38
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
39
|
+
let options = {
|
|
40
|
+
params: this.getHttpParamsGet(paramsClone)
|
|
41
|
+
};
|
|
42
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
43
|
+
if (v) {
|
|
44
|
+
return this.http.get(this.prepareBaseAddress(v) + url, options);
|
|
92
45
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return this.http.get(this.prepareBaseAddress(v) + url, options).pipe(take(1), catchError(err => {
|
|
101
|
-
if (!textError.length && err.error.error_description) {
|
|
102
|
-
textError = err.error.error_description;
|
|
103
|
-
}
|
|
104
|
-
this.snackBar.error('Ошибка: ' + textError);
|
|
105
|
-
return throwError(() => err);
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
return throwError(() => 'get base url error');
|
|
109
|
-
}));
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
this.snackBar.error('Error: Auth not get');
|
|
113
|
-
return throwError(() => 'auth not get');
|
|
114
|
-
}
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
117
|
-
getNameMethod(arr) {
|
|
118
|
-
return arr.join('.');
|
|
46
|
+
return throwError(() => 'get base url error');
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.snackBar.error('Error: Auth not get');
|
|
51
|
+
return throwError(() => 'auth not get');
|
|
52
|
+
}
|
|
119
53
|
}
|
|
120
54
|
}
|
|
121
55
|
HttpServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServices, deps: [{ token: i1.HttpClient }, { token: SnackBarService }, { token: SessionKeyServices }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -126,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
126
60
|
providedIn: 'root'
|
|
127
61
|
}]
|
|
128
62
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: SnackBarService }, { type: SessionKeyServices }]; } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvaHR0cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLGVBQWUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUN4RSxPQUFPLGtCQUFrQixNQUFNLGdDQUFnQyxDQUFBO0FBQy9ELE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQU85QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7OztBQUs5QyxNQUFNLENBQUMsT0FBTyxPQUFPLFlBQWEsU0FBUSxnQkFBZ0I7SUFFdEQsWUFBWSxJQUFnQixFQUFFLFFBQXlCLEVBQVMsT0FBMkI7UUFDdkYsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtRQUR1QyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtJQUUzRixDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBb0MsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0RSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO2dCQUNmLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzVCO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDbEUsSUFBSSxZ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QUFNO2dCQUNILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7Z0JBQzFDLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFBO2FBQzFDO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBYTtRQUN2QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQzs7eUdBbEpnQixZQUFZLDRDQWQxQixlQUFlLGFBQ2Ysa0JBQWtCOzZHQWFKLFlBQVksY0FGakIsTUFBTTsyRkFFRCxZQUFZO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjttRkFiTSxlQUFlLFlBQ2Ysa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgdGFrZSwgbWVyZ2VNYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCBTbmFja0JhclNlcnZpY2UgZnJvbSAnLi4vLi4vc2VydmljZXMvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJ1xyXG5pbXBvcnQgU2Vzc2lvbktleVNlcnZpY2VzIGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvc2Vzc2lvbktleSdcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXHJcbmltcG9ydCB7IGlIdHRwUGFyYW1TZXR0aW5ncyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3NldHRpbmdzJ1xyXG5pbXBvcnQge1xyXG4gICAgaUJhdGNoUmVxdWVzdEFuc3dlciwgaUJhdGNoUmVxdWVzdFBhcmFtLFxyXG4gICAgaUJhdGNoUmVxdWVzdFBhcmFtQXJyLFxyXG4gICAgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCxcclxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXRjaC9iYXRjaFJlcXVlc3RQYXJhbSdcclxuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlcyB9IGZyb20gJy4vYmFzZS9odHRwJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBTZXJ2aWNlcyBleHRlbmRzIEJhc2VIdHRwU2VydmljZXMge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsIHB1YmxpYyBzZXNzaW9uOiBTZXNzaW9uS2V5U2VydmljZXMpIHtcclxuICAgICAgICBzdXBlcihodHRwLCBzbmFja0JhcilcclxuICAgIH1cclxuXHJcbiAgICB0aW1lTm93T25TZXJ2ZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cEdldDx7IHJlc3VsdD86IERhdGUsIGVycm9yPzogc3RyaW5nIH0+KCdzZXJ2ZXIudGltZScpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHYucmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDQrdGC0L4g0L/QuNC30LTQtdGGINCwINC90LUg0LzQtdGC0L7QtFxyXG4gICAgICogQHBhcmFtIHBhcmFtXHJcbiAgICAgKi9cclxuICAgIGJyYW5jaDxULCBBPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIGxldCBwcmVwYXJlUGFyYW0gPSBPYmplY3QuZW50cmllczxzdHJpbmc+KHRoaXMucHJlcGFyZUJhdGNoPFQ+KHBhcmFtKSlcclxuICAgICAgICBjb25zdCBzaXplID0gNTAgLy8g0LHQvtC70YzRiNC1INC90LUg0L7RgtC00LDRgdGCXHJcbiAgICAgICAgbGV0IHN1YmFycmF5ID0gW10gLy/QvNCw0YHRgdC40LIg0LIg0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQstGL0LLQtdC00LXQvSDRgNC10LfRg9C70YzRgtCw0YIuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmNlaWwocHJlcGFyZVBhcmFtLmxlbmd0aCAvIHNpemUpOyBpKyspIHtcclxuICAgICAgICAgICAgc3ViYXJyYXlbaV0gPSBwcmVwYXJlUGFyYW0uc2xpY2UoKGkgKiBzaXplKSwgKGkgKiBzaXplKSArIHNpemUpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oXHJcbiAgICAgICAgICAgIHN1YmFycmF5Lm1hcChpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBQb3N0KCdiYXRjaC5qc29uJywge1xyXG4gICAgICAgICAgICAgICAgICAgIGhhbHQ6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgY21kOiBPYmplY3QuYXNzaWduKHt9LCAuLi5pLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbeFswXV06IHhbMV19XHJcbiAgICAgICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICkgYXMgT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10+XHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZUJhdGNoPFQ+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAge1xyXG4gICAgICAgIGxldCByZXM6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAgPSBPYmplY3Qua2V5cyhwYXJhbSkucmVkdWNlKFxyXG4gICAgICAgICAgICAob2JqLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgICAgIG9ialtrZXldID0gJyc7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7fSBhcyBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwXHJcbiAgICAgICAgKTtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcGFyYW0pIHtcclxuICAgICAgICAgICAgaWYodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGtleSA9PT0gJ251bWJlcicgJiYgcGFyYW1ba2V5XS5wYXJhbSkge1xyXG4gICAgICAgICAgICAgICAgcmVzW2tleV0gPSBwYXJhbVtrZXldLm5hbWUgKyAnPycgKyB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1ba2V5XS5wYXJhbSkudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXNcclxuICAgIH1cclxuXHJcbiAgICAvLyBtYXBCcmFuY2hSZXN1bHQ8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pe1xyXG4gICAgLy8gICAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSBhcyB7W2tleTprZXlCYXRjaF06IFR9XHJcbiAgICAvLyB9XHJcbiAgICAvL1xyXG4gICAgLy8gbWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleTxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSk6IFRbXXtcclxuICAgIC8vICAgICByZXR1cm4gZmxhdHRlbjxUPihPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSlcclxuICAgIC8vIH1cclxuXHJcbiAgICBvdmVycmlkZSBodHRwUG9zdDxUPih1cmw6IHN0cmluZyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogYW55ID0ge30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RXJyb3IgPSAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXHJcbiAgICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhdXRoID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhdXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUIHwgdW5kZWZpbmVkPihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEh0dHBQYXJhbXNQb3N0KHBhcmFtc0Nsb25lLCBuZXcgRm9ybURhdGEoKSwgZmFsc2UsIFtdLCBzZXR0aW5ncykpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGV4dEVycm9yLmxlbmd0aCAmJiBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RXJyb3IgPSBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQntGI0LjQsdC60LA6ICcgKyB0ZXh0RXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxyXG4gICAgICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdFcnJvcjogQXV0aCBub3QgZ2V0JylcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0JylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpXHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgaHR0cEdldDxUPihcclxuICAgICAgICB1cmw6IHN0cmluZyxcclxuICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxyXG4gICAgICAgIHRleHRFcnJvciA9ICcnLFxyXG4gICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXHJcbiAgICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhdXRoID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhdXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcyA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSB7fVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXNDbG9uZVt0aGlzLnNlc3Npb24uZ2V0S2V5QXV0aCgpXSA9IGF1dGhcclxuICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1zQ2xvbmUpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIG9wdGlvbnMpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGV4dEVycm9yLmxlbmd0aCAmJiBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RXJyb3IgPSBlcnIuZXJyb3IuZXJyb3JfZGVzY3JpcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQntGI0LjQsdC60LA6ICcgKyB0ZXh0RXJyb3IpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2dldCBiYXNlIHVybCBlcnJvcicpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdFcnJvcjogQXV0aCBub3QgZ2V0JylcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0JylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmFtZU1ldGhvZChhcnI6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgcmV0dXJuIGFyci5qb2luKCcuJylcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvaHR0cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sZUFBZSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3hFLE9BQU8sa0JBQWtCLE1BQU0sZ0NBQWdDLENBQUE7QUFDL0QsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTs7O0FBSzlDLE1BQU0sT0FBTyxZQUFhLFNBQVEsZ0JBQWdCO0lBRWhELFlBQVksSUFBZ0IsRUFBRSxRQUF5QixFQUFTLE9BQTJCO1FBQ3pGLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFEeUMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7SUFFM0YsQ0FBQztJQUVRLFFBQVEsQ0FBSSxHQUFXLEVBQ1gsU0FBYyxFQUFFLEVBQ2hCLFdBQStCLElBQUksQ0FBQyxXQUFXO1FBRWxFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDdkMsSUFBSSxJQUFJLEVBQUU7WUFDUixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDakMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUE7WUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxFQUFFO29CQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7aUJBQzVFO2dCQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUE7WUFDL0MsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBQzFDLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1NBQ3hDO0lBRUgsQ0FBQztJQUVRLE9BQU8sQ0FDZCxHQUFXLEVBQ1gsU0FBYyxFQUFFLEVBQ2hCLFdBQStCLElBQUksQ0FBQyxXQUFXO1FBRS9DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUE7UUFDdkMsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUU7Z0JBQ25CLE1BQU0sR0FBRyxFQUFFLENBQUE7YUFDWjtZQUNELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUNqQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQTtZQUM3QyxJQUFJLE9BQU8sR0FBRztnQkFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQzthQUMzQyxDQUFBO1lBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxFQUFFO29CQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtpQkFDbkU7Z0JBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtZQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFBO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7WUFDMUMsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEM7SUFDSCxDQUFDOzt5R0F6RFUsWUFBWSw0Q0FUbEIsZUFBZSxhQUNmLGtCQUFrQjs2R0FRWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjttRkFSTSxlQUFlLFlBQ2Ysa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgU25hY2tCYXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSdcclxuaW1wb3J0IFNlc3Npb25LZXlTZXJ2aWNlcyBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL3Nlc3Npb25LZXknXHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xyXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcclxuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlcyB9IGZyb20gJy4vYmFzZS9odHRwJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cFNlcnZpY2VzIGV4dGVuZHMgQmFzZUh0dHBTZXJ2aWNlcyB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGh0dHA6IEh0dHBDbGllbnQsIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsIHB1YmxpYyBzZXNzaW9uOiBTZXNzaW9uS2V5U2VydmljZXMpIHtcclxuICAgIHN1cGVyKGh0dHAsIHNuYWNrQmFyKVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaHR0cFBvc3Q8VD4odXJsOiBzdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcclxuICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXHJcbiAgICBpZiAoYXV0aCkge1xyXG4gICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcclxuICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXHJcbiAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QmFzZVVybCgpLnBpcGUobWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUIHwgdW5kZWZpbmVkPihcclxuICAgICAgICAgICAgdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SHR0cFBhcmFtc1Bvc3QocGFyYW1zQ2xvbmUsIG5ldyBGb3JtRGF0YSgpLCBmYWxzZSwgW10sIHNldHRpbmdzKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2dldCBiYXNlIHVybCBlcnJvcicpXHJcbiAgICAgIH0pKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignRXJyb3I6IEF1dGggbm90IGdldCcpXHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGh0dHBHZXQ8VD4oXHJcbiAgICB1cmw6IHN0cmluZyxcclxuICAgIHBhcmFtczogYW55ID0ge30sXHJcbiAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xyXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXHJcbiAgICBpZiAoYXV0aCkge1xyXG4gICAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XHJcbiAgICAgICAgcGFyYW1zID0ge31cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcclxuICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXHJcbiAgICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxyXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIG9wdGlvbnMpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdFcnJvcjogQXV0aCBub3QgZ2V0JylcclxuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,125 +1,144 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
2
|
import Cookies from '../../services/vanilla/сookies';
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import { saveAccessToken } from '../../store/auth';
|
|
6
|
-
import { map } from 'rxjs/operators';
|
|
3
|
+
import { of, Subscription } from 'rxjs';
|
|
4
|
+
// import { ActivatedRoute, ParamMap } from '@angular/router'
|
|
7
5
|
import { BaseServices } from '../base';
|
|
8
6
|
import { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage';
|
|
9
|
-
import {
|
|
7
|
+
import { BX_REST_SETTINGS } from '../../settings';
|
|
8
|
+
import { SessionStorage } from '../vanilla/sessionStorage';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "@angular/router";
|
|
13
|
-
import * as i3 from "../../typification/rest/api-lib";
|
|
10
|
+
import * as i1 from "../../typification/rest/api-lib";
|
|
14
11
|
export default class SessionKeyServices extends BaseServices {
|
|
15
|
-
constructor(
|
|
12
|
+
constructor(
|
|
13
|
+
// private route: ActivatedRoute,
|
|
14
|
+
BxApiLib) {
|
|
16
15
|
super();
|
|
17
|
-
this.store = store;
|
|
18
|
-
this.route = route;
|
|
19
16
|
this.BxApiLib = BxApiLib;
|
|
20
17
|
this.authHave = false;
|
|
21
18
|
this.subscribe = {
|
|
22
19
|
authData: new Subscription()
|
|
23
20
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
let save = {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
status: (param.status) ? param.status : undefined,
|
|
50
|
-
user_id: (param.user_id) ? param.user_id : undefined,
|
|
51
|
-
type: (param.type) ? param.type : undefined,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
21
|
+
let authData = SessionStorage.getItem(this.constructor.name);
|
|
22
|
+
if ((authData && !authData.access_token.length) || !authData) {
|
|
23
|
+
// получаем токен по собственным каналом (в битриксе приложение trace:apps.trace)
|
|
24
|
+
window.addEventListener('message', (event) => {
|
|
25
|
+
if (event.origin !== window.origin) { // проверяем что это не наше сообщение (с текущего приложения)
|
|
26
|
+
if (event.data && event.data.param) {
|
|
27
|
+
if (typeof event.data.param === 'string') {
|
|
28
|
+
event.data.param = JSON.parse(event.data.param);
|
|
29
|
+
}
|
|
30
|
+
if (event.data.param.access_token) {
|
|
31
|
+
let param = event.data.param;
|
|
32
|
+
let save = {
|
|
33
|
+
access_token: (param.access_token) ? param.access_token : undefined,
|
|
34
|
+
client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,
|
|
35
|
+
domain: (param.domain) ? param.domain : undefined,
|
|
36
|
+
expires: (param.expires) ? param.expires : undefined,
|
|
37
|
+
expires_in: (param.expires_in) ? param.expires_in : undefined,
|
|
38
|
+
member_id: (param.member_id) ? param.member_id : undefined,
|
|
39
|
+
refresh_token: (param.refresh_token) ? param.refresh_token : undefined,
|
|
40
|
+
scope: (param.scope) ? param.scope : undefined,
|
|
41
|
+
server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,
|
|
42
|
+
status: (param.status) ? param.status : undefined,
|
|
43
|
+
user_id: (param.user_id) ? param.user_id : undefined,
|
|
44
|
+
type: (param.type) ? param.type : undefined,
|
|
45
|
+
};
|
|
54
46
|
if (Object.keys(save).length && save.access_token) {
|
|
55
|
-
this.
|
|
47
|
+
SessionStorage.setItem(this.constructor.name, save);
|
|
56
48
|
this.subscribeAll();
|
|
57
49
|
}
|
|
58
50
|
}
|
|
59
51
|
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
/*
|
|
55
|
+
this.subscribe.authData = this.route.queryParamMap
|
|
56
|
+
.pipe(
|
|
57
|
+
filter(param =>
|
|
58
|
+
param.has('AUTH_ID')
|
|
59
|
+
|| param.has('access_token')
|
|
60
|
+
|| param.has('REFRESH_ID')
|
|
61
|
+
|| param.has('DOMAIN')
|
|
62
|
+
)
|
|
63
|
+
)
|
|
64
|
+
.subscribe((param: ParamMap) => {
|
|
65
|
+
if(!save) {
|
|
66
|
+
let save = {
|
|
67
|
+
access_token: undefined,
|
|
68
|
+
client_endpoint: (param.client_endpoint) ? param.client_endpoint : undefined,
|
|
69
|
+
domain: (param.domain) ? param.domain : undefined,
|
|
70
|
+
expires: (param.expires) ? param.expires : undefined,
|
|
71
|
+
expires_in: (param.expires_in) ? param.expires_in : undefined,
|
|
72
|
+
member_id: (param.member_id) ? param.member_id : undefined,
|
|
73
|
+
refresh_token: (param.refresh_token) ? param.refresh_token : undefined,
|
|
74
|
+
scope: (param.scope) ? param.scope : undefined,
|
|
75
|
+
server_endpoint: (param.server_endpoint) ? param.server_endpoint : undefined,
|
|
76
|
+
status: (param.status) ? param.status : undefined,
|
|
77
|
+
user_id: (param.user_id) ? param.user_id : undefined,
|
|
78
|
+
type: (param.type) ? param.type : undefined,
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (param.has('AUTH_ID') && !authData?.access_token.length) {
|
|
83
|
+
const get = param.get('AUTH_ID')
|
|
84
|
+
if (get) {
|
|
85
|
+
Cookies.set('auth', get) //TODO: потом убрать
|
|
86
|
+
save.access_token = get
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (param.has('access_token') && !authData.access_token.length) {
|
|
91
|
+
const get = param.get('access_token')
|
|
92
|
+
if (get) {
|
|
93
|
+
Cookies.set('auth', get) // TODO: потом убрать
|
|
94
|
+
save.access_token = get
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (param.has('REFRESH_ID') && !authData.refresh_token.length) {
|
|
99
|
+
const get = param.get('REFRESH_ID')
|
|
100
|
+
if (get) {
|
|
101
|
+
save.refresh_token = get
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if (param.has('DOMAIN') && !authData.domain.length) {
|
|
106
|
+
const get = param.get('DOMAIN')
|
|
107
|
+
if (get) {
|
|
108
|
+
save.domain = get
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (Object.keys(save).length && save.access_token) {
|
|
112
|
+
SessionStorage.setItem(this.constructor.name, save)
|
|
113
|
+
this.subscribeAll()
|
|
114
|
+
} else {
|
|
115
|
+
// если битрикс не шлёт нужные мне параметры на прямую
|
|
116
|
+
// просим их мне отдать так как описано это в документации
|
|
117
|
+
let f = () => {
|
|
118
|
+
if (this.BxApiLib.BX24) {
|
|
119
|
+
const initDate = this.BxApiLib.BX24.getAuth()
|
|
120
|
+
SessionStorage.setItem(this.constructor.name, save)
|
|
108
121
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
this.BxApiLib.init(f)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
})
|
|
128
|
+
*/
|
|
129
|
+
}
|
|
130
|
+
else if (this.getAuth().length) {
|
|
131
|
+
this.authHave = true;
|
|
132
|
+
}
|
|
133
|
+
this.authData = authData;
|
|
116
134
|
}
|
|
117
135
|
subscribeAll() {
|
|
118
136
|
this.subscribe.authData.unsubscribe();
|
|
119
137
|
}
|
|
120
138
|
getAuth() {
|
|
121
|
-
switch (
|
|
139
|
+
switch (BX_REST_SETTINGS.auth.key) {
|
|
122
140
|
case 'auth':
|
|
141
|
+
console.log('Cookies.get(\'auth\')', Cookies.get('auth'));
|
|
123
142
|
return Cookies.get('auth');
|
|
124
143
|
default:
|
|
125
144
|
if (window.BX && window.BX.bitrix_sessid()) {
|
|
@@ -135,8 +154,8 @@ export default class SessionKeyServices extends BaseServices {
|
|
|
135
154
|
}
|
|
136
155
|
}
|
|
137
156
|
getKeyAuth() {
|
|
138
|
-
if (
|
|
139
|
-
return
|
|
157
|
+
if (BX_REST_SETTINGS.auth.key.length) {
|
|
158
|
+
return BX_REST_SETTINGS.auth.key;
|
|
140
159
|
}
|
|
141
160
|
else {
|
|
142
161
|
if (window.BX && window.BX.bitrix_sessid()
|
|
@@ -171,32 +190,28 @@ export default class SessionKeyServices extends BaseServices {
|
|
|
171
190
|
return false;
|
|
172
191
|
}
|
|
173
192
|
getAuthParams() {
|
|
174
|
-
|
|
193
|
+
console.log('BX_REST_SETTINGS', BX_REST_SETTINGS);
|
|
194
|
+
switch (BX_REST_SETTINGS.auth.source) {
|
|
175
195
|
case 'cookies':
|
|
176
|
-
return
|
|
196
|
+
return this.getAuth();
|
|
177
197
|
default:
|
|
178
|
-
return this.authData
|
|
198
|
+
return (this.authData) ? this.authData.access_token : undefined;
|
|
179
199
|
}
|
|
180
200
|
}
|
|
181
201
|
getBaseUrl() {
|
|
182
|
-
return of(this.prepareBaseAddress(
|
|
202
|
+
return of(this.prepareBaseAddress(BX_REST_SETTINGS.urls.home, 'rest'));
|
|
183
203
|
// return this.authData$.pipe( // TODO: разобраться позже
|
|
184
204
|
// take(1),
|
|
185
205
|
// map(v => (v && v.domain) ? this.prepareBaseAddress(v.domain) : undefined)
|
|
186
206
|
// )
|
|
187
207
|
}
|
|
188
208
|
}
|
|
189
|
-
SessionKeyServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, deps: [{ token: i1.
|
|
209
|
+
SessionKeyServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, deps: [{ token: i1.RestServices }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
190
210
|
SessionKeyServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, providedIn: 'root' });
|
|
191
211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, decorators: [{
|
|
192
212
|
type: Injectable,
|
|
193
213
|
args: [{
|
|
194
214
|
providedIn: 'root'
|
|
195
215
|
}]
|
|
196
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
197
|
-
type: Optional
|
|
198
|
-
}, {
|
|
199
|
-
type: Inject,
|
|
200
|
-
args: [REST_SETTINGS]
|
|
201
|
-
}] }]; } });
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbktleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvc2Vzc2lvbktleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDNUQsT0FBTyxPQUFPLE1BQU0sZ0NBQWdDLENBQUE7QUFHcEQsd0VBQXdFO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFakUsT0FBTyxFQUFFLGVBQWUsRUFBMkIsTUFBTSxrQkFBa0IsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLElBQUksWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFFMUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7OztBQU85QyxNQUFNLENBQUMsT0FBTyxPQUFPLGtCQUFtQixTQUFRLFlBQVk7SUFXMUQsWUFDUyxLQUEyQyxFQUMxQyxLQUFxQixFQUN0QixRQUFzQixFQUNNLGFBS2xDO1FBRUQsS0FBSyxFQUFFLENBQUE7UUFWQSxVQUFLLEdBQUwsS0FBSyxDQUFzQztRQUMxQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFjO1FBWi9CLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFHaEIsY0FBUyxHQUFHO1lBQ1YsUUFBUSxFQUFFLElBQUksWUFBWSxFQUFFO1NBQzdCLENBQUE7UUFnQkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJ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QUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDaEMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELGFBQWE7UUFDWCxRQUFRLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUMzQjtnQkFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQzNDLENBQUE7U0FDSjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ3hFLHlEQUF5RDtRQUN6RCxhQUFhO1FBQ2IsOEVBQThFO1FBQzlFLElBQUk7SUFDTixDQUFDOzsrR0ExTWtCLGtCQUFrQixpR0FlZixhQUFhO21IQWZoQixrQkFBa0IsY0FGekIsTUFBTTsyRkFFQyxrQkFBa0I7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFnQkksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgQ29va2llcyBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YW5pbGxhL9GBb29raWVzJ1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCBzYXZlQXBwbGljYXRpb25BdXRoIGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9hdXRoL3NhdmUnXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCBhcyBlbnYgfSBmcm9tICdieC1yZXN0L2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiwgdGFrZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXAgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBzYXZlQWNjZXNzVG9rZW4sIHNhdmVBcHBsaWNhdGlvbkF1dGhQYXRoIH0gZnJvbSAnLi4vLi4vc3RvcmUvYXV0aCdcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VzIH0gZnJvbSAnLi4vYmFzZSdcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2VzIGFzIExvY2FsU3RvcmFnZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZhbmlsbGEvbG9jYWxTdG9yYWdlJ1xuaW1wb3J0IHsgUmVzdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYXBpLWxpYidcbmltcG9ydCB7IFJFU1RfU0VUVElOR1MgfSBmcm9tICcuLi8uLi9zZXR0aW5ncydcblxudHlwZSBJS2V5QXV0aCA9ICdzZXNzaWQnIHwgJ2F1dGgnIHwgc3RyaW5nXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Vzc2lvbktleVNlcnZpY2VzIGV4dGVuZHMgQmFzZVNlcnZpY2VzIHtcblxuICBhdXRoSGF2ZSA9IGZhbHNlXG4gIGF1dGhEYXRhJDogT2JzZXJ2YWJsZTxzYXZlQXBwbGljYXRpb25BdXRoPlxuICBhdXRoRGF0YTogc2F2ZUFwcGxpY2F0aW9uQXV0aCB8IHVuZGVmaW5lZFxuICBzdWJzY3JpYmUgPSB7XG4gICAgYXV0aERhdGE6IG5ldyBTdWJzY3JpcHRpb24oKVxuICB9XG5cbiAgUkVTVF9TRVRUSU5HU1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdG9yZTogU3RvcmU8eyBhdXRoOiBzYXZlQXBwbGljYXRpb25BdXRoIH0+LFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHB1YmxpYyBCeEFwaUxpYjogUmVzdFNlcnZpY2VzLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUkVTVF9TRVRUSU5HUykgUkVTVF9TRVRUSU5HUzoge1xuICAgICAgYXV0aDogJ2Nvb2tpZXMnLFxuICAgICAgdXJsczoge1xuICAgICAgICBob21lOiAnJ1xuICAgICAgfVxuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuUkVTVF9TRVRUSU5HUyA9IFJFU1RfU0VUVElOR1NcbiAgICB0aGlzLmF1dGhEYXRhJCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdhdXRoJylcbiAgICB0aGlzLmF1dGhEYXRhJC5zdWJzY3JpYmUoYXV0aERhdGEgPT4ge1xuICAgICAgaWYgKChhdXRoRGF0YSAmJiAhYXV0aERhdGEuYWNjZXNzX3Rva2VuLmxlbmd0aCkgfHwgIWF1dGhEYXRhKSB7XG4gICAgICAgIC8vINC/0L7Qu9GD0YfQsNC10Lwg0YLQvtC60LXQvSDQv9C+INGB0L7QsdGB0YLQstC10L3QvdGL0Lwg0LrQsNC90LDQu9C+0LwgKNCyINCx0LjRgtGA0LjQutGB0LUg0L/RgNC40LvQvtC20LXQvdC40LUgdHJhY2U6YXBwcy50cmFjZSlcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gIT09IHdpbmRvdy5vcmlnaW4pIHsgLy8g0L/RgNC+0LLQtdGA0Y/QtdC8INGH0YLQviDRjdGC0L4g0L3QtSDQvdCw0YjQtSDRgdC+0L7QsdGJ0LXQvdC40LUgKNGBINGC0LXQutGD0YnQtdCz0L4g0L/RgNC40LvQvtC20LXQvdC40Y8pXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLnBhcmFtKSB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZGF0YS5wYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBldmVudC5kYXRhLnBhcmFtID0gSlNPTi5wYXJzZShldmVudC5kYXRhLnBhcmFtKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgbGV0IHNhdmU6IHNhdmVBcHBsaWNhdGlvbkF1dGhQYXRoID0ge31cblxuICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5wYXJhbS5hY2Nlc3NfdG9rZW4pIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW0gPSBldmVudC5kYXRhLnBhcmFtO1xuICAgICAgICAgICAgICAgIHNhdmUuYWNjZXNzX3Rva2VuID0gZXZlbnQuZGF0YS5wYXJhbS5hY2Nlc3NfdG9rZW5cbiAgICAgICAgICAgICAgICBzYXZlID0ge1xuICAgICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuOiAocGFyYW0uYWNjZXNzX3Rva2VuKSA/IHBhcmFtLmFjY2Vzc190b2tlbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIGNsaWVudF9lbmRwb2ludDogKHBhcmFtLmNsaWVudF9lbmRwb2ludCkgPyBwYXJhbS5jbGllbnRfZW5kcG9pbnQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBkb21haW46IChwYXJhbS5kb21haW4pID8gcGFyYW0uZG9tYWluIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgZXhwaXJlczogKHBhcmFtLmV4cGlyZXMpID8gcGFyYW0uZXhwaXJlcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIGV4cGlyZXNfaW46IChwYXJhbS5leHBpcmVzX2luKSA/IHBhcmFtLmV4cGlyZXNfaW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBtZW1iZXJfaWQ6IChwYXJhbS5tZW1iZXJfaWQpID8gcGFyYW0ubWVtYmVyX2lkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogKHBhcmFtLnJlZnJlc2hfdG9rZW4pID8gcGFyYW0ucmVmcmVzaF90b2tlbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIHNjb3BlOiAocGFyYW0uc2NvcGUpID8gcGFyYW0uc2NvcGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBzZXJ2ZXJfZW5kcG9pbnQ6IChwYXJhbS5zZXJ2ZXJfZW5kcG9pbnQpID8gcGFyYW0uc2VydmVyX2VuZHBvaW50IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAocGFyYW0uc3RhdHVzKSA/IHBhcmFtLnN0YXR1cyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIHVzZXJfaWQ6IChwYXJhbS51c2VyX2lkKSA/IHBhcmFtLnVzZXJfaWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAocGFyYW0udHlwZSkgPyBwYXJhbS50eXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhzYXZlKS5sZW5ndGggJiYgc2F2ZS5hY2Nlc3NfdG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNhdmVBY2Nlc3NUb2tlbihzYXZlKSlcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmliZUFsbCgpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmUuYXV0aERhdGEgPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXBcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihwYXJhbSA9PlxuICAgICAgICAgICAgICBwYXJhbS5oYXMoJ0FVVEhfSUQnKVxuICAgICAgICAgICAgICB8fCBwYXJhbS5oYXMoJ2FjY2Vzc190b2tlbicpXG4gICAgICAgICAgICAgIHx8IHBhcmFtLmhhcygnUkVGUkVTSF9JRCcpXG4gICAgICAgICAgICAgIHx8IHBhcmFtLmhhcygnRE9NQUlOJylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgocGFyYW06IFBhcmFtTWFwKSA9PiB7XG4gICAgICAgICAgICBsZXQgc2F2ZTogc2F2ZUFwcGxpY2F0aW9uQXV0aFBhdGggPSB7fVxuICAgICAgICAgICAgaWYgKHBhcmFtLmhhcygnQVVUSF9JRCcpICYmICFhdXRoRGF0YS5hY2Nlc3NfdG9rZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGdldCA9IHBhcmFtLmdldCgnQVVUSF9JRCcpXG4gICAgICAgICAgICAgIGlmIChnZXQpIHtcbiAgICAgICAgICAgICAgICBDb29raWVzLnNldCgnYXV0aCcsIGdldCkgLy8g0L/QvtGC0L7QvCDRg9Cx0YDQsNGC0YxcbiAgICAgICAgICAgICAgICBzYXZlLmFjY2Vzc190b2tlbiA9IGdldFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXJhbS5oYXMoJ2FjY2Vzc190b2tlbicpICYmICFhdXRoRGF0YS5hY2Nlc3NfdG9rZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGdldCA9IHBhcmFtLmdldCgnYWNjZXNzX3Rva2VuJylcbiAgICAgICAgICAgICAgaWYgKGdldCkge1xuICAgICAgICAgICAgICAgIENvb2tpZXMuc2V0KCdhdXRoJywgZ2V0KSAvLyDQv9C+0YLQvtC8INGD0LHRgNCw0YLRjFxuICAgICAgICAgICAgICAgIHNhdmUuYWNjZXNzX3Rva2VuID0gZ2V0XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmFtLmhhcygnUkVGUkVTSF9JRCcpICYmICFhdXRoRGF0YS5yZWZyZXNoX3Rva2VuLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBnZXQgPSBwYXJhbS5nZXQoJ1JFRlJFU0hfSUQnKVxuICAgICAgICAgICAgICBpZiAoZ2V0KSB7XG4gICAgICAgICAgICAgICAgc2F2ZS5yZWZyZXNoX3Rva2VuID0gZ2V0XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmFtLmhhcygnRE9NQUlOJykgJiYgIWF1dGhEYXRhLmRvbWFpbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgZ2V0ID0gcGFyYW0uZ2V0KCdET01BSU4nKVxuICAgICAgICAgICAgICBpZiAoZ2V0KSB7XG4gICAgICAgICAgICAgICAgc2F2ZS5kb21haW4gPSBnZXRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHNhdmUpLmxlbmd0aCAmJiBzYXZlLmFjY2Vzc190b2tlbikge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNhdmVBY2Nlc3NUb2tlbihzYXZlKSlcbiAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpYmVBbGwoKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8g0LXRgdC70Lgg0LHQuNGC0YDQuNC60YEg0L3QtSDRiNC70ZHRgiDQvdGD0LbQvdGL0LUg0LzQvdC1INC/0LDRgNCw0LzQtdGC0YDRiyDQvdCwINC/0YDRj9C80YPRjlxuICAgICAgICAgICAgICAvLyDQv9GA0L7RgdC40Lwg0LjRhSDQvNC90LUg0L7RgtC00LDRgtGMINGC0LDQuiDQutCw0Log0L7Qv9C40YHQsNC90L4g0Y3RgtC+INCyINC00L7QutGD0LzQtdC90YLQsNGG0LjQuFxuICAgICAgICAgICAgICBsZXQgZiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5CeEFwaUxpYi5CWDI0KSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpbml0RGF0ZSA9IHRoaXMuQnhBcGlMaWIuQlgyNC5nZXRBdXRoKClcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUFjY2Vzc1Rva2VuKGluaXREYXRlKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLkJ4QXBpTGliLmluaXQoZilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0QXV0aCgpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLmF1dGhIYXZlID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICB0aGlzLmF1dGhEYXRhID0gYXV0aERhdGFcbiAgICB9KVxuICB9XG5cbiAgc3Vic2NyaWJlQWxsKCkge1xuICAgIHRoaXMuc3Vic2NyaWJlLmF1dGhEYXRhLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGdldEF1dGgoKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKFJFU1RfU0VUVElOR1MuYXV0aC5rZXkpe1xuICAgICAgY2FzZSAnYXV0aCc6XG4gICAgICAgIHJldHVybiBDb29raWVzLmdldCgnYXV0aCcpXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoKDxhbnk+d2luZG93KS5CWCAmJiAoPGFueT53aW5kb3cpLkJYLmJpdHJpeF9zZXNzaWQoKSkge1xuICAgICAgICAgIHJldHVybiAoPGFueT53aW5kb3cpLkJYLmJpdHJpeF9zZXNzaWQoKVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0U2Vzc2lkKCkubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IHN0ciA9IHRoaXMuZ2V0U2Vzc2lkKClcbiAgICAgICAgICByZXR1cm4gKHN0cikgPyBzdHIgOiAnJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBDb29raWVzLmdldCgnYXV0aCcpXG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRLZXlBdXRoKCk6IElLZXlBdXRoIHtcbiAgICBpZihSRVNUX1NFVFRJTkdTLmF1dGgua2V5Lmxlbmd0aCl7XG4gICAgICByZXR1cm4gUkVTVF9TRVRUSU5HUy5hdXRoLmtleVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoKDxhbnk+d2luZG93KS5CWCAmJiAoPGFueT53aW5kb3cpLkJYLmJpdHJpeF9zZXNzaWQoKVxuICAgICAgICB8fCB0aGlzLmdldFNlc3NpZCgpLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gJ3Nlc3NpZCdcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnYXV0aCdcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRTZXNzaWQoKSB7XG4gICAgY29uc3QgY2hlY2sgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KCdzZXNzaWQnKVxuICAgIGlmIChjaGVjaykge1xuICAgICAgTG9jYWxTdG9yYWdlLnNldCgnc2Vzc2lkJywgY2hlY2spXG4gICAgICByZXR1cm4gY2hlY2tcbiAgICB9IGVsc2UgaWYgKExvY2FsU3RvcmFnZS5nZXQoJ3Nlc3NpZCcpKSB7XG4gICAgICByZXR1cm4gTG9jYWxTdG9yYWdlLmdldCgnc2Vzc2lkJylcbiAgICB9XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBzZXRBdXRoUGFyYW1zPFQ+KHBhcmFtczogYW55KTogYm9vbGVhbiB7XG4gICAgY29uc3Qga2V5QXV0aCA9IHRoaXMuZ2V0S2V5QXV0aCgpXG4gICAgaWYgKHBhcmFtc1trZXlBdXRoXSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2UgaWYgKGtleUF1dGgpIHtcbiAgICAgIHBhcmFtc1trZXlBdXRoXSA9IHRoaXMuZ2V0QXV0aCgpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGdldEF1dGhQYXJhbXMoKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBzd2l0Y2ggKFJFU1RfU0VUVElOR1MuYXV0aC5zb3VyY2UpIHtcbiAgICAgIGNhc2UgJ2Nvb2tpZXMnOlxuICAgICAgICByZXR1cm4gb2YodGhpcy5nZXRBdXRoKCkpXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5hdXRoRGF0YSQucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIG1hcCh2ID0+ICh2KSA/IHYuYWNjZXNzX3Rva2VuIDogdW5kZWZpbmVkKVxuICAgICAgICApXG4gICAgfVxuICB9XG5cbiAgZ2V0QmFzZVVybCgpOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBvZih0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh0aGlzLlJFU1RfU0VUVElOR1MudXJscy5ob21lLCAncmVzdCcpKVxuICAgIC8vIHJldHVybiB0aGlzLmF1dGhEYXRhJC5waXBlKCAvLyBUT0RPOiDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINC/0L7Qt9C20LVcbiAgICAvLyAgIHRha2UoMSksXG4gICAgLy8gICBtYXAodiA9PiAodiAmJiB2LmRvbWFpbikgPyB0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2LmRvbWFpbikgOiB1bmRlZmluZWQpXG4gICAgLy8gKVxuICB9XG5cbiAgLy8gZ2V0SG9tZVVybCgpOiBzdHJpbmcge1xuICAvLyAgICAgcmV0dXJuIGVudi51cmxzLmhvbWVcbiAgLy8gfVxufVxuIl19
|
|
216
|
+
}], ctorParameters: function () { return [{ type: i1.RestServices }]; } });
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbktleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2h0dHAvc2Vzc2lvbktleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFBO0FBQzVELE9BQU8sT0FBTyxNQUFNLGdDQUFnQyxDQUFBO0FBRXBELE9BQU8sRUFBYyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25ELDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUE7OztBQU8xRCxNQUFNLENBQUMsT0FBTyxPQUFPLGtCQUFtQixTQUFRLFlBQVk7SUFRMUQ7SUFDRSxpQ0FBaUM7SUFDMUIsUUFBc0I7UUFFN0IsS0FBSyxFQUFFLENBQUE7UUFGQSxhQUFRLEdBQVIsUUFBUSxDQUFjO1FBUi9CLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFFaEIsY0FBUyxHQUFHO1lBQ1YsUUFBUSxFQUFFLElBQUksWUFBWSxFQUFFO1NBQzdCLENBQUE7UUFPQyxJQUFJLFFBQVEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFjLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDNUQsaUZBQWlGO1lBQ2pGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFtQixFQUFF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WUFDcEMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ3ZCO2dCQUNFLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7U0FDbEU7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDdEUseURBQXlEO1FBQ3pELGFBQWE7UUFDYiw4RUFBOEU7UUFDOUUsSUFBSTtJQUNOLENBQUM7OytHQTVNa0Isa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGekIsTUFBTTsyRkFFQyxrQkFBa0I7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgQ29va2llcyBmcm9tICcuLi8uLi9zZXJ2aWNlcy92YW5pbGxhL9GBb29raWVzJ1xuaW1wb3J0IHNhdmVBcHBsaWNhdGlvbkF1dGggZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL2F1dGgvc2F2ZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuLy8gaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtTWFwIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VzIH0gZnJvbSAnLi4vYmFzZSdcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2VzIGFzIExvY2FsU3RvcmFnZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZhbmlsbGEvbG9jYWxTdG9yYWdlJ1xuaW1wb3J0IHsgUmVzdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYXBpLWxpYidcbmltcG9ydCB7IEJYX1JFU1RfU0VUVElOR1MgfSBmcm9tICcuLi8uLi9zZXR0aW5ncydcbmltcG9ydCBpQlhSZXN0QXV0aCBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vYXV0aC9zYXZlJ1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2UgfSBmcm9tICcuLi92YW5pbGxhL3Nlc3Npb25TdG9yYWdlJ1xuXG50eXBlIElLZXlBdXRoID0gJ3Nlc3NpZCcgfCAnYXV0aCcgfCBzdHJpbmdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZXNzaW9uS2V5U2VydmljZXMgZXh0ZW5kcyBCYXNlU2VydmljZXMge1xuXG4gIGF1dGhIYXZlID0gZmFsc2VcbiAgYXV0aERhdGE6IHNhdmVBcHBsaWNhdGlvbkF1dGggfCB1bmRlZmluZWRcbiAgc3Vic2NyaWJlID0ge1xuICAgIGF1dGhEYXRhOiBuZXcgU3Vic2NyaXB0aW9uKClcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHB1YmxpYyBCeEFwaUxpYjogUmVzdFNlcnZpY2VzLFxuICApIHtcbiAgICBzdXBlcigpXG4gICAgbGV0IGF1dGhEYXRhID0gU2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbTxpQlhSZXN0QXV0aD4odGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuICAgIGlmICgoYXV0aERhdGEgJiYgIWF1dGhEYXRhLmFjY2Vzc190b2tlbi5sZW5ndGgpIHx8ICFhdXRoRGF0YSkge1xuICAgICAgLy8g0L/QvtC70YPRh9Cw0LXQvCDRgtC+0LrQtdC9INC/0L4g0YHQvtCx0YHRgtCy0LXQvdC90YvQvCDQutCw0L3QsNC70L7QvCAo0LIg0LHQuNGC0YDQuNC60YHQtSDQv9GA0LjQu9C+0LbQtdC90LjQtSB0cmFjZTphcHBzLnRyYWNlKVxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cub3JpZ2luKSB7IC8vINC/0YDQvtCy0LXRgNGP0LXQvCDRh9GC0L4g0Y3RgtC+INC90LUg0L3QsNGI0LUg0YHQvtC+0LHRidC10L3QuNC1ICjRgSDRgtC10LrRg9GJ0LXQs9C+INC/0YDQuNC70L7QttC10L3QuNGPKVxuICAgICAgICAgIGlmIChldmVudC5kYXRhICYmIGV2ZW50LmRhdGEucGFyYW0pIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZXZlbnQuZGF0YS5wYXJhbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgZXZlbnQuZGF0YS5wYXJhbSA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YS5wYXJhbSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEucGFyYW0uYWNjZXNzX3Rva2VuKSB7XG4gICAgICAgICAgICAgIGxldCBwYXJhbSA9IGV2ZW50LmRhdGEucGFyYW07XG4gICAgICAgICAgICAgIGxldCBzYXZlID0ge1xuICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbjogKHBhcmFtLmFjY2Vzc190b2tlbikgPyBwYXJhbS5hY2Nlc3NfdG9rZW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgY2xpZW50X2VuZHBvaW50OiAocGFyYW0uY2xpZW50X2VuZHBvaW50KSA/IHBhcmFtLmNsaWVudF9lbmRwb2ludCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBkb21haW46IChwYXJhbS5kb21haW4pID8gcGFyYW0uZG9tYWluIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGV4cGlyZXM6IChwYXJhbS5leHBpcmVzKSA/IHBhcmFtLmV4cGlyZXMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZXhwaXJlc19pbjogKHBhcmFtLmV4cGlyZXNfaW4pID8gcGFyYW0uZXhwaXJlc19pbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBtZW1iZXJfaWQ6IChwYXJhbS5tZW1iZXJfaWQpID8gcGFyYW0ubWVtYmVyX2lkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHJlZnJlc2hfdG9rZW46IChwYXJhbS5yZWZyZXNoX3Rva2VuKSA/IHBhcmFtLnJlZnJlc2hfdG9rZW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgc2NvcGU6IChwYXJhbS5zY29wZSkgPyBwYXJhbS5zY29wZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBzZXJ2ZXJfZW5kcG9pbnQ6IChwYXJhbS5zZXJ2ZXJfZW5kcG9pbnQpID8gcGFyYW0uc2VydmVyX2VuZHBvaW50IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHN0YXR1czogKHBhcmFtLnN0YXR1cykgPyBwYXJhbS5zdGF0dXMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgdXNlcl9pZDogKHBhcmFtLnVzZXJfaWQpID8gcGFyYW0udXNlcl9pZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAocGFyYW0udHlwZSkgPyBwYXJhbS50eXBlIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHNhdmUpLmxlbmd0aCAmJiBzYXZlLmFjY2Vzc190b2tlbikge1xuICAgICAgICAgICAgICAgIFNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5jb25zdHJ1Y3Rvci5uYW1lLCBzYXZlKVxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlQWxsKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLypcbiAgICAgIHRoaXMuc3Vic2NyaWJlLmF1dGhEYXRhID0gdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcihwYXJhbSA9PlxuICAgICAgICAgICAgcGFyYW0uaGFzKCdBVVRIX0lEJylcbiAgICAgICAgICAgIHx8IHBhcmFtLmhhcygnYWNjZXNzX3Rva2VuJylcbiAgICAgICAgICAgIHx8IHBhcmFtLmhhcygnUkVGUkVTSF9JRCcpXG4gICAgICAgICAgICB8fCBwYXJhbS5oYXMoJ0RPTUFJTicpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtOiBQYXJhbU1hcCkgPT4ge1xuICAgICAgICAgIGlmKCFzYXZlKSB7XG4gICAgICAgICAgICBsZXQgc2F2ZSA9IHtcbiAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGNsaWVudF9lbmRwb2ludDogKHBhcmFtLmNsaWVudF9lbmRwb2ludCkgPyBwYXJhbS5jbGllbnRfZW5kcG9pbnQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGRvbWFpbjogKHBhcmFtLmRvbWFpbikgPyBwYXJhbS5kb21haW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGV4cGlyZXM6IChwYXJhbS5leHBpcmVzKSA/IHBhcmFtLmV4cGlyZXMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGV4cGlyZXNfaW46IChwYXJhbS5leHBpcmVzX2luKSA/IHBhcmFtLmV4cGlyZXNfaW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIG1lbWJlcl9pZDogKHBhcmFtLm1lbWJlcl9pZCkgPyBwYXJhbS5tZW1iZXJfaWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHJlZnJlc2hfdG9rZW46IChwYXJhbS5yZWZyZXNoX3Rva2VuKSA/IHBhcmFtLnJlZnJlc2hfdG9rZW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHNjb3BlOiAocGFyYW0uc2NvcGUpID8gcGFyYW0uc2NvcGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHNlcnZlcl9lbmRwb2ludDogKHBhcmFtLnNlcnZlcl9lbmRwb2ludCkgPyBwYXJhbS5zZXJ2ZXJfZW5kcG9pbnQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHN0YXR1czogKHBhcmFtLnN0YXR1cykgPyBwYXJhbS5zdGF0dXMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHVzZXJfaWQ6IChwYXJhbS51c2VyX2lkKSA/IHBhcmFtLnVzZXJfaWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHR5cGU6IChwYXJhbS50eXBlKSA/IHBhcmFtLnR5cGUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBhcmFtLmhhcygnQVVUSF9JRCcpICYmICFhdXRoRGF0YT8uYWNjZXNzX3Rva2VuLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZ2V0ID0gcGFyYW0uZ2V0KCdBVVRIX0lEJylcbiAgICAgICAgICAgIGlmIChnZXQpIHtcbiAgICAgICAgICAgICAgQ29va2llcy5zZXQoJ2F1dGgnLCBnZXQpIC8vVE9ETzog0L/QvtGC0L7QvCDRg9Cx0YDQsNGC0YxcbiAgICAgICAgICAgICAgc2F2ZS5hY2Nlc3NfdG9rZW4gPSBnZXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyYW0uaGFzKCdhY2Nlc3NfdG9rZW4nKSAmJiAhYXV0aERhdGEuYWNjZXNzX3Rva2VuLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZ2V0ID0gcGFyYW0uZ2V0KCdhY2Nlc3NfdG9rZW4nKVxuICAgICAgICAgICAgaWYgKGdldCkge1xuICAgICAgICAgICAgICBDb29raWVzLnNldCgnYXV0aCcsIGdldCkgLy8gVE9ETzog0L/QvtGC0L7QvCDRg9Cx0YDQsNGC0YxcbiAgICAgICAgICAgICAgc2F2ZS5hY2Nlc3NfdG9rZW4gPSBnZXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyYW0uaGFzKCdSRUZSRVNIX0lEJykgJiYgIWF1dGhEYXRhLnJlZnJlc2hfdG9rZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBnZXQgPSBwYXJhbS5nZXQoJ1JFRlJFU0hfSUQnKVxuICAgICAgICAgICAgaWYgKGdldCkge1xuICAgICAgICAgICAgICBzYXZlLnJlZnJlc2hfdG9rZW4gPSBnZXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyYW0uaGFzKCdET01BSU4nKSAmJiAhYXV0aERhdGEuZG9tYWluLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZ2V0ID0gcGFyYW0uZ2V0KCdET01BSU4nKVxuICAgICAgICAgICAgaWYgKGdldCkge1xuICAgICAgICAgICAgICBzYXZlLmRvbWFpbiA9IGdldFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoc2F2ZSkubGVuZ3RoICYmIHNhdmUuYWNjZXNzX3Rva2VuKSB7XG4gICAgICAgICAgICBTZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuY29uc3RydWN0b3IubmFtZSwgc2F2ZSlcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaWJlQWxsKClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8g0LXRgdC70Lgg0LHQuNGC0YDQuNC60YEg0L3QtSDRiNC70ZHRgiDQvdGD0LbQvdGL0LUg0LzQvdC1INC/0LDRgNCw0LzQtdGC0YDRiyDQvdCwINC/0YDRj9C80YPRjlxuICAgICAgICAgICAgLy8g0L/RgNC+0YHQuNC8INC40YUg0LzQvdC1INC+0YLQtNCw0YLRjCDRgtCw0Log0LrQsNC6INC+0L/QuNGB0LDQvdC+INGN0YLQviDQsiDQtNC+0LrRg9C80LXQvdGC0LDRhtC40LhcbiAgICAgICAgICAgIGxldCBmID0gKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5CeEFwaUxpYi5CWDI0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdERhdGUgPSB0aGlzLkJ4QXBpTGliLkJYMjQuZ2V0QXV0aCgpXG4gICAgICAgICAgICAgICAgU2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUsIHNhdmUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5CeEFwaUxpYi5pbml0KGYpXG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pXG4gICAgICAqL1xuICAgIH0gZWxzZSBpZiAodGhpcy5nZXRBdXRoKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmF1dGhIYXZlID0gdHJ1ZVxuICAgIH1cblxuICAgIHRoaXMuYXV0aERhdGEgPSBhdXRoRGF0YVxuXG4gIH1cblxuICBzdWJzY3JpYmVBbGwoKSB7XG4gICAgdGhpcy5zdWJzY3JpYmUuYXV0aERhdGEudW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgZ2V0QXV0aCgpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoQlhfUkVTVF9TRVRUSU5HUy5hdXRoLmtleSkge1xuICAgICAgY2FzZSAnYXV0aCc6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDb29raWVzLmdldChcXCdhdXRoXFwnKScsIENvb2tpZXMuZ2V0KCdhdXRoJykpXG4gICAgICAgIHJldHVybiBDb29raWVzLmdldCgnYXV0aCcpXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAoKDxhbnk+d2luZG93KS5CWCAmJiAoPGFueT53aW5kb3cpLkJYLmJpdHJpeF9zZXNzaWQoKSkge1xuICAgICAgICAgIHJldHVybiAoPGFueT53aW5kb3cpLkJYLmJpdHJpeF9zZXNzaWQoKVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0U2Vzc2lkKCkubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IHN0ciA9IHRoaXMuZ2V0U2Vzc2lkKClcbiAgICAgICAgICByZXR1cm4gKHN0cikgPyBzdHIgOiAnJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBDb29raWVzLmdldCgnYXV0aCcpXG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRLZXlBdXRoKCk6IElLZXlBdXRoIHtcbiAgICBpZiAoQlhfUkVTVF9TRVRUSU5HUy5hdXRoLmtleS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBCWF9SRVNUX1NFVFRJTkdTLmF1dGgua2V5XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgoPGFueT53aW5kb3cpLkJYICYmICg8YW55PndpbmRvdykuQlguYml0cml4X3Nlc3NpZCgpXG4gICAgICAgIHx8IHRoaXMuZ2V0U2Vzc2lkKCkubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAnc2Vzc2lkJ1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdhdXRoJ1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNlc3NpZCgpIHtcbiAgICBjb25zdCBjaGVjayA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoKS5nZXQoJ3Nlc3NpZCcpXG4gICAgaWYgKGNoZWNrKSB7XG4gICAgICBMb2NhbFN0b3JhZ2Uuc2V0KCdzZXNzaWQnLCBjaGVjaylcbiAgICAgIHJldHVybiBjaGVja1xuICAgIH0gZWxzZSBpZiAoTG9jYWxTdG9yYWdlLmdldCgnc2Vzc2lkJykpIHtcbiAgICAgIHJldHVybiBMb2NhbFN0b3JhZ2UuZ2V0KCdzZXNzaWQnKVxuICAgIH1cbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIHNldEF1dGhQYXJhbXM8VD4ocGFyYW1zOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBrZXlBdXRoID0gdGhpcy5nZXRLZXlBdXRoKClcbiAgICBpZiAocGFyYW1zW2tleUF1dGhdKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gZWxzZSBpZiAoa2V5QXV0aCkge1xuICAgICAgcGFyYW1zW2tleUF1dGhdID0gdGhpcy5nZXRBdXRoKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZ2V0QXV0aFBhcmFtcygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnNvbGUubG9nKCdCWF9SRVNUX1NFVFRJTkdTJywgQlhfUkVTVF9TRVRUSU5HUylcbiAgICBzd2l0Y2ggKEJYX1JFU1RfU0VUVElOR1MuYXV0aC5zb3VyY2UpIHtcbiAgICAgIGNhc2UgJ2Nvb2tpZXMnOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRBdXRoKClcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAodGhpcy5hdXRoRGF0YSkgPyB0aGlzLmF1dGhEYXRhLmFjY2Vzc190b2tlbiA6IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIGdldEJhc2VVcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gb2YodGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoQlhfUkVTVF9TRVRUSU5HUy51cmxzLmhvbWUsICdyZXN0JykpXG4gICAgLy8gcmV0dXJuIHRoaXMuYXV0aERhdGEkLnBpcGUoIC8vIFRPRE86INGA0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0L/QvtC30LbQtVxuICAgIC8vICAgdGFrZSgxKSxcbiAgICAvLyAgIG1hcCh2ID0+ICh2ICYmIHYuZG9tYWluKSA/IHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYuZG9tYWluKSA6IHVuZGVmaW5lZClcbiAgICAvLyApXG4gIH1cblxuICAvLyBnZXRIb21lVXJsKCk6IHN0cmluZyB7XG4gIC8vICAgICByZXR1cm4gZW52LnVybHMuaG9tZVxuICAvLyB9XG59XG4iXX0=
|