@aws-cdk/aws-gamelift-alpha 2.219.0-alpha.0 → 2.221.0-alpha.0
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 +3 -3
- package/.jsii.tabl.json.gz +0 -0
- package/lib/alias.js +164 -112
- package/lib/build-fleet.js +202 -140
- package/lib/build.js +188 -133
- package/lib/content.js +10 -8
- package/lib/fleet-base.js +7 -12
- package/lib/game-server-group.js +239 -171
- package/lib/game-session-queue.js +239 -190
- package/lib/ingress-rule.js +7 -7
- package/lib/matchmaking-configuration.js +5 -7
- package/lib/matchmaking-ruleset-body.js +6 -4
- package/lib/matchmaking-ruleset.js +143 -95
- package/lib/queued-matchmaking-configuration.js +194 -140
- package/lib/script.js +160 -104
- package/lib/standalone-matchmaking-configuration.js +144 -91
- package/package.json +9 -8
package/lib/build.js
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
3
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
4
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
5
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
6
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
7
|
+
var _, done = false;
|
|
8
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
9
|
+
var context = {};
|
|
10
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
11
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
12
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
13
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
14
|
+
if (kind === "accessor") {
|
|
15
|
+
if (result === void 0) continue;
|
|
16
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
17
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
18
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
19
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
20
|
+
}
|
|
21
|
+
else if (_ = accept(result)) {
|
|
22
|
+
if (kind === "field") initializers.unshift(_);
|
|
23
|
+
else descriptor[key] = _;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
27
|
+
done = true;
|
|
28
|
+
};
|
|
29
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
30
|
+
var useValue = arguments.length > 2;
|
|
31
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
32
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
33
|
+
}
|
|
34
|
+
return useValue ? value : void 0;
|
|
7
35
|
};
|
|
8
|
-
var _a, _b;
|
|
9
|
-
var Build_1;
|
|
10
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
37
|
exports.Build = exports.OperatingSystem = exports.BuildBase = void 0;
|
|
12
38
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
@@ -21,10 +47,9 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
|
21
47
|
* Base class for new and imported GameLift server build.
|
|
22
48
|
*/
|
|
23
49
|
class BuildBase extends cdk.Resource {
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildBase", version: "2.221.0-alpha.0" };
|
|
24
51
|
}
|
|
25
52
|
exports.BuildBase = BuildBase;
|
|
26
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
-
BuildBase[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.BuildBase", version: "2.219.0-alpha.0" };
|
|
28
53
|
/**
|
|
29
54
|
* The operating system that the game server binaries are built to run on.
|
|
30
55
|
*/
|
|
@@ -63,139 +88,169 @@ var OperatingSystem;
|
|
|
63
88
|
*
|
|
64
89
|
* @resource AWS::GameLift::Build
|
|
65
90
|
*/
|
|
66
|
-
let Build =
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return new Build_1(scope, id, {
|
|
80
|
-
content: content_1.Content.fromAsset(path, options),
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Import a build into CDK using its identifier
|
|
85
|
-
*/
|
|
86
|
-
static fromBuildId(scope, id, buildId) {
|
|
87
|
-
return this.fromBuildAttributes(scope, id, { buildId });
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Import a build into CDK using its ARN
|
|
91
|
-
*/
|
|
92
|
-
static fromBuildArn(scope, id, buildArn) {
|
|
93
|
-
return this.fromBuildAttributes(scope, id, { buildArn });
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Import an existing build from its attributes.
|
|
97
|
-
*/
|
|
98
|
-
static fromBuildAttributes(scope, id, attrs) {
|
|
99
|
-
try {
|
|
100
|
-
jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_BuildAttributes(attrs);
|
|
91
|
+
let Build = (() => {
|
|
92
|
+
let _classDecorators = [prop_injectable_1.propertyInjectable];
|
|
93
|
+
let _classDescriptor;
|
|
94
|
+
let _classExtraInitializers = [];
|
|
95
|
+
let _classThis;
|
|
96
|
+
let _classSuper = BuildBase;
|
|
97
|
+
var Build = class extends _classSuper {
|
|
98
|
+
static { _classThis = this; }
|
|
99
|
+
static {
|
|
100
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
101
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
102
|
+
Build = _classThis = _classDescriptor.value;
|
|
103
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
101
104
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Build", version: "2.221.0-alpha.0" };
|
|
106
|
+
/** Uniquely identifies this class. */
|
|
107
|
+
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.Build';
|
|
108
|
+
/**
|
|
109
|
+
* Create a new Build from s3 content
|
|
110
|
+
*/
|
|
111
|
+
static fromBucket(scope, id, bucket, key, objectVersion) {
|
|
112
|
+
return new Build(scope, id, {
|
|
113
|
+
content: content_1.Content.fromBucket(bucket, key, objectVersion),
|
|
114
|
+
});
|
|
107
115
|
}
|
|
108
|
-
|
|
109
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Create a new Build from asset content
|
|
118
|
+
*/
|
|
119
|
+
static fromAsset(scope, id, path, options) {
|
|
120
|
+
return new Build(scope, id, {
|
|
121
|
+
content: content_1.Content.fromAsset(path, options),
|
|
122
|
+
});
|
|
110
123
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Import a build into CDK using its identifier
|
|
126
|
+
*/
|
|
127
|
+
static fromBuildId(scope, id, buildId) {
|
|
128
|
+
return this.fromBuildAttributes(scope, id, { buildId });
|
|
115
129
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
});
|
|
122
|
-
class Import extends BuildBase {
|
|
123
|
-
constructor(s, i) {
|
|
124
|
-
super(s, i, {
|
|
125
|
-
environmentFromArn: buildArn,
|
|
126
|
-
});
|
|
127
|
-
this.buildId = buildId;
|
|
128
|
-
this.buildArn = buildArn;
|
|
129
|
-
this.grantPrincipal = attrs.role ?? new iam.UnknownPrincipal({ resource: this });
|
|
130
|
-
this.role = attrs.role;
|
|
131
|
-
}
|
|
130
|
+
/**
|
|
131
|
+
* Import a build into CDK using its ARN
|
|
132
|
+
*/
|
|
133
|
+
static fromBuildArn(scope, id, buildArn) {
|
|
134
|
+
return this.fromBuildAttributes(scope, id, { buildArn });
|
|
132
135
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
136
|
+
/**
|
|
137
|
+
* Import an existing build from its attributes.
|
|
138
|
+
*/
|
|
139
|
+
static fromBuildAttributes(scope, id, attrs) {
|
|
140
|
+
try {
|
|
141
|
+
jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_BuildAttributes(attrs);
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
145
|
+
Error.captureStackTrace(error, this.fromBuildAttributes);
|
|
146
|
+
}
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
if (!attrs.buildId && !attrs.buildArn) {
|
|
150
|
+
throw new Error('Either buildId or buildArn must be provided in BuildAttributes');
|
|
151
|
+
}
|
|
152
|
+
const buildId = attrs.buildId ??
|
|
153
|
+
cdk.Stack.of(scope).splitArn(attrs.buildArn, cdk.ArnFormat.SLASH_RESOURCE_NAME).resourceName;
|
|
154
|
+
if (!buildId) {
|
|
155
|
+
throw new Error(`No build identifier found in ARN: '${attrs.buildArn}'`);
|
|
145
156
|
}
|
|
146
|
-
|
|
157
|
+
const buildArn = attrs.buildArn ?? cdk.Stack.of(scope).formatArn({
|
|
158
|
+
service: 'gamelift',
|
|
159
|
+
resource: 'build',
|
|
160
|
+
resourceName: attrs.buildId,
|
|
161
|
+
arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
|
|
162
|
+
});
|
|
163
|
+
class Import extends BuildBase {
|
|
164
|
+
buildId = buildId;
|
|
165
|
+
buildArn = buildArn;
|
|
166
|
+
grantPrincipal = attrs.role ?? new iam.UnknownPrincipal({ resource: this });
|
|
167
|
+
role = attrs.role;
|
|
168
|
+
constructor(s, i) {
|
|
169
|
+
super(s, i, {
|
|
170
|
+
environmentFromArn: buildArn,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return new Import(scope, id);
|
|
147
175
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
176
|
+
/**
|
|
177
|
+
* The Identifier of the build.
|
|
178
|
+
*/
|
|
179
|
+
buildId;
|
|
180
|
+
/**
|
|
181
|
+
* The ARN of the build.
|
|
182
|
+
*/
|
|
183
|
+
buildArn;
|
|
184
|
+
/**
|
|
185
|
+
* The IAM role GameLift assumes to acccess server build content.
|
|
186
|
+
*/
|
|
187
|
+
role;
|
|
188
|
+
/**
|
|
189
|
+
* The principal this GameLift Build is using.
|
|
190
|
+
*/
|
|
191
|
+
grantPrincipal;
|
|
192
|
+
constructor(scope, id, props) {
|
|
193
|
+
super(scope, id, {
|
|
194
|
+
physicalName: props.buildName,
|
|
195
|
+
});
|
|
196
|
+
try {
|
|
197
|
+
jsiiDeprecationWarnings._aws_cdk_aws_gamelift_alpha_BuildProps(props);
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
201
|
+
Error.captureStackTrace(error, Build);
|
|
202
|
+
}
|
|
203
|
+
throw error;
|
|
153
204
|
}
|
|
205
|
+
// Enhanced CDK Analytics Telemetry
|
|
206
|
+
(0, metadata_resource_1.addConstructMetadata)(this, props);
|
|
207
|
+
if (props.buildName && !cdk.Token.isUnresolved(props.buildName)) {
|
|
208
|
+
if (props.buildName.length > 1024) {
|
|
209
|
+
throw new Error(`Build name can not be longer than 1024 characters but has ${props.buildName.length} characters.`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
this.validateServerSdkVersion(props.serverSdkVersion);
|
|
213
|
+
this.role = props.role ?? new iam.Role(this, 'ServiceRole', {
|
|
214
|
+
assumedBy: new iam.ServicePrincipal('gamelift.amazonaws.com'),
|
|
215
|
+
});
|
|
216
|
+
this.grantPrincipal = this.role;
|
|
217
|
+
const content = props.content.bind(this, this.role);
|
|
218
|
+
const resource = new aws_gamelift_1.CfnBuild(this, 'Resource', {
|
|
219
|
+
name: props.buildName,
|
|
220
|
+
version: props.buildVersion,
|
|
221
|
+
operatingSystem: props.operatingSystem,
|
|
222
|
+
storageLocation: {
|
|
223
|
+
bucket: content.s3Location && content.s3Location.bucketName,
|
|
224
|
+
key: content.s3Location && content.s3Location.objectKey,
|
|
225
|
+
objectVersion: content.s3Location && content.s3Location.objectVersion,
|
|
226
|
+
roleArn: this.role.roleArn,
|
|
227
|
+
},
|
|
228
|
+
serverSdkVersion: props.serverSdkVersion,
|
|
229
|
+
});
|
|
230
|
+
resource.node.addDependency(this.role);
|
|
231
|
+
this.buildId = this.getResourceNameAttribute(resource.ref);
|
|
232
|
+
this.buildArn = cdk.Stack.of(scope).formatArn({
|
|
233
|
+
service: 'gamelift',
|
|
234
|
+
resource: 'build',
|
|
235
|
+
resourceName: this.buildId,
|
|
236
|
+
arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
|
|
237
|
+
});
|
|
154
238
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
operatingSystem: props.operatingSystem,
|
|
165
|
-
storageLocation: {
|
|
166
|
-
bucket: content.s3Location && content.s3Location.bucketName,
|
|
167
|
-
key: content.s3Location && content.s3Location.objectKey,
|
|
168
|
-
objectVersion: content.s3Location && content.s3Location.objectVersion,
|
|
169
|
-
roleArn: this.role.roleArn,
|
|
170
|
-
},
|
|
171
|
-
serverSdkVersion: props.serverSdkVersion,
|
|
172
|
-
});
|
|
173
|
-
resource.node.addDependency(this.role);
|
|
174
|
-
this.buildId = this.getResourceNameAttribute(resource.ref);
|
|
175
|
-
this.buildArn = cdk.Stack.of(scope).formatArn({
|
|
176
|
-
service: 'gamelift',
|
|
177
|
-
resource: 'build',
|
|
178
|
-
resourceName: this.buildId,
|
|
179
|
-
arnFormat: cdk.ArnFormat.SLASH_RESOURCE_NAME,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
validateServerSdkVersion(serverSdkVersion) {
|
|
183
|
-
if (serverSdkVersion === undefined || cdk.Token.isUnresolved(serverSdkVersion))
|
|
184
|
-
return;
|
|
185
|
-
if (!serverSdkVersion.match(/^\d+\.\d+\.\d+$/)) {
|
|
186
|
-
throw new Error(`serverSdkVersion must be in the 0.0.0 format, got \'${serverSdkVersion}\'.`);
|
|
239
|
+
validateServerSdkVersion(serverSdkVersion) {
|
|
240
|
+
if (serverSdkVersion === undefined || cdk.Token.isUnresolved(serverSdkVersion))
|
|
241
|
+
return;
|
|
242
|
+
if (!serverSdkVersion.match(/^\d+\.\d+\.\d+$/)) {
|
|
243
|
+
throw new Error(`serverSdkVersion must be in the 0.0.0 format, got \'${serverSdkVersion}\'.`);
|
|
244
|
+
}
|
|
245
|
+
if (serverSdkVersion.length > 128) {
|
|
246
|
+
throw new Error(`serverSdkVersion length must be smaller than or equal to 128, got ${serverSdkVersion.length}.`);
|
|
247
|
+
}
|
|
187
248
|
}
|
|
188
|
-
|
|
189
|
-
|
|
249
|
+
static {
|
|
250
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
190
251
|
}
|
|
191
|
-
}
|
|
192
|
-
|
|
252
|
+
};
|
|
253
|
+
return Build = _classThis;
|
|
254
|
+
})();
|
|
193
255
|
exports.Build = Build;
|
|
194
|
-
_b = JSII_RTTI_SYMBOL_1;
|
|
195
|
-
Build[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.Build", version: "2.219.0-alpha.0" };
|
|
196
|
-
/** Uniquely identifies this class. */
|
|
197
|
-
Build.PROPERTY_INJECTION_ID = '@aws-cdk.aws-gamelift-alpha.Build';
|
|
198
|
-
exports.Build = Build = Build_1 = __decorate([
|
|
199
|
-
prop_injectable_1.propertyInjectable
|
|
200
|
-
], Build);
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTJDO0FBRzNDLHdDQUF3QztBQUV4Qyx1Q0FBb0M7QUFDcEMsMkRBQW9EO0FBQ3BELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUEyQjFFOztHQUVHO0FBQ0gsTUFBc0IsU0FBVSxTQUFRLEdBQUcsQ0FBQyxRQUFROztBQUFwRCw4QkFZQzs7O0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGVBNkJYO0FBN0JELFdBQVksZUFBZTtJQUN6Qjs7T0FFRztJQUNILGdEQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsb0RBQWlDLENBQUE7SUFFakM7O09BRUc7SUFDSCwwREFBdUMsQ0FBQTtJQUV2Qzs7Ozs7O09BTUc7SUFDSCxnREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILGdEQUE2QixDQUFBO0FBQy9CLENBQUMsRUE3QlcsZUFBZSwrQkFBZixlQUFlLFFBNkIxQjtBQTZGRDs7Ozs7OztHQU9HO0FBRUksSUFBTSxLQUFLLGFBQVgsTUFBTSxLQUFNLFNBQVEsU0FBUztJQUlsQzs7T0FFRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsTUFBa0IsRUFBRSxHQUFXLEVBQUUsYUFBc0I7UUFDckcsT0FBTyxJQUFJLE9BQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxpQkFBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQztTQUN4RCxDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxJQUFZLEVBQUUsT0FBZ0M7UUFDM0YsT0FBTyxJQUFJLE9BQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxpQkFBTyxDQUFD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QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxVQUFVO1lBQ25CLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTztZQUMxQixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUI7U0FDN0MsQ0FBQyxDQUFDO0tBQ0o7SUFFTyx3QkFBd0IsQ0FBQyxnQkFBeUI7UUFDeEQsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7WUFBRSxPQUFPO1FBQ3ZGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELGdCQUFnQixLQUFLLENBQUMsQ0FBQztRQUNoRyxDQUFDO1FBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuSCxDQUFDO0tBQ0Y7O0FBaEpVLHNCQUFLOzs7QUFDaEIsc0NBQXNDO0FBQ2YsMkJBQXFCLEdBQVcsbUNBQW1DLEFBQTlDLENBQStDO2dCQUZoRixLQUFLO0lBRGpCLG9DQUFrQjtHQUNOLEtBQUssQ0FpSmpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzX2Fzc2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gJy4vY29udGVudCc7XG5pbXBvcnQgeyBDZm5CdWlsZCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1nYW1lbGlmdCc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5cbi8qKlxuICogWW91ciBjdXN0b20tYnVpbHQgZ2FtZSBzZXJ2ZXIgc29mdHdhcmUgdGhhdCBydW5zIG9uIEdhbWVMaWZ0IGFuZCBob3N0cyBnYW1lIHNlc3Npb25zIGZvciB5b3VyIHBsYXllcnMuXG4gKiBBIGdhbWUgYnVpbGQgcmVwcmVzZW50cyB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgcnVuIHlvdXIgZ2FtZSBzZXJ2ZXIgb24gYSBwYXJ0aWN1bGFyIG9wZXJhdGluZyBzeXN0ZW0uXG4gKiBZb3UgY2FuIGhhdmUgbWFueSBkaWZmZXJlbnQgYnVpbGRzLCBzdWNoIGFzIGZvciBkaWZmZXJlbnQgZmxhdm9ycyBvZiB5b3VyIGdhbWUuXG4gKiBUaGUgZ2FtZSBidWlsZCBtdXN0IGJlIGludGVncmF0ZWQgd2l0aCB0aGUgR2FtZUxpZnQgc2VydmljZS5cbiAqIFlvdSB1cGxvYWQgZ2FtZSBidWlsZCBmaWxlcyB0byB0aGUgR2FtZUxpZnQgc2VydmljZSBpbiB0aGUgUmVnaW9ucyB3aGVyZSB5b3UgcGxhbiB0byBzZXQgdXAgZmxlZXRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9nYW1lbGlmdC1idWlsZC1jbGktdXBsb2FkaW5nLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnVpbGQgZXh0ZW5kcyBjZGsuSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgSWRlbnRpZmllciBvZiB0aGUgYnVpbGQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnVpbGRcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBuZXcgYW5kIGltcG9ydGVkIEdhbWVMaWZ0IHNlcnZlciBidWlsZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJ1aWxkQmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElCdWlsZCB7XG4gIC8qKlxuICAgKiBUaGUgSWRlbnRpZmllciBvZiB0aGUgYnVpbGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBidWlsZC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBidWlsZEFybjogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG59XG5cbi8qKlxuICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB0aGUgZ2FtZSBzZXJ2ZXIgYmluYXJpZXMgYXJlIGJ1aWx0IHRvIHJ1biBvbi5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0aW5nU3lzdGVtIHtcbiAgLyoqXG4gICAqIEFtYXpvbiBMaW51eCBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKi9cbiAgQU1BWk9OX0xJTlVYID0gJ0FNQVpPTl9MSU5VWCcsXG5cbiAgLyoqXG4gICAqIEFtYXpvbiBMaW51eCAyIG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqL1xuICBBTUFaT05fTElOVVhfMiA9ICdBTUFaT05fTElOVVhfMicsXG5cbiAgLyoqXG4gICAqIEFtYXpvbiBMaW51eCAyMDIzIG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqL1xuICBBTUFaT05fTElOVVhfMjAyMyA9ICdBTUFaT05fTElOVVhfMjAyMycsXG5cbiAgLyoqXG4gICAqIFdpbmRvd3MgU2VydmVyIDIwMTIgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgSWYgeW91IGhhdmUgYWN0aXZlIGZsZWV0cyB1c2luZyB0aGUgV2luZG93cyBTZXJ2ZXIgMjAxMiBvcGVyYXRpbmcgc3lzdGVtLFxuICAgKiB5b3UgY2FuIGNvbnRpbnVlIHRvIGNyZWF0ZSBuZXcgYnVpbGRzIHVzaW5nIHRoaXMgT1MgdW50aWwgT2N0b2JlciAxMCwgMjAyMywgd2hlbiBNaWNyb3NvZnQgZW5kcyBpdHMgc3VwcG9ydC5cbiAgICogQWxsIG90aGVycyBtdXN0IHVzZSBXaW5kb3dzIFNlcnZlciAyMDE2IHdoZW4gY3JlYXRpbmcgbmV3IFdpbmRvd3MtYmFzZWQgYnVpbGRzLlxuICAgKi9cbiAgV0lORE9XU18yMDEyID0gJ1dJTkRPV1NfMjAxMicsXG5cbiAgLyoqXG4gICAqIFdpbmRvd3MgU2VydmVyIDIwMTYgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICovXG4gIFdJTkRPV1NfMjAxNiA9ICdXSU5ET1dTXzIwMTYnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBCdWlsZCBjb250ZW50IGRlZmluZWQgb3V0c2lkZSBvZiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBidWlsZFxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgYGJ1aWxkQXJuYCBhbmQgYGJ1aWxkSWRgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgYnVpbGRJZGAuXG4gICAqL1xuICByZWFkb25seSBidWlsZEFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGJ1aWxkXG4gICAqXG4gICAqIEF0IGxlYXN0IG9uZSBvZiBgYnVpbGRJZGAgYW5kIGBidWlsZEFybmAgIG11c3QgYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGRlcml2ZWQgZnJvbSBgYnVpbGRBcm5gLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IEdhbWVMaWZ0IHRvIGFjY2VzcyBzZXJ2ZXIgYnVpbGQgaW4gUzMuXG4gICAqIEBkZWZhdWx0IHRoZSBpbXBvcnRlZCBmbGVldCBjYW5ub3QgYmUgZ3JhbnRlZCBhY2Nlc3MgdG8gb3RoZXIgcmVzb3VyY2VzIGFzIGFuIGBpYW0uSUdyYW50YWJsZWAuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IGJ1aWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgYnVpbGRcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9mIHRoaXMgYnVpbGRcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW5nIHN5c3RlbSB0aGF0IHRoZSBnYW1lIHNlcnZlciBiaW5hcmllcyBhcmUgYnVpbHQgdG8gcnVuIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyB2ZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpbmdTeXN0ZW0/OiBPcGVyYXRpbmdTeXN0ZW07XG5cbiAgLyoqXG4gICAqIFRoZSBnYW1lIGJ1aWxkIGZpbGUgc3RvcmFnZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudDogQ29udGVudDtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc3VtZWQgYnkgR2FtZUxpZnQgdG8gYWNjZXNzIHNlcnZlciBidWlsZCBpbiBTMy5cbiAgICogSWYgcHJvdmlkaW5nIGEgY3VzdG9tIHJvbGUsIGl0IG5lZWRzIHRvIHRydXN0IHRoZSBHYW1lTGlmdCBzZXJ2aWNlIHByaW5jaXBhbCAoZ2FtZWxpZnQuYW1hem9uYXdzLmNvbSkgYW5kIGJlIGdyYW50ZWQgc3VmZmljaWVudCBwZXJtaXNzaW9uc1xuICAgKiB0byBoYXZlIFJlYWQgYWNjZXNzIHRvIGEgc3BlY2lmaWMga2V5IGNvbnRlbnQgaW50byBhIHNwZWNpZmljIFMzIGJ1Y2tldC5cbiAgICogQmVsb3cgYW4gZXhhbXBsZSBvZiByZXF1aXJlZCBwZXJtaXNzaW9uOlxuICAgKiB7XG4gICAqICBcIlZlcnNpb25cIjogXCIyMDEyLTEwLTE3XCIsXG4gICAqICBcIlN0YXRlbWVudFwiOiBbe1xuICAgKiAgICAgICAgXCJFZmZlY3RcIjogXCJBbGxvd1wiLFxuICAgKiAgICAgICAgXCJBY3Rpb25cIjogW1xuICAgKiAgICAgICAgICAgIFwiczM6R2V0T2JqZWN0XCIsXG4gICAqICAgICAgICAgICAgXCJzMzpHZXRPYmplY3RWZXJzaW9uXCJcbiAgICogICAgICAgIF0sXG4gICAqICAgICAgICBcIlJlc291cmNlXCI6IFwiYXJuOmF3czpzMzo6OmJ1Y2tldC1uYW1lL29iamVjdC1uYW1lXCJcbiAgICogIH1dXG4gICAqIH1cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3NlY3VyaXR5X2lhbV9pZC1iYXNlZC1wb2xpY3ktZXhhbXBsZXMuaHRtbCNzZWN1cml0eV9pYW1faWQtYmFzZWQtcG9saWN5LWV4YW1wbGVzLWFjY2Vzcy1zdG9yYWdlLWxvY1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgcm9sZSB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBkZWZhdWx0IHBlcm1pc3Npb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQSBzZXJ2ZXIgU0RLIHZlcnNpb24geW91IHVzZWQgd2hlbiBpbnRlZ3JhdGluZyB5b3VyIGdhbWUgc2VydmVyIGJ1aWxkIHdpdGggQW1hem9uIEdhbWVMaWZ0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvaW50ZWdyYXRpb24tY3VzdG9tLWludHJvLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSA0LjAuMlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmVyU2RrVmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEdhbWVMaWZ0IGJ1aWxkLCB0aGF0IGlzIGluc3RhbGxlZCBhbmQgcnVucyBvbiBpbnN0YW5jZXMgaW4gYW4gQW1hem9uIEdhbWVMaWZ0IGZsZWV0LiBJdCBjb25zaXN0cyBvZlxuICogYSB6aXAgZmlsZSB3aXRoIGFsbCBvZiB0aGUgY29tcG9uZW50cyBvZiB0aGUgZ2FtZSBzZXJ2ZXIgYnVpbGQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2dhbWVsaWZ0LWJ1aWxkLWNsaS11cGxvYWRpbmcuaHRtbFxuICpcbiAqIEByZXNvdXJjZSBBV1M6OkdhbWVMaWZ0OjpCdWlsZFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgQnVpbGQgZXh0ZW5kcyBCdWlsZEJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nYW1lbGlmdC1hbHBoYS5CdWlsZCc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBCdWlsZCBmcm9tIHMzIGNvbnRlbnRcbiAgICovXG4gIHN0YXRpYyBmcm9tQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcsIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgY29udGVudDogQ29udGVudC5mcm9tQnVja2V0KGJ1Y2tldCwga2V5LCBvYmplY3RWZXJzaW9uKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgQnVpbGQgZnJvbSBhc3NldCBjb250ZW50XG4gICAqL1xuICBzdGF0aWMgZnJvbUFzc2V0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgY29udGVudDogQ29udGVudC5mcm9tQXNzZXQocGF0aCwgb3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGEgYnVpbGQgaW50byBDREsgdXNpbmcgaXRzIGlkZW50aWZpZXJcbiAgICovXG4gIHN0YXRpYyBmcm9tQnVpbGRJZChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBidWlsZElkOiBzdHJpbmcpOiBJQnVpbGQge1xuICAgIHJldHVybiB0aGlzLmZyb21CdWlsZEF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7IGJ1aWxkSWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGEgYnVpbGQgaW50byBDREsgdXNpbmcgaXRzIEFSTlxuICAgKi9cbiAgc3RhdGljIGZyb21CdWlsZEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBidWlsZEFybjogc3RyaW5nKTogSUJ1aWxkIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQnVpbGRBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBidWlsZEFybiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgYnVpbGQgZnJvbSBpdHMgYXR0cmlidXRlcy5cbiAgICovXG4gIHN0YXRpYyBmcm9tQnVpbGRBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBCdWlsZEF0dHJpYnV0ZXMpOiBJQnVpbGQge1xuICAgIGlmICghYXR0cnMuYnVpbGRJZCAmJiAhYXR0cnMuYnVpbGRBcm4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIGJ1aWxkSWQgb3IgYnVpbGRBcm4gbXVzdCBiZSBwcm92aWRlZCBpbiBCdWlsZEF0dHJpYnV0ZXMnKTtcbiAgICB9XG4gICAgY29uc3QgYnVpbGRJZCA9IGF0dHJzLmJ1aWxkSWQgPz9cbiAgICAgIGNkay5TdGFjay5vZihzY29wZSkuc3BsaXRBcm4oYXR0cnMuYnVpbGRBcm4hLCBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZTtcblxuICAgIGlmICghYnVpbGRJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBidWlsZCBpZGVudGlmaWVyIGZvdW5kIGluIEFSTjogJyR7YXR0cnMuYnVpbGRBcm59J2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1aWxkQXJuID0gYXR0cnMuYnVpbGRBcm4gPz8gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dhbWVsaWZ0JyxcbiAgICAgIHJlc291cmNlOiAnYnVpbGQnLFxuICAgICAgcmVzb3VyY2VOYW1lOiBhdHRycy5idWlsZElkLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQnVpbGRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBidWlsZElkID0gYnVpbGRJZCE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRBcm4gPSBidWlsZEFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IGF0dHJzLnJvbGUgPz8gbmV3IGlhbS5Vbmtub3duUHJpbmNpcGFsKHsgcmVzb3VyY2U6IHRoaXMgfSk7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcm9sZSA9IGF0dHJzLnJvbGU7XG5cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGksIHtcbiAgICAgICAgICBlbnZpcm9ubWVudEZyb21Bcm46IGJ1aWxkQXJuLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgSWRlbnRpZmllciBvZiB0aGUgYnVpbGQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBidWlsZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWlsZEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgR2FtZUxpZnQgYXNzdW1lcyB0byBhY2NjZXNzIHNlcnZlciBidWlsZCBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0aGlzIEdhbWVMaWZ0IEJ1aWxkIGlzIHVzaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVpbGRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5idWlsZE5hbWUsXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuYnVpbGROYW1lICYmICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmJ1aWxkTmFtZSkpIHtcbiAgICAgIGlmIChwcm9wcy5idWlsZE5hbWUubGVuZ3RoID4gMTAyNCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEJ1aWxkIG5hbWUgY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAxMDI0IGNoYXJhY3RlcnMgYnV0IGhhcyAke3Byb3BzLmJ1aWxkTmFtZS5sZW5ndGh9IGNoYXJhY3RlcnMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0ZVNlcnZlclNka1ZlcnNpb24ocHJvcHMuc2VydmVyU2RrVmVyc2lvbik7XG5cbiAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlID8/IG5ldyBpYW0uUm9sZSh0aGlzLCAnU2VydmljZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZ2FtZWxpZnQuYW1hem9uYXdzLmNvbScpLFxuICAgIH0pO1xuICAgIHRoaXMuZ3JhbnRQcmluY2lwYWwgPSB0aGlzLnJvbGU7XG4gICAgY29uc3QgY29udGVudCA9IHByb3BzLmNvbnRlbnQuYmluZCh0aGlzLCB0aGlzLnJvbGUpO1xuXG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ2ZuQnVpbGQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogcHJvcHMuYnVpbGROYW1lLFxuICAgICAgdmVyc2lvbjogcHJvcHMuYnVpbGRWZXJzaW9uLFxuICAgICAgb3BlcmF0aW5nU3lzdGVtOiBwcm9wcy5vcGVyYXRpbmdTeXN0ZW0sXG4gICAgICBzdG9yYWdlTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0OiBjb250ZW50LnMzTG9jYXRpb24gJiYgY29udGVudC5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgIGtleTogY29udGVudC5zM0xvY2F0aW9uICYmIGNvbnRlbnQuczNMb2NhdGlvbi5vYmplY3RLZXksXG4gICAgICAgIG9iamVjdFZlcnNpb246IGNvbnRlbnQuczNMb2NhdGlvbiAmJiBjb250ZW50LnMzTG9jYXRpb24ub2JqZWN0VmVyc2lvbixcbiAgICAgICAgcm9sZUFybjogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICB9LFxuICAgICAgc2VydmVyU2RrVmVyc2lvbjogcHJvcHMuc2VydmVyU2RrVmVyc2lvbixcbiAgICB9KTtcblxuICAgIHJlc291cmNlLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLnJvbGUpO1xuXG4gICAgdGhpcy5idWlsZElkID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUocmVzb3VyY2UucmVmKTtcbiAgICB0aGlzLmJ1aWxkQXJuID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dhbWVsaWZ0JyxcbiAgICAgIHJlc291cmNlOiAnYnVpbGQnLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLmJ1aWxkSWQsXG4gICAgICBhcm5Gb3JtYXQ6IGNkay5Bcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVTZXJ2ZXJTZGtWZXJzaW9uKHNlcnZlclNka1ZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICBpZiAoc2VydmVyU2RrVmVyc2lvbiA9PT0gdW5kZWZpbmVkIHx8IGNkay5Ub2tlbi5pc1VucmVzb2x2ZWQoc2VydmVyU2RrVmVyc2lvbikpIHJldHVybjtcbiAgICBpZiAoIXNlcnZlclNka1ZlcnNpb24ubWF0Y2goL15cXGQrXFwuXFxkK1xcLlxcZCskLykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2VydmVyU2RrVmVyc2lvbiBtdXN0IGJlIGluIHRoZSAwLjAuMCBmb3JtYXQsIGdvdCBcXCcke3NlcnZlclNka1ZlcnNpb259XFwnLmApO1xuICAgIH1cbiAgICBpZiAoc2VydmVyU2RrVmVyc2lvbi5sZW5ndGggPiAxMjgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2VydmVyU2RrVmVyc2lvbiBsZW5ndGggbXVzdCBiZSBzbWFsbGVyIHRoYW4gb3IgZXF1YWwgdG8gMTI4LCBnb3QgJHtzZXJ2ZXJTZGtWZXJzaW9uLmxlbmd0aH0uYCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBMkM7QUFHM0Msd0NBQXdDO0FBRXhDLHVDQUFvQztBQUNwQywyREFBb0Q7QUFDcEQsOEVBQThFO0FBQzlFLDBFQUEwRTtBQTJCMUU7O0dBRUc7QUFDSCxNQUFzQixTQUFVLFNBQVEsR0FBRyxDQUFDLFFBQVE7OztBQUFwRCw4QkFZQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxlQTZCWDtBQTdCRCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCxnREFBNkIsQ0FBQTtJQUU3Qjs7T0FFRztJQUNILG9EQUFpQyxDQUFBO0lBRWpDOztPQUVHO0lBQ0gsMERBQXVDLENBQUE7SUFFdkM7Ozs7OztPQU1HO0lBQ0gsZ0RBQTZCLENBQUE7SUFFN0I7O09BRUc7SUFDSCxnREFBNkIsQ0FBQTtBQUMvQixDQUFDLEVBN0JXLGVBQWUsK0JBQWYsZUFBZSxRQTZCMUI7QUE2RkQ7Ozs7Ozs7R0FPRztJQUVVLEtBQUs7NEJBRGpCLG9DQUFrQjs7OztzQkFDUSxTQUFTO3FCQUFqQixTQUFRLFdBQVM7Ozs7WUFBcEMsNktBaUpDOzs7OztRQWhKQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLG1DQUFtQyxDQUFDO1FBRTNGOztXQUVHO1FBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxNQUFrQixFQUFFLEdBQVcsRUFBRSxhQUFzQjtZQUNyRyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7Z0JBQzFCLE9BQU8sRUFBRSxpQkFBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQzthQUN4RCxDQUFDLENBQUM7U0FDSjtRQUVEOztXQUVHO1FBQ0gsTUFBTSxDQUFDLFNBQVMs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RyxDQUFDLENBQUM7WUFDbkgsQ0FBQztTQUNGOztZQWhKVSx1REFBSzs7Ozs7QUFBTCxzQkFBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENvbnRlbnQgfSBmcm9tICcuL2NvbnRlbnQnO1xuaW1wb3J0IHsgQ2ZuQnVpbGQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2FtZWxpZnQnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuXG4vKipcbiAqIFlvdXIgY3VzdG9tLWJ1aWx0IGdhbWUgc2VydmVyIHNvZnR3YXJlIHRoYXQgcnVucyBvbiBHYW1lTGlmdCBhbmQgaG9zdHMgZ2FtZSBzZXNzaW9ucyBmb3IgeW91ciBwbGF5ZXJzLlxuICogQSBnYW1lIGJ1aWxkIHJlcHJlc2VudHMgdGhlIHNldCBvZiBmaWxlcyB0aGF0IHJ1biB5b3VyIGdhbWUgc2VydmVyIG9uIGEgcGFydGljdWxhciBvcGVyYXRpbmcgc3lzdGVtLlxuICogWW91IGNhbiBoYXZlIG1hbnkgZGlmZmVyZW50IGJ1aWxkcywgc3VjaCBhcyBmb3IgZGlmZmVyZW50IGZsYXZvcnMgb2YgeW91ciBnYW1lLlxuICogVGhlIGdhbWUgYnVpbGQgbXVzdCBiZSBpbnRlZ3JhdGVkIHdpdGggdGhlIEdhbWVMaWZ0IHNlcnZpY2UuXG4gKiBZb3UgdXBsb2FkIGdhbWUgYnVpbGQgZmlsZXMgdG8gdGhlIEdhbWVMaWZ0IHNlcnZpY2UgaW4gdGhlIFJlZ2lvbnMgd2hlcmUgeW91IHBsYW4gdG8gc2V0IHVwIGZsZWV0cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nYW1lbGlmdC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvZ2FtZWxpZnQtYnVpbGQtY2xpLXVwbG9hZGluZy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1aWxkIGV4dGVuZHMgY2RrLklSZXNvdXJjZSwgaWFtLklHcmFudGFibGUge1xuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGJ1aWxkLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBidWlsZElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGJ1aWxkXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgbmV3IGFuZCBpbXBvcnRlZCBHYW1lTGlmdCBzZXJ2ZXIgYnVpbGQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCdWlsZEJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQnVpbGQge1xuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGJ1aWxkLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnVpbGQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYnVpbGRBcm46IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xufVxuXG4vKipcbiAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgdGhlIGdhbWUgc2VydmVyIGJpbmFyaWVzIGFyZSBidWlsdCB0byBydW4gb24uXG4gKi9cbmV4cG9ydCBlbnVtIE9wZXJhdGluZ1N5c3RlbSB7XG4gIC8qKlxuICAgKiBBbWF6b24gTGludXggb3BlcmF0aW5nIHN5c3RlbS5cbiAgICovXG4gIEFNQVpPTl9MSU5VWCA9ICdBTUFaT05fTElOVVgnLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gTGludXggMiBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKi9cbiAgQU1BWk9OX0xJTlVYXzIgPSAnQU1BWk9OX0xJTlVYXzInLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gTGludXggMjAyMyBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKi9cbiAgQU1BWk9OX0xJTlVYXzIwMjMgPSAnQU1BWk9OX0xJTlVYXzIwMjMnLFxuXG4gIC8qKlxuICAgKiBXaW5kb3dzIFNlcnZlciAyMDEyIG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIElmIHlvdSBoYXZlIGFjdGl2ZSBmbGVldHMgdXNpbmcgdGhlIFdpbmRvd3MgU2VydmVyIDIwMTIgb3BlcmF0aW5nIHN5c3RlbSxcbiAgICogeW91IGNhbiBjb250aW51ZSB0byBjcmVhdGUgbmV3IGJ1aWxkcyB1c2luZyB0aGlzIE9TIHVudGlsIE9jdG9iZXIgMTAsIDIwMjMsIHdoZW4gTWljcm9zb2Z0IGVuZHMgaXRzIHN1cHBvcnQuXG4gICAqIEFsbCBvdGhlcnMgbXVzdCB1c2UgV2luZG93cyBTZXJ2ZXIgMjAxNiB3aGVuIGNyZWF0aW5nIG5ldyBXaW5kb3dzLWJhc2VkIGJ1aWxkcy5cbiAgICovXG4gIFdJTkRPV1NfMjAxMiA9ICdXSU5ET1dTXzIwMTInLFxuXG4gIC8qKlxuICAgKiBXaW5kb3dzIFNlcnZlciAyMDE2IG9wZXJhdGluZyBzeXN0ZW0uXG4gICAqL1xuICBXSU5ET1dTXzIwMTYgPSAnV0lORE9XU18yMDE2Jyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgQnVpbGQgY29udGVudCBkZWZpbmVkIG91dHNpZGUgb2YgdGhpcyBzdGFjay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnVpbGRcbiAgICpcbiAgICogQXQgbGVhc3Qgb25lIG9mIGBidWlsZEFybmAgYW5kIGBidWlsZElkYCBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gYGJ1aWxkSWRgLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBidWlsZFxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgYGJ1aWxkSWRgIGFuZCBgYnVpbGRBcm5gICBtdXN0IGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gYGJ1aWxkQXJuYC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSBHYW1lTGlmdCB0byBhY2Nlc3Mgc2VydmVyIGJ1aWxkIGluIFMzLlxuICAgKiBAZGVmYXVsdCB0aGUgaW1wb3J0ZWQgZmxlZXQgY2Fubm90IGJlIGdyYW50ZWQgYWNjZXNzIHRvIG90aGVyIHJlc291cmNlcyBhcyBhbiBgaWFtLklHcmFudGFibGVgLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBidWlsZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGlzIGJ1aWxkXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGlzIGJ1aWxkXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB0aGUgZ2FtZSBzZXJ2ZXIgYmluYXJpZXMgYXJlIGJ1aWx0IHRvIHJ1biBvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW5nU3lzdGVtPzogT3BlcmF0aW5nU3lzdGVtO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2FtZSBidWlsZCBmaWxlIHN0b3JhZ2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRlbnQ6IENvbnRlbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IEdhbWVMaWZ0IHRvIGFjY2VzcyBzZXJ2ZXIgYnVpbGQgaW4gUzMuXG4gICAqIElmIHByb3ZpZGluZyBhIGN1c3RvbSByb2xlLCBpdCBuZWVkcyB0byB0cnVzdCB0aGUgR2FtZUxpZnQgc2VydmljZSBwcmluY2lwYWwgKGdhbWVsaWZ0LmFtYXpvbmF3cy5jb20pIGFuZCBiZSBncmFudGVkIHN1ZmZpY2llbnQgcGVybWlzc2lvbnNcbiAgICogdG8gaGF2ZSBSZWFkIGFjY2VzcyB0byBhIHNwZWNpZmljIGtleSBjb250ZW50IGludG8gYSBzcGVjaWZpYyBTMyBidWNrZXQuXG4gICAqIEJlbG93IGFuIGV4YW1wbGUgb2YgcmVxdWlyZWQgcGVybWlzc2lvbjpcbiAgICoge1xuICAgKiAgXCJWZXJzaW9uXCI6IFwiMjAxMi0xMC0xN1wiLFxuICAgKiAgXCJTdGF0ZW1lbnRcIjogW3tcbiAgICogICAgICAgIFwiRWZmZWN0XCI6IFwiQWxsb3dcIixcbiAgICogICAgICAgIFwiQWN0aW9uXCI6IFtcbiAgICogICAgICAgICAgICBcInMzOkdldE9iamVjdFwiLFxuICAgKiAgICAgICAgICAgIFwiczM6R2V0T2JqZWN0VmVyc2lvblwiXG4gICAqICAgICAgICBdLFxuICAgKiAgICAgICAgXCJSZXNvdXJjZVwiOiBcImFybjphd3M6czM6OjpidWNrZXQtbmFtZS9vYmplY3QtbmFtZVwiXG4gICAqICB9XVxuICAgKiB9XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9zZWN1cml0eV9pYW1faWQtYmFzZWQtcG9saWN5LWV4YW1wbGVzLmh0bWwjc2VjdXJpdHlfaWFtX2lkLWJhc2VkLXBvbGljeS1leGFtcGxlcy1hY2Nlc3Mtc3RvcmFnZS1sb2NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHJvbGUgd2lsbCBiZSBjcmVhdGVkIHdpdGggZGVmYXVsdCBwZXJtaXNzaW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIEEgc2VydmVyIFNESyB2ZXJzaW9uIHlvdSB1c2VkIHdoZW4gaW50ZWdyYXRpbmcgeW91ciBnYW1lIHNlcnZlciBidWlsZCB3aXRoIEFtYXpvbiBHYW1lTGlmdC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2FtZWxpZnQvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2ludGVncmF0aW9uLWN1c3RvbS1pbnRyby5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNC4wLjJcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZlclNka1ZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBHYW1lTGlmdCBidWlsZCwgdGhhdCBpcyBpbnN0YWxsZWQgYW5kIHJ1bnMgb24gaW5zdGFuY2VzIGluIGFuIEFtYXpvbiBHYW1lTGlmdCBmbGVldC4gSXQgY29uc2lzdHMgb2ZcbiAqIGEgemlwIGZpbGUgd2l0aCBhbGwgb2YgdGhlIGNvbXBvbmVudHMgb2YgdGhlIGdhbWUgc2VydmVyIGJ1aWxkLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dhbWVsaWZ0L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9nYW1lbGlmdC1idWlsZC1jbGktdXBsb2FkaW5nLmh0bWxcbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpHYW1lTGlmdDo6QnVpbGRcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEJ1aWxkIGV4dGVuZHMgQnVpbGRCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtZ2FtZWxpZnQtYWxwaGEuQnVpbGQnO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgQnVpbGQgZnJvbSBzMyBjb250ZW50XG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1Y2tldChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nLCBvYmplY3RWZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGNvbnRlbnQ6IENvbnRlbnQuZnJvbUJ1Y2tldChidWNrZXQsIGtleSwgb2JqZWN0VmVyc2lvbiksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IEJ1aWxkIGZyb20gYXNzZXQgY29udGVudFxuICAgKi9cbiAgc3RhdGljIGZyb21Bc3NldChzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBzM19hc3NldHMuQXNzZXRPcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGNvbnRlbnQ6IENvbnRlbnQuZnJvbUFzc2V0KHBhdGgsIG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIGJ1aWxkIGludG8gQ0RLIHVzaW5nIGl0cyBpZGVudGlmaWVyXG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1aWxkSWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYnVpbGRJZDogc3RyaW5nKTogSUJ1aWxkIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tQnVpbGRBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyBidWlsZElkIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIGJ1aWxkIGludG8gQ0RLIHVzaW5nIGl0cyBBUk5cbiAgICovXG4gIHN0YXRpYyBmcm9tQnVpbGRBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYnVpbGRBcm46IHN0cmluZyk6IElCdWlsZCB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbUJ1aWxkQXR0cmlidXRlcyhzY29wZSwgaWQsIHsgYnVpbGRBcm4gfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGJ1aWxkIGZyb20gaXRzIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBzdGF0aWMgZnJvbUJ1aWxkQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogQnVpbGRBdHRyaWJ1dGVzKTogSUJ1aWxkIHtcbiAgICBpZiAoIWF0dHJzLmJ1aWxkSWQgJiYgIWF0dHJzLmJ1aWxkQXJuKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBidWlsZElkIG9yIGJ1aWxkQXJuIG11c3QgYmUgcHJvdmlkZWQgaW4gQnVpbGRBdHRyaWJ1dGVzJyk7XG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkSWQgPSBhdHRycy5idWlsZElkID8/XG4gICAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKGF0dHJzLmJ1aWxkQXJuISwgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FKS5yZXNvdXJjZU5hbWU7XG5cbiAgICBpZiAoIWJ1aWxkSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gYnVpbGQgaWRlbnRpZmllciBmb3VuZCBpbiBBUk46ICcke2F0dHJzLmJ1aWxkQXJufSdgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZEFybiA9IGF0dHJzLmJ1aWxkQXJuID8/IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ2J1aWxkJyxcbiAgICAgIHJlc291cmNlTmFtZTogYXR0cnMuYnVpbGRJZCxcbiAgICAgIGFybkZvcm1hdDogY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgIH0pO1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEJ1aWxkQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRJZCA9IGJ1aWxkSWQhO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGJ1aWxkQXJuID0gYnVpbGRBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSBhdHRycy5yb2xlID8/IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHJvbGUgPSBhdHRycy5yb2xlO1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpLCB7XG4gICAgICAgICAgZW52aXJvbm1lbnRGcm9tQXJuOiBidWlsZEFybixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIElkZW50aWZpZXIgb2YgdGhlIGJ1aWxkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnVpbGQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIEdhbWVMaWZ0IGFzc3VtZXMgdG8gYWNjY2VzcyBzZXJ2ZXIgYnVpbGQgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdGhpcyBHYW1lTGlmdCBCdWlsZCBpcyB1c2luZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJ1aWxkUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuYnVpbGROYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmJ1aWxkTmFtZSAmJiAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5idWlsZE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuYnVpbGROYW1lLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBCdWlsZCBuYW1lIGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMTAyNCBjaGFyYWN0ZXJzIGJ1dCBoYXMgJHtwcm9wcy5idWlsZE5hbWUubGVuZ3RofSBjaGFyYWN0ZXJzLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGVTZXJ2ZXJTZGtWZXJzaW9uKHByb3BzLnNlcnZlclNka1ZlcnNpb24pO1xuXG4gICAgdGhpcy5yb2xlID0gcHJvcHMucm9sZSA/PyBuZXcgaWFtLlJvbGUodGhpcywgJ1NlcnZpY2VSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2dhbWVsaWZ0LmFtYXpvbmF3cy5jb20nKSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBwcm9wcy5jb250ZW50LmJpbmQodGhpcywgdGhpcy5yb2xlKTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IENmbkJ1aWxkKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHByb3BzLmJ1aWxkTmFtZSxcbiAgICAgIHZlcnNpb246IHByb3BzLmJ1aWxkVmVyc2lvbixcbiAgICAgIG9wZXJhdGluZ1N5c3RlbTogcHJvcHMub3BlcmF0aW5nU3lzdGVtLFxuICAgICAgc3RvcmFnZUxvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldDogY29udGVudC5zM0xvY2F0aW9uICYmIGNvbnRlbnQuczNMb2NhdGlvbi5idWNrZXROYW1lLFxuICAgICAgICBrZXk6IGNvbnRlbnQuczNMb2NhdGlvbiAmJiBjb250ZW50LnMzTG9jYXRpb24ub2JqZWN0S2V5LFxuICAgICAgICBvYmplY3RWZXJzaW9uOiBjb250ZW50LnMzTG9jYXRpb24gJiYgY29udGVudC5zM0xvY2F0aW9uLm9iamVjdFZlcnNpb24sXG4gICAgICAgIHJvbGVBcm46IHRoaXMucm9sZS5yb2xlQXJuLFxuICAgICAgfSxcbiAgICAgIHNlcnZlclNka1ZlcnNpb246IHByb3BzLnNlcnZlclNka1ZlcnNpb24sXG4gICAgfSk7XG5cbiAgICByZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5yb2xlKTtcblxuICAgIHRoaXMuYnVpbGRJZCA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHJlc291cmNlLnJlZik7XG4gICAgdGhpcy5idWlsZEFybiA9IGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnYW1lbGlmdCcsXG4gICAgICByZXNvdXJjZTogJ2J1aWxkJyxcbiAgICAgIHJlc291cmNlTmFtZTogdGhpcy5idWlsZElkLFxuICAgICAgYXJuRm9ybWF0OiBjZGsuQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VydmVyU2RrVmVyc2lvbihzZXJ2ZXJTZGtWZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgaWYgKHNlcnZlclNka1ZlcnNpb24gPT09IHVuZGVmaW5lZCB8fCBjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHNlcnZlclNka1ZlcnNpb24pKSByZXR1cm47XG4gICAgaWYgKCFzZXJ2ZXJTZGtWZXJzaW9uLm1hdGNoKC9eXFxkK1xcLlxcZCtcXC5cXGQrJC8pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNlcnZlclNka1ZlcnNpb24gbXVzdCBiZSBpbiB0aGUgMC4wLjAgZm9ybWF0LCBnb3QgXFwnJHtzZXJ2ZXJTZGtWZXJzaW9ufVxcJy5gKTtcbiAgICB9XG4gICAgaWYgKHNlcnZlclNka1ZlcnNpb24ubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNlcnZlclNka1ZlcnNpb24gbGVuZ3RoIG11c3QgYmUgc21hbGxlciB0aGFuIG9yIGVxdWFsIHRvIDEyOCwgZ290ICR7c2VydmVyU2RrVmVyc2lvbi5sZW5ndGh9LmApO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/content.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.AssetContent = exports.S3Content = exports.Content = void 0;
|
|
5
4
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
@@ -12,6 +11,7 @@ const cdk = require("aws-cdk-lib/core");
|
|
|
12
11
|
* The class helps you on preparing and uploading custom game server build files or Realtime Servers server script files.
|
|
13
12
|
*/
|
|
14
13
|
class Content {
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.Content", version: "2.221.0-alpha.0" };
|
|
15
15
|
/**
|
|
16
16
|
* Game content as an S3 object.
|
|
17
17
|
* @param bucket The S3 bucket
|
|
@@ -31,12 +31,14 @@ class Content {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
exports.Content = Content;
|
|
34
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
35
|
-
Content[_a] = { fqn: "@aws-cdk/aws-gamelift-alpha.Content", version: "2.219.0-alpha.0" };
|
|
36
34
|
/**
|
|
37
35
|
* Game content from an S3 archive.
|
|
38
36
|
*/
|
|
39
37
|
class S3Content extends Content {
|
|
38
|
+
bucket;
|
|
39
|
+
key;
|
|
40
|
+
objectVersion;
|
|
41
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.S3Content", version: "2.221.0-alpha.0" };
|
|
40
42
|
constructor(bucket, key, objectVersion) {
|
|
41
43
|
super();
|
|
42
44
|
this.bucket = bucket;
|
|
@@ -63,12 +65,14 @@ class S3Content extends Content {
|
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
exports.S3Content = S3Content;
|
|
66
|
-
_b = JSII_RTTI_SYMBOL_1;
|
|
67
|
-
S3Content[_b] = { fqn: "@aws-cdk/aws-gamelift-alpha.S3Content", version: "2.219.0-alpha.0" };
|
|
68
68
|
/**
|
|
69
69
|
* Game content from a local directory.
|
|
70
70
|
*/
|
|
71
71
|
class AssetContent extends Content {
|
|
72
|
+
path;
|
|
73
|
+
options;
|
|
74
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-gamelift-alpha.AssetContent", version: "2.221.0-alpha.0" };
|
|
75
|
+
asset;
|
|
72
76
|
/**
|
|
73
77
|
* @param path The path to the asset file or directory.
|
|
74
78
|
*/
|
|
@@ -108,6 +112,4 @@ class AssetContent extends Content {
|
|
|
108
112
|
}
|
|
109
113
|
}
|
|
110
114
|
exports.AssetContent = AssetContent;
|
|
111
|
-
|
|
112
|
-
AssetContent[_c] = { fqn: "@aws-cdk/aws-gamelift-alpha.AssetContent", version: "2.219.0-alpha.0" };
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLHVEQUF1RDtBQUN2RCx3Q0FBd0M7QUFHeEM7OztHQUdHO0FBQ0gsTUFBc0IsT0FBTztJQUMzQjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBa0IsRUFBRSxHQUFXLEVBQUUsYUFBc0I7UUFDOUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ2xEO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLE9BQWdDO1FBQ3BFLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3hDOztBQWxCSCwwQkF3QkM7OztBQVlEOztHQUVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsT0FBTztJQUNwQyxZQUE2QixNQUFrQixFQUFVLEdBQVcsRUFBVSxhQUFzQjtRQUNsRyxLQUFLLEVBQUUsQ0FBQztRQURtQixXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBRWxHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7S0FDRjtJQUVNLElBQUksQ0FBQyxNQUFpQixFQUFFLElBQWU7UUFDNUMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDaEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEQsT0FBTyxFQUFFLENBQUMsY0FBYyxFQUFFLHFCQUFxQixDQUFDO1NBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2dCQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNsQztTQUNGLENBQUM7S0FDSDs7QUF2QkgsOEJBd0JDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLE9BQU87SUFHdkM7O09BRUc7SUFDSCxZQUE0QixJQUFZLEVBQW1CLFVBQWtDLEVBQUc7UUFDOUYsS0FBSyxFQUFFLENBQUM7UUFEa0IsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUE4QjtLQUUvRjtJQUVNLElBQUksQ0FBQyxLQUFnQixFQUFFLElBQWU7UUFDM0Msd0ZBQXdGO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDakQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsS0FBSztnQkFDeEcsZ0RBQWdELENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZGLCtDQUErQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ2hELE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQztTQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxPQUFPO1lBQ0wsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVk7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7YUFDbEM7U0FDRixDQUFDO0tBQ0g7O0FBeENILG9DQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBzM19hc3NldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBCZWZvcmUgZGVwbG95aW5nIHlvdXIgR2FtZUxpZnQtZW5hYmxlZCBtdWx0aXBsYXllciBnYW1lIHNlcnZlcnMgZm9yIGhvc3Rpbmcgd2l0aCB0aGUgR2FtZUxpZnQgc2VydmljZSwgeW91IG5lZWQgdG8gdXBsb2FkIHlvdXIgZ2FtZSBzZXJ2ZXIgZmlsZXMuXG4gKiBUaGUgY2xhc3MgaGVscHMgeW91IG9uIHByZXBhcmluZyBhbmQgdXBsb2FkaW5nIGN1c3RvbSBnYW1lIHNlcnZlciBidWlsZCBmaWxlcyBvciBSZWFsdGltZSBTZXJ2ZXJzIHNlcnZlciBzY3JpcHQgZmlsZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZW50IHtcbiAgLyoqXG4gICAqIEdhbWUgY29udGVudCBhcyBhbiBTMyBvYmplY3QuXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIFMzIGJ1Y2tldFxuICAgKiBAcGFyYW0ga2V5IFRoZSBvYmplY3Qga2V5XG4gICAqIEBwYXJhbSBvYmplY3RWZXJzaW9uIE9wdGlvbmFsIFMzIG9iIGplY3QgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQnVja2V0KGJ1Y2tldDogczMuSUJ1Y2tldCwga2V5OiBzdHJpbmcsIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpOiBTM0NvbnRlbnQge1xuICAgIHJldHVybiBuZXcgUzNDb250ZW50KGJ1Y2tldCwga2V5LCBvYmplY3RWZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgZ2FtZSBjb250ZW50IGZyb20gYSBsb2NhbCBkaXNrIHBhdGguXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIEVpdGhlciBhIGRpcmVjdG9yeSB3aXRoIHRoZSBnYW1lIGNvbnRlbnQgYnVuZGxlIG9yIGEgLnppcCBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBzM19hc3NldHMuQXNzZXRPcHRpb25zKTogQXNzZXRDb250ZW50IHtcbiAgICByZXR1cm4gbmV3IEFzc2V0Q29udGVudChwYXRoLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgQnVpbGQgaXMgaW5pdGlhbGl6ZWQgdG8gYWxsb3cgdGhpcyBvYmplY3QgdG8gYmluZFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgcm9sZTogaWFtLklSb2xlKTogQ29udGVudENvbmZpZztcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYmluZGluZyBgQ29udGVudGAgaW50byBhIGBCdWlsZGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGNvbnRlbnQgaW4gUzMuXG4gICAqL1xuICByZWFkb25seSBzM0xvY2F0aW9uOiBzMy5Mb2NhdGlvbjtcbn1cblxuLyoqXG4gKiBHYW1lIGNvbnRlbnQgZnJvbSBhbiBTMyBhcmNoaXZlLlxuICovXG5leHBvcnQgY2xhc3MgUzNDb250ZW50IGV4dGVuZHMgQ29udGVudCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0LCBwcml2YXRlIGtleTogc3RyaW5nLCBwcml2YXRlIG9iamVjdFZlcnNpb24/OiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghYnVja2V0LmJ1Y2tldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYnVja2V0TmFtZSBpcyB1bmRlZmluZWQgZm9yIHRoZSBwcm92aWRlZCBidWNrZXQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmluZChfc2NvcGU6IENvbnN0cnVjdCwgcm9sZTogaWFtLklSb2xlKTogQ29udGVudENvbmZpZyB7XG4gICAgLy8gQWRkaW5nIHBlcm1pc3Npb24gdG8gYWNjZXNzIHNwZWNpZmljIGNvbnRlbnRcbiAgICByb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIHJlc291cmNlczogW3RoaXMuYnVja2V0LmFybkZvck9iamVjdHModGhpcy5rZXkpXSxcbiAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0JywgJ3MzOkdldE9iamVjdFZlcnNpb24nXSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMua2V5LFxuICAgICAgICBvYmplY3RWZXJzaW9uOiB0aGlzLm9iamVjdFZlcnNpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBHYW1lIGNvbnRlbnQgZnJvbSBhIGxvY2FsIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2V0Q29udGVudCBleHRlbmRzIENvbnRlbnQge1xuICBwcml2YXRlIGFzc2V0PzogczNfYXNzZXRzLkFzc2V0O1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byB0aGUgYXNzZXQgZmlsZSBvciBkaXJlY3RvcnkuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGF0aDogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IHMzX2Fzc2V0cy5Bc3NldE9wdGlvbnMgPSB7IH0pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGJpbmQoc2NvcGU6IENvbnN0cnVjdCwgcm9sZTogaWFtLklSb2xlKTogQ29udGVudENvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb250ZW50IGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyBzM19hc3NldHMuQXNzZXQoc2NvcGUsICdDb250ZW50Jywge1xuICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoY2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpICE9PSBjZGsuU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGFub3RoZXIgc3RhY2sgJyR7Y2RrLlN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZX0nLiBgICtcbiAgICAgICAgJ0NyZWF0ZSBhIG5ldyBDb250ZW50IGluc3RhbmNlIGZvciBldmVyeSBzdGFjay4nKTtcbiAgICB9XG4gICAgY29uc3QgYnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKHNjb3BlLCAnQXNzZXRCdWNrZXQnLCB0aGlzLmFzc2V0LnMzQnVja2V0TmFtZSk7XG5cbiAgICAvLyBBZGRpbmcgcGVybWlzc2lvbiB0byBhY2Nlc3Mgc3BlY2lmaWMgY29udGVudFxuICAgIHJvbGUuYWRkVG9QcmluY2lwYWxQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgcmVzb3VyY2VzOiBbYnVja2V0LmFybkZvck9iamVjdHModGhpcy5hc3NldC5zM09iamVjdEtleSldLFxuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnLCAnczM6R2V0T2JqZWN0VmVyc2lvbiddLFxuICAgIH0pKTtcblxuICAgIGlmICghdGhpcy5hc3NldC5pc1ppcEFyY2hpdmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXQgbXVzdCBiZSBhIC56aXAgZmlsZSBvciBhIGRpcmVjdG9yeSAoJHt0aGlzLnBhdGh9KWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFDekMsdURBQXVEO0FBQ3ZELHdDQUF3QztBQUd4Qzs7O0dBR0c7QUFDSCxNQUFzQixPQUFPOztJQUMzQjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBa0IsRUFBRSxHQUFXLEVBQUUsYUFBc0I7UUFDOUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ2xEO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLE9BQWdDO1FBQ3BFLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3hDOztBQWxCSCwwQkF3QkM7QUFZRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLE9BQU87SUFDUDtJQUE0QjtJQUFxQjs7SUFBOUUsWUFBNkIsTUFBa0IsRUFBVSxHQUFXLEVBQVUsYUFBc0I7UUFDbEcsS0FBSyxFQUFFLENBQUM7UUFEbUIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUVsRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUNyRSxDQUFDO0tBQ0Y7SUFFTSxJQUFJLENBQUMsTUFBaUIsRUFBRSxJQUFlO1FBQzVDLCtDQUErQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ2hELE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQztTQUNqRCxDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNuQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEM7U0FDRixDQUFDO0tBQ0g7O0FBdkJILDhCQXdCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsT0FBTztJQU1YO0lBQStCOztJQUxuRCxLQUFLLENBQW1CO0lBRWhDOztPQUVHO0lBQ0gsWUFBNEIsSUFBWSxFQUFtQixVQUFrQyxFQUFHO1FBQzlGLEtBQUssRUFBRSxDQUFDO1FBRGtCLFNBQUksR0FBSixJQUFJLENBQVE7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7S0FFL0Y7SUFFTSxJQUFJLENBQUMsS0FBZ0IsRUFBRSxJQUFlO1FBQzNDLHdGQUF3RjtRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ2pELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEtBQUs7Z0JBQ3hHLGdEQUFnRCxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2RiwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUNoRCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLENBQUM7U0FDakQsQ0FBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBRUQsT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO2FBQ2xDO1NBQ0YsQ0FBQztLQUNIOztBQXhDSCxvQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgczNfYXNzZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogQmVmb3JlIGRlcGxveWluZyB5b3VyIEdhbWVMaWZ0LWVuYWJsZWQgbXVsdGlwbGF5ZXIgZ2FtZSBzZXJ2ZXJzIGZvciBob3N0aW5nIHdpdGggdGhlIEdhbWVMaWZ0IHNlcnZpY2UsIHlvdSBuZWVkIHRvIHVwbG9hZCB5b3VyIGdhbWUgc2VydmVyIGZpbGVzLlxuICogVGhlIGNsYXNzIGhlbHBzIHlvdSBvbiBwcmVwYXJpbmcgYW5kIHVwbG9hZGluZyBjdXN0b20gZ2FtZSBzZXJ2ZXIgYnVpbGQgZmlsZXMgb3IgUmVhbHRpbWUgU2VydmVycyBzZXJ2ZXIgc2NyaXB0IGZpbGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udGVudCB7XG4gIC8qKlxuICAgKiBHYW1lIGNvbnRlbnQgYXMgYW4gUzMgb2JqZWN0LlxuICAgKiBAcGFyYW0gYnVja2V0IFRoZSBTMyBidWNrZXRcbiAgICogQHBhcmFtIGtleSBUaGUgb2JqZWN0IGtleVxuICAgKiBAcGFyYW0gb2JqZWN0VmVyc2lvbiBPcHRpb25hbCBTMyBvYiBqZWN0IHZlcnNpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUJ1Y2tldChidWNrZXQ6IHMzLklCdWNrZXQsIGtleTogc3RyaW5nLCBvYmplY3RWZXJzaW9uPzogc3RyaW5nKTogUzNDb250ZW50IHtcbiAgICByZXR1cm4gbmV3IFMzQ29udGVudChidWNrZXQsIGtleSwgb2JqZWN0VmVyc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGdhbWUgY29udGVudCBmcm9tIGEgbG9jYWwgZGlzayBwYXRoLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCBFaXRoZXIgYSBkaXJlY3Rvcnkgd2l0aCB0aGUgZ2FtZSBjb250ZW50IGJ1bmRsZSBvciBhIC56aXAgZmlsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQXNzZXQocGF0aDogc3RyaW5nLCBvcHRpb25zPzogczNfYXNzZXRzLkFzc2V0T3B0aW9ucyk6IEFzc2V0Q29udGVudCB7XG4gICAgcmV0dXJuIG5ldyBBc3NldENvbnRlbnQocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIEJ1aWxkIGlzIGluaXRpYWxpemVkIHRvIGFsbG93IHRoaXMgb2JqZWN0IHRvIGJpbmRcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIHJvbGU6IGlhbS5JUm9sZSk6IENvbnRlbnRDb25maWc7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGJpbmRpbmcgYENvbnRlbnRgIGludG8gYSBgQnVpbGRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBjb250ZW50IGluIFMzLlxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbjogczMuTG9jYXRpb247XG59XG5cbi8qKlxuICogR2FtZSBjb250ZW50IGZyb20gYW4gUzMgYXJjaGl2ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFMzQ29udGVudCBleHRlbmRzIENvbnRlbnQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGJ1Y2tldDogczMuSUJ1Y2tldCwgcHJpdmF0ZSBrZXk6IHN0cmluZywgcHJpdmF0ZSBvYmplY3RWZXJzaW9uPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWJ1Y2tldC5idWNrZXROYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2J1Y2tldE5hbWUgaXMgdW5kZWZpbmVkIGZvciB0aGUgcHJvdmlkZWQgYnVja2V0Jyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QsIHJvbGU6IGlhbS5JUm9sZSk6IENvbnRlbnRDb25maWcge1xuICAgIC8vIEFkZGluZyBwZXJtaXNzaW9uIHRvIGFjY2VzcyBzcGVjaWZpYyBjb250ZW50XG4gICAgcm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICByZXNvdXJjZXM6IFt0aGlzLmJ1Y2tldC5hcm5Gb3JPYmplY3RzKHRoaXMua2V5KV0sXG4gICAgICBhY3Rpb25zOiBbJ3MzOkdldE9iamVjdCcsICdzMzpHZXRPYmplY3RWZXJzaW9uJ10sXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHMzTG9jYXRpb246IHtcbiAgICAgICAgYnVja2V0TmFtZTogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLmtleSxcbiAgICAgICAgb2JqZWN0VmVyc2lvbjogdGhpcy5vYmplY3RWZXJzaW9uLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogR2FtZSBjb250ZW50IGZyb20gYSBsb2NhbCBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBBc3NldENvbnRlbnQgZXh0ZW5kcyBDb250ZW50IHtcbiAgcHJpdmF0ZSBhc3NldD86IHMzX2Fzc2V0cy5Bc3NldDtcblxuICAvKipcbiAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gdGhlIGFzc2V0IGZpbGUgb3IgZGlyZWN0b3J5LlxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBzM19hc3NldHMuQXNzZXRPcHRpb25zID0geyB9KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIHJvbGU6IGlhbS5JUm9sZSk6IENvbnRlbnRDb25maWcge1xuICAgIC8vIElmIHRoZSBzYW1lIEFzc2V0Q29udGVudCBpcyB1c2VkIG11bHRpcGxlIHRpbWVzLCByZXRhaW4gb25seSB0aGUgZmlyc3QgaW5zdGFudGlhdGlvbi5cbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRoaXMuYXNzZXQgPSBuZXcgczNfYXNzZXRzLkFzc2V0KHNjb3BlLCAnQ29udGVudCcsIHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGNkay5TdGFjay5vZih0aGlzLmFzc2V0KSAhPT0gY2RrLlN0YWNrLm9mKHNjb3BlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke2Nkay5TdGFjay5vZih0aGlzLmFzc2V0KS5zdGFja05hbWV9Jy4gYCArXG4gICAgICAgICdDcmVhdGUgYSBuZXcgQ29udGVudCBpbnN0YW5jZSBmb3IgZXZlcnkgc3RhY2suJyk7XG4gICAgfVxuICAgIGNvbnN0IGJ1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShzY29wZSwgJ0Fzc2V0QnVja2V0JywgdGhpcy5hc3NldC5zM0J1Y2tldE5hbWUpO1xuXG4gICAgLy8gQWRkaW5nIHBlcm1pc3Npb24gdG8gYWNjZXNzIHNwZWNpZmljIGNvbnRlbnRcbiAgICByb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIHJlc291cmNlczogW2J1Y2tldC5hcm5Gb3JPYmplY3RzKHRoaXMuYXNzZXQuczNPYmplY3RLZXkpXSxcbiAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0JywgJ3MzOkdldE9iamVjdFZlcnNpb24nXSxcbiAgICB9KSk7XG5cbiAgICBpZiAoIXRoaXMuYXNzZXQuaXNaaXBBcmNoaXZlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IG11c3QgYmUgYSAuemlwIGZpbGUgb3IgYSBkaXJlY3RvcnkgKCR7dGhpcy5wYXRofSlgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgczNMb2NhdGlvbjoge1xuICAgICAgICBidWNrZXROYW1lOiB0aGlzLmFzc2V0LnMzQnVja2V0TmFtZSxcbiAgICAgICAgb2JqZWN0S2V5OiB0aGlzLmFzc2V0LnMzT2JqZWN0S2V5LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|