@aws-cdk/aws-bedrock-agentcore-alpha 2.256.1-alpha.0 → 2.258.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 +2806 -2580
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +2135 -59
- package/lib/common/types.d.ts +2 -0
- package/lib/common/types.js +3 -1
- package/lib/evaluation/custom-evaluator.d.ts +1 -0
- package/lib/evaluation/custom-evaluator.js +37 -4
- package/lib/evaluation/data-source.d.ts +1 -0
- package/lib/evaluation/data-source.js +15 -2
- package/lib/evaluation/evaluator-base.d.ts +2 -0
- package/lib/evaluation/evaluator-base.js +65 -3
- package/lib/evaluation/evaluator-config.d.ts +4 -0
- package/lib/evaluation/evaluator-config.js +25 -3
- package/lib/evaluation/evaluator.d.ts +1 -0
- package/lib/evaluation/evaluator.js +14 -2
- package/lib/evaluation/online-evaluation-base.d.ts +2 -0
- package/lib/evaluation/online-evaluation-base.js +65 -3
- package/lib/evaluation/online-evaluation.d.ts +1 -0
- package/lib/evaluation/online-evaluation.js +37 -4
- package/lib/evaluation/perms.d.ts +5 -0
- package/lib/evaluation/perms.js +6 -1
- package/lib/evaluation/types.d.ts +15 -0
- package/lib/evaluation/types.js +75 -6
- package/lib/evaluation/validation-helpers.d.ts +22 -0
- package/lib/evaluation/validation-helpers.js +23 -1
- package/lib/gateway/gateway-base.d.ts +7 -0
- package/lib/gateway/gateway-base.js +178 -3
- package/lib/gateway/gateway.d.ts +9 -0
- package/lib/gateway/gateway.js +49 -6
- package/lib/gateway/inbound-auth/authorizer.d.ts +12 -0
- package/lib/gateway/inbound-auth/authorizer.js +31 -5
- package/lib/gateway/inbound-auth/custom-claim.d.ts +1 -0
- package/lib/gateway/inbound-auth/custom-claim.js +13 -2
- package/lib/gateway/interceptor.d.ts +5 -0
- package/lib/gateway/interceptor.js +7 -2
- package/lib/gateway/outbound-auth/api-key.d.ts +5 -0
- package/lib/gateway/outbound-auth/api-key.js +7 -2
- package/lib/gateway/outbound-auth/credential-provider.d.ts +5 -0
- package/lib/gateway/outbound-auth/credential-provider.js +17 -2
- package/lib/gateway/outbound-auth/iam-role.d.ts +1 -0
- package/lib/gateway/outbound-auth/iam-role.js +2 -1
- package/lib/gateway/outbound-auth/oauth.d.ts +2 -0
- package/lib/gateway/outbound-auth/oauth.js +2 -1
- package/lib/gateway/perms.d.ts +16 -0
- package/lib/gateway/perms.js +17 -1
- package/lib/gateway/protocol.d.ts +7 -0
- package/lib/gateway/protocol.js +10 -3
- package/lib/gateway/targets/schema/api-schema.d.ts +4 -0
- package/lib/gateway/targets/schema/api-schema.js +161 -6
- package/lib/gateway/targets/schema/base-schema.d.ts +1 -0
- package/lib/gateway/targets/schema/base-schema.js +2 -1
- package/lib/gateway/targets/schema/tool-schema.d.ts +12 -0
- package/lib/gateway/targets/schema/tool-schema.js +166 -6
- package/lib/gateway/targets/target-base.d.ts +5 -0
- package/lib/gateway/targets/target-base.js +76 -3
- package/lib/gateway/targets/target-configuration.d.ts +14 -0
- package/lib/gateway/targets/target-configuration.js +125 -9
- package/lib/gateway/targets/target.d.ts +8 -0
- package/lib/gateway/targets/target.js +37 -4
- package/lib/gateway/validation-helpers.d.ts +4 -0
- package/lib/gateway/validation-helpers.js +4 -1
- package/lib/identity/api-key-credential-provider.d.ts +4 -0
- package/lib/identity/api-key-credential-provider.js +36 -3
- package/lib/identity/grant-helpers.d.ts +7 -0
- package/lib/identity/grant-helpers.js +42 -2
- package/lib/identity/oauth2-credential-provider.d.ts +29 -0
- package/lib/identity/oauth2-credential-provider.js +37 -3
- package/lib/identity/perms.d.ts +5 -0
- package/lib/identity/perms.js +9 -4
- package/lib/identity/validation-helpers.d.ts +53 -0
- package/lib/identity/validation-helpers.js +54 -1
- package/lib/identity/workload-identity.d.ts +3 -0
- package/lib/identity/workload-identity.js +36 -3
- package/lib/memory/memory-strategy.d.ts +6 -0
- package/lib/memory/memory-strategy.js +47 -2
- package/lib/memory/memory.d.ts +4 -0
- package/lib/memory/memory.js +210 -5
- package/lib/memory/strategies/managed-strategy.d.ts +4 -0
- package/lib/memory/strategies/managed-strategy.js +22 -2
- package/lib/memory/strategies/self-managed-strategy.d.ts +4 -0
- package/lib/memory/strategies/self-managed-strategy.js +57 -4
- package/lib/memory/validation-helpers.d.ts +6 -0
- package/lib/memory/validation-helpers.js +7 -1
- package/lib/network/network-configuration.d.ts +5 -0
- package/lib/network/network-configuration.js +83 -6
- package/lib/policy/policy-base.js +36 -3
- package/lib/policy/policy-engine-base.js +36 -3
- package/lib/policy/policy-engine.js +37 -4
- package/lib/policy/policy-statement.js +5 -5
- package/lib/policy/policy-types.js +1 -1
- package/lib/policy/policy.js +36 -3
- package/lib/runtime/inbound-auth/custom-claim.d.ts +1 -0
- package/lib/runtime/inbound-auth/custom-claim.js +13 -2
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.d.ts +1 -0
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +40 -2
- package/lib/runtime/observability.d.ts +5 -0
- package/lib/runtime/observability.js +79 -5
- package/lib/runtime/perms.d.ts +12 -0
- package/lib/runtime/perms.js +13 -1
- package/lib/runtime/runtime-artifact.d.ts +3 -0
- package/lib/runtime/runtime-artifact.js +69 -5
- package/lib/runtime/runtime-base.d.ts +3 -0
- package/lib/runtime/runtime-base.js +200 -3
- package/lib/runtime/runtime-endpoint-base.d.ts +3 -0
- package/lib/runtime/runtime-endpoint-base.js +22 -2
- package/lib/runtime/runtime-endpoint.d.ts +1 -0
- package/lib/runtime/runtime-endpoint.js +36 -3
- package/lib/runtime/runtime.d.ts +2 -0
- package/lib/runtime/runtime.js +38 -5
- package/lib/runtime/types.d.ts +3 -0
- package/lib/runtime/types.js +2 -1
- package/lib/runtime/validation-helpers.d.ts +6 -0
- package/lib/runtime/validation-helpers.js +7 -1
- package/lib/tools/browser.d.ts +6 -0
- package/lib/tools/browser.js +205 -8
- package/lib/tools/code-interpreter.d.ts +4 -0
- package/lib/tools/code-interpreter.js +185 -7
- package/lib/tools/perms.d.ts +12 -0
- package/lib/tools/perms.js +13 -1
- package/lib/tools/validation-helpers.d.ts +6 -0
- package/lib/tools/validation-helpers.js +7 -1
- package/package.json +10 -10
|
@@ -1,14 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.RuntimeNetworkConfiguration = exports.CodeInterpreterNetworkConfiguration = exports.BrowserNetworkConfiguration = exports.NetworkConfiguration = void 0;
|
|
4
37
|
const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
|
|
5
38
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
39
|
+
const ec2 = __importStar(require("aws-cdk-lib/aws-ec2"));
|
|
7
40
|
/**
|
|
8
41
|
* Abstract base class for network configuration.
|
|
42
|
+
* @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
|
|
9
43
|
*/
|
|
10
44
|
class NetworkConfiguration {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.258.0-alpha.0" };
|
|
12
46
|
/**
|
|
13
47
|
* The network mode to use.
|
|
14
48
|
* Configure the security level for agent
|
|
@@ -33,6 +67,7 @@ class NetworkConfiguration {
|
|
|
33
67
|
*/
|
|
34
68
|
constructor(mode, scope, vpcConfig) {
|
|
35
69
|
try {
|
|
70
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
36
71
|
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
37
72
|
}
|
|
38
73
|
catch (error) {
|
|
@@ -85,15 +120,25 @@ class NetworkConfiguration {
|
|
|
85
120
|
exports.NetworkConfiguration = NetworkConfiguration;
|
|
86
121
|
/**
|
|
87
122
|
* Network configuration for the Browser tool.
|
|
123
|
+
* @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
|
|
88
124
|
*/
|
|
89
125
|
class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
90
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.
|
|
126
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.258.0-alpha.0" };
|
|
91
127
|
/**
|
|
92
128
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
93
129
|
* @returns A BrowserNetworkConfiguration.
|
|
94
130
|
* Run this tool to operate in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
95
131
|
*/
|
|
96
132
|
static usingPublicNetwork() {
|
|
133
|
+
try {
|
|
134
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration#usingPublicNetwork", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
138
|
+
Error.captureStackTrace(error, this.usingPublicNetwork);
|
|
139
|
+
}
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
97
142
|
return new BrowserNetworkConfiguration('PUBLIC');
|
|
98
143
|
}
|
|
99
144
|
/**
|
|
@@ -103,6 +148,7 @@ class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
|
103
148
|
*/
|
|
104
149
|
static usingVpc(scope, vpcConfig) {
|
|
105
150
|
try {
|
|
151
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration#usingVpc", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
106
152
|
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
107
153
|
}
|
|
108
154
|
catch (error) {
|
|
@@ -131,15 +177,25 @@ class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
|
131
177
|
exports.BrowserNetworkConfiguration = BrowserNetworkConfiguration;
|
|
132
178
|
/**
|
|
133
179
|
* Network configuration for the Code Interpreter tool.
|
|
180
|
+
* @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
|
|
134
181
|
*/
|
|
135
182
|
class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
136
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.
|
|
183
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.258.0-alpha.0" };
|
|
137
184
|
/**
|
|
138
185
|
* Creates a public network configuration.
|
|
139
186
|
* @returns A CodeInterpreterNetworkConfiguration.
|
|
140
187
|
* Run this tool to operate in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
141
188
|
*/
|
|
142
189
|
static usingPublicNetwork() {
|
|
190
|
+
try {
|
|
191
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration#usingPublicNetwork", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
195
|
+
Error.captureStackTrace(error, this.usingPublicNetwork);
|
|
196
|
+
}
|
|
197
|
+
throw error;
|
|
198
|
+
}
|
|
143
199
|
return new CodeInterpreterNetworkConfiguration('PUBLIC');
|
|
144
200
|
}
|
|
145
201
|
/**
|
|
@@ -148,6 +204,15 @@ class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
|
148
204
|
* Run this tool in a restricted environment with limited Permissions and Encryption to enhance safety and reduce potential risks.
|
|
149
205
|
*/
|
|
150
206
|
static usingSandboxNetwork() {
|
|
207
|
+
try {
|
|
208
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration#usingSandboxNetwork", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
212
|
+
Error.captureStackTrace(error, this.usingSandboxNetwork);
|
|
213
|
+
}
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
151
216
|
return new CodeInterpreterNetworkConfiguration('SANDBOX');
|
|
152
217
|
}
|
|
153
218
|
/**
|
|
@@ -157,6 +222,7 @@ class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
|
157
222
|
*/
|
|
158
223
|
static usingVpc(scope, vpcConfig) {
|
|
159
224
|
try {
|
|
225
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration#usingVpc", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
160
226
|
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
161
227
|
}
|
|
162
228
|
catch (error) {
|
|
@@ -185,15 +251,25 @@ class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
|
185
251
|
exports.CodeInterpreterNetworkConfiguration = CodeInterpreterNetworkConfiguration;
|
|
186
252
|
/**
|
|
187
253
|
* Network configuration for the Runtime.
|
|
254
|
+
* @deprecated Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.
|
|
188
255
|
*/
|
|
189
256
|
class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
190
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.
|
|
257
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.258.0-alpha.0" };
|
|
191
258
|
/**
|
|
192
259
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
193
260
|
* @returns A RuntimeNetworkConfiguration.
|
|
194
261
|
* Run the runtime in a public environment with internet access, suitable for less sensitive or open-use scenarios.
|
|
195
262
|
*/
|
|
196
263
|
static usingPublicNetwork() {
|
|
264
|
+
try {
|
|
265
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration#usingPublicNetwork", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
269
|
+
Error.captureStackTrace(error, this.usingPublicNetwork);
|
|
270
|
+
}
|
|
271
|
+
throw error;
|
|
272
|
+
}
|
|
197
273
|
return new RuntimeNetworkConfiguration('PUBLIC');
|
|
198
274
|
}
|
|
199
275
|
/**
|
|
@@ -204,6 +280,7 @@ class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
|
204
280
|
*/
|
|
205
281
|
static usingVpc(scope, vpcConfig) {
|
|
206
282
|
try {
|
|
283
|
+
jsiiDeprecationWarnings.print("@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration#usingVpc", "Use the equivalent construct from `aws-cdk-lib/aws-bedrockagentcore` instead.");
|
|
207
284
|
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_VpcConfigProps(vpcConfig);
|
|
208
285
|
}
|
|
209
286
|
catch (error) {
|
|
@@ -230,4 +307,4 @@ class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
|
230
307
|
}
|
|
231
308
|
}
|
|
232
309
|
exports.RuntimeNetworkConfiguration = RuntimeNetworkConfiguration;
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0d29yay1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsMkNBQTJDO0FBOEQzQzs7R0FFRztBQUNILE1BQXNCLG9CQUFvQjs7SUFDeEM7Ozs7T0FJRztJQUNNLFdBQVcsQ0FBUztJQUM3Qjs7T0FFRztJQUNNLFdBQVcsQ0FBOEI7SUFDbEQ7O09BRUc7SUFDTSxLQUFLLENBQXlCO0lBQ3ZDOztPQUVHO0lBQ00sVUFBVSxDQUF1QjtJQUMxQzs7O09BR0c7SUFDSCxZQUF1QixJQUFZLEVBQUUsS0FBaUIsRUFBRSxTQUEwQjs7Ozs7OytDQXZCOUQsb0JBQW9COzs7O1FBd0J0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixnREFBZ0Q7UUFDaEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxFQUFFLFdBQVcsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsRUFBRSxVQUFVLENBQUM7S0FDN0M7SUFFRDs7T0FFRztJQUNLLDhCQUE4QixHQUFHLENBQUMsU0FBMEIsRUFBNkIsRUFBRTtRQUNqRyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsSUFBSSxTQUFTLEVBQUUsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDaEcsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLENBQUMsU0FB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QUFJLENBQUMsV0FBVyxJQUFJLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN2RSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFO2FBQ3RGLENBQUEsQ0FBQyxDQUFDLFNBQVM7U0FDYixDQUFDO0tBQ0g7O0FBakNILGtFQWtDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBjZGtsYWJzL25vLXRocm93LWRlZmF1bHQtZXJyb3IgKi9cbmltcG9ydCB0eXBlIHsgQ2ZuQnJvd3NlckN1c3RvbSwgQ2ZuQ29kZUludGVycHJldGVyQ3VzdG9tLCBDZm5SdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuLy8gSW50ZXJuYWwgTGlic1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzLlxuICogT25seSB1c2VkIHdoZW4gbmV0d29yayBtb2RlIGlzIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIGRlcGxveSB0aGUgcmVzb3VyY2UgdG8uXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIFZQQy5cbiAgICpcbiAgICogVGhpcyByZXF1aXJlcyBgdnBjYCB0byBiZSBzcGVjaWZpZWQgaW4gb3JkZXIgZm9yIGludGVyZmFjZXMgdG8gYWN0dWFsbHkgYmVcbiAgICogcGxhY2VkIGluIHRoZSBzdWJuZXRzLiBJZiBgdnBjYCBpcyBub3Qgc3BlY2lmeSwgdGhpcyB3aWxsIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBWcGMgZGVmYXVsdCBzdHJhdGVneSBpZiBub3Qgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcmVzb3VyY2UncyBuZXR3b3JrIGludGVyZmFjZXMuXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiAndnBjJyBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiB0aGUgcmVzb3VyY2UgaXMgcGxhY2VkIHdpdGhpbiBhIFZQQyBhbmQgYSBzZWN1cml0eSBncm91cCBpc1xuICAgKiBub3Qgc3BlY2lmaWVkIGJ5IHRoaXMgcHJvcCwgYSBkZWRpY2F0ZWQgc2VjdXJpdHlcbiAgICogZ3JvdXAgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGlzIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIHJlc291cmNlIHRvIHNlbmQgYWxsIG5ldHdvcmsgdHJhZmZpYyAoZXhjZXB0IGlwdjYpXG4gICAqXG4gICAqIElmIHNldCB0byBmYWxzZSwgeW91IG11c3QgaW5kaXZpZHVhbGx5IGFkZCB0cmFmZmljIHJ1bGVzIHRvIGFsbG93IHRoZVxuICAgKiByZXNvdXJjZSB0byBjb25uZWN0IHRvIG5ldHdvcmsgdGFyZ2V0cy5cbiAgICpcbiAgICogRG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSBpZiB0aGUgYHNlY3VyaXR5R3JvdXBzYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqIEluc3RlYWQsIGNvbmZpZ3VyZSBgYWxsb3dBbGxPdXRib3VuZGAgZGlyZWN0bHkgb24gdGhlIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbi5cbiAqIE9ubHkgdXNlZCB3aGVuIG5ldHdvcmsgbW9kZSBpcyBWUEMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIE5ldHdvcmtDb25maWcge1xuICAvKipcbiAgICogVGhlIGNvbm5lY3Rpb25zIHRvIHRoZSBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBWUEMgc3VibmV0cyB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzOiBlYzIuU2VsZWN0ZWRTdWJuZXRzIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIG5ldHdvcmsgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBuZXR3b3JrIG1vZGUgdG8gdXNlLlxuICAgKiBDb25maWd1cmUgdGhlIHNlY3VyaXR5IGxldmVsIGZvciBhZ2VudFxuICAgKiBleGVjdXRpb24gdG8gY29udHJvbCBhY2Nlc3MsIGlzb2xhdGUgcmVzb3VyY2VzLCBhbmQgcHJvdGVjdCBzZW5zaXRpdmUgZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbnMgb2JqZWN0IHRvIHRoZSBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBzY29wZSB0byBjcmVhdGUgdGhlIHJlc291cmNlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU/OiBDb25zdHJ1Y3QgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHN1Ym5ldHMgdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG5ldHdvcmsgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIG1vZGUgLSB0aGUgbmV0d29yayBtb2RlIHRvIHVzZSBmb3IgdGhlIHRvb2wuXG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IgKG1vZGU6IHN0cmluZywgc2NvcGU/OiBDb25zdHJ1Y3QsIHZwY0NvbmZpZz86IFZwY0NvbmZpZ1Byb3BzKSB7XG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMubmV0d29ya01vZGUgPSBtb2RlO1xuXG4gICAgLy8gVmFsaWRhdGUgdnBjIGNvbmZpZyBhbmQgY29uZmlndXJlIGNvbm5lY3Rpb25zXG4gICAgY29uc3QgbmV0d29ya0NvbmZpZyA9IHRoaXMuX3ZhbGlkYXRlQW5kQ29uZmlndXJlVnBjQ29uZmlnKHZwY0NvbmZpZyk7XG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IG5ldHdvcmtDb25maWc/LmNvbm5lY3Rpb25zO1xuICAgIHRoaXMudnBjU3VibmV0cyA9IG5ldHdvcmtDb25maWc/LnZwY1N1Ym5ldHM7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSB2cGMgY29uZmlnLlxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVBbmRDb25maWd1cmVWcGNDb25maWcgPSAodnBjQ29uZmlnPzogVnBjQ29uZmlnUHJvcHMpOiBOZXR3b3JrQ29uZmlnIHwgdW5kZWZpbmVkID0+IHtcbiAgICBpZiAoKHZwY0NvbmZpZz8uc2VjdXJpdHlHcm91cHMgfHwgdnBjQ29uZmlnPy5hbGxvd0FsbE91dGJvdW5kICE9PSB1bmRlZmluZWQpICYmICF2cGNDb25maWc/LnZwYykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29uZmlndXJlIFxcJ3NlY3VyaXR5R3JvdXBzXFwnIG9yIFxcJ2FsbG93QWxsT3V0Ym91bmRcXCcgd2l0aG91dCBjb25maWd1cmluZyBhIFZQQycpO1xuICAgIH1cblxuICAgIGlmICghdnBjQ29uZmlnPy52cGMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKCh2cGNDb25maWc/LnNlY3VyaXR5R3JvdXBzICYmIHZwY0NvbmZpZz8uc2VjdXJpdHlHcm91cHMubGVuZ3RoID4gMCkgJiYgdnBjQ29uZmlnPy5hbGxvd0FsbE91dGJvdW5kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29uZmlndXJlIFxcJ2FsbG93QWxsT3V0Ym91bmRcXCcgZGlyZWN0bHkgb24gdGhlIHN1cHBsaWVkIFNlY3VyaXR5R3JvdXBzJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNjb3BlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Njb3BlIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSB0aGUgc2VjdXJpdHkgZ3JvdXAnKTtcbiAgICB9XG5cbiAgICBsZXQgc2VjdXJpdHlHcm91cHM6IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuICAgIGlmICh2cGNDb25maWcuc2VjdXJpdHlHcm91cHMgJiYgdnBjQ29uZmlnLnNlY3VyaXR5R3JvdXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNlY3VyaXR5R3JvdXBzID0gdnBjQ29uZmlnLnNlY3VyaXR5R3JvdXBzO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMuc2NvcGUhLCAnU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgICAgdnBjOiB2cGNDb25maWcudnBjLFxuICAgICAgICBhbGxvd0FsbE91dGJvdW5kOiB2cGNDb25maWcuYWxsb3dBbGxPdXRib3VuZCA/PyB0cnVlLFxuICAgICAgfSk7XG4gICAgICBzZWN1cml0eUdyb3VwcyA9IFtzZWN1cml0eUdyb3VwXTtcbiAgICB9XG5cbiAgICBjb25zdCB2cGNTdWJuZXRzID0gdnBjQ29uZmlnLnZwY1N1Ym5ldHMgPyB2cGNDb25maWcudnBjLnNlbGVjdFN1Ym5ldHModnBjQ29uZmlnLnZwY1N1Ym5ldHMpIDogdnBjQ29uZmlnLnZwYy5zZWxlY3RTdWJuZXRzKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29ubmVjdGlvbnM6IG5ldyBlYzIuQ29ubmVjdGlvbnMoeyBzZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHMgfSksXG4gICAgICB2cGNTdWJuZXRzOiB2cGNTdWJuZXRzLFxuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogTmV0d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgQnJvd3NlciB0b29sLlxuICovXG5leHBvcnQgY2xhc3MgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uIGV4dGVuZHMgTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIFBVQkxJQyBpcyB0aGUgZGVmYXVsdCBuZXR3b3JrIG1vZGUuXG4gICAqIEByZXR1cm5zIEEgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIHRvIG9wZXJhdGUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uKCdQVUJMSUMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHZwY0NvbmZpZyAtIFRoZSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nVnBjKHNjb3BlOiBDb25zdHJ1Y3QsIHZwY0NvbmZpZzogVnBjQ29uZmlnUHJvcHMpOiBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uKCdWUEMnLCBzY29wZSwgdnBjQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIGJyb3dzZXJDb25uZWN0aW9ucyAtIFRoZSBjb25uZWN0aW9ucyBvYmplY3QgdG8gdGhlIGJyb3dzZXIuXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoYnJvd3NlckNvbm5lY3Rpb25zPzogZWMyLkNvbm5lY3Rpb25zKTogQ2ZuQnJvd3NlckN1c3RvbS5Ccm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ldHdvcmtNb2RlOiB0aGlzLm5ldHdvcmtNb2RlLFxuICAgICAgdnBjQ29uZmlnOiAodGhpcy5uZXR3b3JrTW9kZSA9PT0gJ1ZQQycgJiYgYnJvd3NlckNvbm5lY3Rpb25zKSA/IHtcbiAgICAgICAgc3VibmV0czogdGhpcy52cGNTdWJuZXRzPy5zdWJuZXRzPy5tYXAoc3VibmV0ID0+IHN1Ym5ldC5zdWJuZXRJZCkgPz8gW10sXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBicm93c2VyQ29ubmVjdGlvbnM/LnNlY3VyaXR5R3JvdXBzPy5tYXAocyA9PiBzLnNlY3VyaXR5R3JvdXBJZCkgPz8gW10sXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBDb2RlIEludGVycHJldGVyIHRvb2wuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiBleHRlbmRzIE5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwdWJsaWMgbmV0d29yayBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIHRvIG9wZXJhdGUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbignUFVCTElDJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNhbmRib3ggbmV0d29yayBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIGluIGEgcmVzdHJpY3RlZCBlbnZpcm9ubWVudCB3aXRoIGxpbWl0ZWQgUGVybWlzc2lvbnMgYW5kIEVuY3J5cHRpb24gdG8gZW5oYW5jZSBzYWZldHkgYW5kIHJlZHVjZSBwb3RlbnRpYWwgcmlza3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nU2FuZGJveE5ldHdvcmsoKTogQ29kZUludGVycHJldGVyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQ29kZUludGVycHJldGVyTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1NBTkRCT1gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHZwY0NvbmZpZyAtIFRoZSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdWcGMoc2NvcGU6IENvbnN0cnVjdCwgdnBjQ29uZmlnOiBWcGNDb25maWdQcm9wcyk6IENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uKCdWUEMnLCBzY29wZSwgdnBjQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIGNvZGVJbnRlcnByZXRlckNvbm5lY3Rpb25zIC0gVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgY29kZSBpbnRlcnByZXRlci5cbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcihjb2RlSW50ZXJwcmV0ZXJDb25uZWN0aW9ucz86IGVjMi5Db25uZWN0aW9ucyk6IENmbkNvZGVJbnRlcnByZXRlckN1c3RvbS5Db2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV0d29ya01vZGU6IHRoaXMubmV0d29ya01vZGUsXG4gICAgICB2cGNDb25maWc6ICh0aGlzLm5ldHdvcmtNb2RlID09PSAnVlBDJyAmJiBjb2RlSW50ZXJwcmV0ZXJDb25uZWN0aW9ucykgPyB7XG4gICAgICAgIHN1Ym5ldHM6IHRoaXMudnBjU3VibmV0cz8uc3VibmV0cz8ubWFwKHN1Ym5ldCA9PiBzdWJuZXQuc3VibmV0SWQpID8/IFtdLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogY29kZUludGVycHJldGVyQ29ubmVjdGlvbnM/LnNlY3VyaXR5R3JvdXBzPy5tYXAocyA9PiBzLnNlY3VyaXR5R3JvdXBJZCkgPz8gW10sXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBSdW50aW1lLlxuICovXG5leHBvcnQgY2xhc3MgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uIGV4dGVuZHMgTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHB1YmxpYyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uIFBVQkxJQyBpcyB0aGUgZGVmYXVsdCBuZXR3b3JrIG1vZGUuXG4gICAqIEByZXR1cm5zIEEgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhlIHJ1bnRpbWUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBSdW50aW1lTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uKCdQVUJMSUMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZSBmb3IgY3JlYXRpbmcgcmVzb3VyY2VzLlxuICAgKiBAcGFyYW0gdnBjQ29uZmlnIC0gVGhlIFZQQyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdWcGMoc2NvcGU6IENvbnN0cnVjdCwgdnBjQ29uZmlnOiBWcGNDb25maWdQcm9wcyk6IFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBSdW50aW1lTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1ZQQycsIHNjb3BlLCB2cGNDb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhcyBhIENsb3VkRm9ybWF0aW9uIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gcnVudGltZUNvbm5lY3Rpb25zIC0gVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgcnVudGltZS5cbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcihfcnVudGltZUNvbm5lY3Rpb25zPzogZWMyLkNvbm5lY3Rpb25zKTogQ2ZuUnVudGltZS5OZXR3b3JrQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV0d29ya01vZGU6IHRoaXMubmV0d29ya01vZGUsXG4gICAgICBuZXR3b3JrTW9kZUNvbmZpZzogKHRoaXMubmV0d29ya01vZGUgPT0gJ1ZQQycgJiYgX3J1bnRpbWVDb25uZWN0aW9ucykgPyB7XG4gICAgICAgIHN1Ym5ldHM6IHRoaXMudnBjU3VibmV0cz8uc3VibmV0cz8ubWFwKHN1Ym5ldCA9PiBzdWJuZXQuc3VibmV0SWQpID8/IFtdLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogX3J1bnRpbWVDb25uZWN0aW9ucz8uc2VjdXJpdHlHcm91cHM/Lm1hcChzPT4gcy5zZWN1cml0eUdyb3VwSWQpID8/IFtdLFxuICAgICAgfTogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmV0d29yay1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEseURBQTJDO0FBK0QzQzs7O0dBR0c7QUFDSCxNQUFzQixvQkFBb0I7O0lBQ3hDOzs7O09BSUc7SUFDTSxXQUFXLENBQVM7SUFDN0I7O09BRUc7SUFDTSxXQUFXLENBQThCO0lBQ2xEOztPQUVHO0lBQ00sS0FBSyxDQUF5QjtJQUN2Qzs7T0FFRztJQUNNLFVBQVUsQ0FBdUI7SUFDMUM7OztPQUdHO0lBQ0gsWUFBdUIsSUFBWSxFQUFFLEtBQWlCLEVBQUUsU0FBMEI7Ozs7Ozs7K0NBdkI5RCxvQkFBb0I7Ozs7UUF3QnRDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRXhCLGdEQUFnRDtRQUNoRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxFQUFFLFVBQVUsQ0FBQztLQUM3QztJQUVEOztPQUVHO0lBQ0ssOEJBQThCLEdBQUcsQ0FBQyxTQUEwQixFQUE2QixFQUFFO1FBQ2pHLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxJQUFJLFNBQVMsRUFBRSxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNoRyxNQUFNLElBQUksS0FBSyxDQUFDLHVGQUF1RixDQUFDLENBQUM7UUFDM0csQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDcEIsT0FBTyxTQUFT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Q0FBQyxtQkFBcUM7UUFDbEQsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxJQUFJLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7YUFDdEYsQ0FBQSxDQUFDLENBQUMsU0FBUztTQUNiLENBQUM7S0FDSDs7QUFqQ0gsa0VBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGNka2xhYnMvbm8tdGhyb3ctZGVmYXVsdC1lcnJvciAqL1xuaW1wb3J0IHR5cGUgeyBDZm5Ccm93c2VyQ3VzdG9tLCBDZm5Db2RlSW50ZXJwcmV0ZXJDdXN0b20sIENmblJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG4vLyBJbnRlcm5hbCBMaWJzXG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIFZQQyBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMuXG4gKiBPbmx5IHVzZWQgd2hlbiBuZXR3b3JrIG1vZGUgaXMgVlBDLlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBlcXVpdmFsZW50IGNvbnN0cnVjdCBmcm9tIGBhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZWAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgVlBDIHRvIGRlcGxveSB0aGUgcmVzb3VyY2UgdG8uXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIFZQQy5cbiAgICpcbiAgICogVGhpcyByZXF1aXJlcyBgdnBjYCB0byBiZSBzcGVjaWZpZWQgaW4gb3JkZXIgZm9yIGludGVyZmFjZXMgdG8gYWN0dWFsbHkgYmVcbiAgICogcGxhY2VkIGluIHRoZSBzdWJuZXRzLiBJZiBgdnBjYCBpcyBub3Qgc3BlY2lmeSwgdGhpcyB3aWxsIHJhaXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBWcGMgZGVmYXVsdCBzdHJhdGVneSBpZiBub3Qgc3BlY2lmaWVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcmVzb3VyY2UncyBuZXR3b3JrIGludGVyZmFjZXMuXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpZiAndnBjJyBpcyBzdXBwbGllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJZiB0aGUgcmVzb3VyY2UgaXMgcGxhY2VkIHdpdGhpbiBhIFZQQyBhbmQgYSBzZWN1cml0eSBncm91cCBpc1xuICAgKiBub3Qgc3BlY2lmaWVkIGJ5IHRoaXMgcHJvcCwgYSBkZWRpY2F0ZWQgc2VjdXJpdHlcbiAgICogZ3JvdXAgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGlzIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgdGhlIHJlc291cmNlIHRvIHNlbmQgYWxsIG5ldHdvcmsgdHJhZmZpYyAoZXhjZXB0IGlwdjYpXG4gICAqXG4gICAqIElmIHNldCB0byBmYWxzZSwgeW91IG11c3QgaW5kaXZpZHVhbGx5IGFkZCB0cmFmZmljIHJ1bGVzIHRvIGFsbG93IHRoZVxuICAgKiByZXNvdXJjZSB0byBjb25uZWN0IHRvIG5ldHdvcmsgdGFyZ2V0cy5cbiAgICpcbiAgICogRG8gbm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSBpZiB0aGUgYHNlY3VyaXR5R3JvdXBzYCBwcm9wZXJ0eSBpcyBzZXQuXG4gICAqIEluc3RlYWQsIGNvbmZpZ3VyZSBgYWxsb3dBbGxPdXRib3VuZGAgZGlyZWN0bHkgb24gdGhlIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWUEMgY29uZmlndXJhdGlvbi5cbiAqIE9ubHkgdXNlZCB3aGVuIG5ldHdvcmsgbW9kZSBpcyBWUEMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIE5ldHdvcmtDb25maWcge1xuICAvKipcbiAgICogVGhlIGNvbm5lY3Rpb25zIHRvIHRoZSBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIFRoZSBWUEMgc3VibmV0cyB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzOiBlYzIuU2VsZWN0ZWRTdWJuZXRzIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIG5ldHdvcmsgY29uZmlndXJhdGlvbi5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgZXF1aXZhbGVudCBjb25zdHJ1Y3QgZnJvbSBgYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmVgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmV0d29yayBtb2RlIHRvIHVzZS5cbiAgICogQ29uZmlndXJlIHRoZSBzZWN1cml0eSBsZXZlbCBmb3IgYWdlbnRcbiAgICogZXhlY3V0aW9uIHRvIGNvbnRyb2wgYWNjZXNzLCBpc29sYXRlIHJlc291cmNlcywgYW5kIHByb3RlY3Qgc2Vuc2l0aXZlIGRhdGEuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrTW9kZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgbmV0d29yay5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnMgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgdG8gY3JlYXRlIHRoZSByZXNvdXJjZSBpbi5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlPzogQ29uc3RydWN0IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIFZQQyBzdWJuZXRzIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBuZXR3b3JrIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBtb2RlIC0gdGhlIG5ldHdvcmsgbW9kZSB0byB1c2UgZm9yIHRoZSB0b29sLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yIChtb2RlOiBzdHJpbmcsIHNjb3BlPzogQ29uc3RydWN0LCB2cGNDb25maWc/OiBWcGNDb25maWdQcm9wcykge1xuICAgIHRoaXMuc2NvcGUgPSBzY29wZTtcbiAgICB0aGlzLm5ldHdvcmtNb2RlID0gbW9kZTtcblxuICAgIC8vIFZhbGlkYXRlIHZwYyBjb25maWcgYW5kIGNvbmZpZ3VyZSBjb25uZWN0aW9uc1xuICAgIGNvbnN0IG5ldHdvcmtDb25maWcgPSB0aGlzLl92YWxpZGF0ZUFuZENvbmZpZ3VyZVZwY0NvbmZpZyh2cGNDb25maWcpO1xuICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXR3b3JrQ29uZmlnPy5jb25uZWN0aW9ucztcbiAgICB0aGlzLnZwY1N1Ym5ldHMgPSBuZXR3b3JrQ29uZmlnPy52cGNTdWJuZXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgdnBjIGNvbmZpZy5cbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlQW5kQ29uZmlndXJlVnBjQ29uZmlnID0gKHZwY0NvbmZpZz86IFZwY0NvbmZpZ1Byb3BzKTogTmV0d29ya0NvbmZpZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKCh2cGNDb25maWc/LnNlY3VyaXR5R3JvdXBzIHx8IHZwY0NvbmZpZz8uYWxsb3dBbGxPdXRib3VuZCAhPT0gdW5kZWZpbmVkKSAmJiAhdnBjQ29uZmlnPy52cGMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbmZpZ3VyZSBcXCdzZWN1cml0eUdyb3Vwc1xcJyBvciBcXCdhbGxvd0FsbE91dGJvdW5kXFwnIHdpdGhvdXQgY29uZmlndXJpbmcgYSBWUEMnKTtcbiAgICB9XG5cbiAgICBpZiAoIXZwY0NvbmZpZz8udnBjKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICgodnBjQ29uZmlnPy5zZWN1cml0eUdyb3VwcyAmJiB2cGNDb25maWc/LnNlY3VyaXR5R3JvdXBzLmxlbmd0aCA+IDApICYmIHZwY0NvbmZpZz8uYWxsb3dBbGxPdXRib3VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZpZ3VyZSBcXCdhbGxvd0FsbE91dGJvdW5kXFwnIGRpcmVjdGx5IG9uIHRoZSBzdXBwbGllZCBTZWN1cml0eUdyb3VwcycpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zY29wZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTY29wZSBpcyByZXF1aXJlZCB0byBjcmVhdGUgdGhlIHNlY3VyaXR5IGdyb3VwJyk7XG4gICAgfVxuXG4gICAgbGV0IHNlY3VyaXR5R3JvdXBzOiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbiAgICBpZiAodnBjQ29uZmlnLnNlY3VyaXR5R3JvdXBzICYmIHZwY0NvbmZpZy5zZWN1cml0eUdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWN1cml0eUdyb3VwcyA9IHZwY0NvbmZpZy5zZWN1cml0eUdyb3VwcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLnNjb3BlISwgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgIHZwYzogdnBjQ29uZmlnLnZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdnBjQ29uZmlnLmFsbG93QWxsT3V0Ym91bmQgPz8gdHJ1ZSxcbiAgICAgIH0pO1xuICAgICAgc2VjdXJpdHlHcm91cHMgPSBbc2VjdXJpdHlHcm91cF07XG4gICAgfVxuXG4gICAgY29uc3QgdnBjU3VibmV0cyA9IHZwY0NvbmZpZy52cGNTdWJuZXRzID8gdnBjQ29uZmlnLnZwYy5zZWxlY3RTdWJuZXRzKHZwY0NvbmZpZy52cGNTdWJuZXRzKSA6IHZwY0NvbmZpZy52cGMuc2VsZWN0U3VibmV0cygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbm5lY3Rpb25zOiBuZXcgZWMyLkNvbm5lY3Rpb25zKHsgc2VjdXJpdHlHcm91cHM6IHNlY3VyaXR5R3JvdXBzIH0pLFxuICAgICAgdnBjU3VibmV0czogdnBjU3VibmV0cyxcbiAgICB9O1xuICB9O1xufVxuXG4vKipcbiAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhlIEJyb3dzZXIgdG9vbC5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgZXF1aXZhbGVudCBjb25zdHJ1Y3QgZnJvbSBgYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmVgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24gZXh0ZW5kcyBOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHVibGljIG5ldHdvcmsgY29uZmlndXJhdGlvbi4gUFVCTElDIGlzIHRoZSBkZWZhdWx0IG5ldHdvcmsgbW9kZS5cbiAgICogQHJldHVybnMgQSBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24uXG4gICAqIFJ1biB0aGlzIHRvb2wgdG8gb3BlcmF0ZSBpbiBhIHB1YmxpYyBlbnZpcm9ubWVudCB3aXRoIGludGVybmV0IGFjY2Vzcywgc3VpdGFibGUgZm9yIGxlc3Mgc2Vuc2l0aXZlIG9yIG9wZW4tdXNlIHNjZW5hcmlvcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdQdWJsaWNOZXR3b3JrKCk6IEJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1BVQkxJQycpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gZnJvbSBhIFZQQyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0gdnBjQ29uZmlnIC0gVGhlIFZQQyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIEJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdWcGMoc2NvcGU6IENvbnN0cnVjdCwgdnBjQ29uZmlnOiBWcGNDb25maWdQcm9wcyk6IEJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1ZQQycsIHNjb3BlLCB2cGNDb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBhcyBhIENsb3VkRm9ybWF0aW9uIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gYnJvd3NlckNvbm5lY3Rpb25zIC0gVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgYnJvd3Nlci5cbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcihicm93c2VyQ29ubmVjdGlvbnM/OiBlYzIuQ29ubmVjdGlvbnMpOiBDZm5Ccm93c2VyQ3VzdG9tLkJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV0d29ya01vZGU6IHRoaXMubmV0d29ya01vZGUsXG4gICAgICB2cGNDb25maWc6ICh0aGlzLm5ldHdvcmtNb2RlID09PSAnVlBDJyAmJiBicm93c2VyQ29ubmVjdGlvbnMpID8ge1xuICAgICAgICBzdWJuZXRzOiB0aGlzLnZwY1N1Ym5ldHM/LnN1Ym5ldHM/Lm1hcChzdWJuZXQgPT4gc3VibmV0LnN1Ym5ldElkKSA/PyBbXSxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IGJyb3dzZXJDb25uZWN0aW9ucz8uc2VjdXJpdHlHcm91cHM/Lm1hcChzID0+IHMuc2VjdXJpdHlHcm91cElkKSA/PyBbXSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvZGUgSW50ZXJwcmV0ZXIgdG9vbC5cbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgZXF1aXZhbGVudCBjb25zdHJ1Y3QgZnJvbSBgYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmVgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiBleHRlbmRzIE5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwdWJsaWMgbmV0d29yayBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIHRvIG9wZXJhdGUgaW4gYSBwdWJsaWMgZW52aXJvbm1lbnQgd2l0aCBpbnRlcm5ldCBhY2Nlc3MsIHN1aXRhYmxlIGZvciBsZXNzIHNlbnNpdGl2ZSBvciBvcGVuLXVzZSBzY2VuYXJpb3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nUHVibGljTmV0d29yaygpOiBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbignUFVCTElDJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHNhbmRib3ggbmV0d29yayBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uLlxuICAgKiBSdW4gdGhpcyB0b29sIGluIGEgcmVzdHJpY3RlZCBlbnZpcm9ubWVudCB3aXRoIGxpbWl0ZWQgUGVybWlzc2lvbnMgYW5kIEVuY3J5cHRpb24gdG8gZW5oYW5jZSBzYWZldHkgYW5kIHJlZHVjZSBwb3RlbnRpYWwgcmlza3MuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nU2FuZGJveE5ldHdvcmsoKTogQ29kZUludGVycHJldGVyTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgQ29kZUludGVycHJldGVyTmV0d29ya0NvbmZpZ3VyYXRpb24oJ1NBTkRCT1gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV0d29yayBjb25maWd1cmF0aW9uIGZyb20gYSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHZwY0NvbmZpZyAtIFRoZSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBDb2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdWcGMoc2NvcGU6IENvbnN0cnVjdCwgdnBjQ29uZmlnOiBWcGNDb25maWdQcm9wcyk6IENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IENvZGVJbnRlcnByZXRlck5ldHdvcmtDb25maWd1cmF0aW9uKCdWUEMnLCBzY29wZSwgdnBjQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIGNvZGVJbnRlcnByZXRlckNvbm5lY3Rpb25zIC0gVGhlIGNvbm5lY3Rpb25zIG9iamVjdCB0byB0aGUgY29kZSBpbnRlcnByZXRlci5cbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcihjb2RlSW50ZXJwcmV0ZXJDb25uZWN0aW9ucz86IGVjMi5Db25uZWN0aW9ucyk6IENmbkNvZGVJbnRlcnByZXRlckN1c3RvbS5Db2RlSW50ZXJwcmV0ZXJOZXR3b3JrQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmV0d29ya01vZGU6IHRoaXMubmV0d29ya01vZGUsXG4gICAgICB2cGNDb25maWc6ICh0aGlzLm5ldHdvcmtNb2RlID09PSAnVlBDJyAmJiBjb2RlSW50ZXJwcmV0ZXJDb25uZWN0aW9ucykgPyB7XG4gICAgICAgIHN1Ym5ldHM6IHRoaXMudnBjU3VibmV0cz8uc3VibmV0cz8ubWFwKHN1Ym5ldCA9PiBzdWJuZXQuc3VibmV0SWQpID8/IFtdLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogY29kZUludGVycHJldGVyQ29ubmVjdGlvbnM/LnNlY3VyaXR5R3JvdXBzPy5tYXAocyA9PiBzLnNlY3VyaXR5R3JvdXBJZCkgPz8gW10sXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBSdW50aW1lLlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBlcXVpdmFsZW50IGNvbnN0cnVjdCBmcm9tIGBhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZWAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbiBleHRlbmRzIE5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwdWJsaWMgbmV0d29yayBjb25maWd1cmF0aW9uLiBQVUJMSUMgaXMgdGhlIGRlZmF1bHQgbmV0d29yayBtb2RlLlxuICAgKiBAcmV0dXJucyBBIFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbi5cbiAgICogUnVuIHRoZSBydW50aW1lIGluIGEgcHVibGljIGVudmlyb25tZW50IHdpdGggaW50ZXJuZXQgYWNjZXNzLCBzdWl0YWJsZSBmb3IgbGVzcyBzZW5zaXRpdmUgb3Igb3Blbi11c2Ugc2NlbmFyaW9zLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ1B1YmxpY05ldHdvcmsoKTogUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IFJ1bnRpbWVOZXR3b3JrQ29uZmlndXJhdGlvbignUFVCTElDJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldHdvcmsgY29uZmlndXJhdGlvbiBmcm9tIGEgVlBDIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGUgZm9yIGNyZWF0aW5nIHJlc291cmNlcy5cbiAgICogQHBhcmFtIHZwY0NvbmZpZyAtIFRoZSBWUEMgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBSdW50aW1lTmV0d29ya0NvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzaW5nVnBjKHNjb3BlOiBDb25zdHJ1Y3QsIHZwY0NvbmZpZzogVnBjQ29uZmlnUHJvcHMpOiBSdW50aW1lTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiBuZXcgUnVudGltZU5ldHdvcmtDb25maWd1cmF0aW9uKCdWUEMnLCBzY29wZSwgdnBjQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gYXMgYSBDbG91ZEZvcm1hdGlvbiBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIHJ1bnRpbWVDb25uZWN0aW9ucyAtIFRoZSBjb25uZWN0aW9ucyBvYmplY3QgdG8gdGhlIHJ1bnRpbWUuXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIF9yZW5kZXIoX3J1bnRpbWVDb25uZWN0aW9ucz86IGVjMi5Db25uZWN0aW9ucyk6IENmblJ1bnRpbWUuTmV0d29ya0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5ldHdvcmtNb2RlOiB0aGlzLm5ldHdvcmtNb2RlLFxuICAgICAgbmV0d29ya01vZGVDb25maWc6ICh0aGlzLm5ldHdvcmtNb2RlID09ICdWUEMnICYmIF9ydW50aW1lQ29ubmVjdGlvbnMpID8ge1xuICAgICAgICBzdWJuZXRzOiB0aGlzLnZwY1N1Ym5ldHM/LnN1Ym5ldHM/Lm1hcChzdWJuZXQgPT4gc3VibmV0LnN1Ym5ldElkKSA/PyBbXSxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IF9ydW50aW1lQ29ubmVjdGlvbnM/LnNlY3VyaXR5R3JvdXBzPy5tYXAocz0+IHMuc2VjdXJpdHlHcm91cElkKSA/PyBbXSxcbiAgICAgIH06IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.PolicyBase = void 0;
|
|
4
37
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
38
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
39
|
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
7
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
40
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
8
41
|
// Internal imports
|
|
9
42
|
const perms_1 = require("./perms");
|
|
10
43
|
/******************************************************************************
|
|
@@ -15,7 +48,7 @@ const perms_1 = require("./perms");
|
|
|
15
48
|
* Contains methods and attributes valid for Policies either created with CDK or imported.
|
|
16
49
|
*/
|
|
17
50
|
class PolicyBase extends aws_cdk_lib_1.Resource {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.PolicyBase", version: "2.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.PolicyBase", version: "2.258.0-alpha.0" };
|
|
19
52
|
/**
|
|
20
53
|
* A reference to this Policy resource.
|
|
21
54
|
*/
|
|
@@ -117,4 +150,4 @@ class PolicyBase extends aws_cdk_lib_1.Resource {
|
|
|
117
150
|
}
|
|
118
151
|
}
|
|
119
152
|
exports.PolicyBase = PolicyBase;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwb2xpY3ktYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBY0EsNkNBQXVDO0FBR3ZDLCtEQUEyRDtBQUMzRCwyQ0FBMkM7QUFFM0MsbUJBQW1CO0FBQ25CLG1DQUE0QztBQWlINUM7OytFQUUrRTtBQUUvRTs7O0dBR0c7QUFDSCxNQUFzQixVQUFXLFNBQVEsc0JBQVE7O0lBYS9DOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQztLQUNIO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUF1QixFQUFFO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3pCO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQLE9BQU87WUFDUCxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzlCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxTQUFTLENBQUMsT0FBdUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLHlCQUFpQixDQUFDLENBQUM7S0FDbEQ7SUFFRCx5REFBeUQ7SUFDekQsVUFBVTtJQUNWLHlEQUF5RDtJQUV6RDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsVUFBa0IsRUFBRSxVQUF5QixFQUFFLEtBQXFCO1FBQ2hGLE1BQU0sV0FBVyxHQUFnQjtZQUMvQixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLFVBQVU7WUFDVixhQUFhLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMxRCxHQUFHLEtBQUs7U0FDVCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQzFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCLENBQUMsS0FBcUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxzQkFBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDakY7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBdUIsQ0FBQyxLQUFxQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUMzRjtJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLEtBQWtCO1FBQ3hDLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87U0FDOUMsQ0FBQyxDQUFDO0tBQ0o7O0FBdkhILGdDQXdIQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgSVJlc291cmNlLCBSZXNvdXJjZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElQb2xpY3lSZWYsIFBvbGljeVJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB0eXBlIHsgRGltZW5zaW9uc01hcCwgTWV0cmljT3B0aW9ucywgTWV0cmljUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBNZXRyaWMsIFN0YXRzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbi8vIEludGVybmFsIGltcG9ydHNcbmltcG9ydCB7IFBPTElDWV9SRUFEX1BFUk1TIH0gZnJvbSAnLi9wZXJtcyc7XG5pbXBvcnQgdHlwZSB7IElQb2xpY3lFbmdpbmUgfSBmcm9tICcuL3BvbGljeS1lbmdpbmUtYmFzZSc7XG5pbXBvcnQgdHlwZSB7IFBvbGljeVZhbGlkYXRpb25Nb2RlIH0gZnJvbSAnLi9wb2xpY3ktdHlwZXMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogTWluaW1hbCByZWZlcmVuY2UgaW50ZXJmYWNlIGZvciBQb2xpY3kgcmVzb3VyY2VzLlxuICogVXNlZCBmb3IgcmVzb3VyY2UgaWRlbnRpZmljYXRpb24gYW5kIEFSTiBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBvbGljeSBleHRlbmRzIElSZXNvdXJjZSwgSVBvbGljeVJlZiwgaWFtLklHcmFudGFibGUge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcG9saWN5IHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHBvbGljeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcG9saWN5XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvbGljeSBlbmdpbmUgdGhpcyBwb2xpY3kgYmVsb25ncyB0b1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lFbmdpbmU6IElQb2xpY3lFbmdpbmU7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcG9saWN5XG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhbGlkYXRpb24gbW9kZSBmb3IgdGhlIHBvbGljeVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGlvbk1vZGU/OiBQb2xpY3lWYWxpZGF0aW9uTW9kZTtcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5IChkYXRhIHBsYW5lKS5cbiAgICpcbiAgICogVGhpcyBncmFudHMgcnVudGltZSByZWFkIGFjY2VzcyB0byBwb2xpY3kgY29uZmlndXJhdGlvbi4gVXNlIHRoaXMgZm9yIG1vbml0b3JpbmcsXG4gICAqIGF1ZGl0LCBvciByZWFkLW9ubHkgYWRtaW5pc3RyYXRpdmUgcm9sZXMgdGhhdCBuZWVkIHRvIGluc3BlY3QgcG9saWN5IGRlZmluaXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgcG9saWN5LlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBldmFsdWF0aW9ucyBmb3IgdGhpcyBwb2xpY3kuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHRyYWNrcyBob3cgbWFueSB0aW1lcyB0aGlzIHBvbGljeSBoYXMgYmVlbiBldmFsdWF0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbWV0cmljRXZhbHVhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgbWVhc3VyaW5nIHRoZSBldmFsdWF0aW9uIGxhdGVuY3kgZm9yIHRoaXMgcG9saWN5LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyByZXByZXNlbnRzIHRoZSB0aW1lIHRha2VuIHRvIGV2YWx1YXRlIHRoaXMgc3BlY2lmaWMgcG9saWN5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpY0V2YWx1YXRpb25MYXRlbmN5KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgUG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwb2xpY3lcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGVuZ2luZSB0aGlzIHBvbGljeSBiZWxvbmdzIHRvXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6cHJlZmVyLXJlZi1pbnRlcmZhY2VdXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lFbmdpbmU6IElQb2xpY3lFbmdpbmU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgQUJTVFJBQ1QgQkFTRSBDTEFTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGEgUG9saWN5LlxuICogQ29udGFpbnMgbWV0aG9kcyBhbmQgYXR0cmlidXRlcyB2YWxpZCBmb3IgUG9saWNpZXMgZWl0aGVyIGNyZWF0ZWQgd2l0aCBDREsgb3IgaW1wb3J0ZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb2xpY3lCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUG9saWN5IHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcG9saWN5SWQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeUVuZ2luZTogSVBvbGljeUVuZ2luZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdmFsaWRhdGlvbk1vZGU/OiBQb2xpY3lWYWxpZGF0aW9uTW9kZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhpcyBQb2xpY3kgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBvbGljeVJlZigpOiBQb2xpY3lSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBwb2xpY3lBcm46IHRoaXMucG9saWN5QXJuLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzb3VyY2VQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSBhY3Rpb25zIC0gVGhlIGFjdGlvbnMgdG8gZ3JhbnRcbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLnBvbGljeUFybl0sXG4gICAgICBzY29wZTogdGhpcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5IChkYXRhIHBsYW5lKS5cbiAgICpcbiAgICogVGhpcyBncmFudHMgcnVudGltZSByZWFkIGFjY2VzcyB0byBwb2xpY3kgY29uZmlndXJhdGlvbi4gVXNlIHRoaXMgZm9yIG1vbml0b3JpbmcsXG4gICAqIGF1ZGl0LCBvciByZWFkLW9ubHkgYWRtaW5pc3RyYXRpdmUgcm9sZXMgdGhhdCBuZWVkIHRvIGluc3BlY3QgcG9saWN5IGRlZmluaXRpb25zXG4gICAqIGFuZCBDZWRhciBzdGF0ZW1lbnRzIGF0IHJ1bnRpbWUuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyBkb2VzIE5PVCBncmFudCBwZXJtaXNzaW9ucyB0byBjcmVhdGUvdXBkYXRlL2RlbGV0ZSB0aGUgUG9saWN5XG4gICAqIHJlc291cmNlIGl0c2VsZi4gVGhvc2UgYXJlIGNvbnRyb2wgcGxhbmUgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYnkgQ2xvdWRGb3JtYXRpb25cbiAgICogZHVyaW5nIGBjZGsgZGVwbG95YCwgbm90IGJ5IHlvdXIgYXBwbGljYXRpb24gYXQgcnVudGltZS5cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uUE9MSUNZX1JFQURfUEVSTVMpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIHBvbGljeS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIG1ldHJpYyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgYSBzdW0gb3ZlciBhIHBlcmlvZCBvZiA1IG1pbnV0ZXMuXG4gICAqIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgdXNpbmcgdGhlIGBzdGF0aXN0aWNgIGFuZCBgcGVyaW9kYCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIGNvbnN0IG1ldHJpY1Byb3BzOiBNZXRyaWNQcm9wcyA9IHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyAuLi5kaW1lbnNpb25zLCBSZXNvdXJjZTogdGhpcy5wb2xpY3lBcm4gfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlTWV0cmljKG1ldHJpY1Byb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGV2YWx1YXRpb25zIGZvciB0aGlzIHBvbGljeS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGhvdyBtYW55IHRpbWVzIHRoaXMgcG9saWN5IGhhcyBiZWVuIGV2YWx1YXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXZhbHVhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1BvbGljeUV2YWx1YXRpb25zJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGV2YWx1YXRpb24gbGF0ZW5jeSBmb3IgdGhpcyBwb2xpY3kuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgdGFrZW4gdG8gZXZhbHVhdGUgdGhpcyBzcGVjaWZpYyBwb2xpY3kuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpY0V2YWx1YXRpb25MYXRlbmN5KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdQb2xpY3lFdmFsdWF0aW9uTGF0ZW5jeScsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGNyZWF0ZSBhIG1ldHJpYy5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwb2xpY3ktYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsNkNBQXVDO0FBR3ZDLCtEQUEyRDtBQUMzRCx5REFBMkM7QUFFM0MsbUJBQW1CO0FBQ25CLG1DQUE0QztBQWlINUM7OytFQUUrRTtBQUUvRTs7O0dBR0c7QUFDSCxNQUFzQixVQUFXLFNBQVEsc0JBQVE7O0lBYS9DOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQztLQUNIO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUF1QixFQUFFO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ3pCO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQLE9BQU87WUFDUCxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzlCLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxTQUFTLENBQUMsT0FBdUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLHlCQUFpQixDQUFDLENBQUM7S0FDbEQ7SUFFRCx5REFBeUQ7SUFDekQsVUFBVTtJQUNWLHlEQUF5RDtJQUV6RDs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsVUFBa0IsRUFBRSxVQUF5QixFQUFFLEtBQXFCO1FBQ2hGLE1BQU0sV0FBVyxHQUFnQjtZQUMvQixTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLFVBQVU7WUFDVixhQUFhLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMxRCxHQUFHLEtBQUs7U0FDVCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQzFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCLENBQUMsS0FBcUI7UUFDNUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxzQkFBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDakY7SUFFRDs7Ozs7O09BTUc7SUFDSSx1QkFBdUIsQ0FBQyxLQUFxQjtRQUNsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUMzRjtJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLEtBQWtCO1FBQ3hDLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87U0FDOUMsQ0FBQyxDQUFDO0tBQ0o7O0FBdkhILGdDQXdIQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgSVJlc291cmNlLCBSZXNvdXJjZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElQb2xpY3lSZWYsIFBvbGljeVJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB0eXBlIHsgRGltZW5zaW9uc01hcCwgTWV0cmljT3B0aW9ucywgTWV0cmljUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBNZXRyaWMsIFN0YXRzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbi8vIEludGVybmFsIGltcG9ydHNcbmltcG9ydCB7IFBPTElDWV9SRUFEX1BFUk1TIH0gZnJvbSAnLi9wZXJtcyc7XG5pbXBvcnQgdHlwZSB7IElQb2xpY3lFbmdpbmUgfSBmcm9tICcuL3BvbGljeS1lbmdpbmUtYmFzZSc7XG5pbXBvcnQgdHlwZSB7IFBvbGljeVZhbGlkYXRpb25Nb2RlIH0gZnJvbSAnLi9wb2xpY3ktdHlwZXMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogTWluaW1hbCByZWZlcmVuY2UgaW50ZXJmYWNlIGZvciBQb2xpY3kgcmVzb3VyY2VzLlxuICogVXNlZCBmb3IgcmVzb3VyY2UgaWRlbnRpZmljYXRpb24gYW5kIEFSTiBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBvbGljeSBleHRlbmRzIElSZXNvdXJjZSwgSVBvbGljeVJlZiwgaWFtLklHcmFudGFibGUge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgcG9saWN5IHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHBvbGljeVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcG9saWN5XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvbGljeSBlbmdpbmUgdGhpcyBwb2xpY3kgYmVsb25ncyB0b1xuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lFbmdpbmU6IElQb2xpY3lFbmdpbmU7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcG9saWN5XG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhbGlkYXRpb24gbW9kZSBmb3IgdGhlIHBvbGljeVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGlvbk1vZGU/OiBQb2xpY3lWYWxpZGF0aW9uTW9kZTtcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5IChkYXRhIHBsYW5lKS5cbiAgICpcbiAgICogVGhpcyBncmFudHMgcnVudGltZSByZWFkIGFjY2VzcyB0byBwb2xpY3kgY29uZmlndXJhdGlvbi4gVXNlIHRoaXMgZm9yIG1vbml0b3JpbmcsXG4gICAqIGF1ZGl0LCBvciByZWFkLW9ubHkgYWRtaW5pc3RyYXRpdmUgcm9sZXMgdGhhdCBuZWVkIHRvIGluc3BlY3QgcG9saWN5IGRlZmluaXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHJlYWQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgcG9saWN5LlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBldmFsdWF0aW9ucyBmb3IgdGhpcyBwb2xpY3kuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHRyYWNrcyBob3cgbWFueSB0aW1lcyB0aGlzIHBvbGljeSBoYXMgYmVlbiBldmFsdWF0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbWV0cmljRXZhbHVhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgbWVhc3VyaW5nIHRoZSBldmFsdWF0aW9uIGxhdGVuY3kgZm9yIHRoaXMgcG9saWN5LlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyByZXByZXNlbnRzIHRoZSB0aW1lIHRha2VuIHRvIGV2YWx1YXRlIHRoaXMgc3BlY2lmaWMgcG9saWN5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpY0V2YWx1YXRpb25MYXRlbmN5KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgUG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwb2xpY3lcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGVuZ2luZSB0aGlzIHBvbGljeSBiZWxvbmdzIHRvXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6cHJlZmVyLXJlZi1pbnRlcmZhY2VdXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lFbmdpbmU6IElQb2xpY3lFbmdpbmU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgQUJTVFJBQ1QgQkFTRSBDTEFTU1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGEgUG9saWN5LlxuICogQ29udGFpbnMgbWV0aG9kcyBhbmQgYXR0cmlidXRlcyB2YWxpZCBmb3IgUG9saWNpZXMgZWl0aGVyIGNyZWF0ZWQgd2l0aCBDREsgb3IgaW1wb3J0ZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb2xpY3lCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJUG9saWN5IHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcG9saWN5SWQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeUVuZ2luZTogSVBvbGljeUVuZ2luZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdmFsaWRhdGlvbk1vZGU/OiBQb2xpY3lWYWxpZGF0aW9uTW9kZTtcblxuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhpcyBQb2xpY3kgcmVzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBvbGljeVJlZigpOiBQb2xpY3lSZWZlcmVuY2Uge1xuICAgIHJldHVybiB7XG4gICAgICBwb2xpY3lBcm46IHRoaXMucG9saWN5QXJuLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzb3VyY2VQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSAtIFRoZSBJQU0gcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSBhY3Rpb25zIC0gVGhlIGFjdGlvbnMgdG8gZ3JhbnRcbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBncmFudChncmFudGVlOiBpYW0uSUdyYW50YWJsZSwgLi4uYWN0aW9uczogc3RyaW5nW10pOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLnBvbGljeUFybl0sXG4gICAgICBzY29wZTogdGhpcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5IChkYXRhIHBsYW5lKS5cbiAgICpcbiAgICogVGhpcyBncmFudHMgcnVudGltZSByZWFkIGFjY2VzcyB0byBwb2xpY3kgY29uZmlndXJhdGlvbi4gVXNlIHRoaXMgZm9yIG1vbml0b3JpbmcsXG4gICAqIGF1ZGl0LCBvciByZWFkLW9ubHkgYWRtaW5pc3RyYXRpdmUgcm9sZXMgdGhhdCBuZWVkIHRvIGluc3BlY3QgcG9saWN5IGRlZmluaXRpb25zXG4gICAqIGFuZCBDZWRhciBzdGF0ZW1lbnRzIGF0IHJ1bnRpbWUuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyBkb2VzIE5PVCBncmFudCBwZXJtaXNzaW9ucyB0byBjcmVhdGUvdXBkYXRlL2RlbGV0ZSB0aGUgUG9saWN5XG4gICAqIHJlc291cmNlIGl0c2VsZi4gVGhvc2UgYXJlIGNvbnRyb2wgcGxhbmUgb3BlcmF0aW9ucyBwZXJmb3JtZWQgYnkgQ2xvdWRGb3JtYXRpb25cbiAgICogZHVyaW5nIGBjZGsgZGVwbG95YCwgbm90IGJ5IHlvdXIgYXBwbGljYXRpb24gYXQgcnVudGltZS5cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uUE9MSUNZX1JFQURfUEVSTVMpO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIHBvbGljeS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgdGhlIG1ldHJpYyB3aWxsIGJlIGNhbGN1bGF0ZWQgYXMgYSBzdW0gb3ZlciBhIHBlcmlvZCBvZiA1IG1pbnV0ZXMuXG4gICAqIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgYnkgdXNpbmcgdGhlIGBzdGF0aXN0aWNgIGFuZCBgcGVyaW9kYCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIGNvbnN0IG1ldHJpY1Byb3BzOiBNZXRyaWNQcm9wcyA9IHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyAuLi5kaW1lbnNpb25zLCBSZXNvdXJjZTogdGhpcy5wb2xpY3lBcm4gfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlTWV0cmljKG1ldHJpY1Byb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGV2YWx1YXRpb25zIGZvciB0aGlzIHBvbGljeS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGhvdyBtYW55IHRpbWVzIHRoaXMgcG9saWN5IGhhcyBiZWVuIGV2YWx1YXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXZhbHVhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1BvbGljeUV2YWx1YXRpb25zJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGV2YWx1YXRpb24gbGF0ZW5jeSBmb3IgdGhpcyBwb2xpY3kuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgdGFrZW4gdG8gZXZhbHVhdGUgdGhpcyBzcGVjaWZpYyBwb2xpY3kuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpY0V2YWx1YXRpb25MYXRlbmN5KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdQb2xpY3lFdmFsdWF0aW9uTGF0ZW5jeScsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGNyZWF0ZSBhIG1ldHJpYy5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,11 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.PolicyEngineBase = void 0;
|
|
4
37
|
const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
|
|
5
38
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
39
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
40
|
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
|
|
8
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
41
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
9
42
|
// Internal imports
|
|
10
43
|
const perms_1 = require("./perms");
|
|
11
44
|
/******************************************************************************
|
|
@@ -16,7 +49,7 @@ const perms_1 = require("./perms");
|
|
|
16
49
|
* Contains methods and attributes valid for PolicyEngines either created with CDK or imported.
|
|
17
50
|
*/
|
|
18
51
|
class PolicyEngineBase extends aws_cdk_lib_1.Resource {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.PolicyEngineBase", version: "2.
|
|
52
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.PolicyEngineBase", version: "2.258.0-alpha.0" };
|
|
20
53
|
/**
|
|
21
54
|
* A reference to this PolicyEngine resource.
|
|
22
55
|
*/
|
|
@@ -190,4 +223,4 @@ class PolicyEngineBase extends aws_cdk_lib_1.Resource {
|
|
|
190
223
|
}
|
|
191
224
|
}
|
|
192
225
|
exports.PolicyEngineBase = PolicyEngineBase;
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWVuZ2luZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicG9saWN5LWVuZ2luZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBY0EsNkNBQXFEO0FBR3JELCtEQUEyRDtBQUMzRCwyQ0FBMkM7QUFHM0MsbUJBQW1CO0FBQ25CLG1DQUFpRjtBQXlJakY7OytFQUUrRTtBQUUvRTs7O0dBR0c7QUFDSCxNQUFzQixnQkFBaUIsU0FBUSxzQkFBUTs7SUFZckQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDeEIsT0FBTztZQUNMLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN0QyxDQUFDO0tBQ0g7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekI7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxPQUF1QixFQUFFLEdBQUcsT0FBaUI7UUFDeEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDckMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FBQyxPQUF1QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsZ0NBQXdCLENBQUMsQ0FBQztLQUN6RDtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksYUFBYSxDQUFDLE9BQXVCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxvQ0FBNEIsQ0FBQyxDQUFDO0tBQzdEO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNJLHVCQUF1QixDQUFDLE9BQXVCLEVBQUUsT0FBaUI7Ozs7Ozs7Ozs7UUFDdkUsTUFB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IGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgSVJlc291cmNlLCBSZXNvdXJjZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgSVBvbGljeUVuZ2luZVJlZiwgUG9saWN5RW5naW5lUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHR5cGUgeyBEaW1lbnNpb25zTWFwLCBNZXRyaWNPcHRpb25zLCBNZXRyaWNQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IE1ldHJpYywgU3RhdHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG4vLyBJbnRlcm5hbCBpbXBvcnRzXG5pbXBvcnQgeyBQT0xJQ1lfRU5HSU5FX0VWQUxVQVRFX1BFUk1TLCBQT0xJQ1lfRU5HSU5FX1JFQURfUEVSTVMgfSBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB0eXBlIHsgSUdhdGV3YXkgfSBmcm9tICcuLi9nYXRld2F5L2dhdGV3YXktYmFzZSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBDb250YWlucyBhbGwgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgYm90aCBjcmVhdGVkIGFuZCBpbXBvcnRlZCBwb2xpY3kgZW5naW5lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUG9saWN5RW5naW5lIGV4dGVuZHMgSVJlc291cmNlLCBJUG9saWN5RW5naW5lUmVmLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwb2xpY3kgZW5naW5lIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUVuZ2luZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHBvbGljeSBlbmdpbmVcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RW5naW5lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBvbGljeSBlbmdpbmVcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RW5naW5lTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHBvbGljeSBlbmdpbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5RW5naW5lLlxuICAgKlxuICAgKiBUaGlzIGdyYW50cyBydW50aW1lIHJlYWQgYWNjZXNzIHRvIHBvbGljeSBlbmdpbmUgY29uZmlndXJhdGlvbi4gVXNlIHRoaXMgZm9yXG4gICAqIG1vbml0b3JpbmcsIG9ic2VydmFiaWxpdHksIG9yIHJlYWQtb25seSBhZG1pbmlzdHJhdGl2ZSByb2xlcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9ucyB0byBldmFsdWF0ZSBwb2xpY2llcyBhdCBydW50aW1lIC5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgcHJpbWFyeSBwZXJtaXNzaW9uIG5lZWRlZCBieSBHYXRld2F5IGV4ZWN1dGlvbiByb2xlcyB0byBldmFsdWF0ZVxuICAgKiBhdXRob3JpemF0aW9uIGRlY2lzaW9ucyBkdXJpbmcgYWdlbnQgcmVxdWVzdHMuIEdyYW50IHRoaXMgdG8gcm9sZXMgdGhhdCBuZWVkXG4gICAqIHRvIGNhbGwgQXV0aG9yaXplQWN0aW9uIG9yIFBhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgZXZhbHVhdGlvbiBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRFdmFsdWF0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBmdWxsIHNldCBvZiBwZXJtaXNzaW9ucyByZXF1aXJlZCBmb3IgYSBnYXRld2F5IGV4ZWN1dGlvbiByb2xlIHRvIHVzZVxuICAgKiB0aGlzIHBvbGljeSBlbmdpbmUsIGNvcnJlY3RseSBzY29wZWQgdG8gYm90aCB0aGUgcG9saWN5IGVuZ2luZSBhbmQgZ2F0ZXdheSBBUk5zLlxuICAgKlxuICAgKiBQZXIgdGhlIEFXUyBkb2NzLCBgQXV0aG9yaXplQWN0aW9uYCBhbmQgYFBhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnNgIHJlcXVpcmVcbiAgICogYm90aCB0aGUgcG9saWN5IGVuZ2luZSBBUk4gYW5kIHRoZSBnYXRld2F5IEFSTiBhcyByZXNvdXJjZXMsIHdoaWxlXG4gICAqIGBHZXRQb2xpY3lFbmdpbmVgIG9ubHkgbmVlZHMgdGhlIHBvbGljeSBlbmdpbmUgQVJOLlxuICAgKlxuICAgKiBUaGlzIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyBMYW1iZGEncyBgZ3JhbnRJbnZva2VWZXJzaW9uKGdyYW50ZWUsIHZlcnNpb24pYC5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCAoZ2F0ZXdheSBleGVjdXRpb24gcm9sZSkgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGdhdGV3YXkgLSBUaGUgZ2F0ZXdheSB0aGF0IHdpbGwgdXNlIHRoaXMgcG9saWN5IGVuZ2luZSBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgZ3JhbnRFdmFsdWF0ZUZvckdhdGV3YXkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIGdhdGV3YXk6IElHYXRld2F5KTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgYXV0aG9yaXphdGlvbiBsYXRlbmN5IGZvciB0aGlzIHBvbGljeSBlbmdpbmUuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgdGFrZW4gdG8gZXZhbHVhdGUgYXV0aG9yaXphdGlvbiBwb2xpY2llcy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBtZXRyaWNBdXRob3JpemF0aW9uTGF0ZW5jeShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZGVuaWVkIGF1dGhvcml6YXRpb24gcmVxdWVzdHMgZm9yIHRoaXMgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGF1dGhvcml6YXRpb24gcmVxdWVzdHMgdGhhdCB3ZXJlIGV4cGxpY2l0bHkgZGVuaWVkIGJ5IHBvbGljaWVzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpY0RlbmllZFJlcXVlc3RzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBlcnJvcnMgZHVyaW5nIGF1dGhvcml6YXRpb24gZm9yIHRoaXMgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGVycm9ycyBlbmNvdW50ZXJlZCBkdXJpbmcgcG9saWN5IGV2YWx1YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbWV0cmljRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgUG9saWN5RW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5RW5naW5lQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwb2xpY3kgZW5naW5lXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lFbmdpbmVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgQVJOIHVzZWQgZm9yIGVuY3J5cHRpb24gKG9wdGlvbmFsKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIEtNUyBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUFybj86IHN0cmluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICBBQlNUUkFDVCBCQVNFIENMQVNTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYSBQb2xpY3lFbmdpbmUuXG4gKiBDb250YWlucyBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzIHZhbGlkIGZvciBQb2xpY3lFbmdpbmVzIGVpdGhlciBjcmVhdGVkIHdpdGggQ0RLIG9yIGltcG9ydGVkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9saWN5RW5naW5lQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVBvbGljeUVuZ2luZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwb2xpY3lFbmdpbmVBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeUVuZ2luZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwb2xpY3lFbmdpbmVOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGlzIFBvbGljeUVuZ2luZSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcG9saWN5RW5naW5lUmVmKCk6IFBvbGljeUVuZ2luZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvbGljeUVuZ2luZUFybjogdGhpcy5wb2xpY3lFbmdpbmVBcm4sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMucG9saWN5RW5naW5lQXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5RW5naW5lIChkYXRhIHBsYW5lKS5cbiAgICpcbiAgICogVGhpcyBncmFudHMgcnVudGltZSByZWFkIGFjY2VzcyB0byBwb2xpY3kgZW5naW5lIGNvbmZpZ3VyYXRpb24uIFVzZSB0aGlzIGZvclxuICAgKiBtb25pdG9yaW5nLCBvYnNlcnZhYmlsaXR5LCBvciByZWFkLW9ubHkgYWRtaW5pc3RyYXRpdmUgcm9sZXMgdGhhdCBuZWVkIHRvIGluc3BlY3RcbiAgICogcG9saWN5IGVuZ2luZSBzZXR0aW5ncyBhdCBydW50aW1lLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5QT0xJQ1lfRU5HSU5FX1JFQURfUEVSTVMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9ucyB0byBldmFsdWF0ZSBwb2xpY2llcyBhdCBydW50aW1lIChkYXRhIHBsYW5lIG9wZXJhdGlvbnMpLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBwcmltYXJ5IHBlcm1pc3Npb24gbmVlZGVkIGJ5IEdhdGV3YXkgZXhlY3V0aW9uIHJvbGVzIHRvIGV2YWx1YXRlXG4gICAqIGF1dGhvcml6YXRpb24gZGVjaXNpb25zIGR1cmluZyBhZ2VudCByZXF1ZXN0cy4gR3JhbnQgdGhpcyB0byByb2xlcyB0aGF0IG5lZWRcbiAgICogdG8gY2FsbCBBdXRob3JpemVBY3Rpb24gb3IgUGFydGlhbGx5QXV0aG9yaXplQWN0aW9ucyBhdCBydW50aW1lLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBldmFsdWF0aW9uIHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRFdmFsdWF0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uUE9MSUNZX0VOR0lORV9FVkFMVUFURV9QRVJNUyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBmdWxsIHNldCBvZiBwZXJtaXNzaW9ucyByZXF1aXJlZCBmb3IgYSBnYXRld2F5IGV4ZWN1dGlvbiByb2xlIHRvIHVzZVxuICAgKiB0aGlzIHBvbGljeSBlbmdpbmUsIGNvcnJlY3RseSBzY29wZWQgdG8gYm90aCB0aGUgcG9saWN5IGVuZ2luZSBhbmQgZ2F0ZXdheSBBUk5zLlxuICAgKlxuICAgKiBQZXIgdGhlIEFXUyBkb2NzOlxuICAgKiAtIGBHZXRQb2xpY3lFbmdpbmVgIOKGkiBwb2xpY3kgZW5naW5lIEFSTiBvbmx5XG4gICAqIC0gYEF1dGhvcml6ZUFjdGlvbmAgKyBgUGFydGlhbGx5QXV0aG9yaXplQWN0aW9uc2Ag4oaSIHBvbGljeSBlbmdpbmUgQVJOICoqYW5kKiogZ2F0ZXdheSBBUk5cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgKGdhdGV3YXkgZXhlY3V0aW9uIHJvbGUpIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSBnYXRld2F5IC0gVGhlIGdhdGV3YXkgdGhhdCB3aWxsIHVzZSB0aGlzIHBvbGljeSBlbmdpbmUgW2Rpc2FibGUtYXdzbGludDpwcmVmZXItcmVmLWludGVyZmFjZV1cbiAgICogQHJldHVybnMgQSBjb21iaW5lZCBJQU0gR3JhbnQgcmVwcmVzZW50aW5nIGFsbCBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRFdmFsdWF0ZUZvckdhdGV3YXkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIGdhdGV3YXk6IElHYXRld2F5KTogaWFtLkdyYW50IHtcbiAgICBjb25zdCBnZXRQb2xpY3lFbmdpbmVHcmFudCA9IHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ2JlZHJvY2stYWdlbnRjb3JlOkdldFBvbGljeUVuZ2luZScpO1xuXG4gICAgLy8gdXNpbmcgIGdhdGV3YXkubmFtZSBoZXJlIHRvIGF2b2lkIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuIFBvbGljeUVuZ2luZSBhbmQgR2F0ZXdheSB0aGF0XG4gICAgLy8gYXJpc2VzIGlmIHdlIHRyeSB0byByZWZlcmVuY2UgZ2F0ZXdheS5nYXRld2F5QXJuLlxuICAgIC8vIEFkZGl0aW9uYWxseSwgQmVkcm9ja0FnZW50Q29yZSBhcHBlbmRzIGEgcmFuZG9tIHN1ZmZpeCB0byBnYXRld2F5IG5hbWVzIGF0IGNyZWF0aW9uIHRpbWUsIHNvIHRoZSBleGFjdCBBUk5cbiAgICAvLyBpcyB1bmtub3dhYmxlIGF0IHN5bnRoZXNpcy4gVXNpbmcgYCR7Z2F0ZXdheS5uYW1lfS0qYCBhbGxvd3MgdXMgdG8gY29ycmVjdGx5IG1hdGNoIHRoZSBhY3R1YWwgQVJOIGF0IHJ1bnRpbWUuXG4gICAgY29uc3QgZ2F0ZXdheVJlc291cmNlTmFtZSA9IFRva2VuLmlzVW5yZXNvbHZlZChnYXRld2F5Lm5hbWUpID8gJyonIDogYCR7Z2F0ZXdheS5uYW1lfS0qYDtcbiAgICBjb25zdCBnYXRld2F5QXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdiZWRyb2NrLWFnZW50Y29yZScsXG4gICAgICByZXNvdXJjZTogJ2dhdGV3YXknLFxuICAgICAgcmVzb3VyY2VOYW1lOiBnYXRld2F5UmVzb3VyY2VOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aG9yaXphdGlvbkdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpBdXRob3JpemVBY3Rpb24nLFxuICAgICAgICAnYmVkcm9jay1hZ2VudGNvcmU6UGFydGlhbGx5QXV0aG9yaXplQWN0aW9ucycsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5wb2xpY3lFbmdpbmVBcm4sIGdhdGV3YXlBcm5dLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdldFBvbGljeUVuZ2luZUdyYW50LmNvbWJpbmUoYXV0aG9yaXphdGlvbkdyYW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgbWV0cmljIHdpbGwgYmUgY2FsY3VsYXRlZCBhcyBhIHN1bSBvdmVyIGEgcGVyaW9kIG9mIDUgbWludXRlcy5cbiAgICogWW91IGNhbiBjdXN0b21pemUgdGhpcyBieSB1c2luZyB0aGUgYHN0YXRpc3RpY2AgYW5kIGBwZXJpb2RgIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIGRpbWVuc2lvbnMgQWRkaXRpb25hbCBkaW1lbnNpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgY29uc3QgbWV0cmljUHJvcHM6IE1ldHJpY1Byb3BzID0ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJyxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7IC4uLmRpbWVuc2lvbnMsIFJlc291cmNlOiB0aGlzLnBvbGljeUVuZ2luZUFybiB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVNZXRyaWMobWV0cmljUHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgYXV0aG9yaXphdGlvbnMgZm9yIHRoaXMgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGFsbCBhdXRob3JpemF0aW9uIHJlcXVlc3RzIHByb2Nlc3NlZCBieSB0aGUgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljQXV0aG9yaXphdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0F1dGhvcml6YXRpb25zJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGF1dGhvcml6YXRpb24gbGF0ZW5jeSBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyByZXByZXNlbnRzIHRoZSB0aW1lIHRha2VuIHRvIGV2YWx1YXRlIGF1dGhvcml6YXRpb24gcG9saWNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpY0F1dGhvcml6YXRpb25MYXRlbmN5KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdBdXRob3JpemF0aW9uTGF0ZW5jeScsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBkZW5pZWQgYXV0aG9yaXphdGlvbiByZXF1ZXN0cyBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyB0cmFja3MgYXV0aG9yaXphdGlvbiByZXF1ZXN0cyB0aGF0IHdlcmUgZXhwbGljaXRseSBkZW5pZWQgYnkgcG9saWNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpY0RlbmllZFJlcXVlc3RzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdEZW5pZWRSZXF1ZXN0cycsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGVycm9ycyBkdXJpbmcgYXV0aG9yaXphdGlvbiBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyB0cmFja3MgZXJyb3JzIGVuY291bnRlcmVkIGR1cmluZyBwb2xpY3kgZXZhbHVhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdFcnJvcnMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGNyZWF0ZSBhIG1ldHJpYy5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWVuZ2luZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicG9saWN5LWVuZ2luZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsNkNBQXFEO0FBR3JELCtEQUEyRDtBQUMzRCx5REFBMkM7QUFHM0MsbUJBQW1CO0FBQ25CLG1DQUFpRjtBQXlJakY7OytFQUUrRTtBQUUvRTs7O0dBR0c7QUFDSCxNQUFzQixnQkFBaUIsU0FBUSxzQkFBUTs7SUFZckQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDeEIsT0FBTztZQUNMLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN0QyxDQUFDO0tBQ0g7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekI7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxPQUF1QixFQUFFLEdBQUcsT0FBaUI7UUFDeEQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDckMsQ0FBQyxDQUFDO0tBQ0o7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FBQyxPQUF1QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsZ0NBQXdCLENBQUMsQ0FBQztLQUN6RDtJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksYUFBYSxDQUFDLE9BQXVCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxvQ0FBNEIsQ0FBQyxDQUFDO0tBQzdEO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNJLHVCQUF1QixDQUFDLE9B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ICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgSVJlc291cmNlLCBSZXNvdXJjZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFN0YWNrLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlIHsgSVBvbGljeUVuZ2luZVJlZiwgUG9saWN5RW5naW5lUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHR5cGUgeyBEaW1lbnNpb25zTWFwLCBNZXRyaWNPcHRpb25zLCBNZXRyaWNQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCB7IE1ldHJpYywgU3RhdHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG4vLyBJbnRlcm5hbCBpbXBvcnRzXG5pbXBvcnQgeyBQT0xJQ1lfRU5HSU5FX0VWQUxVQVRFX1BFUk1TLCBQT0xJQ1lfRU5HSU5FX1JFQURfUEVSTVMgfSBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB0eXBlIHsgSUdhdGV3YXkgfSBmcm9tICcuLi9nYXRld2F5L2dhdGV3YXktYmFzZSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBDb250YWlucyBhbGwgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgYm90aCBjcmVhdGVkIGFuZCBpbXBvcnRlZCBwb2xpY3kgZW5naW5lcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUG9saWN5RW5naW5lIGV4dGVuZHMgSVJlc291cmNlLCBJUG9saWN5RW5naW5lUmVmLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwb2xpY3kgZW5naW5lIHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeUVuZ2luZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHBvbGljeSBlbmdpbmVcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RW5naW5lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBvbGljeSBlbmdpbmVcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RW5naW5lTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIHBvbGljeSBlbmdpbmVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgS01TIGtleSB1c2VkIGZvciBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBrbXNLZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogR3JhbnRzIElBTSBhY3Rpb25zIHRvIHRoZSBJQU0gUHJpbmNpcGFsXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKi9cbiAgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5RW5naW5lLlxuICAgKlxuICAgKiBUaGlzIGdyYW50cyBydW50aW1lIHJlYWQgYWNjZXNzIHRvIHBvbGljeSBlbmdpbmUgY29uZmlndXJhdGlvbi4gVXNlIHRoaXMgZm9yXG4gICAqIG1vbml0b3JpbmcsIG9ic2VydmFiaWxpdHksIG9yIHJlYWQtb25seSBhZG1pbmlzdHJhdGl2ZSByb2xlcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9ucyB0byBldmFsdWF0ZSBwb2xpY2llcyBhdCBydW50aW1lIC5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgcHJpbWFyeSBwZXJtaXNzaW9uIG5lZWRlZCBieSBHYXRld2F5IGV4ZWN1dGlvbiByb2xlcyB0byBldmFsdWF0ZVxuICAgKiBhdXRob3JpemF0aW9uIGRlY2lzaW9ucyBkdXJpbmcgYWdlbnQgcmVxdWVzdHMuIEdyYW50IHRoaXMgdG8gcm9sZXMgdGhhdCBuZWVkXG4gICAqIHRvIGNhbGwgQXV0aG9yaXplQWN0aW9uIG9yIFBhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgZXZhbHVhdGlvbiBwZXJtaXNzaW9ucyB0b1xuICAgKi9cbiAgZ3JhbnRFdmFsdWF0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBmdWxsIHNldCBvZiBwZXJtaXNzaW9ucyByZXF1aXJlZCBmb3IgYSBnYXRld2F5IGV4ZWN1dGlvbiByb2xlIHRvIHVzZVxuICAgKiB0aGlzIHBvbGljeSBlbmdpbmUsIGNvcnJlY3RseSBzY29wZWQgdG8gYm90aCB0aGUgcG9saWN5IGVuZ2luZSBhbmQgZ2F0ZXdheSBBUk5zLlxuICAgKlxuICAgKiBQZXIgdGhlIEFXUyBkb2NzLCBgQXV0aG9yaXplQWN0aW9uYCBhbmQgYFBhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnNgIHJlcXVpcmVcbiAgICogYm90aCB0aGUgcG9saWN5IGVuZ2luZSBBUk4gYW5kIHRoZSBnYXRld2F5IEFSTiBhcyByZXNvdXJjZXMsIHdoaWxlXG4gICAqIGBHZXRQb2xpY3lFbmdpbmVgIG9ubHkgbmVlZHMgdGhlIHBvbGljeSBlbmdpbmUgQVJOLlxuICAgKlxuICAgKiBUaGlzIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybiBhcyBMYW1iZGEncyBgZ3JhbnRJbnZva2VWZXJzaW9uKGdyYW50ZWUsIHZlcnNpb24pYC5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCAoZ2F0ZXdheSBleGVjdXRpb24gcm9sZSkgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGdhdGV3YXkgLSBUaGUgZ2F0ZXdheSB0aGF0IHdpbGwgdXNlIHRoaXMgcG9saWN5IGVuZ2luZSBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKi9cbiAgZ3JhbnRFdmFsdWF0ZUZvckdhdGV3YXkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIGdhdGV3YXk6IElHYXRld2F5KTogaWFtLkdyYW50O1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBUaGUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBkaW1lbnNpb25zIEFkZGl0aW9uYWwgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgYXV0aG9yaXphdGlvbiBsYXRlbmN5IGZvciB0aGlzIHBvbGljeSBlbmdpbmUuXG4gICAqXG4gICAqIFRoaXMgbWV0cmljIHJlcHJlc2VudHMgdGhlIHRpbWUgdGFrZW4gdG8gZXZhbHVhdGUgYXV0aG9yaXphdGlvbiBwb2xpY2llcy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBtZXRyaWNBdXRob3JpemF0aW9uTGF0ZW5jeShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZGVuaWVkIGF1dGhvcml6YXRpb24gcmVxdWVzdHMgZm9yIHRoaXMgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGF1dGhvcml6YXRpb24gcmVxdWVzdHMgdGhhdCB3ZXJlIGV4cGxpY2l0bHkgZGVuaWVkIGJ5IHBvbGljaWVzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgT3B0aW9uYWwgbWV0cmljIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIG1ldHJpY0RlbmllZFJlcXVlc3RzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBlcnJvcnMgZHVyaW5nIGF1dGhvcml6YXRpb24gZm9yIHRoaXMgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGVycm9ycyBlbmNvdW50ZXJlZCBkdXJpbmcgcG9saWN5IGV2YWx1YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgbWV0cmljRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgUG9saWN5RW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5RW5naW5lQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwb2xpY3kgZW5naW5lXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lFbmdpbmVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEtNUyBrZXkgQVJOIHVzZWQgZm9yIGVuY3J5cHRpb24gKG9wdGlvbmFsKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIEtNUyBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUFybj86IHN0cmluZztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICBBQlNUUkFDVCBCQVNFIENMQVNTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYSBQb2xpY3lFbmdpbmUuXG4gKiBDb250YWlucyBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzIHZhbGlkIGZvciBQb2xpY3lFbmdpbmVzIGVpdGhlciBjcmVhdGVkIHdpdGggQ0RLIG9yIGltcG9ydGVkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9saWN5RW5naW5lQmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVBvbGljeUVuZ2luZSB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwb2xpY3lFbmdpbmVBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHBvbGljeUVuZ2luZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBwb2xpY3lFbmdpbmVOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGttc0tleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGlzIFBvbGljeUVuZ2luZSByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcG9saWN5RW5naW5lUmVmKCk6IFBvbGljeUVuZ2luZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBvbGljeUVuZ2luZUFybjogdGhpcy5wb2xpY3lFbmdpbmVBcm4sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICogQHBhcmFtIGFjdGlvbnMgLSBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMucG9saWN5RW5naW5lQXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgUG9saWN5RW5naW5lIChkYXRhIHBsYW5lKS5cbiAgICpcbiAgICogVGhpcyBncmFudHMgcnVudGltZSByZWFkIGFjY2VzcyB0byBwb2xpY3kgZW5naW5lIGNvbmZpZ3VyYXRpb24uIFVzZSB0aGlzIGZvclxuICAgKiBtb25pdG9yaW5nLCBvYnNlcnZhYmlsaXR5LCBvciByZWFkLW9ubHkgYWRtaW5pc3RyYXRpdmUgcm9sZXMgdGhhdCBuZWVkIHRvIGluc3BlY3RcbiAgICogcG9saWN5IGVuZ2luZSBzZXR0aW5ncyBhdCBydW50aW1lLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCByZWFkIHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAuLi5QT0xJQ1lfRU5HSU5FX1JFQURfUEVSTVMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9ucyB0byBldmFsdWF0ZSBwb2xpY2llcyBhdCBydW50aW1lIChkYXRhIHBsYW5lIG9wZXJhdGlvbnMpLlxuICAgKlxuICAgKiBUaGlzIGlzIHRoZSBwcmltYXJ5IHBlcm1pc3Npb24gbmVlZGVkIGJ5IEdhdGV3YXkgZXhlY3V0aW9uIHJvbGVzIHRvIGV2YWx1YXRlXG4gICAqIGF1dGhvcml6YXRpb24gZGVjaXNpb25zIGR1cmluZyBhZ2VudCByZXF1ZXN0cy4gR3JhbnQgdGhpcyB0byByb2xlcyB0aGF0IG5lZWRcbiAgICogdG8gY2FsbCBBdXRob3JpemVBY3Rpb24gb3IgUGFydGlhbGx5QXV0aG9yaXplQWN0aW9ucyBhdCBydW50aW1lLlxuICAgKlxuICAgKiBbZGlzYWJsZS1hd3NsaW50Om5vLWdyYW50c11cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBldmFsdWF0aW9uIHBlcm1pc3Npb25zIHRvXG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRFdmFsdWF0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhbnQoZ3JhbnRlZSwgLi4uUE9MSUNZX0VOR0lORV9FVkFMVUFURV9QRVJNUyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHRoZSBmdWxsIHNldCBvZiBwZXJtaXNzaW9ucyByZXF1aXJlZCBmb3IgYSBnYXRld2F5IGV4ZWN1dGlvbiByb2xlIHRvIHVzZVxuICAgKiB0aGlzIHBvbGljeSBlbmdpbmUsIGNvcnJlY3RseSBzY29wZWQgdG8gYm90aCB0aGUgcG9saWN5IGVuZ2luZSBhbmQgZ2F0ZXdheSBBUk5zLlxuICAgKlxuICAgKiBQZXIgdGhlIEFXUyBkb2NzOlxuICAgKiAtIGBHZXRQb2xpY3lFbmdpbmVgIOKGkiBwb2xpY3kgZW5naW5lIEFSTiBvbmx5XG4gICAqIC0gYEF1dGhvcml6ZUFjdGlvbmAgKyBgUGFydGlhbGx5QXV0aG9yaXplQWN0aW9uc2Ag4oaSIHBvbGljeSBlbmdpbmUgQVJOICoqYW5kKiogZ2F0ZXdheSBBUk5cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgKGdhdGV3YXkgZXhlY3V0aW9uIHJvbGUpIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqIEBwYXJhbSBnYXRld2F5IC0gVGhlIGdhdGV3YXkgdGhhdCB3aWxsIHVzZSB0aGlzIHBvbGljeSBlbmdpbmUgW2Rpc2FibGUtYXdzbGludDpwcmVmZXItcmVmLWludGVyZmFjZV1cbiAgICogQHJldHVybnMgQSBjb21iaW5lZCBJQU0gR3JhbnQgcmVwcmVzZW50aW5nIGFsbCBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRFdmFsdWF0ZUZvckdhdGV3YXkoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIGdhdGV3YXk6IElHYXRld2F5KTogaWFtLkdyYW50IHtcbiAgICBjb25zdCBnZXRQb2xpY3lFbmdpbmVHcmFudCA9IHRoaXMuZ3JhbnQoZ3JhbnRlZSwgJ2JlZHJvY2stYWdlbnRjb3JlOkdldFBvbGljeUVuZ2luZScpO1xuXG4gICAgLy8gdXNpbmcgIGdhdGV3YXkubmFtZSBoZXJlIHRvIGF2b2lkIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSBiZXR3ZWVuIFBvbGljeUVuZ2luZSBhbmQgR2F0ZXdheSB0aGF0XG4gICAgLy8gYXJpc2VzIGlmIHdlIHRyeSB0byByZWZlcmVuY2UgZ2F0ZXdheS5nYXRld2F5QXJuLlxuICAgIC8vIEFkZGl0aW9uYWxseSwgQmVkcm9ja0FnZW50Q29yZSBhcHBlbmRzIGEgcmFuZG9tIHN1ZmZpeCB0byBnYXRld2F5IG5hbWVzIGF0IGNyZWF0aW9uIHRpbWUsIHNvIHRoZSBleGFjdCBBUk5cbiAgICAvLyBpcyB1bmtub3dhYmxlIGF0IHN5bnRoZXNpcy4gVXNpbmcgYCR7Z2F0ZXdheS5uYW1lfS0qYCBhbGxvd3MgdXMgdG8gY29ycmVjdGx5IG1hdGNoIHRoZSBhY3R1YWwgQVJOIGF0IHJ1bnRpbWUuXG4gICAgY29uc3QgZ2F0ZXdheVJlc291cmNlTmFtZSA9IFRva2VuLmlzVW5yZXNvbHZlZChnYXRld2F5Lm5hbWUpID8gJyonIDogYCR7Z2F0ZXdheS5uYW1lfS0qYDtcbiAgICBjb25zdCBnYXRld2F5QXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdiZWRyb2NrLWFnZW50Y29yZScsXG4gICAgICByZXNvdXJjZTogJ2dhdGV3YXknLFxuICAgICAgcmVzb3VyY2VOYW1lOiBnYXRld2F5UmVzb3VyY2VOYW1lLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aG9yaXphdGlvbkdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdiZWRyb2NrLWFnZW50Y29yZTpBdXRob3JpemVBY3Rpb24nLFxuICAgICAgICAnYmVkcm9jay1hZ2VudGNvcmU6UGFydGlhbGx5QXV0aG9yaXplQWN0aW9ucycsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5wb2xpY3lFbmdpbmVBcm4sIGdhdGV3YXlBcm5dLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdldFBvbGljeUVuZ2luZUdyYW50LmNvbWJpbmUoYXV0aG9yaXphdGlvbkdyYW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgbWV0cmljIHdpbGwgYmUgY2FsY3VsYXRlZCBhcyBhIHN1bSBvdmVyIGEgcGVyaW9kIG9mIDUgbWludXRlcy5cbiAgICogWW91IGNhbiBjdXN0b21pemUgdGhpcyBieSB1c2luZyB0aGUgYHN0YXRpc3RpY2AgYW5kIGBwZXJpb2RgIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRyaWNOYW1lIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIGRpbWVuc2lvbnMgQWRkaXRpb25hbCBkaW1lbnNpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgY29uc3QgbWV0cmljUHJvcHM6IE1ldHJpY1Byb3BzID0ge1xuICAgICAgbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJyxcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7IC4uLmRpbWVuc2lvbnMsIFJlc291cmNlOiB0aGlzLnBvbGljeUVuZ2luZUFybiB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVNZXRyaWMobWV0cmljUHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgYXV0aG9yaXphdGlvbnMgZm9yIHRoaXMgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogVGhpcyBtZXRyaWMgdHJhY2tzIGFsbCBhdXRob3JpemF0aW9uIHJlcXVlc3RzIHByb2Nlc3NlZCBieSB0aGUgcG9saWN5IGVuZ2luZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljQXV0aG9yaXphdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0F1dGhvcml6YXRpb25zJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGF1dGhvcml6YXRpb24gbGF0ZW5jeSBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyByZXByZXNlbnRzIHRoZSB0aW1lIHRha2VuIHRvIGV2YWx1YXRlIGF1dGhvcml6YXRpb24gcG9saWNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpY0F1dGhvcml6YXRpb25MYXRlbmN5KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdBdXRob3JpemF0aW9uTGF0ZW5jeScsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuQVZFUkFHRSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBkZW5pZWQgYXV0aG9yaXphdGlvbiByZXF1ZXN0cyBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyB0cmFja3MgYXV0aG9yaXphdGlvbiByZXF1ZXN0cyB0aGF0IHdlcmUgZXhwbGljaXRseSBkZW5pZWQgYnkgcG9saWNpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBPcHRpb25hbCBtZXRyaWMgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIG1ldHJpY0RlbmllZFJlcXVlc3RzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdEZW5pZWRSZXF1ZXN0cycsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGVycm9ycyBkdXJpbmcgYXV0aG9yaXphdGlvbiBmb3IgdGhpcyBwb2xpY3kgZW5naW5lLlxuICAgKlxuICAgKiBUaGlzIG1ldHJpYyB0cmFja3MgZXJyb3JzIGVuY291bnRlcmVkIGR1cmluZyBwb2xpY3kgZXZhbHVhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIE9wdGlvbmFsIG1ldHJpYyBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdFcnJvcnMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGNyZWF0ZSBhIG1ldHJpYy5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|