oxygen-cli 1.20.2 → 1.21.0-beta.4
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/CHANGELOG.md +23 -0
- package/build/core/OxygenCore.js +4 -3
- package/build/errors/helper.js +9 -5
- package/build/lib/util.js +5 -2
- package/build/ox_modules/module-db.js +2 -2
- package/build/ox_modules/module-email.js +97 -49
- package/build/ox_modules/module-eyes.js +4 -21
- package/build/ox_modules/module-http.js +59 -49
- package/build/ox_modules/module-mailinator.js +25 -32
- package/build/ox_modules/module-mob/commands/getDeviceLogs.js +4 -11
- package/build/ox_modules/module-mob/commands/selectWindow.js +4 -7
- package/build/ox_modules/module-mob/commands/sendKeys.js +2 -2
- package/build/ox_modules/module-mob.js +65 -52
- package/build/ox_modules/module-pdf.js +12 -32
- package/build/ox_modules/module-proxy.js +9 -9
- package/build/ox_modules/module-serial.js +14 -12
- package/build/ox_modules/module-soap.js +101 -78
- package/build/ox_modules/module-twilio.js +27 -27
- package/build/ox_modules/module-utils.js +43 -5
- package/build/ox_modules/module-web/commands/fullscreenWindow.js +24 -0
- package/build/ox_modules/module-web/commands/index.js +25 -1
- package/build/ox_modules/module-web/commands/isSelected.js +2 -2
- package/build/ox_modules/module-web/commands/maximizeWindow.js +24 -0
- package/build/ox_modules/module-web/commands/minimizeWindow.js +24 -0
- package/build/ox_modules/module-web/commands/selectWindow.js +4 -7
- package/build/ox_modules/module-web/commands/waitForNotExist.js +2 -3
- package/build/ox_modules/module-web.js +87 -64
- package/build/ox_modules/utils.js +22 -4
- package/build/runners/WorkerProcess.js +22 -20
- package/package.json +3 -1
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
|
|
8
8
|
require("source-map-support/register");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _got = _interopRequireDefault(require("got"));
|
|
11
11
|
|
|
12
12
|
var _OxygenModule = _interopRequireDefault(require("../core/OxygenModule"));
|
|
13
13
|
|
|
@@ -32,16 +32,26 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
32
32
|
* @name http
|
|
33
33
|
* @description Provides methods for working with HTTP(S)
|
|
34
34
|
*/
|
|
35
|
-
const deasync = require('deasync');
|
|
36
|
-
|
|
37
35
|
const MODULE_NAME = 'http';
|
|
38
36
|
const RESPONSE_TIMEOUT = 1000 * 30; // in ms
|
|
39
37
|
|
|
38
|
+
const DAFAULT_HTTP2 = false;
|
|
40
39
|
const DEFAULT_HTTP_OPTIONS = {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
timeout:
|
|
44
|
-
|
|
40
|
+
decompress: true,
|
|
41
|
+
responseType: 'json',
|
|
42
|
+
timeout: {
|
|
43
|
+
lookup: 100,
|
|
44
|
+
connect: 50,
|
|
45
|
+
secureConnect: 50,
|
|
46
|
+
socket: 10000,
|
|
47
|
+
send: 10000,
|
|
48
|
+
response: RESPONSE_TIMEOUT
|
|
49
|
+
},
|
|
50
|
+
http2: DAFAULT_HTTP2,
|
|
51
|
+
https: {
|
|
52
|
+
rejectUnauthorized: false
|
|
53
|
+
},
|
|
54
|
+
dnsLookupIpVersion: 'ipv4'
|
|
45
55
|
};
|
|
46
56
|
|
|
47
57
|
class HttpModule extends _OxygenModule.default {
|
|
@@ -65,9 +75,9 @@ class HttpModule extends _OxygenModule.default {
|
|
|
65
75
|
return MODULE_NAME;
|
|
66
76
|
}
|
|
67
77
|
/**
|
|
68
|
-
* @summary Sets user defined HTTP options (such as proxy,
|
|
69
|
-
* @function
|
|
70
|
-
* @param {Object} opts - HTTP request options object, see [Request Options](https://github.com/
|
|
78
|
+
* @summary Sets user defined HTTP options (such as proxy, decompress and etc.)
|
|
79
|
+
* @function setOptions
|
|
80
|
+
* @param {Object} opts - HTTP request options object, see [Request Options](https://github.com/sindresorhus/got/blob/main/documentation/2-options.md).
|
|
71
81
|
* In addition to the options listed in the linked document, 'deflateRaw' option can be used when server returns Deflate-compressed stream without headers.
|
|
72
82
|
*/
|
|
73
83
|
|
|
@@ -76,8 +86,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
76
86
|
this._userHttpOptions = opts;
|
|
77
87
|
|
|
78
88
|
if (opts.deflateRaw) {
|
|
79
|
-
this._userHttpOptions.
|
|
80
|
-
this._userHttpOptions.gzip = false; // gzip=true in default options so we override it
|
|
89
|
+
this._userHttpOptions.decompress = false; // decompress=true in default options so we override it
|
|
81
90
|
}
|
|
82
91
|
}
|
|
83
92
|
/**
|
|
@@ -121,14 +130,14 @@ class HttpModule extends _OxygenModule.default {
|
|
|
121
130
|
*/
|
|
122
131
|
|
|
123
132
|
|
|
124
|
-
get(url, headers) {
|
|
133
|
+
async get(url, headers) {
|
|
125
134
|
const httpOpts = { ...DEFAULT_HTTP_OPTIONS,
|
|
126
135
|
...(this._userHttpOptions || {}),
|
|
127
136
|
url: url,
|
|
128
137
|
method: 'GET',
|
|
129
138
|
headers: headers || {}
|
|
130
139
|
};
|
|
131
|
-
return this._httpRequestSync(httpOpts);
|
|
140
|
+
return await this._httpRequestSync(httpOpts);
|
|
132
141
|
}
|
|
133
142
|
/**
|
|
134
143
|
* @summary Performs HTTP POST
|
|
@@ -140,7 +149,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
140
149
|
*/
|
|
141
150
|
|
|
142
151
|
|
|
143
|
-
post(url, data, headers) {
|
|
152
|
+
async post(url, data, headers) {
|
|
144
153
|
const httpOpts = { ...DEFAULT_HTTP_OPTIONS,
|
|
145
154
|
...(this._userHttpOptions || {}),
|
|
146
155
|
url: url,
|
|
@@ -148,7 +157,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
148
157
|
body: data,
|
|
149
158
|
headers: headers || {}
|
|
150
159
|
};
|
|
151
|
-
return this._httpRequestSync(httpOpts);
|
|
160
|
+
return await this._httpRequestSync(httpOpts);
|
|
152
161
|
}
|
|
153
162
|
/**
|
|
154
163
|
* @summary Performs HTTP PUT
|
|
@@ -160,7 +169,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
160
169
|
*/
|
|
161
170
|
|
|
162
171
|
|
|
163
|
-
put(url, data, headers) {
|
|
172
|
+
async put(url, data, headers) {
|
|
164
173
|
const httpOpts = { ...DEFAULT_HTTP_OPTIONS,
|
|
165
174
|
...(this._userHttpOptions || {}),
|
|
166
175
|
url: url,
|
|
@@ -168,7 +177,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
168
177
|
body: data,
|
|
169
178
|
headers: headers || {}
|
|
170
179
|
};
|
|
171
|
-
return this._httpRequestSync(httpOpts);
|
|
180
|
+
return await this._httpRequestSync(httpOpts);
|
|
172
181
|
}
|
|
173
182
|
/**
|
|
174
183
|
* @summary Performs HTTP PATCH
|
|
@@ -180,7 +189,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
180
189
|
*/
|
|
181
190
|
|
|
182
191
|
|
|
183
|
-
patch(url, data, headers) {
|
|
192
|
+
async patch(url, data, headers) {
|
|
184
193
|
const httpOpts = { ...DEFAULT_HTTP_OPTIONS,
|
|
185
194
|
...(this._userHttpOptions || {}),
|
|
186
195
|
url: url,
|
|
@@ -188,7 +197,7 @@ class HttpModule extends _OxygenModule.default {
|
|
|
188
197
|
body: data,
|
|
189
198
|
headers: headers || {}
|
|
190
199
|
};
|
|
191
|
-
return this._httpRequestSync(httpOpts);
|
|
200
|
+
return await this._httpRequestSync(httpOpts);
|
|
192
201
|
}
|
|
193
202
|
/**
|
|
194
203
|
* @summary Performs HTTP DELETE
|
|
@@ -199,14 +208,14 @@ class HttpModule extends _OxygenModule.default {
|
|
|
199
208
|
*/
|
|
200
209
|
|
|
201
210
|
|
|
202
|
-
delete(url, headers) {
|
|
211
|
+
async delete(url, headers) {
|
|
203
212
|
const httpOpts = { ...DEFAULT_HTTP_OPTIONS,
|
|
204
213
|
...(this._userHttpOptions || {}),
|
|
205
214
|
url: url,
|
|
206
215
|
method: 'DELETE',
|
|
207
216
|
headers: headers || {}
|
|
208
217
|
};
|
|
209
|
-
return this._httpRequestSync(httpOpts);
|
|
218
|
+
return await this._httpRequestSync(httpOpts);
|
|
210
219
|
}
|
|
211
220
|
/**
|
|
212
221
|
* @summary Returns last response object
|
|
@@ -374,37 +383,38 @@ class HttpModule extends _OxygenModule.default {
|
|
|
374
383
|
global._lastTransactionName = name;
|
|
375
384
|
}
|
|
376
385
|
|
|
377
|
-
_httpRequestSync(httpOpts) {
|
|
386
|
+
async _httpRequestSync(httpOpts) {
|
|
378
387
|
let result;
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
388
|
+
|
|
389
|
+
try {
|
|
390
|
+
result = await (0, _got.default)(httpOpts);
|
|
391
|
+
|
|
392
|
+
if (httpOpts.deflateRaw && result.headers['content-encoding'] === 'deflate') {
|
|
393
|
+
const zlib = require('zlib');
|
|
394
|
+
|
|
395
|
+
const decomp = zlib.createInflateRaw();
|
|
396
|
+
decomp.write(result.body);
|
|
397
|
+
await (() => {
|
|
398
|
+
return new Promise((resolve, reject) => {
|
|
399
|
+
decomp.on('data', data => {
|
|
400
|
+
result.body = data.toString();
|
|
401
|
+
|
|
402
|
+
if (result.headers['content-type'] === 'application/json') {
|
|
403
|
+
try {
|
|
404
|
+
result.body = JSON.parse(result.body);
|
|
405
|
+
} catch (e) {// if parsing fails just return the original string
|
|
406
|
+
}
|
|
395
407
|
}
|
|
396
|
-
}
|
|
397
408
|
|
|
398
|
-
|
|
409
|
+
resolve();
|
|
410
|
+
});
|
|
399
411
|
});
|
|
400
|
-
}
|
|
401
|
-
result = res;
|
|
402
|
-
}
|
|
403
|
-
} else {
|
|
404
|
-
result = err || res;
|
|
412
|
+
})();
|
|
405
413
|
}
|
|
406
|
-
})
|
|
407
|
-
|
|
414
|
+
} catch (e) {
|
|
415
|
+
result = e;
|
|
416
|
+
} // store last response to allow further assertions and validations
|
|
417
|
+
|
|
408
418
|
|
|
409
419
|
this._lastResponse = result;
|
|
410
420
|
|
|
@@ -418,4 +428,4 @@ class HttpModule extends _OxygenModule.default {
|
|
|
418
428
|
}
|
|
419
429
|
|
|
420
430
|
exports.default = HttpModule;
|
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1odHRwLmpzIl0sIm5hbWVzIjpbImRlYXN5bmMiLCJyZXF1aXJlIiwiTU9EVUxFX05BTUUiLCJSRVNQT05TRV9USU1FT1VUIiwiREVGQVVMVF9IVFRQX09QVElPTlMiLCJqc29uIiwiZ3ppcCIsInRpbWVvdXQiLCJyZWplY3RVbmF1dGhvcml6ZWQiLCJIdHRwTW9kdWxlIiwiT3h5Z2VuTW9kdWxlIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiY29udGV4dCIsInJzIiwibG9nZ2VyIiwibW9kdWxlcyIsInNlcnZpY2VzIiwiX2Fsd2F5c0luaXRpYWxpemVkIiwiX2xhc3RSZXNwb25zZSIsIl9iYXNlVXJsIiwiX3VzZXJIdHRwT3B0aW9ucyIsIl9pc0luaXRpYWxpemVkIiwibmFtZSIsInNldE9wdGlvbnMiLCJvcHRzIiwiZGVmbGF0ZVJhdyIsImVuY29kaW5nIiwic2V0UHJveHkiLCJ1cmwiLCJwcm94eSIsImdldCIsImhlYWRlcnMiLCJodHRwT3B0cyIsIm1ldGhvZCIsIl9odHRwUmVxdWVzdFN5bmMiLCJwb3N0IiwiZGF0YSIsImJvZHkiLCJwdXQiLCJwYXRjaCIsImRlbGV0ZSIsImdldFJlc3BvbnNlIiwiZ2V0UmVzcG9uc2VCb2R5IiwiZ2V0UmVzcG9uc2VIZWFkZXJzIiwiZ2V0UmVzcG9uc2VVcmwiLCJhc3NlcnRUZXh0IiwicGF0dGVybiIsIk94RXJyb3IiLCJlcnJIZWxwZXIiLCJlcnJvckNvZGUiLCJBU1NFUlRfRVJST1IiLCJyZXNwQ29udGVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJtb2RVdGlscyIsIm1hdGNoUGF0dGVybiIsImFzc2VydFJlc3BvbnNlVGltZSIsIm1heFRpbWUiLCJFcnJvciIsImFzc2VydEhlYWRlciIsImhlYWRlck5hbWUiLCJoZWFkZXJWYWx1ZVBhdHRlcm4iLCJsZW5ndGgiLCJ0b0xvd2VyQ2FzZSIsImFjdHVhbEhlYWRlclZhbHVlIiwiYXNzZXJ0Q29va2llIiwiY29va2llTmFtZSIsImNvb2tpZVZhbHVlUGF0dGVybiIsImFzc2VydFN0YXR1cyIsImNvZGVMaXN0IiwiQXJyYXkiLCJpc0FycmF5Iiwic3RhdHVzQ29kZSIsImluY2x1ZGVzIiwiYXNzZXJ0U3RhdHVzT2siLCJ0cmFuc2FjdGlvbiIsImdsb2JhbCIsIl9sYXN0VHJhbnNhY3Rpb25OYW1lIiwicmVzdWx0IiwiZXJyIiwicmVzIiwiemxpYiIsImRlY29tcCIsImNyZWF0ZUluZmxhdGVSYXciLCJ3cml0ZSIsIm9uIiwidG9TdHJpbmciLCJwYXJzZSIsImUiLCJsb29wV2hpbGUiLCJodHRwQXV0b1Rocm93RXJyb3IiLCJIVFRQX0VSUk9SIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBYUE7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFNBQUQsQ0FBdkI7O0FBT0EsTUFBTUMsV0FBVyxHQUFHLE1BQXBCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsT0FBTyxFQUFoQyxDLENBQXNDOztBQUN0QyxNQUFNQyxvQkFBb0IsR0FBRztBQUN6QkMsRUFBQUEsSUFBSSxFQUFFLElBRG1CO0FBRXpCQyxFQUFBQSxJQUFJLEVBQUUsSUFGbUI7QUFHekJDLEVBQUFBLE9BQU8sRUFBRUosZ0JBSGdCO0FBSXpCSyxFQUFBQSxrQkFBa0IsRUFBRTtBQUpLLENBQTdCOztBQU9lLE1BQU1DLFVBQU4sU0FBeUJDLHFCQUF6QixDQUFzQztBQUNqREMsRUFBQUEsV0FBVyxDQUFDQyxPQUFELEVBQVVDLE9BQVYsRUFBbUJDLEVBQW5CLEVBQXVCQyxNQUF2QixFQUErQkMsT0FBL0IsRUFBd0NDLFFBQXhDLEVBQWtEO0FBQ3pELFVBQU1MLE9BQU4sRUFBZUMsT0FBZixFQUF3QkMsRUFBeEIsRUFBNEJDLE1BQTVCLEVBQW9DQyxPQUFwQyxFQUE2Q0MsUUFB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QkFBSixDQUFZQyxnQkFBVUMsU0FBVixDQUFvQjBDLFVBQWhDLEVBQTRDYixNQUFNLENBQUNjLE9BQW5ELENBQU47QUFDSDs7QUFDRCxXQUFPZCxNQUFQO0FBQ0g7O0FBdlZnRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS1wcmVzZW50IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lIGh0dHBcclxuICogQGRlc2NyaXB0aW9uIFByb3ZpZGVzIG1ldGhvZHMgZm9yIHdvcmtpbmcgd2l0aCBIVFRQKFMpXHJcbiAqL1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tICdyZXF1ZXN0JztcclxuY29uc3QgZGVhc3luYyA9IHJlcXVpcmUoJ2RlYXN5bmMnKTtcclxuXHJcbmltcG9ydCBPeHlnZW5Nb2R1bGUgZnJvbSAnLi4vY29yZS9PeHlnZW5Nb2R1bGUnO1xyXG5pbXBvcnQgT3hFcnJvciBmcm9tICcuLi9lcnJvcnMvT3h5Z2VuRXJyb3InO1xyXG5pbXBvcnQgZXJySGVscGVyIGZyb20gJy4uL2Vycm9ycy9oZWxwZXInO1xyXG5pbXBvcnQgbW9kVXRpbHMgZnJvbSAnLi91dGlscyc7XHJcblxyXG5jb25zdCBNT0RVTEVfTkFNRSA9ICdodHRwJztcclxuY29uc3QgUkVTUE9OU0VfVElNRU9VVCA9IDEwMDAgKiAzMDsgICAvLyBpbiBtc1xyXG5jb25zdCBERUZBVUxUX0hUVFBfT1BUSU9OUyA9IHtcclxuICAgIGpzb246IHRydWUsXHJcbiAgICBnemlwOiB0cnVlLFxyXG4gICAgdGltZW91dDogUkVTUE9OU0VfVElNRU9VVCxcclxuICAgIHJlamVjdFVuYXV0aG9yaXplZDogZmFsc2VcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBNb2R1bGUgZXh0ZW5kcyBPeHlnZW5Nb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgY29udGV4dCwgcnMsIGxvZ2dlciwgbW9kdWxlcywgc2VydmljZXMpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBjb250ZXh0LCBycywgbG9nZ2VyLCBtb2R1bGVzLCBzZXJ2aWNlcyk7XHJcbiAgICAgICAgdGhpcy5fYWx3YXlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2xhc3RSZXNwb25zZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fYmFzZVVybCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fdXNlckh0dHBPcHRpb25zID0ge307XHJcbiAgICAgICAgLy8gcHJlLWluaXRpYWxpemUgdGhlIG1vZHVsZVxyXG4gICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBAc3VtbWFyeSBHZXRzIG1vZHVsZSBuYW1lXHJcbiAgICAgKiBAZnVuY3Rpb24gbmFtZVxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBDb25zdGFudCB2YWx1ZSBcImh0dHBcIi5cclxuICAgICAqL1xyXG4gICAgZ2V0IG5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1PRFVMRV9OQU1FO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgU2V0cyB1c2VyIGRlZmluZWQgSFRUUCBvcHRpb25zIChzdWNoIGFzIHByb3h5LCBnemlwIGFuZCBldGMuKVxyXG4gICAgICogQGZ1bmN0aW9uIG9wdGlvbnNcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gSFRUUCByZXF1ZXN0IG9wdGlvbnMgb2JqZWN0LCBzZWUgW1JlcXVlc3QgT3B0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3JlcXVlc3QvcmVxdWVzdCNyZXF1ZXN0b3B0aW9ucy1jYWxsYmFjaykuIFxyXG4gICAgICogSW4gYWRkaXRpb24gdG8gdGhlIG9wdGlvbnMgbGlzdGVkIGluIHRoZSBsaW5rZWQgZG9jdW1lbnQsICdkZWZsYXRlUmF3JyBvcHRpb24gY2FuIGJlIHVzZWQgd2hlbiBzZXJ2ZXIgcmV0dXJucyBEZWZsYXRlLWNvbXByZXNzZWQgc3RyZWFtIHdpdGhvdXQgaGVhZGVycy5cclxuICAgICAqL1xyXG4gICAgc2V0T3B0aW9ucyhvcHRzKSB7XHJcbiAgICAgICAgdGhpcy5fdXNlckh0dHBPcHRpb25zID0gb3B0cztcclxuICAgICAgICBpZiAob3B0cy5kZWZsYXRlUmF3KSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXJIdHRwT3B0aW9ucy5lbmNvZGluZyA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuX3VzZXJIdHRwT3B0aW9ucy5nemlwID0gZmFsc2U7ICAgICAvLyBnemlwPXRydWUgaW4gZGVmYXVsdCBvcHRpb25zIHNvIHdlIG92ZXJyaWRlIGl0XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgU2V0cyBwcm94eSB1cmwgdG8gYmUgdXNlZCBmb3IgY29ubmVjdGlvbnMgd2l0aCB0aGUgc2VydmljZS5cclxuICAgICAqIEBmdW5jdGlvbiBzZXRQcm94eVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIFByb3h5IHNlcnZlciBVUkwuIE5vdCBwYXNzaW5nIHRoaXMgYXJndW1lbnQgd2lsbCByZXNldCB0aGUgcHJveHkgc2V0dGluZ3MuXHJcbiAgICAgKi9cclxuICAgIHNldFByb3h5KHVybCkge1xyXG4gICAgICAgIGlmICh1cmwpIHtcclxuICAgICAgICAgICAgdGhpcy5fdXNlckh0dHBPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgLi4udGhpcy5fdXNlckh0dHBPcHRpb25zIHx8IHt9LFxyXG4gICAgICAgICAgICAgICAgcHJveHk6ICB1cmxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3VzZXJIdHRwT3B0aW9ucyAmJiB0aGlzLl91c2VySHR0cE9wdGlvbnMucHJveHkpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3VzZXJIdHRwT3B0aW9ucy5wcm94eTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBIVFRQIEdFVFxyXG4gICAgICogQGZ1bmN0aW9uIGdldFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIFVSTC5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gaGVhZGVycyAtIEhUVFAgaGVhZGVycy5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gUmVzcG9uc2Ugb2JqZWN0LlxyXG4gICAgICogQGV4YW1wbGUgPGNhcHRpb24+W2phdmFzY3JpcHRdIFVzYWdlIGV4YW1wbGU8L2NhcHRpb24+XHJcbiAgICAgKiAvLyBCYXNpYyB1c2FnZSBleGFtcGxlOlxyXG4gICAgICogdmFyIHJlc3BvbnNlID0gaHR0cC5nZXQoXHJcbiAgICAgKiAnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9veHlnZW5ocS9veHlnZW4taWRlL3JlbGVhc2VzJywgXHJcbiAgICAgKiB7XHJcbiAgICAgKiAgICdBY2NlcHQtRW5jb2RpbmcnOiAnZ3ppcCwgZGVmbGF0ZScsXHJcbiAgICAgKiAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQ7IHJ2Ojg2LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvODYuMCdcclxuICAgICAqIH0pO1xyXG4gICAgICogbG9nLmluZm8ocmVzcG9uc2UuYm9keSk7XHJcbiAgICAgKlxyXG4gICAgICogLy8gSWYgc2VydmVyIHJldHVybnMgRGVmbGF0ZS1jb21wcmVzc2VkIHN0cmVhbSB3aXRob3V0IGhlYWRlcnMsIGBkZWZsYXRlUmF3YCBjYW4gYmUgdXNlZCB0byBkZWNvbXByZXNzIHRoZSBjb250ZW50LlxyXG4gICAgICogaHR0cC5zZXRPcHRpb25zKHtcclxuICAgICAqICAgZGVmbGF0ZVJhdzogdHJ1ZVxyXG4gICAgICogfSk7XHJcbiAgICAgKiB2YXIgcmVzcG9uc2UgPSBodHRwLmdldCgnaHR0cHM6Ly9GT08uQkFSJyk7XHJcbiAgICAgKiBsb2cuaW5mbyhyZXNwb25zZS5ib2R5KTtcclxuICAgICAqL1xyXG4gICAgZ2V0KHVybCwgaGVhZGVycykge1xyXG4gICAgICAgIGNvbnN0IGh0dHBPcHRzID0ge1xyXG4gICAgICAgICAgICAuLi5ERUZBVUxUX0hUVFBfT1BUSU9OUyxcclxuICAgICAgICAgICAgLi4udGhpcy5fdXNlckh0dHBPcHRpb25zIHx8IHt9LFxyXG4gICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCB7fVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBSZXF1ZXN0U3luYyhodHRwT3B0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBIVFRQIFBPU1RcclxuICAgICAqIEBmdW5jdGlvbiBwb3N0XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gVVJMLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBEYXRhLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBoZWFkZXJzIC0gSFRUUCBoZWFkZXJzLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHBvc3QodXJsLCBkYXRhLCBoZWFkZXJzKSB7XHJcbiAgICAgICAgY29uc3QgaHR0cE9wdHMgPSB7XHJcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfSFRUUF9PUFRJT05TLFxyXG4gICAgICAgICAgICAuLi50aGlzLl91c2VySHR0cE9wdGlvbnMgfHwge30sXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgYm9keTogZGF0YSxcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCB7fVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBSZXF1ZXN0U3luYyhodHRwT3B0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBIVFRQIFBVVFxyXG4gICAgICogQGZ1bmN0aW9uIHB1dFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIFVSTC5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRGF0YS5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gaGVhZGVycyAtIEhUVFAgaGVhZGVycy5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gUmVzcG9uc2Ugb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdXQodXJsLCBkYXRhLCBoZWFkZXJzKSB7XHJcbiAgICAgICAgY29uc3QgaHR0cE9wdHMgPSB7XHJcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfSFRUUF9PUFRJT05TLFxyXG4gICAgICAgICAgICAuLi50aGlzLl91c2VySHR0cE9wdGlvbnMgfHwge30sXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgICBtZXRob2Q6ICdQVVQnLFxyXG4gICAgICAgICAgICBib2R5OiBkYXRhLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzIHx8IHt9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFJlcXVlc3RTeW5jKGh0dHBPcHRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBlcmZvcm1zIEhUVFAgUEFUQ0hcclxuICAgICAqIEBmdW5jdGlvbiBwYXRjaFxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIFVSTC5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gRGF0YS5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gaGVhZGVycyAtIEhUVFAgaGVhZGVycy5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gUmVzcG9uc2Ugb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwYXRjaCh1cmwsIGRhdGEsIGhlYWRlcnMpIHtcclxuICAgICAgICBjb25zdCBodHRwT3B0cyA9IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9IVFRQX09QVElPTlMsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuX3VzZXJIdHRwT3B0aW9ucyB8fCB7fSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BBVENIJyxcclxuICAgICAgICAgICAgYm9keTogZGF0YSxcclxuICAgICAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCB7fVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBSZXF1ZXN0U3luYyhodHRwT3B0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBQZXJmb3JtcyBIVFRQIERFTEVURVxyXG4gICAgICogQGZ1bmN0aW9uIGRlbGV0ZVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHVybCAtIFVSTC5cclxuICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gaGVhZGVycyAtIEhUVFAgaGVhZGVycy5cclxuICAgICAqIEByZXR1cm4ge09iamVjdH0gUmVzcG9uc2Ugb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBkZWxldGUodXJsLCBoZWFkZXJzKSB7XHJcbiAgICAgICAgY29uc3QgaHR0cE9wdHMgPSB7XHJcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfSFRUUF9PUFRJT05TLFxyXG4gICAgICAgICAgICAuLi50aGlzLl91c2VySHR0cE9wdGlvbnMgfHwge30sXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgICBtZXRob2Q6ICdERUxFVEUnLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzIHx8IHt9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFJlcXVlc3RTeW5jKGh0dHBPcHRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgbGFzdCByZXNwb25zZSBvYmplY3RcclxuICAgICAqIEBmdW5jdGlvbiBnZXRSZXNwb25zZVxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdldFJlc3BvbnNlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0UmVzcG9uc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIGxhc3QgcmVzcG9uc2UgYm9keVxyXG4gICAgICogQGZ1bmN0aW9uIGdldFJlc3BvbnNlQm9keVxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBSZXNwb25zZSBib2R5LlxyXG4gICAgICovXHJcbiAgICBnZXRSZXNwb25zZUJvZHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RSZXNwb25zZSAmJiB0aGlzLl9sYXN0UmVzcG9uc2UuYm9keSA/IHRoaXMuX2xhc3RSZXNwb25zZS5ib2R5IDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgcmVzcG9uc2UgaGVhZGVyc1xyXG4gICAgICogQGZ1bmN0aW9uIGdldFJlc3BvbnNlSGVhZGVyc1xyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBoZWFkZXJzLlxyXG4gICAgICovXHJcbiAgICBnZXRSZXNwb25zZUhlYWRlcnMoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9sYXN0UmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9sYXN0UmVzcG9uc2UuaGVhZGVycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgcmVzcG9uc2UgVVJMXHJcbiAgICAgKiBAZnVuY3Rpb24gZ2V0UmVzcG9uc2VVcmxcclxuICAgICAqIEByZXR1cm4ge1N0cmluZ30gUmVzcG9uc2UgVVJMLlxyXG4gICAgICovXHJcbiAgICBnZXRSZXNwb25zZVVybCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2xhc3RSZXNwb25zZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RSZXNwb25zZS51cmw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnQgd2hldGhlciB0aGUgc3BlY2lmaWVkIHBhdHRlcm4gaXMgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2UgYm9keS5cclxuICAgICAqIEBmdW5jdGlvbiBhc3NlcnRUZXh0XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gcGF0dGVybiAtIFBhdHRlcm4gdG8gYXNzZXJ0LlxyXG4gICAgICovXHJcbiAgICBhc3NlcnRUZXh0KHBhdHRlcm4pIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2xhc3RSZXNwb25zZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5fbGFzdFJlc3BvbnNlLmJvZHkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsICdSZXNwb25zZSBib2R5IGlzIGVtcHR5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJlc3BDb250ZW50ID0gdHlwZW9mIHRoaXMuX2xhc3RSZXNwb25zZS5ib2R5ID09PSAnc3RyaW5nJyA/IHRoaXMuX2xhc3RSZXNwb25zZS5ib2R5IDogSlNPTi5zdHJpbmdpZnkodGhpcy5fbGFzdFJlc3BvbnNlLmJvZHkpO1xyXG4gICAgICAgIGlmICghbW9kVXRpbHMubWF0Y2hQYXR0ZXJuKHJlc3BDb250ZW50LCBwYXR0ZXJuKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgYEV4cGVjdGVkIEhUVFAgcmVzcG9uc2UgY29udGVudCB0byBtYXRjaDogXCIke3BhdHRlcm59XCIgYnV0IGdvdDogXCIke3Jlc3BDb250ZW50fVwiYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgQXNzZXJ0IHJlc3BvbnNlIHRpbWVcclxuICAgICAqIEBmdW5jdGlvbiBhc3NlcnRSZXNwb25zZVRpbWVcclxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBtYXhUaW1lIC0gTWF4aW11bSByZXNwb25zZSB0aW1lIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqL1xyXG4gICAgYXNzZXJ0UmVzcG9uc2VUaW1lKG1heFRpbWUpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgQXNzZXJ0IGlmIEhUVFAgaGVhZGVyIGlzIHByZXNlbnRlZCBpbiB0aGUgcmVzcG9uc2VcclxuICAgICAqIEBmdW5jdGlvbiBhc3NlcnRIZWFkZXJcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBoZWFkZXJOYW1lIC0gQSBIVFRQIGhlYWRlciBuYW1lLlxyXG4gICAgICogQHBhcmFtIHtTdHJpbmc9fSBoZWFkZXJWYWx1ZVBhdHRlcm4gLSBBbiBvcHRpb25hbCBIVFRQIGhlYWRlciB2YWx1ZSBwYXR0ZXJuLlxyXG4gICAgICovXHJcbiAgICBhc3NlcnRIZWFkZXIoaGVhZGVyTmFtZSwgaGVhZGVyVmFsdWVQYXR0ZXJuID0gbnVsbCkge1xyXG4gICAgICAgIGlmICghaGVhZGVyTmFtZSB8fCB0eXBlb2YgaGVhZGVyTmFtZSAhPT0gJ3N0cmluZycgfHwgaGVhZGVyTmFtZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGhlYWRlck5hbWUgPSBoZWFkZXJOYW1lLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMuX2xhc3RSZXNwb25zZS5oZWFkZXJzO1xyXG4gICAgICAgIGlmICghaGVhZGVyc1toZWFkZXJOYW1lXSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgJ0V4cGVjdGVkIEhUVFAgaGVhZGVyIFwiJHtoZWFkZXJOYW1lfVwiIHRvIGJlIHByZXNlbnQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoaGVhZGVyVmFsdWVQYXR0ZXJuICYmIHR5cGVvZiBoZWFkZXJWYWx1ZVBhdHRlcm4gPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdHVhbEhlYWRlclZhbHVlID0gaGVhZGVyc1toZWFkZXJOYW1lXTtcclxuICAgICAgICAgICAgaWYgKCFtb2RVdGlscy5tYXRjaFBhdHRlcm4oYWN0dWFsSGVhZGVyVmFsdWUsIGhlYWRlclZhbHVlUGF0dGVybikpIHtcclxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBgRXhwZWN0ZWQgSFRUUCBoZWFkZXIgXCIke2hlYWRlck5hbWV9XCIgdmFsdWUgdG8gbWF0Y2g6IFwiJHtoZWFkZXJWYWx1ZVBhdHRlcm59XCIgYnV0IGdvdDogXCIke2FjdHVhbEhlYWRlclZhbHVlfVwiYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnQgaWYgSFRUUCBjb29raWUgaXMgcHJlc2VudGVkIGluIHRoZSByZXNwb25zZVxyXG4gICAgICogQGZ1bmN0aW9uIGFzc2VydENvb2tpZVxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGNvb2tpZU5hbWUgLSBBIEhUVFAgY29va2llIG5hbWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IGNvb2tpZVZhbHVlUGF0dGVybiAtIEFuIG9wdGlvbmFsIEhUVFAgY29va2llIHZhbHVlIHBhdHRlcm4uXHJcbiAgICAgKi9cclxuICAgIGFzc2VydENvb2tpZShjb29raWVOYW1lLCBjb29raWVWYWx1ZVBhdHRlcm4pIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgQXNzZXJ0IHRoZSBsYXN0IEhUVFAgcmVzcG9uc2UncyBzdGF0dXMgY29kZVxyXG4gICAgICogQGZ1bmN0aW9uIGFzc2VydFN0YXR1c1xyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ8QXJyYXl9IGNvZGVMaXN0IC0gQSBzaW5nbGUgc3RhdHVzIGNvZGUgb3IgYSBsaXN0IG9mIGNvZGVzLlxyXG4gICAgICovXHJcbiAgICBhc3NlcnRTdGF0dXMoY29kZUxpc3QpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2xhc3RSZXNwb25zZSB8fCAhY29kZUxpc3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiB3ZSBnb3QgYSBzaW5nbGUgdmFsdWUsIHRoZW4gY29udmVydCBpdCB0byBhbiBhcnJheVxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShjb2RlTGlzdCkpIHtcclxuICAgICAgICAgICAgY29kZUxpc3QgPSBbY29kZUxpc3RdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzdGF0dXNDb2RlID0gdGhpcy5fbGFzdFJlc3BvbnNlLnN0YXR1c0NvZGU7XHJcbiAgICAgICAgaWYgKCFjb2RlTGlzdC5pbmNsdWRlcyhzdGF0dXNDb2RlKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgYEV4cGVjdGVkIEhUVFAgc3RhdHVzIHRvIGJlOiBcIiR7Y29kZUxpc3R9XCIgYnV0IGdvdDogXCIke3N0YXR1c0NvZGV9XCJgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnQgSFRUUCAyMDAgT0sgc3RhdHVzXHJcbiAgICAgKiBAZnVuY3Rpb24gYXNzZXJ0U3RhdHVzT2tcclxuICAgICAqL1xyXG4gICAgYXNzZXJ0U3RhdHVzT2soKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzZXJ0U3RhdHVzKDIwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBPcGVucyBuZXcgdHJhbnNhY3Rpb24uXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHRyYW5zYWN0aW9uIHdpbGwgcGVyc2lzdCB0aWxsIGEgbmV3IG9uZSBpcyBvcGVuZWQuIFRyYW5zYWN0aW9uIG5hbWVzIG11c3QgYmVcclxuICAgICAqICAgICAgICAgICAgICB1bmlxdWUuXHJcbiAgICAgKiBAZnVuY3Rpb24gdHJhbnNhY3Rpb25cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gVGhlIHRyYW5zYWN0aW9uIG5hbWUuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHRyYW5zYWN0aW9uKG5hbWUpIHtcclxuICAgICAgICBnbG9iYWwuX2xhc3RUcmFuc2FjdGlvbk5hbWUgPSBuYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIF9odHRwUmVxdWVzdFN5bmMoaHR0cE9wdHMpIHtcclxuICAgICAgICBsZXQgcmVzdWx0O1xyXG4gICAgICAgIHJlcXVlc3QoaHR0cE9wdHMsXHJcbiAgICAgICAgICAgIChlcnIsIHJlcywgYm9keSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gc3VwcG9ydCBmb3IgcmF3ICh3aXRob3V0IGhlYWRlcnMpIGNvbnRlbnQtZW5jb2Rpbmc6IGRlZmxhdGVcclxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yZXF1ZXN0L3JlcXVlc3QvaXNzdWVzLzIxOTdcclxuICAgICAgICAgICAgICAgIGlmIChodHRwT3B0cy5kZWZsYXRlUmF3ICYmICFlcnIpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgemxpYiA9IHJlcXVpcmUoJ3psaWInKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmhlYWRlcnNbJ2NvbnRlbnQtZW5jb2RpbmcnXSA9PT0gJ2RlZmxhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWNvbXAgPSB6bGliLmNyZWF0ZUluZmxhdGVSYXcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wLndyaXRlKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wLm9uKCdkYXRhJywgKGRhdGEpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5ib2R5ID0gZGF0YS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmJvZHkgPSBKU09OLnBhcnNlKHJlcy5ib2R5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHBhcnNpbmcgZmFpbHMganVzdCByZXR1cm4gdGhlIG9yaWdpbmFsIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZXJyIHx8IHJlcztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZGVhc3luYy5sb29wV2hpbGUoKCkgPT4gIXJlc3VsdCk7XHJcbiAgICAgICAgLy8gc3RvcmUgbGFzdCByZXNwb25zZSB0byBhbGxvdyBmdXJ0aGVyIGFzc2VydGlvbnMgYW5kIHZhbGlkYXRpb25zXHJcbiAgICAgICAgdGhpcy5fbGFzdFJlc3BvbnNlID0gcmVzdWx0O1xyXG5cclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgRXJyb3IgJiYgdGhpcy5vcHRpb25zICYmICF0aGlzLm9wdGlvbnMuaHR0cEF1dG9UaHJvd0Vycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuSFRUUF9FUlJPUiwgcmVzdWx0Lm1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
431
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1odHRwLmpzIl0sIm5hbWVzIjpbIk1PRFVMRV9OQU1FIiwiUkVTUE9OU0VfVElNRU9VVCIsIkRBRkFVTFRfSFRUUDIiLCJERUZBVUxUX0hUVFBfT1BUSU9OUyIsImRlY29tcHJlc3MiLCJyZXNwb25zZVR5cGUiLCJ0aW1lb3V0IiwibG9va3VwIiwiY29ubmVjdCIsInNlY3VyZUNvbm5lY3QiLCJzb2NrZXQiLCJzZW5kIiwicmVzcG9uc2UiLCJodHRwMiIsImh0dHBzIiwicmVqZWN0VW5hdXRob3JpemVkIiwiZG5zTG9va3VwSXBWZXJzaW9uIiwiSHR0cE1vZHVsZSIsIk94eWdlbk1vZHVsZSIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImNvbnRleHQiLCJycyIsImxvZ2dlciIsIm1vZHVsZXMiLCJzZXJ2aWNlcyIsIl9hbHdheXNJbml0aWFsaXplZCIsIl9sYXN0UmVzcG9uc2UiLCJfYmFzZVVybCIsIl91c2VySHR0cE9wdGlvbnMiLCJfaXNJbml0aWFsaXplZCIsIm5hbWUiLCJzZXRPcHRpb25zIiwib3B0cyIsImRlZmxhdGVSYXciLCJzZXRQcm94eSIsInVybCIsInByb3h5IiwiZ2V0IiwiaGVhZGVycyIsImh0dHBPcHRzIiwibWV0aG9kIiwiX2h0dHBSZXF1ZXN0U3luYyIsInBvc3QiLCJkYXRhIiwiYm9keSIsInB1dCIsInBhdGNoIiwiZGVsZXRlIiwiZ2V0UmVzcG9uc2UiLCJnZXRSZXNwb25zZUJvZHkiLCJnZXRSZXNwb25zZUhlYWRlcnMiLCJnZXRSZXNwb25zZVVybCIsImFzc2VydFRleHQiLCJwYXR0ZXJuIiwiT3hFcnJvciIsImVyckhlbHBlciIsImVycm9yQ29kZSIsIkFTU0VSVF9FUlJPUiIsInJlc3BDb250ZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsIm1vZFV0aWxzIiwibWF0Y2hQYXR0ZXJuIiwiYXNzZXJ0UmVzcG9uc2VUaW1lIiwibWF4VGltZSIsIkVycm9yIiwiYXNzZXJ0SGVhZGVyIiwiaGVhZGVyTmFtZSIsImhlYWRlclZhbHVlUGF0dGVybiIsImxlbmd0aCIsInRvTG93ZXJDYXNlIiwiYWN0dWFsSGVhZGVyVmFsdWUiLCJhc3NlcnRDb29raWUiLCJjb29raWVOYW1lIiwiY29va2llVmFsdWVQYXR0ZXJuIiwiYXNzZXJ0U3RhdHVzIiwiY29kZUxpc3QiLCJBcnJheSIsImlzQXJyYXkiLCJzdGF0dXNDb2RlIiwiaW5jbHVkZXMiLCJhc3NlcnRTdGF0dXNPayIsInRyYW5zYWN0aW9uIiwiZ2xvYmFsIiwiX2xhc3RUcmFuc2FjdGlvbk5hbWUiLCJyZXN1bHQiLCJ6bGliIiwicmVxdWlyZSIsImRlY29tcCIsImNyZWF0ZUluZmxhdGVSYXciLCJ3cml0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwib24iLCJ0b1N0cmluZyIsInBhcnNlIiwiZSIsImh0dHBBdXRvVGhyb3dFcnJvciIsIkhUVFBfRVJST1IiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQWpCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBT0EsTUFBTUEsV0FBVyxHQUFHLE1BQXBCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsT0FBTyxFQUFoQyxDLENBQXNDOztBQUN0QyxNQUFNQyxhQUFhLEdBQUcsS0FBdEI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRztBQUN6QkMsRUFBQUEsVUFBVSxFQUFFLElBRGE7QUFFekJDLEVBQUFBLFlBQVksRUFBRSxNQUZXO0FBR3pCQyxFQUFBQSxPQUFPLEVBQUU7QUFDTEMsSUFBQUEsTUFBTSxFQUFFLEdBREg7QUFFTEMsSUFBQUEsT0FBTyxFQUFFLEVBRko7QUFHTEMsSUFBQUEsYUFBYSxFQUFFLEVBSFY7QUFJTEMsSUFBQUEsTUFBTSxFQUFFLEtBSkg7QUFLTEMsSUFBQUEsSUFBSSxFQUFFLEtBTEQ7QUFNTEMsSUFBQUEsUUFBUSxFQUFFWDtBQU5M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QUFPO0FBQ1YsYUFWRDtBQVdILFdBWk0sQ0FBUDtBQWFILFNBZEssR0FBTjtBQWVIO0FBRUosS0F2QkQsQ0F1QkUsT0FBT0ssQ0FBUCxFQUFVO0FBQ1JaLE1BQUFBLE1BQU0sR0FBR1ksQ0FBVDtBQUNILEtBNUI0QixDQThCN0I7OztBQUNBLFNBQUt2RSxhQUFMLEdBQXFCMkQsTUFBckI7O0FBRUEsUUFBSUEsTUFBTSxZQUFZcEIsS0FBbEIsSUFBMkIsS0FBSzlDLE9BQWhDLElBQTJDLENBQUMsS0FBS0EsT0FBTCxDQUFhK0Usa0JBQTdELEVBQWlGO0FBQzdFLFlBQU0sSUFBSTVDLG9CQUFKLENBQVlDLGdCQUFVQyxTQUFWLENBQW9CMkMsVUFBaEMsRUFBNENkLE1BQU0sQ0FBQ2UsT0FBbkQsQ0FBTjtBQUNIOztBQUNELFdBQU9mLE1BQVA7QUFDSDs7QUFwVmdEIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChDKSAyMDE1LXByZXNlbnQgQ2xvdWRCZWF0IExpbWl0ZWRcclxuICpcclxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcclxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcclxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcclxuICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWUgaHR0cFxyXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgbWV0aG9kcyBmb3Igd29ya2luZyB3aXRoIEhUVFAoUylcclxuICovXHJcbmltcG9ydCBnb3QgZnJvbSAnZ290JztcclxuaW1wb3J0IE94eWdlbk1vZHVsZSBmcm9tICcuLi9jb3JlL094eWdlbk1vZHVsZSc7XHJcbmltcG9ydCBPeEVycm9yIGZyb20gJy4uL2Vycm9ycy9PeHlnZW5FcnJvcic7XHJcbmltcG9ydCBlcnJIZWxwZXIgZnJvbSAnLi4vZXJyb3JzL2hlbHBlcic7XHJcbmltcG9ydCBtb2RVdGlscyBmcm9tICcuL3V0aWxzJztcclxuXHJcbmNvbnN0IE1PRFVMRV9OQU1FID0gJ2h0dHAnO1xyXG5jb25zdCBSRVNQT05TRV9USU1FT1VUID0gMTAwMCAqIDMwOyAgIC8vIGluIG1zXHJcbmNvbnN0IERBRkFVTFRfSFRUUDIgPSBmYWxzZTtcclxuY29uc3QgREVGQVVMVF9IVFRQX09QVElPTlMgPSB7XHJcbiAgICBkZWNvbXByZXNzOiB0cnVlLFxyXG4gICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICB0aW1lb3V0OiB7XHJcbiAgICAgICAgbG9va3VwOiAxMDAsXHJcbiAgICAgICAgY29ubmVjdDogNTAsXHJcbiAgICAgICAgc2VjdXJlQ29ubmVjdDogNTAsXHJcbiAgICAgICAgc29ja2V0OiAxMDAwMCxcclxuICAgICAgICBzZW5kOiAxMDAwMCxcclxuICAgICAgICByZXNwb25zZTogUkVTUE9OU0VfVElNRU9VVFxyXG4gICAgfSxcclxuICAgIGh0dHAyOiBEQUZBVUxUX0hUVFAyLFxyXG4gICAgaHR0cHM6IHtcclxuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgZG5zTG9va3VwSXBWZXJzaW9uOiAnaXB2NCdcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEh0dHBNb2R1bGUgZXh0ZW5kcyBPeHlnZW5Nb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucywgY29udGV4dCwgcnMsIGxvZ2dlciwgbW9kdWxlcywgc2VydmljZXMpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBjb250ZXh0LCBycywgbG9nZ2VyLCBtb2R1bGVzLCBzZXJ2aWNlcyk7XHJcbiAgICAgICAgdGhpcy5fYWx3YXlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2xhc3RSZXNwb25zZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fYmFzZVVybCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fdXNlckh0dHBPcHRpb25zID0ge307XHJcbiAgICAgICAgLy8gcHJlLWluaXRpYWxpemUgdGhlIG1vZHVsZVxyXG4gICAgICAgIHRoaXMuX2lzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBAc3VtbWFyeSBHZXRzIG1vZHVsZSBuYW1lXHJcbiAgICAgKiBAZnVuY3Rpb24gbmFtZVxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBDb25zdGFudCB2YWx1ZSBcImh0dHBcIi5cclxuICAgICAqL1xyXG4gICAgZ2V0IG5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1PRFVMRV9OQU1FO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgU2V0cyB1c2VyIGRlZmluZWQgSFRUUCBvcHRpb25zIChzdWNoIGFzIHByb3h5LCBkZWNvbXByZXNzIGFuZCBldGMuKVxyXG4gICAgICogQGZ1bmN0aW9uIHNldE9wdGlvbnNcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gSFRUUCByZXF1ZXN0IG9wdGlvbnMgb2JqZWN0LCBzZWUgW1JlcXVlc3QgT3B0aW9uc10oaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9nb3QvYmxvYi9tYWluL2RvY3VtZW50YXRpb24vMi1vcHRpb25zLm1kKS4gXHJcbiAgICAgKiBJbiBhZGRpdGlvbiB0byB0aGUgb3B0aW9ucyBsaXN0ZWQgaW4gdGhlIGxpbmtlZCBkb2N1bWVudCwgJ2RlZmxhdGVSYXcnIG9wdGlvbiBjYW4gYmUgdXNlZCB3aGVuIHNlcnZlciByZXR1cm5zIERlZmxhdGUtY29tcHJlc3NlZCBzdHJlYW0gd2l0aG91dCBoZWFkZXJzLlxyXG4gICAgICovXHJcbiAgICBzZXRPcHRpb25zKG9wdHMpIHtcclxuICAgICAgICB0aGlzLl91c2VySHR0cE9wdGlvbnMgPSBvcHRzO1xyXG4gICAgICAgIGlmIChvcHRzLmRlZmxhdGVSYXcpIHtcclxuICAgICAgICAgICAgdGhpcy5fdXNlckh0dHBPcHRpb25zLmRlY29tcHJlc3MgPSBmYWxzZTsgICAgIC8vIGRlY29tcHJlc3M9dHJ1ZSBpbiBkZWZhdWx0IG9wdGlvbnMgc28gd2Ugb3ZlcnJpZGUgaXRcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBTZXRzIHByb3h5IHVybCB0byBiZSB1c2VkIGZvciBjb25uZWN0aW9ucyB3aXRoIHRoZSBzZXJ2aWNlLlxyXG4gICAgICogQGZ1bmN0aW9uIHNldFByb3h5XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gUHJveHkgc2VydmVyIFVSTC4gTm90IHBhc3NpbmcgdGhpcyBhcmd1bWVudCB3aWxsIHJlc2V0IHRoZSBwcm94eSBzZXR0aW5ncy5cclxuICAgICAqL1xyXG4gICAgc2V0UHJveHkodXJsKSB7XHJcbiAgICAgICAgaWYgKHVybCkge1xyXG4gICAgICAgICAgICB0aGlzLl91c2VySHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAuLi50aGlzLl91c2VySHR0cE9wdGlvbnMgfHwge30sXHJcbiAgICAgICAgICAgICAgICBwcm94eTogIHVybFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fdXNlckh0dHBPcHRpb25zICYmIHRoaXMuX3VzZXJIdHRwT3B0aW9ucy5wcm94eSkge1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fdXNlckh0dHBPcHRpb25zLnByb3h5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBlcmZvcm1zIEhUVFAgR0VUXHJcbiAgICAgKiBAZnVuY3Rpb24gZ2V0XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gVVJMLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBoZWFkZXJzIC0gSFRUUCBoZWFkZXJzLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBvYmplY3QuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5bamF2YXNjcmlwdF0gVXNhZ2UgZXhhbXBsZTwvY2FwdGlvbj5cclxuICAgICAqIC8vIEJhc2ljIHVzYWdlIGV4YW1wbGU6XHJcbiAgICAgKiB2YXIgcmVzcG9uc2UgPSBodHRwLmdldChcclxuICAgICAqICdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL294eWdlbmhxL294eWdlbi1pZGUvcmVsZWFzZXMnLCBcclxuICAgICAqIHtcclxuICAgICAqICAgJ0FjY2VwdC1FbmNvZGluZyc6ICdnemlwLCBkZWZsYXRlJyxcclxuICAgICAqICAgJ1VzZXItQWdlbnQnOiAnTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6ODYuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC84Ni4wJ1xyXG4gICAgICogfSk7XHJcbiAgICAgKiBsb2cuaW5mbyhyZXNwb25zZS5ib2R5KTtcclxuICAgICAqXHJcbiAgICAgKiAvLyBJZiBzZXJ2ZXIgcmV0dXJucyBEZWZsYXRlLWNvbXByZXNzZWQgc3RyZWFtIHdpdGhvdXQgaGVhZGVycywgYGRlZmxhdGVSYXdgIGNhbiBiZSB1c2VkIHRvIGRlY29tcHJlc3MgdGhlIGNvbnRlbnQuXHJcbiAgICAgKiBodHRwLnNldE9wdGlvbnMoe1xyXG4gICAgICogICBkZWZsYXRlUmF3OiB0cnVlXHJcbiAgICAgKiB9KTtcclxuICAgICAqIHZhciByZXNwb25zZSA9IGh0dHAuZ2V0KCdodHRwczovL0ZPTy5CQVInKTtcclxuICAgICAqIGxvZy5pbmZvKHJlc3BvbnNlLmJvZHkpO1xyXG4gICAgICovXHJcbiAgICBhc3luYyBnZXQodXJsLCBoZWFkZXJzKSB7XHJcbiAgICAgICAgY29uc3QgaHR0cE9wdHMgPSB7XHJcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfSFRUUF9PUFRJT05TLFxyXG4gICAgICAgICAgICAuLi50aGlzLl91c2VySHR0cE9wdGlvbnMgfHwge30sXHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzIHx8IHt9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faHR0cFJlcXVlc3RTeW5jKGh0dHBPcHRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBlcmZvcm1zIEhUVFAgUE9TVFxyXG4gICAgICogQGZ1bmN0aW9uIHBvc3RcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB1cmwgLSBVUkwuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIERhdGEuXHJcbiAgICAgKiBAcGFyYW0ge09iamVjdD19IGhlYWRlcnMgLSBIVFRQIGhlYWRlcnMuXHJcbiAgICAgKiBAcmV0dXJuIHtPYmplY3R9IFJlc3BvbnNlIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgcG9zdCh1cmwsIGRhdGEsIGhlYWRlcnMpIHtcclxuICAgICAgICBjb25zdCBodHRwT3B0cyA9IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9IVFRQX09QVElPTlMsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuX3VzZXJIdHRwT3B0aW9ucyB8fCB7fSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICBib2R5OiBkYXRhLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzIHx8IHt9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faHR0cFJlcXVlc3RTeW5jKGh0dHBPcHRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBlcmZvcm1zIEhUVFAgUFVUXHJcbiAgICAgKiBAZnVuY3Rpb24gcHV0XHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gVVJMLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBEYXRhLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBoZWFkZXJzIC0gSFRUUCBoZWFkZXJzLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHB1dCh1cmwsIGRhdGEsIGhlYWRlcnMpIHtcclxuICAgICAgICBjb25zdCBodHRwT3B0cyA9IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9IVFRQX09QVElPTlMsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuX3VzZXJIdHRwT3B0aW9ucyB8fCB7fSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgICAgICAgIGJvZHk6IGRhdGEsXHJcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMgfHwge31cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9odHRwUmVxdWVzdFN5bmMoaHR0cE9wdHMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUGVyZm9ybXMgSFRUUCBQQVRDSFxyXG4gICAgICogQGZ1bmN0aW9uIHBhdGNoXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gVVJMLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBEYXRhLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBoZWFkZXJzIC0gSFRUUCBoZWFkZXJzLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIHBhdGNoKHVybCwgZGF0YSwgaGVhZGVycykge1xyXG4gICAgICAgIGNvbnN0IGh0dHBPcHRzID0ge1xyXG4gICAgICAgICAgICAuLi5ERUZBVUxUX0hUVFBfT1BUSU9OUyxcclxuICAgICAgICAgICAgLi4udGhpcy5fdXNlckh0dHBPcHRpb25zIHx8IHt9LFxyXG4gICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxyXG4gICAgICAgICAgICBib2R5OiBkYXRhLFxyXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzIHx8IHt9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5faHR0cFJlcXVlc3RTeW5jKGh0dHBPcHRzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFBlcmZvcm1zIEhUVFAgREVMRVRFXHJcbiAgICAgKiBAZnVuY3Rpb24gZGVsZXRlXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gdXJsIC0gVVJMLlxyXG4gICAgICogQHBhcmFtIHtPYmplY3Q9fSBoZWFkZXJzIC0gSFRUUCBoZWFkZXJzLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBSZXNwb25zZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGFzeW5jIGRlbGV0ZSh1cmwsIGhlYWRlcnMpIHtcclxuICAgICAgICBjb25zdCBodHRwT3B0cyA9IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9IVFRQX09QVElPTlMsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuX3VzZXJIdHRwT3B0aW9ucyB8fCB7fSxcclxuICAgICAgICAgICAgdXJsOiB1cmwsXHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0RFTEVURScsXHJcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMgfHwge31cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9odHRwUmVxdWVzdFN5bmMoaHR0cE9wdHMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBsYXN0IHJlc3BvbnNlIG9iamVjdFxyXG4gICAgICogQGZ1bmN0aW9uIGdldFJlc3BvbnNlXHJcbiAgICAgKiBAcmV0dXJuIHtPYmplY3R9IFJlc3BvbnNlIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVzcG9uc2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RSZXNwb25zZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IFJldHVybnMgbGFzdCByZXNwb25zZSBib2R5XHJcbiAgICAgKiBAZnVuY3Rpb24gZ2V0UmVzcG9uc2VCb2R5XHJcbiAgICAgKiBAcmV0dXJuIHtTdHJpbmd9IFJlc3BvbnNlIGJvZHkuXHJcbiAgICAgKi9cclxuICAgIGdldFJlc3BvbnNlQm9keSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdFJlc3BvbnNlICYmIHRoaXMuX2xhc3RSZXNwb25zZS5ib2R5ID8gdGhpcy5fbGFzdFJlc3BvbnNlLmJvZHkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyByZXNwb25zZSBoZWFkZXJzXHJcbiAgICAgKiBAZnVuY3Rpb24gZ2V0UmVzcG9uc2VIZWFkZXJzXHJcbiAgICAgKiBAcmV0dXJuIHtPYmplY3R9IFJlc3BvbnNlIGhlYWRlcnMuXHJcbiAgICAgKi9cclxuICAgIGdldFJlc3BvbnNlSGVhZGVycygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2xhc3RSZXNwb25zZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhc3RSZXNwb25zZS5oZWFkZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyByZXNwb25zZSBVUkxcclxuICAgICAqIEBmdW5jdGlvbiBnZXRSZXNwb25zZVVybFxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBSZXNwb25zZSBVUkwuXHJcbiAgICAgKi9cclxuICAgIGdldFJlc3BvbnNlVXJsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fbGFzdFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5fbGFzdFJlc3BvbnNlLnVybDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydCB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgcGF0dGVybiBpcyBwcmVzZW50IGluIHRoZSByZXNwb25zZSBib2R5LlxyXG4gICAgICogQGZ1bmN0aW9uIGFzc2VydFRleHRcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSBwYXR0ZXJuIC0gUGF0dGVybiB0byBhc3NlcnQuXHJcbiAgICAgKi9cclxuICAgIGFzc2VydFRleHQocGF0dGVybikge1xyXG4gICAgICAgIGlmICghdGhpcy5fbGFzdFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLl9sYXN0UmVzcG9uc2UuYm9keSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkFTU0VSVF9FUlJPUiwgJ1Jlc3BvbnNlIGJvZHkgaXMgZW1wdHknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcmVzcENvbnRlbnQgPSB0eXBlb2YgdGhpcy5fbGFzdFJlc3BvbnNlLmJvZHkgPT09ICdzdHJpbmcnID8gdGhpcy5fbGFzdFJlc3BvbnNlLmJvZHkgOiBKU09OLnN0cmluZ2lmeSh0aGlzLl9sYXN0UmVzcG9uc2UuYm9keSk7XHJcbiAgICAgICAgaWYgKCFtb2RVdGlscy5tYXRjaFBhdHRlcm4ocmVzcENvbnRlbnQsIHBhdHRlcm4pKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBgRXhwZWN0ZWQgSFRUUCByZXNwb25zZSBjb250ZW50IHRvIG1hdGNoOiBcIiR7cGF0dGVybn1cIiBidXQgZ290OiBcIiR7cmVzcENvbnRlbnR9XCJgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnQgcmVzcG9uc2UgdGltZVxyXG4gICAgICogQGZ1bmN0aW9uIGFzc2VydFJlc3BvbnNlVGltZVxyXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IG1heFRpbWUgLSBNYXhpbXVtIHJlc3BvbnNlIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICovXHJcbiAgICBhc3NlcnRSZXNwb25zZVRpbWUobWF4VGltZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnQgaWYgSFRUUCBoZWFkZXIgaXMgcHJlc2VudGVkIGluIHRoZSByZXNwb25zZVxyXG4gICAgICogQGZ1bmN0aW9uIGFzc2VydEhlYWRlclxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IGhlYWRlck5hbWUgLSBBIEhUVFAgaGVhZGVyIG5hbWUuXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZz19IGhlYWRlclZhbHVlUGF0dGVybiAtIEFuIG9wdGlvbmFsIEhUVFAgaGVhZGVyIHZhbHVlIHBhdHRlcm4uXHJcbiAgICAgKi9cclxuICAgIGFzc2VydEhlYWRlcihoZWFkZXJOYW1lLCBoZWFkZXJWYWx1ZVBhdHRlcm4gPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFoZWFkZXJOYW1lIHx8IHR5cGVvZiBoZWFkZXJOYW1lICE9PSAnc3RyaW5nJyB8fCBoZWFkZXJOYW1lLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaGVhZGVyTmFtZSA9IGhlYWRlck5hbWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5fbGFzdFJlc3BvbnNlLmhlYWRlcnM7XHJcbiAgICAgICAgaWYgKCFoZWFkZXJzW2hlYWRlck5hbWVdKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCAnRXhwZWN0ZWQgSFRUUCBoZWFkZXIgXCIke2hlYWRlck5hbWV9XCIgdG8gYmUgcHJlc2VudCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChoZWFkZXJWYWx1ZVBhdHRlcm4gJiYgdHlwZW9mIGhlYWRlclZhbHVlUGF0dGVybiA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgY29uc3QgYWN0dWFsSGVhZGVyVmFsdWUgPSBoZWFkZXJzW2hlYWRlck5hbWVdO1xyXG4gICAgICAgICAgICBpZiAoIW1vZFV0aWxzLm1hdGNoUGF0dGVybihhY3R1YWxIZWFkZXJWYWx1ZSwgaGVhZGVyVmFsdWVQYXR0ZXJuKSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5BU1NFUlRfRVJST1IsIGBFeHBlY3RlZCBIVFRQIGhlYWRlciBcIiR7aGVhZGVyTmFtZX1cIiB2YWx1ZSB0byBtYXRjaDogXCIke2hlYWRlclZhbHVlUGF0dGVybn1cIiBidXQgZ290OiBcIiR7YWN0dWFsSGVhZGVyVmFsdWV9XCJgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydCBpZiBIVFRQIGNvb2tpZSBpcyBwcmVzZW50ZWQgaW4gdGhlIHJlc3BvbnNlXHJcbiAgICAgKiBAZnVuY3Rpb24gYXNzZXJ0Q29va2llXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gY29va2llTmFtZSAtIEEgSFRUUCBjb29raWUgbmFtZS5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gY29va2llVmFsdWVQYXR0ZXJuIC0gQW4gb3B0aW9uYWwgSFRUUCBjb29raWUgdmFsdWUgcGF0dGVybi5cclxuICAgICAqL1xyXG4gICAgYXNzZXJ0Q29va2llKGNvb2tpZU5hbWUsIGNvb2tpZVZhbHVlUGF0dGVybikge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBBc3NlcnQgdGhlIGxhc3QgSFRUUCByZXNwb25zZSdzIHN0YXR1cyBjb2RlXHJcbiAgICAgKiBAZnVuY3Rpb24gYXNzZXJ0U3RhdHVzXHJcbiAgICAgKiBAcGFyYW0ge051bWJlcnxBcnJheX0gY29kZUxpc3QgLSBBIHNpbmdsZSBzdGF0dXMgY29kZSBvciBhIGxpc3Qgb2YgY29kZXMuXHJcbiAgICAgKi9cclxuICAgIGFzc2VydFN0YXR1cyhjb2RlTGlzdCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fbGFzdFJlc3BvbnNlIHx8ICFjb2RlTGlzdCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmIHdlIGdvdCBhIHNpbmdsZSB2YWx1ZSwgdGhlbiBjb252ZXJ0IGl0IHRvIGFuIGFycmF5XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvZGVMaXN0KSkge1xyXG4gICAgICAgICAgICBjb2RlTGlzdCA9IFtjb2RlTGlzdF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSB0aGlzLl9sYXN0UmVzcG9uc2Uuc3RhdHVzQ29kZTtcclxuICAgICAgICBpZiAoIWNvZGVMaXN0LmluY2x1ZGVzKHN0YXR1c0NvZGUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBPeEVycm9yKGVyckhlbHBlci5lcnJvckNvZGUuQVNTRVJUX0VSUk9SLCBgRXhwZWN0ZWQgSFRUUCBzdGF0dXMgdG8gYmU6IFwiJHtjb2RlTGlzdH1cIiBidXQgZ290OiBcIiR7c3RhdHVzQ29kZX1cImApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEFzc2VydCBIVFRQIDIwMCBPSyBzdGF0dXNcclxuICAgICAqIEBmdW5jdGlvbiBhc3NlcnRTdGF0dXNPa1xyXG4gICAgICovXHJcbiAgICBhc3NlcnRTdGF0dXNPaygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hc3NlcnRTdGF0dXMoMjAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IE9wZW5zIG5ldyB0cmFuc2FjdGlvbi5cclxuICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgdHJhbnNhY3Rpb24gd2lsbCBwZXJzaXN0IHRpbGwgYSBuZXcgb25lIGlzIG9wZW5lZC4gVHJhbnNhY3Rpb24gbmFtZXMgbXVzdCBiZVxyXG4gICAgICogICAgICAgICAgICAgIHVuaXF1ZS5cclxuICAgICAqIEBmdW5jdGlvbiB0cmFuc2FjdGlvblxyXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgLSBUaGUgdHJhbnNhY3Rpb24gbmFtZS5cclxuICAgICAqL1xyXG4gICAgYXN5bmMgdHJhbnNhY3Rpb24obmFtZSkge1xyXG4gICAgICAgIGdsb2JhbC5fbGFzdFRyYW5zYWN0aW9uTmFtZSA9IG5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgX2h0dHBSZXF1ZXN0U3luYyhodHRwT3B0cykge1xyXG4gICAgICAgIGxldCByZXN1bHQ7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGdvdChodHRwT3B0cyk7XHJcbiAgICAgICAgICAgIGlmIChodHRwT3B0cy5kZWZsYXRlUmF3ICYmIHJlc3VsdC5oZWFkZXJzWydjb250ZW50LWVuY29kaW5nJ10gPT09ICdkZWZsYXRlJykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgemxpYiA9IHJlcXVpcmUoJ3psaWInKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29tcCA9IHpsaWIuY3JlYXRlSW5mbGF0ZVJhdygpO1xyXG4gICAgICAgICAgICAgICAgZGVjb21wLndyaXRlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgICAgICAgIGF3YWl0ICgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21wLm9uKCdkYXRhJywgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5ib2R5ID0gZGF0YS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmJvZHkgPSBKU09OLnBhcnNlKHJlc3VsdC5ib2R5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIHBhcnNpbmcgZmFpbHMganVzdCByZXR1cm4gdGhlIG9yaWdpbmFsIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHN0b3JlIGxhc3QgcmVzcG9uc2UgdG8gYWxsb3cgZnVydGhlciBhc3NlcnRpb25zIGFuZCB2YWxpZGF0aW9uc1xyXG4gICAgICAgIHRoaXMuX2xhc3RSZXNwb25zZSA9IHJlc3VsdDtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEVycm9yICYmIHRoaXMub3B0aW9ucyAmJiAhdGhpcy5vcHRpb25zLmh0dHBBdXRvVGhyb3dFcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgT3hFcnJvcihlcnJIZWxwZXIuZXJyb3JDb2RlLkhUVFBfRVJST1IsIHJlc3VsdC5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -4,6 +4,8 @@ require("source-map-support/register");
|
|
|
4
4
|
|
|
5
5
|
var _OxygenError = _interopRequireDefault(require("../errors/OxygenError"));
|
|
6
6
|
|
|
7
|
+
var _util = _interopRequireDefault(require("../lib/util"));
|
|
8
|
+
|
|
7
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
8
10
|
|
|
9
11
|
/*
|
|
@@ -24,8 +26,6 @@ var errHelper = require('../errors/helper');
|
|
|
24
26
|
module.exports = function () {
|
|
25
27
|
var request = require('request');
|
|
26
28
|
|
|
27
|
-
var deasync = require('deasync');
|
|
28
|
-
|
|
29
29
|
const apiBase = 'https://api.mailinator.com/api';
|
|
30
30
|
|
|
31
31
|
const _responseTimeout = 1000 * 30; // in ms
|
|
@@ -39,28 +39,13 @@ module.exports = function () {
|
|
|
39
39
|
|
|
40
40
|
var _privateDomain;
|
|
41
41
|
|
|
42
|
-
var _currentTry;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
function wait() {
|
|
46
|
-
var isDone = false;
|
|
47
|
-
var start = new Date().getTime();
|
|
48
|
-
var interval = setInterval(() => {
|
|
49
|
-
var now = new Date().getTime();
|
|
50
|
-
|
|
51
|
-
if (now - start >= _retryInterval) {
|
|
52
|
-
clearInterval(interval);
|
|
53
|
-
isDone = true;
|
|
54
|
-
}
|
|
55
|
-
}, 50);
|
|
56
|
-
deasync.loopWhile(() => !isDone);
|
|
57
|
-
}
|
|
42
|
+
var _currentTry;
|
|
58
43
|
|
|
59
44
|
function apiSettings() {
|
|
60
45
|
return 'token=' + _token + (_privateDomain ? '&private_domain=true' : '');
|
|
61
46
|
}
|
|
62
47
|
|
|
63
|
-
function invoke(url) {
|
|
48
|
+
async function invoke(url) {
|
|
64
49
|
var result = null;
|
|
65
50
|
var options = {
|
|
66
51
|
url: url,
|
|
@@ -68,15 +53,23 @@ module.exports = function () {
|
|
|
68
53
|
json: true,
|
|
69
54
|
timeout: _responseTimeout
|
|
70
55
|
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
56
|
+
await (() => {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
try {
|
|
59
|
+
request(options, (err, res, body) => {
|
|
60
|
+
result = err || res;
|
|
61
|
+
resolve();
|
|
62
|
+
});
|
|
63
|
+
} catch (e) {
|
|
64
|
+
reject(e);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
})(); // retry
|
|
75
68
|
|
|
76
69
|
if (_currentTry < _retries && (!result.statusCode || result.statusCode >= 500)) {
|
|
77
70
|
_currentTry++;
|
|
78
|
-
|
|
79
|
-
result = invoke(url);
|
|
71
|
+
await _util.default.sleep(_retryInterval);
|
|
72
|
+
result = await invoke(url);
|
|
80
73
|
}
|
|
81
74
|
|
|
82
75
|
if (result.statusCode !== 200) {
|
|
@@ -125,9 +118,9 @@ module.exports = function () {
|
|
|
125
118
|
*/
|
|
126
119
|
|
|
127
120
|
|
|
128
|
-
module.list = function (inbox) {
|
|
121
|
+
module.list = async function (inbox) {
|
|
129
122
|
_currentTry = 0;
|
|
130
|
-
return invoke(apiBase + '/inbox?' + apiSettings() + (inbox ? '&to=' + inbox : ''));
|
|
123
|
+
return await invoke(apiBase + '/inbox?' + apiSettings() + (inbox ? '&to=' + inbox : ''));
|
|
131
124
|
};
|
|
132
125
|
/**
|
|
133
126
|
* @summary Fetches specific email.
|
|
@@ -164,9 +157,9 @@ module.exports = function () {
|
|
|
164
157
|
*/
|
|
165
158
|
|
|
166
159
|
|
|
167
|
-
module.fetch = function (id) {
|
|
160
|
+
module.fetch = async function (id) {
|
|
168
161
|
_currentTry = 0;
|
|
169
|
-
return invoke(apiBase + '/email?' + apiSettings() + '&id=' + id);
|
|
162
|
+
return await invoke(apiBase + '/email?' + apiSettings() + '&id=' + id);
|
|
170
163
|
};
|
|
171
164
|
/**
|
|
172
165
|
* @summary Extracts email's subject.
|
|
@@ -204,11 +197,11 @@ module.exports = function () {
|
|
|
204
197
|
*/
|
|
205
198
|
|
|
206
199
|
|
|
207
|
-
module.delete = function (id) {
|
|
200
|
+
module.delete = async function (id) {
|
|
208
201
|
_currentTry = 0;
|
|
209
|
-
return invoke(apiBase + '/delete?' + apiSettings() + '&id=' + id);
|
|
202
|
+
return await invoke(apiBase + '/delete?' + apiSettings() + '&id=' + id);
|
|
210
203
|
};
|
|
211
204
|
|
|
212
205
|
return module;
|
|
213
206
|
};
|
|
214
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tYWlsaW5hdG9yLmpzIl0sIm5hbWVzIjpbImVyckhlbHBlciIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWVzdCIsImRlYXN5bmMiLCJhcGlCYXNlIiwiX3Jlc3BvbnNlVGltZW91dCIsIl9yZXRyaWVzIiwiX3JldHJ5SW50ZXJ2YWwiLCJfdG9rZW4iLCJfcHJpdmF0ZURvbWFpbiIsIl9jdXJyZW50VHJ5Iiwid2FpdCIsImlzRG9uZSIsInN0YXJ0IiwiRGF0ZSIsImdldFRpbWUiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwibm93IiwiY2xlYXJJbnRlcnZhbCIsImxvb3BXaGlsZSIsImFwaVNldHRpbmdzIiwiaW52b2tlIiwidXJsIiwicmVzdWx0Iiwib3B0aW9ucyIsIm1ldGhvZCIsImpzb24iLCJ0aW1lb3V0IiwiZXJyIiwicmVzIiwiYm9keSIsInN0YXR1c0NvZGUiLCJtc2ciLCJKU09OIiwic3RyaW5naWZ5IiwiT3hFcnJvciIsImVycm9yQ29kZSIsIk1BSUxJTkFUT1JfRVJST1IiLCJpc0luaXRpYWxpemVkIiwidW5kZWZpbmVkIiwiaW5pdCIsInRva2VuIiwicHJpdmF0ZURvbWFpbiIsImxpc3QiLCJpbmJveCIsImZldGNoIiwiaWQiLCJnZXRTdWJqZWN0IiwiZW1haWxPYmoiLCJjb25zb2xlIiwibG9nIiwiZGF0YSIsInN1YmplY3QiLCJnZXRCb2R5IiwicGFydHMiLCJkZWxldGUiXSwibWFwcGluZ3MiOiI7Ozs7QUFjQTs7OztBQWRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQSxJQUFJQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFFQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLFlBQVc7QUFDeEIsTUFBSUMsT0FBTyxHQUFHSCxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxNQUFJSSxP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QUNBO0FBQ0E7QUFDQTs7O0FBQ0lyRCxFQUFBQSxNQUFNLENBQUNzRCxPQUFQLEdBQWlCLFVBQVNMLFFBQVQsRUFBbUI7QUFDaENDLElBQUFBLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRixRQUFRLENBQUNHLElBQVQsQ0FBY0csS0FBZCxDQUFvQixDQUFwQixFQUF1QnhCLElBQW5DO0FBQ0EsV0FBT2tCLFFBQVEsQ0FBQ0csSUFBVCxDQUFjRyxLQUFkLENBQW9CLENBQXBCLEVBQXVCeEIsSUFBOUI7QUFDSCxHQUhEO0FBS0E7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNJL0IsRUFBQUEsTUFBTSxDQUFDd0QsTUFBUCxHQUFnQixVQUFTVCxFQUFULEVBQWE7QUFDekJyQyxJQUFBQSxXQUFXLEdBQUcsQ0FBZDtBQUNBLFdBQU9ZLE1BQU0sQ0FBQ2xCLE9BQU8sR0FBRyxVQUFWLEdBQXVCaUIsV0FBVyxFQUFsQyxHQUF1QyxNQUF2QyxHQUFnRDBCLEVBQWpELENBQWI7QUFDSCxHQUhEOztBQUtBLFNBQU8vQyxNQUFQO0FBQ0gsQ0FwTEQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZSBtYWlsaW5hdG9yXHJcbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBtZXRob2RzIGZvciB3b3JraW5nIHdpdGggTWFpbGluYXRvciBzZXJ2aWNlIC0gd3d3Lm1haWxpbmF0b3IuY29tXHJcbiAqL1xyXG5cclxuaW1wb3J0IE94RXJyb3IgZnJvbSAnLi4vZXJyb3JzL094eWdlbkVycm9yJztcclxudmFyIGVyckhlbHBlciA9IHJlcXVpcmUoJy4uL2Vycm9ycy9oZWxwZXInKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XHJcbiAgICB2YXIgcmVxdWVzdCA9IHJlcXVpcmUoJ3JlcXVlc3QnKTtcclxuICAgIHZhciBkZWFzeW5jID0gcmVxdWlyZSgnZGVhc3luYycpO1xyXG5cclxuICAgIGNvbnN0IGFwaUJhc2UgPSAnaHR0cHM6Ly9hcGkubWFpbGluYXRvci5jb20vYXBpJztcclxuXHJcbiAgICBjb25zdCBfcmVzcG9uc2VUaW1lb3V0ID0gMTAwMCAqIDMwOyAgIC8vIGluIG1zXHJcbiAgICBjb25zdCBfcmV0cmllcyA9IDI7ICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiByZXRyaWVzXHJcbiAgICBjb25zdCBfcmV0cnlJbnRlcnZhbCA9IDEwMDA7ICAgICAgICAgIC8vIGluIG1zXHJcblxyXG4gICAgdmFyIF90b2tlbjtcclxuICAgIHZhciBfcHJpdmF0ZURvbWFpbjtcclxuXHJcbiAgICB2YXIgX2N1cnJlbnRUcnk7XHJcblxyXG4gICAgLy8gd2FpdCBzeW5jaHJvbm91c2x5IGluIGEgbm9uLWJsb2NraW5nIG1hbm5lclxyXG4gICAgZnVuY3Rpb24gd2FpdCgpIHtcclxuICAgICAgICB2YXIgaXNEb25lID0gZmFsc2U7XHJcbiAgICAgICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcblxyXG4gICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgICAgdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICBpZiAoKG5vdyAtIHN0YXJ0KSA+PSBfcmV0cnlJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XHJcbiAgICAgICAgICAgICAgICBpc0RvbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgNTApO1xyXG5cclxuICAgICAgICBkZWFzeW5jLmxvb3BXaGlsZSgoKSA9PiAhaXNEb25lKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBhcGlTZXR0aW5ncygpIHtcclxuICAgICAgICByZXR1cm4gJ3Rva2VuPScgKyBfdG9rZW4gKyAoX3ByaXZhdGVEb21haW4gPyAnJnByaXZhdGVfZG9tYWluPXRydWUnIDogJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGludm9rZSh1cmwpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHVybDogdXJsLFxyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICBqc29uOiB0cnVlLFxyXG4gICAgICAgICAgICB0aW1lb3V0OiBfcmVzcG9uc2VUaW1lb3V0XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmVxdWVzdChvcHRpb25zLCAoZXJyLCByZXMsIGJvZHkpID0+IHsgcmVzdWx0ID0gZXJyIHx8IHJlczsgfSk7XHJcbiAgICAgICAgZGVhc3luYy5sb29wV2hpbGUoKCkgPT4gIXJlc3VsdCk7XHJcblxyXG4gICAgICAgIC8vIHJldHJ5XHJcbiAgICAgICAgaWYgKF9jdXJyZW50VHJ5IDwgX3JldHJpZXMgJiYgKCFyZXN1bHQuc3RhdHVzQ29kZSB8fCByZXN1bHQuc3RhdHVzQ29kZSA+PSA1MDApKSB7XHJcbiAgICAgICAgICAgIF9jdXJyZW50VHJ5Kys7XHJcbiAgICAgICAgICAgIHdhaXQoKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gaW52b2tlKHVybCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzdWx0LnN0YXR1c0NvZGUgIT09IDIwMCkge1xyXG4gICAgICAgICAgICB2YXIgbXNnID0gcmVzdWx0LnN0YXR1c0NvZGUgPyAnU3RhdHVzIENvZGUgLSAnICsgcmVzdWx0LnN0YXR1c0NvZGUgOiAnRXJyb3IgLSAnICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5NQUlMSU5BVE9SX0VSUk9SLCBtc2cpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5ib2R5O1xyXG4gICAgfVxyXG5cclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIF90b2tlbiAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIG1haWxpbmF0b3IgbW9kdWxlLlxyXG4gICAgICogQGZ1bmN0aW9uIGluaXRcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0b2tlbiAtIEFQSSB0b2tlbi5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gcHJpdmF0ZURvbWFpbiAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIHVzZSBhIHByaXZhdGUgZG9tYWluLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuaW5pdCA9IGZ1bmN0aW9uKHRva2VuLCBwcml2YXRlRG9tYWluKSB7XHJcbiAgICAgICAgX3Rva2VuID0gdG9rZW47XHJcbiAgICAgICAgX3ByaXZhdGVEb21haW4gPSBwcml2YXRlRG9tYWluO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEZldGNoZXMgaW5ib3ggbWVzc2FnZXMgb3IgYWxsIHNhdmVkIG1lc3NhZ2VzLlxyXG4gICAgICogQGZ1bmN0aW9uIGxpc3RcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gaW5ib3ggLSBJbmJveCBuYW1lLiBJZiBvbW1pdGVkIHNhdmVkIG1lc3NhZ2VzIHdpbGwgYmUgZmV0Y2hlZCBpbnN0ZWFkLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBMaXN0IGNvbnRhaW5pbmcgbWVzc2FnZSBkZXRhaWxzLlxyXG4gICAgICogQGV4YW1wbGUgPGNhcHRpb24+W2pzb25dIEV4YW1wbGUgb2YgdGhlIHJldHVybmVkIG9iamVjdDwvY2FwdGlvbj5cclxuICAgICAqIHtcclxuICAgICAqICAgXCJtZXNzYWdlc1wiOiBbXHJcbiAgICAgKiAgICAge1xyXG4gICAgICogICAgICAgXCJmcm9tZnVsbFwiOiBcIm5vcmVwbHlAZXhhbXBsZS5jb21cIixcclxuICAgICAqICAgICAgIFwic3ViamVjdFwiOiBcIlN1YmplY3RcIixcclxuICAgICAqICAgICAgIFwiZnJvbVwiOiBcIlRlc3QgVGVzdGVyXCIsXHJcbiAgICAgKiAgICAgICBcIm9yaWdmcm9tXCI6IFwiVGVzdCBUZXN0ZXIgbm9yZXBseUBleGFtcGxlLmNvbVwiLFxyXG4gICAgICogICAgICAgXCJ0b1wiOiBcImluYm94LW5hbWVcIixcclxuICAgICAqICAgICAgIFwiaWRcIjogXCJSQU5ET01MWSBHRU5FUkFURUQgSURcIixcclxuICAgICAqICAgICAgIFwidGltZVwiOiAxNDkxMjAwMDMwMDAwLFxyXG4gICAgICogICAgICAgXCJzZWNvbmRzX2Fnb1wiOiAyMzRcclxuICAgICAqICAgICB9LFxyXG4gICAgICogICBdXHJcbiAgICAgKiB9XHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5saXN0ID0gZnVuY3Rpb24oaW5ib3gpIHtcclxuICAgICAgICBfY3VycmVudFRyeSA9IDA7XHJcbiAgICAgICAgcmV0dXJuIGludm9rZShhcGlCYXNlICsgJy9pbmJveD8nICsgYXBpU2V0dGluZ3MoKSArIChpbmJveCA/ICcmdG89JyArIGluYm94IDogJycpKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBGZXRjaGVzIHNwZWNpZmljIGVtYWlsLlxyXG4gICAgICogQGZ1bmN0aW9uIGZldGNoXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gaWQgLSBNZXNzYWdlIElELlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBFbWFpbCBkZXRhaWxzLiBFLmcuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5banNvbl0gRXhhbXBsZSBvZiB0aGUgcmV0dXJuZWQgb2JqZWN0PC9jYXB0aW9uPlxyXG4gICAgICoge1xyXG4gICAgICogICBcImRhdGFcIjpcclxuICAgICAqICAgICB7XHJcbiAgICAgKiAgICAgICBcImZyb21mdWxsXCI6XCJub3JlcGx5QGV4YW1wbGUuY29tXCIsXHJcbiAgICAgKiAgICAgICBcImhlYWRlcnNcIjogeyAuLi4gZW1haWwgaGVhZGVycyAuLi4gfSxcclxuICAgICAqICAgICAgIFwic3ViamVjdFwiOlwidGVzdCBzdWJqZWN0XCIsXHJcbiAgICAgKiAgICAgICBcInJlcXVlc3RJZFwiOlwiUkVRVUVTVCBJRFwiLFxyXG4gICAgICogICAgICAgXCJwYXJ0c1wiOiBbXHJcbiAgICAgKiAgICAgICAgIHtcclxuICAgICAqICAgICAgICAgICBcImhlYWRlcnNcIjp7IFwiY29udGVudC10eXBlXCI6XCJ0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XCIgfSxcclxuICAgICAqICAgICAgICAgICBcImJvZHlcIjpcIkVNQUlMIEJPRFkgKFRFWFQpXCJcclxuICAgICAqICAgICAgICAgfSxcclxuICAgICAqICAgICAgICAge1xyXG4gICAgICogICAgICAgICAgIFwiaGVhZGVyc1wiOnsgXCJjb250ZW50LXR5cGVcIjpcInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIH0sXHJcbiAgICAgKiAgICAgICAgICAgXCJib2R5XCI6XCJFTUFJTCBCT0RZIChIVE1MKVwiXHJcbiAgICAgKiAgICAgICAgIH1cclxuICAgICAqICAgICAgIF0sXHJcbiAgICAgKiAgICAgICBcImZyb21cIjpcIlRlc3QgVGVzdGVyXCIsXHJcbiAgICAgKiAgICAgICBcIm9yaWdmcm9tXCI6XCJUZXN0IFRlc3RlciBub3JlcGx5QGV4YW1wbGUuY29tXCIsXHJcbiAgICAgKiAgICAgICBcInRvXCI6XCJjYi10ZXN0LTJcIixcclxuICAgICAqICAgICAgIFwiaWRcIjpcIlJBTkRPTUxZIEdFTkVSQVRFRCBJRFwiLFxyXG4gICAgICogICAgICAgXCJ0aW1lXCI6MTQ5MTIwMDAzMDAwMCxcclxuICAgICAqICAgICAgIFwic2Vjb25kc19hZ29cIjoxMTc0XHJcbiAgICAgKiAgICB9LFxyXG4gICAgICogICBcImFwaUVtYWlsRmV0Y2hlc0xlZnRcIjoxOTk5XHJcbiAgICAgKiB9XHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5mZXRjaCA9IGZ1bmN0aW9uKGlkKSB7XHJcbiAgICAgICAgX2N1cnJlbnRUcnkgPSAwO1xyXG4gICAgICAgIHJldHVybiBpbnZva2UoYXBpQmFzZSArICcvZW1haWw/JyArIGFwaVNldHRpbmdzKCkgKyAnJmlkPScgKyBpZCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRXh0cmFjdHMgZW1haWwncyBzdWJqZWN0LlxyXG4gICAgICogQGZ1bmN0aW9uIGdldFN1YmplY3RcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBlbWFpbE9iaiAtIEVtYWlsIG9iamVjdCByZXR1cm5lZCBieSBtYWlsaW5pYXRvci5mZXRjaFxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBFbWFpbCBzdWJqZWN0LlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuZ2V0U3ViamVjdCA9IGZ1bmN0aW9uKGVtYWlsT2JqKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZW1haWxPYmouZGF0YS5zdWJqZWN0KTtcclxuICAgICAgICByZXR1cm4gZW1haWxPYmouZGF0YS5zdWJqZWN0O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEV4dHJhY3RzIGZpcnN0IGF2YWlsYWJsZSBlbWFpbCBib2R5LlxyXG4gICAgICogQGZ1bmN0aW9uIGdldEJvZHlcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBlbWFpbE9iaiAtIEVtYWlsIG9iamVjdCByZXR1cm5lZCBieSBtYWlsaW5pYXRvci5mZXRjaFxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBFbWFpbCBib2R5LlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuZ2V0Qm9keSA9IGZ1bmN0aW9uKGVtYWlsT2JqKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZW1haWxPYmouZGF0YS5wYXJ0c1swXS5ib2R5KTtcclxuICAgICAgICByZXR1cm4gZW1haWxPYmouZGF0YS5wYXJ0c1swXS5ib2R5O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IERlbGV0ZXMgc2VwY2lmaWMgZW1haWwuXHJcbiAgICAgKiBAZnVuY3Rpb24gZGVsZXRlXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gaWQgLSBNZXNzYWdlIElELlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBTdGF0dXMuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5banNvbl0gRXhhbXBsZSBvZiB0aGUgcmV0dXJuZWQgb2JqZWN0PC9jYXB0aW9uPlxyXG4gICAgICoge1xyXG4gICAgICogICBcInN0YXR1c1wiOiBcIm9rXCJcclxuICAgICAqIH1cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmRlbGV0ZSA9IGZ1bmN0aW9uKGlkKSB7XHJcbiAgICAgICAgX2N1cnJlbnRUcnkgPSAwO1xyXG4gICAgICAgIHJldHVybiBpbnZva2UoYXBpQmFzZSArICcvZGVsZXRlPycgKyBhcGlTZXR0aW5ncygpICsgJyZpZD0nICsgaWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXX0=
|
|
207
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tYWlsaW5hdG9yLmpzIl0sIm5hbWVzIjpbImVyckhlbHBlciIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwicmVxdWVzdCIsImFwaUJhc2UiLCJfcmVzcG9uc2VUaW1lb3V0IiwiX3JldHJpZXMiLCJfcmV0cnlJbnRlcnZhbCIsIl90b2tlbiIsIl9wcml2YXRlRG9tYWluIiwiX2N1cnJlbnRUcnkiLCJhcGlTZXR0aW5ncyIsImludm9rZSIsInVybCIsInJlc3VsdCIsIm9wdGlvbnMiLCJtZXRob2QiLCJqc29uIiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXJyIiwicmVzIiwiYm9keSIsImUiLCJzdGF0dXNDb2RlIiwibGliVXRpbHMiLCJzbGVlcCIsIm1zZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJPeEVycm9yIiwiZXJyb3JDb2RlIiwiTUFJTElOQVRPUl9FUlJPUiIsImlzSW5pdGlhbGl6ZWQiLCJ1bmRlZmluZWQiLCJpbml0IiwidG9rZW4iLCJwcml2YXRlRG9tYWluIiwibGlzdCIsImluYm94IiwiZmV0Y2giLCJpZCIsImdldFN1YmplY3QiLCJlbWFpbE9iaiIsImNvbnNvbGUiLCJsb2ciLCJkYXRhIiwic3ViamVjdCIsImdldEJvZHkiLCJwYXJ0cyIsImRlbGV0ZSJdLCJtYXBwaW5ncyI6Ijs7OztBQWNBOztBQUVBOzs7O0FBaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQSxJQUFJQSxTQUFTLEdBQUdDLE9BQU8sQ0FBQyxrQkFBRCxDQUF2Qjs7QUFHQUMsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLFlBQVc7QUFDeEIsTUFBSUMsT0FBTyxHQUFHSCxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFFQSxRQUFNSSxPQUFPLEdBQUcsZ0NBQWhCOztBQUVBLFFBQU1DLGdCQUFnQixHQUFHLE9BQU8sRUFBaEMs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LENBQUNtRCxNQUFQLEdBQWdCLGdCQUFlVCxFQUFmLEVBQW1CO0FBQy9CakMsSUFBQUEsV0FBVyxHQUFHLENBQWQ7QUFDQSxXQUFPLE1BQU1FLE1BQU0sQ0FBQ1IsT0FBTyxHQUFHLFVBQVYsR0FBdUJPLFdBQVcsRUFBbEMsR0FBdUMsTUFBdkMsR0FBZ0RnQyxFQUFqRCxDQUFuQjtBQUNILEdBSEQ7O0FBS0EsU0FBTzFDLE1BQVA7QUFDSCxDQTdLRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IENsb3VkQmVhdCBMaW1pdGVkXHJcbiAqXHJcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XHJcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XHJcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXHJcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lIG1haWxpbmF0b3JcclxuICogQGRlc2NyaXB0aW9uIFByb3ZpZGVzIG1ldGhvZHMgZm9yIHdvcmtpbmcgd2l0aCBNYWlsaW5hdG9yIHNlcnZpY2UgLSB3d3cubWFpbGluYXRvci5jb21cclxuICovXHJcblxyXG5pbXBvcnQgT3hFcnJvciBmcm9tICcuLi9lcnJvcnMvT3h5Z2VuRXJyb3InO1xyXG52YXIgZXJySGVscGVyID0gcmVxdWlyZSgnLi4vZXJyb3JzL2hlbHBlcicpO1xyXG5pbXBvcnQgbGliVXRpbHMgZnJvbSAnLi4vbGliL3V0aWwnO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcclxuICAgIHZhciByZXF1ZXN0ID0gcmVxdWlyZSgncmVxdWVzdCcpO1xyXG5cclxuICAgIGNvbnN0IGFwaUJhc2UgPSAnaHR0cHM6Ly9hcGkubWFpbGluYXRvci5jb20vYXBpJztcclxuXHJcbiAgICBjb25zdCBfcmVzcG9uc2VUaW1lb3V0ID0gMTAwMCAqIDMwOyAgIC8vIGluIG1zXHJcbiAgICBjb25zdCBfcmV0cmllcyA9IDI7ICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiByZXRyaWVzXHJcbiAgICBjb25zdCBfcmV0cnlJbnRlcnZhbCA9IDEwMDA7ICAgICAgICAgIC8vIGluIG1zXHJcblxyXG4gICAgdmFyIF90b2tlbjtcclxuICAgIHZhciBfcHJpdmF0ZURvbWFpbjtcclxuXHJcbiAgICB2YXIgX2N1cnJlbnRUcnk7XHJcblxyXG4gICAgZnVuY3Rpb24gYXBpU2V0dGluZ3MoKSB7XHJcbiAgICAgICAgcmV0dXJuICd0b2tlbj0nICsgX3Rva2VuICsgKF9wcml2YXRlRG9tYWluID8gJyZwcml2YXRlX2RvbWFpbj10cnVlJyA6ICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBmdW5jdGlvbiBpbnZva2UodXJsKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bGw7XHJcblxyXG4gICAgICAgIHZhciBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICB1cmw6IHVybCxcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAganNvbjogdHJ1ZSxcclxuICAgICAgICAgICAgdGltZW91dDogX3Jlc3BvbnNlVGltZW91dFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGF3YWl0ICgoKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qob3B0aW9ucywgKGVyciwgcmVzLCBib2R5KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVyciB8fCByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKCk7XHJcblxyXG4gICAgICAgIC8vIHJldHJ5XHJcbiAgICAgICAgaWYgKF9jdXJyZW50VHJ5IDwgX3JldHJpZXMgJiYgKCFyZXN1bHQuc3RhdHVzQ29kZSB8fCByZXN1bHQuc3RhdHVzQ29kZSA+PSA1MDApKSB7XHJcbiAgICAgICAgICAgIF9jdXJyZW50VHJ5Kys7XHJcbiAgICAgICAgICAgIGF3YWl0IGxpYlV0aWxzLnNsZWVwKF9yZXRyeUludGVydmFsKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgaW52b2tlKHVybCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzdWx0LnN0YXR1c0NvZGUgIT09IDIwMCkge1xyXG4gICAgICAgICAgICB2YXIgbXNnID0gcmVzdWx0LnN0YXR1c0NvZGUgPyAnU3RhdHVzIENvZGUgLSAnICsgcmVzdWx0LnN0YXR1c0NvZGUgOiAnRXJyb3IgLSAnICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IE94RXJyb3IoZXJySGVscGVyLmVycm9yQ29kZS5NQUlMSU5BVE9SX0VSUk9SLCBtc2cpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5ib2R5O1xyXG4gICAgfVxyXG5cclxuICAgIG1vZHVsZS5pc0luaXRpYWxpemVkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIF90b2tlbiAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIG1haWxpbmF0b3IgbW9kdWxlLlxyXG4gICAgICogQGZ1bmN0aW9uIGluaXRcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nfSB0b2tlbiAtIEFQSSB0b2tlbi5cclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gcHJpdmF0ZURvbWFpbiAtIFNwZWNpZmllcyB3aGV0aGVyIHRvIHVzZSBhIHByaXZhdGUgZG9tYWluLlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuaW5pdCA9IGZ1bmN0aW9uKHRva2VuLCBwcml2YXRlRG9tYWluKSB7XHJcbiAgICAgICAgX3Rva2VuID0gdG9rZW47XHJcbiAgICAgICAgX3ByaXZhdGVEb21haW4gPSBwcml2YXRlRG9tYWluO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEZldGNoZXMgaW5ib3ggbWVzc2FnZXMgb3IgYWxsIHNhdmVkIG1lc3NhZ2VzLlxyXG4gICAgICogQGZ1bmN0aW9uIGxpc3RcclxuICAgICAqIEBwYXJhbSB7U3RyaW5nPX0gaW5ib3ggLSBJbmJveCBuYW1lLiBJZiBvbW1pdGVkIHNhdmVkIG1lc3NhZ2VzIHdpbGwgYmUgZmV0Y2hlZCBpbnN0ZWFkLlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBMaXN0IGNvbnRhaW5pbmcgbWVzc2FnZSBkZXRhaWxzLlxyXG4gICAgICogQGV4YW1wbGUgPGNhcHRpb24+W2pzb25dIEV4YW1wbGUgb2YgdGhlIHJldHVybmVkIG9iamVjdDwvY2FwdGlvbj5cclxuICAgICAqIHtcclxuICAgICAqICAgXCJtZXNzYWdlc1wiOiBbXHJcbiAgICAgKiAgICAge1xyXG4gICAgICogICAgICAgXCJmcm9tZnVsbFwiOiBcIm5vcmVwbHlAZXhhbXBsZS5jb21cIixcclxuICAgICAqICAgICAgIFwic3ViamVjdFwiOiBcIlN1YmplY3RcIixcclxuICAgICAqICAgICAgIFwiZnJvbVwiOiBcIlRlc3QgVGVzdGVyXCIsXHJcbiAgICAgKiAgICAgICBcIm9yaWdmcm9tXCI6IFwiVGVzdCBUZXN0ZXIgbm9yZXBseUBleGFtcGxlLmNvbVwiLFxyXG4gICAgICogICAgICAgXCJ0b1wiOiBcImluYm94LW5hbWVcIixcclxuICAgICAqICAgICAgIFwiaWRcIjogXCJSQU5ET01MWSBHRU5FUkFURUQgSURcIixcclxuICAgICAqICAgICAgIFwidGltZVwiOiAxNDkxMjAwMDMwMDAwLFxyXG4gICAgICogICAgICAgXCJzZWNvbmRzX2Fnb1wiOiAyMzRcclxuICAgICAqICAgICB9LFxyXG4gICAgICogICBdXHJcbiAgICAgKiB9XHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5saXN0ID0gYXN5bmMgZnVuY3Rpb24oaW5ib3gpIHtcclxuICAgICAgICBfY3VycmVudFRyeSA9IDA7XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IGludm9rZShhcGlCYXNlICsgJy9pbmJveD8nICsgYXBpU2V0dGluZ3MoKSArIChpbmJveCA/ICcmdG89JyArIGluYm94IDogJycpKTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAc3VtbWFyeSBGZXRjaGVzIHNwZWNpZmljIGVtYWlsLlxyXG4gICAgICogQGZ1bmN0aW9uIGZldGNoXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gaWQgLSBNZXNzYWdlIElELlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBFbWFpbCBkZXRhaWxzLiBFLmcuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5banNvbl0gRXhhbXBsZSBvZiB0aGUgcmV0dXJuZWQgb2JqZWN0PC9jYXB0aW9uPlxyXG4gICAgICoge1xyXG4gICAgICogICBcImRhdGFcIjpcclxuICAgICAqICAgICB7XHJcbiAgICAgKiAgICAgICBcImZyb21mdWxsXCI6XCJub3JlcGx5QGV4YW1wbGUuY29tXCIsXHJcbiAgICAgKiAgICAgICBcImhlYWRlcnNcIjogeyAuLi4gZW1haWwgaGVhZGVycyAuLi4gfSxcclxuICAgICAqICAgICAgIFwic3ViamVjdFwiOlwidGVzdCBzdWJqZWN0XCIsXHJcbiAgICAgKiAgICAgICBcInJlcXVlc3RJZFwiOlwiUkVRVUVTVCBJRFwiLFxyXG4gICAgICogICAgICAgXCJwYXJ0c1wiOiBbXHJcbiAgICAgKiAgICAgICAgIHtcclxuICAgICAqICAgICAgICAgICBcImhlYWRlcnNcIjp7IFwiY29udGVudC10eXBlXCI6XCJ0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XCIgfSxcclxuICAgICAqICAgICAgICAgICBcImJvZHlcIjpcIkVNQUlMIEJPRFkgKFRFWFQpXCJcclxuICAgICAqICAgICAgICAgfSxcclxuICAgICAqICAgICAgICAge1xyXG4gICAgICogICAgICAgICAgIFwiaGVhZGVyc1wiOnsgXCJjb250ZW50LXR5cGVcIjpcInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIH0sXHJcbiAgICAgKiAgICAgICAgICAgXCJib2R5XCI6XCJFTUFJTCBCT0RZIChIVE1MKVwiXHJcbiAgICAgKiAgICAgICAgIH1cclxuICAgICAqICAgICAgIF0sXHJcbiAgICAgKiAgICAgICBcImZyb21cIjpcIlRlc3QgVGVzdGVyXCIsXHJcbiAgICAgKiAgICAgICBcIm9yaWdmcm9tXCI6XCJUZXN0IFRlc3RlciBub3JlcGx5QGV4YW1wbGUuY29tXCIsXHJcbiAgICAgKiAgICAgICBcInRvXCI6XCJjYi10ZXN0LTJcIixcclxuICAgICAqICAgICAgIFwiaWRcIjpcIlJBTkRPTUxZIEdFTkVSQVRFRCBJRFwiLFxyXG4gICAgICogICAgICAgXCJ0aW1lXCI6MTQ5MTIwMDAzMDAwMCxcclxuICAgICAqICAgICAgIFwic2Vjb25kc19hZ29cIjoxMTc0XHJcbiAgICAgKiAgICB9LFxyXG4gICAgICogICBcImFwaUVtYWlsRmV0Y2hlc0xlZnRcIjoxOTk5XHJcbiAgICAgKiB9XHJcbiAgICAgKi9cclxuICAgIG1vZHVsZS5mZXRjaCA9IGFzeW5jIGZ1bmN0aW9uKGlkKSB7XHJcbiAgICAgICAgX2N1cnJlbnRUcnkgPSAwO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBpbnZva2UoYXBpQmFzZSArICcvZW1haWw/JyArIGFwaVNldHRpbmdzKCkgKyAnJmlkPScgKyBpZCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHN1bW1hcnkgRXh0cmFjdHMgZW1haWwncyBzdWJqZWN0LlxyXG4gICAgICogQGZ1bmN0aW9uIGdldFN1YmplY3RcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBlbWFpbE9iaiAtIEVtYWlsIG9iamVjdCByZXR1cm5lZCBieSBtYWlsaW5pYXRvci5mZXRjaFxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBFbWFpbCBzdWJqZWN0LlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuZ2V0U3ViamVjdCA9IGZ1bmN0aW9uKGVtYWlsT2JqKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZW1haWxPYmouZGF0YS5zdWJqZWN0KTtcclxuICAgICAgICByZXR1cm4gZW1haWxPYmouZGF0YS5zdWJqZWN0O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IEV4dHJhY3RzIGZpcnN0IGF2YWlsYWJsZSBlbWFpbCBib2R5LlxyXG4gICAgICogQGZ1bmN0aW9uIGdldEJvZHlcclxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBlbWFpbE9iaiAtIEVtYWlsIG9iamVjdCByZXR1cm5lZCBieSBtYWlsaW5pYXRvci5mZXRjaFxyXG4gICAgICogQHJldHVybiB7U3RyaW5nfSBFbWFpbCBib2R5LlxyXG4gICAgICovXHJcbiAgICBtb2R1bGUuZ2V0Qm9keSA9IGZ1bmN0aW9uKGVtYWlsT2JqKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZW1haWxPYmouZGF0YS5wYXJ0c1swXS5ib2R5KTtcclxuICAgICAgICByZXR1cm4gZW1haWxPYmouZGF0YS5wYXJ0c1swXS5ib2R5O1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBzdW1tYXJ5IERlbGV0ZXMgc2VwY2lmaWMgZW1haWwuXHJcbiAgICAgKiBAZnVuY3Rpb24gZGVsZXRlXHJcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gaWQgLSBNZXNzYWdlIElELlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0fSBTdGF0dXMuXHJcbiAgICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj5banNvbl0gRXhhbXBsZSBvZiB0aGUgcmV0dXJuZWQgb2JqZWN0PC9jYXB0aW9uPlxyXG4gICAgICoge1xyXG4gICAgICogICBcInN0YXR1c1wiOiBcIm9rXCJcclxuICAgICAqIH1cclxuICAgICAqL1xyXG4gICAgbW9kdWxlLmRlbGV0ZSA9IGFzeW5jIGZ1bmN0aW9uKGlkKSB7XHJcbiAgICAgICAgX2N1cnJlbnRUcnkgPSAwO1xyXG4gICAgICAgIHJldHVybiBhd2FpdCBpbnZva2UoYXBpQmFzZSArICcvZGVsZXRlPycgKyBhcGlTZXR0aW5ncygpICsgJyZpZD0nICsgaWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbW9kdWxlO1xyXG59O1xyXG4iXX0=
|
|
@@ -40,16 +40,9 @@ module.exports = async function () {
|
|
|
40
40
|
|
|
41
41
|
const types = this.helpers.getLogTypes(context);
|
|
42
42
|
|
|
43
|
-
if (types && Array.isArray(types) && types.length > 0) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const logs = await this.driver.getLogs(types[i]);
|
|
47
|
-
|
|
48
|
-
if (logs && Array.isArray(logs) && logs.length > 0) {
|
|
49
|
-
allLogs = [...allLogs, ...logs];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
43
|
+
if (types && Array.isArray(types) && types.length > 0 && types.some(t => t === 'logcat')) {
|
|
44
|
+
const logs = await this.driver.getLogs('logcat');
|
|
45
|
+
allLogs = [...allLogs, ...logs];
|
|
53
46
|
}
|
|
54
47
|
}
|
|
55
48
|
|
|
@@ -61,4 +54,4 @@ module.exports = async function () {
|
|
|
61
54
|
|
|
62
55
|
return null;
|
|
63
56
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9veF9tb2R1bGVzL21vZHVsZS1tb2IvY29tbWFuZHMvZ2V0RGV2aWNlTG9ncy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiY2FwcyIsInBsYXRmb3JtTmFtZSIsImFsbExvZ3MiLCJjb250ZXh0cyIsImRyaXZlciIsImdldENvbnRleHRzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiYyIsImNvbnRleHQiLCJzd2l0Y2hDb250ZXh0IiwiZSIsInR5cGVzIiwiaGVscGVycyIsImdldExvZ1R5cGVzIiwic29tZSIsInQiLCJsb2dzIiwiZ2V0TG9ncyIsImFwcENvbnRleHQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsa0JBQWtCO0FBQ2xDO0FBQ0csTUFBSSxLQUFLQyxJQUFMLElBQWEsS0FBS0EsSUFBTCxDQUFVQyxZQUF2QixJQUF1QyxLQUFLRCxJQUFMLENBQVVDLFlBQVYsS0FBMkIsU0FBdEUsRUFBaUY7QUFDN0UsUUFBSUMsT0FBTyxHQUFHLEVBQWQ7QUFDQSxVQUFNQyxRQUFRLEdBQUcsTUFBTSxLQUFLQyxNQUFMLENBQVlDLFdBQVosRUFBdkI7O0FBQ0EsUUFBSUYsUUFBUSxJQUFJRyxLQUFLLENBQUNDLE9BQU4sQ0FBY0osUUFBZCxDQUFaLElBQXVDQSxRQUFRLENBQUNLLE1BQVQsR0FBa0IsQ0FBN0QsRUFBZ0U7QUFDNUQsV0FBSyxJQUFJQyxDQUFULElBQWNOLFFBQWQsRUFBd0I7QUFDcEIsY0FBTU8sT0FBTyxHQUFHUCxRQUFRLENBQUNNLENBQUQsQ0FBeEI7O0FBQ0EsWUFBSTtBQUNBLGdCQUFNLEtBQUtMLE1BQUwsQ0FBWU8sYUFBWixDQUEwQkQsT0FBMUIsQ0FBTjtBQUNILFNBRkQsQ0FFRSxPQUFPRSxDQUFQLEVBQVU7QUFDUjtBQUNBO0FBQ0E7QUFDSDs7QUFDRCxjQUFNQyxLQUFLLEdBQUcsS0FBS0MsT0FBTCxDQUFhQyxXQUFiLENBQXlCTCxPQUF6QixDQUFkOztBQUNBLFlBQUlHLEtBQUssSUFBSVAsS0FBSyxDQUFDQyxPQUFOLENBQWNNLEtBQWQsQ0FBVCxJQUFpQ0EsS0FBSyxDQUFDTCxNQUFOLEdBQWUsQ0FBaEQsSUFBcURLLEtBQUssQ0FBQ0csSUFBTixDQUFXQyxDQUFDLElBQUlBLENBQUMsS0FBSyxRQUF0QixDQUF6RCxFQUEwRjtBQUN0RixnQkFBTUMsSUFBSSxHQUFHLE1BQU0sS0FBS2QsTUFBTCxDQUFZZSxPQUFaLENBQW9CLFFBQXBCLENBQW5CO0FBQ0FqQixVQUFBQSxPQUFPLEdBQUcsQ0FDTixHQUFHQSxPQURHLEVBRU4sR0FBR2dCLElBRkcsQ0FBVjtBQUlIO0FBQ0o7O0FBQ0QsWUFBTSxLQUFLZCxNQUFMLENBQVlPLGFBQVosQ0FBMEIsS0FBS1MsVUFBL0IsQ0FBTjtBQUNIOztBQUVELFdBQU9sQixPQUFQO0FBQ0g7O0FBRUQsU0FBTyxJQUFQO0FBQ0gsQ0EvQkQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAZnVuY3Rpb24gZ2V0RGV2aWNlTG9nc1xyXG4gKiBAc3VtbWFyeSBDb2xsZWN0cyBsb2dzIGZyb20gdGhlIG1vYmlsZSBkZXZpY2UuXHJcbiAqIEByZXR1cm4ge09iamVjdFtdfSBBIGxpc3Qgb2YgbG9ncy5cclxuICogQGZvciBhbmRyb2lkLCBpb3MsIGh5YnJpZCwgd2ViXHJcbiAqIEBleGFtcGxlIDxjYXB0aW9uPltqYXZhc2NyaXB0XSBVc2FnZSBleGFtcGxlPC9jYXB0aW9uPlxyXG4gKiBtb2IuaW5pdChjYXBzKTsgLy9TdGFydHMgYSBtb2JpbGUgc2Vzc2lvbiBhbmQgb3BlbnMgYXBwIGZyb20gZGVzaXJlZCBjYXBhYmlsaXRpZXNcclxuICogbW9iLmdldERldmljZUxvZ3MoKTsgLy9Db2xsZWN0cyBsb2dzIGZyb20gdGhlIG1vYmlsZSBkZXZpY2VcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gYXN5bmMgZnVuY3Rpb24gKCkge1xyXG5cdC8vIGN1cnJlbnRseSBzdXBwb3J0cyBvbmx5IEFuZHJvaWQgbG9nc1xyXG4gICAgaWYgKHRoaXMuY2FwcyAmJiB0aGlzLmNhcHMucGxhdGZvcm1OYW1lICYmIHRoaXMuY2Fwcy5wbGF0Zm9ybU5hbWUgPT09ICdBbmRyb2lkJykge1xyXG4gICAgICAgIGxldCBhbGxMb2dzID0gW107XHJcbiAgICAgICAgY29uc3QgY29udGV4dHMgPSBhd2FpdCB0aGlzLmRyaXZlci5nZXRDb250ZXh0cygpO1xyXG4gICAgICAgIGlmIChjb250ZXh0cyAmJiBBcnJheS5pc0FycmF5KGNvbnRleHRzKSAmJiBjb250ZXh0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGMgaW4gY29udGV4dHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBjb250ZXh0c1tjXTtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5kcml2ZXIuc3dpdGNoQ29udGV4dChjb250ZXh0KTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgc3dpdGNoIGVycm9ycywgbGlrZSBcclxuICAgICAgICAgICAgICAgICAgICAvLyBcIkZhaWxlZCB0byBnZXQgc29ja2V0cyBtYXRjaGluZzogQHdlYmxheWVyX2RldnRvb2xzX3JlbW90ZV8uKjQ3MzdcXG4gIChtYWtlIHN1cmUgdGhlIGFwcCBoYXMgaXRzIFdlYlZpZXcvV2ViTGF5ZXIgY29uZmlndXJlZCBmb3IgZGVidWdnaW5nKVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZXMgPSB0aGlzLmhlbHBlcnMuZ2V0TG9nVHlwZXMoY29udGV4dCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZXMgJiYgQXJyYXkuaXNBcnJheSh0eXBlcykgJiYgdHlwZXMubGVuZ3RoID4gMCAmJiB0eXBlcy5zb21lKHQgPT4gdCA9PT0gJ2xvZ2NhdCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9ncyA9IGF3YWl0IHRoaXMuZHJpdmVyLmdldExvZ3MoJ2xvZ2NhdCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGFsbExvZ3MgPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFsbExvZ3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmxvZ3NcclxuICAgICAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZHJpdmVyLnN3aXRjaENvbnRleHQodGhpcy5hcHBDb250ZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhbGxMb2dzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG59OyJdfQ==
|