@aws-cdk/aws-glue-alpha 2.219.0-alpha.0 → 2.221.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +3 -3
- package/.jsii.tabl.json.gz +0 -0
- package/lib/code.js +9 -8
- package/lib/connection.js +261 -214
- package/lib/data-format.js +243 -229
- package/lib/data-quality-ruleset.js +115 -66
- package/lib/database.js +133 -75
- package/lib/external-table.js +169 -110
- package/lib/jobs/job.js +6 -12
- package/lib/jobs/pyspark-etl-job.js +113 -70
- package/lib/jobs/pyspark-flex-etl-job.js +115 -72
- package/lib/jobs/pyspark-streaming-job.js +113 -70
- package/lib/jobs/python-shell-job.js +129 -84
- package/lib/jobs/ray-job.js +119 -74
- package/lib/jobs/scala-spark-etl-job.js +115 -72
- package/lib/jobs/scala-spark-flex-etl-job.js +115 -72
- package/lib/jobs/scala-spark-streaming-job.js +115 -72
- package/lib/jobs/spark-job.js +11 -4
- package/lib/s3-table.js +196 -125
- package/lib/schema.js +67 -69
- package/lib/security-configuration.js +144 -89
- package/lib/storage-parameter.js +4 -4
- package/lib/table-base.js +39 -15
- package/lib/table-deprecated.js +57 -16
- package/lib/triggers/trigger-options.js +3 -4
- package/lib/triggers/workflow.js +114 -75
- package/package.json +9 -8
package/lib/connection.js
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
3
|
+
var useValue = arguments.length > 2;
|
|
4
|
+
for (var i = 0; i < initializers.length; i++) {
|
|
5
|
+
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
6
|
+
}
|
|
7
|
+
return useValue ? value : void 0;
|
|
8
|
+
};
|
|
9
|
+
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
10
|
+
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
11
|
+
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
12
|
+
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
13
|
+
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
14
|
+
var _, done = false;
|
|
15
|
+
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
16
|
+
var context = {};
|
|
17
|
+
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
18
|
+
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
19
|
+
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
20
|
+
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
21
|
+
if (kind === "accessor") {
|
|
22
|
+
if (result === void 0) continue;
|
|
23
|
+
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
24
|
+
if (_ = accept(result.get)) descriptor.get = _;
|
|
25
|
+
if (_ = accept(result.set)) descriptor.set = _;
|
|
26
|
+
if (_ = accept(result.init)) initializers.unshift(_);
|
|
27
|
+
}
|
|
28
|
+
else if (_ = accept(result)) {
|
|
29
|
+
if (kind === "field") initializers.unshift(_);
|
|
30
|
+
else descriptor[key] = _;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
34
|
+
done = true;
|
|
7
35
|
};
|
|
8
|
-
var _a, _b;
|
|
9
|
-
var Connection_1;
|
|
10
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
37
|
exports.Connection = exports.ConnectionType = void 0;
|
|
12
38
|
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
|
|
@@ -24,6 +50,125 @@ const prop_injectable_1 = require("aws-cdk-lib/core/lib/prop-injectable");
|
|
|
24
50
|
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectiontype
|
|
25
51
|
*/
|
|
26
52
|
class ConnectionType {
|
|
53
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionType", version: "2.221.0-alpha.0" };
|
|
54
|
+
/**
|
|
55
|
+
* Designates a connection to a database through Java Database Connectivity (JDBC).
|
|
56
|
+
*/
|
|
57
|
+
static JDBC = new ConnectionType('JDBC');
|
|
58
|
+
/**
|
|
59
|
+
* Designates a connection to an Apache Kafka streaming platform.
|
|
60
|
+
*/
|
|
61
|
+
static KAFKA = new ConnectionType('KAFKA');
|
|
62
|
+
/**
|
|
63
|
+
* Designates a connection to a MongoDB document database.
|
|
64
|
+
*/
|
|
65
|
+
static MONGODB = new ConnectionType('MONGODB');
|
|
66
|
+
/**
|
|
67
|
+
* Designates a connection used for view validation by Amazon Redshift.
|
|
68
|
+
*/
|
|
69
|
+
static VIEW_VALIDATION_REDSHIFT = new ConnectionType('VIEW_VALIDATION_REDSHIFT');
|
|
70
|
+
/**
|
|
71
|
+
* Designates a connection used for view validation by Amazon Athena.
|
|
72
|
+
*/
|
|
73
|
+
static VIEW_VALIDATION_ATHENA = new ConnectionType('VIEW_VALIDATION_ATHENA');
|
|
74
|
+
/**
|
|
75
|
+
* Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC).
|
|
76
|
+
*/
|
|
77
|
+
static NETWORK = new ConnectionType('NETWORK');
|
|
78
|
+
/**
|
|
79
|
+
* Uses configuration settings contained in a connector purchased from AWS Marketplace
|
|
80
|
+
* to read from and write to data stores that are not natively supported by AWS Glue.
|
|
81
|
+
*/
|
|
82
|
+
static MARKETPLACE = new ConnectionType('MARKETPLACE');
|
|
83
|
+
/**
|
|
84
|
+
* Uses configuration settings contained in a custom connector to read from and write to data stores
|
|
85
|
+
* that are not natively supported by AWS Glue.
|
|
86
|
+
*/
|
|
87
|
+
static CUSTOM = new ConnectionType('CUSTOM');
|
|
88
|
+
/**
|
|
89
|
+
* Designates a connection to Facebook Ads.
|
|
90
|
+
*/
|
|
91
|
+
static FACEBOOKADS = new ConnectionType('FACEBOOKADS');
|
|
92
|
+
/**
|
|
93
|
+
* Designates a connection to Google Ads.
|
|
94
|
+
*/
|
|
95
|
+
static GOOGLEADS = new ConnectionType('GOOGLEADS');
|
|
96
|
+
/**
|
|
97
|
+
* Designates a connection to Google Sheets.
|
|
98
|
+
*/
|
|
99
|
+
static GOOGLESHEETS = new ConnectionType('GOOGLESHEETS');
|
|
100
|
+
/**
|
|
101
|
+
* Designates a connection to Google Analytics 4.
|
|
102
|
+
*/
|
|
103
|
+
static GOOGLEANALYTICS4 = new ConnectionType('GOOGLEANALYTICS4');
|
|
104
|
+
/**
|
|
105
|
+
* Designates a connection to HubSpot.
|
|
106
|
+
*/
|
|
107
|
+
static HUBSPOT = new ConnectionType('HUBSPOT');
|
|
108
|
+
/**
|
|
109
|
+
* Designates a connection to Instagram Ads.
|
|
110
|
+
*/
|
|
111
|
+
static INSTAGRAMADS = new ConnectionType('INSTAGRAMADS');
|
|
112
|
+
/**
|
|
113
|
+
* Designates a connection to Intercom.
|
|
114
|
+
*/
|
|
115
|
+
static INTERCOM = new ConnectionType('INTERCOM');
|
|
116
|
+
/**
|
|
117
|
+
* Designates a connection to Jira Cloud.
|
|
118
|
+
*/
|
|
119
|
+
static JIRACLOUD = new ConnectionType('JIRACLOUD');
|
|
120
|
+
/**
|
|
121
|
+
* Designates a connection to Adobe Marketo Engage.
|
|
122
|
+
*/
|
|
123
|
+
static MARKETO = new ConnectionType('MARKETO');
|
|
124
|
+
/**
|
|
125
|
+
* Designates a connection to Oracle NetSuite.
|
|
126
|
+
*/
|
|
127
|
+
static NETSUITEERP = new ConnectionType('NETSUITEERP');
|
|
128
|
+
/**
|
|
129
|
+
* Designates a connection to Salesforce using OAuth authentication.
|
|
130
|
+
*/
|
|
131
|
+
static SALESFORCE = new ConnectionType('SALESFORCE');
|
|
132
|
+
/**
|
|
133
|
+
* Designates a connection to Salesforce Marketing Cloud.
|
|
134
|
+
*/
|
|
135
|
+
static SALESFORCEMARKETINGCLOUD = new ConnectionType('SALESFORCEMARKETINGCLOUD');
|
|
136
|
+
/**
|
|
137
|
+
* Designates a connection to Salesforce Marketing Cloud Account Engagement (MCAE).
|
|
138
|
+
*/
|
|
139
|
+
static SALESFORCEPARDOT = new ConnectionType('SALESFORCEPARDOT');
|
|
140
|
+
/**
|
|
141
|
+
* Designates a connection to SAP OData.
|
|
142
|
+
*/
|
|
143
|
+
static SAPODATA = new ConnectionType('SAPODATA');
|
|
144
|
+
/**
|
|
145
|
+
* Designates a connection to ServiceNow.
|
|
146
|
+
*/
|
|
147
|
+
static SERVICENOW = new ConnectionType('SERVICENOW');
|
|
148
|
+
/**
|
|
149
|
+
* Designates a connection to Slack.
|
|
150
|
+
*/
|
|
151
|
+
static SLACK = new ConnectionType('SLACK');
|
|
152
|
+
/**
|
|
153
|
+
* Designates a connection to Snapchat Ads.
|
|
154
|
+
*/
|
|
155
|
+
static SNAPCHATADS = new ConnectionType('SNAPCHATADS');
|
|
156
|
+
/**
|
|
157
|
+
* Designates a connection to Stripe.
|
|
158
|
+
*/
|
|
159
|
+
static STRIPE = new ConnectionType('STRIPE');
|
|
160
|
+
/**
|
|
161
|
+
* Designates a connection to Zendesk.
|
|
162
|
+
*/
|
|
163
|
+
static ZENDESK = new ConnectionType('ZENDESK');
|
|
164
|
+
/**
|
|
165
|
+
* Designates a connection to Zoho CRM.
|
|
166
|
+
*/
|
|
167
|
+
static ZOHOCRM = new ConnectionType('ZOHOCRM');
|
|
168
|
+
/**
|
|
169
|
+
* The name of this ConnectionType, as expected by Connection resource.
|
|
170
|
+
*/
|
|
171
|
+
name;
|
|
27
172
|
constructor(name) {
|
|
28
173
|
this.name = name;
|
|
29
174
|
}
|
|
@@ -35,221 +180,123 @@ class ConnectionType {
|
|
|
35
180
|
}
|
|
36
181
|
}
|
|
37
182
|
exports.ConnectionType = ConnectionType;
|
|
38
|
-
_a = JSII_RTTI_SYMBOL_1;
|
|
39
|
-
ConnectionType[_a] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionType", version: "2.219.0-alpha.0" };
|
|
40
|
-
/**
|
|
41
|
-
* Designates a connection to a database through Java Database Connectivity (JDBC).
|
|
42
|
-
*/
|
|
43
|
-
ConnectionType.JDBC = new ConnectionType('JDBC');
|
|
44
|
-
/**
|
|
45
|
-
* Designates a connection to an Apache Kafka streaming platform.
|
|
46
|
-
*/
|
|
47
|
-
ConnectionType.KAFKA = new ConnectionType('KAFKA');
|
|
48
|
-
/**
|
|
49
|
-
* Designates a connection to a MongoDB document database.
|
|
50
|
-
*/
|
|
51
|
-
ConnectionType.MONGODB = new ConnectionType('MONGODB');
|
|
52
|
-
/**
|
|
53
|
-
* Designates a connection used for view validation by Amazon Redshift.
|
|
54
|
-
*/
|
|
55
|
-
ConnectionType.VIEW_VALIDATION_REDSHIFT = new ConnectionType('VIEW_VALIDATION_REDSHIFT');
|
|
56
|
-
/**
|
|
57
|
-
* Designates a connection used for view validation by Amazon Athena.
|
|
58
|
-
*/
|
|
59
|
-
ConnectionType.VIEW_VALIDATION_ATHENA = new ConnectionType('VIEW_VALIDATION_ATHENA');
|
|
60
|
-
/**
|
|
61
|
-
* Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC).
|
|
62
|
-
*/
|
|
63
|
-
ConnectionType.NETWORK = new ConnectionType('NETWORK');
|
|
64
|
-
/**
|
|
65
|
-
* Uses configuration settings contained in a connector purchased from AWS Marketplace
|
|
66
|
-
* to read from and write to data stores that are not natively supported by AWS Glue.
|
|
67
|
-
*/
|
|
68
|
-
ConnectionType.MARKETPLACE = new ConnectionType('MARKETPLACE');
|
|
69
|
-
/**
|
|
70
|
-
* Uses configuration settings contained in a custom connector to read from and write to data stores
|
|
71
|
-
* that are not natively supported by AWS Glue.
|
|
72
|
-
*/
|
|
73
|
-
ConnectionType.CUSTOM = new ConnectionType('CUSTOM');
|
|
74
|
-
/**
|
|
75
|
-
* Designates a connection to Facebook Ads.
|
|
76
|
-
*/
|
|
77
|
-
ConnectionType.FACEBOOKADS = new ConnectionType('FACEBOOKADS');
|
|
78
|
-
/**
|
|
79
|
-
* Designates a connection to Google Ads.
|
|
80
|
-
*/
|
|
81
|
-
ConnectionType.GOOGLEADS = new ConnectionType('GOOGLEADS');
|
|
82
|
-
/**
|
|
83
|
-
* Designates a connection to Google Sheets.
|
|
84
|
-
*/
|
|
85
|
-
ConnectionType.GOOGLESHEETS = new ConnectionType('GOOGLESHEETS');
|
|
86
|
-
/**
|
|
87
|
-
* Designates a connection to Google Analytics 4.
|
|
88
|
-
*/
|
|
89
|
-
ConnectionType.GOOGLEANALYTICS4 = new ConnectionType('GOOGLEANALYTICS4');
|
|
90
|
-
/**
|
|
91
|
-
* Designates a connection to HubSpot.
|
|
92
|
-
*/
|
|
93
|
-
ConnectionType.HUBSPOT = new ConnectionType('HUBSPOT');
|
|
94
|
-
/**
|
|
95
|
-
* Designates a connection to Instagram Ads.
|
|
96
|
-
*/
|
|
97
|
-
ConnectionType.INSTAGRAMADS = new ConnectionType('INSTAGRAMADS');
|
|
98
|
-
/**
|
|
99
|
-
* Designates a connection to Intercom.
|
|
100
|
-
*/
|
|
101
|
-
ConnectionType.INTERCOM = new ConnectionType('INTERCOM');
|
|
102
|
-
/**
|
|
103
|
-
* Designates a connection to Jira Cloud.
|
|
104
|
-
*/
|
|
105
|
-
ConnectionType.JIRACLOUD = new ConnectionType('JIRACLOUD');
|
|
106
|
-
/**
|
|
107
|
-
* Designates a connection to Adobe Marketo Engage.
|
|
108
|
-
*/
|
|
109
|
-
ConnectionType.MARKETO = new ConnectionType('MARKETO');
|
|
110
|
-
/**
|
|
111
|
-
* Designates a connection to Oracle NetSuite.
|
|
112
|
-
*/
|
|
113
|
-
ConnectionType.NETSUITEERP = new ConnectionType('NETSUITEERP');
|
|
114
|
-
/**
|
|
115
|
-
* Designates a connection to Salesforce using OAuth authentication.
|
|
116
|
-
*/
|
|
117
|
-
ConnectionType.SALESFORCE = new ConnectionType('SALESFORCE');
|
|
118
|
-
/**
|
|
119
|
-
* Designates a connection to Salesforce Marketing Cloud.
|
|
120
|
-
*/
|
|
121
|
-
ConnectionType.SALESFORCEMARKETINGCLOUD = new ConnectionType('SALESFORCEMARKETINGCLOUD');
|
|
122
|
-
/**
|
|
123
|
-
* Designates a connection to Salesforce Marketing Cloud Account Engagement (MCAE).
|
|
124
|
-
*/
|
|
125
|
-
ConnectionType.SALESFORCEPARDOT = new ConnectionType('SALESFORCEPARDOT');
|
|
126
|
-
/**
|
|
127
|
-
* Designates a connection to SAP OData.
|
|
128
|
-
*/
|
|
129
|
-
ConnectionType.SAPODATA = new ConnectionType('SAPODATA');
|
|
130
|
-
/**
|
|
131
|
-
* Designates a connection to ServiceNow.
|
|
132
|
-
*/
|
|
133
|
-
ConnectionType.SERVICENOW = new ConnectionType('SERVICENOW');
|
|
134
|
-
/**
|
|
135
|
-
* Designates a connection to Slack.
|
|
136
|
-
*/
|
|
137
|
-
ConnectionType.SLACK = new ConnectionType('SLACK');
|
|
138
|
-
/**
|
|
139
|
-
* Designates a connection to Snapchat Ads.
|
|
140
|
-
*/
|
|
141
|
-
ConnectionType.SNAPCHATADS = new ConnectionType('SNAPCHATADS');
|
|
142
|
-
/**
|
|
143
|
-
* Designates a connection to Stripe.
|
|
144
|
-
*/
|
|
145
|
-
ConnectionType.STRIPE = new ConnectionType('STRIPE');
|
|
146
|
-
/**
|
|
147
|
-
* Designates a connection to Zendesk.
|
|
148
|
-
*/
|
|
149
|
-
ConnectionType.ZENDESK = new ConnectionType('ZENDESK');
|
|
150
|
-
/**
|
|
151
|
-
* Designates a connection to Zoho CRM.
|
|
152
|
-
*/
|
|
153
|
-
ConnectionType.ZOHOCRM = new ConnectionType('ZOHOCRM');
|
|
154
183
|
/**
|
|
155
184
|
* An AWS Glue connection to a data source.
|
|
156
185
|
*/
|
|
157
|
-
let Connection =
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
186
|
+
let Connection = (() => {
|
|
187
|
+
let _classDecorators = [prop_injectable_1.propertyInjectable];
|
|
188
|
+
let _classDescriptor;
|
|
189
|
+
let _classExtraInitializers = [];
|
|
190
|
+
let _classThis;
|
|
191
|
+
let _classSuper = cdk.Resource;
|
|
192
|
+
let _instanceExtraInitializers = [];
|
|
193
|
+
let _addProperty_decorators;
|
|
194
|
+
var Connection = class extends _classSuper {
|
|
195
|
+
static { _classThis = this; }
|
|
196
|
+
static {
|
|
197
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
198
|
+
_addProperty_decorators = [(0, metadata_resource_1.MethodMetadata)()];
|
|
199
|
+
__esDecorate(this, null, _addProperty_decorators, { kind: "method", name: "addProperty", static: false, private: false, access: { has: obj => "addProperty" in obj, get: obj => obj.addProperty }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
200
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
201
|
+
Connection = _classThis = _classDescriptor.value;
|
|
202
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
203
|
+
}
|
|
204
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Connection", version: "2.221.0-alpha.0" };
|
|
205
|
+
/** Uniquely identifies this class. */
|
|
206
|
+
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Connection';
|
|
207
|
+
/**
|
|
208
|
+
* Creates a Connection construct that represents an external connection.
|
|
209
|
+
*
|
|
210
|
+
* @param scope The scope creating construct (usually `this`).
|
|
211
|
+
* @param id The construct's id.
|
|
212
|
+
* @param connectionArn arn of external connection.
|
|
213
|
+
*/
|
|
214
|
+
static fromConnectionArn(scope, id, connectionArn) {
|
|
215
|
+
class Import extends cdk.Resource {
|
|
216
|
+
connectionName = cdk.Arn.extractResourceName(connectionArn, 'connection');
|
|
217
|
+
connectionArn = connectionArn;
|
|
171
218
|
}
|
|
219
|
+
return new Import(scope, id);
|
|
172
220
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
constructor() {
|
|
185
|
-
super(...arguments);
|
|
186
|
-
this.connectionName = connectionName;
|
|
187
|
-
this.connectionArn = Connection_1.buildConnectionArn(scope, connectionName);
|
|
221
|
+
/**
|
|
222
|
+
* Creates a Connection construct that represents an external connection.
|
|
223
|
+
*
|
|
224
|
+
* @param scope The scope creating construct (usually `this`).
|
|
225
|
+
* @param id The construct's id.
|
|
226
|
+
* @param connectionName name of external connection.
|
|
227
|
+
*/
|
|
228
|
+
static fromConnectionName(scope, id, connectionName) {
|
|
229
|
+
class Import extends cdk.Resource {
|
|
230
|
+
connectionName = connectionName;
|
|
231
|
+
connectionArn = Connection.buildConnectionArn(scope, connectionName);
|
|
188
232
|
}
|
|
233
|
+
return new Import(scope, id);
|
|
189
234
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
resourceName: connectionName,
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
constructor(scope, id, props) {
|
|
200
|
-
super(scope, id, {
|
|
201
|
-
physicalName: props.connectionName,
|
|
202
|
-
});
|
|
203
|
-
try {
|
|
204
|
-
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ConnectionProps(props);
|
|
235
|
+
static buildConnectionArn(scope, connectionName) {
|
|
236
|
+
return cdk.Stack.of(scope).formatArn({
|
|
237
|
+
service: 'glue',
|
|
238
|
+
resource: 'connection',
|
|
239
|
+
resourceName: connectionName,
|
|
240
|
+
});
|
|
205
241
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
242
|
+
/**
|
|
243
|
+
* The ARN of the connection
|
|
244
|
+
*/
|
|
245
|
+
connectionArn = __runInitializers(this, _instanceExtraInitializers);
|
|
246
|
+
/**
|
|
247
|
+
* The name of the connection
|
|
248
|
+
*/
|
|
249
|
+
connectionName;
|
|
250
|
+
properties;
|
|
251
|
+
constructor(scope, id, props) {
|
|
252
|
+
super(scope, id, {
|
|
253
|
+
physicalName: props.connectionName,
|
|
254
|
+
});
|
|
255
|
+
try {
|
|
256
|
+
jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ConnectionProps(props);
|
|
209
257
|
}
|
|
210
|
-
|
|
258
|
+
catch (error) {
|
|
259
|
+
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
|
|
260
|
+
Error.captureStackTrace(error, Connection);
|
|
261
|
+
}
|
|
262
|
+
throw error;
|
|
263
|
+
}
|
|
264
|
+
// Enhanced CDK Analytics Telemetry
|
|
265
|
+
(0, metadata_resource_1.addConstructMetadata)(this, props);
|
|
266
|
+
this.properties = props.properties || {};
|
|
267
|
+
const physicalConnectionRequirements = props.subnet || props.securityGroups ? {
|
|
268
|
+
availabilityZone: props.subnet ? props.subnet.availabilityZone : undefined,
|
|
269
|
+
subnetId: props.subnet ? props.subnet.subnetId : undefined,
|
|
270
|
+
securityGroupIdList: props.securityGroups ? props.securityGroups.map(sg => sg.securityGroupId) : undefined,
|
|
271
|
+
} : undefined;
|
|
272
|
+
const connectionResource = new aws_glue_1.CfnConnection(this, 'Resource', {
|
|
273
|
+
catalogId: cdk.Stack.of(this).account,
|
|
274
|
+
connectionInput: {
|
|
275
|
+
connectionProperties: cdk.Lazy.any({ produce: () => Object.keys(this.properties).length > 0 ? this.properties : undefined }),
|
|
276
|
+
connectionType: props.type.name,
|
|
277
|
+
description: props.description,
|
|
278
|
+
matchCriteria: props.matchCriteria,
|
|
279
|
+
name: props.connectionName,
|
|
280
|
+
physicalConnectionRequirements,
|
|
281
|
+
},
|
|
282
|
+
});
|
|
283
|
+
const resourceName = this.getResourceNameAttribute(connectionResource.ref);
|
|
284
|
+
this.connectionArn = Connection.buildConnectionArn(this, resourceName);
|
|
285
|
+
this.connectionName = resourceName;
|
|
211
286
|
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
matchCriteria: props.matchCriteria,
|
|
227
|
-
name: props.connectionName,
|
|
228
|
-
physicalConnectionRequirements,
|
|
229
|
-
},
|
|
230
|
-
});
|
|
231
|
-
const resourceName = this.getResourceNameAttribute(connectionResource.ref);
|
|
232
|
-
this.connectionArn = Connection_1.buildConnectionArn(this, resourceName);
|
|
233
|
-
this.connectionName = resourceName;
|
|
234
|
-
}
|
|
235
|
-
/**
|
|
236
|
-
* Add additional connection parameters
|
|
237
|
-
* @param key parameter key
|
|
238
|
-
* @param value parameter value
|
|
239
|
-
*/
|
|
240
|
-
addProperty(key, value) {
|
|
241
|
-
this.properties[key] = value;
|
|
242
|
-
}
|
|
243
|
-
};
|
|
287
|
+
/**
|
|
288
|
+
* Add additional connection parameters
|
|
289
|
+
* @param key parameter key
|
|
290
|
+
* @param value parameter value
|
|
291
|
+
*/
|
|
292
|
+
addProperty(key, value) {
|
|
293
|
+
this.properties[key] = value;
|
|
294
|
+
}
|
|
295
|
+
static {
|
|
296
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
return Connection = _classThis;
|
|
300
|
+
})();
|
|
244
301
|
exports.Connection = Connection;
|
|
245
|
-
_b = JSII_RTTI_SYMBOL_1;
|
|
246
|
-
Connection[_b] = { fqn: "@aws-cdk/aws-glue-alpha.Connection", version: "2.219.0-alpha.0" };
|
|
247
|
-
/** Uniquely identifies this class. */
|
|
248
|
-
Connection.PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Connection';
|
|
249
|
-
__decorate([
|
|
250
|
-
(0, metadata_resource_1.MethodMetadata)()
|
|
251
|
-
], Connection.prototype, "addProperty", null);
|
|
252
|
-
exports.Connection = Connection = Connection_1 = __decorate([
|
|
253
|
-
prop_injectable_1.propertyInjectable
|
|
254
|
-
], Connection);
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUNBLHdDQUF3QztBQUV4QyxtREFBcUQ7QUFDckQsOEVBQThGO0FBQzlGLDBFQUEwRTtBQUUxRTs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxjQUFjO0lBb0p6QixZQUFZLElBQVk7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7S0FDbEI7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7S0FDbEI7O0FBN0pILHdDQThKQzs7O0FBN0pDOztHQUVHO0FBQ29CLG1CQUFJLEdBQUcsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0Isb0JBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUzRDs7R0FFRztBQUNvQixzQkFBTyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBQ29CLHVDQUF3QixHQUFHLElBQUksY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFakc7O0dBRUc7QUFDb0IscUNBQXNCLEdBQUcsSUFBSSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUU3Rjs7R0FFRztBQUNvQixzQkFBTyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRS9EOzs7R0FHRztBQUNvQiwwQkFBVyxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXZFOzs7R0FHRztBQUNvQixxQkFBTSxHQUFHLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTdEOztHQUVHO0FBQ29CLDBCQUFXLEdBQUcsSUFBSSxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFdkU7O0dBRUc7QUFDb0Isd0JBQVMsR0FBRyxJ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cy1lYzInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IENmbkNvbm5lY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgeyBhZGRDb25zdHJ1Y3RNZXRhZGF0YSwgTWV0aG9kTWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBnbHVlIGNvbm5lY3Rpb25cbiAqXG4gKiBJZiB5b3UgbmVlZCB0byB1c2UgYSBjb25uZWN0aW9uIHR5cGUgdGhhdCBkb2Vzbid0IGV4aXN0IGFzIGEgc3RhdGljIG1lbWJlciwgeW91XG4gKiBjYW4gaW5zdGFudGlhdGUgYSBgQ29ubmVjdGlvblR5cGVgIG9iamVjdCwgZS5nOiBgbmV3IENvbm5lY3Rpb25UeXBlKCdORVdfVFlQRScpYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWdsdWUtY29ubmVjdGlvbi1jb25uZWN0aW9uaW5wdXQuaHRtbCNjZm4tZ2x1ZS1jb25uZWN0aW9uLWNvbm5lY3Rpb25pbnB1dC1jb25uZWN0aW9udHlwZVxuICovXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvblR5cGUge1xuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gYSBkYXRhYmFzZSB0aHJvdWdoIEphdmEgRGF0YWJhc2UgQ29ubmVjdGl2aXR5IChKREJDKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSkRCQyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSkRCQycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBhbiBBcGFjaGUgS2Fma2Egc3RyZWFtaW5nIHBsYXRmb3JtLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBLQUZLQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnS0FGS0EnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gYSBNb25nb0RCIGRvY3VtZW50IGRhdGFiYXNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNT05HT0RCID0gbmV3IENvbm5lY3Rpb25UeXBlKCdNT05HT0RCJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHVzZWQgZm9yIHZpZXcgdmFsaWRhdGlvbiBieSBBbWF6b24gUmVkc2hpZnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFZJRVdfVkFMSURBVElPTl9SRURTSElGVCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnVklFV19WQUxJREFUSU9OX1JFRFNISUZUJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHVzZWQgZm9yIHZpZXcgdmFsaWRhdGlvbiBieSBBbWF6b24gQXRoZW5hLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSUVXX1ZBTElEQVRJT05fQVRIRU5BID0gbmV3IENvbm5lY3Rpb25UeXBlKCdWSUVXX1ZBTElEQVRJT05fQVRIRU5BJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBuZXR3b3JrIGNvbm5lY3Rpb24gdG8gYSBkYXRhIHNvdXJjZSB3aXRoaW4gYW4gQW1hem9uIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCBlbnZpcm9ubWVudCAoQW1hem9uIFZQQykuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5FVFdPUksgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ05FVFdPUksnKTtcblxuICAvKipcbiAgICogVXNlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGNvbnRhaW5lZCBpbiBhIGNvbm5lY3RvciBwdXJjaGFzZWQgZnJvbSBBV1MgTWFya2V0cGxhY2VcbiAgICogdG8gcmVhZCBmcm9tIGFuZCB3cml0ZSB0byBkYXRhIHN0b3JlcyB0aGF0IGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IEFXUyBHbHVlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVJLRVRQTEFDRSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTUFSS0VUUExBQ0UnKTtcblxuICAvKipcbiAgICogVXNlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGNvbnRhaW5lZCBpbiBhIGN1c3RvbSBjb25uZWN0b3IgdG8gcmVhZCBmcm9tIGFuZCB3cml0ZSB0byBkYXRhIHN0b3Jlc1xuICAgKiB0aGF0IGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IEFXUyBHbHVlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVNUT00gPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0NVU1RPTScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBGYWNlYm9vayBBZHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZBQ0VCT09LQURTID0gbmV3IENvbm5lY3Rpb25UeXBlKCdGQUNFQk9PS0FEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgQWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHT09HTEVBRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0dPT0dMRUFEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgU2hlZXRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHT09HTEVTSEVFVFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0dPT0dMRVNIRUVUUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgQW5hbHl0aWNzIDQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPT0dMRUFOQUxZVElDUzQgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0dPT0dMRUFOQUxZVElDUzQnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gSHViU3BvdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSFVCU1BPVCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSFVCU1BPVCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBJbnN0YWdyYW0gQWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlNUQUdSQU1BRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0lOU1RBR1JBTUFEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBJbnRlcmNvbS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URVJDT00gPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0lOVEVSQ09NJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEppcmEgQ2xvdWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpJUkFDTE9VRCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSklSQUNMT1VEJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEFkb2JlIE1hcmtldG8gRW5nYWdlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVJLRVRPID0gbmV3IENvbm5lY3Rpb25UeXBlKCdNQVJLRVRPJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIE9yYWNsZSBOZXRTdWl0ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVUU1VJVEVFUlAgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ05FVFNVSVRFRVJQJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNhbGVzZm9yY2UgdXNpbmcgT0F1dGggYXV0aGVudGljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTEVTRk9SQ0UgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NBTEVTRk9SQ0UnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2FsZXNmb3JjZSBNYXJrZXRpbmcgQ2xvdWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTEVTRk9SQ0VNQVJLRVRJTkdDTE9VRCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FMRVNGT1JDRU1BUktFVElOR0NMT1VEJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNhbGVzZm9yY2UgTWFya2V0aW5nIENsb3VkIEFjY291bnQgRW5nYWdlbWVudCAoTUNBRSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTEVTRk9SQ0VQQVJET1QgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NBTEVTRk9SQ0VQQVJET1QnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU0FQIE9EYXRhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQVBPREFUQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FQT0RBVEEnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2VydmljZU5vdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VSVklDRU5PVyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0VSVklDRU5PVycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTbGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0xBQ0sgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NMQUNLJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNuYXBjaGF0IEFkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU05BUENIQVRBRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NOQVBDSEFUQURTJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFN0cmlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1RSSVBFID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTVFJJUEUnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gWmVuZGVzay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWkVOREVTSyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnWkVOREVTSycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBab2hvIENSTS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWk9IT0NSTSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnWk9IT0NSTScpO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIENvbm5lY3Rpb25UeXBlLCBhcyBleHBlY3RlZCBieSBDb25uZWN0aW9uIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb25uZWN0aW9uIHR5cGUgbmFtZSBhcyBleHBlY3RlZCBieSBDb25uZWN0aW9uIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjcmVhdGVkIG9yIGFuIGltcG9ydGVkIGBDb25uZWN0aW9uYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0aW9uIGV4dGVuZHMgY2RrLklSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29ubmVjdGlvblxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIENvbm5lY3Rpb24gT3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqIEBkZWZhdWx0IGNsb3VkZm9ybWF0aW9uIGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBjb25uZWN0aW9uLlxuICAgKiBAZGVmYXVsdCBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqICBLZXktVmFsdWUgcGFpcnMgdGhhdCBkZWZpbmUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqICBAZGVmYXVsdCBlbXB0eSBwcm9wZXJ0aWVzXG4gICAqICBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtY29ubmVjdC5odG1sXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgaW4gc2VsZWN0aW5nIHRoaXMgY29ubmVjdGlvbi5cbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIGZpbHRlcmluZyB0aGUgcmVzdWx0cyBvZiBodHRwczovL2F3c2NsaS5hbWF6b25hd3MuY29tL3YyL2RvY3VtZW50YXRpb24vYXBpL2xhdGVzdC9yZWZlcmVuY2UvZ2x1ZS9nZXQtY29ubmVjdGlvbnMuaHRtbFxuICAgKiBAZGVmYXVsdCBubyBtYXRjaCBjcml0ZXJpYVxuICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2hDcml0ZXJpYT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBzZWN1cml0eSBncm91cHMgbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBtYWtlIHRoaXMgY29ubmVjdGlvbiBlLmcuIHRvIHN1Y2Nlc3NmdWxseSBjb25uZWN0IHRvIFZQQy5cbiAgICogQGRlZmF1bHQgbm8gc2VjdXJpdHkgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgc3VibmV0IHRvIGNvbm5lY3QgdG8gcmVzb3VyY2VzIHdpdGhpbiBhIFZQQy4gU2VlIG1vcmUgYXQgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL3N0YXJ0LWNvbm5lY3RpbmcuaHRtbC5cbiAgICogQGRlZmF1bHQgbm8gc3VibmV0XG4gICAqL1xuICByZWFkb25seSBzdWJuZXQ/OiBlYzIuSVN1Ym5ldDtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYENvbm5lY3Rpb25gXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQ29ubmVjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IENvbm5lY3Rpb25UeXBlO1xufVxuXG4vKipcbiAqIEFuIEFXUyBHbHVlIGNvbm5lY3Rpb24gdG8gYSBkYXRhIHNvdXJjZS5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb24gZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ29ubmVjdGlvbiB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuQ29ubmVjdGlvbic7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb25uZWN0aW9uIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIGNvbm5lY3Rpb25Bcm4gYXJuIG9mIGV4dGVybmFsIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db25uZWN0aW9uQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29ubmVjdGlvbkFybjogc3RyaW5nKTogSUNvbm5lY3Rpb24ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZSA9IGNkay5Bcm4uZXh0cmFjdFJlc291cmNlTmFtZShjb25uZWN0aW9uQXJuLCAnY29ubmVjdGlvbicpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm4gPSBjb25uZWN0aW9uQXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENvbm5lY3Rpb24gY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIGlkLlxuICAgKiBAcGFyYW0gY29ubmVjdGlvbk5hbWUgbmFtZSBvZiBleHRlcm5hbCBjb25uZWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbk5hbWUoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25uZWN0aW9uTmFtZTogc3RyaW5nKTogSUNvbm5lY3Rpb24ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZSA9IGNvbm5lY3Rpb25OYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm4gPSBDb25uZWN0aW9uLmJ1aWxkQ29ubmVjdGlvbkFybihzY29wZSwgY29ubmVjdGlvbk5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvbm5lY3Rpb25Bcm4oc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBjb25uZWN0aW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICdjb25uZWN0aW9uJyxcbiAgICAgIHJlc291cmNlTmFtZTogY29ubmVjdGlvbk5hbWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY29ubmVjdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcGVydGllczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb25uZWN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuY29ubmVjdGlvbk5hbWUsXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wcy5wcm9wZXJ0aWVzIHx8IHt9O1xuXG4gICAgY29uc3QgcGh5c2ljYWxDb25uZWN0aW9uUmVxdWlyZW1lbnRzID0gcHJvcHMuc3VibmV0IHx8IHByb3BzLnNlY3VyaXR5R3JvdXBzID8ge1xuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogcHJvcHMuc3VibmV0ID8gcHJvcHMuc3VibmV0LmF2YWlsYWJpbGl0eVpvbmUgOiB1bmRlZmluZWQsXG4gICAgICBzdWJuZXRJZDogcHJvcHMuc3VibmV0ID8gcHJvcHMuc3VibmV0LnN1Ym5ldElkIDogdW5kZWZpbmVkLFxuICAgICAgc2VjdXJpdHlHcm91cElkTGlzdDogcHJvcHMuc2VjdXJpdHlHcm91cHMgPyBwcm9wcy5zZWN1cml0eUdyb3Vwcy5tYXAoc2cgPT4gc2cuc2VjdXJpdHlHcm91cElkKSA6IHVuZGVmaW5lZCxcbiAgICB9IDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgY29ubmVjdGlvblJlc291cmNlID0gbmV3IENmbkNvbm5lY3Rpb24odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2F0YWxvZ0lkOiBjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudCxcbiAgICAgIGNvbm5lY3Rpb25JbnB1dDoge1xuICAgICAgICBjb25uZWN0aW9uUHJvcGVydGllczogY2RrLkxhenkuYW55KHsgcHJvZHVjZTogKCkgPT4gT2JqZWN0LmtleXModGhpcy5wcm9wZXJ0aWVzKS5sZW5ndGggPiAwID8gdGhpcy5wcm9wZXJ0aWVzIDogdW5kZWZpbmVkIH0pLFxuICAgICAgICBjb25uZWN0aW9uVHlwZTogcHJvcHMudHlwZS5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIG1hdGNoQ3JpdGVyaWE6IHByb3BzLm1hdGNoQ3JpdGVyaWEsXG4gICAgICAgIG5hbWU6IHByb3BzLmNvbm5lY3Rpb25OYW1lLFxuICAgICAgICBwaHlzaWNhbENvbm5lY3Rpb25SZXF1aXJlbWVudHMsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gdGhpcy5nZXRSZXNvdXJjZU5hbWVBdHRyaWJ1dGUoY29ubmVjdGlvblJlc291cmNlLnJlZik7XG4gICAgdGhpcy5jb25uZWN0aW9uQXJuID0gQ29ubmVjdGlvbi5idWlsZENvbm5lY3Rpb25Bcm4odGhpcywgcmVzb3VyY2VOYW1lKTtcbiAgICB0aGlzLmNvbm5lY3Rpb25OYW1lID0gcmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhZGRpdGlvbmFsIGNvbm5lY3Rpb24gcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ga2V5IHBhcmFtZXRlciBrZXlcbiAgICogQHBhcmFtIHZhbHVlIHBhcmFtZXRlciB2YWx1ZVxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGFkZFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzW2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuIl19
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0Esd0NBQXdDO0FBRXhDLG1EQUFxRDtBQUNyRCw4RUFBOEY7QUFDOUYsMEVBQTBFO0FBRTFFOzs7Ozs7O0dBT0c7QUFDSCxNQUFhLGNBQWM7O0lBQ3pCOztPQUVHO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6RDs7T0FFRztJQUNJLE1BQU0sQ0FBVSxLQUFLLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFM0Q7O09BRUc7SUFDSSxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9EOztPQUVHO0lBQ0ksTUFBTSxDQUFVLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFakc7O09BRUc7SUFDSSxNQUFNLENBQVUsc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUU3Rjs7T0FFRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0Q7OztPQUdHO0lBQ0ksTUFBTSxDQUFVLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV2RTs7O09BR0c7SUFDSSxNQUFNLENBQVUsTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdEOztPQUVHO0lBQ0ksTUFBTSxDQUFVLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV2RTs7T0FFRztJQUNJLE1BQU0sQ0FBVSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxDQUFD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WUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUM7U0FDcEM7UUFFRDs7OztXQUlHO1FBRUksV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFhO1lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQzlCOztZQWhHVSx1REFBVTs7Ozs7QUFBVixnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5Db25uZWN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcblxuLyoqXG4gKiBUaGUgdHlwZSBvZiB0aGUgZ2x1ZSBjb25uZWN0aW9uXG4gKlxuICogSWYgeW91IG5lZWQgdG8gdXNlIGEgY29ubmVjdGlvbiB0eXBlIHRoYXQgZG9lc24ndCBleGlzdCBhcyBhIHN0YXRpYyBtZW1iZXIsIHlvdVxuICogY2FuIGluc3RhbnRpYXRlIGEgYENvbm5lY3Rpb25UeXBlYCBvYmplY3QsIGUuZzogYG5ldyBDb25uZWN0aW9uVHlwZSgnTkVXX1RZUEUnKWAuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1nbHVlLWNvbm5lY3Rpb24tY29ubmVjdGlvbmlucHV0Lmh0bWwjY2ZuLWdsdWUtY29ubmVjdGlvbi1jb25uZWN0aW9uaW5wdXQtY29ubmVjdGlvbnR5cGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25UeXBlIHtcbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIGEgZGF0YWJhc2UgdGhyb3VnaCBKYXZhIERhdGFiYXNlIENvbm5lY3Rpdml0eSAoSkRCQykuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpEQkMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0pEQkMnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gYW4gQXBhY2hlIEthZmthIHN0cmVhbWluZyBwbGF0Zm9ybS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgS0FGS0EgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0tBRktBJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIGEgTW9uZ29EQiBkb2N1bWVudCBkYXRhYmFzZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTU9OR09EQiA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTU9OR09EQicpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB1c2VkIGZvciB2aWV3IHZhbGlkYXRpb24gYnkgQW1hem9uIFJlZHNoaWZ0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSUVXX1ZBTElEQVRJT05fUkVEU0hJRlQgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1ZJRVdfVkFMSURBVElPTl9SRURTSElGVCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB1c2VkIGZvciB2aWV3IHZhbGlkYXRpb24gYnkgQW1hem9uIEF0aGVuYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVklFV19WQUxJREFUSU9OX0FUSEVOQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnVklFV19WQUxJREFUSU9OX0FUSEVOQScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgbmV0d29yayBjb25uZWN0aW9uIHRvIGEgZGF0YSBzb3VyY2Ugd2l0aGluIGFuIEFtYXpvbiBWaXJ0dWFsIFByaXZhdGUgQ2xvdWQgZW52aXJvbm1lbnQgKEFtYXpvbiBWUEMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBORVRXT1JLID0gbmV3IENvbm5lY3Rpb25UeXBlKCdORVRXT1JLJyk7XG5cbiAgLyoqXG4gICAqIFVzZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBjb250YWluZWQgaW4gYSBjb25uZWN0b3IgcHVyY2hhc2VkIGZyb20gQVdTIE1hcmtldHBsYWNlXG4gICAqIHRvIHJlYWQgZnJvbSBhbmQgd3JpdGUgdG8gZGF0YSBzdG9yZXMgdGhhdCBhcmUgbm90IG5hdGl2ZWx5IHN1cHBvcnRlZCBieSBBV1MgR2x1ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFSS0VUUExBQ0UgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ01BUktFVFBMQUNFJyk7XG5cbiAgLyoqXG4gICAqIFVzZXMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBjb250YWluZWQgaW4gYSBjdXN0b20gY29ubmVjdG9yIHRvIHJlYWQgZnJvbSBhbmQgd3JpdGUgdG8gZGF0YSBzdG9yZXNcbiAgICogdGhhdCBhcmUgbm90IG5hdGl2ZWx5IHN1cHBvcnRlZCBieSBBV1MgR2x1ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1VTVE9NID0gbmV3IENvbm5lY3Rpb25UeXBlKCdDVVNUT00nKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gRmFjZWJvb2sgQWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGQUNFQk9PS0FEUyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnRkFDRUJPT0tBRFMnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gR29vZ2xlIEFkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR09PR0xFQURTID0gbmV3IENvbm5lY3Rpb25UeXBlKCdHT09HTEVBRFMnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gR29vZ2xlIFNoZWV0cy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR09PR0xFU0hFRVRTID0gbmV3IENvbm5lY3Rpb25UeXBlKCdHT09HTEVTSEVFVFMnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gR29vZ2xlIEFuYWx5dGljcyA0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHT09HTEVBTkFMWVRJQ1M0ID0gbmV3IENvbm5lY3Rpb25UeXBlKCdHT09HTEVBTkFMWVRJQ1M0Jyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEh1YlNwb3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEhVQlNQT1QgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0hVQlNQT1QnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gSW5zdGFncmFtIEFkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5TVEFHUkFNQURTID0gbmV3IENvbm5lY3Rpb25UeXBlKCdJTlNUQUdSQU1BRFMnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gSW50ZXJjb20uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOVEVSQ09NID0gbmV3IENvbm5lY3Rpb25UeXBlKCdJTlRFUkNPTScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBKaXJhIENsb3VkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBKSVJBQ0xPVUQgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0pJUkFDTE9VRCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBBZG9iZSBNYXJrZXRvIEVuZ2FnZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFSS0VUTyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTUFSS0VUTycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBPcmFjbGUgTmV0U3VpdGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5FVFNVSVRFRVJQID0gbmV3IENvbm5lY3Rpb25UeXBlKCdORVRTVUlURUVSUCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTYWxlc2ZvcmNlIHVzaW5nIE9BdXRoIGF1dGhlbnRpY2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQUxFU0ZPUkNFID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTQUxFU0ZPUkNFJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNhbGVzZm9yY2UgTWFya2V0aW5nIENsb3VkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQUxFU0ZPUkNFTUFSS0VUSU5HQ0xPVUQgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NBTEVTRk9SQ0VNQVJLRVRJTkdDTE9VRCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTYWxlc2ZvcmNlIE1hcmtldGluZyBDbG91ZCBBY2NvdW50IEVuZ2FnZW1lbnQgKE1DQUUpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQUxFU0ZPUkNFUEFSRE9UID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTQUxFU0ZPUkNFUEFSRE9UJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNBUCBPRGF0YS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0FQT0RBVEEgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NBUE9EQVRBJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNlcnZpY2VOb3cuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VOT1cgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NFUlZJQ0VOT1cnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2xhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNMQUNLID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTTEFDSycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTbmFwY2hhdCBBZHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNOQVBDSEFUQURTID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTTkFQQ0hBVEFEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTdHJpcGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNUUklQRSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU1RSSVBFJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFplbmRlc2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFpFTkRFU0sgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1pFTkRFU0snKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gWm9obyBDUk0uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFpPSE9DUk0gPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1pPSE9DUk0nKTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBDb25uZWN0aW9uVHlwZSwgYXMgZXhwZWN0ZWQgYnkgQ29ubmVjdGlvbiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiB0eXBlIG5hbWUgYXMgZXhwZWN0ZWQgYnkgQ29ubmVjdGlvbiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgY3JlYXRlZCBvciBhbiBpbXBvcnRlZCBgQ29ubmVjdGlvbmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29ubmVjdGlvbiBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY29ubmVjdGlvblxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFzZSBDb25uZWN0aW9uIE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29ubmVjdGlvblxuICAgKiBAZGVmYXVsdCBjbG91ZGZvcm1hdGlvbiBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY29ubmVjdGlvbi5cbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAgS2V5LVZhbHVlIHBhaXJzIHRoYXQgZGVmaW5lIHBhcmFtZXRlcnMgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiAgQGRlZmF1bHQgZW1wdHkgcHJvcGVydGllc1xuICAgKiAgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWNvbm5lY3QuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBjcml0ZXJpYSB0aGF0IGNhbiBiZSB1c2VkIGluIHNlbGVjdGluZyB0aGlzIGNvbm5lY3Rpb24uXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciBmaWx0ZXJpbmcgdGhlIHJlc3VsdHMgb2YgaHR0cHM6Ly9hd3NjbGkuYW1hem9uYXdzLmNvbS92Mi9kb2N1bWVudGF0aW9uL2FwaS9sYXRlc3QvcmVmZXJlbmNlL2dsdWUvZ2V0LWNvbm5lY3Rpb25zLmh0bWxcbiAgICogQGRlZmF1bHQgbm8gbWF0Y2ggY3JpdGVyaWFcbiAgICovXG4gIHJlYWRvbmx5IG1hdGNoQ3JpdGVyaWE/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXBzIG5lZWRlZCB0byBzdWNjZXNzZnVsbHkgbWFrZSB0aGlzIGNvbm5lY3Rpb24gZS5nLiB0byBzdWNjZXNzZnVsbHkgY29ubmVjdCB0byBWUEMuXG4gICAqIEBkZWZhdWx0IG5vIHNlY3VyaXR5IGdyb3VwXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHN1Ym5ldCB0byBjb25uZWN0IHRvIHJlc291cmNlcyB3aXRoaW4gYSBWUEMuIFNlZSBtb3JlIGF0IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9zdGFydC1jb25uZWN0aW5nLmh0bWwuXG4gICAqIEBkZWZhdWx0IG5vIHN1Ym5ldFxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0PzogZWMyLklTdWJuZXQ7XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGBDb25uZWN0aW9uYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wcyBleHRlbmRzIENvbm5lY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBDb25uZWN0aW9uVHlwZTtcbn1cblxuLyoqXG4gKiBBbiBBV1MgR2x1ZSBjb25uZWN0aW9uIHRvIGEgZGF0YSBzb3VyY2UuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUNvbm5lY3Rpb24ge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkNvbm5lY3Rpb24nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29ubmVjdGlvbiBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgaWQuXG4gICAqIEBwYXJhbSBjb25uZWN0aW9uQXJuIGFybiBvZiBleHRlcm5hbCBjb25uZWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbkFybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbm5lY3Rpb25Bcm46IHN0cmluZyk6IElDb25uZWN0aW9uIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ29ubmVjdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWUgPSBjZGsuQXJuLmV4dHJhY3RSZXNvdXJjZU5hbWUoY29ubmVjdGlvbkFybiwgJ2Nvbm5lY3Rpb24nKTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuID0gY29ubmVjdGlvbkFybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb25uZWN0aW9uIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIGNvbm5lY3Rpb25OYW1lIG5hbWUgb2YgZXh0ZXJuYWwgY29ubmVjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbm5lY3Rpb25OYW1lKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29ubmVjdGlvbk5hbWU6IHN0cmluZyk6IElDb25uZWN0aW9uIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ29ubmVjdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWUgPSBjb25uZWN0aW9uTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuID0gQ29ubmVjdGlvbi5idWlsZENvbm5lY3Rpb25Bcm4oc2NvcGUsIGNvbm5lY3Rpb25OYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRDb25uZWN0aW9uQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgY29ubmVjdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnbHVlJyxcbiAgICAgIHJlc291cmNlOiAnY29ubmVjdGlvbicsXG4gICAgICByZXNvdXJjZU5hbWU6IGNvbm5lY3Rpb25OYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmNvbm5lY3Rpb25OYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcHMucHJvcGVydGllcyB8fCB7fTtcblxuICAgIGNvbnN0IHBoeXNpY2FsQ29ubmVjdGlvblJlcXVpcmVtZW50cyA9IHByb3BzLnN1Ym5ldCB8fCBwcm9wcy5zZWN1cml0eUdyb3VwcyA/IHtcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHByb3BzLnN1Ym5ldCA/IHByb3BzLnN1Ym5ldC5hdmFpbGFiaWxpdHlab25lIDogdW5kZWZpbmVkLFxuICAgICAgc3VibmV0SWQ6IHByb3BzLnN1Ym5ldCA/IHByb3BzLnN1Ym5ldC5zdWJuZXRJZCA6IHVuZGVmaW5lZCxcbiAgICAgIHNlY3VyaXR5R3JvdXBJZExpc3Q6IHByb3BzLnNlY3VyaXR5R3JvdXBzID8gcHJvcHMuc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCkgOiB1bmRlZmluZWQsXG4gICAgfSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGNvbm5lY3Rpb25SZXNvdXJjZSA9IG5ldyBDZm5Db25uZWN0aW9uKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGNhdGFsb2dJZDogY2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnQsXG4gICAgICBjb25uZWN0aW9uSW5wdXQ6IHtcbiAgICAgICAgY29ubmVjdGlvblByb3BlcnRpZXM6IGNkay5MYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IE9iamVjdC5rZXlzKHRoaXMucHJvcGVydGllcykubGVuZ3RoID4gMCA/IHRoaXMucHJvcGVydGllcyA6IHVuZGVmaW5lZCB9KSxcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IHByb3BzLnR5cGUubmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBtYXRjaENyaXRlcmlhOiBwcm9wcy5tYXRjaENyaXRlcmlhLFxuICAgICAgICBuYW1lOiBwcm9wcy5jb25uZWN0aW9uTmFtZSxcbiAgICAgICAgcGh5c2ljYWxDb25uZWN0aW9uUmVxdWlyZW1lbnRzLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKGNvbm5lY3Rpb25SZXNvdXJjZS5yZWYpO1xuICAgIHRoaXMuY29ubmVjdGlvbkFybiA9IENvbm5lY3Rpb24uYnVpbGRDb25uZWN0aW9uQXJuKHRoaXMsIHJlc291cmNlTmFtZSk7XG4gICAgdGhpcy5jb25uZWN0aW9uTmFtZSA9IHJlc291cmNlTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYWRkaXRpb25hbCBjb25uZWN0aW9uIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIGtleSBwYXJhbWV0ZXIga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBhZGRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHJvcGVydGllc1trZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|