cdk8s 2.2.9 → 2.2.13
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/.jsii +4 -4
- package/changelog.md +1 -1
- package/lib/api-object.d.ts +13 -48
- package/lib/api-object.js +12 -20
- package/lib/app.d.ts +12 -56
- package/lib/app.js +10 -19
- package/lib/chart.d.ts +3 -26
- package/lib/chart.js +3 -18
- package/lib/dependency.d.ts +3 -25
- package/lib/dependency.js +6 -28
- package/lib/duration.d.ts +16 -33
- package/lib/duration.js +16 -31
- package/lib/helm.d.ts +3 -18
- package/lib/helm.js +2 -7
- package/lib/include.d.ts +3 -15
- package/lib/include.js +4 -10
- package/lib/json-patch.d.ts +16 -45
- package/lib/json-patch.js +18 -47
- package/lib/lazy.d.ts +0 -15
- package/lib/lazy.js +2 -11
- package/lib/metadata.d.ts +21 -63
- package/lib/metadata.js +7 -21
- package/lib/names.d.ts +16 -26
- package/lib/names.js +18 -18
- package/lib/size.d.ts +4 -51
- package/lib/size.js +5 -31
- package/lib/testing.d.ts +2 -8
- package/lib/testing.js +4 -10
- package/lib/yaml.d.ts +9 -15
- package/lib/yaml.js +11 -17
- package/node_modules/follow-redirects/index.js +7 -3
- package/node_modules/follow-redirects/package.json +1 -1
- package/package.json +6 -6
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"bundled": {
|
|
10
10
|
"fast-json-patch": "^2.2.1",
|
|
11
|
-
"follow-redirects": "^1.14.
|
|
11
|
+
"follow-redirects": "^1.14.8",
|
|
12
12
|
"yaml": "2.0.0-7"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"stability": "stable"
|
|
47
47
|
},
|
|
48
48
|
"homepage": "https://github.com/cdk8s-team/cdk8s-core.git",
|
|
49
|
-
"jsiiVersion": "1.
|
|
49
|
+
"jsiiVersion": "1.53.0 (build c071d26)",
|
|
50
50
|
"keywords": [
|
|
51
51
|
"cdk",
|
|
52
52
|
"configuration",
|
|
@@ -3541,6 +3541,6 @@
|
|
|
3541
3541
|
"symbolId": "src/app:YamlOutputType"
|
|
3542
3542
|
}
|
|
3543
3543
|
},
|
|
3544
|
-
"version": "2.2.
|
|
3545
|
-
"fingerprint": "
|
|
3544
|
+
"version": "2.2.13",
|
|
3545
|
+
"fingerprint": "g61Bt0aTUpNMmh47nhnLqZwghvggxZO1Z1lx7ZhaPe0="
|
|
3546
3546
|
}
|
package/changelog.md
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
### [2.2.
|
|
2
|
+
### [2.2.13](https://github.com/cdk8s-team/cdk8s-core/compare/v2.2.12...v2.2.13) (2022-02-11)
|
package/lib/api-object.d.ts
CHANGED
|
@@ -4,8 +4,6 @@ import { JsonPatch } from './json-patch';
|
|
|
4
4
|
import { ApiObjectMetadata, ApiObjectMetadataDefinition } from './metadata';
|
|
5
5
|
/**
|
|
6
6
|
* Options for defining API objects.
|
|
7
|
-
*
|
|
8
|
-
* @stability stable
|
|
9
7
|
*/
|
|
10
8
|
export interface ApiObjectProps {
|
|
11
9
|
/**
|
|
@@ -13,20 +11,14 @@ export interface ApiObjectProps {
|
|
|
13
11
|
*
|
|
14
12
|
* If `name` is not specified, an app-unique name will be allocated by the
|
|
15
13
|
* framework based on the path of the construct within thes construct tree.
|
|
16
|
-
*
|
|
17
|
-
* @stability stable
|
|
18
14
|
*/
|
|
19
15
|
readonly metadata?: ApiObjectMetadata;
|
|
20
16
|
/**
|
|
21
17
|
* API version.
|
|
22
|
-
*
|
|
23
|
-
* @stability stable
|
|
24
18
|
*/
|
|
25
19
|
readonly apiVersion: string;
|
|
26
20
|
/**
|
|
27
21
|
* Resource kind.
|
|
28
|
-
*
|
|
29
|
-
* @stability stable
|
|
30
22
|
*/
|
|
31
23
|
readonly kind: string;
|
|
32
24
|
/**
|
|
@@ -34,37 +26,25 @@ export interface ApiObjectProps {
|
|
|
34
26
|
*/
|
|
35
27
|
readonly [key: string]: any;
|
|
36
28
|
}
|
|
37
|
-
/**
|
|
38
|
-
* @stability stable
|
|
39
|
-
*/
|
|
40
29
|
export interface GroupVersionKind {
|
|
41
30
|
/**
|
|
42
|
-
* The object's API version (e.g. `authorization.k8s.io/v1`)
|
|
43
|
-
*
|
|
44
|
-
* @stability stable
|
|
31
|
+
* The object's API version (e.g. `authorization.k8s.io/v1`)
|
|
45
32
|
*/
|
|
46
33
|
readonly apiVersion: string;
|
|
47
34
|
/**
|
|
48
35
|
* The object kind.
|
|
49
|
-
*
|
|
50
|
-
* @stability stable
|
|
51
36
|
*/
|
|
52
37
|
readonly kind: string;
|
|
53
38
|
}
|
|
54
|
-
/**
|
|
55
|
-
* @stability stable
|
|
56
|
-
*/
|
|
57
39
|
export declare class ApiObject extends Construct {
|
|
58
40
|
private readonly props;
|
|
59
41
|
/**
|
|
60
|
-
* Returns the `ApiObject` named `Resource` which is a child of the given
|
|
61
|
-
*
|
|
62
|
-
* If `c` is an `ApiObject`, it is returned directly. Throws an
|
|
42
|
+
* Returns the `ApiObject` named `Resource` which is a child of the given
|
|
43
|
+
* construct. If `c` is an `ApiObject`, it is returned directly. Throws an
|
|
63
44
|
* exception if the construct does not have a child named `Default` _or_ if
|
|
64
45
|
* this child is not an `ApiObject`.
|
|
65
46
|
*
|
|
66
|
-
* @param c The higher-level construct
|
|
67
|
-
* @stability stable
|
|
47
|
+
* @param c The higher-level construct
|
|
68
48
|
*/
|
|
69
49
|
static of(c: IConstruct): ApiObject;
|
|
70
50
|
/**
|
|
@@ -74,38 +54,26 @@ export declare class ApiObject extends Construct {
|
|
|
74
54
|
* Otherwise, a name will be generated by calling
|
|
75
55
|
* `Chart.of(this).generatedObjectName(this)`, which by default uses the
|
|
76
56
|
* construct path to generate a DNS-compatible name for the resource.
|
|
77
|
-
*
|
|
78
|
-
* @stability stable
|
|
79
57
|
*/
|
|
80
58
|
readonly name: string;
|
|
81
59
|
/**
|
|
82
|
-
* The object's API version (e.g. `authorization.k8s.io/v1`)
|
|
83
|
-
*
|
|
84
|
-
* @stability stable
|
|
60
|
+
* The object's API version (e.g. `authorization.k8s.io/v1`)
|
|
85
61
|
*/
|
|
86
62
|
readonly apiVersion: string;
|
|
87
63
|
/**
|
|
88
|
-
* The group portion of the API version (e.g. `authorization.k8s.io`)
|
|
89
|
-
*
|
|
90
|
-
* @stability stable
|
|
64
|
+
* The group portion of the API version (e.g. `authorization.k8s.io`)
|
|
91
65
|
*/
|
|
92
66
|
readonly apiGroup: string;
|
|
93
67
|
/**
|
|
94
68
|
* The object kind.
|
|
95
|
-
*
|
|
96
|
-
* @stability stable
|
|
97
69
|
*/
|
|
98
70
|
readonly kind: string;
|
|
99
71
|
/**
|
|
100
72
|
* The chart in which this object is defined.
|
|
101
|
-
*
|
|
102
|
-
* @stability stable
|
|
103
73
|
*/
|
|
104
74
|
readonly chart: Chart;
|
|
105
75
|
/**
|
|
106
76
|
* Metadata associated with this API object.
|
|
107
|
-
*
|
|
108
|
-
* @stability stable
|
|
109
77
|
*/
|
|
110
78
|
readonly metadata: ApiObjectMetadataDefinition;
|
|
111
79
|
/**
|
|
@@ -115,29 +83,28 @@ export declare class ApiObject extends Construct {
|
|
|
115
83
|
/**
|
|
116
84
|
* Defines an API object.
|
|
117
85
|
*
|
|
118
|
-
* @param scope the construct scope
|
|
119
|
-
* @param id namespace
|
|
120
|
-
* @param props options
|
|
121
|
-
* @stability stable
|
|
86
|
+
* @param scope the construct scope
|
|
87
|
+
* @param id namespace
|
|
88
|
+
* @param props options
|
|
122
89
|
*/
|
|
123
90
|
constructor(scope: Construct, id: string, props: ApiObjectProps);
|
|
124
91
|
/**
|
|
125
92
|
* Create a dependency between this ApiObject and other constructs.
|
|
126
|
-
*
|
|
127
93
|
* These can be other ApiObjects, Charts, or custom.
|
|
128
94
|
*
|
|
129
95
|
* @param dependencies the dependencies to add.
|
|
130
|
-
* @stability stable
|
|
131
96
|
*/
|
|
132
97
|
addDependency(...dependencies: IConstruct[]): void;
|
|
133
98
|
/**
|
|
134
|
-
* Applies a set of RFC-6902 JSON-Patch operations to the manifest
|
|
99
|
+
* Applies a set of RFC-6902 JSON-Patch operations to the manifest
|
|
100
|
+
* synthesized for this API object.
|
|
135
101
|
*
|
|
136
102
|
* @param ops The JSON-Patch operations to apply.
|
|
137
|
-
*
|
|
103
|
+
*
|
|
138
104
|
* @example
|
|
139
105
|
*
|
|
140
106
|
* kubePod.addJsonPatch(JsonPatch.replace('/spec/enableServiceLinks', true));
|
|
107
|
+
*
|
|
141
108
|
*/
|
|
142
109
|
addJsonPatch(...ops: JsonPatch[]): void;
|
|
143
110
|
/**
|
|
@@ -145,8 +112,6 @@ export declare class ApiObject extends Construct {
|
|
|
145
112
|
*
|
|
146
113
|
* To disable sorting of dictionary keys in output object set the
|
|
147
114
|
* `CDK8S_DISABLE_SORT` environment variable to any non-empty value.
|
|
148
|
-
*
|
|
149
|
-
* @stability stable
|
|
150
115
|
*/
|
|
151
116
|
toJson(): any;
|
|
152
117
|
}
|
package/lib/api-object.js
CHANGED
|
@@ -9,17 +9,13 @@ const _util_1 = require("./_util");
|
|
|
9
9
|
const chart_1 = require("./chart");
|
|
10
10
|
const json_patch_1 = require("./json-patch");
|
|
11
11
|
const metadata_1 = require("./metadata");
|
|
12
|
-
/**
|
|
13
|
-
* @stability stable
|
|
14
|
-
*/
|
|
15
12
|
class ApiObject extends constructs_1.Construct {
|
|
16
13
|
/**
|
|
17
14
|
* Defines an API object.
|
|
18
15
|
*
|
|
19
|
-
* @param scope the construct scope
|
|
20
|
-
* @param id namespace
|
|
21
|
-
* @param props options
|
|
22
|
-
* @stability stable
|
|
16
|
+
* @param scope the construct scope
|
|
17
|
+
* @param id namespace
|
|
18
|
+
* @param props options
|
|
23
19
|
*/
|
|
24
20
|
constructor(scope, id, props) {
|
|
25
21
|
var _b, _c, _d, _e, _f;
|
|
@@ -43,14 +39,12 @@ class ApiObject extends constructs_1.Construct {
|
|
|
43
39
|
});
|
|
44
40
|
}
|
|
45
41
|
/**
|
|
46
|
-
* Returns the `ApiObject` named `Resource` which is a child of the given
|
|
47
|
-
*
|
|
48
|
-
* If `c` is an `ApiObject`, it is returned directly. Throws an
|
|
42
|
+
* Returns the `ApiObject` named `Resource` which is a child of the given
|
|
43
|
+
* construct. If `c` is an `ApiObject`, it is returned directly. Throws an
|
|
49
44
|
* exception if the construct does not have a child named `Default` _or_ if
|
|
50
45
|
* this child is not an `ApiObject`.
|
|
51
46
|
*
|
|
52
|
-
* @param c The higher-level construct
|
|
53
|
-
* @stability stable
|
|
47
|
+
* @param c The higher-level construct
|
|
54
48
|
*/
|
|
55
49
|
static of(c) {
|
|
56
50
|
if (c instanceof ApiObject) {
|
|
@@ -64,23 +58,23 @@ class ApiObject extends constructs_1.Construct {
|
|
|
64
58
|
}
|
|
65
59
|
/**
|
|
66
60
|
* Create a dependency between this ApiObject and other constructs.
|
|
67
|
-
*
|
|
68
61
|
* These can be other ApiObjects, Charts, or custom.
|
|
69
62
|
*
|
|
70
63
|
* @param dependencies the dependencies to add.
|
|
71
|
-
* @stability stable
|
|
72
64
|
*/
|
|
73
65
|
addDependency(...dependencies) {
|
|
74
66
|
constructs_1.Node.of(this).addDependency(...dependencies);
|
|
75
67
|
}
|
|
76
68
|
/**
|
|
77
|
-
* Applies a set of RFC-6902 JSON-Patch operations to the manifest
|
|
69
|
+
* Applies a set of RFC-6902 JSON-Patch operations to the manifest
|
|
70
|
+
* synthesized for this API object.
|
|
78
71
|
*
|
|
79
72
|
* @param ops The JSON-Patch operations to apply.
|
|
80
|
-
*
|
|
73
|
+
*
|
|
81
74
|
* @example
|
|
82
75
|
*
|
|
83
76
|
* kubePod.addJsonPatch(JsonPatch.replace('/spec/enableServiceLinks', true));
|
|
77
|
+
*
|
|
84
78
|
*/
|
|
85
79
|
addJsonPatch(...ops) {
|
|
86
80
|
this.patches.push(...ops);
|
|
@@ -90,8 +84,6 @@ class ApiObject extends constructs_1.Construct {
|
|
|
90
84
|
*
|
|
91
85
|
* To disable sorting of dictionary keys in output object set the
|
|
92
86
|
* `CDK8S_DISABLE_SORT` environment variable to any non-empty value.
|
|
93
|
-
*
|
|
94
|
-
* @stability stable
|
|
95
87
|
*/
|
|
96
88
|
toJson() {
|
|
97
89
|
const data = {
|
|
@@ -115,7 +107,7 @@ class ApiObject extends constructs_1.Construct {
|
|
|
115
107
|
}
|
|
116
108
|
exports.ApiObject = ApiObject;
|
|
117
109
|
_a = JSII_RTTI_SYMBOL_1;
|
|
118
|
-
ApiObject[_a] = { fqn: "cdk8s.ApiObject", version: "2.2.
|
|
110
|
+
ApiObject[_a] = { fqn: "cdk8s.ApiObject", version: "2.2.13" };
|
|
119
111
|
function parseApiGroup(apiVersion) {
|
|
120
112
|
const v = apiVersion.split('/');
|
|
121
113
|
// no group means "core"
|
|
@@ -128,4 +120,4 @@ function parseApiGroup(apiVersion) {
|
|
|
128
120
|
}
|
|
129
121
|
throw new Error(`invalid apiVersion ${apiVersion}, expecting GROUP/VERSION. See https://kubernetes.io/docs/reference/using-api/api-overview/#api-groups`);
|
|
130
122
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGktb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXlEO0FBQ3pELHlDQUFxQztBQUNyQyxtQ0FBd0M7QUFDeEMsbUNBQWdDO0FBQ2hDLDZDQUF5QztBQUN6Qyx5Q0FBNEU7Ozs7QUEyQjVFLE1BQWEsU0FBVSxTQUFRLHNCQUFTOzs7Ozs7Ozs7SUF1Q3RDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQW1CLEtBQXFCOztRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRHdDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBRTlFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLGFBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksZUFBRyxLQUFLLENBQUMsUUFBUSwwQ0FBRSxJQUFJLG1DQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHNDQUEyQixDQUFDO1lBQzlDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUVmLHNCQUFzQjtZQUN0QixHQUFHLEtBQUssQ0FBQyxRQUFRO1lBRWpCLFNBQVMsY0FBRSxLQUFLLENBQUMsUUFBUSwwQ0FBRSxTQUFTLG1DQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztZQUM1RCxNQUFNLEVBQUU7Z0JBQ04sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLFNBQUcsS0FBSyxDQUFDLFFBQVEsMENBQUUsTUFBTTthQUMxQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7Ozs7Ozs7O0lBM0RNLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBYTtRQUM1QixJQUFJLENBQUMsWUFBWSxTQUFTLEVBQUU7WUFDMUIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE1BQU0sS0FBSyxHQUFHLGlCQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsaUJBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNoSDtRQUVELE9BQU8sU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7Ozs7Ozs7SUFtRE0sYUFBYSxDQUFDLEdBQUcsWUFBMEI7UUFDaEQsaUJBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7Ozs7Ozs7OztJQUdNLFlBQVksQ0FBQyxHQUFHLEdBQWdCO1FBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7Ozs7Ozs7O0lBR00sTUFBTTtRQUNYLE1BQU0sSUFBSSxHQUFRO1lBQ2hCLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7U0FDakMsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLHFCQUFhLENBQUMsa0JBQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsc0JBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELHdFQUF3RTtRQUN4RSxtQ0FBbUM7UUFDbkMsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sV0FBVyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEYsS0FBSyxNQUFNLENBQUMsSUFBSSxXQUFXLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksT0FBTyxFQUFFO2dCQUNoQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQS9GSCw4QkFnR0M7OztBQUVELFNBQVMsYUFBYSxDQUFDLFVBQWtCO0lBQ3ZDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFaEMsd0JBQXdCO0lBQ3hCLDBFQUEwRTtJQUMxRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2xCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2I7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixVQUFVLHdHQUF3RyxDQUFDLENBQUM7QUFDNUosQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCwgSUNvbnN0cnVjdCwgTm9kZSB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gJy4vX3Jlc29sdmUnO1xuaW1wb3J0IHsgc2FuaXRpemVWYWx1ZSB9IGZyb20gJy4vX3V0aWwnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICcuL2NoYXJ0JztcbmltcG9ydCB7IEpzb25QYXRjaCB9IGZyb20gJy4vanNvbi1wYXRjaCc7XG5pbXBvcnQgeyBBcGlPYmplY3RNZXRhZGF0YSwgQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uIH0gZnJvbSAnLi9tZXRhZGF0YSc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9iamVjdFByb3BzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBBcGlPYmplY3RNZXRhZGF0YTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYXBpVmVyc2lvbjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBhdHRyaWJ1dGVzIGZvciB0aGlzIEFQSSBvYmplY3QuXG4gICAqL1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBWZXJzaW9uS2luZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlPYmplY3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgb2YoYzogSUNvbnN0cnVjdCk6IEFwaU9iamVjdCB7XG4gICAgaWYgKGMgaW5zdGFuY2VvZiBBcGlPYmplY3QpIHtcbiAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkID0gTm9kZS5vZihjKS5kZWZhdWx0Q2hpbGQ7XG4gICAgaWYgKCFjaGlsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZmluZCBhIChkaXJlY3Qgb3IgaW5kaXJlY3QpIGNoaWxkIG9mIHR5cGUgQXBpT2JqZWN0IGZvciBjb25zdHJ1Y3QgJHtOb2RlLm9mKGMpLnBhdGh9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFwaU9iamVjdC5vZihjaGlsZCk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBhcGlHcm91cDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGNoYXJ0OiBDaGFydDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWV0YWRhdGE6IEFwaU9iamVjdE1ldGFkYXRhRGVmaW5pdGlvbjtcblxuICAvKipcbiAgICogQSBzZXQgb2YgSlNPTiBwYXRjaCBvcGVyYXRpb25zIHRvIGFwcGx5IHRvIHRoZSBkb2N1bWVudCBhZnRlciBzeW50aGVzaXMuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHBhdGNoZXM6IEFycmF5PEpzb25QYXRjaD47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBwcm9wczogQXBpT2JqZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMucGF0Y2hlcyA9IG5ldyBBcnJheTxKc29uUGF0Y2g+KCk7XG4gICAgdGhpcy5jaGFydCA9IENoYXJ0Lm9mKHRoaXMpO1xuICAgIHRoaXMua2luZCA9IHByb3BzLmtpbmQ7XG4gICAgdGhpcy5hcGlWZXJzaW9uID0gcHJvcHMuYXBpVmVyc2lvbjtcbiAgICB0aGlzLmFwaUdyb3VwID0gcGFyc2VBcGlHcm91cCh0aGlzLmFwaVZlcnNpb24pO1xuXG4gICAgdGhpcy5uYW1lID0gcHJvcHMubWV0YWRhdGE/Lm5hbWUgPz8gdGhpcy5jaGFydC5nZW5lcmF0ZU9iamVjdE5hbWUodGhpcyk7XG5cbiAgICB0aGlzLm1ldGFkYXRhID0gbmV3IEFwaU9iamVjdE1ldGFkYXRhRGVmaW5pdGlvbih7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG5cbiAgICAgIC8vIHVzZXIgZGVmaW5lZCB2YWx1ZXNcbiAgICAgIC4uLnByb3BzLm1ldGFkYXRhLFxuXG4gICAgICBuYW1lc3BhY2U6IHByb3BzLm1ldGFkYXRhPy5uYW1lc3BhY2UgPz8gdGhpcy5jaGFydC5uYW1lc3BhY2UsXG4gICAgICBsYWJlbHM6IHtcbiAgICAgICAgLi4udGhpcy5jaGFydC5sYWJlbHMsXG4gICAgICAgIC4uLnByb3BzLm1ldGFkYXRhPy5sYWJlbHMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBhZGREZXBlbmRlbmN5KC4uLmRlcGVuZGVuY2llczogSUNvbnN0cnVjdFtdKSB7XG4gICAgTm9kZS5vZih0aGlzKS5hZGREZXBlbmRlbmN5KC4uLmRlcGVuZGVuY2llcyk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkSnNvblBhdGNoKC4uLm9wczogSnNvblBhdGNoW10pIHtcbiAgICB0aGlzLnBhdGNoZXMucHVzaCguLi5vcHMpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHRvSnNvbigpOiBhbnkge1xuICAgIGNvbnN0IGRhdGE6IGFueSA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YS50b0pzb24oKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc29ydEtleXMgPSBwcm9jZXNzLmVudi5DREs4U19ESVNBQkxFX1NPUlQgPyBmYWxzZSA6IHRydWU7XG4gICAgY29uc3QganNvbiA9IHNhbml0aXplVmFsdWUocmVzb2x2ZShkYXRhKSwgeyBzb3J0S2V5cyB9KTtcbiAgICBjb25zdCBwYXRjaGVkID0gSnNvblBhdGNoLmFwcGx5KGpzb24sIC4uLnRoaXMucGF0Y2hlcyk7XG5cbiAgICAvLyByZW9yZGVyIHRvcC1sZXZlbCBrZXlzIHNvIHRoYXQgd2UgZmlyc3QgaGF2ZSBcImFwaVZlcnNpb25cIiwgXCJraW5kXCIgYW5kXG4gICAgLy8gXCJtZXRhZGF0YVwiIGFuZCB0aGVuIGFsbCB0aGUgcmVzdFxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgY29uc3Qgb3JkZXJlZEtleXMgPSBbJ2FwaVZlcnNpb24nLCAna2luZCcsICdtZXRhZGF0YScsIC4uLk9iamVjdC5rZXlzKHBhdGNoZWQpXTtcbiAgICBmb3IgKGNvbnN0IGsgb2Ygb3JkZXJlZEtleXMpIHtcbiAgICAgIGlmIChrIGluIHBhdGNoZWQpIHtcbiAgICAgICAgcmVzdWx0W2tdID0gcGF0Y2hlZFtrXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQXBpR3JvdXAoYXBpVmVyc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHYgPSBhcGlWZXJzaW9uLnNwbGl0KCcvJyk7XG5cbiAgLy8gbm8gZ3JvdXAgbWVhbnMgXCJjb3JlXCJcbiAgLy8gaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvcmVmZXJlbmNlL3VzaW5nLWFwaS9hcGktb3ZlcnZpZXcvI2FwaS1ncm91cHNcbiAgaWYgKHYubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuICdjb3JlJztcbiAgfVxuXG4gIGlmICh2Lmxlbmd0aCA9PT0gMikge1xuICAgIHJldHVybiB2WzBdO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFwaVZlcnNpb24gJHthcGlWZXJzaW9ufSwgZXhwZWN0aW5nIEdST1VQL1ZFUlNJT04uIFNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9yZWZlcmVuY2UvdXNpbmctYXBpL2FwaS1vdmVydmlldy8jYXBpLWdyb3Vwc2ApO1xufVxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGktb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQXlEO0FBQ3pELHlDQUFxQztBQUNyQyxtQ0FBd0M7QUFDeEMsbUNBQWdDO0FBQ2hDLDZDQUF5QztBQUN6Qyx5Q0FBNEU7QUEwQzVFLE1BQWEsU0FBVSxTQUFRLHNCQUFTO0lBOER0Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFtQixLQUFxQjs7UUFDOUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUR3QyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUU5RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksS0FBSyxFQUFhLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLGVBQUcsS0FBSyxDQUFDLFFBQVEsMENBQUUsSUFBSSxtQ0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxzQ0FBMkIsQ0FBQztZQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFFZixzQkFBc0I7WUFDdEIsR0FBRyxLQUFLLENBQUMsUUFBUTtZQUVqQixTQUFTLGNBQUUsS0FBSyxDQUFDLFFBQVEsMENBQUUsU0FBUyxtQ0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDNUQs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ZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAnLi9fcmVzb2x2ZSc7XG5pbXBvcnQgeyBzYW5pdGl6ZVZhbHVlIH0gZnJvbSAnLi9fdXRpbCc7XG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJy4vY2hhcnQnO1xuaW1wb3J0IHsgSnNvblBhdGNoIH0gZnJvbSAnLi9qc29uLXBhdGNoJztcbmltcG9ydCB7IEFwaU9iamVjdE1ldGFkYXRhLCBBcGlPYmplY3RNZXRhZGF0YURlZmluaXRpb24gfSBmcm9tICcuL21ldGFkYXRhJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBkZWZpbmluZyBBUEkgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcGlPYmplY3RQcm9wcyB7XG4gIC8qKlxuICAgKiBPYmplY3QgbWV0YWRhdGEuXG4gICAqXG4gICAqIElmIGBuYW1lYCBpcyBub3Qgc3BlY2lmaWVkLCBhbiBhcHAtdW5pcXVlIG5hbWUgd2lsbCBiZSBhbGxvY2F0ZWQgYnkgdGhlXG4gICAqIGZyYW1ld29yayBiYXNlZCBvbiB0aGUgcGF0aCBvZiB0aGUgY29uc3RydWN0IHdpdGhpbiB0aGVzIGNvbnN0cnVjdCB0cmVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBBcGlPYmplY3RNZXRhZGF0YTtcblxuICAvKipcbiAgICogQVBJIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIGtpbmQuXG4gICAqL1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXR0cmlidXRlcyBmb3IgdGhpcyBBUEkgb2JqZWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwVmVyc2lvbktpbmQge1xuICAvKipcbiAgICogVGhlIG9iamVjdCdzIEFQSSB2ZXJzaW9uIChlLmcuIGBhdXRob3JpemF0aW9uLms4cy5pby92MWApXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qga2luZC5cbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwaU9iamVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgQXBpT2JqZWN0YCBuYW1lZCBgUmVzb3VyY2VgIHdoaWNoIGlzIGEgY2hpbGQgb2YgdGhlIGdpdmVuXG4gICAqIGNvbnN0cnVjdC4gSWYgYGNgIGlzIGFuIGBBcGlPYmplY3RgLCBpdCBpcyByZXR1cm5lZCBkaXJlY3RseS4gVGhyb3dzIGFuXG4gICAqIGV4Y2VwdGlvbiBpZiB0aGUgY29uc3RydWN0IGRvZXMgbm90IGhhdmUgYSBjaGlsZCBuYW1lZCBgRGVmYXVsdGAgX29yXyBpZlxuICAgKiB0aGlzIGNoaWxkIGlzIG5vdCBhbiBgQXBpT2JqZWN0YC5cbiAgICpcbiAgICogQHBhcmFtIGMgVGhlIGhpZ2hlci1sZXZlbCBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YoYzogSUNvbnN0cnVjdCk6IEFwaU9iamVjdCB7XG4gICAgaWYgKGMgaW5zdGFuY2VvZiBBcGlPYmplY3QpIHtcbiAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkID0gTm9kZS5vZihjKS5kZWZhdWx0Q2hpbGQ7XG4gICAgaWYgKCFjaGlsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZmluZCBhIChkaXJlY3Qgb3IgaW5kaXJlY3QpIGNoaWxkIG9mIHR5cGUgQXBpT2JqZWN0IGZvciBjb25zdHJ1Y3QgJHtOb2RlLm9mKGMpLnBhdGh9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEFwaU9iamVjdC5vZihjaGlsZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFQSSBvYmplY3QuXG4gICAqXG4gICAqIElmIGEgbmFtZSBpcyBzcGVjaWZpZWQgaW4gYG1ldGFkYXRhLm5hbWVgIHRoaXMgd2lsbCBiZSB0aGUgbmFtZSByZXR1cm5lZC5cbiAgICogT3RoZXJ3aXNlLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYnkgY2FsbGluZ1xuICAgKiBgQ2hhcnQub2YodGhpcykuZ2VuZXJhdGVkT2JqZWN0TmFtZSh0aGlzKWAsIHdoaWNoIGJ5IGRlZmF1bHQgdXNlcyB0aGVcbiAgICogY29uc3RydWN0IHBhdGggdG8gZ2VuZXJhdGUgYSBETlMtY29tcGF0aWJsZSBuYW1lIGZvciB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0J3MgQVBJIHZlcnNpb24gKGUuZy4gYGF1dGhvcml6YXRpb24uazhzLmlvL3YxYClcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBncm91cCBwb3J0aW9uIG9mIHRoZSBBUEkgdmVyc2lvbiAoZS5nLiBgYXV0aG9yaXphdGlvbi5rOHMuaW9gKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFwaUdyb3VwOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3Qga2luZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBraW5kOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFydCBpbiB3aGljaCB0aGlzIG9iamVjdCBpcyBkZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoYXJ0OiBDaGFydDtcblxuICAvKipcbiAgICogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQVBJIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtZXRhZGF0YTogQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uO1xuXG4gIC8qKlxuICAgKiBBIHNldCBvZiBKU09OIHBhdGNoIG9wZXJhdGlvbnMgdG8gYXBwbHkgdG8gdGhlIGRvY3VtZW50IGFmdGVyIHN5bnRoZXNpcy5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGF0Y2hlczogQXJyYXk8SnNvblBhdGNoPjtcblxuICAvKipcbiAgICogRGVmaW5lcyBhbiBBUEkgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBwcm9wcyBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBBcGlPYmplY3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5wYXRjaGVzID0gbmV3IEFycmF5PEpzb25QYXRjaD4oKTtcbiAgICB0aGlzLmNoYXJ0ID0gQ2hhcnQub2YodGhpcyk7XG4gICAgdGhpcy5raW5kID0gcHJvcHMua2luZDtcbiAgICB0aGlzLmFwaVZlcnNpb24gPSBwcm9wcy5hcGlWZXJzaW9uO1xuICAgIHRoaXMuYXBpR3JvdXAgPSBwYXJzZUFwaUdyb3VwKHRoaXMuYXBpVmVyc2lvbik7XG5cbiAgICB0aGlzLm5hbWUgPSBwcm9wcy5tZXRhZGF0YT8ubmFtZSA/PyB0aGlzLmNoYXJ0LmdlbmVyYXRlT2JqZWN0TmFtZSh0aGlzKTtcblxuICAgIHRoaXMubWV0YWRhdGEgPSBuZXcgQXBpT2JqZWN0TWV0YWRhdGFEZWZpbml0aW9uKHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcblxuICAgICAgLy8gdXNlciBkZWZpbmVkIHZhbHVlc1xuICAgICAgLi4ucHJvcHMubWV0YWRhdGEsXG5cbiAgICAgIG5hbWVzcGFjZTogcHJvcHMubWV0YWRhdGE/Lm5hbWVzcGFjZSA/PyB0aGlzLmNoYXJ0Lm5hbWVzcGFjZSxcbiAgICAgIGxhYmVsczoge1xuICAgICAgICAuLi50aGlzLmNoYXJ0LmxhYmVscyxcbiAgICAgICAgLi4ucHJvcHMubWV0YWRhdGE/LmxhYmVscyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoaXMgQXBpT2JqZWN0IGFuZCBvdGhlciBjb25zdHJ1Y3RzLlxuICAgKiBUaGVzZSBjYW4gYmUgb3RoZXIgQXBpT2JqZWN0cywgQ2hhcnRzLCBvciBjdXN0b20uXG4gICAqXG4gICAqIEBwYXJhbSBkZXBlbmRlbmNpZXMgdGhlIGRlcGVuZGVuY2llcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeSguLi5kZXBlbmRlbmNpZXM6IElDb25zdHJ1Y3RbXSkge1xuICAgIE5vZGUub2YodGhpcykuYWRkRGVwZW5kZW5jeSguLi5kZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgYSBzZXQgb2YgUkZDLTY5MDIgSlNPTi1QYXRjaCBvcGVyYXRpb25zIHRvIHRoZSBtYW5pZmVzdFxuICAgKiBzeW50aGVzaXplZCBmb3IgdGhpcyBBUEkgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gb3BzIFRoZSBKU09OLVBhdGNoIG9wZXJhdGlvbnMgdG8gYXBwbHkuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqXG4gICAqICAga3ViZVBvZC5hZGRKc29uUGF0Y2goSnNvblBhdGNoLnJlcGxhY2UoJy9zcGVjL2VuYWJsZVNlcnZpY2VMaW5rcycsIHRydWUpKTtcbiAgICpcbiAgICovXG4gIHB1YmxpYyBhZGRKc29uUGF0Y2goLi4ub3BzOiBKc29uUGF0Y2hbXSkge1xuICAgIHRoaXMucGF0Y2hlcy5wdXNoKC4uLm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgb2JqZWN0IHRvIEt1YmVybmV0ZXMgSlNPTi5cbiAgICpcbiAgICogVG8gZGlzYWJsZSBzb3J0aW5nIG9mIGRpY3Rpb25hcnkga2V5cyBpbiBvdXRwdXQgb2JqZWN0IHNldCB0aGVcbiAgICogYENESzhTX0RJU0FCTEVfU09SVGAgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYW55IG5vbi1lbXB0eSB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB0b0pzb24oKTogYW55IHtcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEudG9Kc29uKCksXG4gICAgfTtcblxuICAgIGNvbnN0IHNvcnRLZXlzID0gcHJvY2Vzcy5lbnYuQ0RLOFNfRElTQUJMRV9TT1JUID8gZmFsc2UgOiB0cnVlO1xuICAgIGNvbnN0IGpzb24gPSBzYW5pdGl6ZVZhbHVlKHJlc29sdmUoZGF0YSksIHsgc29ydEtleXMgfSk7XG4gICAgY29uc3QgcGF0Y2hlZCA9IEpzb25QYXRjaC5hcHBseShqc29uLCAuLi50aGlzLnBhdGNoZXMpO1xuXG4gICAgLy8gcmVvcmRlciB0b3AtbGV2ZWwga2V5cyBzbyB0aGF0IHdlIGZpcnN0IGhhdmUgXCJhcGlWZXJzaW9uXCIsIFwia2luZFwiIGFuZFxuICAgIC8vIFwibWV0YWRhdGFcIiBhbmQgdGhlbiBhbGwgdGhlIHJlc3RcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIGNvbnN0IG9yZGVyZWRLZXlzID0gWydhcGlWZXJzaW9uJywgJ2tpbmQnLCAnbWV0YWRhdGEnLCAuLi5PYmplY3Qua2V5cyhwYXRjaGVkKV07XG4gICAgZm9yIChjb25zdCBrIG9mIG9yZGVyZWRLZXlzKSB7XG4gICAgICBpZiAoayBpbiBwYXRjaGVkKSB7XG4gICAgICAgIHJlc3VsdFtrXSA9IHBhdGNoZWRba107XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUFwaUdyb3VwKGFwaVZlcnNpb246IHN0cmluZykge1xuICBjb25zdCB2ID0gYXBpVmVyc2lvbi5zcGxpdCgnLycpO1xuXG4gIC8vIG5vIGdyb3VwIG1lYW5zIFwiY29yZVwiXG4gIC8vIGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL3JlZmVyZW5jZS91c2luZy1hcGkvYXBpLW92ZXJ2aWV3LyNhcGktZ3JvdXBzXG4gIGlmICh2Lmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiAnY29yZSc7XG4gIH1cblxuICBpZiAodi5sZW5ndGggPT09IDIpIHtcbiAgICByZXR1cm4gdlswXTtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhcGlWZXJzaW9uICR7YXBpVmVyc2lvbn0sIGV4cGVjdGluZyBHUk9VUC9WRVJTSU9OLiBTZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvcmVmZXJlbmNlL3VzaW5nLWFwaS9hcGktb3ZlcnZpZXcvI2FwaS1ncm91cHNgKTtcbn1cbiJdfQ==
|
package/lib/app.d.ts
CHANGED
|
@@ -1,66 +1,36 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
2
|
import { Chart } from './chart';
|
|
3
|
-
/**
|
|
4
|
-
* The method to divide YAML output into files.
|
|
5
|
-
*
|
|
6
|
-
* @stability stable
|
|
7
|
-
*/
|
|
3
|
+
/** The method to divide YAML output into files */
|
|
8
4
|
export declare enum YamlOutputType {
|
|
9
|
-
/**
|
|
10
|
-
* All resources are output into a single YAML file.
|
|
11
|
-
*
|
|
12
|
-
* @stability stable
|
|
13
|
-
*/
|
|
5
|
+
/** All resources are output into a single YAML file */
|
|
14
6
|
FILE_PER_APP = 0,
|
|
15
|
-
/**
|
|
16
|
-
* Resources are split into seperate files by chart.
|
|
17
|
-
*
|
|
18
|
-
* @stability stable
|
|
19
|
-
*/
|
|
7
|
+
/** Resources are split into seperate files by chart */
|
|
20
8
|
FILE_PER_CHART = 1,
|
|
21
|
-
/**
|
|
22
|
-
* Each resource is output to its own file.
|
|
23
|
-
*
|
|
24
|
-
* @stability stable
|
|
25
|
-
*/
|
|
9
|
+
/** Each resource is output to its own file */
|
|
26
10
|
FILE_PER_RESOURCE = 2,
|
|
27
|
-
/**
|
|
28
|
-
* Each chart in its own folder and each resource in its own file.
|
|
29
|
-
*
|
|
30
|
-
* @stability stable
|
|
31
|
-
*/
|
|
11
|
+
/** Each chart in its own folder and each resource in its own file */
|
|
32
12
|
FOLDER_PER_CHART_FILE_PER_RESOURCE = 3
|
|
33
13
|
}
|
|
34
|
-
/**
|
|
35
|
-
* @stability stable
|
|
36
|
-
*/
|
|
37
14
|
export interface AppProps {
|
|
38
15
|
/**
|
|
39
16
|
* The directory to output Kubernetes manifests.
|
|
40
17
|
*
|
|
41
18
|
* @default - CDK8S_OUTDIR if defined, otherwise "dist"
|
|
42
|
-
* @stability stable
|
|
43
19
|
*/
|
|
44
20
|
readonly outdir?: string;
|
|
45
21
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
22
|
+
* The file extension to use for rendered YAML files
|
|
48
23
|
* @default .k8s.yaml
|
|
49
|
-
* @stability stable
|
|
50
24
|
*/
|
|
51
25
|
readonly outputFileExtension?: string;
|
|
52
26
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
27
|
+
* How to divide the YAML output into files
|
|
55
28
|
* @default YamlOutputType.FILE_PER_CHART
|
|
56
|
-
* @stability stable
|
|
57
29
|
*/
|
|
58
30
|
readonly yamlOutputType?: YamlOutputType;
|
|
59
31
|
}
|
|
60
32
|
/**
|
|
61
33
|
* Represents a cdk8s application.
|
|
62
|
-
*
|
|
63
|
-
* @stability stable
|
|
64
34
|
*/
|
|
65
35
|
export declare class App extends Construct {
|
|
66
36
|
/**
|
|
@@ -80,48 +50,34 @@ export declare class App extends Construct {
|
|
|
80
50
|
private static of;
|
|
81
51
|
/**
|
|
82
52
|
* The output directory into which manifests will be synthesized.
|
|
83
|
-
*
|
|
84
|
-
* @stability stable
|
|
85
53
|
*/
|
|
86
54
|
readonly outdir: string;
|
|
87
55
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
56
|
+
* The file extension to use for rendered YAML files
|
|
90
57
|
* @default .k8s.yaml
|
|
91
|
-
* @stability stable
|
|
92
58
|
*/
|
|
93
59
|
readonly outputFileExtension: string;
|
|
94
|
-
/**
|
|
95
|
-
* How to divide the YAML output into files.
|
|
96
|
-
*
|
|
60
|
+
/** How to divide the YAML output into files
|
|
97
61
|
* @default YamlOutputType.FILE_PER_CHART
|
|
98
|
-
* @stability stable
|
|
99
62
|
*/
|
|
100
63
|
readonly yamlOutputType: YamlOutputType;
|
|
101
64
|
/**
|
|
102
65
|
* Returns all the charts in this app, sorted topologically.
|
|
103
|
-
*
|
|
104
|
-
* @stability stable
|
|
105
66
|
*/
|
|
106
67
|
get charts(): Chart[];
|
|
107
68
|
/**
|
|
108
|
-
* Defines an app
|
|
109
|
-
*
|
|
110
|
-
* @param props configuration options.
|
|
111
|
-
* @stability stable
|
|
69
|
+
* Defines an app
|
|
70
|
+
* @param props configuration options
|
|
112
71
|
*/
|
|
113
72
|
constructor(props?: AppProps);
|
|
114
73
|
/**
|
|
115
|
-
* Synthesizes all manifests to the output directory
|
|
116
|
-
*
|
|
117
|
-
* @stability stable
|
|
74
|
+
* Synthesizes all manifests to the output directory
|
|
118
75
|
*/
|
|
119
76
|
synth(): void;
|
|
120
77
|
/**
|
|
121
78
|
* Synthesizes the app into a YAML string.
|
|
122
79
|
*
|
|
123
80
|
* @returns A string with all YAML objects across all charts in this app.
|
|
124
|
-
* @stability stable
|
|
125
81
|
*/
|
|
126
82
|
synthYaml(): any;
|
|
127
83
|
}
|
package/lib/app.js
CHANGED
|
@@ -11,29 +11,25 @@ const chart_1 = require("./chart");
|
|
|
11
11
|
const dependency_1 = require("./dependency");
|
|
12
12
|
const names_1 = require("./names");
|
|
13
13
|
const yaml_1 = require("./yaml");
|
|
14
|
-
/**
|
|
15
|
-
* The method to divide YAML output into files.
|
|
16
|
-
*
|
|
17
|
-
* @stability stable
|
|
18
|
-
*/
|
|
14
|
+
/** The method to divide YAML output into files */
|
|
19
15
|
var YamlOutputType;
|
|
20
16
|
(function (YamlOutputType) {
|
|
17
|
+
/** All resources are output into a single YAML file */
|
|
21
18
|
YamlOutputType[YamlOutputType["FILE_PER_APP"] = 0] = "FILE_PER_APP";
|
|
19
|
+
/** Resources are split into seperate files by chart */
|
|
22
20
|
YamlOutputType[YamlOutputType["FILE_PER_CHART"] = 1] = "FILE_PER_CHART";
|
|
21
|
+
/** Each resource is output to its own file */
|
|
23
22
|
YamlOutputType[YamlOutputType["FILE_PER_RESOURCE"] = 2] = "FILE_PER_RESOURCE";
|
|
23
|
+
/** Each chart in its own folder and each resource in its own file */
|
|
24
24
|
YamlOutputType[YamlOutputType["FOLDER_PER_CHART_FILE_PER_RESOURCE"] = 3] = "FOLDER_PER_CHART_FILE_PER_RESOURCE";
|
|
25
25
|
})(YamlOutputType = exports.YamlOutputType || (exports.YamlOutputType = {}));
|
|
26
26
|
/**
|
|
27
27
|
* Represents a cdk8s application.
|
|
28
|
-
*
|
|
29
|
-
* @stability stable
|
|
30
28
|
*/
|
|
31
29
|
class App extends constructs_1.Construct {
|
|
32
30
|
/**
|
|
33
|
-
* Defines an app
|
|
34
|
-
*
|
|
35
|
-
* @param props configuration options.
|
|
36
|
-
* @stability stable
|
|
31
|
+
* Defines an app
|
|
32
|
+
* @param props configuration options
|
|
37
33
|
*/
|
|
38
34
|
constructor(props = {}) {
|
|
39
35
|
var _b, _c, _d, _e;
|
|
@@ -76,8 +72,6 @@ class App extends constructs_1.Construct {
|
|
|
76
72
|
}
|
|
77
73
|
/**
|
|
78
74
|
* Returns all the charts in this app, sorted topologically.
|
|
79
|
-
*
|
|
80
|
-
* @stability stable
|
|
81
75
|
*/
|
|
82
76
|
get charts() {
|
|
83
77
|
const isChart = (x) => x instanceof chart_1.Chart;
|
|
@@ -86,9 +80,7 @@ class App extends constructs_1.Construct {
|
|
|
86
80
|
.filter(isChart);
|
|
87
81
|
}
|
|
88
82
|
/**
|
|
89
|
-
* Synthesizes all manifests to the output directory
|
|
90
|
-
*
|
|
91
|
-
* @stability stable
|
|
83
|
+
* Synthesizes all manifests to the output directory
|
|
92
84
|
*/
|
|
93
85
|
synth() {
|
|
94
86
|
fs.mkdirSync(this.outdir, { recursive: true });
|
|
@@ -154,7 +146,6 @@ class App extends constructs_1.Construct {
|
|
|
154
146
|
* Synthesizes the app into a YAML string.
|
|
155
147
|
*
|
|
156
148
|
* @returns A string with all YAML objects across all charts in this app.
|
|
157
|
-
* @stability stable
|
|
158
149
|
*/
|
|
159
150
|
synthYaml() {
|
|
160
151
|
validate(this);
|
|
@@ -169,7 +160,7 @@ class App extends constructs_1.Construct {
|
|
|
169
160
|
}
|
|
170
161
|
exports.App = App;
|
|
171
162
|
_a = JSII_RTTI_SYMBOL_1;
|
|
172
|
-
App[_a] = { fqn: "cdk8s.App", version: "2.2.
|
|
163
|
+
App[_a] = { fqn: "cdk8s.App", version: "2.2.13" };
|
|
173
164
|
function validate(app) {
|
|
174
165
|
const errors = [];
|
|
175
166
|
for (const child of app.node.findAll()) {
|
|
@@ -262,4 +253,4 @@ class IndexedChartFolderNamer extends SimpleChartFolderNamer {
|
|
|
262
253
|
return name;
|
|
263
254
|
}
|
|
264
255
|
}
|
|
265
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsMkNBQXlEO0FBQ3pELDZDQUF5QztBQUN6QyxtQ0FBZ0M7QUFDaEMsNkNBQStDO0FBQy9DLG1DQUFnQztBQUNoQyxpQ0FBOEI7Ozs7OztBQUc5QixJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFFeEIsbUVBQVksQ0FBQTtJQUVaLHVFQUFjLENBQUE7SUFFZCw2RUFBaUIsQ0FBQTtJQUVqQiwrR0FBa0MsQ0FBQTtBQUNwQyxDQUFDLEVBVFcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFTekI7Ozs7OztBQVlELE1BQWEsR0FBSSxTQUFRLHNCQUFTOzs7Ozs7O0lBNERoQyxZQUFZLFFBQWtCLEVBQUc7O1FBQy9CLEtBQUssQ0FBQyxTQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLGVBQUcsS0FBSyxDQUFDLE1BQU0sbUNBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLG1DQUFJLE1BQU0sQ0FBQztRQUNqRSxJQUFJLENBQUMsbUJBQW1CLFNBQUcsS0FBSyxDQUFDLG1CQUFtQixtQ0FBSSxXQUFXLENBQUM7UUFDcEUsSUFBSSxDQUFDLGNBQWMsU0FBRyxLQUFLLENBQUMsY0FBYyxtQ0FBSSxjQUFjLENBQUMsY0FBYyxDQUFDO0lBQzlFLENBQUM7SUFoRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFZO1FBRXBDLE1BQU0sR0FBRyxHQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsK0RBQStEO1FBQy9ELDZEQUE2RDtRQUM3RCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QixnRkFBZ0Y7UUFDaEYsb0ZBQW9GO1FBQ3BGLDJGQUEyRjtRQUMzRixR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QUFZO1FBQ3RCLE9BQU8sYUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLHVCQUF3QixTQUFRLHNCQUFzQjtJQUUxRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRkYsVUFBSyxHQUFXLENBQUMsQ0FBQztJQUcxQixDQUFDO0lBRU0sSUFBSSxDQUFDLEtBQVk7UUFDdEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCwgTm9kZSwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnLi9hcGktb2JqZWN0JztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnLi9jaGFydCc7XG5pbXBvcnQgeyBEZXBlbmRlbmN5R3JhcGggfSBmcm9tICcuL2RlcGVuZGVuY3knO1xuaW1wb3J0IHsgTmFtZXMgfSBmcm9tICcuL25hbWVzJztcbmltcG9ydCB7IFlhbWwgfSBmcm9tICcuL3lhbWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGVudW0gWWFtbE91dHB1dFR5cGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIEZJTEVfUEVSX0FQUCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBGSUxFX1BFUl9DSEFSVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBGSUxFX1BFUl9SRVNPVVJDRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIEZPTERFUl9QRVJfQ0hBUlRfRklMRV9QRVJfUkVTT1VSQ0UsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBvdXRwdXRGaWxlRXh0ZW5zaW9uPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHlhbWxPdXRwdXRUeXBlPzogWWFtbE91dHB1dFR5cGU7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFwcCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBTeW50aGVzaXplIGEgc2luZ2xlIGNoYXJ0LlxuICAgKlxuICAgKiBFYWNoIGVsZW1lbnQgcmV0dXJuZWQgaW4gdGhlIHJlc3VsdGluZyBhcnJheSByZXByZXNlbnRzIGEgZGlmZmVyZW50IEFwaU9iamVjdFxuICAgKiBpbiB0aGUgc2NvcGUgb2YgdGhlIGNoYXJ0LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIGFycmF5IG9yZGVyIGlzIGltcG9ydGFudC4gSXQgaXMgZGV0ZXJtaW5lZCBieSB0aGUgdmFyaW91cyBkZXBlbmRlbmNpZXMgYmV0d2VlblxuICAgKiB0aGUgY29uc3RydWN0cyBpbiB0aGUgY2hhcnQsIHdoZXJlIHRoZSBmaXJzdCBlbGVtZW50IGlzIHRoZSBvbmUgd2l0aG91dCBkZXBlbmRlbmNpZXMsIGFuZCBzbyBvbi4uLlxuICAgKlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMuXG4gICAqIEBwYXJhbSBjaGFydCB0aGUgY2hhcnQgdG8gc3ludGhlc2l6ZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIF9zeW50aENoYXJ0KGNoYXJ0OiBDaGFydCk6IGFueVtdIHtcblxuICAgIGNvbnN0IGFwcDogQXBwID0gQXBwLm9mKGNoYXJ0KTtcblxuICAgIC8vIHdlIG11c3QgcHJlcGFyZSB0aGUgZW50aXJlIGFwcCBiZWZvcmUgc3ludGhlc2l6aW5nIHRoZSBjaGFydFxuICAgIC8vIGJlY2F1c2UgdGhlIGRlcGVuZGVuY3kgaW5mZXJlbmNlIGhhcHBlbnMgb24gdGhlIGFwcCBsZXZlbC5cbiAgICByZXNvbHZlRGVwZW5kZW5jaWVzKGFwcCk7XG5cbiAgICAvLyB2YWxpZGF0ZSB0aGUgYXBwIHNpbmNlIHdlIHdhbnQgdG8gY2FsbCBvblZhbGlkYXRlIG9mIHRoZSByZWxldmFudCBjb25zdHJ1Y3RzLlxuICAgIC8vIG5vdGUgdGhpcyB3aWxsIGFsc28gY2FsbCBvblZhbGlkYXRlIG9uIGNvbnN0cnVjdHMgZnJvbSBwb3NzaWJseSBkaWZmZXJlbnQgY2hhcnRzLFxuICAgIC8vIGJ1dCB0aGF0cyBvayB0b28gc2luY2Ugd2Ugbm8gbG9uZ2VyIHRyZWF0IGNvbnN0cnVjdHMgYXMgYSBzZWxmLWNvbnRhaW5lZCBzeW50aGVzaXMgdW5pdC5cbiAgICB2YWxpZGF0ZShhcHApO1xuXG4gICAgcmV0dXJuIGNoYXJ0VG9LdWJlKGNoYXJ0KS5tYXAob2JqID0+IG9iai50b0pzb24oKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBvZihjOiBJQ29uc3RydWN0KTogQXBwIHtcblxuICAgIGNvbnN0IHNjb3BlID0gTm9kZS5vZihjKS5zY29wZTtcblxuICAgIGlmICghc2NvcGUpIHtcbiAgICAgIC8vIHRoZSBhcHAgaXMgdGhlIG9ubHkgY29uc3RydWN0IHdpdGhvdXQgYSBzY29wZS5cbiAgICAgIHJldHVybiBjIGFzIEFwcDtcbiAgICB9XG5cbiAgICByZXR1cm4gQXBwLm9mKHNjb3BlKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBvdXRkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IHlhbWxPdXRwdXRUeXBlOiBZYW1sT3V0cHV0VHlwZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIGdldCBjaGFydHMoKTogQ2hhcnRbXSB7XG4gICAgY29uc3QgaXNDaGFydCA9ICh4OiBJQ29uc3RydWN0KTogeCBpcyBDaGFydCA9PiB4IGluc3RhbmNlb2YgQ2hhcnQ7XG4gICAgcmV0dXJuIG5ldyBEZXBlbmRlbmN5R3JhcGgoTm9kZS5vZih0aGlzKSlcbiAgICAgIC50b3BvbG9neSgpXG4gICAgICAuZmlsdGVyKGlzQ2hhcnQpO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBBcHBQcm9wcyA9IHsgfSkge1xuICAgIHN1cGVyKHVuZGVmaW5lZCBhcyBhbnksICcnKTtcbiAgICB0aGlzLm91dGRpciA9IHByb3BzLm91dGRpciA/PyBwcm9jZXNzLmVudi5DREs4U19PVVRESVIgPz8gJ2Rpc3QnO1xuICAgIHRoaXMub3V0cHV0RmlsZUV4dGVuc2lvbiA9IHByb3BzLm91dHB1dEZpbGVFeHRlbnNpb24gPz8gJy5rOHMueWFtbCc7XG4gICAgdGhpcy55YW1sT3V0cHV0VHlwZSA9IHByb3BzLnlhbWxPdXRwdXRUeXBlID8/IFlhbWxPdXRwdXRUeXBlLkZJTEVfUEVSX0NIQVJUO1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3ludGgoKTogdm9pZCB7XG5cbiAgICBmcy5ta2RpclN5bmModGhpcy5vdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgLy8gU2luY2Ugd2UgcGxhbiBvbiByZW1vdmluZyB0aGUgZGlzdHJpYnV0ZWQgc3ludGggbWVjaGFuaXNtLCB3ZSBubyBsb25nZXIgY2FsbCBgTm9kZS5zeW50aGVzaXplYCwgYnV0IHJhdGhlciBzaW1wbHkgaW1wbGVtZW50XG4gICAgLy8gdGhlIG5lY2Vzc2FyeSBvcGVyYXRpb25zLiBXZSBkbyBob3dldmVyIHdhbnQgdG8gcHJlc2VydmUgdGhlIGRpc3RyaWJ1dGVkIHZhbGlkYXRpb24uXG4gICAgdmFsaWRhdGUodGhpcyk7XG5cbiAgICAvLyB0aGlzIGlzIGtpbmQgb2Ygc3Vja3ksIGV2ZW50dWFsbHkgSSB3b3VsZCBsaWtlIHRoZSBEZXBlbmRlbmN5R3JhcGhcbiAgICAvLyB0byBiZSBhYmxlIHRvIGFuc3dlciB0aGlzIHF1ZXN0aW9uLlxuICAgIGNvbnN0IGhhc0RlcGVuZGFudENoYXJ0cyA9IHJlc29sdmVEZXBlbmRlbmNpZXModGhpcyk7XG4gICAgY29uc3QgY2hhcnRzID0gdGhpcy5jaGFydHM7XG5cbiAgICBzd2l0Y2ggKHRoaXMueWFtbE91dHB1dFR5cGUpIHtcbiAgICAgIGNhc2UgWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfQVBQOlxuICAgICAgICBsZXQgYXBpT2JqZWN0TGlzdDogQXBpT2JqZWN0W10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNoYXJ0IG9mIGNoYXJ0cykge1xuICAgICAgICAgIGFwaU9iamVjdExpc3QucHVzaCguLi5jaGFydFRvS3ViZShjaGFydCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYXJ0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgWWFtbC5zYXZlKFxuICAgICAgICAgICAgcGF0aC5qb2luKHRoaXMub3V0ZGlyLCBgYXBwJHt0aGlzLm91dHB1dEZpbGVFeHRlbnNpb259YCksIC8vIFRoZXJlIGlzIG5vIFwiYXBwIG5hbWVcIiwgc28gd2UganVzdCBoYXJkY29kZSB0aGUgZmlsZSBuYW1lXG4gICAgICAgICAgICBhcGlPYmplY3RMaXN0Lm1hcCgoYXBpT2JqZWN0KSA9PiBhcGlPYmplY3QudG9Kc29uKCkpLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfQ0hBUlQ6XG4gICAgICAgIGNvbnN0IG5hbWVyOiBDaGFydE5hbWVyID0gaGFzRGVwZW5kYW50Q2hhcnRzID8gbmV3IEluZGV4ZWRDaGFydE5hbWVyKCkgOiBuZXcgU2ltcGxlQ2hhcnROYW1lcigpO1xuXG4gICAgICAgIGZvciAoY29uc3QgY2hhcnQgb2YgY2hhcnRzKSB7XG4gICAgICAgICAgY29uc3QgY2hhcnROYW1lID0gbmFtZXIubmFtZShjaGFydCk7XG4gICAgICAgICAgY29uc3Qgb2JqZWN0cyA9IGNoYXJ0VG9LdWJlKGNoYXJ0KTtcblxuICAgICAgICAgIFlhbWwuc2F2ZShwYXRoLmpvaW4odGhpcy5vdXRkaXIsIGNoYXJ0TmFtZSt0aGlzLm91dHB1dEZpbGVFeHRlbnNpb24pLCBvYmplY3RzLm1hcChvYmogPT4gb2JqLnRvSnNvbigpKSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfUkVTT1VSQ0U6XG4gICAgICAgIGZvciAoY29uc3QgY2hhcnQgb2YgY2hhcnRzKSB7XG4gICAgICAgICAgY29uc3QgYXBpT2JqZWN0cyA9IGNoYXJ0VG9LdWJlKGNoYXJ0KTtcblxuICAgICAgICAgIGFwaU9iamVjdHMuZm9yRWFjaCgoYXBpT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICBpZiAoIShhcGlPYmplY3QgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHtgJHthcGlPYmplY3Qua2luZH0uJHthcGlPYmplY3QubWV0YWRhdGEubmFtZX1gXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1teMC05YS16QS1aLV8uXS9nLCAnJyl9YDtcbiAgICAgICAgICAgICAgWWFtbC5zYXZlKHBhdGguam9pbih0aGlzLm91dGRpciwgZmlsZU5hbWUrdGhpcy5vdXRwdXRGaWxlRXh0ZW5zaW9uKSwgW2FwaU9iamVjdC50b0pzb24oKV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFlhbWxPdXRwdXRUeXBlLkZPTERFUl9QRVJfQ0hBUlRfRklMRV9QRVJfUkVTT1VSQ0U6XG4gICAgICAgIGNvbnN0IGZvbGRlck5hbWVyOiBDaGFydE5hbWVyID0gaGFzRGVwZW5kYW50Q2hhcnRzID8gbmV3IEluZGV4ZWRDaGFydEZvbGRlck5hbWVyKCkgOiBuZXcgU2ltcGxlQ2hhcnRGb2xkZXJOYW1lcigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXJ0IG9mIGNoYXJ0cykge1xuICAgICAgICAgIGNvbnN0IGNoYXJ0TmFtZSA9IGZvbGRlck5hbWVyLm5hbWUoY2hhcnQpO1xuICAgICAgICAgIGNvbnN0IGFwaU9iamVjdHMgPSBjaGFydFRvS3ViZShjaGFydCk7XG4gICAgICAgICAgY29uc3QgZnVsbE91dERpciA9IHBhdGguam9pbih0aGlzLm91dGRpciwgY2hhcnROYW1lKTtcbiAgICAgICAgICBmcy5ta2RpclN5bmMoZnVsbE91dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAgICAgICBhcGlPYmplY3RzLmZvckVhY2goKGFwaU9iamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEoYXBpT2JqZWN0ID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7YCR7YXBpT2JqZWN0LmtpbmR9LiR7YXBpT2JqZWN0Lm1ldGFkYXRhLm5hbWV9YFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXjAtOWEtekEtWi1fLl0vZywgJycpfWA7XG4gICAgICAgICAgICAgIFlhbWwuc2F2ZShwYXRoLmpvaW4oZnVsbE91dERpciwgZmlsZU5hbWUrdGhpcy5vdXRwdXRGaWxlRXh0ZW5zaW9uKSwgW2FwaU9iamVjdC50b0pzb24oKV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgc3ludGhZYW1sKCk6IGFueSB7XG4gICAgdmFsaWRhdGUodGhpcyk7XG5cbiAgICBjb25zdCBjaGFydHMgPSB0aGlzLmNoYXJ0cztcbiAgICBjb25zdCBkb2NzOiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjaGFydCBvZiBjaGFydHMpIHtcbiAgICAgIGNvbnN0IGFwaU9iamVjdHMgPSBjaGFydFRvS3ViZShjaGFydCk7XG4gICAgICBkb2NzLnB1c2goLi4uYXBpT2JqZWN0cy5tYXAoYXBpT2JqZWN0ID0+IGFwaU9iamVjdC50b0pzb24oKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBZYW1sLnN0cmluZ2lmeSguLi5kb2NzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZShhcHA6IEFwcCkge1xuICBjb25zdCBlcnJvcnMgPSBbXTtcbiAgZm9yIChjb25zdCBjaGlsZCBvZiBhcHAubm9kZS5maW5kQWxsKCkpIHtcbiAgICBjb25zdCBjaGlsZEVycm9ycyA9IGNoaWxkLm5vZGUudmFsaWRhdGUoKTtcbiAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGNoaWxkRXJyb3JzKSB7XG4gICAgICBlcnJvcnMucHVzaChgWyR7Y2hpbGQubm9kZS5wYXRofV0gJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFZhbGlkYXRpb24gZmFpbGVkIHdpdGggdGhlIGZvbGxvd2luZyBlcnJvcnM6XFxuICAke2Vycm9ycy5qb2luKCdcXG4gICcpfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVEZXBlbmRlbmNpZXMoYXBwOiBBcHApIHtcblxuICBsZXQgaGFzRGVwZW5kYW50Q2hhcnRzID0gZmFsc2U7XG5cbiAgY29uc3QgZGVwcyA9IFtdO1xuICBmb3IgKGNvbnN0IGNoaWxkIG9mIGFwcC5ub2RlLmZpbmRBbGwoKSkge1xuICAgIGZvciAoY29uc3QgZGVwIG9mIGNoaWxkLm5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICBkZXBzLnB1c2goeyBzb3VyY2U6IGNoaWxkLCB0YXJnZXQ6IGRlcCB9KTtcbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGRlcCBvZiBkZXBzKSB7XG5cbiAgICAvLyBjcmVhdGUgZXhwbGljaXQgYXBpIG9iamVjdCBkZXBlbmRlbmNpZXMgZnJvbSBpbXBsaWNpdCBjb25zdHJ1Y3QgZGVwZW5kZW5jaWVzXG4gICAgY29uc3QgdGFyZ2V0QXBpT2JqZWN0cyA9IE5vZGUub2YoZGVwLnRhcmdldCkuZmluZEFsbCgpLmZpbHRlcihjID0+IGMgaW5zdGFuY2VvZiBBcGlPYmplY3QpO1xuICAgIGNvbnN0IHNvdXJjZUFwaU9iamVjdHMgPSBOb2RlLm9mKGRlcC5zb3VyY2UpLmZpbmRBbGwoKS5maWx0ZXIoYyA9PiBjIGluc3RhbmNlb2YgQXBpT2JqZWN0KTtcblxuICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldEFwaU9iamVjdHMpIHtcbiAgICAgIGZvciAoY29uc3Qgc291cmNlIG9mIHNvdXJjZUFwaU9iamVjdHMpIHtcbiAgICAgICAgaWYgKHRhcmdldCAhPT0gc291cmNlKSB7XG4gICAgICAgICAgTm9kZS5vZihzb3VyY2UpLmFkZERlcGVuZGVuY3kodGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGNyZWF0ZSBhbiBleHBsaWNpdCBjaGFydCBkZXBlbmRlbmN5IGZyb20gaW1wbGljaXQgY29uc3RydWN0IGRlcGVuZGVuY2llc1xuICAgIGNvbnN0IHNvdXJjZUNoYXJ0ID0gQ2hhcnQub2YoZGVwLnNvdXJjZSk7XG4gICAgY29uc3QgdGFyZ2V0Q2hhcnQgPSBDaGFydC5vZihkZXAudGFyZ2V0KTtcblxuICAgIGlmIChzb3VyY2VDaGFydCAhPT0gdGFyZ2V0Q2hhcnQpIHtcbiAgICAgIE5vZGUub2Yoc291cmNlQ2hhcnQpLmFkZERlcGVuZGVuY3kodGFyZ2V0Q2hhcnQpO1xuICAgICAgaGFzRGVwZW5kYW50Q2hhcnRzID0gdHJ1ZTtcbiAgICB9XG5cbiAgfVxuXG4gIGNvbnN0IGNoYXJ0cyA9IG5ldyBEZXBlbmRlbmN5R3JhcGgoTm9kZS5vZihhcHApKS50b3BvbG9neSgpXG4gICAgLmZpbHRlcih4ID0+IHggaW5zdGFuY2VvZiBDaGFydCk7XG5cbiAgZm9yIChjb25zdCBwYXJlbnRDaGFydCBvZiBjaGFydHMpIHtcbiAgICBmb3IgKGNvbnN0IGNoaWxkQ2hhcnQgb2YgTm9kZS5vZihwYXJlbnRDaGFydCkuY2hpbGRyZW4uZmlsdGVyKHggPT4geCBpbnN0YW5jZW9mIENoYXJ0KSkge1xuICAgICAgLy8gY3JlYXRlIGFuIGV4cGxpY2l0IGNoYXJ0IGRlcGVuZGVuY3kgZnJvbSBuZXN0ZWQgY2hhcnQgcmVsYXRpb25zaGlwc1xuICAgICAgTm9kZS5vZihwYXJlbnRDaGFydCkuYWRkRGVwZW5kZW5jeShjaGlsZENoYXJ0KTtcbiAgICAgIGhhc0RlcGVuZGFudENoYXJ0cyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhhc0RlcGVuZGFudENoYXJ0cztcblxufVxuXG5mdW5jdGlvbiBjaGFydFRvS3ViZShjaGFydDogQ2hhcnQpIHtcbiAgcmV0dXJuIG5ldyBEZXBlbmRlbmN5R3JhcGgoTm9kZS5vZihjaGFydCkpLnRvcG9sb2d5KClcbiAgICAuZmlsdGVyKHggPT4geCBpbnN0YW5jZW9mIEFwaU9iamVjdClcbiAgICAuZmlsdGVyKHggPT4gQ2hhcnQub2YoeCkgPT09IGNoYXJ0KSAvLyBpbmNsdWRlIGFuIG9iamVjdCBvbmx5IGluIGl0cyBjbG9zZXN0IHBhcmVudCBjaGFydFxuICAgIC5tYXAoeCA9PiAoeCBhcyBBcGlPYmplY3QpKTtcbn1cblxuaW50ZXJmYWNlIENoYXJ0TmFtZXIge1xuICBuYW1lKGNoYXJ0OiBDaGFydCk6IHN0cmluZztcbn1cblxuY2xhc3MgU2ltcGxlQ2hhcnROYW1lciBpbXBsZW1lbnRzIENoYXJ0TmFtZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHB1YmxpYyBuYW1lKGNoYXJ0OiBDaGFydCkge1xuICAgIHJldHVybiBgJHtOYW1lcy50b0Ruc0xhYmVsKGNoYXJ0KX1gO1xuICB9XG59XG5cbmNsYXNzIEluZGV4ZWRDaGFydE5hbWVyIGV4dGVuZHMgU2ltcGxlQ2hhcnROYW1lciBpbXBsZW1lbnRzIENoYXJ0TmFtZXIge1xuICBwcml2YXRlIGluZGV4OiBudW1iZXIgPSAwO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5hbWUoY2hhcnQ6IENoYXJ0KSB7XG4gICAgY29uc3QgbmFtZSA9IGAke3RoaXMuaW5kZXgudG9TdHJpbmcoKS5wYWRTdGFydCg0LCAnMCcpfS0ke3N1cGVyLm5hbWUoY2hhcnQpfWA7XG4gICAgdGhpcy5pbmRleCsrO1xuICAgIHJldHVybiBuYW1lO1xuICB9XG59XG5cbmNsYXNzIFNpbXBsZUNoYXJ0Rm9sZGVyTmFtZXIgaW1wbGVtZW50cyBDaGFydE5hbWVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBwdWJsaWMgbmFtZShjaGFydDogQ2hhcnQpIHtcbiAgICByZXR1cm4gTmFtZXMudG9EbnNMYWJlbChjaGFydCk7XG4gIH1cbn1cblxuY2xhc3MgSW5kZXhlZENoYXJ0Rm9sZGVyTmFtZXIgZXh0ZW5kcyBTaW1wbGVDaGFydEZvbGRlck5hbWVyIGltcGxlbWVudHMgQ2hhcnROYW1lciB7XG4gIHByaXZhdGUgaW5kZXg6IG51bWJlciA9IDA7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmFtZShjaGFydDogQ2hhcnQpIHtcbiAgICBjb25zdCBuYW1lID0gYCR7dGhpcy5pbmRleC50b1N0cmluZygpLnBhZFN0YXJ0KDQsICcwJyl9LSR7c3VwZXIubmFtZShjaGFydCl9YDtcbiAgICB0aGlzLmluZGV4Kys7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn0iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsMkNBQXlEO0FBQ3pELDZDQUF5QztBQUN6QyxtQ0FBZ0M7QUFDaEMsNkNBQStDO0FBQy9DLG1DQUFnQztBQUNoQyxpQ0FBOEI7QUFFOUIsa0RBQWtEO0FBQ2xELElBQVksY0FTWDtBQVRELFdBQVksY0FBYztJQUN4Qix1REFBdUQ7SUFDdkQsbUVBQVksQ0FBQTtJQUNaLHVEQUF1RDtJQUN2RCx1RUFBYyxDQUFBO0lBQ2QsOENBQThDO0lBQzlDLDZFQUFpQixDQUFBO0lBQ2pCLHFFQUFxRTtJQUNyRSwrR0FBa0MsQ0FBQTtBQUNwQyxDQUFDLEVBVFcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFTekI7QUFxQkQ7O0dBRUc7QUFDSCxNQUFhLEdBQUksU0FBUSxzQkFBUztJQW9FaEM7OztPQUdHO0lBQ0gsWUFBWSxRQUFrQixFQUFHOztRQUMvQixLQUFLLENBQUMsU0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxlQUFHLEtBQUssQ0FBQyxNQUFNLG1DQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxtQ0FBSSxNQUFNLENBQUM7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixTQUFHLEtBQUssQ0FBQyxtQkFBbUIsbUNBQUksV0FBVyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxjQUFjLFNBQUcsS0FBSyxDQUFDLGNBQWMsbUNBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQztJQUM5RSxDQUFDO0lBNUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBWTtRQUVwQyxNQUFNLEdBQUcsR0FBUSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLCtEQUErRDtRQUMvRCw2REFBNkQ7UUFDN0Qs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QUFFLENBQUM7UUFDYixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU0sc0JBQXNCO0lBQzFCO0lBQ0EsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUFZO1FBQ3RCLE9BQU8sYUFBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLHVCQUF3QixTQUFRLHNCQUFzQjtJQUUxRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRkYsVUFBSyxHQUFXLENBQUMsQ0FBQztJQUcxQixDQUFDO0lBRU0sSUFBSSxDQUFDLEtBQVk7UUFDdEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbnN0cnVjdCwgTm9kZSwgSUNvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQXBpT2JqZWN0IH0gZnJvbSAnLi9hcGktb2JqZWN0JztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnLi9jaGFydCc7XG5pbXBvcnQgeyBEZXBlbmRlbmN5R3JhcGggfSBmcm9tICcuL2RlcGVuZGVuY3knO1xuaW1wb3J0IHsgTmFtZXMgfSBmcm9tICcuL25hbWVzJztcbmltcG9ydCB7IFlhbWwgfSBmcm9tICcuL3lhbWwnO1xuXG4vKiogVGhlIG1ldGhvZCB0byBkaXZpZGUgWUFNTCBvdXRwdXQgaW50byBmaWxlcyAqL1xuZXhwb3J0IGVudW0gWWFtbE91dHB1dFR5cGUge1xuICAvKiogQWxsIHJlc291cmNlcyBhcmUgb3V0cHV0IGludG8gYSBzaW5nbGUgWUFNTCBmaWxlICovXG4gIEZJTEVfUEVSX0FQUCxcbiAgLyoqIFJlc291cmNlcyBhcmUgc3BsaXQgaW50byBzZXBlcmF0ZSBmaWxlcyBieSBjaGFydCAqL1xuICBGSUxFX1BFUl9DSEFSVCxcbiAgLyoqIEVhY2ggcmVzb3VyY2UgaXMgb3V0cHV0IHRvIGl0cyBvd24gZmlsZSAqL1xuICBGSUxFX1BFUl9SRVNPVVJDRSxcbiAgLyoqIEVhY2ggY2hhcnQgaW4gaXRzIG93biBmb2xkZXIgYW5kIGVhY2ggcmVzb3VyY2UgaW4gaXRzIG93biBmaWxlICovXG4gIEZPTERFUl9QRVJfQ0hBUlRfRklMRV9QRVJfUkVTT1VSQ0UsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0byBvdXRwdXQgS3ViZXJuZXRlcyBtYW5pZmVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ0RLOFNfT1VURElSIGlmIGRlZmluZWQsIG90aGVyd2lzZSBcImRpc3RcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xuICAvKipcbiAgICogIFRoZSBmaWxlIGV4dGVuc2lvbiB0byB1c2UgZm9yIHJlbmRlcmVkIFlBTUwgZmlsZXNcbiAgICogQGRlZmF1bHQgLms4cy55YW1sXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRGaWxlRXh0ZW5zaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogIEhvdyB0byBkaXZpZGUgdGhlIFlBTUwgb3V0cHV0IGludG8gZmlsZXNcbiAgICogQGRlZmF1bHQgWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfQ0hBUlRcbiAgICovXG4gIHJlYWRvbmx5IHlhbWxPdXRwdXRUeXBlPzogWWFtbE91dHB1dFR5cGU7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGNkazhzIGFwcGxpY2F0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQXBwIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFN5bnRoZXNpemUgYSBzaW5nbGUgY2hhcnQuXG4gICAqXG4gICAqIEVhY2ggZWxlbWVudCByZXR1cm5lZCBpbiB0aGUgcmVzdWx0aW5nIGFycmF5IHJlcHJlc2VudHMgYSBkaWZmZXJlbnQgQXBpT2JqZWN0XG4gICAqIGluIHRoZSBzY29wZSBvZiB0aGUgY2hhcnQuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgcmV0dXJuZWQgYXJyYXkgb3JkZXIgaXMgaW1wb3J0YW50LiBJdCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YXJpb3VzIGRlcGVuZGVuY2llcyBiZXR3ZWVuXG4gICAqIHRoZSBjb25zdHJ1Y3RzIGluIHRoZSBjaGFydCwgd2hlcmUgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdGhlIG9uZSB3aXRob3V0IGRlcGVuZGVuY2llcywgYW5kIHNvIG9uLi4uXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEpTT04gb2JqZWN0cy5cbiAgICogQHBhcmFtIGNoYXJ0IHRoZSBjaGFydCB0byBzeW50aGVzaXplLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgX3N5bnRoQ2hhcnQoY2hhcnQ6IENoYXJ0KTogYW55W10ge1xuXG4gICAgY29uc3QgYXBwOiBBcHAgPSBBcHAub2YoY2hhcnQpO1xuXG4gICAgLy8gd2UgbXVzdCBwcmVwYXJlIHRoZSBlbnRpcmUgYXBwIGJlZm9yZSBzeW50aGVzaXppbmcgdGhlIGNoYXJ0XG4gICAgLy8gYmVjYXVzZSB0aGUgZGVwZW5kZW5jeSBpbmZlcmVuY2UgaGFwcGVucyBvbiB0aGUgYXBwIGxldmVsLlxuICAgIHJlc29sdmVEZXBlbmRlbmNpZXMoYXBwKTtcblxuICAgIC8vIHZhbGlkYXRlIHRoZSBhcHAgc2luY2Ugd2Ugd2FudCB0byBjYWxsIG9uVmFsaWRhdGUgb2YgdGhlIHJlbGV2YW50IGNvbnN0cnVjdHMuXG4gICAgLy8gbm90ZSB0aGlzIHdpbGwgYWxzbyBjYWxsIG9uVmFsaWRhdGUgb24gY29uc3RydWN0cyBmcm9tIHBvc3NpYmx5IGRpZmZlcmVudCBjaGFydHMsXG4gICAgLy8gYnV0IHRoYXRzIG9rIHRvbyBzaW5jZSB3ZSBubyBsb25nZXIgdHJlYXQgY29uc3RydWN0cyBhcyBhIHNlbGYtY29udGFpbmVkIHN5bnRoZXNpcyB1bml0LlxuICAgIHZhbGlkYXRlKGFwcCk7XG5cbiAgICByZXR1cm4gY2hhcnRUb0t1YmUoY2hhcnQpLm1hcChvYmogPT4gb2JqLnRvSnNvbigpKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG9mKGM6IElDb25zdHJ1Y3QpOiBBcHAge1xuXG4gICAgY29uc3Qgc2NvcGUgPSBOb2RlLm9mKGMpLnNjb3BlO1xuXG4gICAgaWYgKCFzY29wZSkge1xuICAgICAgLy8gdGhlIGFwcCBpcyB0aGUgb25seSBjb25zdHJ1Y3Qgd2l0aG91dCBhIHNjb3BlLlxuICAgICAgcmV0dXJuIGMgYXMgQXBwO1xuICAgIH1cblxuICAgIHJldHVybiBBcHAub2Yoc2NvcGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwdXQgZGlyZWN0b3J5IGludG8gd2hpY2ggbWFuaWZlc3RzIHdpbGwgYmUgc3ludGhlc2l6ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0ZGlyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBUaGUgZmlsZSBleHRlbnNpb24gdG8gdXNlIGZvciByZW5kZXJlZCBZQU1MIGZpbGVzXG4gICAqIEBkZWZhdWx0IC5rOHMueWFtbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dEZpbGVFeHRlbnNpb246IHN0cmluZztcblxuICAvKiogSG93IHRvIGRpdmlkZSB0aGUgWUFNTCBvdXRwdXQgaW50byBmaWxlc1xuICAgKiBAZGVmYXVsdCBZYW1sT3V0cHV0VHlwZS5GSUxFX1BFUl9DSEFSVFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHlhbWxPdXRwdXRUeXBlOiBZYW1sT3V0cHV0VHlwZTtcblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgdGhlIGNoYXJ0cyBpbiB0aGlzIGFwcCwgc29ydGVkIHRvcG9sb2dpY2FsbHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNoYXJ0cygpOiBDaGFydFtdIHtcbiAgICBjb25zdCBpc0NoYXJ0ID0gKHg6IElDb25zdHJ1Y3QpOiB4IGlzIENoYXJ0ID0+IHggaW5zdGFuY2VvZiBDaGFydDtcbiAgICByZXR1cm4gbmV3IERlcGVuZGVuY3lHcmFwaChOb2RlLm9mKHRoaXMpKVxuICAgICAgLnRvcG9sb2d5KClcbiAgICAgIC5maWx0ZXIoaXNDaGFydCk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhbiBhcHBcbiAgICogQHBhcmFtIHByb3BzIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM6IEFwcFByb3BzID0geyB9KSB7XG4gICAgc3VwZXIodW5kZWZpbmVkIGFzIGFueSwgJycpO1xuICAgIHRoaXMub3V0ZGlyID0gcHJvcHMub3V0ZGlyID8/IHByb2Nlc3MuZW52LkNESzhTX09VVERJUiA/PyAnZGlzdCc7XG4gICAgdGhpcy5vdXRwdXRGaWxlRXh0ZW5zaW9uID0gcHJvcHMub3V0cHV0RmlsZUV4dGVuc2lvbiA/PyAnLms4cy55YW1sJztcbiAgICB0aGlzLnlhbWxPdXRwdXRUeXBlID0gcHJvcHMueWFtbE91dHB1dFR5cGUgPz8gWWFtbE91dHB1dFR5cGUuRklMRV9QRVJfQ0hBUlQ7XG4gIH1cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgYWxsIG1hbmlmZXN0cyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeVxuICAgKi9cbiAgcHVibGljIHN5bnRoKCk6IHZvaWQge1xuXG4gICAgZnMubWtkaXJTeW5jKHRoaXMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIC8vIFNpbmNlIHdlIHBsYW4gb24gcmVtb3ZpbmcgdGhlIGRpc3RyaWJ1dGVkIHN5bnRoIG1lY2hhbmlzbSwgd2Ugbm8gbG9uZ2VyIGNhbGwgYE5vZGUuc3ludGhlc2l6ZWAsIGJ1dCByYXRoZXIgc2ltcGx5IGltcGxlbWVudFxuICAgIC8vIHRoZSBuZWNlc3Nhcnkgb3BlcmF0aW9ucy4gV2UgZG8gaG93ZXZlciB3YW50IHRvIHByZXNlcnZlIHRoZSBkaXN0cmlidXRlZCB2YWxpZGF0aW9uLlxuICAgIHZhbGlkYXRlKHRoaXMpO1xuXG4gICAgLy8gdGhpcyBpcyBraW5kIG9mIHN1Y2t5LCBldmVudHVhbGx5IEkgd291bGQgbGlrZSB0aGUgRGVwZW5kZW5jeUdyYXBoXG4gICAgLy8gdG8gYmUgYWJsZSB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbi5cbiAgICBjb25zdCBoYXNEZXBlbmRhbnRDaGFydHMgPSByZXNvbHZlRGVwZW5kZW5jaWVzKHRoaXMpO1xuICAgIGNvbnN0IGNoYXJ0cyA9IHRoaXMuY2hhcnRzO1xuXG4gICAgc3dpdGNoICh0aGlzLnlhbWxPdXRwdXRUeXBlKSB7XG4gICAgICBjYXNlIFlhbWxPdXRwdXRUeXBlLkZJTEVfUEVSX0FQUDpcbiAgICAgICAgbGV0IGFwaU9iamVjdExpc3Q6IEFwaU9iamVjdFtdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGFydCBvZiBjaGFydHMpIHtcbiAgICAgICAgICBhcGlPYmplY3RMaXN0LnB1c2goLi4uY2hhcnRUb0t1YmUoY2hhcnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFydHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIFlhbWwuc2F2ZShcbiAgICAgICAgICAgIHBhdGguam9pbih0aGlzLm91dGRpciwgYGFwcCR7dGhpcy5vdXRwdXRGaWxlRXh0ZW5zaW9ufWApLCAvLyBUaGVyZSBpcyBubyBcImFwcCBuYW1lXCIsIHNvIHdlIGp1c3QgaGFyZGNvZGUgdGhlIGZpbGUgbmFtZVxuICAgICAgICAgICAgYXBpT2JqZWN0TGlzdC5tYXAoKGFwaU9iamVjdCkgPT4gYXBpT2JqZWN0LnRvSnNvbigpKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFlhbWxPdXRwdXRUeXBlLkZJTEVfUEVSX0NIQVJUOlxuICAgICAgICBjb25zdCBuYW1lcjogQ2hhcnROYW1lciA9IGhhc0RlcGVuZGFudENoYXJ0cyA/IG5ldyBJbmRleGVkQ2hhcnROYW1lcigpIDogbmV3IFNpbXBsZUNoYXJ0TmFtZXIoKTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNoYXJ0IG9mIGNoYXJ0cykge1xuICAgICAgICAgIGNvbnN0IGNoYXJ0TmFtZSA9IG5hbWVyLm5hbWUoY2hhcnQpO1xuICAgICAgICAgIGNvbnN0IG9iamVjdHMgPSBjaGFydFRvS3ViZShjaGFydCk7XG5cbiAgICAgICAgICBZYW1sLnNhdmUocGF0aC5qb2luKHRoaXMub3V0ZGlyLCBjaGFydE5hbWUrdGhpcy5vdXRwdXRGaWxlRXh0ZW5zaW9uKSwgb2JqZWN0cy5tYXAob2JqID0+IG9iai50b0pzb24oKSkpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFlhbWxPdXRwdXRUeXBlLkZJTEVfUEVSX1JFU09VUkNFOlxuICAgICAgICBmb3IgKGNvbnN0IGNoYXJ0IG9mIGNoYXJ0cykge1xuICAgICAgICAgIGNvbnN0IGFwaU9iamVjdHMgPSBjaGFydFRvS3ViZShjaGFydCk7XG5cbiAgICAgICAgICBhcGlPYmplY3RzLmZvckVhY2goKGFwaU9iamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEoYXBpT2JqZWN0ID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7YCR7YXBpT2JqZWN0LmtpbmR9LiR7YXBpT2JqZWN0Lm1ldGFkYXRhLm5hbWV9YFxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXjAtOWEtekEtWi1fLl0vZywgJycpfWA7XG4gICAgICAgICAgICAgIFlhbWwuc2F2ZShwYXRoLmpvaW4odGhpcy5vdXRkaXIsIGZpbGVOYW1lK3RoaXMub3V0cHV0RmlsZUV4dGVuc2lvbiksIFthcGlPYmplY3QudG9Kc29uKCldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBZYW1sT3V0cHV0VHlwZS5GT0xERVJfUEVSX0NIQVJUX0ZJTEVfUEVSX1JFU09VUkNFOlxuICAgICAgICBjb25zdCBmb2xkZXJOYW1lcjogQ2hhcnROYW1lciA9IGhhc0RlcGVuZGFudENoYXJ0cyA/IG5ldyBJbmRleGVkQ2hhcnRGb2xkZXJOYW1lcigpIDogbmV3IFNpbXBsZUNoYXJ0Rm9sZGVyTmFtZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCBjaGFydCBvZiBjaGFydHMpIHtcbiAgICAgICAgICBjb25zdCBjaGFydE5hbWUgPSBmb2xkZXJOYW1lci5uYW1lKGNoYXJ0KTtcbiAgICAgICAgICBjb25zdCBhcGlPYmplY3RzID0gY2hhcnRUb0t1YmUoY2hhcnQpO1xuICAgICAgICAgIGNvbnN0IGZ1bGxPdXREaXIgPSBwYXRoLmpvaW4odGhpcy5vdXRkaXIsIGNoYXJ0TmFtZSk7XG4gICAgICAgICAgZnMubWtkaXJTeW5jKGZ1bGxPdXREaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgICAgICAgYXBpT2JqZWN0cy5mb3JFYWNoKChhcGlPYmplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICghKGFwaU9iamVjdCA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke2Ake2FwaU9iamVjdC5raW5kfS4ke2FwaU9iamVjdC5tZXRhZGF0YS5uYW1lfWBcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvW14wLTlhLXpBLVotXy5dL2csICcnKX1gO1xuICAgICAgICAgICAgICBZYW1sLnNhdmUocGF0aC5qb2luKGZ1bGxPdXREaXIsIGZpbGVOYW1lK3RoaXMub3V0cHV0RmlsZUV4dGVuc2lvbiksIFthcGlPYmplY3QudG9Kc29uKCldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgdGhlIGFwcCBpbnRvIGEgWUFNTCBzdHJpbmcuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIHdpdGggYWxsIFlBTUwgb2JqZWN0cyBhY3Jvc3MgYWxsIGNoYXJ0cyBpbiB0aGlzIGFwcC5cbiAgICovXG4gIHB1YmxpYyBzeW50aFlhbWwoKTogYW55IHtcbiAgICB2YWxpZGF0ZSh0aGlzKTtcblxuICAgIGNvbnN0IGNoYXJ0cyA9IHRoaXMuY2hhcnRzO1xuICAgIGNvbnN0IGRvY3M6IGFueVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNoYXJ0IG9mIGNoYXJ0cykge1xuICAgICAgY29uc3QgYXBpT2JqZWN0cyA9IGNoYXJ0VG9LdWJlKGNoYXJ0KTtcbiAgICAgIGRvY3MucHVzaCguLi5hcGlPYmplY3RzLm1hcChhcGlPYmplY3QgPT4gYXBpT2JqZWN0LnRvSnNvbigpKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFlhbWwuc3RyaW5naWZ5KC4uLmRvY3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKGFwcDogQXBwKSB7XG4gIGNvbnN0IGVycm9ycyA9IFtdO1xuICBmb3IgKGNvbnN0IGNoaWxkIG9mIGFwcC5ub2RlLmZpbmRBbGwoKSkge1xuICAgIGNvbnN0IGNoaWxkRXJyb3JzID0gY2hpbGQubm9kZS52YWxpZGF0ZSgpO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgY2hpbGRFcnJvcnMpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBbJHtjaGlsZC5ub2RlLnBhdGh9XSAke2Vycm9yfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JzLmpvaW4oJ1xcbiAgJyl9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURlcGVuZGVuY2llcyhhcHA6IEFwcCkge1xuXG4gIGxldCBoYXNEZXBlbmRhbnRDaGFydHMgPSBmYWxzZTtcblxuICBjb25zdCBkZXBzID0gW107XG4gIGZvciAoY29uc3QgY2hpbGQgb2YgYXBwLm5vZGUuZmluZEFsbCgpKSB7XG4gICAgZm9yIChjb25zdCBkZXAgb2YgY2hpbGQubm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgIGRlcHMucHVzaCh7IHNvdXJjZTogY2hpbGQsIHRhcmdldDogZGVwIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHtcblxuICAgIC8vIGNyZWF0ZSBleHBsaWNpdCBhcGkgb2JqZWN0IGRlcGVuZGVuY2llcyBmcm9tIGltcGxpY2l0IGNvbnN0cnVjdCBkZXBlbmRlbmNpZXNcbiAgICBjb25zdCB0YXJnZXRBcGlPYmplY3RzID0gTm9kZS5vZihkZXAudGFyZ2V0KS5maW5kQWxsKCkuZmlsdGVyKGMgPT4gYyBpbnN0YW5jZW9mIEFwaU9iamVjdCk7XG4gICAgY29uc3Qgc291cmNlQXBpT2JqZWN0cyA9IE5vZGUub2YoZGVwLnNvdXJjZSkuZmluZEFsbCgpLmZpbHRlcihjID0+IGMgaW5zdGFuY2VvZiBBcGlPYmplY3QpO1xuXG4gICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0QXBpT2JqZWN0cykge1xuICAgICAgZm9yIChjb25zdCBzb3VyY2Ugb2Ygc291cmNlQXBpT2JqZWN0cykge1xuICAgICAgICBpZiAodGFyZ2V0ICE9PSBzb3VyY2UpIHtcbiAgICAgICAgICBOb2RlLm9mKHNvdXJjZSkuYWRkRGVwZW5kZW5jeSh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIGFuIGV4cGxpY2l0IGNoYXJ0IGRlcGVuZGVuY3kgZnJvbSBpbXBsaWNpdCBjb25zdHJ1Y3QgZGVwZW5kZW5jaWVzXG4gICAgY29uc3Qgc291cmNlQ2hhcnQgPSBDaGFydC5vZihkZXAuc291cmNlKTtcbiAgICBjb25zdCB0YXJnZXRDaGFydCA9IENoYXJ0Lm9mKGRlcC50YXJnZXQpO1xuXG4gICAgaWYgKHNvdXJjZUNoYXJ0ICE9PSB0YXJnZXRDaGFydCkge1xuICAgICAgTm9kZS5vZihzb3VyY2VDaGFydCkuYWRkRGVwZW5kZW5jeSh0YXJnZXRDaGFydCk7XG4gICAgICBoYXNEZXBlbmRhbnRDaGFydHMgPSB0cnVlO1xuICAgIH1cblxuICB9XG5cbiAgY29uc3QgY2hhcnRzID0gbmV3IERlcGVuZGVuY3lHcmFwaChOb2RlLm9mKGFwcCkpLnRvcG9sb2d5KClcbiAgICAuZmlsdGVyKHggPT4geCBpbnN0YW5jZW9mIENoYXJ0KTtcblxuICBmb3IgKGNvbnN0IHBhcmVudENoYXJ0IG9mIGNoYXJ0cykge1xuICAgIGZvciAoY29uc3QgY2hpbGRDaGFydCBvZiBOb2RlLm9mKHBhcmVudENoYXJ0KS5jaGlsZHJlbi5maWx0ZXIoeCA9PiB4IGluc3RhbmNlb2YgQ2hhcnQpKSB7XG4gICAgICAvLyBjcmVhdGUgYW4gZXhwbGljaXQgY2hhcnQgZGVwZW5kZW5jeSBmcm9tIG5lc3RlZCBjaGFydCByZWxhdGlvbnNoaXBzXG4gICAgICBOb2RlLm9mKHBhcmVudENoYXJ0KS5hZGREZXBlbmRlbmN5KGNoaWxkQ2hhcnQpO1xuICAgICAgaGFzRGVwZW5kYW50Q2hhcnRzID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gaGFzRGVwZW5kYW50Q2hhcnRzO1xuXG59XG5cbmZ1bmN0aW9uIGNoYXJ0VG9LdWJlKGNoYXJ0OiBDaGFydCkge1xuICByZXR1cm4gbmV3IERlcGVuZGVuY3lHcmFwaChOb2RlLm9mKGNoYXJ0KSkudG9wb2xvZ3koKVxuICAgIC5maWx0ZXIoeCA9PiB4IGluc3RhbmNlb2YgQXBpT2JqZWN0KVxuICAgIC5maWx0ZXIoeCA9PiBDaGFydC5vZih4KSA9PT0gY2hhcnQpIC8vIGluY2x1ZGUgYW4gb2JqZWN0IG9ubHkgaW4gaXRzIGNsb3Nlc3QgcGFyZW50IGNoYXJ0XG4gICAgLm1hcCh4ID0+ICh4IGFzIEFwaU9iamVjdCkpO1xufVxuXG5pbnRlcmZhY2UgQ2hhcnROYW1lciB7XG4gIG5hbWUoY2hhcnQ6IENoYXJ0KTogc3RyaW5nO1xufVxuXG5jbGFzcyBTaW1wbGVDaGFydE5hbWVyIGltcGxlbWVudHMgQ2hhcnROYW1lciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgcHVibGljIG5hbWUoY2hhcnQ6IENoYXJ0KSB7XG4gICAgcmV0dXJuIGAke05hbWVzLnRvRG5zTGFiZWwoY2hhcnQpfWA7XG4gIH1cbn1cblxuY2xhc3MgSW5kZXhlZENoYXJ0TmFtZXIgZXh0ZW5kcyBTaW1wbGVDaGFydE5hbWVyIGltcGxlbWVudHMgQ2hhcnROYW1lciB7XG4gIHByaXZhdGUgaW5kZXg6IG51bWJlciA9IDA7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmFtZShjaGFydDogQ2hhcnQpIHtcbiAgICBjb25zdCBuYW1lID0gYCR7dGhpcy5pbmRleC50b1N0cmluZygpLnBhZFN0YXJ0KDQsICcwJyl9LSR7c3VwZXIubmFtZShjaGFydCl9YDtcbiAgICB0aGlzLmluZGV4Kys7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn1cblxuY2xhc3MgU2ltcGxlQ2hhcnRGb2xkZXJOYW1lciBpbXBsZW1lbnRzIENoYXJ0TmFtZXIge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHB1YmxpYyBuYW1lKGNoYXJ0OiBDaGFydCkge1xuICAgIHJldHVybiBOYW1lcy50b0Ruc0xhYmVsKGNoYXJ0KTtcbiAgfVxufVxuXG5jbGFzcyBJbmRleGVkQ2hhcnRGb2xkZXJOYW1lciBleHRlbmRzIFNpbXBsZUNoYXJ0Rm9sZGVyTmFtZXIgaW1wbGVtZW50cyBDaGFydE5hbWVyIHtcbiAgcHJpdmF0ZSBpbmRleDogbnVtYmVyID0gMDtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuYW1lKGNoYXJ0OiBDaGFydCkge1xuICAgIGNvbnN0IG5hbWUgPSBgJHt0aGlzLmluZGV4LnRvU3RyaW5nKCkucGFkU3RhcnQoNCwgJzAnKX0tJHtzdXBlci5uYW1lKGNoYXJ0KX1gO1xuICAgIHRoaXMuaW5kZXgrKztcbiAgICByZXR1cm4gbmFtZTtcbiAgfVxufSJdfQ==
|