appium 2.0.0-beta.28 → 2.0.0-beta.29
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/build/lib/appium.d.ts.map +1 -1
- package/build/lib/appium.js +10 -16
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/appium.js +13 -20
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appium.d.ts","sourceRoot":"","sources":["../../lib/appium.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"appium.d.ts","sourceRoot":"","sources":["../../lib/appium.js"],"names":[],"mappings":"AA2sBA;;;GAGG;AACH;IAME,cAKC;IAVD;;OAEG;IACH,MAFU,SAAS,MAAM,CAAC,CAEgB;CAQ3C;6BAKY,OAAO,eAAe,EAAE,cAAc;8BACtC,OAAO,eAAe,EAAE,eAAe;yBACvC,OAAO,eAAe,EAAE,UAAU;yBAClC,OAAO,eAAe,EAAE,UAAU;0BAClC,OAAO,eAAe,EAAE,WAAW;2BACnC,OAAO,eAAe,EAAE,YAAY;4BACpC,OAAO,UAAU,EAAE,aAAa;0BAChC,OAAO,oBAAoB,EAAE,WAAW;2BACxC,OAAO,2BAA2B,EAAE,YAAY;;;;;;;;;;6BAchD,OAAO,eAAe,EAAE,cAAc,CAAC,qBAAqB,GAAG,EAAE,CAAC,EAAC,qBAAqB,IAAI,CAAC,CAAC;AAztB3G;;GAEG;AACH;IAgDE;;OAEG;IACH,kBAFW,UAAU,EAuBpB;IAvED;;;;;OAKG;IACH,UAFU,OAAO,MAAM,EAAC,cAAc,CAAC,CAEzB;IAEd;;;;;OAKG;IACH,gBAFU,OAAO,MAAM,EAAC,cAAc,EAAE,CAAC,CAErB;IASpB;;;OAGG;IACH,eAFU,WAAW,EAAE,CAEJ;IAEnB;;;OAGG;IACH,gBAFU,OAAO,MAAM,EAAC,aAAa,WAAW,CAAC,EAAE,CAAC,CAEhC;IAEpB;;;OAGG;IACH,oBAFU,aAAa,WAAW,CAAC,EAAE,CAEb;IAExB,2BAA2B;IAC3B,cADW,YAAY,CACV;IAEb,2BAA2B;IAC3B,QADW,YAAY,CAChB;IAgBL,qEAAyD;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAqB;IA4BvB,uCAGC;IAED,yEAEC;IAED;;OAIC;IAED;;;;;SAGC;IAED,+FAcC;IAED;;;;;;;;;OASG;IACH,kCAJW,aAAa,WACb,MAAM,0BAchB;IAED;;;;;;OAMG;IACH,0BALW,eAAe,WACf,eAAe,mBACf,eAAe;;;;;;;;OAqJzB;IAED,wEA8BC;IAED;;;;OAIG;IACH,uIAFa,QAAQ,UAAU,EAAE,CAAC,CAajC;IAED;;OAEG;IACH,yBAFW,MAAM;;;;;;;;OAwChB;IAED,4CAsBC;IAED;;;;;OAKG;IACH,8BAHY,MAAM,gBAejB;IAED;;;;;;;;;OASG;IACH,wBAJW,MAAM,cACL,MAAM,gBAQjB;IAED,0DAOC;IAED;;;;;OAKG;IACH,oBAJW,MAAM,WACF,GAAG,kBAsHjB;IAED;;;;;;;YAuBC;IAED;;;aAkBC;IAED;;;;;;;OAsBC;IAED,qCAGC;IAED,sDAGC;IAED,kCAGC;CACF"}
|
package/build/lib/appium.js
CHANGED
|
@@ -89,8 +89,7 @@ class AppiumDriver extends _baseDriver.DriverCore {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
async getSessions() {
|
|
92
|
-
|
|
93
|
-
return _lodash.default.toPairs(sessions).map(([id, driver]) => ({
|
|
92
|
+
return _lodash.default.toPairs(this.sessions).map(([id, driver]) => ({
|
|
94
93
|
id,
|
|
95
94
|
capabilities: driver.caps
|
|
96
95
|
}));
|
|
@@ -208,9 +207,7 @@ class AppiumDriver extends _baseDriver.DriverCore {
|
|
|
208
207
|
try {
|
|
209
208
|
[innerSessionId, dCaps] = await driverInstance.createSession(processedJsonwpCapabilities, reqCaps, processedW3CCapabilities, [...runningDriversData, ...otherPendingDriversData]);
|
|
210
209
|
protocol = driverInstance.protocol;
|
|
211
|
-
|
|
212
|
-
this.sessions[innerSessionId] = driverInstance;
|
|
213
|
-
});
|
|
210
|
+
this.sessions[innerSessionId] = driverInstance;
|
|
214
211
|
} finally {
|
|
215
212
|
await pendingDriversGuard.acquire(AppiumDriver.name, () => {
|
|
216
213
|
_lodash.default.pull(this.pendingDrivers[InnerDriver.name], driverInstance);
|
|
@@ -274,13 +271,11 @@ class AppiumDriver extends _baseDriver.DriverCore {
|
|
|
274
271
|
}
|
|
275
272
|
|
|
276
273
|
async curSessionDataForDriver(InnerDriver) {
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
const data = _lodash.default.compact(_lodash.default.values(sessions).filter(s => s.constructor.name === InnerDriver.name).map(s => s.driverData));
|
|
274
|
+
const data = _lodash.default.compact(_lodash.default.values(this.sessions).filter(s => s.constructor.name === InnerDriver.name).map(s => s.driverData));
|
|
280
275
|
|
|
281
|
-
for (
|
|
276
|
+
for (const datum of data) {
|
|
282
277
|
if (!datum) {
|
|
283
|
-
throw new Error(`Problem getting session data for driver type ` + `${InnerDriver.name}; does it implement 'get
|
|
278
|
+
throw new Error(`Problem getting session data for driver type ` + `${InnerDriver.name}; does it implement 'get driverData'?`);
|
|
284
279
|
}
|
|
285
280
|
}
|
|
286
281
|
|
|
@@ -381,9 +376,8 @@ class AppiumDriver extends _baseDriver.DriverCore {
|
|
|
381
376
|
var _$last;
|
|
382
377
|
|
|
383
378
|
const isGetStatus = cmd === _baseDriver.GET_STATUS_COMMAND;
|
|
384
|
-
const
|
|
385
|
-
const
|
|
386
|
-
const isSessionCmd = !isUmbrellaCmd || isDeleteSession;
|
|
379
|
+
const isUmbrellaCmd = isAppiumDriverCommand(cmd);
|
|
380
|
+
const isSessionCmd = (0, _baseDriver.isSessionCommand)(cmd);
|
|
387
381
|
const reqForProxy = (_$last = _lodash.default.last(args)) === null || _$last === void 0 ? void 0 : _$last.reqForProxy;
|
|
388
382
|
|
|
389
383
|
if (reqForProxy) {
|
|
@@ -397,7 +391,7 @@ class AppiumDriver extends _baseDriver.DriverCore {
|
|
|
397
391
|
|
|
398
392
|
if (isSessionCmd) {
|
|
399
393
|
sessionId = _lodash.default.last(args);
|
|
400
|
-
dstSession =
|
|
394
|
+
dstSession = this.sessions[sessionId];
|
|
401
395
|
|
|
402
396
|
if (!dstSession) {
|
|
403
397
|
throw new Error(`The session with id '${sessionId}' does not exist`);
|
|
@@ -555,7 +549,7 @@ class AppiumDriver extends _baseDriver.DriverCore {
|
|
|
555
549
|
exports.AppiumDriver = AppiumDriver;
|
|
556
550
|
|
|
557
551
|
function isAppiumDriverCommand(cmd) {
|
|
558
|
-
return !(0, _baseDriver.isSessionCommand)(cmd) || cmd ===
|
|
552
|
+
return !(0, _baseDriver.isSessionCommand)(cmd) || cmd === _baseDriver.DELETE_SESSION_COMMAND;
|
|
559
553
|
}
|
|
560
554
|
|
|
561
555
|
class NoDriverProxyCommandError extends Error {
|
|
@@ -568,4 +562,4 @@ class NoDriverProxyCommandError extends Error {
|
|
|
568
562
|
}
|
|
569
563
|
|
|
570
564
|
exports.NoDriverProxyCommandError = NoDriverProxyCommandError;
|
|
571
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcHBpdW0uanMiXSwibmFtZXMiOlsiZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyIsIk9iamVjdCIsImZyZWV6ZSIsImF1dG9tYXRpb25OYW1lIiwicHJlc2VuY2UiLCJpc1N0cmluZyIsInBsYXRmb3JtTmFtZSIsInNlc3Npb25zTGlzdEd1YXJkIiwiQXN5bmNMb2NrIiwicGVuZGluZ0RyaXZlcnNHdWFyZCIsIkFwcGl1bURyaXZlciIsIkRyaXZlckNvcmUiLCJzZXNzaW9ucyIsInBlbmRpbmdEcml2ZXJzIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsInBsdWdpbkNsYXNzZXMiLCJzZXNzaW9uUGx1Z2lucyIsInNlc3Npb25sZXNzUGx1Z2lucyIsImRyaXZlckNvbmZpZyIsInNlcnZlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsInRtcERpciIsInByb2Nlc3MiLCJlbnYiLCJBUFBJVU1fVE1QX0RJUiIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsImFyZ3MiLCJjYXRjaCIsImVyciIsImxvZyIsImRlYnVnIiwiX2xvZyIsImluc3RhbmNlTmFtZSIsIm5hbWUiLCJub2RlIiwiZ2V0T2JqZWN0SWQiLCJzdWJzdHJpbmciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJpc0NvbW1hbmRzUXVldWVFbmFibGVkIiwic2Vzc2lvbkV4aXN0cyIsInNlc3Npb25JZCIsImRzdFNlc3Npb24iLCJkcml2ZXJGb3JTZXNzaW9uIiwiZ2V0U3RhdHVzIiwiYnVpbGQiLCJfIiwiY2xvbmUiLCJnZXRTZXNzaW9ucyIsImFjcXVpcmUiLCJ0b1BhaXJzIiwibWFwIiwiaWQiLCJkcml2ZXIiLCJjYXBhYmlsaXRpZXMiLCJjYXBzIiwicHJpbnROZXdTZXNzaW9uQW5ub3VuY2VtZW50IiwiZHJpdmVyTmFtZSIsImRyaXZlclZlcnNpb24iLCJkcml2ZXJCYXNlVmVyc2lvbiIsImluZm8iLCJBUFBJVU1fVkVSIiwiYmFzZVZlcnNpb24iLCJhc3NpZ25DbGlBcmdzVG9FeHRlbnNpb24iLCJleHRUeXBlIiwiZXh0TmFtZSIsImV4dEluc3RhbmNlIiwiYWxsQ2xpQXJnc0ZvckV4dCIsImlzRW1wdHkiLCJkZWZhdWx0cyIsImNsaUFyZ3MiLCJvbWl0QnkiLCJ2YWx1ZSIsImtleSIsImlzRXF1YWwiLCJjcmVhdGVTZXNzaW9uIiwianNvbndwQ2FwcyIsInJlcUNhcHMiLCJ3M2NDYXBhYmlsaXRpZXMiLCJkcml2ZXJEYXRhIiwiZGVmYXVsdENhcGFiaWxpdGllcyIsImNsb25lRGVlcCIsImRlZmF1bHRTZXR0aW5ncyIsImp3cFNldHRpbmdzIiwidzNjU2V0dGluZ3MiLCJhbHdheXNNYXRjaCIsImZpcnN0TWF0Y2hFbnRyeSIsImZpcnN0TWF0Y2giLCJhc3NpZ24iLCJwcm90b2NvbCIsImlubmVyU2Vzc2lvbklkIiwiZENhcHMiLCJwYXJzZWRDYXBzIiwiZGVzaXJlZENhcHMiLCJwcm9jZXNzZWRKc29ud3BDYXBhYmlsaXRpZXMiLCJwcm9jZXNzZWRXM0NDYXBhYmlsaXRpZXMiLCJlcnJvciIsIklubmVyRHJpdmVyIiwidmVyc2lvbiIsImZpbmRNYXRjaGluZ0RyaXZlciIsInNlc3Npb25PdmVycmlkZSIsImRlbGV0ZUFsbFNlc3Npb25zIiwicnVubmluZ0RyaXZlcnNEYXRhIiwib3RoZXJQZW5kaW5nRHJpdmVyc0RhdGEiLCJkcml2ZXJJbnN0YW5jZSIsInJlbGF4ZWRTZWN1cml0eUVuYWJsZWQiLCJkZW55SW5zZWN1cmUiLCJhIiwiYWxsb3dJbnNlY3VyZSIsImFzc2lnblNlcnZlciIsImFkZHJlc3MiLCJwb3J0IiwiYmFzZVBhdGgiLCJjdXJTZXNzaW9uRGF0YUZvckRyaXZlciIsImUiLCJlcnJvcnMiLCJTZXNzaW9uTm90Q3JlYXRlZEVycm9yIiwibWVzc2FnZSIsImNvbXBhY3QiLCJkcnYiLCJwdXNoIiwicHVsbCIsImF0dGFjaFVuZXhwZWN0ZWRTaHV0ZG93bkhhbmRsZXIiLCJzdGFydE5ld0NvbW1hbmRUaW1lb3V0IiwiaXNXM0NQcm90b2NvbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1cGRhdGVTZXR0aW5ncyIsImlzTWpzb253cFByb3RvY29sIiwib25TaHV0ZG93biIsImNhdXNlIiwiRXJyb3IiLCJ3YXJuIiwicGx1Z2luIiwiaXNGdW5jdGlvbiIsIm9uVW5leHBlY3RlZFNodXRkb3duIiwiZGF0YSIsInZhbHVlcyIsImZpbHRlciIsInMiLCJkYXR1bSIsImRlbGV0ZVNlc3Npb24iLCJvdGhlclNlc3Npb25zRGF0YSIsImN1ckNvbnN0cnVjdG9yTmFtZSIsInNlc3Npb25zQ291bnQiLCJzaXplIiwiZm9yY2UiLCJyZWFzb24iLCJ1dGlsIiwicGx1cmFsaXplIiwiY2xlYW51cFByb21pc2VzIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJrZXlzIiwiY2xlYW51cFByb21pc2UiLCJwbHVnaW5zRm9yU2Vzc2lvbiIsImNyZWF0ZVBsdWdpbkluc3RhbmNlcyIsInBsdWdpbnNUb0hhbmRsZUNtZCIsImNtZCIsInAiLCJoYW5kbGUiLCJQbHVnaW5DbGFzcyIsInBsdWdpbk5hbWUiLCJleGVjdXRlQ29tbWFuZCIsImlzR2V0U3RhdHVzIiwiR0VUX1NUQVRVU19DT01NQU5EIiwiaXNEZWxldGVTZXNzaW9uIiwiREVMRVRFX1NFU1NJT05fQ09NTUFORCIsImlzVW1icmVsbGFDbWQiLCJpc0FwcGl1bURyaXZlckNvbW1hbmQiLCJpc1Nlc3Npb25DbWQiLCJyZXFGb3JQcm94eSIsImxhc3QiLCJwb3AiLCJwbHVnaW5zIiwiY21kSGFuZGxlZEJ5IiwiZGVmYXVsdCIsImRlZmF1bHRCZWhhdmlvciIsImxlbmd0aCIsInByb3h5Q29tbWFuZCIsIk5vRHJpdmVyUHJveHlDb21tYW5kRXJyb3IiLCJvcmlnaW5hbFVybCIsIm1ldGhvZCIsImJvZHkiLCJCYXNlRHJpdmVyIiwicHJvdG90eXBlIiwiY2FsbCIsIndyYXBwZWRDbWQiLCJ3cmFwQ29tbWFuZFdpdGhQbHVnaW5zIiwibmV4dCIsInJlcyIsImV4ZWN1dGVXcmFwcGVkQ29tbWFuZCIsImxvZ1BsdWdpbkhhbmRsZXJSZXBvcnQiLCJDUkVBVEVfU0VTU0lPTl9DT01NQU5EIiwiZmlyc3QiLCJfbmV4dCIsImRpZEhhbmRsZSIsImsiLCJkaWRudEhhbmRsZSIsImNtZFJlcyIsImNtZEVyciIsImlzUGxhaW5PYmplY3QiLCJoYXMiLCJwcm94eUFjdGl2ZSIsImdldFByb3h5QXZvaWRMaXN0IiwiY2FuUHJveHkiLCJjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQU1BLE1BQU1BLDRCQUE0QixHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUNqREMsRUFBQUEsY0FBYyxFQUFFO0FBQ2RDLElBQUFBLFFBQVEsRUFBRSxJQURJO0FBRWRDLElBQUFBLFFBQVEsRUFBRTtBQUZJLEdBRGlDO0FBS2pEQyxFQUFBQSxZQUFZLEVBQUU7QUFDWkYsSUFBQUEsUUFBUSxFQUFFLElBREU7QUFFWkMsSUFBQUEsUUFBUSxFQUFFO0FBRkU7QUFMbUMsQ0FBZCxDQUFyQztBQVdBLE1BQU1FLGlCQUFpQixHQUFHLElBQUlDLGtCQUFKLEVBQTFCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsSUFBSUQsa0JBQUosRUFBNUI7O0FBS0EsTUFBTUUsWUFBTixTQUEyQkMsc0JBQTNCLENBQXNDO0FBT3BDQyxFQUFBQSxRQUFRLEdBQUcsRUFBSDtBQVFSQyxFQUFBQSxjQUFjLEdBQUcsRUFBSDtBQU9kQyxFQUFBQSxtQkFBbUIsR0FBRyxDQUFIO0FBTW5CQyxFQUFBQSxhQUFhLEdBQUcsRUFBSDtBQU1iQyxFQUFBQSxjQUFjLEdBQUcsRUFBSDtBQU1kQyxFQUFBQSxrQkFBa0IsR0FBRyxFQUFIO0FBR2xCQyxFQUFBQSxZQUFZO0FBR1pDLEVBQUFBLE1BQU07O0FBS05DLEVBQUFBLFdBQVcsQ0FBRUMsSUFBRixFQUFRO0FBS2pCLFFBQUlBLElBQUksQ0FBQ0MsTUFBVCxFQUFpQjtBQUNmQyxNQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsY0FBWixHQUE2QkosSUFBSSxDQUFDQyxNQUFs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O0FBQ3RCLFVBQU1DLFVBQVUsR0FBRyxLQUFLL0IsUUFBTCxDQUFjOEIsU0FBZCxDQUFuQjtBQUNBLFdBQU9DLFVBQVUsSUFBSUksZ0JBQUV3RixVQUFGLENBQWE1RixVQUFVLENBQUNnSyxXQUF4QixDQUFkLElBQXNEaEssVUFBVSxDQUFDZ0ssV0FBWCxDQUF1QmpLLFNBQXZCLENBQTdEO0FBQ0Q7O0FBRURrSyxFQUFBQSxpQkFBaUIsQ0FBRWxLLFNBQUYsRUFBYTtBQUM1QixVQUFNQyxVQUFVLEdBQUcsS0FBSy9CLFFBQUwsQ0FBYzhCLFNBQWQsQ0FBbkI7QUFDQSxXQUFPQyxVQUFVLEdBQUdBLFVBQVUsQ0FBQ2lLLGlCQUFYLEVBQUgsR0FBb0MsRUFBckQ7QUFDRDs7QUFFREMsRUFBQUEsUUFBUSxDQUFFbkssU0FBRixFQUFhO0FBQ25CLFVBQU1DLFVBQVUsR0FBRyxLQUFLL0IsUUFBTCxDQUFjOEIsU0FBZCxDQUFuQjtBQUNBLFdBQU9DLFVBQVUsSUFBSUEsVUFBVSxDQUFDa0ssUUFBWCxDQUFvQm5LLFNBQXBCLENBQXJCO0FBQ0Q7O0FBenFCbUM7Ozs7QUE4cUJ0QyxTQUFTK0gscUJBQVQsQ0FBZ0NYLEdBQWhDLEVBQXFDO0FBQ25DLFNBQU8sQ0FBQyxrQ0FBaUJBLEdBQWpCLENBQUQsSUFBMEJBLEdBQUcsS0FBSyxlQUF6QztBQUNEOztBQU1NLE1BQU1zQix5QkFBTixTQUF3Q2hELEtBQXhDLENBQThDO0FBSW5EMEUsRUFBQUEsSUFBSSxHQUFHLGtDQUFIOztBQUVKMUwsRUFBQUEsV0FBVyxHQUFJO0FBQ2IsVUFBTyxxRUFBRCxHQUNDLG1FQURELEdBRUMseUVBRkQsR0FHQyw2REFIUDtBQUlEOztBQVhrRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZ2V0QnVpbGRJbmZvLCB1cGRhdGVCdWlsZEluZm8sIEFQUElVTV9WRVIgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBCYXNlRHJpdmVyLCBEcml2ZXJDb3JlLCBlcnJvcnMsIGlzU2Vzc2lvbkNvbW1hbmQsXG4gICAgICAgICBDUkVBVEVfU0VTU0lPTl9DT01NQU5ELCBERUxFVEVfU0VTU0lPTl9DT01NQU5ELCBHRVRfU1RBVFVTX0NPTU1BTkRcbn0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgQXN5bmNMb2NrIGZyb20gJ2FzeW5jLWxvY2snO1xuaW1wb3J0IHsgcGFyc2VDYXBzRm9ySW5uZXJEcml2ZXIsIHB1bGxTZXR0aW5ncyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXRpbCwgbm9kZSwgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IGdldERlZmF1bHRzRm9yRXh0ZW5zaW9uIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG4vKipcbiAqIEludmFyaWFudCBzZXQgb2YgYmFzZSBjb25zdHJhaW50c1xuICogQHR5cGUge1JlYWRvbmx5PENvbnN0cmFpbnRzPn1cbiAqL1xuY29uc3QgZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyA9IE9iamVjdC5mcmVlemUoe1xuICBhdXRvbWF0aW9uTmFtZToge1xuICAgIHByZXNlbmNlOiB0cnVlLFxuICAgIGlzU3RyaW5nOiB0cnVlLFxuICB9LFxuICBwbGF0Zm9ybU5hbWU6IHtcbiAgICBwcmVzZW5jZTogdHJ1ZSxcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgfSxcbn0pO1xuXG5jb25zdCBzZXNzaW9uc0xpc3RHdWFyZCA9IG5ldyBBc3luY0xvY2soKTtcbmNvbnN0IHBlbmRpbmdEcml2ZXJzR3VhcmQgPSBuZXcgQXN5bmNMb2NrKCk7XG5cbi8qKlxuICogQGltcGxlbWVudHMge1Nlc3Npb25IYW5kbGVyfVxuICovXG5jbGFzcyBBcHBpdW1Ecml2ZXIgZXh0ZW5kcyBEcml2ZXJDb3JlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0byBzZXNzaW9ucyBsaXN0IG11c3QgYmUgZ3VhcmRlZCB3aXRoIGEgU2VtYXBob3JlLCBiZWNhdXNlXG4gICAqIGl0IG1pZ2h0IGJlIGNoYW5nZWQgYnkgb3RoZXIgYXN5bmMgY2FsbHMgYXQgYW55IHRpbWVcbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFjY2VzcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5IGZyb20gdGhlIG91dHNpZGVcbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsRXh0ZXJuYWxEcml2ZXI+fVxuICAgKi9cbiAgc2Vzc2lvbnMgPSB7fTtcblxuICAvKipcbiAgICogQWNjZXNzIHRvIHBlbmRpbmcgZHJpdmVycyBsaXN0IG11c3QgYmUgZ3VhcmRlZCB3aXRoIGEgU2VtYXBob3JlLCBiZWNhdXNlXG4gICAqIGl0IG1pZ2h0IGJlIGNoYW5nZWQgYnkgb3RoZXIgYXN5bmMgY2FsbHMgYXQgYW55IHRpbWVcbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFjY2VzcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5IGZyb20gdGhlIG91dHNpZGVcbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsRXh0ZXJuYWxEcml2ZXJbXT59XG4gICAqL1xuICBwZW5kaW5nRHJpdmVycyA9IHt9O1xuXG4gIC8qKlxuICAgKiBOb3RlIHRoYXQge0BsaW5rY29kZSBBcHBpdW1Ecml2ZXJ9IGhhcyBubyBgbmV3Q29tbWFuZFRpbWVvdXRgIG1ldGhvZC5cbiAgICogYEFwcGl1bURyaXZlcmAgZG9lcyBub3Qgc2V0IGFuZCBvYnNlcnZlIGl0cyBvd24gdGltZW91dHM7IGluZGl2aWR1YWxcbiAgICogc2Vzc2lvbnMgKG1hbmFnZWQgZHJpdmVycykgZG8gaW5zdGVhZC5cbiAgICovXG4gIG5ld0NvbW1hbmRUaW1lb3V0TXMgPSAwO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGl2ZSBwbHVnaW5zXG4gICAqIEB0eXBlIHtQbHVnaW5DbGFzc1tdfVxuICAgKi9cbiAgcGx1Z2luQ2xhc3NlcyA9IFtdO1xuXG4gIC8qKlxuICAgKiBtYXAgb2Ygc2Vzc2lvbnMgdG8gYWN0dWFsIHBsdWdpbiBpbnN0YW5jZXMgcGVyIHNlc3Npb25cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsSW5zdGFuY2VUeXBlPFBsdWdpbkNsYXNzPltdPn1cbiAgICovXG4gIHNlc3Npb25QbHVnaW5zID0ge307XG5cbiAgLyoqXG4gICAqIHNvbWUgY29tbWFuZHMgYXJlIHNlc3Npb25sZXNzLCBzbyB3ZSBuZWVkIGEgc2V0IG9mIHBsdWdpbnMgZm9yIHRoZW1cbiAgICogQHR5cGUge0luc3RhbmNlVHlwZTxQbHVnaW5DbGFzcz5bXX1cbiAgICovXG4gIHNlc3Npb25sZXNzUGx1Z2lucyA9IFtdOztcblxuICAvKiogQHR5cGUge0RyaXZlckNvbmZpZ30gKi9cbiAgZHJpdmVyQ29uZmlnO1xuXG4gIC8qKiBAdHlwZSB7QXBwaXVtU2VydmVyfSAqL1xuICBzZXJ2ZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RHJpdmVyT3B0c30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMpIHtcbiAgICAvLyBJdCBpcyBuZWNlc3NhcnkgdG8gc2V0IGAtLXRtcGAgaGVyZSBzaW5jZSBpdCBzaG91bGQgYmUgc2V0IHRvXG4gICAgLy8gcHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVIgb25jZSBhdCBhbiBpbml0aWFsIHBvaW50IGluIHRoZSBBcHBpdW0gbGlmZWN5Y2xlLlxuICAgIC8vIFRoZSBwcm9jZXNzIGFyZ3VtZW50IHdpbGwgYmUgcmVmZXJlbmNlZCBieSBCYXNlRHJpdmVyLlxuICAgIC8vIFBsZWFzZSBjYWxsIEBhcHBpdW0vc3VwcG9ydC50ZW1wRGlyIG1vZHVsZSB0byBhcHBseSB0aGlzIGJlbmVmaXQuXG4gICAgaWYgKG9wdHMudG1wRGlyKSB7XG4gICAgICBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiA9IG9wdHMudG1wRGlyO1xuICAgIH1cblxuICAgIHN1cGVyKG9wdHMpO1xuXG4gICAgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMgPSBkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzO1xuXG4gICAgdGhpcy5hcmdzID0gey4uLm9wdHN9O1xuXG4gICAgLy8gYWxsb3cgdGhpcyB0byBoYXBwZW4gaW4gdGhlIGJhY2tncm91bmQsIHNvIG5vIGBhd2FpdGBcbiAgICAvLyBjYXRjaCB0aGlzIHRvIGF2b2lkIGFuIHVuaGFuZGxlZCByZWplY3Rpb25cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tdGhlbixwcm9taXNlL3ByZWZlci1hd2FpdC10by1jYWxsYmFja3NcbiAgICB1cGRhdGVCdWlsZEluZm8oKS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhlcnIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBsb2dnZXIgaW5zdGFuY2UgZm9yIHRoZSBjdXJyZW50IHVtYnJlbGxhIGRyaXZlciBpbnN0YW5jZVxuICAgKi9cbiAgZ2V0IGxvZyAoKSB7XG4gICAgaWYgKCF0aGlzLl9sb2cpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlTmFtZSA9IGAke3RoaXMuY29uc3RydWN0b3IubmFtZX1AJHtub2RlLmdldE9iamVjdElkKHRoaXMpLnN1YnN0cmluZygwLCA0KX1gO1xuICAgICAgdGhpcy5fbG9nID0gbG9nZ2VyLmdldExvZ2dlcihpbnN0YW5jZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbG9nO1xuICB9XG5cblxuICAvKipcbiAgICogQ2FuY2VsIGNvbW1hbmRzIHF1ZXVlaW5nIGZvciB0aGUgdW1icmVsbGEgQXBwaXVtIGRyaXZlclxuICAgKi9cbiAgZ2V0IGlzQ29tbWFuZHNRdWV1ZUVuYWJsZWQgKCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHNlc3Npb25FeGlzdHMgKHNlc3Npb25JZCkge1xuICAgIGNvbnN0IGRzdFNlc3Npb24gPSB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgcmV0dXJuIGRzdFNlc3Npb24gJiYgZHN0U2Vzc2lvbi5zZXNzaW9uSWQgIT09IG51bGw7XG4gIH1cblxuICBkcml2ZXJGb3JTZXNzaW9uIChzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3RhdHVzICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1aWxkOiBfLmNsb25lKGdldEJ1aWxkSW5mbygpKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ2V0U2Vzc2lvbnMgKCkge1xuICAgIGNvbnN0IHNlc3Npb25zID0gYXdhaXQgc2Vzc2lvbnNMaXN0R3VhcmQuYWNxdWlyZShBcHBpdW1Ecml2ZXIubmFtZSwgKCkgPT4gdGhpcy5zZXNzaW9ucyk7XG4gICAgcmV0dXJuIF8udG9QYWlycyhzZXNzaW9ucylcbiAgICAgIC5tYXAoKFtpZCwgZHJpdmVyXSkgPT4gKHtpZCwgY2FwYWJpbGl0aWVzOiBkcml2ZXIuY2Fwc30pKTtcbiAgfVxuXG4gIHByaW50TmV3U2Vzc2lvbkFubm91bmNlbWVudCAoZHJpdmVyTmFtZSwgZHJpdmVyVmVyc2lvbiwgZHJpdmVyQmFzZVZlcnNpb24pIHtcbiAgICB0aGlzLmxvZy5pbmZvKGRyaXZlclZlcnNpb25cbiAgICAgID8gYEFwcGl1bSB2JHtBUFBJVU1fVkVSfSBjcmVhdGluZyBuZXcgJHtkcml2ZXJOYW1lfSAodiR7ZHJpdmVyVmVyc2lvbn0pIHNlc3Npb25gXG4gICAgICA6IGBBcHBpdW0gdiR7QVBQSVVNX1ZFUn0gY3JlYXRpbmcgbmV3ICR7ZHJpdmVyTmFtZX0gc2Vzc2lvbmBcbiAgICApO1xuICAgIHRoaXMubG9nLmluZm8oYENoZWNraW5nIEJhc2VEcml2ZXIgdmVyc2lvbnMgZm9yIEFwcGl1bSBhbmQgJHtkcml2ZXJOYW1lfWApO1xuICAgIHRoaXMubG9nLmluZm8oQXBwaXVtRHJpdmVyLmJhc2VWZXJzaW9uXG4gICAgICA/IGBBcHBpdW0ncyBCYXNlRHJpdmVyIHZlcnNpb24gaXMgJHtBcHBpdW1Ecml2ZXIuYmFzZVZlcnNpb259YFxuICAgICAgOiBgQ291bGQgbm90IGRldGVybWluZSBBcHBpdW0ncyBCYXNlRHJpdmVyIHZlcnNpb25gXG4gICAgKTtcbiAgICB0aGlzLmxvZy5pbmZvKGRyaXZlckJhc2VWZXJzaW9uXG4gICAgICA/IGAke2RyaXZlck5hbWV9J3MgQmFzZURyaXZlciB2ZXJzaW9uIGlzICR7ZHJpdmVyQmFzZVZlcnNpb259YFxuICAgICAgOiBgQ291bGQgbm90IGRldGVybWluZSAke2RyaXZlck5hbWV9J3MgQmFzZURyaXZlciB2ZXJzaW9uYFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYW5kIGFzc2lnbiBDTEkgYXJncyBmb3IgYSBkcml2ZXIgb3IgcGx1Z2luXG4gICAqXG4gICAqIElmIHRoZSBleHRlbnNpb24gaGFzIHByb3ZpZGVkIGEgc2NoZW1hLCB2YWxpZGF0aW9uIGhhcyBhbHJlYWR5IGhhcHBlbmVkLlxuICAgKlxuICAgKiBBbnkgYXJnIHdoaWNoIGlzIGVxdWFsIHRvIGl0cyBkZWZhdWx0IHZhbHVlIHdpbGwgbm90IGJlIGFzc2lnbmVkIHRvIHRoZSBleHRlbnNpb24uXG4gICAqIEBwYXJhbSB7RXh0ZW5zaW9uVHlwZX0gZXh0VHlwZSAnZHJpdmVyJyBvciAncGx1Z2luJ1xuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0TmFtZSB0aGUgbmFtZSBvZiB0aGUgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBleHRJbnN0YW5jZSB0aGUgZHJpdmVyIG9yIHBsdWdpbiBpbnN0YW5jZVxuICAgKi9cbiAgYXNzaWduQ2xpQXJnc1RvRXh0ZW5zaW9uIChleHRUeXBlLCBleHROYW1lLCBleHRJbnN0YW5jZSkge1xuICAgIGNvbnN0IGFsbENsaUFyZ3NGb3JFeHQgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsdW5rbm93bj58dW5kZWZpbmVkfSAqLyh0aGlzLmFyZ3NbZXh0VHlwZV0/LltleHROYW1lXSk7XG4gICAgaWYgKCFfLmlzRW1wdHkoYWxsQ2xpQXJnc0ZvckV4dCkpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0gZ2V0RGVmYXVsdHNGb3JFeHRlbnNpb24oZXh0VHlwZSwgZXh0TmFtZSk7XG4gICAgICBjb25zdCBjbGlBcmdzID0gXy5pc0VtcHR5KGRlZmF1bHRzKVxuICAgICAgICA/IGFsbENsaUFyZ3NGb3JFeHRcbiAgICAgICAgOiBfLm9taXRCeShhbGxDbGlBcmdzRm9yRXh0LCAodmFsdWUsIGtleSkgPT4gXy5pc0VxdWFsKGRlZmF1bHRzW2tleV0sIHZhbHVlKSk7XG4gICAgICBpZiAoIV8uaXNFbXB0eShjbGlBcmdzKSkge1xuICAgICAgICBleHRJbnN0YW5jZS5jbGlBcmdzID0gY2xpQXJncztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHNlc3Npb25cbiAgICogQHBhcmFtIHtXM0NDYXBhYmlsaXRpZXN9IGpzb253cENhcHMgSlNPTldQIGZvcm1hdHRlZCBkZXNpcmVkIGNhcGFiaWxpdGllc1xuICAgKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllc30gcmVxQ2FwcyBSZXF1aXJlZCBjYXBhYmlsaXRpZXMgKEpTT05XUCBzdGFuZGFyZClcbiAgICogQHBhcmFtIHtXM0NDYXBhYmlsaXRpZXN9IHczY0NhcGFiaWxpdGllcyBXM0MgY2FwYWJpbGl0aWVzXG4gICAqIEBwYXJhbSB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyRGF0YVtdfSBbZHJpdmVyRGF0YV1cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb24gKGpzb253cENhcHMsIHJlcUNhcHMsIHczY0NhcGFiaWxpdGllcywgZHJpdmVyRGF0YSkge1xuICAgIGNvbnN0IGRlZmF1bHRDYXBhYmlsaXRpZXMgPSBfLmNsb25lRGVlcCh0aGlzLmFyZ3MuZGVmYXVsdENhcGFiaWxpdGllcyk7XG4gICAgY29uc3QgZGVmYXVsdFNldHRpbmdzID0gcHVsbFNldHRpbmdzKGRlZmF1bHRDYXBhYmlsaXRpZXMpO1xuICAgIGpzb253cENhcHMgPSBfLmNsb25lRGVlcChqc29ud3BDYXBzKTtcbiAgICBjb25zdCBqd3BTZXR0aW5ncyA9IHsuLi5kZWZhdWx0U2V0dGluZ3MsIC4uLnB1bGxTZXR0aW5ncyhqc29ud3BDYXBzKX07XG4gICAgdzNjQ2FwYWJpbGl0aWVzID0gXy5jbG9uZURlZXAodzNjQ2FwYWJpbGl0aWVzKTtcbiAgICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBjbGllbnQgb25seSBwcm92aWRlcyBjYXBzIHVzaW5nIEpTT05XUCBzdGFuZGFyZCxcbiAgICAvLyBhbHRob3VnaCBmaXJzdE1hdGNoL2Fsd2F5c01hdGNoIHByb3BlcnRpZXMgYXJlIHN0aWxsIHByZXNlbnQuXG4gICAgLy8gSW4gc3VjaCBjYXNlIHdlIGFzc3VtZSB0aGUgY2xpZW50IHVuZGVyc3RhbmRzIFczQyBwcm90b2NvbCBhbmQgbWVyZ2UgdGhlIGdpdmVuXG4gICAgLy8gSlNPTldQIGNhcHMgdG8gVzNDIGNhcHNcbiAgICBjb25zdCB3M2NTZXR0aW5ncyA9IHtcbiAgICAgIC4uLmp3cFNldHRpbmdzLFxuICAgICAgLi4ucHVsbFNldHRpbmdzKCh3M2NDYXBhYmlsaXRpZXMgPz8ge30pLmFsd2F5c01hdGNoID8/IHt9KVxuICAgIH07XG4gICAgZm9yIChjb25zdCBmaXJzdE1hdGNoRW50cnkgb2YgKCh3M2NDYXBhYmlsaXRpZXMgPz8ge30pLmZpcnN0TWF0Y2ggPz8gW10pKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHczY1NldHRpbmdzLCBwdWxsU2V0dGluZ3MoZmlyc3RNYXRjaEVudHJ5KSk7XG4gICAgfVxuXG4gICAgbGV0IHByb3RvY29sO1xuICAgIGxldCBpbm5lclNlc3Npb25JZCwgZENhcHM7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFBhcnNlIHRoZSBjYXBzIGludG8gYSBmb3JtYXQgdGhhdCB0aGUgSW5uZXJEcml2ZXIgd2lsbCBhY2NlcHRcbiAgICAgIGNvbnN0IHBhcnNlZENhcHMgPSBwYXJzZUNhcHNGb3JJbm5lckRyaXZlcihcbiAgICAgICAganNvbndwQ2FwcyxcbiAgICAgICAgdzNjQ2FwYWJpbGl0aWVzLFxuICAgICAgICB0aGlzLmRlc2lyZWRDYXBDb25zdHJhaW50cyxcbiAgICAgICAgZGVmYXVsdENhcGFiaWxpdGllc1xuICAgICAgKTtcblxuICAgICAgY29uc3Qge2Rlc2lyZWRDYXBzLCBwcm9jZXNzZWRKc29ud3BDYXBhYmlsaXRpZXMsIHByb2Nlc3NlZFczQ0NhcGFiaWxpdGllc30gPSAvKiogQHR5cGUge2ltcG9ydCgnLi91dGlscycpLlBhcnNlZERyaXZlckNhcHN9ICovKHBhcnNlZENhcHMpO1xuICAgICAgcHJvdG9jb2wgPSBwYXJzZWRDYXBzLnByb3RvY29sO1xuICAgICAgY29uc3QgZXJyb3IgPSAvKiogQHR5cGUge2ltcG9ydCgnLi91dGlscycpLkludmFsaWRDYXBzfSAqLyhwYXJzZWRDYXBzKS5lcnJvcjtcbiAgICAgIC8vIElmIHRoZSBwYXJzaW5nIG9mIHRoZSBjYXBzIHByb2R1Y2VkIGFuIGVycm9yLCB0aHJvdyBpdCBpbiBoZXJlXG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZHJpdmVyOiBJbm5lckRyaXZlcixcbiAgICAgICAgdmVyc2lvbjogZHJpdmVyVmVyc2lvbixcbiAgICAgICAgZHJpdmVyTmFtZVxuICAgICAgfSA9IHRoaXMuZHJpdmVyQ29uZmlnLmZpbmRNYXRjaGluZ0RyaXZlcihkZXNpcmVkQ2Fwcyk7XG4gICAgICB0aGlzLnByaW50TmV3U2Vzc2lvbkFubm91bmNlbWVudChJbm5lckRyaXZlci5uYW1lLCBkcml2ZXJWZXJzaW9uLCBJbm5lckRyaXZlci5iYXNlVmVyc2lvbik7XG5cbiAgICAgIGlmICh0aGlzLmFyZ3Muc2Vzc2lvbk92ZXJyaWRlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlQWxsU2Vzc2lvbnMoKTtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7RHJpdmVyRGF0YVtdfVxuICAgICAgICovXG4gICAgICBsZXQgcnVubmluZ0RyaXZlcnNEYXRhID0gW107XG4gICAgICAvKipcbiAgICAgICAqIEB0eXBlIHtEcml2ZXJEYXRhW119XG4gICAgICAgKi9cbiAgICAgIGxldCBvdGhlclBlbmRpbmdEcml2ZXJzRGF0YSA9IFtdO1xuXG4gICAgICBjb25zdCBkcml2ZXJJbnN0YW5jZSA9IG5ldyBJbm5lckRyaXZlcih0aGlzLmFyZ3MsIHRydWUpO1xuXG4gICAgICAvLyBXZSB3YW50IHRvIGFzc2lnbiBzZWN1cml0eSB2YWx1ZXMgZGlyZWN0bHkgb24gdGhlIGRyaXZlci4gVGhlIGRyaXZlclxuICAgICAgLy8gc2hvdWxkIG5vdCByZWFkIHNlY3VyaXR5IHZhbHVlcyBmcm9tIGB0aGlzLm9wdHNgIGJlY2F1c2UgdGhvc2UgdmFsdWVzXG4gICAgICAvLyBjb3VsZCBoYXZlIGJlZW4gc2V0IGJ5IGEgbWFsaWNpb3VzIHVzZXIgdmlhIGNhcGFiaWxpdGllcywgd2hlcmVhcyB3ZVxuICAgICAgLy8gd2FudCBhIGd1YXJhbnRlZSB0aGUgdmFsdWVzIHdlcmUgc2V0IGJ5IHRoZSBhcHBpdW0gc2VydmVyIGFkbWluXG4gICAgICBpZiAodGhpcy5hcmdzLnJlbGF4ZWRTZWN1cml0eUVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgQXBwbHlpbmcgcmVsYXhlZCBzZWN1cml0eSB0byAnJHtJbm5lckRyaXZlci5uYW1lfScgYXMgcGVyIGAgK1xuICAgICAgICAgIGBzZXJ2ZXIgY29tbWFuZCBsaW5lIGFyZ3VtZW50LiBBbGwgaW5zZWN1cmUgZmVhdHVyZXMgd2lsbCBiZSBgICtcbiAgICAgICAgICBgZW5hYmxlZCB1bmxlc3MgZXhwbGljaXRseSBkaXNhYmxlZCBieSAtLWRlbnktaW5zZWN1cmVgKTtcbiAgICAgICAgZHJpdmVySW5zdGFuY2UucmVsYXhlZFNlY3VyaXR5RW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghXy5pc0VtcHR5KHRoaXMuYXJncy5kZW55SW5zZWN1cmUpKSB7XG4gICAgICAgIHRoaXMubG9nLmluZm8oJ0V4cGxpY2l0bHkgcHJldmVudGluZyB1c2Ugb2YgaW5zZWN1cmUgZmVhdHVyZXM6Jyk7XG4gICAgICAgIHRoaXMuYXJncy5kZW55SW5zZWN1cmUubWFwKChhKSA9PiB0aGlzLmxvZy5pbmZvKGAgICAgJHthfWApKTtcbiAgICAgICAgZHJpdmVySW5zdGFuY2UuZGVueUluc2VjdXJlID0gdGhpcy5hcmdzLmRlbnlJbnNlY3VyZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5hcmdzLmFsbG93SW5zZWN1cmUpKSB7XG4gICAgICAgIHRoaXMubG9nLmluZm8oJ0V4cGxpY2l0bHkgZW5hYmxpbmcgdXNlIG9mIGluc2VjdXJlIGZlYXR1cmVzOicpO1xuICAgICAgICB0aGlzLmFyZ3MuYWxsb3dJbnNlY3VyZS5tYXAoKGEpID0+IHRoaXMubG9nLmluZm8oYCAgICAke2F9YCkpO1xuICAgICAgICBkcml2ZXJJbnN0YW5jZS5hbGxvd0luc2VjdXJlID0gdGhpcy5hcmdzLmFsbG93SW5zZWN1cmU7XG4gICAgICB9XG5cbiAgICAgIC8vIExpa2V3aXNlLCBhbnkgZHJpdmVyLXNwZWNpZmljIENMSSBhcmdzIHRoYXQgd2VyZSBwYXNzZWQgaW4gc2hvdWxkIGJlIGFzc2lnbmVkIGRpcmVjdGx5IHRvXG4gICAgICAvLyB0aGUgZHJpdmVyIHNvIHRoYXQgdGhleSBjYW5ub3QgYmUgbWltaWNrZWQgYnkgYSBtYWxpY2lvdXMgdXNlciBzZW5kaW5nIGluIGNhcGFiaWxpdGllc1xuICAgICAgdGhpcy5hc3NpZ25DbGlBcmdzVG9FeHRlbnNpb24oJ2RyaXZlcicsIGRyaXZlck5hbWUsIGRyaXZlckluc3RhbmNlKTtcblxuXG4gICAgICAvLyBUaGlzIGFzc2lnbm1lbnQgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3Qgd2ViIHNvY2tldHMgZnVuY3Rpb25hbGl0eSBpbnNpZGUgdGhlIGRyaXZlclxuICAgICAgLy8gRHJpdmVycy9wbHVnaW5zIG1pZ2h0IGFsc28gd2FudCB0byBrbm93IHdoZXJlIHRoZXkgYXJlIGhvc3RlZFxuICAgICAgZHJpdmVySW5zdGFuY2UuYXNzaWduU2VydmVyKHRoaXMuc2VydmVyLCB0aGlzLmFyZ3MuYWRkcmVzcywgdGhpcy5hcmdzLnBvcnQsIHRoaXMuYXJncy5iYXNlUGF0aCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJ1bm5pbmdEcml2ZXJzRGF0YSA9IGF3YWl0IHRoaXMuY3VyU2Vzc2lvbkRhdGFGb3JEcml2ZXIoSW5uZXJEcml2ZXIpID8/IFtdO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IoZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHBlbmRpbmdEcml2ZXJzR3VhcmQuYWNxdWlyZShBcHBpdW1Ecml2ZXIubmFtZSwgKCkgPT4ge1xuICAgICAgICB0aGlzLnBlbmRpbmdEcml2ZXJzW0lubmVyRHJpdmVyLm5hbWVdID0gdGhpcy5wZW5kaW5nRHJpdmVyc1tJbm5lckRyaXZlci5uYW1lXSB8fCBbXTtcbiAgICAgICAgb3RoZXJQZW5kaW5nRHJpdmVyc0RhdGEgPSBfLmNvbXBhY3QodGhpcy5wZW5kaW5nRHJpdmVyc1tJbm5lckRyaXZlci5uYW1lXS5tYXAoKGRydikgPT4gZHJ2LmRyaXZlckRhdGEpKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nRHJpdmVyc1tJbm5lckRyaXZlci5uYW1lXS5wdXNoKGRyaXZlckluc3RhbmNlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0cnkge1xuICAgICAgICBbaW5uZXJTZXNzaW9uSWQsIGRDYXBzXSA9IGF3YWl0IGRyaXZlckluc3RhbmNlLmNyZWF0ZVNlc3Npb24oXG4gICAgICAgICAgcHJvY2Vzc2VkSnNvbndwQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgIHJlcUNhcHMsXG4gICAgICAgICAgcHJvY2Vzc2VkVzNDQ2FwYWJpbGl0aWVzLFxuICAgICAgICAgIFsuLi5ydW5uaW5nRHJpdmVyc0RhdGEsIC4uLm90aGVyUGVuZGluZ0RyaXZlcnNEYXRhXVxuICAgICAgICApO1xuICAgICAgICBwcm90b2NvbCA9IGRyaXZlckluc3RhbmNlLnByb3RvY29sO1xuICAgICAgICBhd2FpdCBzZXNzaW9uc0xpc3RHdWFyZC5hY3F1aXJlKEFwcGl1bURyaXZlci5uYW1lLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uc1tpbm5lclNlc3Npb25JZF0gPSBkcml2ZXJJbnN0YW5jZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBhd2FpdCBwZW5kaW5nRHJpdmVyc0d1YXJkLmFjcXVpcmUoQXBwaXVtRHJpdmVyLm5hbWUsICgpID0+IHtcbiAgICAgICAgICBfLnB1bGwodGhpcy5wZW5kaW5nRHJpdmVyc1tJbm5lckRyaXZlci5uYW1lXSwgZHJpdmVySW5zdGFuY2UpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hdHRhY2hVbmV4cGVjdGVkU2h1dGRvd25IYW5kbGVyKGRyaXZlckluc3RhbmNlLCBpbm5lclNlc3Npb25JZCk7XG5cbiAgICAgIHRoaXMubG9nLmluZm8oYE5ldyAke0lubmVyRHJpdmVyLm5hbWV9IHNlc3Npb24gY3JlYXRlZCBzdWNjZXNzZnVsbHksIHNlc3Npb24gYCArXG4gICAgICAgIGAke2lubmVyU2Vzc2lvbklkfSBhZGRlZCB0byBtYXN0ZXIgc2Vzc2lvbiBsaXN0YCk7XG5cbiAgICAgIC8vIHNldCB0aGUgTmV3IENvbW1hbmQgVGltZW91dCBmb3IgdGhlIGlubmVyIGRyaXZlclxuICAgICAgZHJpdmVySW5zdGFuY2Uuc3RhcnROZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgICAvLyBhcHBseSBpbml0aWFsIHZhbHVlcyB0byBBcHBpdW0gc2V0dGluZ3MgKGlmIHByb3ZpZGVkKVxuICAgICAgaWYgKGRyaXZlckluc3RhbmNlLmlzVzNDUHJvdG9jb2woKSAmJiAhXy5pc0VtcHR5KHczY1NldHRpbmdzKSkge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBBcHBseWluZyB0aGUgaW5pdGlhbCB2YWx1ZXMgdG8gQXBwaXVtIHNldHRpbmdzIHBhcnNlZCBmcm9tIFczQyBjYXBzOiBgICtcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh3M2NTZXR0aW5ncykpO1xuICAgICAgICBhd2FpdCBkcml2ZXJJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyh3M2NTZXR0aW5ncyk7XG4gICAgICB9IGVsc2UgaWYgKGRyaXZlckluc3RhbmNlLmlzTWpzb253cFByb3RvY29sKCkgJiYgIV8uaXNFbXB0eShqd3BTZXR0aW5ncykpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgQXBwbHlpbmcgdGhlIGluaXRpYWwgdmFsdWVzIHRvIEFwcGl1bSBzZXR0aW5ncyBwYXJzZWQgZnJvbSBNSlNPTldQIGNhcHM6IGAgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGp3cFNldHRpbmdzKSk7XG4gICAgICAgIGF3YWl0IGRyaXZlckluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKGp3cFNldHRpbmdzKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdG9jb2wsXG4gICAgICAgIGVycm9yLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvdG9jb2wsXG4gICAgICB2YWx1ZTogW2lubmVyU2Vzc2lvbklkLCBkQ2FwcywgcHJvdG9jb2xdXG4gICAgfTtcbiAgfVxuXG4gIGF0dGFjaFVuZXhwZWN0ZWRTaHV0ZG93bkhhbmRsZXIgKGRyaXZlciwgaW5uZXJTZXNzaW9uSWQpIHtcbiAgICBjb25zdCBvblNodXRkb3duID0gKGNhdXNlID0gbmV3IEVycm9yKCdVbmtub3duIGVycm9yJykpID0+IHtcbiAgICAgIHRoaXMubG9nLndhcm4oYEVuZGluZyBzZXNzaW9uLCBjYXVzZSB3YXMgJyR7Y2F1c2UubWVzc2FnZX0nYCk7XG5cbiAgICAgIGlmICh0aGlzLnNlc3Npb25QbHVnaW5zW2lubmVyU2Vzc2lvbklkXSkge1xuICAgICAgICBmb3IgKGNvbnN0IHBsdWdpbiBvZiB0aGlzLnNlc3Npb25QbHVnaW5zW2lubmVyU2Vzc2lvbklkXSkge1xuICAgICAgICAgIGlmIChfLmlzRnVuY3Rpb24ocGx1Z2luLm9uVW5leHBlY3RlZFNodXRkb3duKSkge1xuICAgICAgICAgICAgdGhpcy5sb2cuZGVidWcoYFBsdWdpbiAke3BsdWdpbi5uYW1lfSBkZWZpbmVzIGFuIHVuZXhwZWN0ZWQgc2h1dGRvd24gaGFuZGxlcjsgY2FsbGluZyBpdCBub3dgKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHBsdWdpbi5vblVuZXhwZWN0ZWRTaHV0ZG93bihkcml2ZXIsIGNhdXNlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2cud2FybihgR290IGFuIGVycm9yIHdoZW4gcnVubmluZyBwbHVnaW4gJHtwbHVnaW4ubmFtZX0gc2h1dGRvd24gaGFuZGxlcjogJHtlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgUGx1Z2luICR7cGx1Z2luLm5hbWV9IGRvZXMgbm90IGRlZmluZSBhbiB1bmV4cGVjdGVkIHNodXRkb3duIGhhbmRsZXJgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2cuaW5mbyhgUmVtb3Zpbmcgc2Vzc2lvbiAnJHtpbm5lclNlc3Npb25JZH0nIGZyb20gb3VyIG1hc3RlciBzZXNzaW9uIGxpc3RgKTtcbiAgICAgIGRlbGV0ZSB0aGlzLnNlc3Npb25zW2lubmVyU2Vzc2lvbklkXTtcbiAgICAgIGRlbGV0ZSB0aGlzLnNlc3Npb25QbHVnaW5zW2lubmVyU2Vzc2lvbklkXTtcbiAgICB9O1xuXG4gICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIub25VbmV4cGVjdGVkU2h1dGRvd24pKSB7XG4gICAgICBkcml2ZXIub25VbmV4cGVjdGVkU2h1dGRvd24ob25TaHV0ZG93bik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYEZhaWxlZCB0byBhdHRhY2ggdGhlIHVuZXhwZWN0ZWQgc2h1dGRvd24gbGlzdGVuZXIuIGAgK1xuICAgICAgICBgSXMgJ29uVW5leHBlY3RlZFNodXRkb3duJyBtZXRob2QgYXZhaWxhYmxlIGZvciAnJHtkcml2ZXIuY29uc3RydWN0b3IubmFtZX0nP2ApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge2ltcG9ydCgnLi4vdHlwZXMvZXh0ZW5zaW9uJykuRHJpdmVyQ2xhc3N9IElubmVyRHJpdmVyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERyaXZlckRhdGFbXT59fVxuICAgKi9cbiAgYXN5bmMgY3VyU2Vzc2lvbkRhdGFGb3JEcml2ZXIgKElubmVyRHJpdmVyKSB7XG4gICAgY29uc3Qgc2Vzc2lvbnMgPSBhd2FpdCBzZXNzaW9uc0xpc3RHdWFyZC5hY3F1aXJlKEFwcGl1bURyaXZlci5uYW1lLCAoKSA9PiB0aGlzLnNlc3Npb25zKTtcbiAgICBjb25zdCBkYXRhID0gXy5jb21wYWN0KF8udmFsdWVzKHNlc3Npb25zKVxuICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+IHMuY29uc3RydWN0b3IubmFtZSA9PT0gSW5uZXJEcml2ZXIubmFtZSlcbiAgICAgICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLmRyaXZlckRhdGEpKTtcbiAgICBmb3IgKGxldCBkYXR1bSBvZiBkYXRhKSB7XG4gICAgICBpZiAoIWRhdHVtKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvYmxlbSBnZXR0aW5nIHNlc3Npb24gZGF0YSBmb3IgZHJpdmVyIHR5cGUgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgJHtJbm5lckRyaXZlci5uYW1lfTsgZG9lcyBpdCBpbXBsZW1lbnQgJ2dldCBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGBkcml2ZXJEYXRhJz9gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IHNlc3Npb25JZFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlU2Vzc2lvbiAoc2Vzc2lvbklkKSB7XG4gICAgbGV0IHByb3RvY29sO1xuICAgIHRyeSB7XG4gICAgICBsZXQgb3RoZXJTZXNzaW9uc0RhdGE7XG4gICAgICBjb25zdCBkc3RTZXNzaW9uID0gYXdhaXQgc2Vzc2lvbnNMaXN0R3VhcmQuYWNxdWlyZShBcHBpdW1Ecml2ZXIubmFtZSwgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJDb25zdHJ1Y3Rvck5hbWUgPSB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF0uY29uc3RydWN0b3IubmFtZTtcbiAgICAgICAgb3RoZXJTZXNzaW9uc0RhdGEgPSBfLnRvUGFpcnModGhpcy5zZXNzaW9ucylcbiAgICAgICAgICAgICAgLmZpbHRlcigoW2tleSwgdmFsdWVdKSA9PiB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09PSBjdXJDb25zdHJ1Y3Rvck5hbWUgJiYga2V5ICE9PSBzZXNzaW9uSWQpXG4gICAgICAgICAgICAgIC5tYXAoKFssIHZhbHVlXSkgPT4gdmFsdWUuZHJpdmVyRGF0YSk7XG4gICAgICAgIGNvbnN0IGRzdFNlc3Npb24gPSB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgICAgIHByb3RvY29sID0gZHN0U2Vzc2lvbi5wcm90b2NvbDtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgUmVtb3Zpbmcgc2Vzc2lvbiAke3Nlc3Npb25JZH0gZnJvbSBvdXIgbWFzdGVyIHNlc3Npb24gbGlzdGApO1xuICAgICAgICAvLyByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGRlbGV0ZVNlc3Npb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSBvciBub3RcbiAgICAgICAgLy8gbWFrZSB0aGUgc2Vzc2lvbiB1bmF2YWlsYWJsZSwgYmVjYXVzZSB3aG8ga25vd3Mgd2hhdCBzdGF0ZSBpdCBtaWdodFxuICAgICAgICAvLyBiZSBpbiBvdGhlcndpc2VcbiAgICAgICAgZGVsZXRlIHRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICAgICAgZGVsZXRlIHRoaXMuc2Vzc2lvblBsdWdpbnNbc2Vzc2lvbklkXTtcbiAgICAgICAgcmV0dXJuIGRzdFNlc3Npb247XG4gICAgICB9KTtcbiAgICAgIC8vIHRoaXMgbWF5IG5vdCBiZSBjb3JyZWN0LCBidXQgaWYgYGRzdFNlc3Npb25gIHdhcyBmYWxzeSwgdGhlIGNhbGwgdG8gYGRlbGV0ZVNlc3Npb24oKWAgd291bGRcbiAgICAgIC8vIHRocm93IGFueXdheS5cbiAgICAgIGlmICghZHN0U2Vzc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nlc3Npb24gbm90IGZvdW5kJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgdmFsdWU6IGF3YWl0IGRzdFNlc3Npb24uZGVsZXRlU2Vzc2lvbihzZXNzaW9uSWQsIG90aGVyU2Vzc2lvbnNEYXRhKSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5sb2cuZXJyb3IoYEhhZCB0cm91YmxlIGVuZGluZyBzZXNzaW9uICR7c2Vzc2lvbklkfTogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwcm90b2NvbCxcbiAgICAgICAgZXJyb3I6IGUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbFNlc3Npb25zIChvcHRzID0ge30pIHtcbiAgICBjb25zdCBzZXNzaW9uc0NvdW50ID0gXy5zaXplKHRoaXMuc2Vzc2lvbnMpO1xuICAgIGlmICgwID09PSBzZXNzaW9uc0NvdW50KSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnVGhlcmUgYXJlIG5vIGFjdGl2ZSBzZXNzaW9ucyBmb3IgY2xlYW51cCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHtcbiAgICAgIGZvcmNlID0gZmFsc2UsXG4gICAgICByZWFzb24sXG4gICAgfSA9IG9wdHM7XG4gICAgdGhpcy5sb2cuZGVidWcoYENsZWFuaW5nIHVwICR7dXRpbC5wbHVyYWxpemUoJ2FjdGl2ZSBzZXNzaW9uJywgc2Vzc2lvbnNDb3VudCwgdHJ1ZSl9YCk7XG4gICAgY29uc3QgY2xlYW51cFByb21pc2VzID0gZm9yY2VcbiAgICAgID8gXy52YWx1ZXModGhpcy5zZXNzaW9ucykubWFwKChkcnYpID0+IGRydi5zdGFydFVuZXhwZWN0ZWRTaHV0ZG93bihyZWFzb24gJiYgbmV3IEVycm9yKHJlYXNvbikpKVxuICAgICAgOiBfLmtleXModGhpcy5zZXNzaW9ucykubWFwKChpZCkgPT4gdGhpcy5kZWxldGVTZXNzaW9uKGlkKSk7XG4gICAgZm9yIChjb25zdCBjbGVhbnVwUHJvbWlzZSBvZiBjbGVhbnVwUHJvbWlzZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGNsZWFudXBQcm9taXNlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBhcHByb3ByaWF0ZSBwbHVnaW5zIGZvciBhIHNlc3Npb24gKG9yIHNlc3Npb25sZXNzIHBsdWdpbnMpXG4gICAqXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gc2Vzc2lvbklkIC0gdGhlIHNlc3Npb25JZCAob3IgbnVsbCkgdG8gdXNlIHRvIGZpbmQgcGx1Z2luc1xuICAgKiBAcmV0dXJucyB7QXJyYXl9IC0gYXJyYXkgb2YgcGx1Z2luIGluc3RhbmNlc1xuICAgKi9cbiAgcGx1Z2luc0ZvclNlc3Npb24gKHNlc3Npb25JZCA9IG51bGwpIHtcbiAgICBpZiAoc2Vzc2lvbklkKSB7XG4gICAgICBpZiAoIXRoaXMuc2Vzc2lvblBsdWdpbnNbc2Vzc2lvbklkXSkge1xuICAgICAgICB0aGlzLnNlc3Npb25QbHVnaW5zW3Nlc3Npb25JZF0gPSB0aGlzLmNyZWF0ZVBsdWdpbkluc3RhbmNlcygpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvblBsdWdpbnNbc2Vzc2lvbklkXTtcbiAgICB9XG5cbiAgICBpZiAoXy5pc0VtcHR5KHRoaXMuc2Vzc2lvbmxlc3NQbHVnaW5zKSkge1xuICAgICAgdGhpcy5zZXNzaW9ubGVzc1BsdWdpbnMgPSB0aGlzLmNyZWF0ZVBsdWdpbkluc3RhbmNlcygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXNzaW9ubGVzc1BsdWdpbnM7XG4gIH1cblxuICAvKipcbiAgICogVG8gZ2V0IHBsdWdpbnMgZm9yIGEgY29tbWFuZCwgd2UgZWl0aGVyIGdldCB0aGUgcGx1Z2luIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlXG4gICAqIHBhcnRpY3VsYXIgY29tbWFuZCdzIHNlc3Npb24sIG9yIGluIHRoZSBjYXNlIG9mIHNlc3Npb25sZXNzIHBsdWdpbnMsIHB1bGwgZnJvbSB0aGUgc2V0IG9mXG4gICAqIHBsdWdpbiBpbnN0YW5jZXMgcmVzZXJ2ZWQgZm9yIHNlc3Npb25sZXNzIGNvbW1hbmRzIChhbmQgd2UgbGF6aWx5IGNyZWF0ZSBwbHVnaW4gaW5zdGFuY2VzIG9uXG4gICAqIGZpcnN0IHVzZSlcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNtZCAtIHRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIHRvIGZpbmQgYSBwbHVnaW4gdG8gaGFuZGxlXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gc2Vzc2lvbklkIC0gdGhlIHBhcnRpY3VsYXIgc2Vzc2lvbiBmb3Igd2hpY2ggdG8gZmluZCBhIHBsdWdpbiwgb3IgbnVsbCBpZlxuICAgKiBzZXNzaW9ubGVzc1xuICAgKi9cbiAgcGx1Z2luc1RvSGFuZGxlQ21kIChjbWQsIHNlc3Npb25JZCA9IG51bGwpIHtcbiAgICAvLyB0byBoYW5kbGUgYSBnaXZlbiBjb21tYW5kLCBhIHBsdWdpbiBzaG91bGQgZWl0aGVyIGltcGxlbWVudCB0aGF0IGNvbW1hbmQgYXMgYSBwbHVnaW5cbiAgICAvLyBpbnN0YW5jZSBtZXRob2Qgb3IgaXQgc2hvdWxkIGltcGxlbWVudCBhIGdlbmVyaWMgJ2hhbmRsZScgbWV0aG9kXG4gICAgcmV0dXJuIHRoaXMucGx1Z2luc0ZvclNlc3Npb24oc2Vzc2lvbklkKVxuICAgICAgLmZpbHRlcigocCkgPT4gXy5pc0Z1bmN0aW9uKHBbY21kXSkgfHwgXy5pc0Z1bmN0aW9uKHAuaGFuZGxlKSk7XG4gIH1cblxuICBjcmVhdGVQbHVnaW5JbnN0YW5jZXMgKCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbkNsYXNzZXMubWFwKChQbHVnaW5DbGFzcykgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IFBsdWdpbkNsYXNzLnBsdWdpbk5hbWU7XG4gICAgICBjb25zdCBwbHVnaW4gPSBuZXcgUGx1Z2luQ2xhc3MobmFtZSk7XG4gICAgICB0aGlzLmFzc2lnbkNsaUFyZ3NUb0V4dGVuc2lvbigncGx1Z2luJywgbmFtZSwgcGx1Z2luKTtcbiAgICAgIHJldHVybiBwbHVnaW47XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNtZFxuICAgKiBAcGFyYW0gIHsuLi5hbnl9IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8e3ZhbHVlOiBhbnksIGVycm9yPzogRXJyb3IsIHByb3RvY29sOiBzdHJpbmd9IHwgaW1wb3J0KCd0eXBlLWZlc3QnKS5Bc3luY1JldHVyblR5cGU8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyWydleGVjdXRlQ29tbWFuZCddPj59XG4gICAqL1xuICBhc3luYyBleGVjdXRlQ29tbWFuZCAoY21kLCAuLi5hcmdzKSB7XG4gICAgLy8gV2UgaGF2ZSBiYXNpY2FsbHkgdGhyZWUgY2FzZXMgZm9yIGhvdyB0byBoYW5kbGUgY29tbWFuZHM6XG4gICAgLy8gMS4gaGFuZGxlIGdldFN0YXR1cyAod2UgZG8gdGhpcyBhcyBhIHNwZWNpYWwgb3V0IG9mIGJhbmQgY2FzZSBzbyBpdCBkb2Vzbid0IGdldCBhZGRlZCB0byBhblxuICAgIC8vICAgIGV4ZWN1dGlvbiBxdWV1ZSwgYW5kIGNhbiBiZSBjYWxsZWQgd2hpbGUgZS5nLiBjcmVhdGVTZXNzaW9uIGlzIGluIHByb2dyZXNzKVxuICAgIC8vIDIuIGhhbmRsZSBjb21tYW5kcyB0aGF0IHRoaXMgdW1icmVsbGEgZHJpdmVyIHNob3VsZCBoYW5kbGUsIHJhdGhlciB0aGFuIHRoZSBhY3R1YWwgc2Vzc2lvblxuICAgIC8vICAgIGRyaXZlciAoZm9yIGV4YW1wbGUsIGRlbGV0ZVNlc3Npb24sIG9yIG90aGVyIG5vbi1zZXNzaW9uIGNvbW1hbmRzKVxuICAgIC8vIDMuIGhhbmRsZSBzZXNzaW9uIGRyaXZlciBjb21tYW5kcy5cbiAgICAvLyBUaGUgdHJpY2t5IHBhcnQgaXMgdGhhdCBiZWNhdXNlIHdlIHN1cHBvcnQgY29tbWFuZCBwbHVnaW5zLCB3ZSBuZWVkIHRvIHdyYXAgYW55IG9mIHRoZXNlXG4gICAgLy8gY2FzZXMgd2l0aCBwbHVnaW4gaGFuZGxpbmcuXG5cbiAgICBjb25zdCBpc0dldFN0YXR1cyA9IGNtZCA9PT0gR0VUX1NUQVRVU19DT01NQU5EO1xuICAgIGNvbnN0IGlzRGVsZXRlU2Vzc2lvbiA9IGNtZCA9PT0gREVMRVRFX1NFU1NJT05fQ09NTUFORDtcbiAgICBjb25zdCBpc1VtYnJlbGxhQ21kID0gIWlzR2V0U3RhdHVzICYmIGlzQXBwaXVtRHJpdmVyQ29tbWFuZChjbWQpO1xuICAgIGNvbnN0IGlzU2Vzc2lvbkNtZCA9ICFpc1VtYnJlbGxhQ21kIHx8IGlzRGVsZXRlU2Vzc2lvbjtcblxuICAgIC8vIGlmIGEgcGx1Z2luIG92ZXJyaWRlIHByb3h5aW5nIGZvciB0aGlzIGNvbW1hbmQgYW5kIHRoYXQgaXMgd2h5IHdlIGFyZSBoZXJlIGluc3RlYWQgb2YganVzdFxuICAgIC8vIGxldHRpbmcgdGhlIHByb3RvY29sIHByb3h5IHRoZSBjb21tYW5kIGVudGlyZWx5LCBkZXRlcm1pbmUgdGhhdCwgZ2V0IHRoZSByZXF1ZXN0IG9iamVjdCBmb3JcbiAgICAvLyB1c2UgbGF0ZXIgb24sIHRoZW4gY2xlYW4gdXAgdGhlIGFyZ3NcbiAgICBjb25zdCByZXFGb3JQcm94eSA9IF8ubGFzdChhcmdzKT8ucmVxRm9yUHJveHk7XG4gICAgaWYgKHJlcUZvclByb3h5KSB7XG4gICAgICBhcmdzLnBvcCgpO1xuICAgIH1cblxuXG4gICAgLy8gZmlyc3QgZG8gc29tZSBlcnJvciBjaGVja2luZy4gSWYgd2UncmUgcmVxdWVzdGluZyBhIHNlc3Npb24gY29tbWFuZCBleGVjdXRpb24sIHRoZW4gbWFrZVxuICAgIC8vIHN1cmUgdGhhdCBzZXNzaW9uIGFjdHVhbGx5IGV4aXN0cyBvbiB0aGUgc2Vzc2lvbiBkcml2ZXIsIGFuZCBzZXQgdGhlIHNlc3Npb24gZHJpdmVyIGl0c2VsZlxuICAgIGxldCBzZXNzaW9uSWQgPSBudWxsO1xuICAgIGxldCBkc3RTZXNzaW9uID0gbnVsbDtcbiAgICBsZXQgcHJvdG9jb2wgPSBudWxsO1xuICAgIC8qKiBAdHlwZSB7dGhpcyB8IEV4dGVybmFsRHJpdmVyfSAqL1xuICAgIGxldCBkcml2ZXIgPSB0aGlzO1xuICAgIGlmIChpc1Nlc3Npb25DbWQpIHtcbiAgICAgIHNlc3Npb25JZCA9IF8ubGFzdChhcmdzKTtcbiAgICAgIGRzdFNlc3Npb24gPSBhd2FpdCBzZXNzaW9uc0xpc3RHdWFyZC5hY3F1aXJlKEFwcGl1bURyaXZlci5uYW1lLCAoKSA9PiB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF0pO1xuICAgICAgaWYgKCFkc3RTZXNzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHNlc3Npb24gd2l0aCBpZCAnJHtzZXNzaW9uSWR9JyBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgfVxuICAgICAgLy8gbm93IHNhdmUgdGhlIHJlc3BvbnNlIHByb3RvY29sIGdpdmVuIHRoYXQgdGhlIHNlc3Npb24gZHJpdmVyJ3MgcHJvdG9jb2wgbWlnaHQgZGlmZmVyXG4gICAgICBwcm90b2NvbCA9IGRzdFNlc3Npb24ucHJvdG9jb2w7XG4gICAgICBpZiAoIWlzVW1icmVsbGFDbWQpIHtcbiAgICAgICAgZHJpdmVyID0gZHN0U2Vzc2lvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBnZXQgYW55IHBsdWdpbnMgd2hpY2ggYXJlIHJlZ2lzdGVyZWQgYXMgaGFuZGxpbmcgdGhpcyBjb21tYW5kXG4gICAgY29uc3QgcGx1Z2lucyA9IHRoaXMucGx1Z2luc1RvSGFuZGxlQ21kKGNtZCwgc2Vzc2lvbklkKTtcblxuICAgIC8vIG5vdyB3ZSBkZWZpbmUgYSAnY21kSGFuZGxlZEJ5JyBvYmplY3Qgd2hpY2ggd2lsbCBrZWVwIHRyYWNrIG9mIHdoaWNoIHBsdWdpbnMgaGF2ZSBoYW5kbGVkIHRoaXNcbiAgICAvLyBjb21tYW5kLiB3ZSBjYXJlIGFib3V0IHRoaXMgYmVjYXVzZSAoYSkgbXVsdGlwbGUgcGx1Z2lucyBjYW4gaGFuZGxlIHRoZSBzYW1lIGNvbW1hbmQsIGFuZFxuICAgIC8vIChiKSB0aGVyZSdzIG5vIGd1YXJhbnRlZSB0aGF0IGEgcGx1Z2luIHdpbGwgYWN0dWFsbHkgY2FsbCB0aGUgbmV4dCgpIG1ldGhvZCB3aGljaCBydW5zIHRoZVxuICAgIC8vIG9yaWdpbmFsIGNvbW1hbmQgZXhlY3V0aW9uLiBUaGlzIHJlc3VsdHMgaW4gYSBzaXR1YXRpb24gd2hlcmUgdGhlIGNvbW1hbmQgbWlnaHQgYmUgaGFuZGxlZFxuICAgIC8vIGJ5IHNvbWUgYnV0IG5vdCBhbGwgcGx1Z2lucywgb3IgYnkgcGx1Z2luKHMpIGJ1dCBub3QgYnkgdGhlIGRlZmF1bHQgYmVoYXZpb3IuIFNvIHN0YXJ0IG91dFxuICAgIC8vIHRoaXMgb2JqZWN0IGRlY2xhcmluZyB0aGF0IHRoZSBkZWZhdWx0IGhhbmRsZXIgaGFzIG5vdCBiZWVuIGV4ZWN1dGVkLlxuICAgIGNvbnN0IGNtZEhhbmRsZWRCeSA9IHtkZWZhdWx0OiBmYWxzZX07XG5cbiAgICAvLyBub3cgd2UgZGVmaW5lIGFuIGFzeW5jIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIHBsdWdpbnMsIGFuZCBzdWNjZXNzaXZlbHkgd3JhcHBlZFxuICAgIC8vIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgcGx1Z2luIHRoYXQgY2FuIGhhbmRsZSB0aGUgY29tbWFuZC4gVG8gc3RhcnQgb2ZmIHdpdGgsIHRoZSBhc3luY1xuICAgIC8vIGZ1bmN0aW9uIGlzIGRlZmluZWQgYXMgY2FsbGluZyB0aGUgZGVmYXVsdCBiZWhhdmlvciwgaS5lLiwgd2hpY2hldmVyIG9mIHRoZSAzIGNhc2VzIGFib3ZlIGlzXG4gICAgLy8gdGhlIGFwcHJvcHJpYXRlIG9uZVxuICAgIGNvbnN0IGRlZmF1bHRCZWhhdmlvciA9IGFzeW5jICgpID0+IHtcbiAgICAgIC8vIGlmIHdlJ3JlIHJ1bm5pbmcgd2l0aCBwbHVnaW5zLCBtYWtlIHN1cmUgd2UgbG9nIHRoYXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgYWN0dWFsbHlcbiAgICAgIC8vIGhhcHBlbmluZyBzbyB3ZSBjYW4gdGVsbCB3aGVuIHRoZSBwbHVnaW4gY2FsbCBjaGFpbiBpcyB1bndyYXBwaW5nIHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yXG4gICAgICAvLyBpZiB0aGF0J3Mgd2hhdCBoYXBwZW5zXG4gICAgICBwbHVnaW5zLmxlbmd0aCAmJiB0aGlzLmxvZy5pbmZvKGBFeGVjdXRpbmcgZGVmYXVsdCBoYW5kbGluZyBiZWhhdmlvciBmb3IgY29tbWFuZCAnJHtjbWR9J2ApO1xuXG4gICAgICAvLyBpZiB3ZSBtYWtlIGl0IGhlcmUsIHdlIGtub3cgdGhhdCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBoYW5kbGVkXG4gICAgICBjbWRIYW5kbGVkQnkuZGVmYXVsdCA9IHRydWU7XG5cbiAgICAgIGlmIChyZXFGb3JQcm94eSkge1xuICAgICAgICAvLyB3ZSB3b3VsZCBoYXZlIHByb3hpZWQgdGhpcyBjb21tYW5kIGhhZCBhIHBsdWdpbiBub3QgaGFuZGxlZCBpdCwgc28gdGhlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgICAgLy8gaXMgdG8gZG8gdGhlIHByb3h5IGFuZCByZXRyaWV2ZSB0aGUgcmVzdWx0IGludGVybmFsbHkgc28gaXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgcGx1Z2luXG4gICAgICAgIC8vIGluIGNhc2UgaXQgY2FsbHMgJ2F3YWl0IG5leHQoKScuIFRoaXMgcmVxdWlyZXMgdGhhdCB0aGUgZHJpdmVyIGhhdmUgZGVmaW5lZFxuICAgICAgICAvLyAncHJveHlDb21tYW5kJyBhbmQgbm90IGp1c3QgJ3Byb3h5UmVxUmVzJy5cbiAgICAgICAgaWYgKCFkc3RTZXNzaW9uLnByb3h5Q29tbWFuZCkge1xuICAgICAgICAgIHRocm93IG5ldyBOb0RyaXZlclByb3h5Q29tbWFuZEVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IGRzdFNlc3Npb24ucHJveHlDb21tYW5kKHJlcUZvclByb3h5Lm9yaWdpbmFsVXJsLCByZXFGb3JQcm94eS5tZXRob2QsXG4gICAgICAgICAgcmVxRm9yUHJveHkuYm9keSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0dldFN0YXR1cykge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRTdGF0dXMoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzVW1icmVsbGFDbWQpIHtcbiAgICAgICAgLy8gc29tZSBjb21tYW5kcywgbGlrZSBkZWxldGVTZXNzaW9uLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0byBoYW5kbGUgb24gKnRoaXMqIGRyaXZlcixcbiAgICAgICAgLy8gbm90IHRoZSBwbGF0Zm9ybSBkcml2ZXJcbiAgICAgICAgcmV0dXJuIGF3YWl0IEJhc2VEcml2ZXIucHJvdG90eXBlLmV4ZWN1dGVDb21tYW5kLmNhbGwodGhpcywgY21kLCAuLi5hcmdzKTtcbiAgICAgIH1cblxuICAgICAgLy8gaGVyZSB3ZSBrbm93IHRoYXQgd2UgYXJlIGV4ZWN1dGluZyBhIHNlc3Npb24gY29tbWFuZCwgYW5kIGhhdmUgYSB2YWxpZCBzZXNzaW9uIGRyaXZlclxuICAgICAgcmV0dXJuIGF3YWl0IGRzdFNlc3Npb24uZXhlY3V0ZUNvbW1hbmQoY21kLCAuLi5hcmdzKTtcbiAgICB9O1xuXG4gICAgLy8gbm93IHRha2Ugb3VyIGRlZmF1bHQgYmVoYXZpb3IsIHdyYXAgaXQgd2l0aCBhbnkgbnVtYmVyIG9mIHBsdWdpbiBiZWhhdmlvcnMsIGFuZCBydW4gaXRcbiAgICBjb25zdCB3cmFwcGVkQ21kID0gdGhpcy53cmFwQ29tbWFuZFdpdGhQbHVnaW5zKHtcbiAgICAgIGRyaXZlciwgY21kLCBhcmdzLCBwbHVnaW5zLCBjbWRIYW5kbGVkQnksIG5leHQ6IGRlZmF1bHRCZWhhdmlvclxuICAgIH0pO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZXhlY3V0ZVdyYXBwZWRDb21tYW5kKHt3cmFwcGVkQ21kLCBwcm90b2NvbH0pO1xuXG4gICAgLy8gaWYgd2UgaGFkIHBsdWdpbnMsIG1ha2Ugc3VyZSB0byBsb2cgb3V0IHRoZSBoZWxwZnVsIHJlcG9ydCBhYm91dCB3aGljaCBwbHVnaW5zIGVuZGVkIHVwXG4gICAgLy8gaGFuZGxpbmcgdGhlIGNvbW1hbmQgYW5kIHdoaWNoIGRpZG4ndFxuICAgIHRoaXMubG9nUGx1Z2luSGFuZGxlclJlcG9ydChwbHVnaW5zLCB7Y21kLCBjbWRIYW5kbGVkQnl9KTtcblxuICAgIC8vIEFuZCBmaW5hbGx5LCBpZiB0aGUgY29tbWFuZCB3YXMgY3JlYXRlU2Vzc2lvbiwgd2Ugd2FudCB0byBtaWdyYXRlIGFueSBwbHVnaW5zIHdoaWNoIHdlcmVcbiAgICAvLyBwcmV2aW91c2x5IHNlc3Npb25sZXNzIHRvIHVzZSB0aGUgbmV3IHNlc3Npb25JZCwgc28gdGhhdCBwbHVnaW5zIGNhbiBzaGFyZSBzdGF0ZSBiZXR3ZWVuXG4gICAgLy8gdGhlaXIgY3JlYXRlU2Vzc2lvbiBtZXRob2QgYW5kIG90aGVyIGluc3RhbmNlIG1ldGhvZHNcbiAgICBpZiAoY21kID09PSBDUkVBVEVfU0VTU0lPTl9DT01NQU5EICYmIHRoaXMuc2Vzc2lvbmxlc3NQbHVnaW5zLmxlbmd0aCAmJiAhcmVzLmVycm9yKSB7XG4gICAgICBjb25zdCBzZXNzaW9uSWQgPSBfLmZpcnN0KHJlcy52YWx1ZSk7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBQcm9tb3RpbmcgJHt0aGlzLnNlc3Npb25sZXNzUGx1Z2lucy5sZW5ndGh9IHNlc3Npb25sZXNzIHBsdWdpbnMgdG8gYmUgYXR0YWNoZWQgYCArXG4gICAgICAgIGB0byBzZXNzaW9uIElEICR7c2Vzc2lvbklkfWApO1xuICAgICAgdGhpcy5zZXNzaW9uUGx1Z2luc1tzZXNzaW9uSWRdID0gdGhpcy5zZXNzaW9ubGVzc1BsdWdpbnM7XG4gICAgICB0aGlzLnNlc3Npb25sZXNzUGx1Z2lucyA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICB3cmFwQ29tbWFuZFdpdGhQbHVnaW5zICh7ZHJpdmVyLCBjbWQsIGFyZ3MsIG5leHQsIGNtZEhhbmRsZWRCeSwgcGx1Z2luc30pIHtcbiAgICBwbHVnaW5zLmxlbmd0aCAmJiB0aGlzLmxvZy5pbmZvKGBQbHVnaW5zIHdoaWNoIGNhbiBoYW5kbGUgY21kICcke2NtZH0nOiAke3BsdWdpbnMubWFwKChwKSA9PiBwLm5hbWUpfWApO1xuXG4gICAgLy8gbm93IHdlIGNhbiBnbyB0aHJvdWdoIGVhY2ggcGx1Z2luIGFuZCB3cmFwIGBuZXh0YCBhcm91bmQgaXRzIG93biBoYW5kbGVyLCBwYXNzaW5nIHRoZSAqb2xkKlxuICAgIC8vIG5leHQgaW4gc28gdGhhdCBpdCBjYW4gY2FsbCBpdCBpZiBpdCB3YW50cyB0b1xuICAgIGZvciAoY29uc3QgcGx1Z2luIG9mIHBsdWdpbnMpIHtcbiAgICAgIC8vIG5lZWQgYW4gSUlGRSBoZXJlIGJlY2F1c2Ugd2Ugd2FudCB0aGUgdmFsdWUgb2YgbmV4dCB0aGF0J3MgcGFzc2VkIHRvIHBsdWdpbi5oYW5kbGUgdG8gYmVcbiAgICAgIC8vIGV4YWN0bHkgdGhlIHZhbHVlIG9mIG5leHQgaGVyZSBiZWZvcmUgcmVhc3NpZ25tZW50OyB3ZSBkb24ndCB3YW50IGl0IHRvIGJlIGxhemlseVxuICAgICAgLy8gZXZhbHVhdGVkLCBvdGhlcndpc2Ugd2UgZW5kIHVwIHdpdGggaW5maW5pdGUgcmVjdXJzaW9uIG9mIHRoZSBsYXN0IGBuZXh0YCB0byBiZSBkZWZpbmVkLlxuICAgICAgY21kSGFuZGxlZEJ5W3BsdWdpbi5uYW1lXSA9IGZhbHNlOyAvLyB3ZSBzZWUgYSBuZXcgcGx1Z2luLCBzbyBhZGQgaXQgdG8gdGhlICdjbWRIYW5kbGVkQnknIG9iamVjdFxuICAgICAgbmV4dCA9ICgoX25leHQpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgUGx1Z2luICR7cGx1Z2luLm5hbWV9IGlzIG5vdyBoYW5kbGluZyBjbWQgJyR7Y21kfSdgKTtcbiAgICAgICAgY21kSGFuZGxlZEJ5W3BsdWdpbi5uYW1lXSA9IHRydWU7IC8vIGlmIHdlIG1ha2UgaXQgaGVyZSwgdGhpcyBwbHVnaW4gaGFzIGF0dGVtcHRlZCB0byBoYW5kbGUgY21kXG4gICAgICAgIC8vIGZpcnN0IGF0dGVtcHQgdG8gaGFuZGxlIHRoZSBjb21tYW5kIHZpYSBhIGNvbW1hbmQtc3BlY2lmaWMgaGFuZGxlciBvbiB0aGUgcGx1Z2luXG4gICAgICAgIGlmIChwbHVnaW5bY21kXSkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBwbHVnaW5bY21kXShfbmV4dCwgZHJpdmVyLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBvdGhlcndpc2UsIGNhbGwgdGhlIGdlbmVyaWMgJ2hhbmRsZScgbWV0aG9kXG4gICAgICAgIHJldHVybiBhd2FpdCBwbHVnaW4uaGFuZGxlKF9uZXh0LCBkcml2ZXIsIGNtZCwgLi4uYXJncyk7XG4gICAgICB9KShuZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dDtcbiAgfVxuXG4gIGxvZ1BsdWdpbkhhbmRsZXJSZXBvcnQgKHBsdWdpbnMsIHtjbWQsIGNtZEhhbmRsZWRCeX0pIHtcbiAgICBpZiAoIXBsdWdpbnMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgZGF5LCB3ZSBoYXZlIGFuIG9iamVjdCByZXByZXNlbnRpbmcgd2hpY2ggcGx1Z2lucyBlbmRlZCB1cCBnZXR0aW5nXG4gICAgLy8gdGhlaXIgY29kZSBydW4gYXMgcGFydCBvZiBoYW5kbGluZyB0aGlzIGNvbW1hbmQuIEJlY2F1c2UgcGx1Z2lucyBjYW4gY2hvb3NlICpub3QqIHRvXG4gICAgLy8gcGFzcyBjb250cm9sIHRvIG90aGVyIHBsdWdpbnMgb3IgdG8gdGhlIGRlZmF1bHQgZHJpdmVyIGJlaGF2aW9yLCB0aGlzIGlzIGluZm9ybWF0aW9uXG4gICAgLy8gd2hpY2ggaXMgcHJvYmFibHkgdXNlZnVsIHRvIHRoZSB1c2VyIChlc3BlY2lhbGx5IGluIHNpdHVhdGlvbnMgd2hlcmUgcGx1Z2lucyBtaWdodCBub3RcbiAgICAvLyBpbnRlcmFjdCB3ZWxsIHRvZ2V0aGVyLCBhbmQgaXQgd291bGQgYmUgaGFyZCB0byBkZWJ1ZyBvdGhlcndpc2Ugd2l0aG91dCB0aGlzIGtpbmQgb2ZcbiAgICAvLyBtZXNzYWdlKS5cbiAgICBjb25zdCBkaWRIYW5kbGUgPSBPYmplY3Qua2V5cyhjbWRIYW5kbGVkQnkpLmZpbHRlcigoaykgPT4gY21kSGFuZGxlZEJ5W2tdKTtcbiAgICBjb25zdCBkaWRudEhhbmRsZSA9IE9iamVjdC5rZXlzKGNtZEhhbmRsZWRCeSkuZmlsdGVyKChrKSA9PiAhY21kSGFuZGxlZEJ5W2tdKTtcbiAgICBpZiAoZGlkbnRIYW5kbGUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2cuaW5mbyhgQ29tbWFuZCAnJHtjbWR9JyB3YXMgKm5vdCogaGFuZGxlZCBieSB0aGUgZm9sbG93aW5nIGJlaGF2aW91cnMgb3IgcGx1Z2lucywgZXZlbiBgICtcbiAgICAgICAgYHRob3VnaCB0aGV5IHdlcmUgcmVnaXN0ZXJlZCB0byBoYW5kbGUgaXQ6ICR7SlNPTi5zdHJpbmdpZnkoZGlkbnRIYW5kbGUpfS4gVGhlIGAgK1xuICAgICAgICBgY29tbWFuZCAqd2FzKiBoYW5kbGVkIGJ5IHRoZXNlOiAke0pTT04uc3RyaW5naWZ5KGRpZEhhbmRsZSl9LmApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVXcmFwcGVkQ29tbWFuZCAoe3dyYXBwZWRDbWQsIHByb3RvY29sfSkge1xuICAgIGxldCBjbWRSZXMsIGNtZEVyciwgcmVzID0ge307XG4gICAgdHJ5IHtcbiAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGB3cmFwcGVkQ21kYCBkZWZpbmVzIGEgd2hvbGUgc2VxdWVuY2Ugb2YgcGx1Z2luIGhhbmRsZXJzLCBjdWxtaW5hdGluZyBpblxuICAgICAgLy8gb3VyIGRlZmF1bHQgaGFuZGxlci4gV2hhdGV2ZXIgaXQgcmV0dXJucyBpcyB3aGF0IHdlJ3JlIGdvaW5nIHRvIHdhbnQgdG8gc2VuZCBiYWNrIHRvIHRoZVxuICAgICAgLy8gdXNlci5cbiAgICAgIGNtZFJlcyA9IGF3YWl0IHdyYXBwZWRDbWQoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjbWRFcnIgPSBlO1xuICAgIH1cblxuICAgIC8vIFNhZGx5LCB3ZSBkb24ndCBrbm93IGV4YWN0bHkgd2hhdCBraW5kIG9mIG9iamVjdCB3aWxsIGJlIHJldHVybmVkLiBJdCB3aWxsIGVpdGhlciBiZSBhIGJhcmVcbiAgICAvLyBvYmplY3QsIG9yIGEgcHJvdG9jb2wtYXdhcmUgb2JqZWN0IHdpdGggcHJvdG9jb2wgYW5kIGVycm9yL3ZhbHVlIGtleXMuIFNvIHdlIG5lZWQgdG8gc25pZmZcbiAgICAvLyBpdCBhbmQgbWFrZSBzdXJlIHdlIGRvbid0IGRvdWJsZS13cmFwIGl0IGlmIGl0J3MgdGhlIGxhdHRlciBraW5kLlxuICAgIGlmIChfLmlzUGxhaW5PYmplY3QoY21kUmVzKSAmJiBfLmhhcyhjbWRSZXMsICdwcm90b2NvbCcpKSB7XG4gICAgICByZXMgPSBjbWRSZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcy52YWx1ZSA9IGNtZFJlcztcbiAgICAgIHJlcy5lcnJvciA9IGNtZEVycjtcbiAgICAgIHJlcy5wcm90b2NvbCA9IHByb3RvY29sO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHJveHlBY3RpdmUgKHNlc3Npb25JZCkge1xuICAgIGNvbnN0IGRzdFNlc3Npb24gPSB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgcmV0dXJuIGRzdFNlc3Npb24gJiYgXy5pc0Z1bmN0aW9uKGRzdFNlc3Npb24ucHJveHlBY3RpdmUpICYmIGRzdFNlc3Npb24ucHJveHlBY3RpdmUoc2Vzc2lvbklkKTtcbiAgfVxuXG4gIGdldFByb3h5QXZvaWRMaXN0IChzZXNzaW9uSWQpIHtcbiAgICBjb25zdCBkc3RTZXNzaW9uID0gdGhpcy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIHJldHVybiBkc3RTZXNzaW9uID8gZHN0U2Vzc2lvbi5nZXRQcm94eUF2b2lkTGlzdCgpIDogW107XG4gIH1cblxuICBjYW5Qcm94eSAoc2Vzc2lvbklkKSB7XG4gICAgY29uc3QgZHN0U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICByZXR1cm4gZHN0U2Vzc2lvbiAmJiBkc3RTZXNzaW9uLmNhblByb3h5KHNlc3Npb25JZCk7XG4gIH1cbn1cblxuLy8gaGVscCBkZWNpZGUgd2hpY2ggY29tbWFuZHMgc2hvdWxkIGJlIHByb3hpZWQgdG8gc3ViLWRyaXZlcnMgYW5kIHdoaWNoXG4vLyBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGlzLCBvdXIgdW1icmVsbGEgZHJpdmVyXG5mdW5jdGlvbiBpc0FwcGl1bURyaXZlckNvbW1hbmQgKGNtZCkge1xuICByZXR1cm4gIWlzU2Vzc2lvbkNvbW1hbmQoY21kKSB8fCBjbWQgPT09ICdkZWxldGVTZXNzaW9uJztcbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBBcHBpdW0gdHJpZWQgdG8gcHJveHkgYSBjb21tYW5kIHVzaW5nIGEgZHJpdmVyJ3MgYHByb3h5Q29tbWFuZGAgbWV0aG9kIGJ1dCB0aGVcbiAqIG1ldGhvZCBkaWQgbm90IGV4aXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBOb0RyaXZlclByb3h5Q29tbWFuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQHR5cGUge1JlYWRvbmx5PHN0cmluZz59XG4gICAqL1xuICBjb2RlID0gJ0FQUElVTUVSUl9OT19EUklWRVJfUFJPWFlDT01NQU5EJztcblxuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgc3VwZXIoYFRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciB0aGlzIGNvbW1hbmQgd2FzIHRvIHByb3h5LCBidXQgdGhlIGRyaXZlciBgICtcbiAgICAgICAgICBgZGlkIG5vdCBoYXZlIHRoZSAncHJveHlDb21tYW5kJyBtZXRob2QgZGVmaW5lZC4gVG8gZnVsbHkgc3VwcG9ydCBgICtcbiAgICAgICAgICBgcGx1Z2lucywgZHJpdmVycyBzaG91bGQgaGF2ZSAncHJveHlDb21tYW5kJyBzZXQgdG8gYSBqd3BQcm94eSBvYmplY3QncyBgICtcbiAgICAgICAgICBgJ2NvbW1hbmQoKScgbWV0aG9kLCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsICdwcm94eVJlcVJlcydgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBBcHBpdW1Ecml2ZXIgfTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXh0ZXJuYWxEcml2ZXJ9IEV4dGVybmFsRHJpdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVzNDQ2FwYWJpbGl0aWVzfSBXM0NDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJEYXRhfSBEcml2ZXJEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyT3B0c30gRHJpdmVyT3B0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNvbnN0cmFpbnRzfSBDb25zdHJhaW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkFwcGl1bVNlcnZlcn0gQXBwaXVtU2VydmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcycpLkV4dGVuc2lvblR5cGV9IEV4dGVuc2lvblR5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzL2V4dGVuc2lvbicpLlBsdWdpbkNsYXNzfSBQbHVnaW5DbGFzc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9leHRlbnNpb24vZHJpdmVyLWNvbmZpZycpLkRyaXZlckNvbmZpZ30gRHJpdmVyQ29uZmlnXG4gKi9cblxuLyoqXG4gKiBVc2VkIGJ5IHtAbGlua2NvZGUgQXBwaXVtRHJpdmVyLmNyZWF0ZVNlc3Npb259IGFuZCB7QGxpbmtjb2RlIEFwcGl1bURyaXZlci5kZWxldGVTZXNzaW9ufSB0byBkZXNjcmliZVxuICogcmVzdWx0LlxuICogQHRlbXBsYXRlIFZcbiAqIEB0eXBlZGVmIFNlc3Npb25IYW5kbGVyUmVzdWx0XG4gKiBAcHJvcGVydHkge1Z9IFt2YWx1ZV1cbiAqIEBwcm9wZXJ0eSB7RXJyb3J9IFtlcnJvcl1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcHJvdG9jb2xdXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2Vzc2lvbkhhbmRsZXI8U2Vzc2lvbkhhbmRsZXJSZXN1bHQ8YW55W10+LFNlc3Npb25IYW5kbGVyUmVzdWx0PHZvaWQ+Pn0gU2Vzc2lvbkhhbmRsZXJcbiAqL1xuIl19
|
|
565
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9hcHBpdW0uanMiXSwibmFtZXMiOlsiZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyIsIk9iamVjdCIsImZyZWV6ZSIsImF1dG9tYXRpb25OYW1lIiwicHJlc2VuY2UiLCJpc1N0cmluZyIsInBsYXRmb3JtTmFtZSIsInNlc3Npb25zTGlzdEd1YXJkIiwiQXN5bmNMb2NrIiwicGVuZGluZ0RyaXZlcnNHdWFyZCIsIkFwcGl1bURyaXZlciIsIkRyaXZlckNvcmUiLCJzZXNzaW9ucyIsInBlbmRpbmdEcml2ZXJzIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsInBsdWdpbkNsYXNzZXMiLCJzZXNzaW9uUGx1Z2lucyIsInNlc3Npb25sZXNzUGx1Z2lucyIsImRyaXZlckNvbmZpZyIsInNlcnZlciIsImNvbnN0cnVjdG9yIiwib3B0cyIsInRtcERpciIsInByb2Nlc3MiLCJlbnYiLCJBUFBJVU1fVE1QX0RJUiIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsImFyZ3MiLCJjYXRjaCIsImVyciIsImxvZyIsImRlYnVnIiwiX2xvZyIsImluc3RhbmNlTmFtZSIsIm5hbWUiLCJub2RlIiwiZ2V0T2JqZWN0SWQiLCJzdWJzdHJpbmciLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJpc0NvbW1hbmRzUXVldWVFbmFibGVkIiwic2Vzc2lvbkV4aXN0cyIsInNlc3Npb25JZCIsImRzdFNlc3Npb24iLCJkcml2ZXJGb3JTZXNzaW9uIiwiZ2V0U3RhdHVzIiwiYnVpbGQiLCJfIiwiY2xvbmUiLCJnZXRTZXNzaW9ucyIsInRvUGFpcnMiLCJtYXAiLCJpZCIsImRyaXZlciIsImNhcGFiaWxpdGllcyIsImNhcHMiLCJwcmludE5ld1Nlc3Npb25Bbm5vdW5jZW1lbnQiLCJkcml2ZXJOYW1lIiwiZHJpdmVyVmVyc2lvbiIsImRyaXZlckJhc2VWZXJzaW9uIiwiaW5mbyIsIkFQUElVTV9WRVIiLCJiYXNlVmVyc2lvbiIsImFzc2lnbkNsaUFyZ3NUb0V4dGVuc2lvbiIsImV4dFR5cGUiLCJleHROYW1lIiwiZXh0SW5zdGFuY2UiLCJhbGxDbGlBcmdzRm9yRXh0IiwiaXNFbXB0eSIsImRlZmF1bHRzIiwiY2xpQXJncyIsIm9taXRCeSIsInZhbHVlIiwia2V5IiwiaXNFcXVhbCIsImNyZWF0ZVNlc3Npb24iLCJqc29ud3BDYXBzIiwicmVxQ2FwcyIsInczY0NhcGFiaWxpdGllcyIsImRyaXZlckRhdGEiLCJkZWZhdWx0Q2FwYWJpbGl0aWVzIiwiY2xvbmVEZWVwIiwiZGVmYXVsdFNldHRpbmdzIiwiandwU2V0dGluZ3MiLCJ3M2NTZXR0aW5ncyIsImFsd2F5c01hdGNoIiwiZmlyc3RNYXRjaEVudHJ5IiwiZmlyc3RNYXRjaCIsImFzc2lnbiIsInByb3RvY29sIiwiaW5uZXJTZXNzaW9uSWQiLCJkQ2FwcyIsInBhcnNlZENhcHMiLCJkZXNpcmVkQ2FwcyIsInByb2Nlc3NlZEpzb253cENhcGFiaWxpdGllcyIsInByb2Nlc3NlZFczQ0NhcGFiaWxpdGllcyIsImVycm9yIiwiSW5uZXJEcml2ZXIiLCJ2ZXJzaW9uIiwiZmluZE1hdGNoaW5nRHJpdmVyIiwic2Vzc2lvbk92ZXJyaWRlIiwiZGVsZXRlQWxsU2Vzc2lvbnMiLCJydW5uaW5nRHJpdmVyc0RhdGEiLCJvdGhlclBlbmRpbmdEcml2ZXJzRGF0YSIsImRyaXZlckluc3RhbmNlIiwicmVsYXhlZFNlY3VyaXR5RW5hYmxlZCIsImRlbnlJbnNlY3VyZSIsImEiLCJhbGxvd0luc2VjdXJlIiwiYXNzaWduU2VydmVyIiwiYWRkcmVzcyIsInBvcnQiLCJiYXNlUGF0aCIsImN1clNlc3Npb25EYXRhRm9yRHJpdmVyIiwiZSIsImVycm9ycyIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJtZXNzYWdlIiwiYWNxdWlyZSIsImNvbXBhY3QiLCJkcnYiLCJwdXNoIiwicHVsbCIsImF0dGFjaFVuZXhwZWN0ZWRTaHV0ZG93bkhhbmRsZXIiLCJzdGFydE5ld0NvbW1hbmRUaW1lb3V0IiwiaXNXM0NQcm90b2NvbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1cGRhdGVTZXR0aW5ncyIsImlzTWpzb253cFByb3RvY29sIiwib25TaHV0ZG93biIsImNhdXNlIiwiRXJyb3IiLCJ3YXJuIiwicGx1Z2luIiwiaXNGdW5jdGlvbiIsIm9uVW5leHBlY3RlZFNodXRkb3duIiwiZGF0YSIsInZhbHVlcyIsImZpbHRlciIsInMiLCJkYXR1bSIsImRlbGV0ZVNlc3Npb24iLCJvdGhlclNlc3Npb25zRGF0YSIsImN1ckNvbnN0cnVjdG9yTmFtZSIsInNlc3Npb25zQ291bnQiLCJzaXplIiwiZm9yY2UiLCJyZWFzb24iLCJ1dGlsIiwicGx1cmFsaXplIiwiY2xlYW51cFByb21pc2VzIiwic3RhcnRVbmV4cGVjdGVkU2h1dGRvd24iLCJrZXlzIiwiY2xlYW51cFByb21pc2UiLCJwbHVnaW5zRm9yU2Vzc2lvbiIsImNyZWF0ZVBsdWdpbkluc3RhbmNlcyIsInBsdWdpbnNUb0hhbmRsZUNtZCIsImNtZCIsInAiLCJoYW5kbGUiLCJQbHVnaW5DbGFzcyIsInBsdWdpbk5hbWUiLCJleGVjdXRlQ29tbWFuZCIsImlzR2V0U3RhdHVzIiwiR0VUX1NUQVRVU19DT01NQU5EIiwiaXNVbWJyZWxsYUNtZCIsImlzQXBwaXVtRHJpdmVyQ29tbWFuZCIsImlzU2Vzc2lvbkNtZCIsInJlcUZvclByb3h5IiwibGFzdCIsInBvcCIsInBsdWdpbnMiLCJjbWRIYW5kbGVkQnkiLCJkZWZhdWx0IiwiZGVmYXVsdEJlaGF2aW9yIiwibGVuZ3RoIiwicHJveHlDb21tYW5kIiwiTm9Ecml2ZXJQcm94eUNvbW1hbmRFcnJvciIsIm9yaWdpbmFsVXJsIiwibWV0aG9kIiwiYm9keSIsIkJhc2VEcml2ZXIiLCJwcm90b3R5cGUiLCJjYWxsIiwid3JhcHBlZENtZCIsIndyYXBDb21tYW5kV2l0aFBsdWdpbnMiLCJuZXh0IiwicmVzIiwiZXhlY3V0ZVdyYXBwZWRDb21tYW5kIiwibG9nUGx1Z2luSGFuZGxlclJlcG9ydCIsIkNSRUFURV9TRVNTSU9OX0NPTU1BTkQiLCJmaXJzdCIsIl9uZXh0IiwiZGlkSGFuZGxlIiwiayIsImRpZG50SGFuZGxlIiwiY21kUmVzIiwiY21kRXJyIiwiaXNQbGFpbk9iamVjdCIsImhhcyIsInByb3h5QWN0aXZlIiwiZ2V0UHJveHlBdm9pZExpc3QiLCJjYW5Qcm94eSIsIkRFTEVURV9TRVNTSU9OX0NPTU1BTkQiLCJjb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOztBQUNBOztBQUNBOztBQU1BLE1BQU1BLDRCQUE0QixHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUNqREMsRUFBQUEsY0FBYyxFQUFFO0FBQ2RDLElBQUFBLFFBQVEsRUFBRSxJQURJO0FBRWRDLElBQUFBLFFBQVEsRUFBRTtBQUZJLEdBRGlDO0FBS2pEQyxFQUFBQSxZQUFZLEVBQUU7QUFDWkYsSUFBQUEsUUFBUSxFQUFFLElBREU7QUFFWkMsSUFBQUEsUUFBUSxFQUFFO0FBRkU7QUFMbUMsQ0FBZCxDQUFyQztBQVdBLE1BQU1FLGlCQUFpQixHQUFHLElBQUlDLGtCQUFKLEVBQTFCO0FBQ0EsTUFBTUMsbUJBQW1CLEdBQUcsSUFBSUQsa0JBQUosRUFBNUI7O0FBS0EsTUFBTUUsWUFBTixTQUEyQkMsc0JBQTNCLENBQXNDO0FBT3BDQyxFQUFBQSxRQUFRLEdBQUcsRUFBSDtBQVFSQyxFQUFBQSxjQUFjLEdBQUcsRUFBSDtBQU9kQyxFQUFBQSxtQkFBbUIsR0FBRyxDQUFIO0FBTW5CQyxFQUFBQSxhQUFhLEdBQUcsRUFBSDtBQU1iQyxFQUFBQSxjQUFjLEdBQUcsRUFBSDtBQU1kQyxFQUFBQSxrQkFBa0IsR0FBRyxFQUFIO0FBR2xCQyxFQUFBQSxZQUFZO0FBR1pDLEVBQUFBLE1BQU07O0FBS05DLEVBQUFBLFdBQVcsQ0FBRUMsSUFBRixFQUFRO0FBS2pCLFFBQUlBLElBQUksQ0FBQ0MsTUFBVCxFQUFpQjtBQUNmQyxNQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsY0FBWixHQUE2QkosSUFBSSxDQUFDQyxNQUFsQztBQUNEOztBQUVELFVBQU1E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QmpLLFNBQXBCLENBQXJCO0FBQ0Q7O0FBbHFCbUM7Ozs7QUF1cUJ0QyxTQUFTNkgscUJBQVQsQ0FBZ0NULEdBQWhDLEVBQXFDO0FBQ25DLFNBQU8sQ0FBQyxrQ0FBaUJBLEdBQWpCLENBQUQsSUFBMEJBLEdBQUcsS0FBSzhDLGtDQUF6QztBQUNEOztBQU1NLE1BQU0xQix5QkFBTixTQUF3QzlDLEtBQXhDLENBQThDO0FBSW5EeUUsRUFBQUEsSUFBSSxHQUFHLGtDQUFIOztBQUVKekwsRUFBQUEsV0FBVyxHQUFJO0FBQ2IsVUFBTyxxRUFBRCxHQUNDLG1FQURELEdBRUMseUVBRkQsR0FHQyw2REFIUDtBQUlEOztBQVhrRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZ2V0QnVpbGRJbmZvLCB1cGRhdGVCdWlsZEluZm8sIEFQUElVTV9WRVIgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBCYXNlRHJpdmVyLCBEcml2ZXJDb3JlLCBlcnJvcnMsIGlzU2Vzc2lvbkNvbW1hbmQsXG4gICAgICAgICBDUkVBVEVfU0VTU0lPTl9DT01NQU5ELCBERUxFVEVfU0VTU0lPTl9DT01NQU5ELCBHRVRfU1RBVFVTX0NPTU1BTkRcbn0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQgQXN5bmNMb2NrIGZyb20gJ2FzeW5jLWxvY2snO1xuaW1wb3J0IHsgcGFyc2VDYXBzRm9ySW5uZXJEcml2ZXIsIHB1bGxTZXR0aW5ncyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXRpbCwgbm9kZSwgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IGdldERlZmF1bHRzRm9yRXh0ZW5zaW9uIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG4vKipcbiAqIEludmFyaWFudCBzZXQgb2YgYmFzZSBjb25zdHJhaW50c1xuICogQHR5cGUge1JlYWRvbmx5PENvbnN0cmFpbnRzPn1cbiAqL1xuY29uc3QgZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyA9IE9iamVjdC5mcmVlemUoe1xuICBhdXRvbWF0aW9uTmFtZToge1xuICAgIHByZXNlbmNlOiB0cnVlLFxuICAgIGlzU3RyaW5nOiB0cnVlLFxuICB9LFxuICBwbGF0Zm9ybU5hbWU6IHtcbiAgICBwcmVzZW5jZTogdHJ1ZSxcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgfSxcbn0pO1xuXG5jb25zdCBzZXNzaW9uc0xpc3RHdWFyZCA9IG5ldyBBc3luY0xvY2soKTtcbmNvbnN0IHBlbmRpbmdEcml2ZXJzR3VhcmQgPSBuZXcgQXN5bmNMb2NrKCk7XG5cbi8qKlxuICogQGltcGxlbWVudHMge1Nlc3Npb25IYW5kbGVyfVxuICovXG5jbGFzcyBBcHBpdW1Ecml2ZXIgZXh0ZW5kcyBEcml2ZXJDb3JlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0byBzZXNzaW9ucyBsaXN0IG11c3QgYmUgZ3VhcmRlZCB3aXRoIGEgU2VtYXBob3JlLCBiZWNhdXNlXG4gICAqIGl0IG1pZ2h0IGJlIGNoYW5nZWQgYnkgb3RoZXIgYXN5bmMgY2FsbHMgYXQgYW55IHRpbWVcbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFjY2VzcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5IGZyb20gdGhlIG91dHNpZGVcbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsRXh0ZXJuYWxEcml2ZXI+fVxuICAgKi9cbiAgc2Vzc2lvbnMgPSB7fTtcblxuICAvKipcbiAgICogQWNjZXNzIHRvIHBlbmRpbmcgZHJpdmVycyBsaXN0IG11c3QgYmUgZ3VhcmRlZCB3aXRoIGEgU2VtYXBob3JlLCBiZWNhdXNlXG4gICAqIGl0IG1pZ2h0IGJlIGNoYW5nZWQgYnkgb3RoZXIgYXN5bmMgY2FsbHMgYXQgYW55IHRpbWVcbiAgICogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFjY2VzcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5IGZyb20gdGhlIG91dHNpZGVcbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsRXh0ZXJuYWxEcml2ZXJbXT59XG4gICAqL1xuICBwZW5kaW5nRHJpdmVycyA9IHt9O1xuXG4gIC8qKlxuICAgKiBOb3RlIHRoYXQge0BsaW5rY29kZSBBcHBpdW1Ecml2ZXJ9IGhhcyBubyBgbmV3Q29tbWFuZFRpbWVvdXRgIG1ldGhvZC5cbiAgICogYEFwcGl1bURyaXZlcmAgZG9lcyBub3Qgc2V0IGFuZCBvYnNlcnZlIGl0cyBvd24gdGltZW91dHM7IGluZGl2aWR1YWxcbiAgICogc2Vzc2lvbnMgKG1hbmFnZWQgZHJpdmVycykgZG8gaW5zdGVhZC5cbiAgICovXG4gIG5ld0NvbW1hbmRUaW1lb3V0TXMgPSAwO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFjdGl2ZSBwbHVnaW5zXG4gICAqIEB0eXBlIHtQbHVnaW5DbGFzc1tdfVxuICAgKi9cbiAgcGx1Z2luQ2xhc3NlcyA9IFtdO1xuXG4gIC8qKlxuICAgKiBtYXAgb2Ygc2Vzc2lvbnMgdG8gYWN0dWFsIHBsdWdpbiBpbnN0YW5jZXMgcGVyIHNlc3Npb25cbiAgICogQHR5cGUge1JlY29yZDxzdHJpbmcsSW5zdGFuY2VUeXBlPFBsdWdpbkNsYXNzPltdPn1cbiAgICovXG4gIHNlc3Npb25QbHVnaW5zID0ge307XG5cbiAgLyoqXG4gICAqIHNvbWUgY29tbWFuZHMgYXJlIHNlc3Npb25sZXNzLCBzbyB3ZSBuZWVkIGEgc2V0IG9mIHBsdWdpbnMgZm9yIHRoZW1cbiAgICogQHR5cGUge0luc3RhbmNlVHlwZTxQbHVnaW5DbGFzcz5bXX1cbiAgICovXG4gIHNlc3Npb25sZXNzUGx1Z2lucyA9IFtdOztcblxuICAvKiogQHR5cGUge0RyaXZlckNvbmZpZ30gKi9cbiAgZHJpdmVyQ29uZmlnO1xuXG4gIC8qKiBAdHlwZSB7QXBwaXVtU2VydmVyfSAqL1xuICBzZXJ2ZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RHJpdmVyT3B0c30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMpIHtcbiAgICAvLyBJdCBpcyBuZWNlc3NhcnkgdG8gc2V0IGAtLXRtcGAgaGVyZSBzaW5jZSBpdCBzaG91bGQgYmUgc2V0IHRvXG4gICAgLy8gcHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVIgb25jZSBhdCBhbiBpbml0aWFsIHBvaW50IGluIHRoZSBBcHBpdW0gbGlmZWN5Y2xlLlxuICAgIC8vIFRoZSBwcm9jZXNzIGFyZ3VtZW50IHdpbGwgYmUgcmVmZXJlbmNlZCBieSBCYXNlRHJpdmVyLlxuICAgIC8vIFBsZWFzZSBjYWxsIEBhcHBpdW0vc3VwcG9ydC50ZW1wRGlyIG1vZHVsZSB0byBhcHBseSB0aGlzIGJlbmVmaXQuXG4gICAgaWYgKG9wdHMudG1wRGlyKSB7XG4gICAgICBwcm9jZXNzLmVudi5BUFBJVU1fVE1QX0RJUiA9IG9wdHMudG1wRGlyO1xuICAgIH1cblxuICAgIHN1cGVyKG9wdHMpO1xuXG4gICAgdGhpcy5kZXNpcmVkQ2FwQ29uc3RyYWludHMgPSBkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzO1xuXG4gICAgdGhpcy5hcmdzID0gey4uLm9wdHN9O1xuXG4gICAgLy8gYWxsb3cgdGhpcyB0byBoYXBwZW4gaW4gdGhlIGJhY2tncm91bmQsIHNvIG5vIGBhd2FpdGBcbiAgICAvLyBjYXRjaCB0aGlzIHRvIGF2b2lkIGFuIHVuaGFuZGxlZCByZWplY3Rpb25cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tdGhlbixwcm9taXNlL3ByZWZlci1hd2FpdC10by1jYWxsYmFja3NcbiAgICB1cGRhdGVCdWlsZEluZm8oKS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhlcnIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBsb2dnZXIgaW5zdGFuY2UgZm9yIHRoZSBjdXJyZW50IHVtYnJlbGxhIGRyaXZlciBpbnN0YW5jZVxuICAgKi9cbiAgZ2V0IGxvZyAoKSB7XG4gICAgaWYgKCF0aGlzLl9sb2cpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlTmFtZSA9IGAke3RoaXMuY29uc3RydWN0b3IubmFtZX1AJHtub2RlLmdldE9iamVjdElkKHRoaXMpLnN1YnN0cmluZygwLCA0KX1gO1xuICAgICAgdGhpcy5fbG9nID0gbG9nZ2VyLmdldExvZ2dlcihpbnN0YW5jZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbG9nO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbCBjb21tYW5kcyBxdWV1ZWluZyBmb3IgdGhlIHVtYnJlbGxhIEFwcGl1bSBkcml2ZXJcbiAgICovXG4gIGdldCBpc0NvbW1hbmRzUXVldWVFbmFibGVkICgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXNzaW9uRXhpc3RzIChzZXNzaW9uSWQpIHtcbiAgICBjb25zdCBkc3RTZXNzaW9uID0gdGhpcy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIHJldHVybiBkc3RTZXNzaW9uICYmIGRzdFNlc3Npb24uc2Vzc2lvbklkICE9PSBudWxsO1xuICB9XG5cbiAgZHJpdmVyRm9yU2Vzc2lvbiAoc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgfVxuXG4gIGFzeW5jIGdldFN0YXR1cyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIHJldHVybiB7XG4gICAgICBidWlsZDogXy5jbG9uZShnZXRCdWlsZEluZm8oKSksXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGdldFNlc3Npb25zICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgcmV0dXJuIF8udG9QYWlycyh0aGlzLnNlc3Npb25zKVxuICAgICAgLm1hcCgoW2lkLCBkcml2ZXJdKSA9PiAoe2lkLCBjYXBhYmlsaXRpZXM6IGRyaXZlci5jYXBzfSkpO1xuICB9XG5cbiAgcHJpbnROZXdTZXNzaW9uQW5ub3VuY2VtZW50IChkcml2ZXJOYW1lLCBkcml2ZXJWZXJzaW9uLCBkcml2ZXJCYXNlVmVyc2lvbikge1xuICAgIHRoaXMubG9nLmluZm8oZHJpdmVyVmVyc2lvblxuICAgICAgPyBgQXBwaXVtIHYke0FQUElVTV9WRVJ9IGNyZWF0aW5nIG5ldyAke2RyaXZlck5hbWV9ICh2JHtkcml2ZXJWZXJzaW9ufSkgc2Vzc2lvbmBcbiAgICAgIDogYEFwcGl1bSB2JHtBUFBJVU1fVkVSfSBjcmVhdGluZyBuZXcgJHtkcml2ZXJOYW1lfSBzZXNzaW9uYFxuICAgICk7XG4gICAgdGhpcy5sb2cuaW5mbyhgQ2hlY2tpbmcgQmFzZURyaXZlciB2ZXJzaW9ucyBmb3IgQXBwaXVtIGFuZCAke2RyaXZlck5hbWV9YCk7XG4gICAgdGhpcy5sb2cuaW5mbyhBcHBpdW1Ecml2ZXIuYmFzZVZlcnNpb25cbiAgICAgID8gYEFwcGl1bSdzIEJhc2VEcml2ZXIgdmVyc2lvbiBpcyAke0FwcGl1bURyaXZlci5iYXNlVmVyc2lvbn1gXG4gICAgICA6IGBDb3VsZCBub3QgZGV0ZXJtaW5lIEFwcGl1bSdzIEJhc2VEcml2ZXIgdmVyc2lvbmBcbiAgICApO1xuICAgIHRoaXMubG9nLmluZm8oZHJpdmVyQmFzZVZlcnNpb25cbiAgICAgID8gYCR7ZHJpdmVyTmFtZX0ncyBCYXNlRHJpdmVyIHZlcnNpb24gaXMgJHtkcml2ZXJCYXNlVmVyc2lvbn1gXG4gICAgICA6IGBDb3VsZCBub3QgZGV0ZXJtaW5lICR7ZHJpdmVyTmFtZX0ncyBCYXNlRHJpdmVyIHZlcnNpb25gXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhbmQgYXNzaWduIENMSSBhcmdzIGZvciBhIGRyaXZlciBvciBwbHVnaW5cbiAgICpcbiAgICogSWYgdGhlIGV4dGVuc2lvbiBoYXMgcHJvdmlkZWQgYSBzY2hlbWEsIHZhbGlkYXRpb24gaGFzIGFscmVhZHkgaGFwcGVuZWQuXG4gICAqXG4gICAqIEFueSBhcmcgd2hpY2ggaXMgZXF1YWwgdG8gaXRzIGRlZmF1bHQgdmFsdWUgd2lsbCBub3QgYmUgYXNzaWduZWQgdG8gdGhlIGV4dGVuc2lvbi5cbiAgICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSBleHRUeXBlICdkcml2ZXInIG9yICdwbHVnaW4nXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHROYW1lIHRoZSBuYW1lIG9mIHRoZSBleHRlbnNpb25cbiAgICogQHBhcmFtIHtPYmplY3R9IGV4dEluc3RhbmNlIHRoZSBkcml2ZXIgb3IgcGx1Z2luIGluc3RhbmNlXG4gICAqL1xuICBhc3NpZ25DbGlBcmdzVG9FeHRlbnNpb24gKGV4dFR5cGUsIGV4dE5hbWUsIGV4dEluc3RhbmNlKSB7XG4gICAgY29uc3QgYWxsQ2xpQXJnc0ZvckV4dCA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZyx1bmtub3duPnx1bmRlZmluZWR9ICovKHRoaXMuYXJnc1tleHRUeXBlXT8uW2V4dE5hbWVdKTtcbiAgICBpZiAoIV8uaXNFbXB0eShhbGxDbGlBcmdzRm9yRXh0KSkge1xuICAgICAgY29uc3QgZGVmYXVsdHMgPSBnZXREZWZhdWx0c0ZvckV4dGVuc2lvbihleHRUeXBlLCBleHROYW1lKTtcbiAgICAgIGNvbnN0IGNsaUFyZ3MgPSBfLmlzRW1wdHkoZGVmYXVsdHMpXG4gICAgICAgID8gYWxsQ2xpQXJnc0ZvckV4dFxuICAgICAgICA6IF8ub21pdEJ5KGFsbENsaUFyZ3NGb3JFeHQsICh2YWx1ZSwga2V5KSA9PiBfLmlzRXF1YWwoZGVmYXVsdHNba2V5XSwgdmFsdWUpKTtcbiAgICAgIGlmICghXy5pc0VtcHR5KGNsaUFyZ3MpKSB7XG4gICAgICAgIGV4dEluc3RhbmNlLmNsaUFyZ3MgPSBjbGlBcmdzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgc2Vzc2lvblxuICAgKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllc30ganNvbndwQ2FwcyBKU09OV1AgZm9ybWF0dGVkIGRlc2lyZWQgY2FwYWJpbGl0aWVzXG4gICAqIEBwYXJhbSB7VzNDQ2FwYWJpbGl0aWVzfSByZXFDYXBzIFJlcXVpcmVkIGNhcGFiaWxpdGllcyAoSlNPTldQIHN0YW5kYXJkKVxuICAgKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllc30gdzNjQ2FwYWJpbGl0aWVzIFczQyBjYXBhYmlsaXRpZXNcbiAgICogQHBhcmFtIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJEYXRhW119IFtkcml2ZXJEYXRhXVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlU2Vzc2lvbiAoanNvbndwQ2FwcywgcmVxQ2FwcywgdzNjQ2FwYWJpbGl0aWVzLCBkcml2ZXJEYXRhKSB7XG4gICAgY29uc3QgZGVmYXVsdENhcGFiaWxpdGllcyA9IF8uY2xvbmVEZWVwKHRoaXMuYXJncy5kZWZhdWx0Q2FwYWJpbGl0aWVzKTtcbiAgICBjb25zdCBkZWZhdWx0U2V0dGluZ3MgPSBwdWxsU2V0dGluZ3MoZGVmYXVsdENhcGFiaWxpdGllcyk7XG4gICAganNvbndwQ2FwcyA9IF8uY2xvbmVEZWVwKGpzb253cENhcHMpO1xuICAgIGNvbnN0IGp3cFNldHRpbmdzID0gey4uLmRlZmF1bHRTZXR0aW5ncywgLi4ucHVsbFNldHRpbmdzKGpzb253cENhcHMpfTtcbiAgICB3M2NDYXBhYmlsaXRpZXMgPSBfLmNsb25lRGVlcCh3M2NDYXBhYmlsaXRpZXMpO1xuICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGNsaWVudCBvbmx5IHByb3ZpZGVzIGNhcHMgdXNpbmcgSlNPTldQIHN0YW5kYXJkLFxuICAgIC8vIGFsdGhvdWdoIGZpcnN0TWF0Y2gvYWx3YXlzTWF0Y2ggcHJvcGVydGllcyBhcmUgc3RpbGwgcHJlc2VudC5cbiAgICAvLyBJbiBzdWNoIGNhc2Ugd2UgYXNzdW1lIHRoZSBjbGllbnQgdW5kZXJzdGFuZHMgVzNDIHByb3RvY29sIGFuZCBtZXJnZSB0aGUgZ2l2ZW5cbiAgICAvLyBKU09OV1AgY2FwcyB0byBXM0MgY2Fwc1xuICAgIGNvbnN0IHczY1NldHRpbmdzID0ge1xuICAgICAgLi4uandwU2V0dGluZ3MsXG4gICAgICAuLi5wdWxsU2V0dGluZ3MoKHczY0NhcGFiaWxpdGllcyA/PyB7fSkuYWx3YXlzTWF0Y2ggPz8ge30pXG4gICAgfTtcbiAgICBmb3IgKGNvbnN0IGZpcnN0TWF0Y2hFbnRyeSBvZiAoKHczY0NhcGFiaWxpdGllcyA/PyB7fSkuZmlyc3RNYXRjaCA/PyBbXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24odzNjU2V0dGluZ3MsIHB1bGxTZXR0aW5ncyhmaXJzdE1hdGNoRW50cnkpKTtcbiAgICB9XG5cbiAgICBsZXQgcHJvdG9jb2w7XG4gICAgbGV0IGlubmVyU2Vzc2lvbklkLCBkQ2FwcztcbiAgICB0cnkge1xuICAgICAgLy8gUGFyc2UgdGhlIGNhcHMgaW50byBhIGZvcm1hdCB0aGF0IHRoZSBJbm5lckRyaXZlciB3aWxsIGFjY2VwdFxuICAgICAgY29uc3QgcGFyc2VkQ2FwcyA9IHBhcnNlQ2Fwc0ZvcklubmVyRHJpdmVyKFxuICAgICAgICBqc29ud3BDYXBzLFxuICAgICAgICB3M2NDYXBhYmlsaXRpZXMsXG4gICAgICAgIHRoaXMuZGVzaXJlZENhcENvbnN0cmFpbnRzLFxuICAgICAgICBkZWZhdWx0Q2FwYWJpbGl0aWVzXG4gICAgICApO1xuXG4gICAgICBjb25zdCB7ZGVzaXJlZENhcHMsIHByb2Nlc3NlZEpzb253cENhcGFiaWxpdGllcywgcHJvY2Vzc2VkVzNDQ2FwYWJpbGl0aWVzfSA9IC8qKiBAdHlwZSB7aW1wb3J0KCcuL3V0aWxzJykuUGFyc2VkRHJpdmVyQ2Fwc30gKi8ocGFyc2VkQ2Fwcyk7XG4gICAgICBwcm90b2NvbCA9IHBhcnNlZENhcHMucHJvdG9jb2w7XG4gICAgICBjb25zdCBlcnJvciA9IC8qKiBAdHlwZSB7aW1wb3J0KCcuL3V0aWxzJykuSW52YWxpZENhcHN9ICovKHBhcnNlZENhcHMpLmVycm9yO1xuICAgICAgLy8gSWYgdGhlIHBhcnNpbmcgb2YgdGhlIGNhcHMgcHJvZHVjZWQgYW4gZXJyb3IsIHRocm93IGl0IGluIGhlcmVcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qge1xuICAgICAgICBkcml2ZXI6IElubmVyRHJpdmVyLFxuICAgICAgICB2ZXJzaW9uOiBkcml2ZXJWZXJzaW9uLFxuICAgICAgICBkcml2ZXJOYW1lXG4gICAgICB9ID0gdGhpcy5kcml2ZXJDb25maWcuZmluZE1hdGNoaW5nRHJpdmVyKGRlc2lyZWRDYXBzKTtcbiAgICAgIHRoaXMucHJpbnROZXdTZXNzaW9uQW5ub3VuY2VtZW50KElubmVyRHJpdmVyLm5hbWUsIGRyaXZlclZlcnNpb24sIElubmVyRHJpdmVyLmJhc2VWZXJzaW9uKTtcblxuICAgICAgaWYgKHRoaXMuYXJncy5zZXNzaW9uT3ZlcnJpZGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVBbGxTZXNzaW9ucygpO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIEB0eXBlIHtEcml2ZXJEYXRhW119XG4gICAgICAgKi9cbiAgICAgIGxldCBydW5uaW5nRHJpdmVyc0RhdGEgPSBbXTtcbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0RyaXZlckRhdGFbXX1cbiAgICAgICAqL1xuICAgICAgbGV0IG90aGVyUGVuZGluZ0RyaXZlcnNEYXRhID0gW107XG5cbiAgICAgIGNvbnN0IGRyaXZlckluc3RhbmNlID0gbmV3IElubmVyRHJpdmVyKHRoaXMuYXJncywgdHJ1ZSk7XG5cbiAgICAgIC8vIFdlIHdhbnQgdG8gYXNzaWduIHNlY3VyaXR5IHZhbHVlcyBkaXJlY3RseSBvbiB0aGUgZHJpdmVyLiBUaGUgZHJpdmVyXG4gICAgICAvLyBzaG91bGQgbm90IHJlYWQgc2VjdXJpdHkgdmFsdWVzIGZyb20gYHRoaXMub3B0c2AgYmVjYXVzZSB0aG9zZSB2YWx1ZXNcbiAgICAgIC8vIGNvdWxkIGhhdmUgYmVlbiBzZXQgYnkgYSBtYWxpY2lvdXMgdXNlciB2aWEgY2FwYWJpbGl0aWVzLCB3aGVyZWFzIHdlXG4gICAgICAvLyB3YW50IGEgZ3VhcmFudGVlIHRoZSB2YWx1ZXMgd2VyZSBzZXQgYnkgdGhlIGFwcGl1bSBzZXJ2ZXIgYWRtaW5cbiAgICAgIGlmICh0aGlzLmFyZ3MucmVsYXhlZFNlY3VyaXR5RW5hYmxlZCkge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBBcHBseWluZyByZWxheGVkIHNlY3VyaXR5IHRvICcke0lubmVyRHJpdmVyLm5hbWV9JyBhcyBwZXIgYCArXG4gICAgICAgICAgYHNlcnZlciBjb21tYW5kIGxpbmUgYXJndW1lbnQuIEFsbCBpbnNlY3VyZSBmZWF0dXJlcyB3aWxsIGJlIGAgK1xuICAgICAgICAgIGBlbmFibGVkIHVubGVzcyBleHBsaWNpdGx5IGRpc2FibGVkIGJ5IC0tZGVueS1pbnNlY3VyZWApO1xuICAgICAgICBkcml2ZXJJbnN0YW5jZS5yZWxheGVkU2VjdXJpdHlFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5hcmdzLmRlbnlJbnNlY3VyZSkpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbygnRXhwbGljaXRseSBwcmV2ZW50aW5nIHVzZSBvZiBpbnNlY3VyZSBmZWF0dXJlczonKTtcbiAgICAgICAgdGhpcy5hcmdzLmRlbnlJbnNlY3VyZS5tYXAoKGEpID0+IHRoaXMubG9nLmluZm8oYCAgICAke2F9YCkpO1xuICAgICAgICBkcml2ZXJJbnN0YW5jZS5kZW55SW5zZWN1cmUgPSB0aGlzLmFyZ3MuZGVueUluc2VjdXJlO1xuICAgICAgfVxuXG4gICAgICBpZiAoIV8uaXNFbXB0eSh0aGlzLmFyZ3MuYWxsb3dJbnNlY3VyZSkpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbygnRXhwbGljaXRseSBlbmFibGluZyB1c2Ugb2YgaW5zZWN1cmUgZmVhdHVyZXM6Jyk7XG4gICAgICAgIHRoaXMuYXJncy5hbGxvd0luc2VjdXJlLm1hcCgoYSkgPT4gdGhpcy5sb2cuaW5mbyhgICAgICR7YX1gKSk7XG4gICAgICAgIGRyaXZlckluc3RhbmNlLmFsbG93SW5zZWN1cmUgPSB0aGlzLmFyZ3MuYWxsb3dJbnNlY3VyZTtcbiAgICAgIH1cblxuICAgICAgLy8gTGlrZXdpc2UsIGFueSBkcml2ZXItc3BlY2lmaWMgQ0xJIGFyZ3MgdGhhdCB3ZXJlIHBhc3NlZCBpbiBzaG91bGQgYmUgYXNzaWduZWQgZGlyZWN0bHkgdG9cbiAgICAgIC8vIHRoZSBkcml2ZXIgc28gdGhhdCB0aGV5IGNhbm5vdCBiZSBtaW1pY2tlZCBieSBhIG1hbGljaW91cyB1c2VyIHNlbmRpbmcgaW4gY2FwYWJpbGl0aWVzXG4gICAgICB0aGlzLmFzc2lnbkNsaUFyZ3NUb0V4dGVuc2lvbignZHJpdmVyJywgZHJpdmVyTmFtZSwgZHJpdmVySW5zdGFuY2UpO1xuXG5cbiAgICAgIC8vIFRoaXMgYXNzaWdubWVudCBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCB3ZWIgc29ja2V0cyBmdW5jdGlvbmFsaXR5IGluc2lkZSB0aGUgZHJpdmVyXG4gICAgICAvLyBEcml2ZXJzL3BsdWdpbnMgbWlnaHQgYWxzbyB3YW50IHRvIGtub3cgd2hlcmUgdGhleSBhcmUgaG9zdGVkXG4gICAgICBkcml2ZXJJbnN0YW5jZS5hc3NpZ25TZXJ2ZXIodGhpcy5zZXJ2ZXIsIHRoaXMuYXJncy5hZGRyZXNzLCB0aGlzLmFyZ3MucG9ydCwgdGhpcy5hcmdzLmJhc2VQYXRoKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcnVubmluZ0RyaXZlcnNEYXRhID0gYXdhaXQgdGhpcy5jdXJTZXNzaW9uRGF0YUZvckRyaXZlcihJbm5lckRyaXZlcikgPz8gW107XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgYXdhaXQgcGVuZGluZ0RyaXZlcnNHdWFyZC5hY3F1aXJlKEFwcGl1bURyaXZlci5uYW1lLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucGVuZGluZ0RyaXZlcnNbSW5uZXJEcml2ZXIubmFtZV0gPSB0aGlzLnBlbmRpbmdEcml2ZXJzW0lubmVyRHJpdmVyLm5hbWVdIHx8IFtdO1xuICAgICAgICBvdGhlclBlbmRpbmdEcml2ZXJzRGF0YSA9IF8uY29tcGFjdCh0aGlzLnBlbmRpbmdEcml2ZXJzW0lubmVyRHJpdmVyLm5hbWVdLm1hcCgoZHJ2KSA9PiBkcnYuZHJpdmVyRGF0YSkpO1xuICAgICAgICB0aGlzLnBlbmRpbmdEcml2ZXJzW0lubmVyRHJpdmVyLm5hbWVdLnB1c2goZHJpdmVySW5zdGFuY2UpO1xuICAgICAgfSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIFtpbm5lclNlc3Npb25JZCwgZENhcHNdID0gYXdhaXQgZHJpdmVySW5zdGFuY2UuY3JlYXRlU2Vzc2lvbihcbiAgICAgICAgICBwcm9jZXNzZWRKc29ud3BDYXBhYmlsaXRpZXMsXG4gICAgICAgICAgcmVxQ2FwcyxcbiAgICAgICAgICBwcm9jZXNzZWRXM0NDYXBhYmlsaXRpZXMsXG4gICAgICAgICAgWy4uLnJ1bm5pbmdEcml2ZXJzRGF0YSwgLi4ub3RoZXJQZW5kaW5nRHJpdmVyc0RhdGFdXG4gICAgICAgICk7XG4gICAgICAgIHByb3RvY29sID0gZHJpdmVySW5zdGFuY2UucHJvdG9jb2w7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnNbaW5uZXJTZXNzaW9uSWRdID0gZHJpdmVySW5zdGFuY2U7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBhd2FpdCBwZW5kaW5nRHJpdmVyc0d1YXJkLmFjcXVpcmUoQXBwaXVtRHJpdmVyLm5hbWUsICgpID0+IHtcbiAgICAgICAgICBfLnB1bGwodGhpcy5wZW5kaW5nRHJpdmVyc1tJbm5lckRyaXZlci5uYW1lXSwgZHJpdmVySW5zdGFuY2UpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hdHRhY2hVbmV4cGVjdGVkU2h1dGRvd25IYW5kbGVyKGRyaXZlckluc3RhbmNlLCBpbm5lclNlc3Npb25JZCk7XG5cbiAgICAgIHRoaXMubG9nLmluZm8oYE5ldyAke0lubmVyRHJpdmVyLm5hbWV9IHNlc3Npb24gY3JlYXRlZCBzdWNjZXNzZnVsbHksIHNlc3Npb24gYCArXG4gICAgICAgIGAke2lubmVyU2Vzc2lvbklkfSBhZGRlZCB0byBtYXN0ZXIgc2Vzc2lvbiBsaXN0YCk7XG5cbiAgICAgIC8vIHNldCB0aGUgTmV3IENvbW1hbmQgVGltZW91dCBmb3IgdGhlIGlubmVyIGRyaXZlclxuICAgICAgZHJpdmVySW5zdGFuY2Uuc3RhcnROZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgICAvLyBhcHBseSBpbml0aWFsIHZhbHVlcyB0byBBcHBpdW0gc2V0dGluZ3MgKGlmIHByb3ZpZGVkKVxuICAgICAgaWYgKGRyaXZlckluc3RhbmNlLmlzVzNDUHJvdG9jb2woKSAmJiAhXy5pc0VtcHR5KHczY1NldHRpbmdzKSkge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBBcHBseWluZyB0aGUgaW5pdGlhbCB2YWx1ZXMgdG8gQXBwaXVtIHNldHRpbmdzIHBhcnNlZCBmcm9tIFczQyBjYXBzOiBgICtcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh3M2NTZXR0aW5ncykpO1xuICAgICAgICBhd2FpdCBkcml2ZXJJbnN0YW5jZS51cGRhdGVTZXR0aW5ncyh3M2NTZXR0aW5ncyk7XG4gICAgICB9IGVsc2UgaWYgKGRyaXZlckluc3RhbmNlLmlzTWpzb253cFByb3RvY29sKCkgJiYgIV8uaXNFbXB0eShqd3BTZXR0aW5ncykpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgQXBwbHlpbmcgdGhlIGluaXRpYWwgdmFsdWVzIHRvIEFwcGl1bSBzZXR0aW5ncyBwYXJzZWQgZnJvbSBNSlNPTldQIGNhcHM6IGAgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGp3cFNldHRpbmdzKSk7XG4gICAgICAgIGF3YWl0IGRyaXZlckluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKGp3cFNldHRpbmdzKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdG9jb2wsXG4gICAgICAgIGVycm9yLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJvdG9jb2wsXG4gICAgICB2YWx1ZTogW2lubmVyU2Vzc2lvbklkLCBkQ2FwcywgcHJvdG9jb2xdXG4gICAgfTtcbiAgfVxuXG4gIGF0dGFjaFVuZXhwZWN0ZWRTaHV0ZG93bkhhbmRsZXIgKGRyaXZlciwgaW5uZXJTZXNzaW9uSWQpIHtcbiAgICBjb25zdCBvblNodXRkb3duID0gKGNhdXNlID0gbmV3IEVycm9yKCdVbmtub3duIGVycm9yJykpID0+IHtcbiAgICAgIHRoaXMubG9nLndhcm4oYEVuZGluZyBzZXNzaW9uLCBjYXVzZSB3YXMgJyR7Y2F1c2UubWVzc2FnZX0nYCk7XG5cbiAgICAgIGlmICh0aGlzLnNlc3Npb25QbHVnaW5zW2lubmVyU2Vzc2lvbklkXSkge1xuICAgICAgICBmb3IgKGNvbnN0IHBsdWdpbiBvZiB0aGlzLnNlc3Npb25QbHVnaW5zW2lubmVyU2Vzc2lvbklkXSkge1xuICAgICAgICAgIGlmIChfLmlzRnVuY3Rpb24ocGx1Z2luLm9uVW5leHBlY3RlZFNodXRkb3duKSkge1xuICAgICAgICAgICAgdGhpcy5sb2cuZGVidWcoYFBsdWdpbiAke3BsdWdpbi5uYW1lfSBkZWZpbmVzIGFuIHVuZXhwZWN0ZWQgc2h1dGRvd24gaGFuZGxlcjsgY2FsbGluZyBpdCBub3dgKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHBsdWdpbi5vblVuZXhwZWN0ZWRTaHV0ZG93bihkcml2ZXIsIGNhdXNlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2cud2FybihgR290IGFuIGVycm9yIHdoZW4gcnVubmluZyBwbHVnaW4gJHtwbHVnaW4ubmFtZX0gc2h1dGRvd24gaGFuZGxlcjogJHtlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhgUGx1Z2luICR7cGx1Z2luLm5hbWV9IGRvZXMgbm90IGRlZmluZSBhbiB1bmV4cGVjdGVkIHNodXRkb3duIGhhbmRsZXJgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5sb2cuaW5mbyhgUmVtb3Zpbmcgc2Vzc2lvbiAnJHtpbm5lclNlc3Npb25JZH0nIGZyb20gb3VyIG1hc3RlciBzZXNzaW9uIGxpc3RgKTtcbiAgICAgIGRlbGV0ZSB0aGlzLnNlc3Npb25zW2lubmVyU2Vzc2lvbklkXTtcbiAgICAgIGRlbGV0ZSB0aGlzLnNlc3Npb25QbHVnaW5zW2lubmVyU2Vzc2lvbklkXTtcbiAgICB9O1xuXG4gICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIub25VbmV4cGVjdGVkU2h1dGRvd24pKSB7XG4gICAgICBkcml2ZXIub25VbmV4cGVjdGVkU2h1dGRvd24ob25TaHV0ZG93bik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYEZhaWxlZCB0byBhdHRhY2ggdGhlIHVuZXhwZWN0ZWQgc2h1dGRvd24gbGlzdGVuZXIuIGAgK1xuICAgICAgICBgSXMgJ29uVW5leHBlY3RlZFNodXRkb3duJyBtZXRob2QgYXZhaWxhYmxlIGZvciAnJHtkcml2ZXIuY29uc3RydWN0b3IubmFtZX0nP2ApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge2ltcG9ydCgnLi4vdHlwZXMvZXh0ZW5zaW9uJykuRHJpdmVyQ2xhc3N9IElubmVyRHJpdmVyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERyaXZlckRhdGFbXT59fVxuICAgKi9cbiAgYXN5bmMgY3VyU2Vzc2lvbkRhdGFGb3JEcml2ZXIgKElubmVyRHJpdmVyKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICAgIGNvbnN0IGRhdGEgPSBfLmNvbXBhY3QoXy52YWx1ZXModGhpcy5zZXNzaW9ucylcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMuY29uc3RydWN0b3IubmFtZSA9PT0gSW5uZXJEcml2ZXIubmFtZSlcbiAgICAgIC5tYXAoKHMpID0+IHMuZHJpdmVyRGF0YSkpO1xuICAgIGZvciAoY29uc3QgZGF0dW0gb2YgZGF0YSkge1xuICAgICAgaWYgKCFkYXR1bSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2JsZW0gZ2V0dGluZyBzZXNzaW9uIGRhdGEgZm9yIGRyaXZlciB0eXBlIGAgK1xuICAgICAgICAgIGAke0lubmVyRHJpdmVyLm5hbWV9OyBkb2VzIGl0IGltcGxlbWVudCAnZ2V0IGRyaXZlckRhdGEnP2ApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2Vzc2lvbklkXG4gICAqL1xuICBhc3luYyBkZWxldGVTZXNzaW9uIChzZXNzaW9uSWQpIHtcbiAgICBsZXQgcHJvdG9jb2w7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBvdGhlclNlc3Npb25zRGF0YTtcbiAgICAgIGNvbnN0IGRzdFNlc3Npb24gPSBhd2FpdCBzZXNzaW9uc0xpc3RHdWFyZC5hY3F1aXJlKEFwcGl1bURyaXZlci5uYW1lLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zZXNzaW9uc1tzZXNzaW9uSWRdKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1ckNvbnN0cnVjdG9yTmFtZSA9IHRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXS5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgICAgICBvdGhlclNlc3Npb25zRGF0YSA9IF8udG9QYWlycyh0aGlzLnNlc3Npb25zKVxuICAgICAgICAgICAgICAuZmlsdGVyKChba2V5LCB2YWx1ZV0pID0+IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgPT09IGN1ckNvbnN0cnVjdG9yTmFtZSAmJiBrZXkgIT09IHNlc3Npb25JZClcbiAgICAgICAgICAgICAgLm1hcCgoWywgdmFsdWVdKSA9PiB2YWx1ZS5kcml2ZXJEYXRhKTtcbiAgICAgICAgY29uc3QgZHN0U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICAgICAgcHJvdG9jb2wgPSBkc3RTZXNzaW9uLnByb3RvY29sO1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBSZW1vdmluZyBzZXNzaW9uICR7c2Vzc2lvbklkfSBmcm9tIG91ciBtYXN0ZXIgc2Vzc2lvbiBsaXN0YCk7XG4gICAgICAgIC8vIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZGVsZXRlU2Vzc2lvbiBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5IG9yIG5vdFxuICAgICAgICAvLyBtYWtlIHRoZSBzZXNzaW9uIHVuYXZhaWxhYmxlLCBiZWNhdXNlIHdobyBrbm93cyB3aGF0IHN0YXRlIGl0IG1pZ2h0XG4gICAgICAgIC8vIGJlIGluIG90aGVyd2lzZVxuICAgICAgICBkZWxldGUgdGhpcy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgICAgICBkZWxldGUgdGhpcy5zZXNzaW9uUGx1Z2luc1tzZXNzaW9uSWRdO1xuICAgICAgICByZXR1cm4gZHN0U2Vzc2lvbjtcbiAgICAgIH0pO1xuICAgICAgLy8gdGhpcyBtYXkgbm90IGJlIGNvcnJlY3QsIGJ1dCBpZiBgZHN0U2Vzc2lvbmAgd2FzIGZhbHN5LCB0aGUgY2FsbCB0byBgZGVsZXRlU2Vzc2lvbigpYCB3b3VsZFxuICAgICAgLy8gdGhyb3cgYW55d2F5LlxuICAgICAgaWYgKCFkc3RTZXNzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU2Vzc2lvbiBub3QgZm91bmQnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICB2YWx1ZTogYXdhaXQgZHN0U2Vzc2lvbi5kZWxldGVTZXNzaW9uKHNlc3Npb25JZCwgb3RoZXJTZXNzaW9uc0RhdGEpLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvcihgSGFkIHRyb3VibGUgZW5kaW5nIHNlc3Npb24gJHtzZXNzaW9uSWR9OiAke2UubWVzc2FnZX1gKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3RvY29sLFxuICAgICAgICBlcnJvcjogZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsU2Vzc2lvbnMgKG9wdHMgPSB7fSkge1xuICAgIGNvbnN0IHNlc3Npb25zQ291bnQgPSBfLnNpemUodGhpcy5zZXNzaW9ucyk7XG4gICAgaWYgKDAgPT09IHNlc3Npb25zQ291bnQpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdUaGVyZSBhcmUgbm8gYWN0aXZlIHNlc3Npb25zIGZvciBjbGVhbnVwJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgZm9yY2UgPSBmYWxzZSxcbiAgICAgIHJlYXNvbixcbiAgICB9ID0gb3B0cztcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgQ2xlYW5pbmcgdXAgJHt1dGlsLnBsdXJhbGl6ZSgnYWN0aXZlIHNlc3Npb24nLCBzZXNzaW9uc0NvdW50LCB0cnVlKX1gKTtcbiAgICBjb25zdCBjbGVhbnVwUHJvbWlzZXMgPSBmb3JjZVxuICAgICAgPyBfLnZhbHVlcyh0aGlzLnNlc3Npb25zKS5tYXAoKGRydikgPT4gZHJ2LnN0YXJ0VW5leHBlY3RlZFNodXRkb3duKHJlYXNvbiAmJiBuZXcgRXJyb3IocmVhc29uKSkpXG4gICAgICA6IF8ua2V5cyh0aGlzLnNlc3Npb25zKS5tYXAoKGlkKSA9PiB0aGlzLmRlbGV0ZVNlc3Npb24oaWQpKTtcbiAgICBmb3IgKGNvbnN0IGNsZWFudXBQcm9taXNlIG9mIGNsZWFudXBQcm9taXNlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgY2xlYW51cFByb21pc2U7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFwcHJvcHJpYXRlIHBsdWdpbnMgZm9yIGEgc2Vzc2lvbiAob3Igc2Vzc2lvbmxlc3MgcGx1Z2lucylcbiAgICpcbiAgICogQHBhcmFtIHs/c3RyaW5nfSBzZXNzaW9uSWQgLSB0aGUgc2Vzc2lvbklkIChvciBudWxsKSB0byB1c2UgdG8gZmluZCBwbHVnaW5zXG4gICAqIEByZXR1cm5zIHtBcnJheX0gLSBhcnJheSBvZiBwbHVnaW4gaW5zdGFuY2VzXG4gICAqL1xuICBwbHVnaW5zRm9yU2Vzc2lvbiAoc2Vzc2lvbklkID0gbnVsbCkge1xuICAgIGlmIChzZXNzaW9uSWQpIHtcbiAgICAgIGlmICghdGhpcy5zZXNzaW9uUGx1Z2luc1tzZXNzaW9uSWRdKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblBsdWdpbnNbc2Vzc2lvbklkXSA9IHRoaXMuY3JlYXRlUGx1Z2luSW5zdGFuY2VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uUGx1Z2luc1tzZXNzaW9uSWRdO1xuICAgIH1cblxuICAgIGlmIChfLmlzRW1wdHkodGhpcy5zZXNzaW9ubGVzc1BsdWdpbnMpKSB7XG4gICAgICB0aGlzLnNlc3Npb25sZXNzUGx1Z2lucyA9IHRoaXMuY3JlYXRlUGx1Z2luSW5zdGFuY2VzKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlc3Npb25sZXNzUGx1Z2lucztcbiAgfVxuXG4gIC8qKlxuICAgKiBUbyBnZXQgcGx1Z2lucyBmb3IgYSBjb21tYW5kLCB3ZSBlaXRoZXIgZ2V0IHRoZSBwbHVnaW4gaW5zdGFuY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGVcbiAgICogcGFydGljdWxhciBjb21tYW5kJ3Mgc2Vzc2lvbiwgb3IgaW4gdGhlIGNhc2Ugb2Ygc2Vzc2lvbmxlc3MgcGx1Z2lucywgcHVsbCBmcm9tIHRoZSBzZXQgb2ZcbiAgICogcGx1Z2luIGluc3RhbmNlcyByZXNlcnZlZCBmb3Igc2Vzc2lvbmxlc3MgY29tbWFuZHMgKGFuZCB3ZSBsYXppbHkgY3JlYXRlIHBsdWdpbiBpbnN0YW5jZXMgb25cbiAgICogZmlyc3QgdXNlKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY21kIC0gdGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQgdG8gZmluZCBhIHBsdWdpbiB0byBoYW5kbGVcbiAgICogQHBhcmFtIHs/c3RyaW5nfSBzZXNzaW9uSWQgLSB0aGUgcGFydGljdWxhciBzZXNzaW9uIGZvciB3aGljaCB0byBmaW5kIGEgcGx1Z2luLCBvciBudWxsIGlmXG4gICAqIHNlc3Npb25sZXNzXG4gICAqL1xuICBwbHVnaW5zVG9IYW5kbGVDbWQgKGNtZCwgc2Vzc2lvbklkID0gbnVsbCkge1xuICAgIC8vIHRvIGhhbmRsZSBhIGdpdmVuIGNvbW1hbmQsIGEgcGx1Z2luIHNob3VsZCBlaXRoZXIgaW1wbGVtZW50IHRoYXQgY29tbWFuZCBhcyBhIHBsdWdpblxuICAgIC8vIGluc3RhbmNlIG1ldGhvZCBvciBpdCBzaG91bGQgaW1wbGVtZW50IGEgZ2VuZXJpYyAnaGFuZGxlJyBtZXRob2RcbiAgICByZXR1cm4gdGhpcy5wbHVnaW5zRm9yU2Vzc2lvbihzZXNzaW9uSWQpXG4gICAgICAuZmlsdGVyKChwKSA9PiBfLmlzRnVuY3Rpb24ocFtjbWRdKSB8fCBfLmlzRnVuY3Rpb24ocC5oYW5kbGUpKTtcbiAgfVxuXG4gIGNyZWF0ZVBsdWdpbkluc3RhbmNlcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2luQ2xhc3Nlcy5tYXAoKFBsdWdpbkNsYXNzKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gUGx1Z2luQ2xhc3MucGx1Z2luTmFtZTtcbiAgICAgIGNvbnN0IHBsdWdpbiA9IG5ldyBQbHVnaW5DbGFzcyhuYW1lKTtcbiAgICAgIHRoaXMuYXNzaWduQ2xpQXJnc1RvRXh0ZW5zaW9uKCdwbHVnaW4nLCBuYW1lLCBwbHVnaW4pO1xuICAgICAgcmV0dXJuIHBsdWdpbjtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY21kXG4gICAqIEBwYXJhbSAgey4uLmFueX0gYXJnc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7dmFsdWU6IGFueSwgZXJyb3I/OiBFcnJvciwgcHJvdG9jb2w6IHN0cmluZ30gfCBpbXBvcnQoJ3R5cGUtZmVzdCcpLkFzeW5jUmV0dXJuVHlwZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJbJ2V4ZWN1dGVDb21tYW5kJ10+Pn1cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVDb21tYW5kIChjbWQsIC4uLmFyZ3MpIHtcbiAgICAvLyBXZSBoYXZlIGJhc2ljYWxseSB0aHJlZSBjYXNlcyBmb3IgaG93IHRvIGhhbmRsZSBjb21tYW5kczpcbiAgICAvLyAxLiBoYW5kbGUgZ2V0U3RhdHVzICh3ZSBkbyB0aGlzIGFzIGEgc3BlY2lhbCBvdXQgb2YgYmFuZCBjYXNlIHNvIGl0IGRvZXNuJ3QgZ2V0IGFkZGVkIHRvIGFuXG4gICAgLy8gICAgZXhlY3V0aW9uIHF1ZXVlLCBhbmQgY2FuIGJlIGNhbGxlZCB3aGlsZSBlLmcuIGNyZWF0ZVNlc3Npb24gaXMgaW4gcHJvZ3Jlc3MpXG4gICAgLy8gMi4gaGFuZGxlIGNvbW1hbmRzIHRoYXQgdGhpcyB1bWJyZWxsYSBkcml2ZXIgc2hvdWxkIGhhbmRsZSwgcmF0aGVyIHRoYW4gdGhlIGFjdHVhbCBzZXNzaW9uXG4gICAgLy8gICAgZHJpdmVyIChmb3IgZXhhbXBsZSwgZGVsZXRlU2Vzc2lvbiwgb3Igb3RoZXIgbm9uLXNlc3Npb24gY29tbWFuZHMpXG4gICAgLy8gMy4gaGFuZGxlIHNlc3Npb24gZHJpdmVyIGNvbW1hbmRzLlxuICAgIC8vIFRoZSB0cmlja3kgcGFydCBpcyB0aGF0IGJlY2F1c2Ugd2Ugc3VwcG9ydCBjb21tYW5kIHBsdWdpbnMsIHdlIG5lZWQgdG8gd3JhcCBhbnkgb2YgdGhlc2VcbiAgICAvLyBjYXNlcyB3aXRoIHBsdWdpbiBoYW5kbGluZy5cblxuICAgIGNvbnN0IGlzR2V0U3RhdHVzID0gY21kID09PSBHRVRfU1RBVFVTX0NPTU1BTkQ7XG4gICAgY29uc3QgaXNVbWJyZWxsYUNtZCA9IGlzQXBwaXVtRHJpdmVyQ29tbWFuZChjbWQpO1xuICAgIGNvbnN0IGlzU2Vzc2lvbkNtZCA9IGlzU2Vzc2lvbkNvbW1hbmQoY21kKTtcblxuICAgIC8vIGlmIGEgcGx1Z2luIG92ZXJyaWRlIHByb3h5aW5nIGZvciB0aGlzIGNvbW1hbmQgYW5kIHRoYXQgaXMgd2h5IHdlIGFyZSBoZXJlIGluc3RlYWQgb2YganVzdFxuICAgIC8vIGxldHRpbmcgdGhlIHByb3RvY29sIHByb3h5IHRoZSBjb21tYW5kIGVudGlyZWx5LCBkZXRlcm1pbmUgdGhhdCwgZ2V0IHRoZSByZXF1ZXN0IG9iamVjdCBmb3JcbiAgICAvLyB1c2UgbGF0ZXIgb24sIHRoZW4gY2xlYW4gdXAgdGhlIGFyZ3NcbiAgICBjb25zdCByZXFGb3JQcm94eSA9IF8ubGFzdChhcmdzKT8ucmVxRm9yUHJveHk7XG4gICAgaWYgKHJlcUZvclByb3h5KSB7XG4gICAgICBhcmdzLnBvcCgpO1xuICAgIH1cblxuXG4gICAgLy8gZmlyc3QgZG8gc29tZSBlcnJvciBjaGVja2luZy4gSWYgd2UncmUgcmVxdWVzdGluZyBhIHNlc3Npb24gY29tbWFuZCBleGVjdXRpb24sIHRoZW4gbWFrZVxuICAgIC8vIHN1cmUgdGhhdCBzZXNzaW9uIGFjdHVhbGx5IGV4aXN0cyBvbiB0aGUgc2Vzc2lvbiBkcml2ZXIsIGFuZCBzZXQgdGhlIHNlc3Npb24gZHJpdmVyIGl0c2VsZlxuICAgIGxldCBzZXNzaW9uSWQgPSBudWxsO1xuICAgIGxldCBkc3RTZXNzaW9uID0gbnVsbDtcbiAgICBsZXQgcHJvdG9jb2wgPSBudWxsO1xuICAgIC8qKiBAdHlwZSB7dGhpcyB8IEV4dGVybmFsRHJpdmVyfSAqL1xuICAgIGxldCBkcml2ZXIgPSB0aGlzO1xuICAgIGlmIChpc1Nlc3Npb25DbWQpIHtcbiAgICAgIHNlc3Npb25JZCA9IF8ubGFzdChhcmdzKTtcbiAgICAgIGRzdFNlc3Npb24gPSB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgICBpZiAoIWRzdFNlc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgc2Vzc2lvbiB3aXRoIGlkICcke3Nlc3Npb25JZH0nIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICB9XG4gICAgICAvLyBub3cgc2F2ZSB0aGUgcmVzcG9uc2UgcHJvdG9jb2wgZ2l2ZW4gdGhhdCB0aGUgc2Vzc2lvbiBkcml2ZXIncyBwcm90b2NvbCBtaWdodCBkaWZmZXJcbiAgICAgIHByb3RvY29sID0gZHN0U2Vzc2lvbi5wcm90b2NvbDtcbiAgICAgIGlmICghaXNVbWJyZWxsYUNtZCkge1xuICAgICAgICBkcml2ZXIgPSBkc3RTZXNzaW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGdldCBhbnkgcGx1Z2lucyB3aGljaCBhcmUgcmVnaXN0ZXJlZCBhcyBoYW5kbGluZyB0aGlzIGNvbW1hbmRcbiAgICBjb25zdCBwbHVnaW5zID0gdGhpcy5wbHVnaW5zVG9IYW5kbGVDbWQoY21kLCBzZXNzaW9uSWQpO1xuXG4gICAgLy8gbm93IHdlIGRlZmluZSBhICdjbWRIYW5kbGVkQnknIG9iamVjdCB3aGljaCB3aWxsIGtlZXAgdHJhY2sgb2Ygd2hpY2ggcGx1Z2lucyBoYXZlIGhhbmRsZWQgdGhpc1xuICAgIC8vIGNvbW1hbmQuIHdlIGNhcmUgYWJvdXQgdGhpcyBiZWNhdXNlIChhKSBtdWx0aXBsZSBwbHVnaW5zIGNhbiBoYW5kbGUgdGhlIHNhbWUgY29tbWFuZCwgYW5kXG4gICAgLy8gKGIpIHRoZXJlJ3Mgbm8gZ3VhcmFudGVlIHRoYXQgYSBwbHVnaW4gd2lsbCBhY3R1YWxseSBjYWxsIHRoZSBuZXh0KCkgbWV0aG9kIHdoaWNoIHJ1bnMgdGhlXG4gICAgLy8gb3JpZ2luYWwgY29tbWFuZCBleGVjdXRpb24uIFRoaXMgcmVzdWx0cyBpbiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgY29tbWFuZCBtaWdodCBiZSBoYW5kbGVkXG4gICAgLy8gYnkgc29tZSBidXQgbm90IGFsbCBwbHVnaW5zLCBvciBieSBwbHVnaW4ocykgYnV0IG5vdCBieSB0aGUgZGVmYXVsdCBiZWhhdmlvci4gU28gc3RhcnQgb3V0XG4gICAgLy8gdGhpcyBvYmplY3QgZGVjbGFyaW5nIHRoYXQgdGhlIGRlZmF1bHQgaGFuZGxlciBoYXMgbm90IGJlZW4gZXhlY3V0ZWQuXG4gICAgY29uc3QgY21kSGFuZGxlZEJ5ID0ge2RlZmF1bHQ6IGZhbHNlfTtcblxuICAgIC8vIG5vdyB3ZSBkZWZpbmUgYW4gYXN5bmMgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBwYXNzZWQgdG8gcGx1Z2lucywgYW5kIHN1Y2Nlc3NpdmVseSB3cmFwcGVkXG4gICAgLy8gaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBwbHVnaW4gdGhhdCBjYW4gaGFuZGxlIHRoZSBjb21tYW5kLiBUbyBzdGFydCBvZmYgd2l0aCwgdGhlIGFzeW5jXG4gICAgLy8gZnVuY3Rpb24gaXMgZGVmaW5lZCBhcyBjYWxsaW5nIHRoZSBkZWZhdWx0IGJlaGF2aW9yLCBpLmUuLCB3aGljaGV2ZXIgb2YgdGhlIDMgY2FzZXMgYWJvdmUgaXNcbiAgICAvLyB0aGUgYXBwcm9wcmlhdGUgb25lXG4gICAgY29uc3QgZGVmYXVsdEJlaGF2aW9yID0gYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gaWYgd2UncmUgcnVubmluZyB3aXRoIHBsdWdpbnMsIG1ha2Ugc3VyZSB3ZSBsb2cgdGhhdCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhY3R1YWxseVxuICAgICAgLy8gaGFwcGVuaW5nIHNvIHdlIGNhbiB0ZWxsIHdoZW4gdGhlIHBsdWdpbiBjYWxsIGNoYWluIGlzIHVud3JhcHBpbmcgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3JcbiAgICAgIC8vIGlmIHRoYXQncyB3aGF0IGhhcHBlbnNcbiAgICAgIHBsdWdpbnMubGVuZ3RoICYmIHRoaXMubG9nLmluZm8oYEV4ZWN1dGluZyBkZWZhdWx0IGhhbmRsaW5nIGJlaGF2aW9yIGZvciBjb21tYW5kICcke2NtZH0nYCk7XG5cbiAgICAgIC8vIGlmIHdlIG1ha2UgaXQgaGVyZSwgd2Uga25vdyB0aGF0IHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGhhbmRsZWRcbiAgICAgIGNtZEhhbmRsZWRCeS5kZWZhdWx0ID0gdHJ1ZTtcblxuICAgICAgaWYgKHJlcUZvclByb3h5KSB7XG4gICAgICAgIC8vIHdlIHdvdWxkIGhhdmUgcHJveGllZCB0aGlzIGNvbW1hbmQgaGFkIGEgcGx1Z2luIG5vdCBoYW5kbGVkIGl0LCBzbyB0aGUgZGVmYXVsdCBiZWhhdmlvclxuICAgICAgICAvLyBpcyB0byBkbyB0aGUgcHJveHkgYW5kIHJldHJpZXZlIHRoZSByZXN1bHQgaW50ZXJuYWxseSBzbyBpdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBwbHVnaW5cbiAgICAgICAgLy8gaW4gY2FzZSBpdCBjYWxscyAnYXdhaXQgbmV4dCgpJy4gVGhpcyByZXF1aXJlcyB0aGF0IHRoZSBkcml2ZXIgaGF2ZSBkZWZpbmVkXG4gICAgICAgIC8vICdwcm94eUNvbW1hbmQnIGFuZCBub3QganVzdCAncHJveHlSZXFSZXMnLlxuICAgICAgICBpZiAoIWRzdFNlc3Npb24ucHJveHlDb21tYW5kKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5vRHJpdmVyUHJveHlDb21tYW5kRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgZHN0U2Vzc2lvbi5wcm94eUNvbW1hbmQocmVxRm9yUHJveHkub3JpZ2luYWxVcmwsIHJlcUZvclByb3h5Lm1ldGhvZCxcbiAgICAgICAgICByZXFGb3JQcm94eS5ib2R5KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzR2V0U3RhdHVzKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNVbWJyZWxsYUNtZCkge1xuICAgICAgICAvLyBzb21lIGNvbW1hbmRzLCBsaWtlIGRlbGV0ZVNlc3Npb24sIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRvIGhhbmRsZSBvbiAqdGhpcyogZHJpdmVyLFxuICAgICAgICAvLyBub3QgdGhlIHBsYXRmb3JtIGRyaXZlclxuICAgICAgICByZXR1cm4gYXdhaXQgQmFzZURyaXZlci5wcm90b3R5cGUuZXhlY3V0ZUNvbW1hbmQuY2FsbCh0aGlzLCBjbWQsIC4uLmFyZ3MpO1xuICAgICAgfVxuXG4gICAgICAvLyBoZXJlIHdlIGtub3cgdGhhdCB3ZSBhcmUgZXhlY3V0aW5nIGEgc2Vzc2lvbiBjb21tYW5kLCBhbmQgaGF2ZSBhIHZhbGlkIHNlc3Npb24gZHJpdmVyXG4gICAgICByZXR1cm4gYXdhaXQgZHN0U2Vzc2lvbi5leGVjdXRlQ29tbWFuZChjbWQsIC4uLmFyZ3MpO1xuICAgIH07XG5cbiAgICAvLyBub3cgdGFrZSBvdXIgZGVmYXVsdCBiZWhhdmlvciwgd3JhcCBpdCB3aXRoIGFueSBudW1iZXIgb2YgcGx1Z2luIGJlaGF2aW9ycywgYW5kIHJ1biBpdFxuICAgIGNvbnN0IHdyYXBwZWRDbWQgPSB0aGlzLndyYXBDb21tYW5kV2l0aFBsdWdpbnMoe1xuICAgICAgZHJpdmVyLCBjbWQsIGFyZ3MsIHBsdWdpbnMsIGNtZEhhbmRsZWRCeSwgbmV4dDogZGVmYXVsdEJlaGF2aW9yXG4gICAgfSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5leGVjdXRlV3JhcHBlZENvbW1hbmQoe3dyYXBwZWRDbWQsIHByb3RvY29sfSk7XG5cbiAgICAvLyBpZiB3ZSBoYWQgcGx1Z2lucywgbWFrZSBzdXJlIHRvIGxvZyBvdXQgdGhlIGhlbHBmdWwgcmVwb3J0IGFib3V0IHdoaWNoIHBsdWdpbnMgZW5kZWQgdXBcbiAgICAvLyBoYW5kbGluZyB0aGUgY29tbWFuZCBhbmQgd2hpY2ggZGlkbid0XG4gICAgdGhpcy5sb2dQbHVnaW5IYW5kbGVyUmVwb3J0KHBsdWdpbnMsIHtjbWQsIGNtZEhhbmRsZWRCeX0pO1xuXG4gICAgLy8gQW5kIGZpbmFsbHksIGlmIHRoZSBjb21tYW5kIHdhcyBjcmVhdGVTZXNzaW9uLCB3ZSB3YW50IHRvIG1pZ3JhdGUgYW55IHBsdWdpbnMgd2hpY2ggd2VyZVxuICAgIC8vIHByZXZpb3VzbHkgc2Vzc2lvbmxlc3MgdG8gdXNlIHRoZSBuZXcgc2Vzc2lvbklkLCBzbyB0aGF0IHBsdWdpbnMgY2FuIHNoYXJlIHN0YXRlIGJldHdlZW5cbiAgICAvLyB0aGVpciBjcmVhdGVTZXNzaW9uIG1ldGhvZCBhbmQgb3RoZXIgaW5zdGFuY2UgbWV0aG9kc1xuICAgIGlmIChjbWQgPT09IENSRUFURV9TRVNTSU9OX0NPTU1BTkQgJiYgdGhpcy5zZXNzaW9ubGVzc1BsdWdpbnMubGVuZ3RoICYmICFyZXMuZXJyb3IpIHtcbiAgICAgIGNvbnN0IHNlc3Npb25JZCA9IF8uZmlyc3QocmVzLnZhbHVlKTtcbiAgICAgIHRoaXMubG9nLmluZm8oYFByb21vdGluZyAke3RoaXMuc2Vzc2lvbmxlc3NQbHVnaW5zLmxlbmd0aH0gc2Vzc2lvbmxlc3MgcGx1Z2lucyB0byBiZSBhdHRhY2hlZCBgICtcbiAgICAgICAgYHRvIHNlc3Npb24gSUQgJHtzZXNzaW9uSWR9YCk7XG4gICAgICB0aGlzLnNlc3Npb25QbHVnaW5zW3Nlc3Npb25JZF0gPSB0aGlzLnNlc3Npb25sZXNzUGx1Z2lucztcbiAgICAgIHRoaXMuc2Vzc2lvbmxlc3NQbHVnaW5zID0gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHdyYXBDb21tYW5kV2l0aFBsdWdpbnMgKHtkcml2ZXIsIGNtZCwgYXJncywgbmV4dCwgY21kSGFuZGxlZEJ5LCBwbHVnaW5zfSkge1xuICAgIHBsdWdpbnMubGVuZ3RoICYmIHRoaXMubG9nLmluZm8oYFBsdWdpbnMgd2hpY2ggY2FuIGhhbmRsZSBjbWQgJyR7Y21kfSc6ICR7cGx1Z2lucy5tYXAoKHApID0+IHAubmFtZSl9YCk7XG5cbiAgICAvLyBub3cgd2UgY2FuIGdvIHRocm91Z2ggZWFjaCBwbHVnaW4gYW5kIHdyYXAgYG5leHRgIGFyb3VuZCBpdHMgb3duIGhhbmRsZXIsIHBhc3NpbmcgdGhlICpvbGQqXG4gICAgLy8gbmV4dCBpbiBzbyB0aGF0IGl0IGNhbiBjYWxsIGl0IGlmIGl0IHdhbnRzIHRvXG4gICAgZm9yIChjb25zdCBwbHVnaW4gb2YgcGx1Z2lucykge1xuICAgICAgLy8gbmVlZCBhbiBJSUZFIGhlcmUgYmVjYXVzZSB3ZSB3YW50IHRoZSB2YWx1ZSBvZiBuZXh0IHRoYXQncyBwYXNzZWQgdG8gcGx1Z2luLmhhbmRsZSB0byBiZVxuICAgICAgLy8gZXhhY3RseSB0aGUgdmFsdWUgb2YgbmV4dCBoZXJlIGJlZm9yZSByZWFzc2lnbm1lbnQ7IHdlIGRvbid0IHdhbnQgaXQgdG8gYmUgbGF6aWx5XG4gICAgICAvLyBldmFsdWF0ZWQsIG90aGVyd2lzZSB3ZSBlbmQgdXAgd2l0aCBpbmZpbml0ZSByZWN1cnNpb24gb2YgdGhlIGxhc3QgYG5leHRgIHRvIGJlIGRlZmluZWQuXG4gICAgICBjbWRIYW5kbGVkQnlbcGx1Z2luLm5hbWVdID0gZmFsc2U7IC8vIHdlIHNlZSBhIG5ldyBwbHVnaW4sIHNvIGFkZCBpdCB0byB0aGUgJ2NtZEhhbmRsZWRCeScgb2JqZWN0XG4gICAgICBuZXh0ID0gKChfbmV4dCkgPT4gYXN5bmMgKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBQbHVnaW4gJHtwbHVnaW4ubmFtZX0gaXMgbm93IGhhbmRsaW5nIGNtZCAnJHtjbWR9J2ApO1xuICAgICAgICBjbWRIYW5kbGVkQnlbcGx1Z2luLm5hbWVdID0gdHJ1ZTsgLy8gaWYgd2UgbWFrZSBpdCBoZXJlLCB0aGlzIHBsdWdpbiBoYXMgYXR0ZW1wdGVkIHRvIGhhbmRsZSBjbWRcbiAgICAgICAgLy8gZmlyc3QgYXR0ZW1wdCB0byBoYW5kbGUgdGhlIGNvbW1hbmQgdmlhIGEgY29tbWFuZC1zcGVjaWZpYyBoYW5kbGVyIG9uIHRoZSBwbHVnaW5cbiAgICAgICAgaWYgKHBsdWdpbltjbWRdKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHBsdWdpbltjbWRdKF9uZXh0LCBkcml2ZXIsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG90aGVyd2lzZSwgY2FsbCB0aGUgZ2VuZXJpYyAnaGFuZGxlJyBtZXRob2RcbiAgICAgICAgcmV0dXJuIGF3YWl0IHBsdWdpbi5oYW5kbGUoX25leHQsIGRyaXZlciwgY21kLCAuLi5hcmdzKTtcbiAgICAgIH0pKG5leHQpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0O1xuICB9XG5cbiAgbG9nUGx1Z2luSGFuZGxlclJlcG9ydCAocGx1Z2lucywge2NtZCwgY21kSGFuZGxlZEJ5fSkge1xuICAgIGlmICghcGx1Z2lucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBkYXksIHdlIGhhdmUgYW4gb2JqZWN0IHJlcHJlc2VudGluZyB3aGljaCBwbHVnaW5zIGVuZGVkIHVwIGdldHRpbmdcbiAgICAvLyB0aGVpciBjb2RlIHJ1biBhcyBwYXJ0IG9mIGhhbmRsaW5nIHRoaXMgY29tbWFuZC4gQmVjYXVzZSBwbHVnaW5zIGNhbiBjaG9vc2UgKm5vdCogdG9cbiAgICAvLyBwYXNzIGNvbnRyb2wgdG8gb3RoZXIgcGx1Z2lucyBvciB0byB0aGUgZGVmYXVsdCBkcml2ZXIgYmVoYXZpb3IsIHRoaXMgaXMgaW5mb3JtYXRpb25cbiAgICAvLyB3aGljaCBpcyBwcm9iYWJseSB1c2VmdWwgdG8gdGhlIHVzZXIgKGVzcGVjaWFsbHkgaW4gc2l0dWF0aW9ucyB3aGVyZSBwbHVnaW5zIG1pZ2h0IG5vdFxuICAgIC8vIGludGVyYWN0IHdlbGwgdG9nZXRoZXIsIGFuZCBpdCB3b3VsZCBiZSBoYXJkIHRvIGRlYnVnIG90aGVyd2lzZSB3aXRob3V0IHRoaXMga2luZCBvZlxuICAgIC8vIG1lc3NhZ2UpLlxuICAgIGNvbnN0IGRpZEhhbmRsZSA9IE9iamVjdC5rZXlzKGNtZEhhbmRsZWRCeSkuZmlsdGVyKChrKSA9PiBjbWRIYW5kbGVkQnlba10pO1xuICAgIGNvbnN0IGRpZG50SGFuZGxlID0gT2JqZWN0LmtleXMoY21kSGFuZGxlZEJ5KS5maWx0ZXIoKGspID0+ICFjbWRIYW5kbGVkQnlba10pO1xuICAgIGlmIChkaWRudEhhbmRsZS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKGBDb21tYW5kICcke2NtZH0nIHdhcyAqbm90KiBoYW5kbGVkIGJ5IHRoZSBmb2xsb3dpbmcgYmVoYXZpb3VycyBvciBwbHVnaW5zLCBldmVuIGAgK1xuICAgICAgICBgdGhvdWdoIHRoZXkgd2VyZSByZWdpc3RlcmVkIHRvIGhhbmRsZSBpdDogJHtKU09OLnN0cmluZ2lmeShkaWRudEhhbmRsZSl9LiBUaGUgYCArXG4gICAgICAgIGBjb21tYW5kICp3YXMqIGhhbmRsZWQgYnkgdGhlc2U6ICR7SlNPTi5zdHJpbmdpZnkoZGlkSGFuZGxlKX0uYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZVdyYXBwZWRDb21tYW5kICh7d3JhcHBlZENtZCwgcHJvdG9jb2x9KSB7XG4gICAgbGV0IGNtZFJlcywgY21kRXJyLCByZXMgPSB7fTtcbiAgICB0cnkge1xuICAgICAgLy8gQXQgdGhpcyBwb2ludCwgYHdyYXBwZWRDbWRgIGRlZmluZXMgYSB3aG9sZSBzZXF1ZW5jZSBvZiBwbHVnaW4gaGFuZGxlcnMsIGN1bG1pbmF0aW5nIGluXG4gICAgICAvLyBvdXIgZGVmYXVsdCBoYW5kbGVyLiBXaGF0ZXZlciBpdCByZXR1cm5zIGlzIHdoYXQgd2UncmUgZ29pbmcgdG8gd2FudCB0byBzZW5kIGJhY2sgdG8gdGhlXG4gICAgICAvLyB1c2VyLlxuICAgICAgY21kUmVzID0gYXdhaXQgd3JhcHBlZENtZCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNtZEVyciA9IGU7XG4gICAgfVxuXG4gICAgLy8gU2FkbHksIHdlIGRvbid0IGtub3cgZXhhY3RseSB3aGF0IGtpbmQgb2Ygb2JqZWN0IHdpbGwgYmUgcmV0dXJuZWQuIEl0IHdpbGwgZWl0aGVyIGJlIGEgYmFyZVxuICAgIC8vIG9iamVjdCwgb3IgYSBwcm90b2NvbC1hd2FyZSBvYmplY3Qgd2l0aCBwcm90b2NvbCBhbmQgZXJyb3IvdmFsdWUga2V5cy4gU28gd2UgbmVlZCB0byBzbmlmZlxuICAgIC8vIGl0IGFuZCBtYWtlIHN1cmUgd2UgZG9uJ3QgZG91YmxlLXdyYXAgaXQgaWYgaXQncyB0aGUgbGF0dGVyIGtpbmQuXG4gICAgaWYgKF8uaXNQbGFpbk9iamVjdChjbWRSZXMpICYmIF8uaGFzKGNtZFJlcywgJ3Byb3RvY29sJykpIHtcbiAgICAgIHJlcyA9IGNtZFJlcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzLnZhbHVlID0gY21kUmVzO1xuICAgICAgcmVzLmVycm9yID0gY21kRXJyO1xuICAgICAgcmVzLnByb3RvY29sID0gcHJvdG9jb2w7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwcm94eUFjdGl2ZSAoc2Vzc2lvbklkKSB7XG4gICAgY29uc3QgZHN0U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnNbc2Vzc2lvbklkXTtcbiAgICByZXR1cm4gZHN0U2Vzc2lvbiAmJiBfLmlzRnVuY3Rpb24oZHN0U2Vzc2lvbi5wcm94eUFjdGl2ZSkgJiYgZHN0U2Vzc2lvbi5wcm94eUFjdGl2ZShzZXNzaW9uSWQpO1xuICB9XG5cbiAgZ2V0UHJveHlBdm9pZExpc3QgKHNlc3Npb25JZCkge1xuICAgIGNvbnN0IGRzdFNlc3Npb24gPSB0aGlzLnNlc3Npb25zW3Nlc3Npb25JZF07XG4gICAgcmV0dXJuIGRzdFNlc3Npb24gPyBkc3RTZXNzaW9uLmdldFByb3h5QXZvaWRMaXN0KCkgOiBbXTtcbiAgfVxuXG4gIGNhblByb3h5IChzZXNzaW9uSWQpIHtcbiAgICBjb25zdCBkc3RTZXNzaW9uID0gdGhpcy5zZXNzaW9uc1tzZXNzaW9uSWRdO1xuICAgIHJldHVybiBkc3RTZXNzaW9uICYmIGRzdFNlc3Npb24uY2FuUHJveHkoc2Vzc2lvbklkKTtcbiAgfVxufVxuXG4vLyBoZWxwIGRlY2lkZSB3aGljaCBjb21tYW5kcyBzaG91bGQgYmUgcHJveGllZCB0byBzdWItZHJpdmVycyBhbmQgd2hpY2hcbi8vIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoaXMsIG91ciB1bWJyZWxsYSBkcml2ZXJcbmZ1bmN0aW9uIGlzQXBwaXVtRHJpdmVyQ29tbWFuZCAoY21kKSB7XG4gIHJldHVybiAhaXNTZXNzaW9uQ29tbWFuZChjbWQpIHx8IGNtZCA9PT0gREVMRVRFX1NFU1NJT05fQ09NTUFORDtcbn1cblxuLyoqXG4gKiBUaHJvd24gd2hlbiBBcHBpdW0gdHJpZWQgdG8gcHJveHkgYSBjb21tYW5kIHVzaW5nIGEgZHJpdmVyJ3MgYHByb3h5Q29tbWFuZGAgbWV0aG9kIGJ1dCB0aGVcbiAqIG1ldGhvZCBkaWQgbm90IGV4aXN0XG4gKi9cbmV4cG9ydCBjbGFzcyBOb0RyaXZlclByb3h5Q29tbWFuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQHR5cGUge1JlYWRvbmx5PHN0cmluZz59XG4gICAqL1xuICBjb2RlID0gJ0FQUElVTUVSUl9OT19EUklWRVJfUFJPWFlDT01NQU5EJztcblxuICBjb25zdHJ1Y3RvciAoKSB7XG4gICAgc3VwZXIoYFRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciB0aGlzIGNvbW1hbmQgd2FzIHRvIHByb3h5LCBidXQgdGhlIGRyaXZlciBgICtcbiAgICAgICAgICBgZGlkIG5vdCBoYXZlIHRoZSAncHJveHlDb21tYW5kJyBtZXRob2QgZGVmaW5lZC4gVG8gZnVsbHkgc3VwcG9ydCBgICtcbiAgICAgICAgICBgcGx1Z2lucywgZHJpdmVycyBzaG91bGQgaGF2ZSAncHJveHlDb21tYW5kJyBzZXQgdG8gYSBqd3BQcm94eSBvYmplY3QncyBgICtcbiAgICAgICAgICBgJ2NvbW1hbmQoKScgbWV0aG9kLCBpbiBhZGRpdGlvbiB0byB0aGUgbm9ybWFsICdwcm94eVJlcVJlcydgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBBcHBpdW1Ecml2ZXIgfTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXh0ZXJuYWxEcml2ZXJ9IEV4dGVybmFsRHJpdmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVzNDQ2FwYWJpbGl0aWVzfSBXM0NDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJEYXRhfSBEcml2ZXJEYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyT3B0c30gRHJpdmVyT3B0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNvbnN0cmFpbnRzfSBDb25zdHJhaW50c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkFwcGl1bVNlcnZlcn0gQXBwaXVtU2VydmVyXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcycpLkV4dGVuc2lvblR5cGV9IEV4dGVuc2lvblR5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzL2V4dGVuc2lvbicpLlBsdWdpbkNsYXNzfSBQbHVnaW5DbGFzc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9leHRlbnNpb24vZHJpdmVyLWNvbmZpZycpLkRyaXZlckNvbmZpZ30gRHJpdmVyQ29uZmlnXG4gKi9cblxuLyoqXG4gKiBVc2VkIGJ5IHtAbGlua2NvZGUgQXBwaXVtRHJpdmVyLmNyZWF0ZVNlc3Npb259IGFuZCB7QGxpbmtjb2RlIEFwcGl1bURyaXZlci5kZWxldGVTZXNzaW9ufSB0byBkZXNjcmliZVxuICogcmVzdWx0LlxuICogQHRlbXBsYXRlIFZcbiAqIEB0eXBlZGVmIFNlc3Npb25IYW5kbGVyUmVzdWx0XG4gKiBAcHJvcGVydHkge1Z9IFt2YWx1ZV1cbiAqIEBwcm9wZXJ0eSB7RXJyb3J9IFtlcnJvcl1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcHJvdG9jb2xdXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2Vzc2lvbkhhbmRsZXI8U2Vzc2lvbkhhbmRsZXJSZXN1bHQ8YW55W10+LFNlc3Npb25IYW5kbGVyUmVzdWx0PHZvaWQ+Pn0gU2Vzc2lvbkhhbmRsZXJcbiAqL1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/mutable.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/remove-index-signature.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/promise-value.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/utilities.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../support/build/lib/log-internal.d.ts","../../../node_modules/axios/index.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/capabilities.d.ts","../../types/build/index.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/buffer/index.d.ts","../../support/build/lib/image-util.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../support/build/lib/env.d.ts","../../support/build/lib/index.d.ts","../lib/logger.js","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/locate-path/index.d.ts","../../../node_modules/find-up/index.d.ts","../../../node_modules/uri-js/dist/es5/uri.all.d.ts","../../../node_modules/ajv/dist/compile/codegen/code.d.ts","../../../node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../node_modules/ajv/dist/compile/codegen/index.d.ts","../../../node_modules/ajv/dist/compile/rules.d.ts","../../../node_modules/ajv/dist/compile/util.d.ts","../../../node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../node_modules/ajv/dist/compile/errors.d.ts","../../../node_modules/ajv/dist/compile/validate/index.d.ts","../../../node_modules/ajv/dist/compile/validate/datatype.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","../../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","../../../node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../node_modules/ajv/dist/vocabularies/errors.d.ts","../../../node_modules/ajv/dist/types/json-schema.d.ts","../../../node_modules/ajv/dist/types/jtd-schema.d.ts","../../../node_modules/ajv/dist/runtime/validation_error.d.ts","../../../node_modules/ajv/dist/compile/ref_error.d.ts","../../../node_modules/ajv/dist/core.d.ts","../../../node_modules/ajv/dist/compile/resolve.d.ts","../../../node_modules/ajv/dist/compile/index.d.ts","../../../node_modules/ajv/dist/types/index.d.ts","../../../node_modules/ajv/dist/ajv.d.ts","../../../node_modules/ajv-formats/dist/formats.d.ts","../../../node_modules/ajv-formats/dist/limit.d.ts","../../../node_modules/ajv-formats/dist/index.d.ts","../lib/constants.js","../types/extension.d.ts","../types/cli.d.ts","../types/index.d.ts","../types/external-manifest.d.ts","../types/appium-manifest.d.ts","../../../node_modules/yaml/types.d.ts","../../../node_modules/yaml/util.d.ts","../../../node_modules/yaml/parse-cst.d.ts","../../../node_modules/yaml/index.d.ts","../../../node_modules/resolve-from/index.d.ts","../../../node_modules/cli-spinners/index.d.ts","../../../node_modules/ora/index.d.ts","../lib/cli/utils.js","../../../node_modules/package-changed/types/is-package-changed.d.ts","../../../node_modules/package-changed/types/index.d.ts","../lib/extension/package-changed.js","../lib/cli/extension-command.js","../lib/extension/extension-config.js","../lib/extension/manifest.js","../lib/schema/arg-spec.js","../../../node_modules/@types/argparse/index.d.ts","../lib/schema/cli-transformers.js","../lib/schema/keywords.js","../lib/schema/schema.js","../../../node_modules/@sidvind/better-ajv-errors/typings.d.ts","../../../node_modules/lilconfig/dist/index.d.ts","../lib/config-file.js","../lib/config.js","../../../node_modules/@types/async-lock/index.d.ts","../../base-driver/build/lib/basedriver/device-settings.d.ts","../../base-driver/build/lib/basedriver/core.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../base-driver/build/lib/basedriver/commands/timeout.d.ts","../../base-driver/build/lib/basedriver/commands/event.d.ts","../../base-driver/build/lib/basedriver/commands/find.d.ts","../../base-driver/build/lib/basedriver/commands/log.d.ts","../../base-driver/build/lib/basedriver/commands/settings.d.ts","../../base-driver/build/lib/basedriver/commands/session.d.ts","../../base-driver/build/lib/basedriver/driver.d.ts","../../base-driver/build/lib/constants.d.ts","../../base-driver/build/lib/protocol/protocol.d.ts","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../../base-driver/build/lib/protocol/errors.d.ts","../../base-driver/build/lib/protocol/routes.d.ts","../../base-driver/build/lib/protocol/index.d.ts","../../base-driver/build/lib/express/server.d.ts","../../base-driver/build/lib/jsonwp-proxy/protocol-converter.d.ts","../../base-driver/build/lib/jsonwp-proxy/proxy.d.ts","../../base-driver/build/lib/jsonwp-status/status.d.ts","../../base-driver/build/lib/basedriver/capabilities.d.ts","../../base-driver/build/lib/index.d.ts","../lib/utils.js","../lib/cli/args.js","../lib/schema/cli-args.js","../lib/schema/index.js","../lib/extension/driver-config.js","../lib/appium.js","../lib/grid-register.js","../../../node_modules/logform/index.d.ts","../../../node_modules/winston-transport/index.d.ts","../../../node_modules/winston/lib/winston/config/index.d.ts","../../../node_modules/winston/lib/winston/transports/index.d.ts","../../../node_modules/winston/index.d.ts","../lib/logsink.js","../../../node_modules/@colors/colors/index.d.ts","../lib/cli/driver-command.js","../lib/cli/plugin-command.js","../lib/cli/extension.js","../lib/cli/parser.js","../lib/extension/plugin-config.js","../lib/extension/index.js","../lib/main.js","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2f93dda35dafec68ec217c9ce67f0f4fbbbb030c055ac312641565ad60dd7e26","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","e3b886bacdd1fbf1f72e654596c80a55c7bc1d10bdf464aaf52f45ecd243862f","c665d5c50c2573aefd98f0ffb12c5583e333ed94294ce6f144a4163a8c84f09b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"839e0b959028f5385ca8de7b9d9c00d71a5955d52d2c98cb3e488a626f7b90b3","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","3fa48484c65913004d5abb5c0f917b61ea4684f32d05bb28c1ecfa5f05a9ed12","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"dd9ea469d1bfaf589c6a196275d35cb1aa14014707c2c46d920c7b921e8f5bca","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","ebdec596e6c49602efbfe9cee483ff982e998608bd41db07da1feca311eadab4","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"7e54932a41fec3a9c7e0753e52c8b18cc67b3ffdd01aaacd49b73d638186ee22","af4e1dce65c1820f6fe21bdf2c3931209c539cb498da760f05ab709f2033f2b3","73ab4f2d7964bbad113751c4d13dac7b834407ef4570b50ff67b3b765c07d312","d70d12830ae15bd5967b2b38cb7e24b3ba43bff853e305b33ed519253055ce08","c0618e33d0191171349412c9c7b983bc05081c29c635da9003a6cf7bc5d81746","c974e1ad2639f94de0b566947273e3f3b2dad004c9383bf0ea8df7cf96b1afea","5ab8773f7671da7bafa0f95a5530425a3e8374b8de4f352e64f6dd48c65681ed","bcaa4b2494b205265de37f2b4d5def521055753e8ac8aaabdfb53fd514e2bfb4","2c04fbe9e9b0ca02a0e6a549d21274b72424f3b091416fd63229114c6ac255b7","c19d76cf730f70c239ddcdc84cb78123f43964866e3cedf1ec98f640c5f3ea25","99e9a144144565db9b916035289ee80760c7542170a182312d8c9f4dcca1c276","248957877dde8ba14cd9b8d45947523da23e2fb467646e57cd902a76b2fc693b","1043a791036b9136fe8b3e287b24f14df803a503f6abb3f347b48d1c444a6954","094501dd2107ce40723bbcf30fbc0012631031c3337cbcc2dad153d8d550d7bc","bc1ed67a1d1491918740d86502e5b86369f4b7d6af10ca86340e6df9218ed9c9","55b7d009c3e8bae890063ebbb9c299d14edab7bbe9f98bceb12ef6979b1698fe","c5efedb8f1bd29ca1fd7720a45087344e14d1ea66378ac470450ea00d0f63975","161156b76821d27d22affa815f02d96706aa0861751aece957b5740dd33139ca","4023372ecd33decd9e17cd21272a86403ad60a4a913ccde6b01982a8535db442","d62e0155e4e6eb3d7a799e1fb555bb24ed6ecbebd158f87fc31e98ec6b5fcf73","c38b9f9179364943113b3eb1dd1d86d580dd1b56b68203ced15a013e9e317f29","e157c542921a03c19bafc06a1ae6bfc377359b0d88d8995591a8cdc66d7bf027","491357771c3101332dbd241a58b3733c194a1ed1ca92e371361e702c8849afe2","d1406b0eee2a415d31130b6e8771b6d0eddf70658efbafe9723aad38f58dc63c","b05b738e0e28dfa84e59a038c8287335b6ca9f16c858bd95ed930de0845f18af","dff0fdb7dc8f8ed00db44b493f77b921312ce9ed8493cda4cc82a92e48914756","338aeec8241a5d326cf4afd96408f6ff36b20ff461ee35597bf84a8f707a2745","13b6d7b987a6c306c0f7d27d77136797edc88ac47fd5893c93b8ed51f9912be9","cfa6b71c0cb889d2a210dac350ef928d532cadb26f4035bc405ef03f80b4ce17","4de53c71c9fc54d7fa8870b95b44092ff53eb6fddcfd402e360ac421318f1ca8","1c6c29857deb02e33ec045a67c375eb210a3ea4bc61b5e8078d2fab2ebf7831e","8f36a2e511f634b14983b31199a813b6d91e9f5c8ca1a81c446cfcbe3a8cda45","7e7bf5e592f90ac5784005a7d10f9960d6ff02edebdc18ab87f8cb154d5c16ab","e1b74834e5baec5460bd44dd7c5e389337ebe9eb7903743d1a9dd5b75702ac73","5d4143cf9c0350f01ed6e3d72953c4d22b4abda0a0b2c6d83a595ca061a367a4","9aaf4ee44bdac023b659f1b5e8cfdf56f774edd182c4fec46708d79f6a762298","87b0641dd8bb365de2f97ec5be3ea7aa1bd714ea43f76b6b36039c5dd194e3eb","a47240f5153913c434c66cd660bbcbb01c97f6717756a14c2f59ac7feb49a134","b415d8fc78ef908cc3f02d031e5e9a1cf269dd386212aedd273a0601de175bac","679a500b60fdb879af3ff20dab0bc5937098dd1ea5b75f786c672fde09faaeef","4372b912f51cbf9f0da164599e0934031bff3f5135af1cd6425bd9e384167e0b","5a988bc94b1937ee835a83ae7bb7555a21b8bbcdfd4c8c705d1789d7a8244bc2","0eda42cf7a88e5186bbab20c42eef4cc3a7377da80c71a7bae01f224223f667c","3b2f213b50c0a3abc9ee877b3af6cb7d42bd7939c00801bfc39cb44fb9a4ac05","b484c72c73b4ae0cdee6bfb85f0ae6152b4435b59169fb460044305ef18429cf","d9df799b7d4d7d9a24b201ddffc575b1840e25f1a273650de6eef40f384b6239","ca89e452207fee3233d2cb45c28ad0a4a7e30ddf40b9ac69891dd2242859c6f9","dac79ace008b4b9147644e4d8834b4a62378990e1a1730843ac488fdf6ff5f32","54f6aeeb17ad58793455ad005027bc452b722f31755ac4d15c46bef05f941e58","48fc89daea2775641083563b0671d541dfa464f4aed9ecd6d1e1f61647e759d1","55eb179223f788fcb055cba854b63effc973f7d51cf130ab866fc161c30dd918","03107dc521b6273cf190f0be264b6f69cb43355c24320cc9e760c9ab6a7fdb22","8fb7a5ccc8533b5950772a7722d1f99c846274c7dec01d40c8f96f4fb559a7b8","1a9958339bc9d1092c53a7f13c08d29eac812534c3f61c7c7a2157ef558131a1","30137eda48ba9ccce5dfd6fa79dea587739cddfab6e280fc85f019d21488b393","e6c5a9682cb3328d41eb7f25fa231075f29307319a9d7ac679e52a7b74b6539c","0617c0c6bc0e35226b6000ef3e47fc45697348d33c305e61484b7d264f4737da","73a5569de4e23f58160c68e74b48587950b118d0105f9d71b86ae40fa5c258c4","16d7f5de02bfb62a7a69ef9497c790ed4a8119ce159b14cb763f2432298286e8","c79b44c1518bd3d1ad75aa82f2e54be1bde86cd7663624874c4047a8fc97f833","047f4ee6646463fb4fa44cd6d8083342713a4704693ce64942e77f62a1da0c38","1ccd27d6127a24d5abe36413f68b5e928c9e6f2cbab9825898379ecf18108dc2","baa32aa38cd8ac7128c5a5817a32d8dc8fd8d635a647b16a12485ae27df107ed","2641aff32336e35a5b702aa2d870a0891da29dc1c19ae48602678e2050614041","afb49d6869006d1ecab1c821fffaba08ff9fcbee6a23d1c25b1d894f7e2a727e","0a291a265ed539906809ac356e112b1b02226acd5db0707d0dbd6272d0ae7bd1","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","e8a3a142b4aa3acd0d61105fcffb3258a84560f94d13c362aae42925609c74e8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","2dfe19de498444b172b62f86063f4a075203f023c35b860aa6a0e9e84ea901fe","013825efd63394b0b8869432cfb1d3879189aba9a0da979df808dc3fe55624e9","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","2808645b990069e5f8b5ff14c9f1e6077eb642583c3f7854012d60757f23c70e","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","3859648477a239f3a210119e53b0d3b455b9760bf38bed50a933326ae00f0c83","ba00bb2ada9a5b7e0ab18c7282c0161f5af809112e4439b35c8b3853f7d436a7","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","dda8410786fe1a473b420c6b95ab797b3cdac5705806ada1e062754b13291e79","60a4f4d1acdf72f3f07b9750884ca59e0d0333f016c071cb97215132c0625e67","7edae9abf00228304f215d24f9c1d5e87b6fd09e1f0eebebe5348772c2d7afd3","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"aef0597f694334e5da630438a38b966d7da7b5265af8f0f3685d1baf42df5178","affectsGlobalScope":true},"10487580175f86d0789473002b4b6e6606f9a4d7d3965f91066361aa8629297a","7b98187f36117de7c6be031cd0fecd133a1965da7e65f995fb1e329b9b892902","0c986e09efecf29b8cef361937b46764750dbb8902241ae5f0ab4e6fd526bbd2","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","b2d70a269840a9528db473ac7565442434333a05c1f66801a7a672e82beb903e","d8eeb61233755ec2ff1fee38ab3a423843128e499d69d62e90e54d436fc0890c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","bfea1f2e8cfd701e13959c0d169f3881518627c561aa3ff737cd7c884669332b","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","804867f5fca5c3dc223c5cd72d9a67f55054c9470d8070b82c6c60af12ed947c","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","527f5003200ae2336b474ff3c190916a2591f8260d68e1d93c1c6b276231fbda","0a953abb3c7483a9ca87e3adcc0a9799450b4b9be169c041bd77fa17a59303ea","d72866f8861b27f0eb88c4f0b45559848e0d0e86e84325a932c3ea90cfe1e267","d9e55d93aa33fad61bd5c63800972d00ba8879ec5d29f6f3bce67d16d86abc33","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","c544d81603149987796b24cca297c965db427b84b2580fb27e52fb37ddc1f470","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","9eb2875a1e4c583066af7d6194ea8162191b2756e5d87ccb3c562fdf74d06869","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","6eef5113135a0f2bbac8259909a5bbb7666bcde022c28f4ab95145623cbe1f72","058b8dd97b7c67b6bf33e7bda7b1e247b019b675d4b6449d14ac002091a8b4f8","89c8a7b88c378663a8124664f2d9b8c2887e186b55aa066edf6d67177ca1aa04","5a30ba65ad753eb2ef65355dbb3011b28b192cb9df2ef0b5f595b51ca7faf353","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","86d425f7fcd8d100dafa6286cc289af88cbb639ecbdbd25c3018a8f0f7b09fe5","9795e0a3a45d5b6f1a791ee54b7c8b58bc931e8900966cea2dff9c5bae56073b","5890be29879d02424b7654f40592915189034948f7a18c5ad121c006d4e92811","0ab49086f10c75a1cb3b18bffe799dae021774146d8a2d5a4bb42dda67b64f9b","81c77839e152b8f715ec67b0a8b910bcc2d6cf916794c3519f8798c40efd12ac","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","464843c00fb3dd4735b28255c5c9fe713f16b8e47a3db09ba1647687440f7aef","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","d0f6d36b2d86f934560c48d8bfdc7ab60c67cfb2ab6dc1916706aa68e83d6dc2","da2bb7623035cf8dd05721cc91161d9baffc303aa51a237c71281fc1a52e5691","461f5886f7cb604443d2a5865466d838e75efa24845ed9c9d0c0eecf2c88b0a1","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","44a8d350600656882fd7462774e32e8d13788313ba2e36d2e8d5437ac91b98df","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","7dfd0308261bb91b058eb91802690fe3f09192b263e070a19df4d629df29e265","608eb9d411ac76e93a10e05f8aae92b3a5cefc87594219b737df7c8737ba2bd7","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","93ba4ac36f570c70a12d588e21c10dda9f351fad3e77d416952acddb27bff01d","8750f9dc1e277ffff7446c95571bae61aca0984e8f99e40fc1e8cb7161ae0642","66408d81ba8962282b1a55da34c6bd767105141f54d0ba14dca330efe0c8f552","7481b9d93ca44eb1f689e0b939545ff00dead7bdb9daba401dfb74292d83f831","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","18992725cbd51b0846132ec46237bc7de4da1db440deb66a6242e2de8715dcfb","44f29187cfbc7aa4a6109204c8e5186509abc3b78874a2ee1498c51ab50f0f62","19ab78c1376c16e18c5b87dfa750813c935f0c4ce1d6ef88058ec38f9cf5ef08","0e65c51650d96dd355f194d33c78f724f409eb3250632df7c3366cd536417357","985955d568c9f16a4858f635cb14b04c134c7f9cd9a84fc1eb75c1e3a0461a65","65f9b6570d802460f45a6d10d5dd73e5391ff49407494fa5a0b463b66e4c25af","d80e8cc73f00b0028498678e85b1ce600151a9b18c7e4b205d987689e22c3857","f47fa5049440a0d299b61313b85c0bf42d354c310bdf5d8d6c63daea1dd39c8c","4c6cbe2b08ff58752d6a77d7d36ffba04a39fc232d77b80eb96b87596831bbb7","c3a8e97bce8330542633139409885c529c46ff9bcf8fda0dc28a7c8fdda41e24","4d99772cffbb09646a934867ca42d77337dc3cfd591b648b78fc0b6e09e2d88d","b10413a27f0fa373997ebf631da8af501d6b36bdfe627475b3ec5ef98e9bc80d","b3280c01b5c948bb27e60a94076b4ed23e34db4044d687ef628a5831c09c9811","a5cd2e379198aa40fb10141d5e8273cc22b09bff6b8c3cd982b651fdd8d5d999","c2a70cf2999d7ccd2f87c22042393b853e01bb2994d6561071aa53a82926c0de","437ce3def325725c84c242f916886e634ff8f133356ea88ccb4bdd425792bb36","3b3fb847476e5e4df309c698e6c0ae67d6404d65c42e783a788de7f8b301cfa1","7375c4070c250792059930f831038f95b307f091ec534c235224173abf0443c6","b383680e4aa4fcc240c7e6f0e670e73e54694e877f094cdfc171d5e308e87721","4f6483ee07e33f53f0be8acd92b6f300e725c9a23047ef5d5f016ddfb1f04263","96cbad2d2b4721173db757e11ee1a3b30c133901d579d90c17505e378bb5fd16","9f9f71b8d07919e8f2d3c60b6dc4a8cf859ceb1e79918259cefb1df23f6bf8f1","5afdc8ac4ec3ae160c481277425c0cd1a290dea0a1163fa9442eee770d268efa","c5fdab20ccbd146cd4ec31d54623cde8a542457a3343219fe70d3afbacc609af","dac69319e7c96790211dd55fbb25831b7bf6e63f7645297a2c8f46247d44d889","8197115beddcda3919d12afd09692f43a56a5cdffed7991248f387a3dd1e6b09","914a2dc4daa91de1e4b460b737daa90c22dc9f839e4d21eaa68741bf6b58888d","6cd1a175c010a9130dca86562c9d91aca8ec08e7586b1cab845cea7af9d86a66","75cf4ad42e6028796dfc8602566e7a3893a8c7445484ae29fdb5d1ba41edeac3","3b04a26f496144be27057c5aef59ed2f1b906ef9f60df4aab074322b238c4890","9aab50a805b90a422a2c75e9d373aa236072537f6592572a018472dd7dcd73c5","72c9dd6d9742ec480aa0bee4a092f8771808371b97705f2773dcfd9944d30bb2","4a6cfa489f007805fec38a25b8c38889c41c6a9c5875a24625ac2cf3ce9f046d","76423aa497bcb7540e89718dd46a82bc42ba6a42fbe2149ce7150fed073cab7a","0a0147524874ad7f3221f1194f75eb6de3aeccf6263ed9292a253a4390ad1679","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","32998d5cda7a051b767de6fb34e1585adab73428172e56058cd8ac2d26314330","f0d7fd669e7c3c95a74f570f07b0d791dd9ccdc5b87e1dbb235ae9c9b4487bb3","b23c97e28b07bfdc4bab2df23268bfd4364130b6b9389436c2f4c296302d48b0","30248bd938cf5c970fa05276fa16f75ed645b967e49fb626a40a3198ff427cac","c52b3e2c50afb37edf529e43d28efaec0044af89ee885ddedd937d353942200b","ff495ee22655f5b8d28d88bdb11ed9999d04a963cc3b71d9bf44feb15c0d7d7a","23d67deeeece450155480afc36be56c1634201018c867b0bcd9d4a72ad6a9042","7ca56e4c578c8688979ac94aaed8ee4815c9406db9b5970de232f9a99e550366","b9ef7ea935aff11e6ee2875ba1b3e900b4524c852fcbb1965e5e41f42ddd299b","87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f","af9bcf395f112441d9cec93d59bd58faec117e5a7d6c87690bb5caa348ae0dab","9eb5ab1a2ebe06415e636833be031bd8d43fd104dcadd35dd5d6033771c6ff6a","78dbcd57db4d1bfdd33b4d84d78b31c0c1944067ee8b91a9fdb37492b210b273","4bf90339b877384006bcb7bd3b8a9260242ab0926d14531f80e4e6961d5df730","d7da4a1744d9516461b0301a70f5ff5a4d9372e5dfbcb95cbb55c45ca316efa0","56c545588c0707bd967f98595be243d3ac78c9793a8bd1dcc637100c8f06247d","c8865994df8b62fcd7a50c958ecc8dc949240bdb5b8a9e6b99e633df587da94f","ce09862a18df8c6bccaf65ef790abe8ba1769e45b4bf0871f066cd15ef632cb0","ef6f3fa4754f9e072acb608cf4eabaa2d046f8eb053a782cd6c96190bd899458","82333e6502dbb635b59eb6f4c6f09b458346d83d6b76913cd8844c8452675c65","d826e6217bc81f4356c7cca885cbff32066e7d3db84488ca3756f14ea71eacf0","a6393b4e9755b702dee5a30ed9443cf291e7180a619203758fda9c04c784dbf4","d58f464b0a39d8e84c3a40dfc2e8366a4d4f44d9be85669e3fda847a0ab44d7e","8cf139a8cecbbc44346487804f4232438e65bf42a2f310db64108059c0d8cd75","4ce5d7d892a05478c0b662534cc142a261727e06ebde9fbe6f228964bcd5aab7","5e1ca4806486860d6d49a02484b781fa0ea77ff220a9e6d15bc94e2ab1f52084","bde7145847f9d96c421edf5ffce65df0be1d693ce38e1f088bbe55bbb9496a33","d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","d11bb48adbad42e6f3f22748911486299764d53af4def77a5ad9dead0955ad38","3c8ba5897e03c21eea1b84054538d7aedef8dc00b8c3953e6f623dc5fd1a1c00","af42f53fc3e56e38c2624e209fd8ec26a6d10f9f29e8d7d800bca31cfe48f8fd","0392a64c34995336b2795246ef5a830980ca9a343049293ac27b71148bf67d86",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"de009d2730be0ced7b44451bab16c8ae6a17e2831779e855e34e02b778ada27b","91289d74b647cc2547b25b0b0a82c16c5da200d47bb15da6ef9c50b2bcb4e78c","be32c3e7ed2e1f781b96b7ca60fdd64fb28b45f8de25fc5a65850d2f82339dab","e3677fc934bd97fe4787ebfeb5959d5774194cdbfb84633851117f0a4b261124","5c702025a7db15e9df6908faddd8a1d6915250bdc1a96a730a99197ea56b62f9","1afdcd3a5a750010b23019e27f2dc1d22eb7fe9443bb00a98762102aec90ddf1","b5471020464ff9f75ddbc8ff6bdc8d06df31408cb63db7e6bf5eb7e1e53f7f28",{"version":"30bf01dd2e284098445264c8d71c608890cc11c142f36d0193aa655bdc0a40cb","affectsGlobalScope":true},{"version":"c8747693e5872ad5ef3aa016731a06915e1c34dae987829d9aa5bd40c7a2c54b","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","24a09dc3e07d69b0a224dbd14b2994c40d1efd0954e759004b61b9e683dabe5f",{"version":"0fd3b5704bf037608646df5aa053fd06819ff69302ff6ada9736c300f79df852","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"module":5,"outDir":"./","removeComments":false,"rootDir":"..","strictNullChecks":true,"target":2},"fileIdsList":[[111],[111,249],[111,244],[111,244,245,246,247,248],[111,245],[111,245,247],[111,248],[111,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276],[111,250,251,252,253,254],[111,375],[86,111,118,416],[111,465],[86,111,118],[83,86,111,118,411,412],[111,412,413,415,417],[83,84,111,118,196],[84,100,111,118],[55,57,58,59,60,61,62,63,64,65,66,67,111],[55,56,58,59,60,61,62,63,64,65,66,67,111],[56,57,58,59,60,61,62,63,64,65,66,67,111],[55,56,57,59,60,61,62,63,64,65,66,67,111],[55,56,57,58,60,61,62,63,64,65,66,67,111],[55,56,57,58,59,61,62,63,64,65,66,67,111],[55,56,57,58,59,60,62,63,64,65,66,67,111],[55,56,57,58,59,60,61,63,64,65,66,67,111],[55,56,57,58,59,60,61,62,64,65,66,67,111],[55,56,57,58,59,60,61,62,63,65,66,67,111],[55,56,57,58,59,60,61,62,63,64,66,67,111],[55,56,57,58,59,60,61,62,63,64,65,67,111],[55,56,57,58,59,60,61,62,63,64,65,66,111],[84,111,118],[68,111],[71,111],[72,77,111],[73,83,84,91,100,110,111],[73,74,83,91,111],[75,111],[76,77,84,92,111],[77,100,107,111],[78,80,83,91,111],[79,111],[80,81,111],[82,83,111],[83,111],[83,84,85,100,110,111],[83,84,85,100,111],[86,91,100,110,111],[83,84,86,87,91,100,107,110,111],[86,88,100,107,110,111],[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[83,89,111],[90,110,111],[80,83,91,100,111],[92,111],[93,111],[71,94,111],[95,109,111,115],[96,111],[97,111],[83,98,111],[98,99,111,113],[83,100,101,102,111],[100,102,111],[100,101,111],[103,111],[104,111],[83,105,106,111],[105,106,111],[77,91,107,111],[108,111],[91,109,111],[72,86,97,110,111],[77,111],[100,111,112],[111,113],[111,114],[72,77,83,85,94,100,110,111,113,115],[100,111,116],[100,111,116,118],[84,111,118,197],[111,289,328],[111,289,313,328],[111,328],[111,289],[111,289,314,328],[111,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327],[111,314,328],[86,111,118,414],[111,465,467],[111,466],[73,83,110,111,118],[83,100,111,118],[111,233],[111,234],[111,228],[111,230,231,232,233,234,235,236],[86,88,110,111,118,229,231,232,234],[83,84,111,118],[111,118,230,233,234],[83,111,118,233,234],[111,375,376,377],[111,334,335,339,366,367,371,373,374],[111,332,333],[111,332],[111,334,374],[111,334,335,371,372,374],[111,374],[111,331,374,375],[111,334,335,373,374],[111,334,335,337,338,373,374],[111,334,335,336,373,374],[111,334,335,339,366,367,368,369,370,373,374],[111,331,334,335,339,371,373],[111,339,374],[111,341,342,343,344,345,346,347,348,349,350,374],[111,364,374],[111,340,351,359,360,361,362,363,365],[111,344,374],[111,352,353,354,355,356,357,358,374],[111,329],[111,429,430,431,432],[111,249,255,277],[111,390],[111,393],[111,214,215],[111,204,205,206,207,208,209,210,211,212,213],[111,204],[111,205],[111,214],[111,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[111,143],[111,143,156],[111,163,164],[111,165],[111,125,145],[111,145],[111,163],[111,168],[111,154],[111,124],[111,162,163,164],[111,120],[111,138],[111,122],[111,172],[111,170],[111,125,126],[111,136],[111,174],[111,125],[111,168,177,180],[100,111,118,450],[100,111,118,450,451,452,453],[111,118],[86,111,118,451],[111,385,386,387],[111,386],[111,386,387,388],[111,385,387,388],[67,111,188,239,287,380,382,407,408,442,443,446,447],[67,111,379,381,397,398,400,445],[67,111,379,396,397,398,456],[67,93,111,119,287,379,382,383,384,392,395,397],[111,239,379,382,392,397,398,457,458],[67,93,111,287,379,381,399,400,407,444,446],[67,111,379,396,397,398],[111,391],[67,111,239,375,388,403,404,405,406],[67,111,119,221,287,288,328,330,381,399,403,406],[67,111,239,288,379,380,382,383,384,397,398],[67,93,111,288,375,380,382,384,389,396,398,403],[67,111,288,379,382,398,447,461],[67,93,111,203,287,288,379,382,383,384,388,395,397],[93,111,287,288,379,394],[67,111,288,379,382,383,384,397,398],[67,111,221,287,288],[111,287],[67,111,222,287,454],[67,86,111,239,287,288,379,380,381,382,403,406,407,442,443,448,449,455,459,460,462],[67,111,398],[67,111,223,374,399,400,401,402,403,406,444],[67,84,111,400],[111,403,445],[111,375,401],[67,93,111,225,375,378,379,398,399,402],[67,111,239,288,442],[111,382,383],[111,239,379],[111,239,382],[111,188,375,382],[111,380,381,383,384],[111,234,239],[111,239,419,425],[111,239,420,425],[111,239,421,425],[111,239,423,425],[111,239,422,425],[111,239,425],[83,111,234,239,408,409],[111,239],[111,188,239,410,418,424],[111,239,409,410,425,426,434,436,437,439,440,441],[86,88,111,118,239,438],[111,428,433],[111,427,434,435],[111,223],[111,224],[67,111,216],[84,111,118,194,197,198,199,200,201,202,203,216],[72,111,118,278,279],[111,189,190,191,195,217,218,219,240,241,243,281,282,283,284,285,286],[111,220,239],[100,111],[111,221],[111,119,188],[111,192,193,194],[111,242],[111,237],[111,225,226],[83,86,111,118,188,221,222,226,227,238]],"referencedMap":[[456,1],[252,2],[245,3],[246,3],[249,4],[244,5],[248,6],[247,7],[254,2],[250,2],[256,2],[257,2],[258,2],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[265,2],[266,2],[267,2],[268,2],[269,2],[270,2],[271,2],[272,2],[273,2],[274,2],[275,2],[276,2],[277,8],[251,2],[253,2],[255,9],[404,10],[400,1],[408,1],[194,1],[417,11],[469,12],[465,1],[416,13],[413,14],[418,15],[197,16],[223,1],[203,17],[56,18],[57,19],[55,20],[58,21],[59,22],[60,23],[61,24],[62,25],[63,26],[64,27],[65,28],[66,29],[67,30],[414,1],[196,1],[464,1],[198,1],[200,31],[68,32],[69,32],[71,33],[72,34],[73,35],[74,36],[75,37],[76,38],[77,39],[78,40],[79,41],[80,42],[81,42],[82,43],[83,44],[84,45],[85,46],[70,1],[117,1],[86,47],[87,48],[88,49],[118,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[95,57],[96,58],[97,59],[98,60],[99,61],[100,62],[102,63],[101,64],[103,65],[104,66],[105,67],[106,68],[107,69],[108,70],[109,71],[110,72],[111,73],[112,74],[113,75],[114,76],[115,77],[116,78],[215,1],[222,44],[279,79],[412,1],[411,1],[199,80],[313,81],[314,82],[289,83],[292,83],[311,81],[312,81],[302,84],[301,84],[299,81],[294,81],[307,81],[305,81],[309,81],[293,81],[306,81],[310,81],[295,81],[296,81],[308,81],[290,81],[297,81],[298,81],[300,81],[304,81],[315,85],[303,81],[291,81],[328,86],[327,1],[322,85],[324,87],[323,85],[316,85],[317,85],[319,85],[321,85],[325,87],[326,87],[318,87],[320,87],[415,88],[193,1],[468,89],[467,90],[466,1],[119,91],[192,1],[201,1],[242,92],[234,93],[235,94],[229,95],[230,1],[237,96],[233,97],[232,98],[231,99],[236,100],[376,10],[378,101],[377,10],[375,102],[332,1],[334,103],[333,104],[338,105],[373,106],[370,107],[372,108],[335,107],[336,109],[340,109],[339,110],[337,111],[371,112],[369,107],[374,113],[367,1],[368,1],[341,114],[346,107],[348,107],[343,107],[344,114],[350,107],[351,115],[342,107],[347,107],[349,107],[345,107],[365,116],[364,107],[366,117],[360,107],[362,107],[361,107],[357,107],[363,118],[358,107],[359,119],[352,107],[353,107],[354,107],[355,107],[356,107],[221,1],[280,1],[390,1],[428,1],[330,120],[433,121],[432,1],[431,1],[430,1],[429,1],[278,122],[405,1],[329,1],[450,1],[391,123],[394,124],[393,1],[216,125],[214,126],[204,1],[205,1],[211,127],[208,1],[207,128],[206,1],[213,129],[212,1],[210,127],[209,128],[389,1],[202,1],[188,130],[144,131],[157,132],[122,1],[165,133],[167,134],[166,134],[146,135],[145,1],[147,136],[168,137],[172,138],[170,138],[155,139],[154,1],[125,140],[150,1],[184,141],[180,140],[124,142],[139,143],[153,1],[182,1],[158,144],[169,138],[173,145],[171,146],[185,1],[160,1],[136,142],[129,1],[128,147],[151,140],[152,140],[127,147],[161,1],[123,1],[138,1],[186,148],[134,140],[174,134],[176,149],[175,149],[120,1],[137,1],[143,1],[135,140],[133,1],[132,1],[130,150],[131,1],[159,1],[181,151],[140,147],[141,147],[156,1],[126,1],[177,138],[179,145],[178,146],[164,1],[162,1],[149,1],[183,1],[187,1],[121,1],[148,1],[163,1],[142,1],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[45,1],[41,1],[42,1],[43,1],[44,1],[9,1],[49,1],[46,1],[47,1],[48,1],[50,1],[10,1],[51,1],[52,1],[53,1],[2,1],[1,1],[11,1],[54,1],[15,1],[14,1],[228,1],[331,1],[451,152],[454,153],[452,154],[453,155],[388,156],[387,157],[385,158],[386,159],[448,160],[444,161],[457,162],[396,163],[459,164],[460,165],[458,166],[392,167],[406,168],[407,169],[379,55],[447,170],[397,171],[462,172],[398,173],[395,174],[461,175],[449,176],[288,177],[455,178],[463,179],[399,180],[445,181],[401,182],[446,183],[402,184],[403,185],[443,186],[384,187],[381,188],[380,189],[383,190],[382,191],[441,192],[420,193],[421,194],[422,195],[424,196],[423,197],[419,198],[410,199],[409,200],[425,201],[426,1],[437,1],[442,202],[438,1],[439,203],[440,1],[434,204],[436,205],[427,1],[435,200],[224,206],[225,207],[286,208],[217,209],[281,210],[287,211],[220,1],[240,212],[283,213],[219,31],[282,214],[284,1],[189,215],[218,1],[241,1],[191,1],[190,1],[285,1],[195,216],[243,217],[226,1],[238,218],[227,219],[239,220]],"exportedModulesMap":[[456,1],[252,2],[245,3],[246,3],[249,4],[244,5],[248,6],[247,7],[254,2],[250,2],[256,2],[257,2],[258,2],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[265,2],[266,2],[267,2],[268,2],[269,2],[270,2],[271,2],[272,2],[273,2],[274,2],[275,2],[276,2],[277,8],[251,2],[253,2],[255,9],[404,10],[400,1],[408,1],[194,1],[417,11],[469,12],[465,1],[416,13],[413,14],[418,15],[197,16],[223,1],[203,17],[56,18],[57,19],[55,20],[58,21],[59,22],[60,23],[61,24],[62,25],[63,26],[64,27],[65,28],[66,29],[67,30],[414,1],[196,1],[464,1],[198,1],[200,31],[68,32],[69,32],[71,33],[72,34],[73,35],[74,36],[75,37],[76,38],[77,39],[78,40],[79,41],[80,42],[81,42],[82,43],[83,44],[84,45],[85,46],[70,1],[117,1],[86,47],[87,48],[88,49],[118,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[95,57],[96,58],[97,59],[98,60],[99,61],[100,62],[102,63],[101,64],[103,65],[104,66],[105,67],[106,68],[107,69],[108,70],[109,71],[110,72],[111,73],[112,74],[113,75],[114,76],[115,77],[116,78],[215,1],[222,44],[279,79],[412,1],[411,1],[199,80],[313,81],[314,82],[289,83],[292,83],[311,81],[312,81],[302,84],[301,84],[299,81],[294,81],[307,81],[305,81],[309,81],[293,81],[306,81],[310,81],[295,81],[296,81],[308,81],[290,81],[297,81],[298,81],[300,81],[304,81],[315,85],[303,81],[291,81],[328,86],[327,1],[322,85],[324,87],[323,85],[316,85],[317,85],[319,85],[321,85],[325,87],[326,87],[318,87],[320,87],[415,88],[193,1],[468,89],[467,90],[466,1],[119,91],[192,1],[201,1],[242,92],[234,93],[235,94],[229,95],[230,1],[237,96],[233,97],[232,98],[231,99],[236,100],[376,10],[378,101],[377,10],[375,102],[332,1],[334,103],[333,104],[338,105],[373,106],[370,107],[372,108],[335,107],[336,109],[340,109],[339,110],[337,111],[371,112],[369,107],[374,113],[367,1],[368,1],[341,114],[346,107],[348,107],[343,107],[344,114],[350,107],[351,115],[342,107],[347,107],[349,107],[345,107],[365,116],[364,107],[366,117],[360,107],[362,107],[361,107],[357,107],[363,118],[358,107],[359,119],[352,107],[353,107],[354,107],[355,107],[356,107],[221,1],[280,1],[390,1],[428,1],[330,120],[433,121],[432,1],[431,1],[430,1],[429,1],[278,122],[405,1],[329,1],[450,1],[391,123],[394,124],[393,1],[216,125],[214,126],[204,1],[205,1],[211,127],[208,1],[207,128],[206,1],[213,129],[212,1],[210,127],[209,128],[389,1],[202,1],[188,130],[144,131],[157,132],[122,1],[165,133],[167,134],[166,134],[146,135],[145,1],[147,136],[168,137],[172,138],[170,138],[155,139],[154,1],[125,140],[150,1],[184,141],[180,140],[124,142],[139,143],[153,1],[182,1],[158,144],[169,138],[173,145],[171,146],[185,1],[160,1],[136,142],[129,1],[128,147],[151,140],[152,140],[127,147],[161,1],[123,1],[138,1],[186,148],[134,140],[174,134],[176,149],[175,149],[120,1],[137,1],[143,1],[135,140],[133,1],[132,1],[130,150],[131,1],[159,1],[181,151],[140,147],[141,147],[156,1],[126,1],[177,138],[179,145],[178,146],[164,1],[162,1],[149,1],[183,1],[187,1],[121,1],[148,1],[163,1],[142,1],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[45,1],[41,1],[42,1],[43,1],[44,1],[9,1],[49,1],[46,1],[47,1],[48,1],[50,1],[10,1],[51,1],[52,1],[53,1],[2,1],[1,1],[11,1],[54,1],[15,1],[14,1],[228,1],[331,1],[451,152],[454,153],[452,154],[453,155],[388,156],[387,157],[385,158],[386,159],[448,160],[444,161],[457,162],[396,163],[459,164],[460,165],[458,166],[392,167],[406,168],[407,169],[379,55],[447,170],[397,171],[462,172],[398,173],[395,174],[461,175],[449,176],[288,177],[455,178],[463,179],[399,180],[445,181],[401,182],[446,183],[402,184],[403,185],[443,186],[384,187],[381,188],[380,189],[383,190],[382,191],[441,192],[420,193],[421,194],[422,195],[424,196],[423,197],[419,198],[410,199],[409,200],[425,201],[426,1],[437,1],[442,202],[438,1],[439,203],[440,1],[434,204],[436,205],[427,1],[435,200],[224,206],[225,207],[286,208],[217,209],[281,210],[287,211],[220,1],[240,212],[283,213],[219,31],[282,214],[284,1],[189,215],[218,1],[241,1],[191,1],[190,1],[285,1],[195,216],[243,217],[226,1],[238,218],[227,219],[239,220]],"semanticDiagnosticsPerFile":[456,252,245,246,249,244,248,247,254,250,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,251,253,255,404,400,408,194,417,469,465,416,413,418,197,223,203,56,57,55,58,59,60,61,62,63,64,65,66,67,414,196,464,198,200,68,69,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,70,117,86,87,88,118,89,90,91,92,93,94,95,96,97,98,99,100,102,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,215,222,279,412,411,199,313,314,289,292,311,312,302,301,299,294,307,305,309,293,306,310,295,296,308,290,297,298,300,304,315,303,291,328,327,322,324,323,316,317,319,321,325,326,318,320,415,193,468,467,466,119,192,201,242,234,235,229,230,237,233,232,231,236,376,378,377,375,332,334,333,338,373,370,372,335,336,340,339,337,371,369,374,367,368,341,346,348,343,344,350,351,342,347,349,345,365,364,366,360,362,361,357,363,358,359,352,353,354,355,356,221,280,390,428,330,433,432,431,430,429,278,405,329,450,391,394,393,216,214,204,205,211,208,207,206,213,212,210,209,389,202,188,144,157,122,165,167,166,146,145,147,168,172,170,155,154,125,150,184,180,124,139,153,182,158,169,173,171,185,160,136,129,128,151,152,127,161,123,138,186,134,174,176,175,120,137,143,135,133,132,130,131,159,181,140,141,156,126,177,179,178,164,162,149,183,187,121,148,163,142,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,45,41,42,43,44,9,49,46,47,48,50,10,51,52,53,2,1,11,54,15,14,228,331,451,454,452,453,388,387,385,386,448,444,457,396,459,460,458,392,406,407,379,447,397,462,398,395,461,449,288,455,463,399,445,401,446,402,403,443,384,381,380,383,382,441,420,421,422,424,423,419,410,409,425,426,437,442,438,439,440,434,436,427,435,224,225,286,217,281,287,220,240,283,219,282,284,189,218,241,191,190,285,195,243,226,238,227,239]},"version":"4.6.3"}
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es6.d.ts","../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/teen_process/index.d.ts","../../../node_modules/type-fest/source/primitive.d.ts","../../../node_modules/type-fest/source/typed-array.d.ts","../../../node_modules/type-fest/source/basic.d.ts","../../../node_modules/type-fest/source/observable-like.d.ts","../../../node_modules/type-fest/source/internal.d.ts","../../../node_modules/type-fest/source/except.d.ts","../../../node_modules/type-fest/source/simplify.d.ts","../../../node_modules/type-fest/source/mutable.d.ts","../../../node_modules/type-fest/source/merge.d.ts","../../../node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/type-fest/source/require-exactly-one.d.ts","../../../node_modules/type-fest/source/require-all-or-none.d.ts","../../../node_modules/type-fest/source/remove-index-signature.d.ts","../../../node_modules/type-fest/source/partial-deep.d.ts","../../../node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/type-fest/source/promisable.d.ts","../../../node_modules/type-fest/source/opaque.d.ts","../../../node_modules/type-fest/source/invariant-of.d.ts","../../../node_modules/type-fest/source/set-optional.d.ts","../../../node_modules/type-fest/source/set-required.d.ts","../../../node_modules/type-fest/source/value-of.d.ts","../../../node_modules/type-fest/source/promise-value.d.ts","../../../node_modules/type-fest/source/async-return-type.d.ts","../../../node_modules/type-fest/source/conditional-keys.d.ts","../../../node_modules/type-fest/source/conditional-except.d.ts","../../../node_modules/type-fest/source/conditional-pick.d.ts","../../../node_modules/type-fest/source/union-to-intersection.d.ts","../../../node_modules/type-fest/source/stringified.d.ts","../../../node_modules/type-fest/source/fixed-length-array.d.ts","../../../node_modules/type-fest/source/multidimensional-array.d.ts","../../../node_modules/type-fest/source/multidimensional-readonly-array.d.ts","../../../node_modules/type-fest/source/iterable-element.d.ts","../../../node_modules/type-fest/source/entry.d.ts","../../../node_modules/type-fest/source/entries.d.ts","../../../node_modules/type-fest/source/set-return-type.d.ts","../../../node_modules/type-fest/source/asyncify.d.ts","../../../node_modules/type-fest/source/jsonify.d.ts","../../../node_modules/type-fest/source/schema.d.ts","../../../node_modules/type-fest/source/literal-to-primitive.d.ts","../../../node_modules/type-fest/source/numeric.d.ts","../../../node_modules/type-fest/source/string-key-of.d.ts","../../../node_modules/type-fest/source/utilities.d.ts","../../../node_modules/type-fest/source/split.d.ts","../../../node_modules/type-fest/source/camel-case.d.ts","../../../node_modules/type-fest/source/camel-cased-properties.d.ts","../../../node_modules/type-fest/source/camel-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/delimiter-case.d.ts","../../../node_modules/type-fest/source/kebab-case.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties.d.ts","../../../node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/pascal-case.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties.d.ts","../../../node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/snake-case.d.ts","../../../node_modules/type-fest/source/snake-cased-properties.d.ts","../../../node_modules/type-fest/source/snake-cased-properties-deep.d.ts","../../../node_modules/type-fest/source/includes.d.ts","../../../node_modules/type-fest/source/screaming-snake-case.d.ts","../../../node_modules/type-fest/source/join.d.ts","../../../node_modules/type-fest/source/trim.d.ts","../../../node_modules/type-fest/source/get.d.ts","../../../node_modules/type-fest/source/last-array-element.d.ts","../../../node_modules/type-fest/source/package-json.d.ts","../../../node_modules/type-fest/source/tsconfig-json.d.ts","../../../node_modules/type-fest/index.d.ts","../../support/build/lib/npm.d.ts","../../support/build/lib/tempdir.d.ts","../../support/build/lib/system.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/shell-quote/index.d.ts","../../../node_modules/@types/bluebird/index.d.ts","../../support/build/lib/util.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/mv/index.d.ts","../../../node_modules/@types/rimraf/index.d.ts","../../../node_modules/@types/ncp/index.d.ts","../../../node_modules/@types/which/index.d.ts","../../../node_modules/sanitize-filename/index.d.ts","../../../node_modules/@types/klaw/index.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/basic.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/except.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/mutable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/merge-exclusive.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/require-at-least-one.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/readonly-deep.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/literal-union.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/promisable.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/source/package-json.d.ts","../../../node_modules/read-pkg/node_modules/type-fest/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/read-pkg/index.d.ts","../../support/build/lib/fs.d.ts","../../support/build/lib/plist.d.ts","../../support/build/lib/mkdirp.d.ts","../../support/build/lib/log-internal.d.ts","../../../node_modules/axios/index.d.ts","../../../node_modules/@types/npmlog/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../schema/build/appium-config-schema.d.ts","../../schema/build/index.d.ts","../../types/build/appium-config.d.ts","../../types/build/config.d.ts","../../../node_modules/typescript/lib/typescript.d.ts","../../../node_modules/@wdio/types/build/compiler.d.ts","../../../node_modules/@wdio/types/build/frameworks.d.ts","../../../node_modules/@wdio/types/build/services.d.ts","../../../node_modules/@wdio/types/build/reporters.d.ts","../../../node_modules/@wdio/types/build/options.d.ts","../../../node_modules/@wdio/types/build/capabilities.d.ts","../../../node_modules/@wdio/types/build/clients.d.ts","../../../node_modules/@wdio/types/build/workers.d.ts","../../../node_modules/@wdio/types/build/index.d.ts","../../types/build/capabilities.d.ts","../../types/build/index.d.ts","../../support/build/lib/logging.d.ts","../../support/build/lib/process.d.ts","../../../node_modules/@types/yauzl/index.d.ts","../../support/build/lib/zip.d.ts","../../../node_modules/@jimp/core/types/jimp.d.ts","../../../node_modules/@jimp/core/types/etc.d.ts","../../../node_modules/@jimp/core/types/functions.d.ts","../../../node_modules/@jimp/core/types/utils.d.ts","../../../node_modules/@jimp/core/types/plugins.d.ts","../../../node_modules/@jimp/core/types/index.d.ts","../../../node_modules/@jimp/jpeg/index.d.ts","../../../node_modules/@jimp/png/index.d.ts","../../../node_modules/@jimp/bmp/index.d.ts","../../../node_modules/@jimp/tiff/index.d.ts","../../../node_modules/@jimp/gif/index.d.ts","../../../node_modules/@jimp/types/index.d.ts","../../../node_modules/@jimp/plugin-blit/index.d.ts","../../../node_modules/@jimp/plugin-blur/index.d.ts","../../../node_modules/@jimp/plugin-circle/index.d.ts","../../../node_modules/@jimp/plugin-color/index.d.ts","../../../node_modules/@jimp/plugin-contain/index.d.ts","../../../node_modules/@jimp/plugin-cover/index.d.ts","../../../node_modules/@jimp/plugin-crop/index.d.ts","../../../node_modules/@jimp/plugin-displace/index.d.ts","../../../node_modules/@jimp/plugin-dither/index.d.ts","../../../node_modules/@jimp/plugin-fisheye/index.d.ts","../../../node_modules/@jimp/plugin-flip/index.d.ts","../../../node_modules/@jimp/plugin-gaussian/index.d.ts","../../../node_modules/@jimp/plugin-invert/index.d.ts","../../../node_modules/@jimp/plugin-mask/index.d.ts","../../../node_modules/@jimp/plugin-normalize/index.d.ts","../../../node_modules/@jimp/plugin-print/index.d.ts","../../../node_modules/@jimp/plugin-resize/index.d.ts","../../../node_modules/@jimp/plugin-rotate/index.d.ts","../../../node_modules/@jimp/plugin-scale/index.d.ts","../../../node_modules/@jimp/plugin-shadow/index.d.ts","../../../node_modules/@jimp/plugin-threshold/index.d.ts","../../../node_modules/@jimp/plugins/index.d.ts","../../../node_modules/jimp/types/ts3.1/index.d.ts","../../../node_modules/@types/pngjs/index.d.ts","../../../node_modules/buffer/index.d.ts","../../support/build/lib/image-util.d.ts","../../support/build/lib/net.d.ts","../../support/build/lib/mjpeg.d.ts","../../support/build/lib/node.d.ts","../../support/build/lib/timing.d.ts","../../support/build/lib/env.d.ts","../../support/build/lib/index.d.ts","../lib/logger.js","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/locate-path/index.d.ts","../../../node_modules/find-up/index.d.ts","../../../node_modules/uri-js/dist/es5/uri.all.d.ts","../../../node_modules/ajv/dist/compile/codegen/code.d.ts","../../../node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../node_modules/ajv/dist/compile/codegen/index.d.ts","../../../node_modules/ajv/dist/compile/rules.d.ts","../../../node_modules/ajv/dist/compile/util.d.ts","../../../node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../node_modules/ajv/dist/compile/errors.d.ts","../../../node_modules/ajv/dist/compile/validate/index.d.ts","../../../node_modules/ajv/dist/compile/validate/datatype.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","../../../node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","../../../node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","../../../node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../node_modules/ajv/dist/vocabularies/errors.d.ts","../../../node_modules/ajv/dist/types/json-schema.d.ts","../../../node_modules/ajv/dist/types/jtd-schema.d.ts","../../../node_modules/ajv/dist/runtime/validation_error.d.ts","../../../node_modules/ajv/dist/compile/ref_error.d.ts","../../../node_modules/ajv/dist/core.d.ts","../../../node_modules/ajv/dist/compile/resolve.d.ts","../../../node_modules/ajv/dist/compile/index.d.ts","../../../node_modules/ajv/dist/types/index.d.ts","../../../node_modules/ajv/dist/ajv.d.ts","../../../node_modules/ajv-formats/dist/formats.d.ts","../../../node_modules/ajv-formats/dist/limit.d.ts","../../../node_modules/ajv-formats/dist/index.d.ts","../lib/constants.js","../types/extension.d.ts","../types/cli.d.ts","../types/index.d.ts","../types/external-manifest.d.ts","../types/appium-manifest.d.ts","../../../node_modules/yaml/types.d.ts","../../../node_modules/yaml/util.d.ts","../../../node_modules/yaml/parse-cst.d.ts","../../../node_modules/yaml/index.d.ts","../../../node_modules/resolve-from/index.d.ts","../../../node_modules/cli-spinners/index.d.ts","../../../node_modules/ora/index.d.ts","../lib/cli/utils.js","../../../node_modules/package-changed/types/is-package-changed.d.ts","../../../node_modules/package-changed/types/index.d.ts","../lib/extension/package-changed.js","../lib/cli/extension-command.js","../lib/extension/extension-config.js","../lib/extension/manifest.js","../lib/schema/arg-spec.js","../../../node_modules/@types/argparse/index.d.ts","../lib/schema/cli-transformers.js","../lib/schema/keywords.js","../lib/schema/schema.js","../../../node_modules/@sidvind/better-ajv-errors/typings.d.ts","../../../node_modules/lilconfig/dist/index.d.ts","../lib/config-file.js","../lib/config.js","../../../node_modules/@types/async-lock/index.d.ts","../../base-driver/build/lib/basedriver/device-settings.d.ts","../../base-driver/build/lib/basedriver/core.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../base-driver/build/lib/basedriver/commands/timeout.d.ts","../../base-driver/build/lib/basedriver/commands/event.d.ts","../../base-driver/build/lib/basedriver/commands/find.d.ts","../../base-driver/build/lib/basedriver/commands/log.d.ts","../../base-driver/build/lib/basedriver/commands/settings.d.ts","../../base-driver/build/lib/basedriver/commands/session.d.ts","../../base-driver/build/lib/basedriver/driver.d.ts","../../base-driver/build/lib/constants.d.ts","../../base-driver/build/lib/protocol/protocol.d.ts","../../../node_modules/es6-error/typings/index.d.ts","../../../node_modules/http-status-codes/build/cjs/utils-functions.d.ts","../../../node_modules/http-status-codes/build/cjs/status-codes.d.ts","../../../node_modules/http-status-codes/build/cjs/reason-phrases.d.ts","../../../node_modules/http-status-codes/build/cjs/legacy.d.ts","../../../node_modules/http-status-codes/build/cjs/index.d.ts","../../base-driver/build/lib/protocol/errors.d.ts","../../base-driver/build/lib/protocol/routes.d.ts","../../base-driver/build/lib/protocol/index.d.ts","../../base-driver/build/lib/express/server.d.ts","../../base-driver/build/lib/jsonwp-proxy/protocol-converter.d.ts","../../base-driver/build/lib/jsonwp-proxy/proxy.d.ts","../../base-driver/build/lib/jsonwp-status/status.d.ts","../../base-driver/build/lib/basedriver/capabilities.d.ts","../../base-driver/build/lib/index.d.ts","../lib/utils.js","../lib/cli/args.js","../lib/schema/cli-args.js","../lib/schema/index.js","../lib/extension/driver-config.js","../lib/appium.js","../lib/grid-register.js","../../../node_modules/logform/index.d.ts","../../../node_modules/winston-transport/index.d.ts","../../../node_modules/winston/lib/winston/config/index.d.ts","../../../node_modules/winston/lib/winston/transports/index.d.ts","../../../node_modules/winston/index.d.ts","../lib/logsink.js","../../../node_modules/@colors/colors/index.d.ts","../lib/cli/driver-command.js","../lib/cli/plugin-command.js","../lib/cli/extension.js","../lib/cli/parser.js","../lib/extension/plugin-config.js","../lib/extension/index.js","../lib/main.js","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts"],"fileInfos":["721cec59c3fef87aaf480047d821fb758b3ec9482c4129a54631e6e25e432a31",{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2f93dda35dafec68ec217c9ce67f0f4fbbbb030c055ac312641565ad60dd7e26","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"dbb73d4d99be496175cb432c74c2615f78c76f4272f1d83cba11ee0ed6dbddf0","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"aeeee3998c5a730f8689f04038d41cf4245c9edbf6ef29a698e45b36e399b8ed","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","76650408392bf49a8fbf3e2b6b302712a92d76af77b06e2da1cc8077359c4409","0af3121e68297b2247dd331c0d24dba599e50736a7517a5622d5591aae4a3122","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"80793b2277f31baa199234daed806fff0fb11491d1ebd3357e520c3558063f00","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","e3b886bacdd1fbf1f72e654596c80a55c7bc1d10bdf464aaf52f45ecd243862f","c665d5c50c2573aefd98f0ffb12c5583e333ed94294ce6f144a4163a8c84f09b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"839e0b959028f5385ca8de7b9d9c00d71a5955d52d2c98cb3e488a626f7b90b3","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","945a841f9a591197154c85386bc5a1467d42d325104bb36db51bc566bbb240be","10c39ce1df102994b47d4bc0c71aa9a6aea76f4651a5ec51914431f50bc883a1",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","3fa48484c65913004d5abb5c0f917b61ea4684f32d05bb28c1ecfa5f05a9ed12","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"33eee034727baf564056b4ea719075c23d3b4767d0b5f9c6933b81f3d77774d2","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4",{"version":"dd9ea469d1bfaf589c6a196275d35cb1aa14014707c2c46d920c7b921e8f5bca","affectsGlobalScope":true},"badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"1503a452a67127e5c2da794d1c7c44344d5038373aae16c9b03ac964db159edd","ebdec596e6c49602efbfe9cee483ff982e998608bd41db07da1feca311eadab4","cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","4a15fc59b27b65b9894952048be2afc561865ec37606cd0f5e929ee4a102233b",{"version":"744e7c636288493667d553c8f8ebd666ccbc0e715df445a4a7c4a48812f20544","affectsGlobalScope":true},"7e54932a41fec3a9c7e0753e52c8b18cc67b3ffdd01aaacd49b73d638186ee22","af4e1dce65c1820f6fe21bdf2c3931209c539cb498da760f05ab709f2033f2b3","73ab4f2d7964bbad113751c4d13dac7b834407ef4570b50ff67b3b765c07d312","d70d12830ae15bd5967b2b38cb7e24b3ba43bff853e305b33ed519253055ce08","c0618e33d0191171349412c9c7b983bc05081c29c635da9003a6cf7bc5d81746","c974e1ad2639f94de0b566947273e3f3b2dad004c9383bf0ea8df7cf96b1afea","5ab8773f7671da7bafa0f95a5530425a3e8374b8de4f352e64f6dd48c65681ed","bcaa4b2494b205265de37f2b4d5def521055753e8ac8aaabdfb53fd514e2bfb4","2c04fbe9e9b0ca02a0e6a549d21274b72424f3b091416fd63229114c6ac255b7","c19d76cf730f70c239ddcdc84cb78123f43964866e3cedf1ec98f640c5f3ea25","99e9a144144565db9b916035289ee80760c7542170a182312d8c9f4dcca1c276","248957877dde8ba14cd9b8d45947523da23e2fb467646e57cd902a76b2fc693b","1043a791036b9136fe8b3e287b24f14df803a503f6abb3f347b48d1c444a6954","094501dd2107ce40723bbcf30fbc0012631031c3337cbcc2dad153d8d550d7bc","bc1ed67a1d1491918740d86502e5b86369f4b7d6af10ca86340e6df9218ed9c9","55b7d009c3e8bae890063ebbb9c299d14edab7bbe9f98bceb12ef6979b1698fe","c5efedb8f1bd29ca1fd7720a45087344e14d1ea66378ac470450ea00d0f63975","161156b76821d27d22affa815f02d96706aa0861751aece957b5740dd33139ca","4023372ecd33decd9e17cd21272a86403ad60a4a913ccde6b01982a8535db442","d62e0155e4e6eb3d7a799e1fb555bb24ed6ecbebd158f87fc31e98ec6b5fcf73","c38b9f9179364943113b3eb1dd1d86d580dd1b56b68203ced15a013e9e317f29","e157c542921a03c19bafc06a1ae6bfc377359b0d88d8995591a8cdc66d7bf027","491357771c3101332dbd241a58b3733c194a1ed1ca92e371361e702c8849afe2","d1406b0eee2a415d31130b6e8771b6d0eddf70658efbafe9723aad38f58dc63c","b05b738e0e28dfa84e59a038c8287335b6ca9f16c858bd95ed930de0845f18af","dff0fdb7dc8f8ed00db44b493f77b921312ce9ed8493cda4cc82a92e48914756","338aeec8241a5d326cf4afd96408f6ff36b20ff461ee35597bf84a8f707a2745","13b6d7b987a6c306c0f7d27d77136797edc88ac47fd5893c93b8ed51f9912be9","cfa6b71c0cb889d2a210dac350ef928d532cadb26f4035bc405ef03f80b4ce17","4de53c71c9fc54d7fa8870b95b44092ff53eb6fddcfd402e360ac421318f1ca8","1c6c29857deb02e33ec045a67c375eb210a3ea4bc61b5e8078d2fab2ebf7831e","8f36a2e511f634b14983b31199a813b6d91e9f5c8ca1a81c446cfcbe3a8cda45","7e7bf5e592f90ac5784005a7d10f9960d6ff02edebdc18ab87f8cb154d5c16ab","e1b74834e5baec5460bd44dd7c5e389337ebe9eb7903743d1a9dd5b75702ac73","5d4143cf9c0350f01ed6e3d72953c4d22b4abda0a0b2c6d83a595ca061a367a4","9aaf4ee44bdac023b659f1b5e8cfdf56f774edd182c4fec46708d79f6a762298","87b0641dd8bb365de2f97ec5be3ea7aa1bd714ea43f76b6b36039c5dd194e3eb","a47240f5153913c434c66cd660bbcbb01c97f6717756a14c2f59ac7feb49a134","b415d8fc78ef908cc3f02d031e5e9a1cf269dd386212aedd273a0601de175bac","679a500b60fdb879af3ff20dab0bc5937098dd1ea5b75f786c672fde09faaeef","4372b912f51cbf9f0da164599e0934031bff3f5135af1cd6425bd9e384167e0b","5a988bc94b1937ee835a83ae7bb7555a21b8bbcdfd4c8c705d1789d7a8244bc2","0eda42cf7a88e5186bbab20c42eef4cc3a7377da80c71a7bae01f224223f667c","3b2f213b50c0a3abc9ee877b3af6cb7d42bd7939c00801bfc39cb44fb9a4ac05","b484c72c73b4ae0cdee6bfb85f0ae6152b4435b59169fb460044305ef18429cf","d9df799b7d4d7d9a24b201ddffc575b1840e25f1a273650de6eef40f384b6239","ca89e452207fee3233d2cb45c28ad0a4a7e30ddf40b9ac69891dd2242859c6f9","dac79ace008b4b9147644e4d8834b4a62378990e1a1730843ac488fdf6ff5f32","54f6aeeb17ad58793455ad005027bc452b722f31755ac4d15c46bef05f941e58","48fc89daea2775641083563b0671d541dfa464f4aed9ecd6d1e1f61647e759d1","55eb179223f788fcb055cba854b63effc973f7d51cf130ab866fc161c30dd918","03107dc521b6273cf190f0be264b6f69cb43355c24320cc9e760c9ab6a7fdb22","8fb7a5ccc8533b5950772a7722d1f99c846274c7dec01d40c8f96f4fb559a7b8","1a9958339bc9d1092c53a7f13c08d29eac812534c3f61c7c7a2157ef558131a1","30137eda48ba9ccce5dfd6fa79dea587739cddfab6e280fc85f019d21488b393","e6c5a9682cb3328d41eb7f25fa231075f29307319a9d7ac679e52a7b74b6539c","0617c0c6bc0e35226b6000ef3e47fc45697348d33c305e61484b7d264f4737da","73a5569de4e23f58160c68e74b48587950b118d0105f9d71b86ae40fa5c258c4","16d7f5de02bfb62a7a69ef9497c790ed4a8119ce159b14cb763f2432298286e8","c79b44c1518bd3d1ad75aa82f2e54be1bde86cd7663624874c4047a8fc97f833","047f4ee6646463fb4fa44cd6d8083342713a4704693ce64942e77f62a1da0c38","1ccd27d6127a24d5abe36413f68b5e928c9e6f2cbab9825898379ecf18108dc2","baa32aa38cd8ac7128c5a5817a32d8dc8fd8d635a647b16a12485ae27df107ed","2641aff32336e35a5b702aa2d870a0891da29dc1c19ae48602678e2050614041","afb49d6869006d1ecab1c821fffaba08ff9fcbee6a23d1c25b1d894f7e2a727e","0a291a265ed539906809ac356e112b1b02226acd5db0707d0dbd6272d0ae7bd1","eef7bc20cb0460e4dbaaf4668deaeb1276ea3046e22ee901cfff3e2885c81726","81f4c04629d3c5c4e22ef2586462765c4825867eacb928673ae1afbe62bf83be","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","c0dfe246179c685294cca8ba34f60731ad4095db8c97120e85bf57fc144a7d8c","338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","e8a3a142b4aa3acd0d61105fcffb3258a84560f94d13c362aae42925609c74e8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","b0bc363dbdb9cd5a6772f3ab176ac1adcec1f245c6c546870415ef91008f6004","f4cf5f0ad1cfb0ceebbe4fbe8aaf0aa728e899c99cc36ec6c0c4b8f6e8a84c83","e021038f8cf781814ad05dd9b2a306976c5f7dc30be3f4596a086a84f2388d18","1e737469ef0482a3ca2ab4b98d2e193cc011448ca623299a4c5f38d5d6c1b554","ae02db44606a04880c676f200482d79436e3e8ac48f09307fc06c498e9c9221f","cfaf29b2c2b9a7566aaba8ade813e55863ffdfb88dc30f6d5254efb829256987",{"version":"99113e4c4599427330953ea8c0090f7b540d761cb9f162d39d65a130458feef4","affectsGlobalScope":true},"c58be3e560989a877531d3ff7c9e5db41c5dd9282480ccf197abfcc708a95b8d","4d1462b70f05fd1b16d7d4f78ac195824560a1dd96407de0a1fe964f3ec0e9d4","50d22844db90a0dcd359afeb59dd1e9a384d977b4b363c880b4e65047237a29e","b065ba1b9a52bc541a638fa4b11115644001bcf82a0a0b984b7c1834451bd2b5","cb328633afdbf2115fc1b44d5cf95558ca2bf84a4b36f6ce82a998e198c47bf6","d8b4c196cedbfbdd557ab5d5c609c32d8a77a86ac1a5e7406a06413ab56a1d67","091af8276fbc70609a00e296840bd284a2fe29df282f0e8dae2de9f0a706685f","537aff717746703d2157ec563b5de4f6393ce9f69a84ae62b49e9b6c80b6e587","8b108d831999b4c6b1df9c39cdcc57c059ef19219c441e5b61bca20aabb9f411","8714e4fab09146efd7db2d969cbeb50559225f09f40a2171d7ac122572d0d269","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","720f5916937961481bce84e956040e9d6375d43870762cf47e25fc227f3eee24","2dfe19de498444b172b62f86063f4a075203f023c35b860aa6a0e9e84ea901fe","013825efd63394b0b8869432cfb1d3879189aba9a0da979df808dc3fe55624e9","42d7edb069c45e38a073cdddeea0aa984129bf039aba3630f6e76896caf0b0f9","ab50fc338a9e0f6571e1143738eed70c3aa2fa7247667396167eba1ca402b607","2808645b990069e5f8b5ff14c9f1e6077eb642583c3f7854012d60757f23c70e","df38da6685578ac3d0e4ce2d20f3d59462ee53959b8263d2532ec9cec48ae098","f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","7d9161ec720909c6abf2957b3f62d1ab27f2623e380a39d147715d43d8abd414","6101949945c252c5706da566e06b7be2a4cc48e73f25165add3c081d0dd37578","a983207132524290a38f8c5e3e1799c4b3372c66835ee1a9c207f42fc5220d88","3859648477a239f3a210119e53b0d3b455b9760bf38bed50a933326ae00f0c83","ba00bb2ada9a5b7e0ab18c7282c0161f5af809112e4439b35c8b3853f7d436a7","a47b38aac630271c68667d717c865e4c98200bd90b4a8859d3f07460da09adec","46ab84953b0abb33ae9a42af24c97883e68f1080f084ffb9436181b3f147776c","d97f055b516d74e0c0bace388e6bbe3bc386a9599a1d1862ba8a669e892a1d2a","dda8410786fe1a473b420c6b95ab797b3cdac5705806ada1e062754b13291e79","60a4f4d1acdf72f3f07b9750884ca59e0d0333f016c071cb97215132c0625e67","7edae9abf00228304f215d24f9c1d5e87b6fd09e1f0eebebe5348772c2d7afd3","db412fc192357cd4bff3e93e79030ea404b7d2cf8c089d2fe9d53ba010f1a916","7bc97e823dd70d66e9640998837ca0aad3480b415035dbd2074e3a450166e221",{"version":"aef0597f694334e5da630438a38b966d7da7b5265af8f0f3685d1baf42df5178","affectsGlobalScope":true},"10487580175f86d0789473002b4b6e6606f9a4d7d3965f91066361aa8629297a","7b98187f36117de7c6be031cd0fecd133a1965da7e65f995fb1e329b9b892902","0c986e09efecf29b8cef361937b46764750dbb8902241ae5f0ab4e6fd526bbd2","962705e6b720553f5590fb20cc2be706aee3823f59a89c504a31a82f8e9a9937","65dfa4bc49ccd1355789abb6ae215b302a5b050fdee9651124fe7e826f33113c","d8eeb61233755ec2ff1fee38ab3a423843128e499d69d62e90e54d436fc0890c","61c19bbc816b7685a7f7c90928b978fd384820471bed4eb3c8a8d2f2c6d6f51b","81cba1ca948d7a158b75d9bf342955793576687c61930f9d87a331a968c820bc","ac26e1df718b688cb69170ef4a10c4615796af3042dc4a2d533b295095052142","e5435a253e31a74a5ba34cddd2983c2b6e7798be830cf9896656f3dd02d513a3","c58c3df82dbbac85d6cbbfb6ece2a425c125db04ef0ceb3f034d33f6258a595b","107c1b5064b01db7a55616d09c5b6c278cd402c6afb82fcbf95fe28b48920d22","616293f491f8f8038be5cc29418493ba333e6e98820b0e85a6bf02a333667eb8","e32df6324918608e0d404ed125e7f2429a21315830f81d15a22958e53c3bbe97","0f6dc41bab0e1f96f70f46d797644d0d32a491e34a390e3411f61ecbbef3159b","07d406e2b9185f08617234e5d1307789c202e99159f3aa1a13670df39589a2fe","6f690985c908fd2d566f694394016be3e757fb7094e1e3d8be8545813af0453f","cf34998d6c868eb5d814521523731767ceed7d00bddaf40f82f89ef861c411bf","0298fb593e400ab7d61366fad5e84399f224bee4bb1cd3dc0cfaae0e2929c3d7","6adab4f1c0c67ce871828183137449e443e17a4142529a32b22f189f3c737af6","1be04a4005e2b7f5b2688e2d4de704ae68c9d95ebacc0367b8b5730bd8c50fb1","83c2f5af37e6d351b3d2f6824c8c0fe85361e2640035bef7c9e56a5dfeedcd35","101b82e4cc6bc4230c4c764ce8f28d0841a665c38f7c1a40981b2727ebc1bf3c","9c7efe7cc60262099e1f7bb4fbc6d0014df273c9049e744ffb484e6761a7e2ad","259b9513ebf3c844555adec1e27878aaa9e057046f8163fcbb9f3b8a8495440b","0634e12db1decbf3edc562dcf8e2b7f4affe4919a21005d6bea90aa9532612aa","3c464b3eecdf5cd990dcd882a04608f4ae29b99fc24ffbff970e340ac5d4eef1","6daca098a3cf1585848a1464458143442ef8042470cb975ef7ab360afa7651b6","c7b5b995bd17d27758d13f8d200d9748d8fcb5491dd5593a4e840e5abdd4e0c3","a8d4833b2b4896c44af60626a844a086c8120807cf2e6a39d2dc80ab5d1af972","40156b6e614fe0b0aa4af9c21a0157eb84758e572ae700788ff9d436fae78c2b","f0867230a5838be63be92c9480a65f1d075eec34683212e080002760a6174c83","098d6936c459f18218ad71cde5aa25562a74461701c3551c544aecfd2c6226e7","405dc951dda9d1ba88aa742a04541a749973bafa7873f1b49c3065a6dc05e170","fc9091f36b50dfc7e47b6183bd7b4294a20878e1d826f38f44e7053d403358ed","4c846ba0a980408c10c12ed8358bcabdb8ca97aee0bb8869becaea412d6e89bb","ed995ca53b2c1b6bc1555bbee8bc12ea290b2117d89dc1c27c1333f8c3a97d35","26a8c45aaa7c9b7cb356b565f880295b5a94b14f0c348b41dd776cbeab9f06e1","a18ab8a8420f372aab81c57e9eb3b0c29a8a7760eab40328765d65a3d2dff5ac","15465dcb7504e00902baf1c1bf1195c35a20612a300fcd8482836c9319af2d1b","762539fa7b805a2ca94de8b9587db0dfe12ae440848678d028707b70f31acced","0b6a0b628776a3e3a4aeeba090438a26e7ffa15373ce658452c78c1f2254665d","8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","60f9122e77e76854919d5dbcd65b6bfab89fc5950978ff57922855640c0c31be","bfea1f2e8cfd701e13959c0d169f3881518627c561aa3ff737cd7c884669332b","24c9e3562d6219c42f7cf3392a4d17c0987320ca7fe41d5bf5ea89abe62ba1df","804867f5fca5c3dc223c5cd72d9a67f55054c9470d8070b82c6c60af12ed947c","ac4b57f7e49e3a7b26673d3f77e029e156f3c9f5dcfbaf163b0ac3ba64a0ca8f","527f5003200ae2336b474ff3c190916a2591f8260d68e1d93c1c6b276231fbda","0a953abb3c7483a9ca87e3adcc0a9799450b4b9be169c041bd77fa17a59303ea","d72866f8861b27f0eb88c4f0b45559848e0d0e86e84325a932c3ea90cfe1e267","d9e55d93aa33fad61bd5c63800972d00ba8879ec5d29f6f3bce67d16d86abc33","2ac9c8332c5f8510b8bdd571f8271e0f39b0577714d5e95c1e79a12b2616f069","42c21aa963e7b86fa00801d96e88b36803188018d5ad91db2a9101bccd40b3ff","d31eb848cdebb4c55b4893b335a7c0cca95ad66dee13cbb7d0893810c0a9c301","77c1d91a129ba60b8c405f9f539e42df834afb174fe0785f89d92a2c7c16b77a","c544d81603149987796b24cca297c965db427b84b2580fb27e52fb37ddc1f470","906c751ef5822ec0dadcea2f0e9db64a33fb4ee926cc9f7efa38afe5d5371b2a","5387c049e9702f2d2d7ece1a74836a14b47fbebe9bbeb19f94c580a37c855351","c68391fb9efad5d99ff332c65b1606248c4e4a9f1dd9a087204242b56c7126d6","e9cf02252d3a0ced987d24845dcb1f11c1be5541f17e5daa44c6de2d18138d0c","e8b02b879754d85f48489294f99147aeccc352c760d95a6fe2b6e49cd400b2fe","9f6908ab3d8a86c68b86e38578afc7095114e66b2fc36a2a96e9252aac3998e0","0eedb2344442b143ddcd788f87096961cd8572b64f10b4afc3356aa0460171c6","9eb2875a1e4c583066af7d6194ea8162191b2756e5d87ccb3c562fdf74d06869","c68baff4d8ba346130e9753cefe2e487a16731bf17e05fdacc81e8c9a26aae9d","2cd15528d8bb5d0453aa339b4b52e0696e8b07e790c153831c642c3dea5ac8af","479d622e66283ffa9883fbc33e441f7fc928b2277ff30aacbec7b7761b4e9579","ade307876dc5ca267ca308d09e737b611505e015c535863f22420a11fffc1c54","f8cdefa3e0dee639eccbe9794b46f90291e5fd3989fcba60d2f08fde56179fb9","86c5a62f99aac7053976e317dbe9acb2eaf903aaf3d2e5bb1cafe5c2df7b37a8","2b300954ce01a8343866f737656e13243e86e5baef51bd0631b21dcef1f6e954","a2d409a9ffd872d6b9d78ead00baa116bbc73cfa959fce9a2f29d3227876b2a1","b288936f560cd71f4a6002953290de9ff8dfbfbf37f5a9391be5c83322324898","61178a781ef82e0ff54f9430397e71e8f365fc1e3725e0e5346f2de7b0d50dfa","6a6ccb37feb3aad32d9be026a3337db195979cd5727a616fc0f557e974101a54","6eef5113135a0f2bbac8259909a5bbb7666bcde022c28f4ab95145623cbe1f72","058b8dd97b7c67b6bf33e7bda7b1e247b019b675d4b6449d14ac002091a8b4f8","89c8a7b88c378663a8124664f2d9b8c2887e186b55aa066edf6d67177ca1aa04","5a30ba65ad753eb2ef65355dbb3011b28b192cb9df2ef0b5f595b51ca7faf353","b15e55c5fa977c2f25ca0b1db52cfa2d1fd4bf0baf90a8b90d4a7678ca462ff1","f41d30972724714763a2698ae949fbc463afb203b5fa7c4ad7e4de0871129a17","86d425f7fcd8d100dafa6286cc289af88cbb639ecbdbd25c3018a8f0f7b09fe5","9795e0a3a45d5b6f1a791ee54b7c8b58bc931e8900966cea2dff9c5bae56073b","5890be29879d02424b7654f40592915189034948f7a18c5ad121c006d4e92811","0ab49086f10c75a1cb3b18bffe799dae021774146d8a2d5a4bb42dda67b64f9b","81c77839e152b8f715ec67b0a8b910bcc2d6cf916794c3519f8798c40efd12ac","a868a534ba1c2ca9060b8a13b0ffbbbf78b4be7b0ff80d8c75b02773f7192c29","464843c00fb3dd4735b28255c5c9fe713f16b8e47a3db09ba1647687440f7aef","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","d0f6d36b2d86f934560c48d8bfdc7ab60c67cfb2ab6dc1916706aa68e83d6dc2","da2bb7623035cf8dd05721cc91161d9baffc303aa51a237c71281fc1a52e5691","461f5886f7cb604443d2a5865466d838e75efa24845ed9c9d0c0eecf2c88b0a1","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","44a8d350600656882fd7462774e32e8d13788313ba2e36d2e8d5437ac91b98df","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","7dfd0308261bb91b058eb91802690fe3f09192b263e070a19df4d629df29e265","608eb9d411ac76e93a10e05f8aae92b3a5cefc87594219b737df7c8737ba2bd7","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","93ba4ac36f570c70a12d588e21c10dda9f351fad3e77d416952acddb27bff01d","8750f9dc1e277ffff7446c95571bae61aca0984e8f99e40fc1e8cb7161ae0642","66408d81ba8962282b1a55da34c6bd767105141f54d0ba14dca330efe0c8f552","7481b9d93ca44eb1f689e0b939545ff00dead7bdb9daba401dfb74292d83f831","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","18992725cbd51b0846132ec46237bc7de4da1db440deb66a6242e2de8715dcfb","44f29187cfbc7aa4a6109204c8e5186509abc3b78874a2ee1498c51ab50f0f62","19ab78c1376c16e18c5b87dfa750813c935f0c4ce1d6ef88058ec38f9cf5ef08","0e65c51650d96dd355f194d33c78f724f409eb3250632df7c3366cd536417357","985955d568c9f16a4858f635cb14b04c134c7f9cd9a84fc1eb75c1e3a0461a65","65f9b6570d802460f45a6d10d5dd73e5391ff49407494fa5a0b463b66e4c25af","d80e8cc73f00b0028498678e85b1ce600151a9b18c7e4b205d987689e22c3857","f47fa5049440a0d299b61313b85c0bf42d354c310bdf5d8d6c63daea1dd39c8c","4c6cbe2b08ff58752d6a77d7d36ffba04a39fc232d77b80eb96b87596831bbb7","c3a8e97bce8330542633139409885c529c46ff9bcf8fda0dc28a7c8fdda41e24","4d99772cffbb09646a934867ca42d77337dc3cfd591b648b78fc0b6e09e2d88d","b10413a27f0fa373997ebf631da8af501d6b36bdfe627475b3ec5ef98e9bc80d","b3280c01b5c948bb27e60a94076b4ed23e34db4044d687ef628a5831c09c9811","a5cd2e379198aa40fb10141d5e8273cc22b09bff6b8c3cd982b651fdd8d5d999","c2a70cf2999d7ccd2f87c22042393b853e01bb2994d6561071aa53a82926c0de","437ce3def325725c84c242f916886e634ff8f133356ea88ccb4bdd425792bb36","3b3fb847476e5e4df309c698e6c0ae67d6404d65c42e783a788de7f8b301cfa1","7375c4070c250792059930f831038f95b307f091ec534c235224173abf0443c6","b383680e4aa4fcc240c7e6f0e670e73e54694e877f094cdfc171d5e308e87721","4f6483ee07e33f53f0be8acd92b6f300e725c9a23047ef5d5f016ddfb1f04263","96cbad2d2b4721173db757e11ee1a3b30c133901d579d90c17505e378bb5fd16","9f9f71b8d07919e8f2d3c60b6dc4a8cf859ceb1e79918259cefb1df23f6bf8f1","5afdc8ac4ec3ae160c481277425c0cd1a290dea0a1163fa9442eee770d268efa","c5fdab20ccbd146cd4ec31d54623cde8a542457a3343219fe70d3afbacc609af","dac69319e7c96790211dd55fbb25831b7bf6e63f7645297a2c8f46247d44d889","8197115beddcda3919d12afd09692f43a56a5cdffed7991248f387a3dd1e6b09","914a2dc4daa91de1e4b460b737daa90c22dc9f839e4d21eaa68741bf6b58888d","6cd1a175c010a9130dca86562c9d91aca8ec08e7586b1cab845cea7af9d86a66","75cf4ad42e6028796dfc8602566e7a3893a8c7445484ae29fdb5d1ba41edeac3","3b04a26f496144be27057c5aef59ed2f1b906ef9f60df4aab074322b238c4890","9aab50a805b90a422a2c75e9d373aa236072537f6592572a018472dd7dcd73c5","72c9dd6d9742ec480aa0bee4a092f8771808371b97705f2773dcfd9944d30bb2","4a6cfa489f007805fec38a25b8c38889c41c6a9c5875a24625ac2cf3ce9f046d","76423aa497bcb7540e89718dd46a82bc42ba6a42fbe2149ce7150fed073cab7a","0a0147524874ad7f3221f1194f75eb6de3aeccf6263ed9292a253a4390ad1679","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","32998d5cda7a051b767de6fb34e1585adab73428172e56058cd8ac2d26314330","f0d7fd669e7c3c95a74f570f07b0d791dd9ccdc5b87e1dbb235ae9c9b4487bb3","b23c97e28b07bfdc4bab2df23268bfd4364130b6b9389436c2f4c296302d48b0","30248bd938cf5c970fa05276fa16f75ed645b967e49fb626a40a3198ff427cac","c52b3e2c50afb37edf529e43d28efaec0044af89ee885ddedd937d353942200b","ff495ee22655f5b8d28d88bdb11ed9999d04a963cc3b71d9bf44feb15c0d7d7a","23d67deeeece450155480afc36be56c1634201018c867b0bcd9d4a72ad6a9042","7ca56e4c578c8688979ac94aaed8ee4815c9406db9b5970de232f9a99e550366","b9ef7ea935aff11e6ee2875ba1b3e900b4524c852fcbb1965e5e41f42ddd299b","87dc4aa712e5fc14d93d1a91919b0105aac5dc6c04259fcb28a5d57a1347fba3","1bc146fb8f5cf8f67d0bb651c2237196ab42d7bae6eff9c079f254c3a4b2dc9f","fcb175cbc3a5f91152314cabe52625d495da9a3c4e9b4578dfcb1018b10b5bd1","66b458867662fd10111e8241abfd372570816317b456b712979826b0d784df37","de743c53fbbaa917b418cff186394602074f211fdeeedc27c3a2ddd83993c043","bf028cb4dfbaa3e027a2d8935a48d323ba5c98c68f8197f38bf341b64c8c467f","af9bcf395f112441d9cec93d59bd58faec117e5a7d6c87690bb5caa348ae0dab","9eb5ab1a2ebe06415e636833be031bd8d43fd104dcadd35dd5d6033771c6ff6a","78dbcd57db4d1bfdd33b4d84d78b31c0c1944067ee8b91a9fdb37492b210b273","4bf90339b877384006bcb7bd3b8a9260242ab0926d14531f80e4e6961d5df730","d7da4a1744d9516461b0301a70f5ff5a4d9372e5dfbcb95cbb55c45ca316efa0","56c545588c0707bd967f98595be243d3ac78c9793a8bd1dcc637100c8f06247d","c8865994df8b62fcd7a50c958ecc8dc949240bdb5b8a9e6b99e633df587da94f","ce09862a18df8c6bccaf65ef790abe8ba1769e45b4bf0871f066cd15ef632cb0","ef6f3fa4754f9e072acb608cf4eabaa2d046f8eb053a782cd6c96190bd899458","82333e6502dbb635b59eb6f4c6f09b458346d83d6b76913cd8844c8452675c65","d826e6217bc81f4356c7cca885cbff32066e7d3db84488ca3756f14ea71eacf0","a6393b4e9755b702dee5a30ed9443cf291e7180a619203758fda9c04c784dbf4","d58f464b0a39d8e84c3a40dfc2e8366a4d4f44d9be85669e3fda847a0ab44d7e","8cf139a8cecbbc44346487804f4232438e65bf42a2f310db64108059c0d8cd75","6c03e5d3772f4fbaaf435c6aaa1360d623192fe5ab08d26981509c2cdcbe744b","5e1ca4806486860d6d49a02484b781fa0ea77ff220a9e6d15bc94e2ab1f52084","bde7145847f9d96c421edf5ffce65df0be1d693ce38e1f088bbe55bbb9496a33","d8b8a5a6bf623239d5374ad4a7ff6f3b195ab5ee61293f59f1957e90d2a22809","d11bb48adbad42e6f3f22748911486299764d53af4def77a5ad9dead0955ad38","3c8ba5897e03c21eea1b84054538d7aedef8dc00b8c3953e6f623dc5fd1a1c00","af42f53fc3e56e38c2624e209fd8ec26a6d10f9f29e8d7d800bca31cfe48f8fd","0392a64c34995336b2795246ef5a830980ca9a343049293ac27b71148bf67d86",{"version":"852b81a212b6f0927e7fb32ae4a21135bd75eb62f6a088ce94d6f179b72891a7","affectsGlobalScope":true},"de009d2730be0ced7b44451bab16c8ae6a17e2831779e855e34e02b778ada27b","91289d74b647cc2547b25b0b0a82c16c5da200d47bb15da6ef9c50b2bcb4e78c","be32c3e7ed2e1f781b96b7ca60fdd64fb28b45f8de25fc5a65850d2f82339dab","e3677fc934bd97fe4787ebfeb5959d5774194cdbfb84633851117f0a4b261124","5c702025a7db15e9df6908faddd8a1d6915250bdc1a96a730a99197ea56b62f9","1afdcd3a5a750010b23019e27f2dc1d22eb7fe9443bb00a98762102aec90ddf1","b5471020464ff9f75ddbc8ff6bdc8d06df31408cb63db7e6bf5eb7e1e53f7f28",{"version":"30bf01dd2e284098445264c8d71c608890cc11c142f36d0193aa655bdc0a40cb","affectsGlobalScope":true},{"version":"c8747693e5872ad5ef3aa016731a06915e1c34dae987829d9aa5bd40c7a2c54b","affectsGlobalScope":true},"f83b320cceccfc48457a818d18fc9a006ab18d0bdd727aa2c2e73dc1b4a45e98","24a09dc3e07d69b0a224dbd14b2994c40d1efd0954e759004b61b9e683dabe5f",{"version":"0fd3b5704bf037608646df5aa053fd06819ff69302ff6ada9736c300f79df852","affectsGlobalScope":true},{"version":"63e2182615c513e89bb8a3e749d08f7c379e86490fcdbf6d35f2c14b3507a6e8","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"module":5,"outDir":"./","removeComments":false,"rootDir":"..","strictNullChecks":true,"target":2},"fileIdsList":[[111],[111,249],[111,244],[111,244,245,246,247,248],[111,245],[111,245,247],[111,248],[111,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276],[111,250,251,252,253,254],[111,375],[86,111,118,416],[111,465],[86,111,118],[83,86,111,118,411,412],[111,412,413,415,417],[83,84,111,118,196],[84,100,111,118],[55,57,58,59,60,61,62,63,64,65,66,67,111],[55,56,58,59,60,61,62,63,64,65,66,67,111],[56,57,58,59,60,61,62,63,64,65,66,67,111],[55,56,57,59,60,61,62,63,64,65,66,67,111],[55,56,57,58,60,61,62,63,64,65,66,67,111],[55,56,57,58,59,61,62,63,64,65,66,67,111],[55,56,57,58,59,60,62,63,64,65,66,67,111],[55,56,57,58,59,60,61,63,64,65,66,67,111],[55,56,57,58,59,60,61,62,64,65,66,67,111],[55,56,57,58,59,60,61,62,63,65,66,67,111],[55,56,57,58,59,60,61,62,63,64,66,67,111],[55,56,57,58,59,60,61,62,63,64,65,67,111],[55,56,57,58,59,60,61,62,63,64,65,66,111],[84,111,118],[68,111],[71,111],[72,77,111],[73,83,84,91,100,110,111],[73,74,83,91,111],[75,111],[76,77,84,92,111],[77,100,107,111],[78,80,83,91,111],[79,111],[80,81,111],[82,83,111],[83,111],[83,84,85,100,110,111],[83,84,85,100,111],[86,91,100,110,111],[83,84,86,87,91,100,107,110,111],[86,88,100,107,110,111],[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[83,89,111],[90,110,111],[80,83,91,100,111],[92,111],[93,111],[71,94,111],[95,109,111,115],[96,111],[97,111],[83,98,111],[98,99,111,113],[83,100,101,102,111],[100,102,111],[100,101,111],[103,111],[104,111],[83,105,106,111],[105,106,111],[77,91,107,111],[108,111],[91,109,111],[72,86,97,110,111],[77,111],[100,111,112],[111,113],[111,114],[72,77,83,85,94,100,110,111,113,115],[100,111,116],[100,111,116,118],[84,111,118,197],[111,289,328],[111,289,313,328],[111,328],[111,289],[111,289,314,328],[111,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327],[111,314,328],[86,111,118,414],[111,465,467],[111,466],[73,83,110,111,118],[83,100,111,118],[111,233],[111,234],[111,228],[111,230,231,232,233,234,235,236],[86,88,110,111,118,229,231,232,234],[83,84,111,118],[111,118,230,233,234],[83,111,118,233,234],[111,375,376,377],[111,334,335,339,366,367,371,373,374],[111,332,333],[111,332],[111,334,374],[111,334,335,371,372,374],[111,374],[111,331,374,375],[111,334,335,373,374],[111,334,335,337,338,373,374],[111,334,335,336,373,374],[111,334,335,339,366,367,368,369,370,373,374],[111,331,334,335,339,371,373],[111,339,374],[111,341,342,343,344,345,346,347,348,349,350,374],[111,364,374],[111,340,351,359,360,361,362,363,365],[111,344,374],[111,352,353,354,355,356,357,358,374],[111,329],[111,429,430,431,432],[111,249,255,277],[111,390],[111,393],[111,214,215],[111,204,205,206,207,208,209,210,211,212,213],[111,204],[111,205],[111,214],[111,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[111,143],[111,143,156],[111,163,164],[111,165],[111,125,145],[111,145],[111,163],[111,168],[111,154],[111,124],[111,162,163,164],[111,120],[111,138],[111,122],[111,172],[111,170],[111,125,126],[111,136],[111,174],[111,125],[111,168,177,180],[100,111,118,450],[100,111,118,450,451,452,453],[111,118],[86,111,118,451],[111,385,386,387],[111,386],[111,386,387,388],[111,385,387,388],[67,111,188,239,287,380,382,407,408,442,443,446,447],[67,111,379,381,397,398,400,445],[67,111,379,396,397,398,456],[67,93,111,119,287,379,382,383,384,392,395,397],[111,239,379,382,392,397,398,457,458],[67,93,111,287,379,381,399,400,407,444,446],[67,111,379,396,397,398],[111,391],[67,111,239,375,388,403,404,405,406],[67,111,119,221,287,288,328,330,381,399,403,406],[67,111,239,288,379,380,382,383,384,397,398],[67,93,111,288,375,380,382,384,389,396,398,403],[67,111,288,379,382,398,447,461],[67,93,111,203,287,288,379,382,383,384,388,395,397],[93,111,287,288,379,394],[67,111,288,379,382,383,384,397,398],[67,111,221,287,288],[111,287],[67,111,222,287,454],[67,86,111,239,287,288,379,380,381,382,403,406,407,442,443,448,449,455,459,460,462],[67,111,398],[67,111,223,374,399,400,401,402,403,406,444],[67,84,111,400],[111,403,445],[111,375,401],[67,93,111,225,375,378,379,398,399,402],[67,111,239,288,442],[111,382,383],[111,239,379],[111,239,382],[111,188,375,382],[111,380,381,383,384],[111,234,239],[111,239,419,425],[111,239,420,425],[111,239,421,425],[111,239,423,425],[111,239,422,425],[111,239,425],[83,111,234,239,408,409],[111,239],[111,188,239,410,418,424],[111,239,409,410,425,426,434,436,437,439,440,441],[86,88,111,118,239,438],[111,428,433],[111,427,434,435],[111,223],[111,224],[67,111,216],[84,111,118,194,197,198,199,200,201,202,203,216],[72,111,118,278,279],[111,189,190,191,195,217,218,219,240,241,243,281,282,283,284,285,286],[111,220,239],[100,111],[111,221],[111,119,188],[111,192,193,194],[111,242],[111,237],[111,225,226],[83,86,111,118,188,221,222,226,227,238]],"referencedMap":[[456,1],[252,2],[245,3],[246,3],[249,4],[244,5],[248,6],[247,7],[254,2],[250,2],[256,2],[257,2],[258,2],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[265,2],[266,2],[267,2],[268,2],[269,2],[270,2],[271,2],[272,2],[273,2],[274,2],[275,2],[276,2],[277,8],[251,2],[253,2],[255,9],[404,10],[400,1],[408,1],[194,1],[417,11],[469,12],[465,1],[416,13],[413,14],[418,15],[197,16],[223,1],[203,17],[56,18],[57,19],[55,20],[58,21],[59,22],[60,23],[61,24],[62,25],[63,26],[64,27],[65,28],[66,29],[67,30],[414,1],[196,1],[464,1],[198,1],[200,31],[68,32],[69,32],[71,33],[72,34],[73,35],[74,36],[75,37],[76,38],[77,39],[78,40],[79,41],[80,42],[81,42],[82,43],[83,44],[84,45],[85,46],[70,1],[117,1],[86,47],[87,48],[88,49],[118,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[95,57],[96,58],[97,59],[98,60],[99,61],[100,62],[102,63],[101,64],[103,65],[104,66],[105,67],[106,68],[107,69],[108,70],[109,71],[110,72],[111,73],[112,74],[113,75],[114,76],[115,77],[116,78],[215,1],[222,44],[279,79],[412,1],[411,1],[199,80],[313,81],[314,82],[289,83],[292,83],[311,81],[312,81],[302,84],[301,84],[299,81],[294,81],[307,81],[305,81],[309,81],[293,81],[306,81],[310,81],[295,81],[296,81],[308,81],[290,81],[297,81],[298,81],[300,81],[304,81],[315,85],[303,81],[291,81],[328,86],[327,1],[322,85],[324,87],[323,85],[316,85],[317,85],[319,85],[321,85],[325,87],[326,87],[318,87],[320,87],[415,88],[193,1],[468,89],[467,90],[466,1],[119,91],[192,1],[201,1],[242,92],[234,93],[235,94],[229,95],[230,1],[237,96],[233,97],[232,98],[231,99],[236,100],[376,10],[378,101],[377,10],[375,102],[332,1],[334,103],[333,104],[338,105],[373,106],[370,107],[372,108],[335,107],[336,109],[340,109],[339,110],[337,111],[371,112],[369,107],[374,113],[367,1],[368,1],[341,114],[346,107],[348,107],[343,107],[344,114],[350,107],[351,115],[342,107],[347,107],[349,107],[345,107],[365,116],[364,107],[366,117],[360,107],[362,107],[361,107],[357,107],[363,118],[358,107],[359,119],[352,107],[353,107],[354,107],[355,107],[356,107],[221,1],[280,1],[390,1],[428,1],[330,120],[433,121],[432,1],[431,1],[430,1],[429,1],[278,122],[405,1],[329,1],[450,1],[391,123],[394,124],[393,1],[216,125],[214,126],[204,1],[205,1],[211,127],[208,1],[207,128],[206,1],[213,129],[212,1],[210,127],[209,128],[389,1],[202,1],[188,130],[144,131],[157,132],[122,1],[165,133],[167,134],[166,134],[146,135],[145,1],[147,136],[168,137],[172,138],[170,138],[155,139],[154,1],[125,140],[150,1],[184,141],[180,140],[124,142],[139,143],[153,1],[182,1],[158,144],[169,138],[173,145],[171,146],[185,1],[160,1],[136,142],[129,1],[128,147],[151,140],[152,140],[127,147],[161,1],[123,1],[138,1],[186,148],[134,140],[174,134],[176,149],[175,149],[120,1],[137,1],[143,1],[135,140],[133,1],[132,1],[130,150],[131,1],[159,1],[181,151],[140,147],[141,147],[156,1],[126,1],[177,138],[179,145],[178,146],[164,1],[162,1],[149,1],[183,1],[187,1],[121,1],[148,1],[163,1],[142,1],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[45,1],[41,1],[42,1],[43,1],[44,1],[9,1],[49,1],[46,1],[47,1],[48,1],[50,1],[10,1],[51,1],[52,1],[53,1],[2,1],[1,1],[11,1],[54,1],[15,1],[14,1],[228,1],[331,1],[451,152],[454,153],[452,154],[453,155],[388,156],[387,157],[385,158],[386,159],[448,160],[444,161],[457,162],[396,163],[459,164],[460,165],[458,166],[392,167],[406,168],[407,169],[379,55],[447,170],[397,171],[462,172],[398,173],[395,174],[461,175],[449,176],[288,177],[455,178],[463,179],[399,180],[445,181],[401,182],[446,183],[402,184],[403,185],[443,186],[384,187],[381,188],[380,189],[383,190],[382,191],[441,192],[420,193],[421,194],[422,195],[424,196],[423,197],[419,198],[410,199],[409,200],[425,201],[426,1],[437,1],[442,202],[438,1],[439,203],[440,1],[434,204],[436,205],[427,1],[435,200],[224,206],[225,207],[286,208],[217,209],[281,210],[287,211],[220,1],[240,212],[283,213],[219,31],[282,214],[284,1],[189,215],[218,1],[241,1],[191,1],[190,1],[285,1],[195,216],[243,217],[226,1],[238,218],[227,219],[239,220]],"exportedModulesMap":[[456,1],[252,2],[245,3],[246,3],[249,4],[244,5],[248,6],[247,7],[254,2],[250,2],[256,2],[257,2],[258,2],[259,2],[260,2],[261,2],[262,2],[263,2],[264,2],[265,2],[266,2],[267,2],[268,2],[269,2],[270,2],[271,2],[272,2],[273,2],[274,2],[275,2],[276,2],[277,8],[251,2],[253,2],[255,9],[404,10],[400,1],[408,1],[194,1],[417,11],[469,12],[465,1],[416,13],[413,14],[418,15],[197,16],[223,1],[203,17],[56,18],[57,19],[55,20],[58,21],[59,22],[60,23],[61,24],[62,25],[63,26],[64,27],[65,28],[66,29],[67,30],[414,1],[196,1],[464,1],[198,1],[200,31],[68,32],[69,32],[71,33],[72,34],[73,35],[74,36],[75,37],[76,38],[77,39],[78,40],[79,41],[80,42],[81,42],[82,43],[83,44],[84,45],[85,46],[70,1],[117,1],[86,47],[87,48],[88,49],[118,50],[89,51],[90,52],[91,53],[92,54],[93,55],[94,56],[95,57],[96,58],[97,59],[98,60],[99,61],[100,62],[102,63],[101,64],[103,65],[104,66],[105,67],[106,68],[107,69],[108,70],[109,71],[110,72],[111,73],[112,74],[113,75],[114,76],[115,77],[116,78],[215,1],[222,44],[279,79],[412,1],[411,1],[199,80],[313,81],[314,82],[289,83],[292,83],[311,81],[312,81],[302,84],[301,84],[299,81],[294,81],[307,81],[305,81],[309,81],[293,81],[306,81],[310,81],[295,81],[296,81],[308,81],[290,81],[297,81],[298,81],[300,81],[304,81],[315,85],[303,81],[291,81],[328,86],[327,1],[322,85],[324,87],[323,85],[316,85],[317,85],[319,85],[321,85],[325,87],[326,87],[318,87],[320,87],[415,88],[193,1],[468,89],[467,90],[466,1],[119,91],[192,1],[201,1],[242,92],[234,93],[235,94],[229,95],[230,1],[237,96],[233,97],[232,98],[231,99],[236,100],[376,10],[378,101],[377,10],[375,102],[332,1],[334,103],[333,104],[338,105],[373,106],[370,107],[372,108],[335,107],[336,109],[340,109],[339,110],[337,111],[371,112],[369,107],[374,113],[367,1],[368,1],[341,114],[346,107],[348,107],[343,107],[344,114],[350,107],[351,115],[342,107],[347,107],[349,107],[345,107],[365,116],[364,107],[366,117],[360,107],[362,107],[361,107],[357,107],[363,118],[358,107],[359,119],[352,107],[353,107],[354,107],[355,107],[356,107],[221,1],[280,1],[390,1],[428,1],[330,120],[433,121],[432,1],[431,1],[430,1],[429,1],[278,122],[405,1],[329,1],[450,1],[391,123],[394,124],[393,1],[216,125],[214,126],[204,1],[205,1],[211,127],[208,1],[207,128],[206,1],[213,129],[212,1],[210,127],[209,128],[389,1],[202,1],[188,130],[144,131],[157,132],[122,1],[165,133],[167,134],[166,134],[146,135],[145,1],[147,136],[168,137],[172,138],[170,138],[155,139],[154,1],[125,140],[150,1],[184,141],[180,140],[124,142],[139,143],[153,1],[182,1],[158,144],[169,138],[173,145],[171,146],[185,1],[160,1],[136,142],[129,1],[128,147],[151,140],[152,140],[127,147],[161,1],[123,1],[138,1],[186,148],[134,140],[174,134],[176,149],[175,149],[120,1],[137,1],[143,1],[135,140],[133,1],[132,1],[130,150],[131,1],[159,1],[181,151],[140,147],[141,147],[156,1],[126,1],[177,138],[179,145],[178,146],[164,1],[162,1],[149,1],[183,1],[187,1],[121,1],[148,1],[163,1],[142,1],[12,1],[13,1],[17,1],[16,1],[3,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[24,1],[25,1],[4,1],[5,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[38,1],[39,1],[40,1],[8,1],[45,1],[41,1],[42,1],[43,1],[44,1],[9,1],[49,1],[46,1],[47,1],[48,1],[50,1],[10,1],[51,1],[52,1],[53,1],[2,1],[1,1],[11,1],[54,1],[15,1],[14,1],[228,1],[331,1],[451,152],[454,153],[452,154],[453,155],[388,156],[387,157],[385,158],[386,159],[448,160],[444,161],[457,162],[396,163],[459,164],[460,165],[458,166],[392,167],[406,168],[407,169],[379,55],[447,170],[397,171],[462,172],[398,173],[395,174],[461,175],[449,176],[288,177],[455,178],[463,179],[399,180],[445,181],[401,182],[446,183],[402,184],[403,185],[443,186],[384,187],[381,188],[380,189],[383,190],[382,191],[441,192],[420,193],[421,194],[422,195],[424,196],[423,197],[419,198],[410,199],[409,200],[425,201],[426,1],[437,1],[442,202],[438,1],[439,203],[440,1],[434,204],[436,205],[427,1],[435,200],[224,206],[225,207],[286,208],[217,209],[281,210],[287,211],[220,1],[240,212],[283,213],[219,31],[282,214],[284,1],[189,215],[218,1],[241,1],[191,1],[190,1],[285,1],[195,216],[243,217],[226,1],[238,218],[227,219],[239,220]],"semanticDiagnosticsPerFile":[456,252,245,246,249,244,248,247,254,250,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,251,253,255,404,400,408,194,417,469,465,416,413,418,197,223,203,56,57,55,58,59,60,61,62,63,64,65,66,67,414,196,464,198,200,68,69,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,70,117,86,87,88,118,89,90,91,92,93,94,95,96,97,98,99,100,102,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,215,222,279,412,411,199,313,314,289,292,311,312,302,301,299,294,307,305,309,293,306,310,295,296,308,290,297,298,300,304,315,303,291,328,327,322,324,323,316,317,319,321,325,326,318,320,415,193,468,467,466,119,192,201,242,234,235,229,230,237,233,232,231,236,376,378,377,375,332,334,333,338,373,370,372,335,336,340,339,337,371,369,374,367,368,341,346,348,343,344,350,351,342,347,349,345,365,364,366,360,362,361,357,363,358,359,352,353,354,355,356,221,280,390,428,330,433,432,431,430,429,278,405,329,450,391,394,393,216,214,204,205,211,208,207,206,213,212,210,209,389,202,188,144,157,122,165,167,166,146,145,147,168,172,170,155,154,125,150,184,180,124,139,153,182,158,169,173,171,185,160,136,129,128,151,152,127,161,123,138,186,134,174,176,175,120,137,143,135,133,132,130,131,159,181,140,141,156,126,177,179,178,164,162,149,183,187,121,148,163,142,12,13,17,16,3,18,19,20,21,22,23,24,25,4,5,29,26,27,28,30,31,32,6,33,34,35,36,7,37,38,39,40,8,45,41,42,43,44,9,49,46,47,48,50,10,51,52,53,2,1,11,54,15,14,228,331,451,454,452,453,388,387,385,386,448,444,457,396,459,460,458,392,406,407,379,447,397,462,398,395,461,449,288,455,463,399,445,401,446,402,403,443,384,381,380,383,382,441,420,421,422,424,423,419,410,409,425,426,437,442,438,439,440,434,436,427,435,224,225,286,217,281,287,220,240,283,219,282,284,189,218,241,191,190,285,195,243,226,238,227,239]},"version":"4.6.3"}
|
package/lib/appium.js
CHANGED
|
@@ -115,7 +115,6 @@ class AppiumDriver extends DriverCore {
|
|
|
115
115
|
return this._log;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
|
|
119
118
|
/**
|
|
120
119
|
* Cancel commands queueing for the umbrella Appium driver
|
|
121
120
|
*/
|
|
@@ -138,9 +137,8 @@ class AppiumDriver extends DriverCore {
|
|
|
138
137
|
};
|
|
139
138
|
}
|
|
140
139
|
|
|
141
|
-
async getSessions () {
|
|
142
|
-
|
|
143
|
-
return _.toPairs(sessions)
|
|
140
|
+
async getSessions () { // eslint-disable-line require-await
|
|
141
|
+
return _.toPairs(this.sessions)
|
|
144
142
|
.map(([id, driver]) => ({id, capabilities: driver.caps}));
|
|
145
143
|
}
|
|
146
144
|
|
|
@@ -300,9 +298,7 @@ class AppiumDriver extends DriverCore {
|
|
|
300
298
|
[...runningDriversData, ...otherPendingDriversData]
|
|
301
299
|
);
|
|
302
300
|
protocol = driverInstance.protocol;
|
|
303
|
-
|
|
304
|
-
this.sessions[innerSessionId] = driverInstance;
|
|
305
|
-
});
|
|
301
|
+
this.sessions[innerSessionId] = driverInstance;
|
|
306
302
|
} finally {
|
|
307
303
|
await pendingDriversGuard.acquire(AppiumDriver.name, () => {
|
|
308
304
|
_.pull(this.pendingDrivers[InnerDriver.name], driverInstance);
|
|
@@ -377,16 +373,14 @@ class AppiumDriver extends DriverCore {
|
|
|
377
373
|
* @param {import('../types/extension').DriverClass} InnerDriver
|
|
378
374
|
* @returns {Promise<DriverData[]>}}
|
|
379
375
|
*/
|
|
380
|
-
async curSessionDataForDriver (InnerDriver) {
|
|
381
|
-
const
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
for (let datum of data) {
|
|
376
|
+
async curSessionDataForDriver (InnerDriver) { // eslint-disable-line require-await
|
|
377
|
+
const data = _.compact(_.values(this.sessions)
|
|
378
|
+
.filter((s) => s.constructor.name === InnerDriver.name)
|
|
379
|
+
.map((s) => s.driverData));
|
|
380
|
+
for (const datum of data) {
|
|
386
381
|
if (!datum) {
|
|
387
382
|
throw new Error(`Problem getting session data for driver type ` +
|
|
388
|
-
|
|
389
|
-
`driverData'?`);
|
|
383
|
+
`${InnerDriver.name}; does it implement 'get driverData'?`);
|
|
390
384
|
}
|
|
391
385
|
}
|
|
392
386
|
return data;
|
|
@@ -522,9 +516,8 @@ class AppiumDriver extends DriverCore {
|
|
|
522
516
|
// cases with plugin handling.
|
|
523
517
|
|
|
524
518
|
const isGetStatus = cmd === GET_STATUS_COMMAND;
|
|
525
|
-
const
|
|
526
|
-
const
|
|
527
|
-
const isSessionCmd = !isUmbrellaCmd || isDeleteSession;
|
|
519
|
+
const isUmbrellaCmd = isAppiumDriverCommand(cmd);
|
|
520
|
+
const isSessionCmd = isSessionCommand(cmd);
|
|
528
521
|
|
|
529
522
|
// if a plugin override proxying for this command and that is why we are here instead of just
|
|
530
523
|
// letting the protocol proxy the command entirely, determine that, get the request object for
|
|
@@ -544,7 +537,7 @@ class AppiumDriver extends DriverCore {
|
|
|
544
537
|
let driver = this;
|
|
545
538
|
if (isSessionCmd) {
|
|
546
539
|
sessionId = _.last(args);
|
|
547
|
-
dstSession =
|
|
540
|
+
dstSession = this.sessions[sessionId];
|
|
548
541
|
if (!dstSession) {
|
|
549
542
|
throw new Error(`The session with id '${sessionId}' does not exist`);
|
|
550
543
|
}
|
|
@@ -717,7 +710,7 @@ class AppiumDriver extends DriverCore {
|
|
|
717
710
|
// help decide which commands should be proxied to sub-drivers and which
|
|
718
711
|
// should be handled by this, our umbrella driver
|
|
719
712
|
function isAppiumDriverCommand (cmd) {
|
|
720
|
-
return !isSessionCommand(cmd) || cmd ===
|
|
713
|
+
return !isSessionCommand(cmd) || cmd === DELETE_SESSION_COMMAND;
|
|
721
714
|
}
|
|
722
715
|
|
|
723
716
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.29",
|
|
4
4
|
"description": "Automation for Apps.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"test:unit": "mocha --require ../../test/setup-babel.js \"./test/unit/**/*.spec.js\""
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@appium/base-driver": "
|
|
51
|
+
"@appium/base-driver": "file:../base-driver",
|
|
52
52
|
"@appium/base-plugin": "1.8.1",
|
|
53
|
-
"@appium/schema": "
|
|
54
|
-
"@appium/support": "
|
|
53
|
+
"@appium/schema": "file:../schema",
|
|
54
|
+
"@appium/support": "file:../support",
|
|
55
55
|
"@babel/runtime": "7.17.9",
|
|
56
56
|
"@sidvind/better-ajv-errors": "1.1.1",
|
|
57
57
|
"ajv": "8.11.0",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"tag": "next"
|
|
86
86
|
},
|
|
87
87
|
"types": "./build/lib/index.d.ts",
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "ec6a90a797d2dadb407922426be16efaec9def07"
|
|
89
89
|
}
|