atr-components 0.2.304 → 0.2.306
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/core/auth/auth.guard.d.ts +3 -1
- package/core/base/atr-common.d.ts +3 -2
- package/core/services/http.service.d.ts +1 -0
- package/core/utils/ToolsUtil.d.ts +30 -0
- package/esm2020/core/auth/auth.guard.mjs +10 -4
- package/esm2020/core/base/atr-common.mjs +2 -2
- package/esm2020/core/services/http.service.mjs +16 -1
- package/esm2020/core/utils/ToolsUtil.mjs +58 -3
- package/esm2020/lib/hello/hello.component.mjs +3 -5
- package/esm2020/lib/shared/form/form.component.mjs +1 -1
- package/esm2020/lib/shared/local-upload/local-upload.component.mjs +6 -4
- package/esm2020/lib/shared/table/table-form-item/table-form-item.component.mjs +3 -3
- package/esm2020/lib/shared/table/table.component.mjs +1 -1
- package/esm2020/lib/shared/upload/upload.component.mjs +9 -7
- package/esm2020/lib/shared/view-form/view-form.component.mjs +17 -3
- package/fesm2015/atr-components.mjs +117 -27
- package/fesm2015/atr-components.mjs.map +1 -1
- package/fesm2020/atr-components.mjs +117 -27
- package/fesm2020/atr-components.mjs.map +1 -1
- package/lib/hello/hello.component.d.ts +0 -1
- package/lib/shared/local-upload/local-upload.component.d.ts +2 -1
- package/lib/shared/upload/upload.component.d.ts +1 -1
- package/lib/shared/view-form/view-form.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanActivate, Router } from '@angular/router';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
+
import { HttpService } from "../services/http.service";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class AuthGuard implements CanActivate {
|
|
5
6
|
private router;
|
|
6
|
-
|
|
7
|
+
private httpService;
|
|
8
|
+
constructor(router: Router, httpService: HttpService);
|
|
7
9
|
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable<boolean | UrlTree> | Promise<boolean | UrlTree>;
|
|
8
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<AuthGuard, never>;
|
|
9
11
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthGuard>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { HttpHeaders } from "@angular/common/http";
|
|
2
2
|
import { TemplateRef } from "@angular/core";
|
|
3
3
|
export declare const atr_static_datas: {
|
|
4
|
-
test: string;
|
|
5
4
|
/**
|
|
6
5
|
* oss地址前缀
|
|
7
6
|
*/
|
|
@@ -13,6 +12,7 @@ export declare const atr_static_datas: {
|
|
|
13
12
|
OSS_POLICY: string;
|
|
14
13
|
STORAGE_PRE: string;
|
|
15
14
|
menu_url: string;
|
|
15
|
+
OSS_GETHOST: string;
|
|
16
16
|
dic_url: string;
|
|
17
17
|
/**
|
|
18
18
|
* 登录路由
|
|
@@ -281,9 +281,10 @@ export declare interface ImageOpts {
|
|
|
281
281
|
key?: string;
|
|
282
282
|
labe?: string;
|
|
283
283
|
fileName?: string;
|
|
284
|
-
uploadType?: 'drag' | '';
|
|
284
|
+
uploadType?: 'drag' | '' | 'button';
|
|
285
285
|
nzFileType?: string;
|
|
286
286
|
keepName?: boolean;
|
|
287
|
+
btnName?: string;
|
|
287
288
|
}
|
|
288
289
|
export declare interface equipTestData {
|
|
289
290
|
code: string;
|
|
@@ -16,6 +16,7 @@ export declare class HttpService {
|
|
|
16
16
|
url: string;
|
|
17
17
|
params?: {};
|
|
18
18
|
}[], options?: HttpOptions, headers?: HttpHeaders, noTip?: boolean): Promise<any[]>;
|
|
19
|
+
getOssPre(): Observable<any>;
|
|
19
20
|
postProm(url: string, params?: any, options?: HttpOptions, headers?: HttpHeaders, noTip?: boolean): Promise<Object | undefined>;
|
|
20
21
|
postBody: (url: string, params?: any, options?: HttpOptions | undefined, headers?: {} | undefined, noTip?: boolean) => Observable<any>;
|
|
21
22
|
getDefaultHeader(_headers: HttpHeaders): HttpHeaders;
|
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
import { json, AtrFormOpt } from '../base/atr-common';
|
|
2
2
|
import { SimpleChange } from '@angular/core';
|
|
3
3
|
export declare class ToolsUtil {
|
|
4
|
+
static ossPrefix: string;
|
|
4
5
|
static getOrgCode: () => string;
|
|
5
6
|
static isBase64(string: any): boolean;
|
|
6
7
|
static dataURItoBlob(code: any): Blob;
|
|
7
8
|
static isNull(val: any): boolean;
|
|
8
9
|
static getControlsConfig(dataFrom: any, requiredRule: string[]): any;
|
|
9
10
|
static httpSucces(res: any): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 计算两点坐标距离
|
|
13
|
+
* @param point1
|
|
14
|
+
* @param point2
|
|
15
|
+
*/
|
|
16
|
+
static getDistance(point1: {
|
|
17
|
+
x: any;
|
|
18
|
+
y: any;
|
|
19
|
+
}, point2: {
|
|
20
|
+
x: any;
|
|
21
|
+
y: any;
|
|
22
|
+
}): number;
|
|
23
|
+
/**
|
|
24
|
+
* 判断线段是否相交,相交返回交点坐标
|
|
25
|
+
* @param p1
|
|
26
|
+
* @param p2
|
|
27
|
+
*/
|
|
28
|
+
static checkIntersect(lineArr1: {
|
|
29
|
+
x: any;
|
|
30
|
+
y: any;
|
|
31
|
+
}[], lineArr2: {
|
|
32
|
+
x: any;
|
|
33
|
+
y: any;
|
|
34
|
+
}[]): false | {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
};
|
|
10
38
|
/**
|
|
11
39
|
*判断点是否在坐标区域内
|
|
12
40
|
* @param p 判定的点
|
|
@@ -20,6 +48,7 @@ export declare class ToolsUtil {
|
|
|
20
48
|
y1: any;
|
|
21
49
|
}[]): boolean;
|
|
22
50
|
static diffInput(chng: SimpleChange, action: () => void): void;
|
|
51
|
+
static deepCopy(obj: any): any;
|
|
23
52
|
static diffInputs(chng: SimpleChange[], action: () => void): void;
|
|
24
53
|
static dataURLtoBlob(dataurl: any): Blob;
|
|
25
54
|
static dataURLtoFile(dataurl: any, filename?: string): File;
|
|
@@ -57,6 +86,7 @@ export declare class ToolsUtil {
|
|
|
57
86
|
static notEmpty(...arr: any[]): boolean;
|
|
58
87
|
static hasEmpty(...arr: any[]): boolean;
|
|
59
88
|
static allEmpty(...arr: any[]): boolean;
|
|
89
|
+
static isArray(obj: any): boolean;
|
|
60
90
|
static isEmpty(obj: any): boolean;
|
|
61
91
|
static encodeValue(params: any): any;
|
|
62
92
|
static windowHeight(): number;
|
|
@@ -2,15 +2,21 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { LocalStorageUtil } from '../utils/localstorage.util';
|
|
3
3
|
import { AtrReuseStrategy } from '../routereuse/atr-reuse-strategy';
|
|
4
4
|
import { atr_static_datas } from "../base/atr-common";
|
|
5
|
+
import { ToolsUtil } from '../utils/ToolsUtil';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/router";
|
|
8
|
+
import * as i2 from "../services/http.service";
|
|
7
9
|
export class AuthGuard {
|
|
8
|
-
constructor(router) {
|
|
10
|
+
constructor(router, httpService) {
|
|
9
11
|
this.router = router;
|
|
12
|
+
this.httpService = httpService;
|
|
10
13
|
}
|
|
11
14
|
canActivate(route, state) {
|
|
12
15
|
// throw new Error("Method not implemented.");
|
|
13
16
|
if (LocalStorageUtil.getUserId() != "") {
|
|
17
|
+
if (atr_static_datas.OSS_GETHOST && !ToolsUtil.ossPrefix) {
|
|
18
|
+
this.httpService.getOssPre().subscribe();
|
|
19
|
+
}
|
|
14
20
|
return true;
|
|
15
21
|
}
|
|
16
22
|
setTimeout(() => {
|
|
@@ -20,12 +26,12 @@ export class AuthGuard {
|
|
|
20
26
|
return false;
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
|
-
AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
AuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.HttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
30
|
AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AuthGuard, providedIn: 'root' });
|
|
25
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AuthGuard, decorators: [{
|
|
26
32
|
type: Injectable,
|
|
27
33
|
args: [{
|
|
28
34
|
providedIn: 'root'
|
|
29
35
|
}]
|
|
30
|
-
}], ctorParameters: function () { return [{ type: i1.Router }]; } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.HttpService }]; } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYXV0aC9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTTdDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQW9CLE1BQWMsRUFBVSxXQUF3QjtRQUFoRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDcEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLDhDQUE4QztRQUM5QyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN0QyxJQUFJLGdCQUFnQixDQUFDLFdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDMUM7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFBO1FBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7dUdBbEJVLFNBQVM7MkdBQVQsU0FBUyxjQUhSLE1BQU07NEZBR1AsU0FBUztrQkFKckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUsIENhbkFjdGl2YXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7TG9jYWxTdG9yYWdlVXRpbH0gZnJvbSAnLi4vdXRpbHMvbG9jYWxzdG9yYWdlLnV0aWwnO1xyXG5pbXBvcnQge0F0clJldXNlU3RyYXRlZ3l9IGZyb20gJy4uL3JvdXRlcmV1c2UvYXRyLXJldXNlLXN0cmF0ZWd5JztcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzfSBmcm9tIFwiLi4vYmFzZS9hdHItY29tbW9uXCI7XHJcbmltcG9ydCB7SHR0cFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9odHRwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gJy4uL3V0aWxzL1Rvb2xzVXRpbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB8IFVybFRyZWUgfCBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHtcclxuICAgIC8vIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gICAgaWYgKExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlcklkKCkgIT0gXCJcIikge1xyXG4gICAgICBpZiAoYXRyX3N0YXRpY19kYXRhcy5PU1NfR0VUSE9TVCAmJiAhVG9vbHNVdGlsLm9zc1ByZWZpeCkge1xyXG4gICAgICAgIHRoaXMuaHR0cFNlcnZpY2UuZ2V0T3NzUHJlKCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhdHJfc3RhdGljX2RhdGFzLmxvZ2luX3JvdXRlcik7XHJcbiAgICB9KVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiBBdHJSZXVzZVN0cmF0ZWd5LmRlbGV0ZUFsbCgpLCA1MCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LocalStorageUtil } from "../utils/localstorage.util";
|
|
2
2
|
export const atr_static_datas = {
|
|
3
|
-
test: '1',
|
|
4
3
|
/**
|
|
5
4
|
* oss地址前缀
|
|
6
5
|
*/
|
|
@@ -12,6 +11,7 @@ export const atr_static_datas = {
|
|
|
12
11
|
OSS_POLICY: 'third/oss/getPolicy',
|
|
13
12
|
STORAGE_PRE: 'DQ_',
|
|
14
13
|
menu_url: '',
|
|
14
|
+
OSS_GETHOST: '',
|
|
15
15
|
dic_url: 'mgr/combo',
|
|
16
16
|
/**
|
|
17
17
|
* 登录路由
|
|
@@ -44,4 +44,4 @@ export var UserAction;
|
|
|
44
44
|
UserAction[UserAction["QUERY"] = 3] = "QUERY";
|
|
45
45
|
UserAction[UserAction["SUPPERADD"] = 4] = "SUPPERADD";
|
|
46
46
|
})(UserAction || (UserAction = {}));
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSTVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSxHQUFHO0lBQ1Q7O09BRUc7SUFDSCxPQUFPLEVBQUUsRUFBRTtJQUNYOztPQUVHO0lBQ0gsY0FBYyxFQUFFLEVBQUU7SUFDbEIsVUFBVSxFQUFFLHFCQUFxQjtJQUNqQyxXQUFXLEVBQUUsS0FBSztJQUNsQixRQUFRLEVBQUUsRUFBRTtJQUNaLE9BQU8sRUFBRSxXQUFXO0lBQ3BCOztPQUVHO0lBQ0gsWUFBWSxFQUFFLFVBQVU7SUFDeEIsVUFBVSxFQUFFLEVBQUU7SUFDZCxtQkFBbUI7SUFDbkIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsZUFBZSxFQUFFLENBQUMsUUFBcUIsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFDRCxnQkFBZ0IsRUFBRSxDQUFDLFFBQXFCLEVBQUUsRUFBRTtRQUMxQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDbEUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEUsNkRBQTZEO1FBQzdELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLFdBQVc7O0FBQ2YsbUJBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUM1SSxpQkFBSyxHQUFHLHE5SEFBcTlILENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3grSCxzQkFBVSxHQUFPLEVBQUUsQ0FBQztBQW1DN0IsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQix5Q0FBRyxDQUFBO0lBQ0gsMkNBQUksQ0FBQTtJQUNKLHlDQUFHLENBQUE7SUFDSCw2Q0FBSyxDQUFBO0lBQ0wscURBQVMsQ0FBQTtBQUNYLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVV0aWx9IGZyb20gXCIuLi91dGlscy9sb2NhbHN0b3JhZ2UudXRpbFwiO1xyXG5pbXBvcnQge1RlbXBsYXRlfSBmcm9tIFwiQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0XCI7XHJcbmltcG9ydCB7VGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXRyX3N0YXRpY19kYXRhcyA9IHtcclxuICB0ZXN0OiAnMScsXHJcbiAgLyoqXHJcbiAgICogb3Nz5Zyw5Z2A5YmN57yAXHJcbiAgICovXHJcbiAgT1NTX1VSTDogJycsXHJcbiAgLyoqXHJcbiAgICog6Z2Z5oCB5Zyw5Z2AXHJcbiAgICovXHJcbiAgU1RBVElDX09TU19VUkw6ICcnLFxyXG4gIE9TU19QT0xJQ1k6ICd0aGlyZC9vc3MvZ2V0UG9saWN5JyxcclxuICBTVE9SQUdFX1BSRTogJ0RRXycsXHJcbiAgbWVudV91cmw6ICcnLFxyXG4gIGRpY191cmw6ICdtZ3IvY29tYm8nLFxyXG4gIC8qKlxyXG4gICAqIOeZu+W9lei3r+eUsVxyXG4gICAqL1xyXG4gIGxvZ2luX3JvdXRlcjogJy9wL2xvZ2luJyxcclxuICBTRVJWRVJfVVJMOiAnJyxcclxuICAvL2h0dHAgaGVhZOaYr+WQpum7mOiupGhlYWRcclxuICBuZWVkTm9ybWFsSGVhZGU6IGZhbHNlLFxyXG4gIGdldE5vcm1hbEhlYWRlcjogKF9oZWFkZXJzOiBIdHRwSGVhZGVycykgPT4ge1xyXG4gICAgcmV0dXJuIF9oZWFkZXJzXHJcbiAgfSxcclxuICBnZXREZWZhdWx0SGVhZGVyOiAoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKSA9PiB7XHJcbiAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIngtaGVhZGVyLWF0clwiLCBcIm1hbmFnZVwiKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidG9rZW5cIiwgTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VyVG9rZW4oKSk7XHJcbiAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcInVzZXJJZFwiLCBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpKTtcclxuICAgIC8vIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwib3JnQ29kZVwiLFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpO1xyXG4gICAgcmV0dXJuIF9oZWFkZXJzO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBjb21tb25EYXRhcyB7XHJcbiAgc3RhdGljIGxldHRlcnMgPSBbXCJBXCIsIFwiQlwiLCBcIkNcIiwgXCJEXCIsIFwiRVwiLCBcIkZcIiwgXCJHXCIsIFwiSFwiLCBcIklcIiwgXCJKXCIsIFwiS1wiLCBcIkxcIiwgXCJNXCIsIFwiTlwiLCBcIk9cIiwgXCJQXCIsIFwiUVwiLCBcIlJcIiwgXCJTXCIsIFwiVFwiLCBcIlVcIiwgXCJWXCIsIFwiV1wiLCBcIlhcIiwgXCJZXCIsIFwiWlwiXVxyXG4gIHN0YXRpYyBpY29ucyA9ICdzdGVwLWJhY2t3YXJkLHN0ZXAtZm9yd2FyZCxmYXN0LWJhY2t3YXJkLGZhc3QtZm9yd2FyZCxzaHJpbmssYXJyb3dzLWFsdCxkb3duLHVwLGxlZnQscmlnaHQsY2FyZXQtdXAsY2FyZXQtZG93bixjYXJldC1sZWZ0LGNhcmV0LXJpZ2h0LHVwLWNpcmNsZSxkb3duLWNpcmNsZSxsZWZ0LWNpcmNsZSxyaWdodC1jaXJjbGUsZG91YmxlLXJpZ2h0LGRvdWJsZS1sZWZ0LHZlcnRpY2FsLWxlZnQsdmVydGljYWwtcmlnaHQsdmVydGljYWwtYWxpZ24tdG9wLHZlcnRpY2FsLWFsaWduLW1pZGRsZSx2ZXJ0aWNhbC1hbGlnbi1ib3R0b20sZm9yd2FyZCxiYWNrd2FyZCxyb2xsYmFjayxlbnRlcixyZXR3ZWV0LHN3YXAsc3dhcC1sZWZ0LHN3YXAtcmlnaHQsYXJyb3ctdXAsYXJyb3ctZG93bixhcnJvdy1sZWZ0LGFycm93LXJpZ2h0LHBsYXktY2lyY2xlLHVwLXNxdWFyZSxkb3duLXNxdWFyZSxsZWZ0LXNxdWFyZSxyaWdodC1zcXVhcmUsbG9naW4sbG9nb3V0LG1lbnUtZm9sZCxtZW51LXVuZm9sZCxib3JkZXItYm90dG9tLGJvcmRlci1ob3Jpem9udGFsLGJvcmRlci1pbm5lcixib3JkZXItb3V0ZXIsYm9yZGVyLWxlZnQsYm9yZGVyLXJpZ2h0LGJvcmRlci10b3AsYm9yZGVyLXZlcnRpY2xlLHBpYy1jZW50ZXIscGljLWxlZnQscGljLXJpZ2h0LHJhZGl1cy1ib3R0b21sZWZ0LHJhZGl1cy1ib3R0b21yaWdodCxyYWRpdXMtdXBsZWZ0LHJhZGl1cy11cHJpZ2h0LGZ1bGxzY3JlZW4sZnVsbHNjcmVlbi1leGl0LHF1ZXN0aW9uLHF1ZXN0aW9uLWNpcmNsZSxwbHVzLHBsdXMtY2lyY2xlLHBhdXNlLHBhdXNlLWNpcmNsZSxtaW51cyxtaW51cy1jaXJjbGUscGx1cy1zcXVhcmUsbWludXMtc3F1YXJlLGluZm8saW5mby1jaXJjbGUsZXhjbGFtYXRpb24sZXhjbGFtYXRpb24tY2lyY2xlLGNsb3NlLGNsb3NlLWNpcmNsZSxjbG9zZS1zcXVhcmUsY2hlY2ssY2hlY2stY2lyY2xlLGNoZWNrLXNxdWFyZSxjbG9jay1jaXJjbGUsd2FybmluZyxpc3N1ZXMtY2xvc2Usc3RvcCxlZGl0LGZvcm0sY29weSxzY2lzc29yLGRlbGV0ZSxzbmlwcGV0cyxkaWZmLGhpZ2hsaWdodCxhbGlnbi1jZW50ZXIsYWxpZ24tbGVmdCxhbGlnbi1yaWdodCxiZy1jb2xvcnMsYm9sZCxpdGFsaWMsdW5kZXJsaW5lLHN0cmlrZXRocm91Z2gscmVkbyx1bmRvLHpvb20taW4sem9vbS1vdXQsZm9udC1jb2xvcnMsZm9udC1zaXplLGxpbmUtaGVpZ2h0LGRhc2gsc21hbGwtZGFzaCxzb3J0LWFzY2VuZGluZyxzb3J0LWRlc2NlbmRpbmcsZHJhZyxvcmRlcmVkLWxpc3QsdW5vcmRlcmVkLWxpc3QscmFkaXVzLXNldHRpbmcsY29sdW1uLXdpZHRoLGNvbHVtbi1oZWlnaHQsYXJlYS1jaGFydCxwaWUtY2hhcnQsYmFyLWNoYXJ0LGRvdC1jaGFydCxsaW5lLWNoYXJ0LHJhZGFyLWNoYXJ0LGhlYXQtbWFwLGZhbGwscmlzZSxzdG9jayxib3gtcGxvdCxmdW5kLHNsaWRlcnMsYW5kcm9pZCxhcHBsZSx3aW5kb3dzLGllLGNocm9tZSxnaXRodWIsYWxpd2FuZ3dhbmcsZGluZ2Rpbmcsd2VpYm8tc3F1YXJlLHdlaWJvLWNpcmNsZSx0YW9iYW8tY2lyY2xlLGh0bWw1LHdlaWJvLHR3aXR0ZXIsd2VjaGF0LHlvdXR1YmUsYWxpcGF5LWNpcmNsZSx0YW9iYW8sc2t5cGUscXEsbWVkaXVtLXdvcmttYXJrLGdpdGxhYixtZWRpdW0sbGlua2VkaW4sZ29vZ2xlLXBsdXMsZHJvcGJveCxmYWNlYm9vayxjb2RlcGVuLGNvZGUtc2FuZGJveCxhbWF6b24sZ29vZ2xlLGNvZGVwZW4tY2lyY2xlLGFsaXBheSxhbnQtZGVzaWduLGFudC1jbG91ZCxhbGl5dW4semhpaHUsc2xhY2ssc2xhY2stc3F1YXJlLGJlaGFuY2UsYmVoYW5jZS1zcXVhcmUsZHJpYmJibGUsZHJpYmJibGUtc3F1YXJlLGluc3RhZ3JhbSx5dXF1ZSxhbGliYWJhLHlhaG9vLHJlZGRpdCxza2V0Y2gsYWxlcnQsYWltLGFjY291bnQtYm9vayxhcGFydG1lbnQsYXBpLGFwcHN0b3JlLGF1ZGlvLW11dGVkLGF1ZGl0LGJhbmssYmFyY29kZSxiYXJzLGJsb2NrLGJvb2ssYmVsbCxhcHBzdG9yZS1hZGQsYXVkaW8sYm9yZGVyLGJvcmRlcmxlc3MtdGFibGUsYnVnLGJyYW5jaGVzLGNhbWVyYSxjYWxjdWxhdG9yLGNhbGVuZGFyLGJ1aWxkLGNhcnJ5LW91dCxidWxiLGNhcixjbGVhcixjaSxjbG91ZC1kb3dubG9hZCxjbG91ZCxjbG91ZC1zeW5jLGNsb3VkLXNlcnZlcixjbG91ZC11cGxvYWQsY29kZSxjb2ZmZWUsY29tcHJlc3MsY29tcGFzcyxjb21tZW50LGNpLWNpcmNsZSxjb250YWluZXIsY29udHJvbCxjb3B5cmlnaHQsY3JlZGl0LWNhcmQsY2x1c3RlcixjdXN0b21lci1zZXJ2aWNlLGNvbnRhY3RzLGNvbnNvbGUtc3FsLGRhc2hib2FyZCxkYXRhYmFzZSxjb3B5cmlnaHQtY2lyY2xlLGRlbGV0ZS1jb2x1bW4sZGVza3RvcCxkZXBsb3ltZW50LXVuaXQsZGVsaXZlcmVkLXByb2NlZHVyZSxkaXNjb25uZWN0LGRpbmd0YWxrLGRvbGxhci1jaXJjbGUsZGlzbGlrZSxkZWxldGUtcm93LGRvbGxhcixjcm93bixkb3dubG9hZCxlbGxpcHNpcyxlbnZpcm9ubWVudCxldXJvLWNpcmNsZSxleGNlcHRpb24sZXhwYW5kLWFsdCxldXJvLGV4cGVyaW1lbnQsZXhwb3J0LGV4cGFuZCxleWUtaW52aXNpYmxlLGV5ZSxmaWxlLWFkZCxmaWVsZC1zdHJpbmcsZmlsZS1leGNsYW1hdGlvbixmaWxlLWRvbmUsZmllbGQtdGltZSxmaWxlLWV4Y2VsLGZpZWxkLWJpbmFyeSxmaWxlLWdpZixmaWxlLWltYWdlLGZpbGUsZmlsZS1tYXJrZG93bixmaWxlLXBwdCxmaWxlLXBkZixmaWVsZC1udW1iZXIsZmlsZS1zZWFyY2gsZmlsZS1zeW5jLGZpbGUtanBnLGZpbGUtdGV4dCxmaWx0ZXIsZmlsZS16aXAsZmxhZyxmb2xkZXItYWRkLGZpbGUtdW5rbm93bixmb2xkZXItb3BlbixmaXJlLGZpbGUtcHJvdGVjdCxmb2xkZXItdmlldyxmb2xkZXIsZm9yayxmb3JtYXQtcGFpbnRlcixmcm93bixmdW5kLXByb2plY3Rpb24tc2NyZWVuLGdpZnQsZ2F0ZXdheSxmdW5kLXZpZXcsZ2lmLGZ1bm5lbC1wbG90LGdvbGQsZ2xvYmFsLGdyb3VwLGhkZCxmdW5jdGlvbixoaXN0b3J5LGZpbGUtd29yZCxob21lLGlkY2FyZCxob3VyZ2xhc3MsaGVhcnQsaW5zZXJ0LXJvdy1iZWxvdyxpbXBvcnQsaW5zZXJ0LXJvdy1sZWZ0LGluc2VydC1yb3ctYWJvdmUsaW5zZXJ0LXJvdy1yaWdodCxrZXksaW5ib3gsaW5zdXJhbmNlLGxhcHRvcCxsaWtlLGxpbmUsbGluayxsb2FkaW5nLTMtcXVhcnRlcnMsbG9hZGluZyxsb2NrLG1hbixtYWlsLG1hYy1jb21tYW5kLG1lZGljaW5lLWJveCxsYXlvdXQsbWVoLGludGVyYWN0aW9uLG1lc3NhZ2UsbWVudSxtZXJnZS1jZWxscyxtb2JpbGUsbW9uZXktY29sbGVjdCxub2RlLWluZGV4LG1vbml0b3Isbm9kZS1leHBhbmQsbW9yZSxudW1iZXIsbm90aWZpY2F0aW9uLG9uZS10by1vbmUscGVyY2VudGFnZSxwaG9uZSxwYXBlci1jbGlwLHBhcnRpdGlvbixwaWN0dXJlLG5vZGUtY29sbGFwc2UscGxheS1zcXVhcmUscGF5LWNpcmNsZSxwb3VuZCxwcm9maWxlLHByb2plY3QscHJvcGVydHktc2FmZXR5LHBvd2Vyb2ZmLHB1c2hwaW4scXJjb2RlLHByaW50ZXIscG91bmQtY2lyY2xlLHB1bGwtcmVxdWVzdCxyZXN0LHJlYWQscmVsb2FkLHJlY29uY2lsaWF0aW9uLHJvYm90LHJvY2tldCxyb3RhdGUtcmlnaHQsc2FmZXR5LWNlcnRpZmljYXRlLHJlZC1lbnZlbG9wZSxyb3RhdGUtbGVmdCxzYXZlLHNhZmV0eSxzZWFyY2gsc2VjdXJpdHktc2NhbixzY2FuLHNlbmQsc2V0dGluZyxzZWxlY3Qsc2hha2Usc2hvcHBpbmctY2FydCxzaXN0ZXJub2RlLHNob3Asc2hvcHBpbmcsc2hhcmUtYWx0LHNjaGVkdWxlLHNraW4sc21pbGUsc29sdXRpb24sc291bmQsc3BsaXQtY2VsbHMsc3RhcixzdWJub2RlLHRhZ3MsdGFibGV0LHRhZyx0YWJsZSxzd2l0Y2hlcixzeW5jLHRlYW0sdG9vbCx0cmFkZW1hcmstY2lyY2xlLHRodW5kZXJib2x0LHRvLXRvcCx0cmFuc2xhdGlvbix0cmFkZW1hcmssdHJvcGh5LHVuZ3JvdXAsdW5sb2NrLHVwbG9hZCx0cmFuc2FjdGlvbix1c2VyLWRlbGV0ZSx1c2IsdXNlci1hZGQsdXNlcmdyb3VwLWRlbGV0ZSx2aWRlby1jYW1lcmEtYWRkLHZlcmlmaWVkLHVzZXJncm91cC1hZGQsdXNlcix1c2VyLXN3aXRjaCx2aWRlby1jYW1lcmEsd2lmaSx3YWxsZXQsd2hhdHMtYXBwLHdvbWFuLGFwcHN0b3JlJy5zcGxpdCgnLCcpXHJcbiAgc3RhdGljIGF3YWl0X0RhdGE6YW55ID0ge307XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBqc29uIGV4dGVuZHMgT2JqZWN0IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZCB7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuICBzaG93Q291bnQ6IG51bWJlcjtcclxuICB0b3RhbFJlc3VsdDogbnVtYmVyO1xyXG4gIHRvdGFsUGFnZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSZXNwb25zZURhdGFTdGFuZGFyZCB7XHJcbiAgc3RhdGU6IG51bWJlcjsgLy8g5Li6MeaJjeaYr+aIkOWKn1xyXG4gIGRhdGE6IGpzb24gfCBbe31dIHwgb2JqZWN0IHwgc3RyaW5nIHwgYW55OyAvL+ayoeacieWAvCBkYXRhOiAnJ1xyXG4gIG1lc3M6IHN0cmluZzsgLy/ov5Tlm57nmoTmtojmga9cclxuICBwYWdlPzogU2VydmVyUGFnaW5hdGlvblN0YW5kYXJkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSc2Vwb25zZVRyYW5zZm9ybUNlbGwge1xyXG4gIFtrZXk6IHN0cmluZ106IGpzb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzoge30sXHJcbiAgaXNKc29uRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzVXJsRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzQXV0b1Nob3dNZXNzYWdlPzogYm9vbGVhblxyXG4gIGlzV2l0aENyZWRlbnRpYWxzPzogYm9vbGVhblxyXG4gIGlzQ29tbW9uSHR0cEhlYWRlcj86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlckFjdGlvbiB7XHJcbiAgQURELFxyXG4gIEVESVQsXHJcbiAgREVMLFxyXG4gIFFVRVJZLFxyXG4gIFNVUFBFUkFERFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzogYm9vbGVhbixcclxuICAgIHNob3c/OiBib29sZWFuLFxyXG4gIH0sXHJcbiAgeUF4aXM/OiBhbnksLy97ICAgIHNob3c6ZmFsc2UsICAgIHR5cGU6ICd2YWx1ZScsICAgIG1pbkludGVydmFsOiAxLH1bXVxyXG4gIHNlcmllcz86IHtcclxuICAgIG5hbWU/OiBzdHJpbmcsXHJcbiAgICBkYXRhPzogYW55W10sXHJcbiAgICBpdGVtU3R5bGU/OiBhbnksXHJcbiAgICBzdGFjaz86IGFueSxcclxuICAgIGVtcGhhc2lzPzogYW55LFxyXG4gICAgbGFiZWw/OiBhbnksXHJcbiAgICByYWRpdXM/OiBhbnlbXSxcclxuICAgIHNtb290aD86IGJvb2xlYW4sXHJcbiAgICBzZXJpZXNMYXlvdXRCeT86IHN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtT3B0IHtcclxuICB0eXBlOiAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICBsYXlvdXQ/OiBcImZ1bGxcIiB8ICcxbDJjJyB8ICcxbDFjJyxcclxuICBpdGVtczogQXRyRm9ybURldGFpbFtdLC8v6KGo5Y2V6aG555uuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtRGV0YWlsIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHR5cGU6ICdjYXNjYWRlcicgfCAncmFkaW8nIHwgJ3RleHQnIHwgJ2ltYWdlJyB8ICdzZWxlY3QnIHwgJ2RhdGUnIHwgJ251bWJlcicgfCAndGVscGhvbmUnIHwgJ3Bhc3N3b3JkJyB8ICdjaGVja2JveCcgfCAnZGF5UmFuZ2UnXHJcbiAgICB8ICdlZGl0b3InIHwgJ3RleHRhcmVhJyB8ICdkYXRlVGltZScgfCAndGl0bGUnIHwgJ2RhdGVSYW5nZScgfCAnc2VsZWN0YycgfCAnc2VsZWN0SWNvbicgfCAndHJlZVNlbGVjdCcgfCAnc3dpdGNoJyB8ICdidXR0b25zJyxcclxuICBrZXk6IHN0cmluZyxcclxuICBpc0hpZGRlbj86IGJvb2xlYW4sXHJcbiAgZGVmYXVsdFZhbHVlPzogYW55LFxyXG4gIHZhbHVlPzogYW55LC8v57yW6L6R5LiL5Y6f5aeL5pWw5YC8XHJcbiAgZGljdENvZGU/OiBzdHJpbmcsLy9zZWxlY3Qg5qih5byP5LiL6YWN572uXHJcbiAgc3Bhbj86IG51bWJlciwvL+aYvuekuuWuveW6plxyXG4gIHZhbGlkYXRvcnM/OiBBdHJGb3JtVmFsaWRbXSwvL+mqjOivgeadoeS7tlxyXG4gIGlzUmVxdWlyZWQ/OiBib29sZWFuIHwgc3RyaW5nLC8v6ZqQ5oCn5p2h5Lu2IOaXoOmcgOWhq+WGmSwgc3RyaW5n57G75Z6L5qC85byP5ZCMb3BlcmF0b3JcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZyxcclxuICBpbWFnZU9wdHM/OiBJbWFnZU9wdHMsXHJcbiAgZWRpdENvbnRlbnQ/OiBzdHJpbmcsXHJcbiAgaGVpZ2h0PzogbnVtYmVyLC8vZWRpdG9y5pyJ5pWIXHJcbiAgZGlzYWJsZT86IGJvb2xlYW4sXHJcbiAgbHNwYW4/OiBudW1iZXIsXHJcbiAgY3NwYW4/OiBudW1iZXIsXHJcbiAgcm93cz86IG51bWJlciwvL3RleHRhcmVhIOaYvuekuuihjOaVsFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymIOagvOW8jyDlpoI6c3RhdHVzfGVxfDBcclxuICBidXR0b24/OiBmb3JtQnV0dG9uLFxyXG4gIHJlYWRvbmx5PzogYm9vbGVhbixcclxuICBkYXRlRm9ybWF0Pzogc3RyaW5nLFxyXG4gIGRpY3RMaXN0PzogQ3VzRGljdFtdLFxyXG4gIG56TW9kZT86ICdtdWx0aXBsZScgfCAndGFncycgfCAnZGVmYXVsdCcsXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydD86IHN0cmluZywgdHlwZT86ICdnZXQnIHwgJ3Bvc3QnLCBob3N0PzogJ29zcycgfCAnc2VydmUnLCBpc011bHRpcGxlPzogYm9vbGVhbiwgaWdub3JlRGljdExpc3Q/OiBib29sZWFuIH0sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXSxcclxuICBlbmRzPzogc3RyaW5nLFxyXG4gIHByb3Bvc2FsPzogc3RyaW5nLFxyXG4gIHRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gIGZpcnN0VGVtcD86IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgbWluTnVtYmVyPzogYW55LFxyXG4gIG1heE51bWJlcj86IGFueSxcclxuICBub3ROdWxsPzogYm9vbGVhblxyXG4gIG56U2hvd1RpbWU/OiBib29sZWFuIHwgeyBuekZvcm1hdDogc3RyaW5nIH0sXHJcbiAgYnV0dG9ucz86IGZvcm1CdXR0b25bXVxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyRm9ybVZhbGlkIHtcclxuICB0eXBlOiAncmVxdWlyZWQnIHwgJ2VtYWlsJyB8ICd0ZWxwaG9uZScgfCAnbWF4bGVuZ3RoJyB8ICdtaW5sZW5ndGgnIHwgJ3BhdHRlcm4nIHwgJ29wZXJhdG9yJyxcclxuICBlcnJvckxhYmVsOiBzdHJpbmcsXHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyLFxyXG4gIG1pbmxlbmd0aD86IG51bWJlcixcclxuICBwYXR0ZXJuVmFsdWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGZvcm1CdXR0b24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc1Nob3c6IGJvb2xlYW4sXHJcbiAgY29kZTogc3RyaW5nLFxyXG4gIGJ0blR5cGU/OiBzdHJpbmcsXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy8vL+aYvuekuuaTjeS9nOespiDmoLzlvI8g5aaCOnN0YXR1c3xlcXwwXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBjb2xvck9wZXJhdG9yIHtcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIG9wZXJhdG9yOiBzdHJpbmcsLy/op4TliJlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXlyT3B0IHtcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc0luZGV4PzogYm9vbGVhbiwvL+aYr+WQpuaYvuekuuW6j+WPtyxcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjaGVja0JveD86IHtcclxuICAgIGlzU2hvd0NoZWNrYm94PzogYm9vbGVhbixcclxuICAgIGlzUmFkaW8/OiBib29sZWFuLFxyXG4gICAgaXNGb3JiaWQ/OiBib29sZWFuLC8vdHJ1ZeaXtuWPquWFgeiuuOeCueWHu+WkmumAieahhumAieaLqVxyXG4gIH0sXHJcbiAgLy8gaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gIHNob3dOdW0/OiBudW1iZXIsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgc29ydD86IHN0cmluZyxcclxuICBoZWFkZXJzPzogQXRyUXVlcnlIZWFkZXJbXSxcclxuICB0YWJsZXM6IFRhYmxlW10sXHJcbiAgaXNBdXRvUXVlcnk/OiBib29sZWFuLC8vdHJ1ZeaXtuWAmem7mOiupOinpuWPkeafpeivolxyXG4gIGRlZmF1bHRQYXJhbXM/OiBqc29uLFxyXG4gIGlzSGlkZVF1ZXJ5PzogYm9vbGVhblxyXG4gIC8vIGlzUmFkaW8/OmJvb2xlYW4sXHJcbiAgLy8gaXNGb3JiaWQ/OmJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZSB7XHJcbiAgbmFtZTogc3RyaW5nLC8v6KGo5aS05ZCN56ewXHJcbiAga2V5Pzogc3RyaW5nLC8v5a6e6ZmF5pWw5o2u5a2X5q61XHJcbiAgZGVmYXVsdFZhbD86IGFueSxcclxuICBzb3J0S2V5Pzogc3RyaW5nLC8v5piv5ZCm5o6S5bqPXHJcbiAgc29ydGFibGU/OiBib29sZWFuLFxyXG4gIHR5cGU6ICd0ZXh0Y29sb3InIHwgJ2ZpeGVkVGV4dCcgfCAndGV4dCcgfCAnbGluaycgfCAnYWN0aW9uJyB8ICdpbWFnZScgfCAnZGF0ZScgfCAnZGF0ZVRpbWUnIHwgJ3NEYXRlVGltZScgfCAnZGljdCdcclxuICAgIHwgJ2lubmVySHRtbCcsLy/nsbvlnovvvJog5paH5a2X44CB6ZO+5o6l44CB5pON5L2cXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICB3aWR0aD86IHN0cmluZywvLzE1MHB4XHJcbiAgYWN0aW9ucz86IFRhYmxlQWN0aW9uW10sXHJcbiAgaXNSb3dTcGFuPzogYm9vbGVhbixcclxuICBpc1JpZ2h0PzogYm9vbGVhblxyXG4gIGlzTGVmdD86IGJvb2xlYW4sXHJcbiAgY29sb3I/OiBjb2xvck9wZXJhdG9yLC8v6aKc6ImyXHJcbiAgY29sb3JTaG93Pzogc3RyaW5nLFxyXG4gIGlubmVySHRtbEJhY2s/OiBGdW5jdGlvbixcclxuICBzdHlsZUNhbGxCYWNrPzpGdW5jdGlvblxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyUXVlcnlIZWFkZXIge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICB0eXBlOiAnY2FzY2FkZXInIHwgJ3RleHQnIHwgJ251bWJlcicgfCAnY2hlY2tib3gnIHwgJ3NlbGVjdCcgfCAnZGF0ZXBpY2tlcicgfCAnc2VsZWN0Q3VzJyB8ICdkYXRlUmFuZ2UnIHwgJ3NkYXRlJyB8ICd0cmVlU2VsZWN0JyB8ICdkYXlSYW5nZScsXHJcbiAgbnpNb2RlPzogJ211bHRpcGxlJyB8ICd0YWdzJyB8ICdkZWZhdWx0JyxcclxuICBrZXk6IHN0cmluZyxcclxuICBpc1Nob3c/OiBib29sZWFuLFxyXG4gIGNvZGU/OiBzdHJpbmcsXHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXHJcbiAgc3Bhbj86IG51bWJlcixcclxuICBkaWN0Q29kZT86IHN0cmluZywvL+Wtl+WFuOe8lueggVxyXG4gIGRpY3RMaXN0PzogQ3VzRGljdFtdLFxyXG4gIGRlZmF1bHRWYWw/OiBhbnkgLy8g6buY6K6k5YC8XHJcbiAgbWF4VGFnQ291bnQ/OiBudW1iZXIsXHJcbiAgbHNwYW4/OiBudW1iZXIsXHJcbiAgY3NwYW4/OiBudW1iZXIsXHJcbiAgZGlzYWJsZUNsZWFyPzogYm9vbGVhbixcclxuICB0cmVlTGlzdD86IHsga2V5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgfVtdXHJcbiAgLyoqXHJcbiAgICog5qC85byPXHJcbiAgICogY29udmVydDona2V5fGlkLHRpdGxlfHJlYWxOYW1lJyh0cmVlU2VsZWN0KVxyXG4gICAqICAgIHZhbHVlfGlkLGxhYmVsfG5hbWUoc2VsZWN0Q3VzKVxyXG4gICAqL1xyXG4gIHNlbGVjdFVybD86IHsgdXJsOiBzdHJpbmcsIGNvbnZlcnQ6IHN0cmluZywgaXNNdWx0aXBsZT86IGJvb2xlYW4gfSwvL2NvbnZlcnQ6IG5ld0tleXxvbGRLZXksbmV3S2V5fG9sZEtleSjmjqXlj6Pov5Tlm57nmoTlgLwpXHJcbiAgaWNvbj86IHsgaXNTaG93OiBib29sZWFuLCBjb2RlOiBzdHJpbmcsIGljb246IGFueSB9LFxyXG4gIGRhdGVNb2RlPzogJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJyxcclxuICBuelNob3dUaW1lPzogYm9vbGVhbiB8IHsgbnpGb3JtYXQ6IHN0cmluZyB9LFxyXG4gIG56U2hvd05vdz86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZUFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICB1cmw/OiBzdHJpbmcsXHJcbiAgZ1R5cGU/OiAnbm9ybWFsJyB8ICd1cGxvYWQnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAgZmlyc3REYXRhPzogYW55LFxyXG4gIGRhdGFzPzogYW55W10sXHJcbiAgaWNvbj86IHN0cmluZyxcclxuICBudW1iZXJPZkNoZWNrZWQ/OiBudW1iZXIsXHJcbiAgdHlwZT86ICdyb3dzJyB8ICdyb3cnLFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymXHJcbiAgYnV0dG9uVHlwZT86ICdwcmltYXJ5JyB8ICdkYXNoZWQnIHwgJ2RhbmdlcicgfCAnZGVmYXVsdCcgfCAnbGluaycsXHJcbiAgdmFsdWU/OiBhbnksXHJcbiAgd2l0aG91dFJvbGU/OiBib29sZWFuLy/kuI3pnIDopoHmnYPpmZDmjqfliLZcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1BY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpY3Qge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdHlwZU5hbWU6IHN0cmluZyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0R3JvdXAge1xyXG4gIGdyb3VwQ29kZTogc3RyaW5nLFxyXG4gIGRpY3RzOiBEaWN0W11cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN1c0RpY3Qge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZyxcclxuICBpc1NlbGVjdD86IGJvb2xlYW4vL2NoZWNrQm946buY6K6k6YCJ5LitXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJbWFnZU9wdHMge1xyXG4gIGxpbWl0PzogbnVtYmVyLFxyXG4gIHVwbG9hZERpcjogc3RyaW5nLFxyXG4gIHJlbW92ZUFjdGlvbj86IHN0cmluZyxcclxuICBpbWFnZUxpc3Q/OiBhbnlbXSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbiAgbGFiZT86IHN0cmluZyxcclxuICBmaWxlTmFtZT86IHN0cmluZyxcclxuICB1cGxvYWRUeXBlPzogJ2RyYWcnIHwgJycsXHJcbiAgbnpGaWxlVHlwZT86IHN0cmluZyxcclxuICBrZWVwTmFtZT86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGVxdWlwVGVzdERhdGEge1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIGl0ZW1OYW1lOiBzdHJpbmdcclxuICB6aG91MTogbnVtYmVyXHJcbiAgemhvdTI6IG51bWJlclxyXG4gIHpob3UzOiBudW1iZXJcclxuICB6aG91NDogbnVtYmVyXHJcbiAgemhvdTU6IG51bWJlclxyXG4gIHpob3U2OiBudW1iZXJcclxuICBpc1dyb25nMT86IGJvb2xlYW5cclxuICBpc1dyb25nMj86IGJvb2xlYW5cclxuICBpc1dyb25nMz86IGJvb2xlYW5cclxuICBpc1dyb25nND86IGJvb2xlYW5cclxuICBpc1dyb25nNT86IGJvb2xlYW5cclxuICBpc1dyb25nNj86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTZWxlY3RBY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBcIm5nTW9kZWxDaGFuZ2VcIiB8ICduek9wZW5DaGFuZ2UnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAga2V5Pzogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJY29uIHtcclxuICAvKiogVHlwZSBmb3IgaWNvbiAqL1xyXG4gIHR5cGU6ICdjbGFzcycgfCAnaWNvbicgfCAnaWNvbmZvbnQnIHwgJ2ltZyc7XHJcbiAgLyoqIFZhbHVlIGZvciB0aGUgaWNvbiwgY2FuIGJlIHNldCBDbGFzcyBOYW1lLCBuei1pY29uIG9mIGBuelR5cGVgLCBpbWFnZSAqL1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIC8qKiBUeXBlIG9mIHRoZSBhbnQgZGVzaWduIGljb24sIGRlZmF1bHQ6IGBvdXRsaW5lYCAqL1xyXG4gIHRoZW1lPzogJ291dGxpbmUnIHwgJ3R3b3RvbmUnIHwgJ2ZpbGwnO1xyXG4gIC8qKiBSb3RhdGUgaWNvbiB3aXRoIGFuaW1hdGlvbiwgZGVmYXVsdDogYGZhbHNlYCAqL1xyXG4gIHNwaW4/OiBib29sZWFuO1xyXG4gIC8qKiBPbmx5IHN1cHBvcnQgdGhlIHR3by10b25lIGljb24uIFNwZWNpZmljIHRoZSBwcmltYXJ5IGNvbG9yICovXHJcbiAgdHdvVG9uZUNvbG9yPzogc3RyaW5nO1xyXG4gIC8qKiBUeXBlIG9mIHRoZSBpY29uIGZyb20gaWNvbmZvbnQgKi9cclxuICBpY29uZm9udD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNZW51IHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGxpbms/OiBzdHJpbmc7XHJcbiAgcmVhbExpbms/OiBzdHJpbmc7XHJcbiAgaXNTZWxlY3RlZD86IEJvb2xlYW47XHJcbiAgaXNPcGVuPzogQm9vbGVhbjtcclxuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XHJcbiAgLyoqIEljb24gZm9yIHRoZSBtZW51IGl0ZW0sIG9ubHkgdmFsaWQgZm9yIHRoZSBmaXJzdCBsZXZlbCBtZW51ICovXHJcbiAgaWNvbj86IHN0cmluZyB8IE1lbnVJY29uIHwgbnVsbDtcclxuICAvKiogQmFkZ2V0IGZvciB0aGUgbWVudSBpdGVtIHdoZW4gYGdyb3VwYCBpcyBgdHJ1ZWAgKi9cclxuICBvcGVyYXRpb24/OiBzdHJpbmc7XHJcbiAgLyoqIFdoZXRoZXIgc2hvcnRjdXQgbWVudSBpdGVtICovXHJcbiAgc2VxPzogbnVtYmVyO1xyXG4gIGxldmVsPzogbnVtYmVyO1xyXG4gIC8qKiBXaGV0ZXIgc2hvcnRjdXQgbWVudSByb290IG5vZGUgKi9cclxuICBsaW5rVHlwZT86IHN0cmluZztcclxuICAvKiogV2hldGhlciB0byBhbGxvdyByZXVzZSwgbmVlZCB0byBjb29wZXJhdGUgd2l0aCB0aGUgYHJldXNlLXRhYmAgY29tcG9uZW50ICovXHJcbiAgY2hpbGRyZW4/OiBNZW51W107XHJcbiAgaXNWaXNpYmxlPzogJzAnIHwgJzEnXHJcbn1cclxuIl19
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRyLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvcmUvYmFzZS9hdHItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSTVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLEVBQUU7SUFDWDs7T0FFRztJQUNILGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFVBQVUsRUFBRSxxQkFBcUI7SUFDakMsV0FBVyxFQUFFLEtBQUs7SUFDbEIsUUFBUSxFQUFFLEVBQUU7SUFDWixXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxXQUFXO0lBQ3BCOztPQUVHO0lBQ0gsWUFBWSxFQUFFLFVBQVU7SUFDeEIsVUFBVSxFQUFFLEVBQUU7SUFDZCxtQkFBbUI7SUFDbkIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsZUFBZSxFQUFFLENBQUMsUUFBcUIsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFDRCxnQkFBZ0IsRUFBRSxDQUFDLFFBQXFCLEVBQUUsRUFBRTtRQUMxQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDbEUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEUsNkRBQTZEO1FBQzdELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLFdBQVc7O0FBQ2YsbUJBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUM1SSxpQkFBSyxHQUFHLHE5SEFBcTlILENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3grSCxzQkFBVSxHQUFPLEVBQUUsQ0FBQztBQW1DN0IsTUFBTSxDQUFOLElBQVksVUFNWDtBQU5ELFdBQVksVUFBVTtJQUNwQix5Q0FBRyxDQUFBO0lBQ0gsMkNBQUksQ0FBQTtJQUNKLHlDQUFHLENBQUE7SUFDSCw2Q0FBSyxDQUFBO0lBQ0wscURBQVMsQ0FBQTtBQUNYLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVV0aWx9IGZyb20gXCIuLi91dGlscy9sb2NhbHN0b3JhZ2UudXRpbFwiO1xyXG5pbXBvcnQge1RlbXBsYXRlfSBmcm9tIFwiQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3JlbmRlcjMvcjNfYXN0XCI7XHJcbmltcG9ydCB7VGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgY29uc3QgYXRyX3N0YXRpY19kYXRhcyA9IHtcclxuICAvKipcclxuICAgKiBvc3PlnLDlnYDliY3nvIBcclxuICAgKi9cclxuICBPU1NfVVJMOiAnJyxcclxuICAvKipcclxuICAgKiDpnZnmgIHlnLDlnYBcclxuICAgKi9cclxuICBTVEFUSUNfT1NTX1VSTDogJycsXHJcbiAgT1NTX1BPTElDWTogJ3RoaXJkL29zcy9nZXRQb2xpY3knLFxyXG4gIFNUT1JBR0VfUFJFOiAnRFFfJyxcclxuICBtZW51X3VybDogJycsXHJcbiAgT1NTX0dFVEhPU1Q6ICcnLFxyXG4gIGRpY191cmw6ICdtZ3IvY29tYm8nLFxyXG4gIC8qKlxyXG4gICAqIOeZu+W9lei3r+eUsVxyXG4gICAqL1xyXG4gIGxvZ2luX3JvdXRlcjogJy9wL2xvZ2luJyxcclxuICBTRVJWRVJfVVJMOiAnJyxcclxuICAvL2h0dHAgaGVhZOaYr+WQpum7mOiupGhlYWRcclxuICBuZWVkTm9ybWFsSGVhZGU6IGZhbHNlLFxyXG4gIGdldE5vcm1hbEhlYWRlcjogKF9oZWFkZXJzOiBIdHRwSGVhZGVycykgPT4ge1xyXG4gICAgcmV0dXJuIF9oZWFkZXJzXHJcbiAgfSxcclxuICBnZXREZWZhdWx0SGVhZGVyOiAoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKSA9PiB7XHJcbiAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIngtaGVhZGVyLWF0clwiLCBcIm1hbmFnZVwiKTtcclxuICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwidG9rZW5cIiwgTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VyVG9rZW4oKSk7XHJcbiAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcInVzZXJJZFwiLCBMb2NhbFN0b3JhZ2VVdGlsLmdldFVzZXJJZCgpKTtcclxuICAgIC8vIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwib3JnQ29kZVwiLFRvb2xzVXRpbC5nZXRPcmdDb2RlKCkpO1xyXG4gICAgcmV0dXJuIF9oZWFkZXJzO1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBjb21tb25EYXRhcyB7XHJcbiAgc3RhdGljIGxldHRlcnMgPSBbXCJBXCIsIFwiQlwiLCBcIkNcIiwgXCJEXCIsIFwiRVwiLCBcIkZcIiwgXCJHXCIsIFwiSFwiLCBcIklcIiwgXCJKXCIsIFwiS1wiLCBcIkxcIiwgXCJNXCIsIFwiTlwiLCBcIk9cIiwgXCJQXCIsIFwiUVwiLCBcIlJcIiwgXCJTXCIsIFwiVFwiLCBcIlVcIiwgXCJWXCIsIFwiV1wiLCBcIlhcIiwgXCJZXCIsIFwiWlwiXVxyXG4gIHN0YXRpYyBpY29ucyA9ICdzdGVwLWJhY2t3YXJkLHN0ZXAtZm9yd2FyZCxmYXN0LWJhY2t3YXJkLGZhc3QtZm9yd2FyZCxzaHJpbmssYXJyb3dzLWFsdCxkb3duLHVwLGxlZnQscmlnaHQsY2FyZXQtdXAsY2FyZXQtZG93bixjYXJldC1sZWZ0LGNhcmV0LXJpZ2h0LHVwLWNpcmNsZSxkb3duLWNpcmNsZSxsZWZ0LWNpcmNsZSxyaWdodC1jaXJjbGUsZG91YmxlLXJpZ2h0LGRvdWJsZS1sZWZ0LHZlcnRpY2FsLWxlZnQsdmVydGljYWwtcmlnaHQsdmVydGljYWwtYWxpZ24tdG9wLHZlcnRpY2FsLWFsaWduLW1pZGRsZSx2ZXJ0aWNhbC1hbGlnbi1ib3R0b20sZm9yd2FyZCxiYWNrd2FyZCxyb2xsYmFjayxlbnRlcixyZXR3ZWV0LHN3YXAsc3dhcC1sZWZ0LHN3YXAtcmlnaHQsYXJyb3ctdXAsYXJyb3ctZG93bixhcnJvdy1sZWZ0LGFycm93LXJpZ2h0LHBsYXktY2lyY2xlLHVwLXNxdWFyZSxkb3duLXNxdWFyZSxsZWZ0LXNxdWFyZSxyaWdodC1zcXVhcmUsbG9naW4sbG9nb3V0LG1lbnUtZm9sZCxtZW51LXVuZm9sZCxib3JkZXItYm90dG9tLGJvcmRlci1ob3Jpem9udGFsLGJvcmRlci1pbm5lcixib3JkZXItb3V0ZXIsYm9yZGVyLWxlZnQsYm9yZGVyLXJpZ2h0LGJvcmRlci10b3AsYm9yZGVyLXZlcnRpY2xlLHBpYy1jZW50ZXIscGljLWxlZnQscGljLXJpZ2h0LHJhZGl1cy1ib3R0b21sZWZ0LHJhZGl1cy1ib3R0b21yaWdodCxyYWRpdXMtdXBsZWZ0LHJhZGl1cy11cHJpZ2h0LGZ1bGxzY3JlZW4sZnVsbHNjcmVlbi1leGl0LHF1ZXN0aW9uLHF1ZXN0aW9uLWNpcmNsZSxwbHVzLHBsdXMtY2lyY2xlLHBhdXNlLHBhdXNlLWNpcmNsZSxtaW51cyxtaW51cy1jaXJjbGUscGx1cy1zcXVhcmUsbWludXMtc3F1YXJlLGluZm8saW5mby1jaXJjbGUsZXhjbGFtYXRpb24sZXhjbGFtYXRpb24tY2lyY2xlLGNsb3NlLGNsb3NlLWNpcmNsZSxjbG9zZS1zcXVhcmUsY2hlY2ssY2hlY2stY2lyY2xlLGNoZWNrLXNxdWFyZSxjbG9jay1jaXJjbGUsd2FybmluZyxpc3N1ZXMtY2xvc2Usc3RvcCxlZGl0LGZvcm0sY29weSxzY2lzc29yLGRlbGV0ZSxzbmlwcGV0cyxkaWZmLGhpZ2hsaWdodCxhbGlnbi1jZW50ZXIsYWxpZ24tbGVmdCxhbGlnbi1yaWdodCxiZy1jb2xvcnMsYm9sZCxpdGFsaWMsdW5kZXJsaW5lLHN0cmlrZXRocm91Z2gscmVkbyx1bmRvLHpvb20taW4sem9vbS1vdXQsZm9udC1jb2xvcnMsZm9udC1zaXplLGxpbmUtaGVpZ2h0LGRhc2gsc21hbGwtZGFzaCxzb3J0LWFzY2VuZGluZyxzb3J0LWRlc2NlbmRpbmcsZHJhZyxvcmRlcmVkLWxpc3QsdW5vcmRlcmVkLWxpc3QscmFkaXVzLXNldHRpbmcsY29sdW1uLXdpZHRoLGNvbHVtbi1oZWlnaHQsYXJlYS1jaGFydCxwaWUtY2hhcnQsYmFyLWNoYXJ0LGRvdC1jaGFydCxsaW5lLWNoYXJ0LHJhZGFyLWNoYXJ0LGhlYXQtbWFwLGZhbGwscmlzZSxzdG9jayxib3gtcGxvdCxmdW5kLHNsaWRlcnMsYW5kcm9pZCxhcHBsZSx3aW5kb3dzLGllLGNocm9tZSxnaXRodWIsYWxpd2FuZ3dhbmcsZGluZ2Rpbmcsd2VpYm8tc3F1YXJlLHdlaWJvLWNpcmNsZSx0YW9iYW8tY2lyY2xlLGh0bWw1LHdlaWJvLHR3aXR0ZXIsd2VjaGF0LHlvdXR1YmUsYWxpcGF5LWNpcmNsZSx0YW9iYW8sc2t5cGUscXEsbWVkaXVtLXdvcmttYXJrLGdpdGxhYixtZWRpdW0sbGlua2VkaW4sZ29vZ2xlLXBsdXMsZHJvcGJveCxmYWNlYm9vayxjb2RlcGVuLGNvZGUtc2FuZGJveCxhbWF6b24sZ29vZ2xlLGNvZGVwZW4tY2lyY2xlLGFsaXBheSxhbnQtZGVzaWduLGFudC1jbG91ZCxhbGl5dW4semhpaHUsc2xhY2ssc2xhY2stc3F1YXJlLGJlaGFuY2UsYmVoYW5jZS1zcXVhcmUsZHJpYmJibGUsZHJpYmJibGUtc3F1YXJlLGluc3RhZ3JhbSx5dXF1ZSxhbGliYWJhLHlhaG9vLHJlZGRpdCxza2V0Y2gsYWxlcnQsYWltLGFjY291bnQtYm9vayxhcGFydG1lbnQsYXBpLGFwcHN0b3JlLGF1ZGlvLW11dGVkLGF1ZGl0LGJhbmssYmFyY29kZSxiYXJzLGJsb2NrLGJvb2ssYmVsbCxhcHBzdG9yZS1hZGQsYXVkaW8sYm9yZGVyLGJvcmRlcmxlc3MtdGFibGUsYnVnLGJyYW5jaGVzLGNhbWVyYSxjYWxjdWxhdG9yLGNhbGVuZGFyLGJ1aWxkLGNhcnJ5LW91dCxidWxiLGNhcixjbGVhcixjaSxjbG91ZC1kb3dubG9hZCxjbG91ZCxjbG91ZC1zeW5jLGNsb3VkLXNlcnZlcixjbG91ZC11cGxvYWQsY29kZSxjb2ZmZWUsY29tcHJlc3MsY29tcGFzcyxjb21tZW50LGNpLWNpcmNsZSxjb250YWluZXIsY29udHJvbCxjb3B5cmlnaHQsY3JlZGl0LWNhcmQsY2x1c3RlcixjdXN0b21lci1zZXJ2aWNlLGNvbnRhY3RzLGNvbnNvbGUtc3FsLGRhc2hib2FyZCxkYXRhYmFzZSxjb3B5cmlnaHQtY2lyY2xlLGRlbGV0ZS1jb2x1bW4sZGVza3RvcCxkZXBsb3ltZW50LXVuaXQsZGVsaXZlcmVkLXByb2NlZHVyZSxkaXNjb25uZWN0LGRpbmd0YWxrLGRvbGxhci1jaXJjbGUsZGlzbGlrZSxkZWxldGUtcm93LGRvbGxhcixjcm93bixkb3dubG9hZCxlbGxpcHNpcyxlbnZpcm9ubWVudCxldXJvLWNpcmNsZSxleGNlcHRpb24sZXhwYW5kLWFsdCxldXJvLGV4cGVyaW1lbnQsZXhwb3J0LGV4cGFuZCxleWUtaW52aXNpYmxlLGV5ZSxmaWxlLWFkZCxmaWVsZC1zdHJpbmcsZmlsZS1leGNsYW1hdGlvbixmaWxlLWRvbmUsZmllbGQtdGltZSxmaWxlLWV4Y2VsLGZpZWxkLWJpbmFyeSxmaWxlLWdpZixmaWxlLWltYWdlLGZpbGUsZmlsZS1tYXJrZG93bixmaWxlLXBwdCxmaWxlLXBkZixmaWVsZC1udW1iZXIsZmlsZS1zZWFyY2gsZmlsZS1zeW5jLGZpbGUtanBnLGZpbGUtdGV4dCxmaWx0ZXIsZmlsZS16aXAsZmxhZyxmb2xkZXItYWRkLGZpbGUtdW5rbm93bixmb2xkZXItb3BlbixmaXJlLGZpbGUtcHJvdGVjdCxmb2xkZXItdmlldyxmb2xkZXIsZm9yayxmb3JtYXQtcGFpbnRlcixmcm93bixmdW5kLXByb2plY3Rpb24tc2NyZWVuLGdpZnQsZ2F0ZXdheSxmdW5kLXZpZXcsZ2lmLGZ1bm5lbC1wbG90LGdvbGQsZ2xvYmFsLGdyb3VwLGhkZCxmdW5jdGlvbixoaXN0b3J5LGZpbGUtd29yZCxob21lLGlkY2FyZCxob3VyZ2xhc3MsaGVhcnQsaW5zZXJ0LXJvdy1iZWxvdyxpbXBvcnQsaW5zZXJ0LXJvdy1sZWZ0LGluc2VydC1yb3ctYWJvdmUsaW5zZXJ0LXJvdy1yaWdodCxrZXksaW5ib3gsaW5zdXJhbmNlLGxhcHRvcCxsaWtlLGxpbmUsbGluayxsb2FkaW5nLTMtcXVhcnRlcnMsbG9hZGluZyxsb2NrLG1hbixtYWlsLG1hYy1jb21tYW5kLG1lZGljaW5lLWJveCxsYXlvdXQsbWVoLGludGVyYWN0aW9uLG1lc3NhZ2UsbWVudSxtZXJnZS1jZWxscyxtb2JpbGUsbW9uZXktY29sbGVjdCxub2RlLWluZGV4LG1vbml0b3Isbm9kZS1leHBhbmQsbW9yZSxudW1iZXIsbm90aWZpY2F0aW9uLG9uZS10by1vbmUscGVyY2VudGFnZSxwaG9uZSxwYXBlci1jbGlwLHBhcnRpdGlvbixwaWN0dXJlLG5vZGUtY29sbGFwc2UscGxheS1zcXVhcmUscGF5LWNpcmNsZSxwb3VuZCxwcm9maWxlLHByb2plY3QscHJvcGVydHktc2FmZXR5LHBvd2Vyb2ZmLHB1c2hwaW4scXJjb2RlLHByaW50ZXIscG91bmQtY2lyY2xlLHB1bGwtcmVxdWVzdCxyZXN0LHJlYWQscmVsb2FkLHJlY29uY2lsaWF0aW9uLHJvYm90LHJvY2tldCxyb3RhdGUtcmlnaHQsc2FmZXR5LWNlcnRpZmljYXRlLHJlZC1lbnZlbG9wZSxyb3RhdGUtbGVmdCxzYXZlLHNhZmV0eSxzZWFyY2gsc2VjdXJpdHktc2NhbixzY2FuLHNlbmQsc2V0dGluZyxzZWxlY3Qsc2hha2Usc2hvcHBpbmctY2FydCxzaXN0ZXJub2RlLHNob3Asc2hvcHBpbmcsc2hhcmUtYWx0LHNjaGVkdWxlLHNraW4sc21pbGUsc29sdXRpb24sc291bmQsc3BsaXQtY2VsbHMsc3RhcixzdWJub2RlLHRhZ3MsdGFibGV0LHRhZyx0YWJsZSxzd2l0Y2hlcixzeW5jLHRlYW0sdG9vbCx0cmFkZW1hcmstY2lyY2xlLHRodW5kZXJib2x0LHRvLXRvcCx0cmFuc2xhdGlvbix0cmFkZW1hcmssdHJvcGh5LHVuZ3JvdXAsdW5sb2NrLHVwbG9hZCx0cmFuc2FjdGlvbix1c2VyLWRlbGV0ZSx1c2IsdXNlci1hZGQsdXNlcmdyb3VwLWRlbGV0ZSx2aWRlby1jYW1lcmEtYWRkLHZlcmlmaWVkLHVzZXJncm91cC1hZGQsdXNlcix1c2VyLXN3aXRjaCx2aWRlby1jYW1lcmEsd2lmaSx3YWxsZXQsd2hhdHMtYXBwLHdvbWFuLGFwcHN0b3JlJy5zcGxpdCgnLCcpXHJcbiAgc3RhdGljIGF3YWl0X0RhdGE6YW55ID0ge307XHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBqc29uIGV4dGVuZHMgT2JqZWN0IHtcclxuICBba2V5OiBzdHJpbmddOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlcnZlclBhZ2luYXRpb25TdGFuZGFyZCB7XHJcbiAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuICBzaG93Q291bnQ6IG51bWJlcjtcclxuICB0b3RhbFJlc3VsdDogbnVtYmVyO1xyXG4gIHRvdGFsUGFnZT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSZXNwb25zZURhdGFTdGFuZGFyZCB7XHJcbiAgc3RhdGU6IG51bWJlcjsgLy8g5Li6MeaJjeaYr+aIkOWKn1xyXG4gIGRhdGE6IGpzb24gfCBbe31dIHwgb2JqZWN0IHwgc3RyaW5nIHwgYW55OyAvL+ayoeacieWAvCBkYXRhOiAnJ1xyXG4gIG1lc3M6IHN0cmluZzsgLy/ov5Tlm57nmoTmtojmga9cclxuICBwYWdlPzogU2VydmVyUGFnaW5hdGlvblN0YW5kYXJkO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBSc2Vwb25zZVRyYW5zZm9ybUNlbGwge1xyXG4gIFtrZXk6IHN0cmluZ106IGpzb25cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEh0dHBPcHRpb25zIHtcclxuICBoZWFkZXJzPzoge30sXHJcbiAgaXNKc29uRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzVXJsRW5jb2RlPzogYm9vbGVhblxyXG4gIGlzQXV0b1Nob3dNZXNzYWdlPzogYm9vbGVhblxyXG4gIGlzV2l0aENyZWRlbnRpYWxzPzogYm9vbGVhblxyXG4gIGlzQ29tbW9uSHR0cEhlYWRlcj86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGVudW0gVXNlckFjdGlvbiB7XHJcbiAgQURELFxyXG4gIEVESVQsXHJcbiAgREVMLFxyXG4gIFFVRVJZLFxyXG4gIFNVUFBFUkFERFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRUNoYXJ0c09wdGlvbiB7XHJcbiAgdGl0bGU/OiBhbnksXHJcbiAgbGVnZW5kPzogYW55LFxyXG4gIGdyaWQ/OiBhbnksXHJcbiAgYnJ1c2g/OiBhbnksXHJcbiAgdG9vbGJveD86IGFueSxcclxuICB0b29sdGlwPzogYW55LFxyXG4gIGRhdGFzZXQ/OiBhbnksXHJcbiAgeEF4aXM/OiB7XHJcbiAgICB0eXBlPzogJ2NhdGVnb3J5JyxcclxuICAgIGRhdGE/OiBzdHJpbmdbXSxcclxuICAgIGJvdW5kYXJ5R2FwPzogYm9vbGVhbixcclxuICAgIHNob3c/OiBib29sZWFuLFxyXG4gIH0sXHJcbiAgeUF4aXM/OiBhbnksLy97ICAgIHNob3c6ZmFsc2UsICAgIHR5cGU6ICd2YWx1ZScsICAgIG1pbkludGVydmFsOiAxLH1bXVxyXG4gIHNlcmllcz86IHtcclxuICAgIG5hbWU/OiBzdHJpbmcsXHJcbiAgICBkYXRhPzogYW55W10sXHJcbiAgICBpdGVtU3R5bGU/OiBhbnksXHJcbiAgICBzdGFjaz86IGFueSxcclxuICAgIGVtcGhhc2lzPzogYW55LFxyXG4gICAgbGFiZWw/OiBhbnksXHJcbiAgICByYWRpdXM/OiBhbnlbXSxcclxuICAgIHNtb290aD86IGJvb2xlYW4sXHJcbiAgICBzZXJpZXNMYXlvdXRCeT86IHN0cmluZyxcclxuICAgIHR5cGU/OiAnYmFyJyB8ICdwaWUnIHwgJ2xpbmUnLFxyXG4gICAgYmFja2dyb3VuZFN0eWxlPzogYW55XHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtT3B0IHtcclxuICB0eXBlOiAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICBsYXlvdXQ/OiBcImZ1bGxcIiB8ICcxbDJjJyB8ICcxbDFjJyxcclxuICBpdGVtczogQXRyRm9ybURldGFpbFtdLC8v6KGo5Y2V6aG555uuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBdHJGb3JtRGV0YWlsIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHR5cGU6ICdjYXNjYWRlcicgfCAncmFkaW8nIHwgJ3RleHQnIHwgJ2ltYWdlJyB8ICdzZWxlY3QnIHwgJ2RhdGUnIHwgJ251bWJlcicgfCAndGVscGhvbmUnIHwgJ3Bhc3N3b3JkJyB8ICdjaGVja2JveCcgfCAnZGF5UmFuZ2UnXHJcbiAgICB8ICdlZGl0b3InIHwgJ3RleHRhcmVhJyB8ICdkYXRlVGltZScgfCAndGl0bGUnIHwgJ2RhdGVSYW5nZScgfCAnc2VsZWN0YycgfCAnc2VsZWN0SWNvbicgfCAndHJlZVNlbGVjdCcgfCAnc3dpdGNoJyB8ICdidXR0b25zJyxcclxuICBrZXk6IHN0cmluZyxcclxuICBpc0hpZGRlbj86IGJvb2xlYW4sXHJcbiAgZGVmYXVsdFZhbHVlPzogYW55LFxyXG4gIHZhbHVlPzogYW55LC8v57yW6L6R5LiL5Y6f5aeL5pWw5YC8XHJcbiAgZGljdENvZGU/OiBzdHJpbmcsLy9zZWxlY3Qg5qih5byP5LiL6YWN572uXHJcbiAgc3Bhbj86IG51bWJlciwvL+aYvuekuuWuveW6plxyXG4gIHZhbGlkYXRvcnM/OiBBdHJGb3JtVmFsaWRbXSwvL+mqjOivgeadoeS7tlxyXG4gIGlzUmVxdWlyZWQ/OiBib29sZWFuIHwgc3RyaW5nLC8v6ZqQ5oCn5p2h5Lu2IOaXoOmcgOWhq+WGmSwgc3RyaW5n57G75Z6L5qC85byP5ZCMb3BlcmF0b3JcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZyxcclxuICBpbWFnZU9wdHM/OiBJbWFnZU9wdHMsXHJcbiAgZWRpdENvbnRlbnQ/OiBzdHJpbmcsXHJcbiAgaGVpZ2h0PzogbnVtYmVyLC8vZWRpdG9y5pyJ5pWIXHJcbiAgZGlzYWJsZT86IGJvb2xlYW4sXHJcbiAgbHNwYW4/OiBudW1iZXIsXHJcbiAgY3NwYW4/OiBudW1iZXIsXHJcbiAgcm93cz86IG51bWJlciwvL3RleHRhcmVhIOaYvuekuuihjOaVsFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymIOagvOW8jyDlpoI6c3RhdHVzfGVxfDBcclxuICBidXR0b24/OiBmb3JtQnV0dG9uLFxyXG4gIHJlYWRvbmx5PzogYm9vbGVhbixcclxuICBkYXRlRm9ybWF0Pzogc3RyaW5nLFxyXG4gIGRpY3RMaXN0PzogQ3VzRGljdFtdLFxyXG4gIG56TW9kZT86ICdtdWx0aXBsZScgfCAndGFncycgfCAnZGVmYXVsdCcsXHJcbiAgc2VsZWN0VXJsPzogeyB1cmw6IHN0cmluZywgY29udmVydD86IHN0cmluZywgdHlwZT86ICdnZXQnIHwgJ3Bvc3QnLCBob3N0PzogJ29zcycgfCAnc2VydmUnLCBpc011bHRpcGxlPzogYm9vbGVhbiwgaWdub3JlRGljdExpc3Q/OiBib29sZWFuIH0sXHJcbiAgdHJlZUxpc3Q/OiB7IGtleTogc3RyaW5nLCB0aXRsZTogc3RyaW5nIH1bXSxcclxuICBlbmRzPzogc3RyaW5nLFxyXG4gIHByb3Bvc2FsPzogc3RyaW5nLFxyXG4gIHRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gIGZpcnN0VGVtcD86IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgbWluTnVtYmVyPzogYW55LFxyXG4gIG1heE51bWJlcj86IGFueSxcclxuICBub3ROdWxsPzogYm9vbGVhblxyXG4gIG56U2hvd1RpbWU/OiBib29sZWFuIHwgeyBuekZvcm1hdDogc3RyaW5nIH0sXHJcbiAgYnV0dG9ucz86IGZvcm1CdXR0b25bXVxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyRm9ybVZhbGlkIHtcclxuICB0eXBlOiAncmVxdWlyZWQnIHwgJ2VtYWlsJyB8ICd0ZWxwaG9uZScgfCAnbWF4bGVuZ3RoJyB8ICdtaW5sZW5ndGgnIHwgJ3BhdHRlcm4nIHwgJ29wZXJhdG9yJyxcclxuICBlcnJvckxhYmVsOiBzdHJpbmcsXHJcbiAgbWF4bGVuZ3RoPzogbnVtYmVyLFxyXG4gIG1pbmxlbmd0aD86IG51bWJlcixcclxuICBwYXR0ZXJuVmFsdWU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIGZvcm1CdXR0b24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBpc1Nob3c6IGJvb2xlYW4sXHJcbiAgY29kZTogc3RyaW5nLFxyXG4gIGJ0blR5cGU/OiBzdHJpbmcsXHJcbiAgb3BlcmF0b3I/OiBzdHJpbmcsLy8vL+aYvuekuuaTjeS9nOespiDmoLzlvI8g5aaCOnN0YXR1c3xlcXwwXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBjb2xvck9wZXJhdG9yIHtcclxuICBjb2xvcjogc3RyaW5nLFxyXG4gIG9wZXJhdG9yOiBzdHJpbmcsLy/op4TliJlcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF0clF1ZXlyT3B0IHtcclxuICBhY3Rpb25zPzogVGFibGVBY3Rpb25bXSxcclxuICBpc0luZGV4PzogYm9vbGVhbiwvL+aYr+WQpuaYvuekuuW6j+WPtyxcclxuICBjb2xvcj86IGNvbG9yT3BlcmF0b3IsLy/popzoibJcclxuICBjaGVja0JveD86IHtcclxuICAgIGlzU2hvd0NoZWNrYm94PzogYm9vbGVhbixcclxuICAgIGlzUmFkaW8/OiBib29sZWFuLFxyXG4gICAgaXNGb3JiaWQ/OiBib29sZWFuLC8vdHJ1ZeaXtuWPquWFgeiuuOeCueWHu+WkmumAieahhumAieaLqVxyXG4gIH0sXHJcbiAgLy8gaXNTaG93Q2hlY2tib3g/OiBib29sZWFuLFxyXG4gIHNob3dOdW0/OiBudW1iZXIsXHJcbiAgdXJsOiBzdHJpbmcsXHJcbiAgc29ydD86IHN0cmluZyxcclxuICBoZWFkZXJzPzogQXRyUXVlcnlIZWFkZXJbXSxcclxuICB0YWJsZXM6IFRhYmxlW10sXHJcbiAgaXNBdXRvUXVlcnk/OiBib29sZWFuLC8vdHJ1ZeaXtuWAmem7mOiupOinpuWPkeafpeivolxyXG4gIGRlZmF1bHRQYXJhbXM/OiBqc29uLFxyXG4gIGlzSGlkZVF1ZXJ5PzogYm9vbGVhblxyXG4gIC8vIGlzUmFkaW8/OmJvb2xlYW4sXHJcbiAgLy8gaXNGb3JiaWQ/OmJvb2xlYW4sLy90cnVl5pe25Y+q5YWB6K6454K55Ye75aSa6YCJ5qGG6YCJ5oupXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZSB7XHJcbiAgbmFtZTogc3RyaW5nLC8v6KGo5aS05ZCN56ewXHJcbiAga2V5Pzogc3RyaW5nLC8v5a6e6ZmF5pWw5o2u5a2X5q61XHJcbiAgZGVmYXVsdFZhbD86IGFueSxcclxuICBzb3J0S2V5Pzogc3RyaW5nLC8v5piv5ZCm5o6S5bqPXHJcbiAgc29ydGFibGU/OiBib29sZWFuLFxyXG4gIHR5cGU6ICd0ZXh0Y29sb3InIHwgJ2ZpeGVkVGV4dCcgfCAndGV4dCcgfCAnbGluaycgfCAnYWN0aW9uJyB8ICdpbWFnZScgfCAnZGF0ZScgfCAnZGF0ZVRpbWUnIHwgJ3NEYXRlVGltZScgfCAnZGljdCdcclxuICAgIHwgJ2lubmVySHRtbCcsLy/nsbvlnovvvJog5paH5a2X44CB6ZO+5o6l44CB5pON5L2cXHJcbiAgZGljdENvZGU/OiBzdHJpbmcsXHJcbiAgaXNTaG93PzogYm9vbGVhbixcclxuICB3aWR0aD86IHN0cmluZywvLzE1MHB4XHJcbiAgYWN0aW9ucz86IFRhYmxlQWN0aW9uW10sXHJcbiAgaXNSb3dTcGFuPzogYm9vbGVhbixcclxuICBpc1JpZ2h0PzogYm9vbGVhblxyXG4gIGlzTGVmdD86IGJvb2xlYW4sXHJcbiAgY29sb3I/OiBjb2xvck9wZXJhdG9yLC8v6aKc6ImyXHJcbiAgY29sb3JTaG93Pzogc3RyaW5nLFxyXG4gIGlubmVySHRtbEJhY2s/OiBGdW5jdGlvbixcclxuICBzdHlsZUNhbGxCYWNrPzpGdW5jdGlvblxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXRyUXVlcnlIZWFkZXIge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICB0eXBlOiAnY2FzY2FkZXInIHwgJ3RleHQnIHwgJ251bWJlcicgfCAnY2hlY2tib3gnIHwgJ3NlbGVjdCcgfCAnZGF0ZXBpY2tlcicgfCAnc2VsZWN0Q3VzJyB8ICdkYXRlUmFuZ2UnIHwgJ3NkYXRlJyB8ICd0cmVlU2VsZWN0JyB8ICdkYXlSYW5nZScsXHJcbiAgbnpNb2RlPzogJ211bHRpcGxlJyB8ICd0YWdzJyB8ICdkZWZhdWx0JyxcclxuICBrZXk6IHN0cmluZyxcclxuICBpc1Nob3c/OiBib29sZWFuLFxyXG4gIGNvZGU/OiBzdHJpbmcsXHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmcsXHJcbiAgc3Bhbj86IG51bWJlcixcclxuICBkaWN0Q29kZT86IHN0cmluZywvL+Wtl+WFuOe8lueggVxyXG4gIGRpY3RMaXN0PzogQ3VzRGljdFtdLFxyXG4gIGRlZmF1bHRWYWw/OiBhbnkgLy8g6buY6K6k5YC8XHJcbiAgbWF4VGFnQ291bnQ/OiBudW1iZXIsXHJcbiAgbHNwYW4/OiBudW1iZXIsXHJcbiAgY3NwYW4/OiBudW1iZXIsXHJcbiAgZGlzYWJsZUNsZWFyPzogYm9vbGVhbixcclxuICB0cmVlTGlzdD86IHsga2V5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcgfVtdXHJcbiAgLyoqXHJcbiAgICog5qC85byPXHJcbiAgICogY29udmVydDona2V5fGlkLHRpdGxlfHJlYWxOYW1lJyh0cmVlU2VsZWN0KVxyXG4gICAqICAgIHZhbHVlfGlkLGxhYmVsfG5hbWUoc2VsZWN0Q3VzKVxyXG4gICAqL1xyXG4gIHNlbGVjdFVybD86IHsgdXJsOiBzdHJpbmcsIGNvbnZlcnQ6IHN0cmluZywgaXNNdWx0aXBsZT86IGJvb2xlYW4gfSwvL2NvbnZlcnQ6IG5ld0tleXxvbGRLZXksbmV3S2V5fG9sZEtleSjmjqXlj6Pov5Tlm57nmoTlgLwpXHJcbiAgaWNvbj86IHsgaXNTaG93OiBib29sZWFuLCBjb2RlOiBzdHJpbmcsIGljb246IGFueSB9LFxyXG4gIGRhdGVNb2RlPzogJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJyxcclxuICBuelNob3dUaW1lPzogYm9vbGVhbiB8IHsgbnpGb3JtYXQ6IHN0cmluZyB9LFxyXG4gIG56U2hvd05vdz86IGJvb2xlYW4sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUYWJsZUFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IHN0cmluZyxcclxuICB1cmw/OiBzdHJpbmcsXHJcbiAgZ1R5cGU/OiAnbm9ybWFsJyB8ICd1cGxvYWQnLFxyXG4gIGRhdGE/OiBhbnksXHJcbiAgZmlyc3REYXRhPzogYW55LFxyXG4gIGRhdGFzPzogYW55W10sXHJcbiAgaWNvbj86IHN0cmluZyxcclxuICBudW1iZXJPZkNoZWNrZWQ/OiBudW1iZXIsXHJcbiAgdHlwZT86ICdyb3dzJyB8ICdyb3cnLFxyXG4gIG9wZXJhdG9yPzogc3RyaW5nLC8v5pi+56S65pON5L2c56ymXHJcbiAgYnV0dG9uVHlwZT86ICdwcmltYXJ5JyB8ICdkYXNoZWQnIHwgJ2RhbmdlcicgfCAnZGVmYXVsdCcgfCAnbGluaycsXHJcbiAgdmFsdWU/OiBhbnksXHJcbiAgd2l0aG91dFJvbGU/OiBib29sZWFuLy/kuI3pnIDopoHmnYPpmZDmjqfliLZcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1BY3Rpb24ge1xyXG4gIG5hbWU6IHN0cmluZyxcclxuICBjb2RlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIERpY3Qge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdHlwZU5hbWU6IHN0cmluZyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBEaWN0R3JvdXAge1xyXG4gIGdyb3VwQ29kZTogc3RyaW5nLFxyXG4gIGRpY3RzOiBEaWN0W11cclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEN1c0RpY3Qge1xyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgdmFsdWU6IHN0cmluZyxcclxuICBpc1NlbGVjdD86IGJvb2xlYW4vL2NoZWNrQm946buY6K6k6YCJ5LitXHJcbn1cclxuXHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJbWFnZU9wdHMge1xyXG4gIGxpbWl0PzogbnVtYmVyLFxyXG4gIHVwbG9hZERpcjogc3RyaW5nLFxyXG4gIHJlbW92ZUFjdGlvbj86IHN0cmluZyxcclxuICBpbWFnZUxpc3Q/OiBhbnlbXSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbiAgbGFiZT86IHN0cmluZyxcclxuICBmaWxlTmFtZT86IHN0cmluZyxcclxuICB1cGxvYWRUeXBlPzogJ2RyYWcnIHwgJycgfCAnYnV0dG9uJyxcclxuICBuekZpbGVUeXBlPzogc3RyaW5nLFxyXG4gIGtlZXBOYW1lPzogYm9vbGVhblxyXG4gIGJ0bk5hbWU/OnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgZXF1aXBUZXN0RGF0YSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbiAgaXRlbU5hbWU6IHN0cmluZ1xyXG4gIHpob3UxOiBudW1iZXJcclxuICB6aG91MjogbnVtYmVyXHJcbiAgemhvdTM6IG51bWJlclxyXG4gIHpob3U0OiBudW1iZXJcclxuICB6aG91NTogbnVtYmVyXHJcbiAgemhvdTY6IG51bWJlclxyXG4gIGlzV3JvbmcxPzogYm9vbGVhblxyXG4gIGlzV3JvbmcyPzogYm9vbGVhblxyXG4gIGlzV3JvbmczPzogYm9vbGVhblxyXG4gIGlzV3Jvbmc0PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc1PzogYm9vbGVhblxyXG4gIGlzV3Jvbmc2PzogYm9vbGVhblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNlbGVjdEFjdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nLFxyXG4gIGNvZGU6IFwibmdNb2RlbENoYW5nZVwiIHwgJ256T3BlbkNoYW5nZScsXHJcbiAgZGF0YT86IGFueSxcclxuICBrZXk/OiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUljb24ge1xyXG4gIC8qKiBUeXBlIGZvciBpY29uICovXHJcbiAgdHlwZTogJ2NsYXNzJyB8ICdpY29uJyB8ICdpY29uZm9udCcgfCAnaW1nJztcclxuICAvKiogVmFsdWUgZm9yIHRoZSBpY29uLCBjYW4gYmUgc2V0IENsYXNzIE5hbWUsIG56LWljb24gb2YgYG56VHlwZWAsIGltYWdlICovXHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGFudCBkZXNpZ24gaWNvbiwgZGVmYXVsdDogYG91dGxpbmVgICovXHJcbiAgdGhlbWU/OiAnb3V0bGluZScgfCAndHdvdG9uZScgfCAnZmlsbCc7XHJcbiAgLyoqIFJvdGF0ZSBpY29uIHdpdGggYW5pbWF0aW9uLCBkZWZhdWx0OiBgZmFsc2VgICovXHJcbiAgc3Bpbj86IGJvb2xlYW47XHJcbiAgLyoqIE9ubHkgc3VwcG9ydCB0aGUgdHdvLXRvbmUgaWNvbi4gU3BlY2lmaWMgdGhlIHByaW1hcnkgY29sb3IgKi9cclxuICB0d29Ub25lQ29sb3I/OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGljb24gZnJvbSBpY29uZm9udCAqL1xyXG4gIGljb25mb250Pzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1lbnUge1xyXG4gIHRleHQ/OiBzdHJpbmc7XHJcbiAgbGluaz86IHN0cmluZztcclxuICByZWFsTGluaz86IHN0cmluZztcclxuICBpc1NlbGVjdGVkPzogQm9vbGVhbjtcclxuICBpc09wZW4/OiBCb29sZWFuO1xyXG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcclxuICAvKiogSWNvbiBmb3IgdGhlIG1lbnUgaXRlbSwgb25seSB2YWxpZCBmb3IgdGhlIGZpcnN0IGxldmVsIG1lbnUgKi9cclxuICBpY29uPzogc3RyaW5nIHwgTWVudUljb24gfCBudWxsO1xyXG4gIC8qKiBCYWRnZXQgZm9yIHRoZSBtZW51IGl0ZW0gd2hlbiBgZ3JvdXBgIGlzIGB0cnVlYCAqL1xyXG4gIG9wZXJhdGlvbj86IHN0cmluZztcclxuICAvKiogV2hldGhlciBzaG9ydGN1dCBtZW51IGl0ZW0gKi9cclxuICBzZXE/OiBudW1iZXI7XHJcbiAgbGV2ZWw/OiBudW1iZXI7XHJcbiAgLyoqIFdoZXRlciBzaG9ydGN1dCBtZW51IHJvb3Qgbm9kZSAqL1xyXG4gIGxpbmtUeXBlPzogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IHJldXNlLCBuZWVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBgcmV1c2UtdGFiYCBjb21wb25lbnQgKi9cclxuICBjaGlsZHJlbj86IE1lbnVbXTtcclxuICBpc1Zpc2libGU/OiAnMCcgfCAnMSdcclxufVxyXG4iXX0=
|
|
@@ -232,6 +232,21 @@ export class HttpService {
|
|
|
232
232
|
});
|
|
233
233
|
return Promise.all(param);
|
|
234
234
|
}
|
|
235
|
+
getOssPre() {
|
|
236
|
+
return new Observable(observe => {
|
|
237
|
+
if (!atr_static_datas.OSS_GETHOST) {
|
|
238
|
+
observe.error();
|
|
239
|
+
observe.unsubscribe();
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
this.post(atr_static_datas.OSS_GETHOST, {}, ToolsUtil.getHttpOptions()).subscribe(res => {
|
|
243
|
+
atr_static_datas.OSS_URL = res.data;
|
|
244
|
+
ToolsUtil.ossPrefix = res.data;
|
|
245
|
+
observe.next();
|
|
246
|
+
observe.unsubscribe();
|
|
247
|
+
});
|
|
248
|
+
});
|
|
249
|
+
}
|
|
235
250
|
postProm(url, params, options, headers, noTip = false) {
|
|
236
251
|
// //console.log("aaa");
|
|
237
252
|
let _headers = new HttpHeaders();
|
|
@@ -288,4 +303,4 @@ HttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
|
|
|
288
303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: HttpService, decorators: [{
|
|
289
304
|
type: Injectable
|
|
290
305
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRzdDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVdoQzs7OztXQUlHO1FBQ0gsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLE1BQVksRUFBRSxPQUFxQixFQUFFLE9BQXFCLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBbUIsRUFBRTtZQUVqSCxPQUFPLElBQUksVUFBVSxDQUFNLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQyxzQkFBc0I7Z0JBQ3RCLElBQUksUUFBUSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsRUFBRTtvQkFDM0QsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDNUM7Z0JBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFDLElBQUksT0FBTyxFQUFFO29CQUNY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QkFDckIsS0FBSyxFQUFFLGdCQUFnQixDQUFDLFlBQVksRUFBRTtnQkFDdEMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRTthQUNyQyxDQUFBO1lBQ0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRSxDQUFDLEVBQ0QsS0FBSyxDQUFDLEVBQUU7UUFDUixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7O3lHQTlTVSxXQUFXOzZHQUFYLFdBQVc7NEZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cFJlcXVlc3QsIEh0dHBFdmVudFR5cGUsIEh0dHBIZWFkZXJzfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHthdHJfc3RhdGljX2RhdGFzLCBIdHRwT3B0aW9uc30gZnJvbSAnLi4vYmFzZS9hdHItY29tbW9uJztcclxuaW1wb3J0IHtMb2NhbFN0b3JhZ2VVdGlsfSBmcm9tICcuLi91dGlscy9sb2NhbHN0b3JhZ2UudXRpbCc7XHJcbmltcG9ydCB7TWQ1fSBmcm9tIFwidHMtbWQ1XCI7XHJcbmltcG9ydCB7ZW52aXJvbm1lbnR9IGZyb20gXCJuZy16b3Jyby1hbnRkL2NvcmUvZW52aXJvbm1lbnRzXCI7XHJcbmltcG9ydCB7VG9vbHNVdGlsfSBmcm9tIFwiLi4vdXRpbHMvVG9vbHNVdGlsXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBnZXROb3JtYWxIZWFkZXIoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xyXG4gICAgaWYgKCFhdHJfc3RhdGljX2RhdGFzLm5lZWROb3JtYWxIZWFkZSkge1xyXG4gICAgICByZXR1cm4gX2hlYWRlcnM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXRyX3N0YXRpY19kYXRhcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB1cmxcclxuICAgKiBAcGFyYW0gcGFyYW1zXHJcbiAgICovXHJcbiAgcG9zdCA9ICh1cmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgbm9UaXAgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWFhXCIpO1xyXG4gICAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNDb21tb25IdHRwSGVhZGVyJykpIHtcclxuICAgICAgICBfaGVhZGVycyA9IHRoaXMuZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldE5vcm1hbEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwibm9UaXBcIiwgbm9UaXAgPyBcIjFcIiA6IFwiMFwiKTtcclxuICAgICAgbGV0IHdpdGhDcmVkZW50aWFsczogYW55ID0gdHJ1ZVxyXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdpc1dpdGhDcmVkZW50aWFscycpKSB7XHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzID0gb3B0aW9ucy5pc1dpdGhDcmVkZW50aWFsc1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKF9oZWFkZXJzKTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtc1trZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwge2hlYWRlcnM6IF9oZWFkZXJzLCBwYXJhbXM6IHBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHN9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlcnJvcilcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3RQcm9tQWxsKHVybHM6IHsgdXJsOiBzdHJpbmcsIHBhcmFtcz86IHt9LCB9W10sIG9wdGlvbnM/OiBIdHRwT3B0aW9ucywgaGVhZGVycz86IEh0dHBIZWFkZXJzLCBub1RpcCA9IGZhbHNlKSB7XHJcbiAgICBsZXQgcGFyYW06IGFueVtdID0gW107XHJcbiAgICB1cmxzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIHBhcmFtLnB1c2godGhpcy5wb3N0UHJvbShpdGVtLnVybCwgaXRlbS5wYXJhbXMsIG9wdGlvbnMsIGhlYWRlcnMsIG5vVGlwID0gZmFsc2UpKTtcclxuICAgIH0pXHJcblxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLmFsbChwYXJhbSlcclxuICB9XHJcblxyXG4gIHBvc3RQcm9tKHVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnksIG9wdGlvbnM/OiBIdHRwT3B0aW9ucywgaGVhZGVycz86IEh0dHBIZWFkZXJzLCBub1RpcCA9IGZhbHNlKSB7XHJcblxyXG4gICAgLy8gLy9jb25zb2xlLmxvZyhcImFhYVwiKTtcclxuICAgIGxldCBfaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNDb21tb25IdHRwSGVhZGVyJykpIHtcclxuICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgfVxyXG4gICAgX2hlYWRlcnMgPSB0aGlzLmdldE5vcm1hbEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICBfaGVhZGVycyA9IGhlYWRlcnM7XHJcbiAgICB9XHJcbiAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIm5vVGlwXCIsIG5vVGlwID8gXCIxXCIgOiBcIjBcIik7XHJcbiAgICBsZXQgd2l0aENyZWRlbnRpYWxzOiBhbnkgPSB0cnVlXHJcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdpc1dpdGhDcmVkZW50aWFscycpKSB7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMuaXNXaXRoQ3JlZGVudGlhbHNcclxuICAgIH1cclxuICAgIGxldCBwb3N0UGFyYW1zOiBhbnkgPSB7fTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XHJcbiAgICAgIGlmIChwYXJhbXNba2V5XSAhPT0gbnVsbCAmJiBwYXJhbXNba2V5XSAhPT0gJycgJiYgcGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBwb3N0UGFyYW1zW2tleV0gPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcG9zdFBhcmFtc1trZXldID0gcGFyYW1zW2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwsIG51bGwsIHtcclxuICAgICAgaGVhZGVyczogX2hlYWRlcnMsXHJcbiAgICAgIHBhcmFtczogcG9zdFBhcmFtcyxcclxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHNcclxuICAgIH0pXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuXHJcbiAgfVxyXG5cclxuICBwb3N0Qm9keSA9ICh1cmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIGhlYWRlcnM/OiB7fSwgbm9UaXAgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWFhXCIpO1xyXG4gICAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNDb21tb25IdHRwSGVhZGVyJykpIHtcclxuICAgICAgICBfaGVhZGVycyA9IHRoaXMuZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldE5vcm1hbEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwibm9UaXBcIiwgbm9UaXAgPyBcIjFcIiA6IFwiMFwiKTtcclxuICAgICAgbGV0IHdpdGhDcmVkZW50aWFsczogYW55ID0gdHJ1ZVxyXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdpc1dpdGhDcmVkZW50aWFscycpKSB7XHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzID0gb3B0aW9ucy5pc1dpdGhDcmVkZW50aWFsc1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKF9oZWFkZXJzKTtcclxuICAgICAgLypmb3IoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcclxuICAgICAgICBpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcGFyYW1zW2tleV0gPSBKU09OLnN0cmluZ2lmeShwYXJhbXNba2V5XSlcclxuICAgICAgICB9XHJcbiAgICAgIH0qL1xyXG5cclxuICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBwYXJhbXMsIHtoZWFkZXJzOiBfaGVhZGVycywgcGFyYW1zOiB7fSwgd2l0aENyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHN9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlcnJvcilcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xyXG4gICAgcmV0dXJuIGF0cl9zdGF0aWNfZGF0YXMuZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVycylcclxuICB9XHJcblxyXG4gIGdldCA9ICh1cmw6IHN0cmluZywgcGFyYW1zPzoge30sIG9wdGlvbnM/OiBIdHRwT3B0aW9ucywgbm9UaXAgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcblxyXG4gICAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNDb21tb25IdHRwSGVhZGVyJykpIHtcclxuICAgICAgICBfaGVhZGVycyA9IHRoaXMuZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldE5vcm1hbEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwibm9UaXBcIiwgbm9UaXAgPyBcIjFcIiA6IFwiMFwiKTtcclxuICAgICAgbGV0IHdpdGhDcmVkZW50aWFsczogYW55ID0gZmFsc2VcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNXaXRoQ3JlZGVudGlhbHMnKSkge1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMuaXNXaXRoQ3JlZGVudGlhbHNcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhvcHRpb25zKVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhfaGVhZGVycylcclxuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIHtcclxuICAgICAgICBoZWFkZXJzOiBfaGVhZGVycyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFsc1xyXG4gICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwbG9hZCA9IChtZXRob2Q6IGFueSwgdXJsOiBhbnksIGZvcm1EYXRhOiBGb3JtRGF0YSwgcHJvZ3Jlc3M6IGFueSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICBsZXQgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KG1ldGhvZCwgdXJsLCBmb3JtRGF0YSwge3JlcG9ydFByb2dyZXNzOiB0cnVlfSlcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgICAgdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QocmVxKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBwcm9ncmVzcyA9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGV2ZW50Wydwcm9ncmVzcyddID0gcGFyc2VJbnQoZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwgKiAxMDAgKyAnJylcclxuICAgICAgICAgICAgcHJvZ3Jlc3MoZXZlbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KGV2ZW50LmJvZHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1TdHJpbmcgPSAob2JqSXRlbTogYW55KSA9PiB7XHJcbiAgICB2YXIgbGlzdDogYW55ID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmpJdGVtKSB7XHJcbiAgICAgIHZhciBzdHIgPSAnJztcclxuICAgICAgbGV0IGl0ZW0gPSBvYmpJdGVtW2tleV1cclxuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgIC8v5pWw57uEXHJcbiAgICAgICAgdmFyIGFycjogYW55ID0gW107XHJcbiAgICAgICAgaXRlbS5mb3JFYWNoKCh2LCBrKSA9PiB7XHJcbiAgICAgICAgICB2YXIgcyA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpICsgJ1snICsgayArICddJztcclxuICAgICAgICAgIGFyci5wdXNoKHRoaXMucGFyc2VPYmoodiwgcykpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgc3RyID0gYXJyLmpvaW4oJyYnKTtcclxuICAgICAgfSBlbHNlIGlmIChpdGVtIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgICAgLy9qc29uXHJcbiAgICAgICAgdmFyIGFycjogYW55ID0gW107XHJcbiAgICAgICAgZm9yIChjb25zdCBrIGluIGl0ZW0pIHtcclxuICAgICAgICAgIGxldCB2ID0gaXRlbVtrXVxyXG4gICAgICAgICAgdmFyIHMgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICcuJyArIGVuY29kZVVSSUNvbXBvbmVudChrKTtcclxuICAgICAgICAgIGFyci5wdXNoKHRoaXMucGFyc2VPYmoodiwgcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdHIgPSBhcnIuam9pbignJicpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8v5pmu6YCa57G75Z6LXHJcbiAgICAgICAgc3RyID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5wdXNoKHN0cik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbGlzdC5qb2luKCcmJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlT2JqID0gKG9iajogYW55LCBzdHI6IGFueSkgPT4ge1xyXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgIC8v5pWw57uEXHJcbiAgICAgIHZhciBhcnI6IGFueSA9IFtdO1xyXG4gICAgICBvYmouZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgIHZhciBzID0gc3RyICsgJ1snICsgayArICddJyArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2KTtcclxuICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgfSlcclxuICAgICAgc3RyID0gYXJyLmpvaW4oJyYnKTtcclxuICAgIH0gZWxzZSBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XHJcbiAgICAgIC8vanNvblxyXG4gICAgICB2YXIgYXJyOiBhbnkgPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBrIGluIG9iaikge1xyXG4gICAgICAgIGxldCB2ID0gb2JqW2tdXHJcbiAgICAgICAgdmFyIHMgPSBzdHIgKyAnLicgKyBlbmNvZGVVUklDb21wb25lbnQoayk7XHJcbiAgICAgICAgYXJyLnB1c2godGhpcy5wYXJzZU9iaih2LCBzKSk7XHJcbiAgICAgIH1cclxuICAgICAgc3RyID0gYXJyLmpvaW4oJyYnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8v5pmu6YCa57G75Z6LXHJcbiAgICAgIHN0ciA9IHN0ciArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChvYmopO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIGdldE9zcyA9ICh1cmw6IHN0cmluZywgcGFyYW1zPzoge30sIHJlc3BvbnNlVHlwZT86IGFueSwgbm9FcnJvciA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICBpZiAodXJsID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidXJsXCIsIHVybClcclxuICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0aChcImh0dHBcIikpIHtcclxuICAgICAgICB1cmwgPSBhdHJfc3RhdGljX2RhdGFzLk9TU19VUkwgKyB1cmw7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGxldCB3aXRoQ3JlZGVudGlhbHMgPSBmYWxzZVxyXG4gICAgICAvLyAvL2NvbnNvbGUubG9nKF9oZWFkZXJzKVxyXG4gICAgICBpZiAodXJsLmVuZHNXaXRoKFwiLm9cIikgJiYgIXBhcmFtcykge1xyXG4gICAgICAgIHVybCArPSBcIj92PVwiICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5vRXJyb3IpIHtcclxuICAgICAgICBpZiAodXJsLmluZGV4T2YoJz8nKSA+IDApIHtcclxuICAgICAgICAgIHVybCArPSBcIiZub0Vycm9yXCJcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdXJsICs9IFwiP25vRXJyb3JcIlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCwge1xyXG4gICAgICAgIGhlYWRlcnM6IF9oZWFkZXJzLFxyXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogcmVzcG9uc2VUeXBlIHx8ICd0ZXh0J1xyXG4gICAgICB9KS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRvd25sb2FkWGxzKHVybDogc3RyaW5nLCBwYXJhbXM/OiB7fSkge1xyXG4gICAgdGhpcy5wb3N0KFwidGhpcmQvYXV0aC9nZXRBdXRoVG9rZW5cIiwge30sIFRvb2xzVXRpbC5nZXRIdHRwT3B0aW9ucygpKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlc3VsdCA9PiB7XHJcbiAgICAgICAgbGV0IHRocmlkUGFybWEgPSB7XHJcbiAgICAgICAgICBcInJlcU1ldGhvZFwiOiBcImF1dGhcIixcclxuICAgICAgICAgIFwic2lnblwiOiByZXN1bHQuZGF0YSxcclxuICAgICAgICAgIFwieC1oZWFkZXItYXRyXCI6IFwid2ViXCIsXHJcbiAgICAgICAgICB0b2tlbjogTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VyVG9rZW4oKSxcclxuICAgICAgICAgIHVzZXJJZDogTG9jYWxTdG9yYWdlVXRpbC5nZXRVc2VySWQoKVxyXG4gICAgICAgIH1cclxuICAgICAgICBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHBhcmFtcywgdGhyaWRQYXJtYSk7XHJcbiAgICAgICAgVG9vbHNVdGlsLmRvd25sb2FkWGxzKGF0cl9zdGF0aWNfZGF0YXMuU0VSVkVSX1VSTCArIHVybCwgcGFyYW1zKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICB9KVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvY29yZS9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsV0FBVyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBSTdDLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQ1UsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVdoQzs7OztXQUlHO1FBQ0gsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLE1BQVksRUFBRSxPQUFxQixFQUFFLE9BQXFCLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBbUIsRUFBRTtZQUVqSCxPQUFPLElBQUksVUFBVSxDQUFNLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQyxzQkFBc0I7Z0JBQ3RCLElBQUksUUFBUSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsRUFBRTtvQkFDM0QsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDNUM7Z0JBQ0QsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFDLElBQUksT0FBTyxFQUFFO29CQUNY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YUFDRjtTQUVGO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGVBQWUsRUFBRSxlQUFlO1NBQ2pDLENBQUM7YUFDQyxTQUFTLEVBQUUsQ0FBQztJQUVqQixDQUFDO0lBbUNELGdCQUFnQixDQUFDLFFBQXFCO1FBQ3BDLE9BQU8sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEQsQ0FBQztJQXFKRCxXQUFXLENBQUMsR0FBVyxFQUFFLE1BQVc7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUM1RSxNQUFNLENBQUMsRUFBRTtZQUNQLElBQUksVUFBVSxHQUFHO2dCQUNmLFdBQVcsRUFBRSxNQUFNO2dCQUNuQixNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ25CLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsWUFBWSxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFO2FBQ3JDLENBQUE7WUFDRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0MsU0FBUyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLENBQUMsRUFDRCxLQUFLLENBQUMsRUFBRTtRQUNSLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs7eUdBalVVLFdBQVc7NkdBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50VHlwZSwgSHR0cEhlYWRlcnN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge2F0cl9zdGF0aWNfZGF0YXMsIEh0dHBPcHRpb25zfSBmcm9tICcuLi9iYXNlL2F0ci1jb21tb24nO1xyXG5pbXBvcnQge0xvY2FsU3RvcmFnZVV0aWx9IGZyb20gJy4uL3V0aWxzL2xvY2Fsc3RvcmFnZS51dGlsJztcclxuaW1wb3J0IHtNZDV9IGZyb20gXCJ0cy1tZDVcIjtcclxuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIm5nLXpvcnJvLWFudGQvY29yZS9lbnZpcm9ubWVudHNcIjtcclxuaW1wb3J0IHtUb29sc1V0aWx9IGZyb20gXCIuLi91dGlscy9Ub29sc1V0aWxcIjtcclxuaW1wb3J0IHtVcGxvYWRPc3NTZXJ2aWNlfSBmcm9tICcuL3VwbG9hZC1vc3Muc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBnZXROb3JtYWxIZWFkZXIoX2hlYWRlcnM6IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnMge1xyXG4gICAgaWYgKCFhdHJfc3RhdGljX2RhdGFzLm5lZWROb3JtYWxIZWFkZSkge1xyXG4gICAgICByZXR1cm4gX2hlYWRlcnM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXRyX3N0YXRpY19kYXRhcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB1cmxcclxuICAgKiBAcGFyYW0gcGFyYW1zXHJcbiAgICovXHJcbiAgcG9zdCA9ICh1cmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgbm9UaXAgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFwiYWFhXCIpO1xyXG4gICAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNDb21tb25IdHRwSGVhZGVyJykpIHtcclxuICAgICAgICBfaGVhZGVycyA9IHRoaXMuZ2V0RGVmYXVsdEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldE5vcm1hbEhlYWRlcihfaGVhZGVycyk7XHJcbiAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gX2hlYWRlcnMuc2V0KFwibm9UaXBcIiwgbm9UaXAgPyBcIjFcIiA6IFwiMFwiKTtcclxuICAgICAgbGV0IHdpdGhDcmVkZW50aWFsczogYW55ID0gdHJ1ZVxyXG4gICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KCdpc1dpdGhDcmVkZW50aWFscycpKSB7XHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzID0gb3B0aW9ucy5pc1dpdGhDcmVkZW50aWFsc1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKF9oZWFkZXJzKTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICAgIGlmIChwYXJhbXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2YgcGFyYW1zW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBwYXJhbXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtc1trZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgbnVsbCwge2hlYWRlcnM6IF9oZWFkZXJzLCBwYXJhbXM6IHBhcmFtcywgd2l0aENyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHN9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5lcnJvcihlcnJvcilcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBvc3RQcm9tQWxsKHVybHM6IHsgdXJsOiBzdHJpbmcsIHBhcmFtcz86IHt9LCB9W10sIG9wdGlvbnM/OiBIdHRwT3B0aW9ucywgaGVhZGVycz86IEh0dHBIZWFkZXJzLCBub1RpcCA9IGZhbHNlKSB7XHJcbiAgICBsZXQgcGFyYW06IGFueVtdID0gW107XHJcbiAgICB1cmxzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIHBhcmFtLnB1c2godGhpcy5wb3N0UHJvbShpdGVtLnVybCwgaXRlbS5wYXJhbXMsIG9wdGlvbnMsIGhlYWRlcnMsIG5vVGlwID0gZmFsc2UpKTtcclxuICAgIH0pXHJcblxyXG5cclxuICAgIHJldHVybiBQcm9taXNlLmFsbChwYXJhbSlcclxuICB9XHJcblxyXG5cclxuICBnZXRPc3NQcmUoKSB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgaWYgKCFhdHJfc3RhdGljX2RhdGFzLk9TU19HRVRIT1NUKSB7XHJcbiAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucG9zdChhdHJfc3RhdGljX2RhdGFzLk9TU19HRVRIT1NULCB7fSwgVG9vbHNVdGlsLmdldEh0dHBPcHRpb25zKCkpLnN1YnNjcmliZShcclxuICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgYXRyX3N0YXRpY19kYXRhcy5PU1NfVVJMID0gcmVzLmRhdGFcclxuICAgICAgICAgIFRvb2xzVXRpbC5vc3NQcmVmaXggPSByZXMuZGF0YVxyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KCk7XHJcbiAgICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwb3N0UHJvbSh1cmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIGhlYWRlcnM/OiBIdHRwSGVhZGVycywgbm9UaXAgPSBmYWxzZSkge1xyXG5cclxuICAgIC8vIC8vY29uc29sZS5sb2coXCJhYWFcIik7XHJcbiAgICBsZXQgX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXREZWZhdWx0SGVhZGVyKF9oZWFkZXJzKTtcclxuICAgIH1cclxuICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgX2hlYWRlcnMgPSBoZWFkZXJzO1xyXG4gICAgfVxyXG4gICAgX2hlYWRlcnMgPSBfaGVhZGVycy5zZXQoXCJub1RpcFwiLCBub1RpcCA/IFwiMVwiIDogXCIwXCIpO1xyXG4gICAgbGV0IHdpdGhDcmVkZW50aWFsczogYW55ID0gdHJ1ZVxyXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNXaXRoQ3JlZGVudGlhbHMnKSkge1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHMgPSBvcHRpb25zLmlzV2l0aENyZWRlbnRpYWxzXHJcbiAgICB9XHJcbiAgICBsZXQgcG9zdFBhcmFtczogYW55ID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocGFyYW1zKSkge1xyXG4gICAgICBpZiAocGFyYW1zW2tleV0gIT09IG51bGwgJiYgcGFyYW1zW2tleV0gIT09ICcnICYmIHBhcmFtc1trZXldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgdHlwZW9mIHBhcmFtc1trZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgcG9zdFBhcmFtc1trZXldID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zW2tleV0pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHBvc3RQYXJhbXNba2V5XSA9IHBhcmFtc1trZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXJsLCBudWxsLCB7XHJcbiAgICAgIGhlYWRlcnM6IF9oZWFkZXJzLFxyXG4gICAgICBwYXJhbXM6IHBvc3RQYXJhbXMsXHJcbiAgICAgIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzXHJcbiAgICB9KVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgcG9zdEJvZHkgPSAodXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgb3B0aW9ucz86IEh0dHBPcHRpb25zLCBoZWFkZXJzPzoge30sIG5vVGlwID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImFhYVwiKTtcclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIm5vVGlwXCIsIG5vVGlwID8gXCIxXCIgOiBcIjBcIik7XHJcbiAgICAgIGxldCB3aXRoQ3JlZGVudGlhbHM6IGFueSA9IHRydWVcclxuICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnaXNXaXRoQ3JlZGVudGlhbHMnKSkge1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9IG9wdGlvbnMuaXNXaXRoQ3JlZGVudGlhbHNcclxuICAgICAgfVxyXG4gICAgICAvLyBjb25zb2xlLmxvZyhfaGVhZGVycyk7XHJcbiAgICAgIC8qZm9yKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XHJcbiAgICAgICAgaWYocGFyYW1zLmhhc093blByb3BlcnR5KGtleSkgJiYgdHlwZW9mIHBhcmFtc1trZXldICA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHBhcmFtc1trZXldID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zW2tleV0pXHJcbiAgICAgICAgfVxyXG4gICAgICB9Ki9cclxuXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0KHVybCwgcGFyYW1zLCB7aGVhZGVyczogX2hlYWRlcnMsIHBhcmFtczoge30sIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzfSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQocmVzdWx0KTtcclxuICAgICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgIG9ic2VydmUuZXJyb3IoZXJyb3IpXHJcbiAgICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICB9KVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0SGVhZGVyKF9oZWFkZXJzOiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzIHtcclxuICAgIHJldHVybiBhdHJfc3RhdGljX2RhdGFzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpXHJcbiAgfVxyXG5cclxuICBnZXQgPSAodXJsOiBzdHJpbmcsIHBhcmFtcz86IHt9LCBvcHRpb25zPzogSHR0cE9wdGlvbnMsIG5vVGlwID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG5cclxuICAgICAgbGV0IF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzQ29tbW9uSHR0cEhlYWRlcicpKSB7XHJcbiAgICAgICAgX2hlYWRlcnMgPSB0aGlzLmdldERlZmF1bHRIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICAgIF9oZWFkZXJzID0gdGhpcy5nZXROb3JtYWxIZWFkZXIoX2hlYWRlcnMpO1xyXG4gICAgICBfaGVhZGVycyA9IF9oZWFkZXJzLnNldChcIm5vVGlwXCIsIG5vVGlwID8gXCIxXCIgOiBcIjBcIik7XHJcbiAgICAgIGxldCB3aXRoQ3JlZGVudGlhbHM6IGFueSA9IGZhbHNlXHJcbiAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2lzV2l0aENyZWRlbnRpYWxzJykpIHtcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHMgPSBvcHRpb25zLmlzV2l0aENyZWRlbnRpYWxzXHJcbiAgICAgIH1cclxuICAgICAgLy8gY29uc29sZS5sb2cob3B0aW9ucylcclxuICAgICAgLy8gY29uc29sZS5sb2coX2hlYWRlcnMpXHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQodXJsLCB7XHJcbiAgICAgICAgaGVhZGVyczogX2hlYWRlcnMsXHJcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB3aXRoQ3JlZGVudGlhbHNcclxuICAgICAgfSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZS5uZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICB9KVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGxvYWQgPSAobWV0aG9kOiBhbnksIHVybDogYW55LCBmb3JtRGF0YTogRm9ybURhdGEsIHByb2dyZXNzOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgbGV0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdChtZXRob2QsIHVybCwgZm9ybURhdGEsIHtyZXBvcnRQcm9ncmVzczogdHJ1ZX0pXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgcHJvZ3Jlc3MgPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBldmVudFsncHJvZ3Jlc3MnXSA9IHBhcnNlSW50KGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwICsgJycpXHJcbiAgICAgICAgICAgIHByb2dyZXNzKGV2ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChldmVudC5ib2R5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtU3RyaW5nID0gKG9iakl0ZW06IGFueSkgPT4ge1xyXG4gICAgdmFyIGxpc3Q6IGFueSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqSXRlbSkge1xyXG4gICAgICB2YXIgc3RyID0gJyc7XHJcbiAgICAgIGxldCBpdGVtID0gb2JqSXRlbVtrZXldXHJcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAvL+aVsOe7hFxyXG4gICAgICAgIHZhciBhcnI6IGFueSA9IFtdO1xyXG4gICAgICAgIGl0ZW0uZm9yRWFjaCgodiwgaykgPT4ge1xyXG4gICAgICAgICAgdmFyIHMgPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICdbJyArIGsgKyAnXSc7XHJcbiAgICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHN0ciA9IGFyci5qb2luKCcmJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAgIC8vanNvblxyXG4gICAgICAgIHZhciBhcnI6IGFueSA9IFtdO1xyXG4gICAgICAgIGZvciAoY29uc3QgayBpbiBpdGVtKSB7XHJcbiAgICAgICAgICBsZXQgdiA9IGl0ZW1ba11cclxuICAgICAgICAgIHZhciBzID0gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnLicgKyBlbmNvZGVVUklDb21wb25lbnQoayk7XHJcbiAgICAgICAgICBhcnIucHVzaCh0aGlzLnBhcnNlT2JqKHYsIHMpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RyID0gYXJyLmpvaW4oJyYnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvL+aZrumAmuexu+Wei1xyXG4gICAgICAgIHN0ciA9IGVuY29kZVVSSUNvbXBvbmVudChrZXkpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxpc3QucHVzaChzdHIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpc3Quam9pbignJicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZU9iaiA9IChvYmo6IGFueSwgc3RyOiBhbnkpID0+IHtcclxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAvL+aVsOe7hFxyXG4gICAgICB2YXIgYXJyOiBhbnkgPSBbXTtcclxuICAgICAgb2JqLmZvckVhY2goKHYsIGspID0+IHtcclxuICAgICAgICB2YXIgcyA9IHN0ciArICdbJyArIGsgKyAnXScgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodik7XHJcbiAgICAgICAgYXJyLnB1c2godGhpcy5wYXJzZU9iaih2LCBzKSk7XHJcbiAgICAgIH0pXHJcbiAgICAgIHN0ciA9IGFyci5qb2luKCcmJyk7XHJcbiAgICB9IGVsc2UgaWYgKG9iaiBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICAvL2pzb25cclxuICAgICAgdmFyIGFycjogYW55ID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgayBpbiBvYmopIHtcclxuICAgICAgICBsZXQgdiA9IG9ialtrXVxyXG4gICAgICAgIHZhciBzID0gc3RyICsgJy4nICsgZW5jb2RlVVJJQ29tcG9uZW50KGspO1xyXG4gICAgICAgIGFyci5wdXNoKHRoaXMucGFyc2VPYmoodiwgcykpO1xyXG4gICAgICB9XHJcbiAgICAgIHN0ciA9IGFyci5qb2luKCcmJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvL+aZrumAmuexu+Wei1xyXG4gICAgICBzdHIgPSBzdHIgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQob2JqKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG5cclxuICBnZXRPc3MgPSAodXJsOiBzdHJpbmcsIHBhcmFtcz86IHt9LCByZXNwb25zZVR5cGU/OiBhbnksIG5vRXJyb3IgPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8YW55PihvYnNlcnZlID0+IHtcclxuICAgICAgaWYgKHVybCA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBvYnNlcnZlLm5leHQoKTtcclxuICAgICAgICBvYnNlcnZlLnVuc3Vic2NyaWJlKClcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcInVybFwiLCB1cmwpXHJcbiAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XHJcbiAgICAgICAgdXJsID0gYXRyX3N0YXRpY19kYXRhcy5PU1NfVVJMICsgdXJsO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICBsZXQgd2l0aENyZWRlbnRpYWxzID0gZmFsc2VcclxuICAgICAgLy8gLy9jb25zb2xlLmxvZyhfaGVhZGVycylcclxuICAgICAgaWYgKHVybC5lbmRzV2l0aChcIi5vXCIpICYmICFwYXJhbXMpIHtcclxuICAgICAgICB1cmwgKz0gXCI/dj1cIiArIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChub0Vycm9yKSB7XHJcbiAgICAgICAgaWYgKHVybC5pbmRleE9mKCc/JykgPiAwKSB7XHJcbiAgICAgICAgICB1cmwgKz0gXCImbm9FcnJvclwiXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHVybCArPSBcIj9ub0Vycm9yXCJcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldCh1cmwsIHtcclxuICAgICAgICBoZWFkZXJzOiBfaGVhZGVycyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFscyxcclxuICAgICAgICByZXNwb25zZVR5cGU6IHJlc3BvbnNlVHlwZSB8fCAndGV4dCdcclxuICAgICAgfSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZS5uZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgb2JzZXJ2ZS51bnN1YnNjcmliZSgpXHJcbiAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICBvYnNlcnZlLmVycm9yKGVycm9yKVxyXG4gICAgICAgIG9ic2VydmUudW5zdWJzY3JpYmUoKVxyXG4gICAgICB9KVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFhscyh1cmw6IHN0cmluZywgcGFyYW1zPzoge30pIHtcclxuICAgIHRoaXMucG9zdChcInRoaXJkL2F1dGgvZ2V0QXV0aFRva2VuXCIsIHt9LCBUb29sc1V0aWwuZ2V0SHR0cE9wdGlvbnMoKSkuc3Vic2NyaWJlKFxyXG4gICAgICByZXN1bHQgPT4ge1xyXG4gICAgICAgIGxldCB0aHJpZFBhcm1hID0ge1xyXG4gICAgICAgICAgXCJyZXFNZXRob2RcIjogXCJhdXRoXCIsXHJcbiAgICAgICAgICBcInNpZ25cIjogcmVzdWx0LmRhdGEsXHJcbiAgICAgICAgICBcIngtaGVhZGVyLWF0clwiOiBcIndlYlwiLFxyXG4gICAgICAgICAgdG9rZW46IExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlclRva2VuKCksXHJcbiAgICAgICAgICB1c2VySWQ6IExvY2FsU3RvcmFnZVV0aWwuZ2V0VXNlcklkKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihwYXJhbXMsIHRocmlkUGFybWEpO1xyXG4gICAgICAgIFRvb2xzVXRpbC5kb3dubG9hZFhscyhhdHJfc3RhdGljX2RhdGFzLlNFUlZFUl9VUkwgKyB1cmwsIHBhcmFtcyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yID0+IHtcclxuICAgICAgfSlcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|