appium 2.0.0-beta.40 → 2.0.0-beta.41
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 +14 -15
- package/build/lib/cli/args.d.ts +2 -5
- package/build/lib/cli/args.d.ts.map +1 -1
- package/build/lib/cli/args.js +1 -1
- package/build/lib/config-file.js +4 -4
- package/build/lib/config.d.ts +9 -2
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +12 -29
- package/build/lib/extension/extension-config.d.ts.map +1 -1
- package/build/lib/extension/extension-config.js +3 -3
- package/build/lib/extension/index.js +6 -5
- package/build/lib/extension/package-changed.js +2 -4
- package/build/lib/main.d.ts.map +1 -1
- package/build/lib/main.js +22 -17
- package/build/lib/schema/arg-spec.d.ts +5 -5
- package/build/lib/schema/arg-spec.d.ts.map +1 -1
- package/build/lib/schema/arg-spec.js +2 -2
- package/build/lib/schema/cli-args.js +5 -7
- package/build/lib/schema/schema.d.ts +3 -3
- package/build/lib/schema/schema.d.ts.map +1 -1
- package/build/lib/schema/schema.js +2 -4
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/cli.d.ts +4 -5
- package/build/types/cli.d.ts.map +1 -1
- package/lib/appium.js +8 -5
- package/lib/cli/args.js +1 -3
- package/lib/config.js +18 -24
- package/lib/extension/extension-config.js +4 -6
- package/lib/main.js +17 -2
- package/lib/schema/arg-spec.js +1 -1
- package/lib/schema/schema.js +1 -1
- package/package.json +24 -15
- package/scripts/autoinstall-extensions.js +11 -3
- package/test.d.ts +7 -0
- package/test.js +13 -0
- package/types/cli.ts +8 -19
package/build/lib/config.d.ts
CHANGED
|
@@ -22,9 +22,16 @@ export function validateTmpDir(tmpDir: string): Promise<void>;
|
|
|
22
22
|
* @returns {Args}
|
|
23
23
|
*/
|
|
24
24
|
export function getNonDefaultServerArgs(parsedArgs: Args): Args;
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @param {boolean} [useGithubApiFallback]
|
|
27
|
+
* @returns {Promise<string?>}
|
|
28
|
+
*/
|
|
29
|
+
export function getGitRev(useGithubApiFallback?: boolean | undefined): Promise<string | null>;
|
|
26
30
|
export const APPIUM_VER: any;
|
|
27
|
-
|
|
31
|
+
/**
|
|
32
|
+
* @param {boolean} [useGithubApiFallback]
|
|
33
|
+
*/
|
|
34
|
+
export function updateBuildInfo(useGithubApiFallback?: boolean | undefined): Promise<void>;
|
|
28
35
|
/**
|
|
29
36
|
* Shows a breakdown of the current config after CLI params, config file loaded & defaults applied.
|
|
30
37
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.js"],"names":[],"mappings":"yBAiUa,OAAO,cAAc,EAAE,UAAU;mBACjC,OAAO,cAAc,EAAE,IAAI;;AAzMxC;;;;;;GAMG;AACH,gCAFa,OAAO,cAAc,EAAE,SAAS,CAI5C;AAED,oCAKC;AAeD,+CAGC;AAhBD,6CAWC;AA4ID;;GAEG;AACH,uCAFW,MAAM,iBAWhB;AAjJD;;;;GAIG;AACH,oDAHW,IAAI,GACF,IAAI,CAmFhB;AA3LD;;;GAGG;AACH,uEAFa,QAAQ,MAAM,QAAE,CA6B5B;AA3ED,6BAAsC;AAkBtC;;GAEG;AACH,2FAUC;AAwND;;;;;;;;;;GAUG;AACH,0DALW,QAAQ,UAAU,CAAC,gBACnB,OAAO,eAAe,EAAE,oBAAoB,YAC5C,QAAQ,UAAU,CAAC,cACnB,UAAU,QAoBpB;AAgBD,6BAAuC"}
|
package/build/lib/config.js
CHANGED
|
@@ -59,10 +59,10 @@ async function updateBuildInfo(useGithubApiFallback = false) {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
BUILD_INFO['git-sha'] = sha;
|
|
62
|
-
const
|
|
62
|
+
const buildTimestamp = await getGitTimestamp(sha, useGithubApiFallback);
|
|
63
63
|
|
|
64
|
-
if (
|
|
65
|
-
BUILD_INFO.built =
|
|
64
|
+
if (buildTimestamp) {
|
|
65
|
+
BUILD_INFO.built = buildTimestamp;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -92,22 +92,13 @@ async function getGitRev(useGithubApiFallback = false) {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
try {
|
|
95
|
-
|
|
95
|
+
var _await$axios$get$data, _await$axios$get$data2;
|
|
96
|
+
|
|
97
|
+
return (_await$axios$get$data = (await _axios.default.get(`${GITHUB_API}/git/refs/tags/appium@${APPIUM_VER}`, {
|
|
96
98
|
headers: {
|
|
97
99
|
'User-Agent': `Appium ${APPIUM_VER}`
|
|
98
100
|
}
|
|
99
|
-
})).data;
|
|
100
|
-
|
|
101
|
-
if (_lodash.default.isArray(resBodyObj)) {
|
|
102
|
-
for (const {
|
|
103
|
-
name,
|
|
104
|
-
commit
|
|
105
|
-
} of resBodyObj) {
|
|
106
|
-
if (name === `v${APPIUM_VER}` && commit && commit.sha) {
|
|
107
|
-
return commit.sha;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
101
|
+
})).data) === null || _await$axios$get$data === void 0 ? void 0 : (_await$axios$get$data2 = _await$axios$get$data.object) === null || _await$axios$get$data2 === void 0 ? void 0 : _await$axios$get$data2.sha;
|
|
111
102
|
} catch (ign) {}
|
|
112
103
|
|
|
113
104
|
return null;
|
|
@@ -132,21 +123,13 @@ async function getGitTimestamp(commitSha, useGithubApiFallback = false) {
|
|
|
132
123
|
}
|
|
133
124
|
|
|
134
125
|
try {
|
|
135
|
-
|
|
126
|
+
var _await$axios$get$data3, _await$axios$get$data4;
|
|
127
|
+
|
|
128
|
+
return (_await$axios$get$data3 = (await _axios.default.get(`${GITHUB_API}/git/tags/${commitSha}`, {
|
|
136
129
|
headers: {
|
|
137
130
|
'User-Agent': `Appium ${APPIUM_VER}`
|
|
138
131
|
}
|
|
139
|
-
})).data;
|
|
140
|
-
|
|
141
|
-
if (resBodyObj && resBodyObj.commit) {
|
|
142
|
-
if (resBodyObj.commit.committer && resBodyObj.commit.committer.date) {
|
|
143
|
-
return resBodyObj.commit.committer.date;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (resBodyObj.commit.author && resBodyObj.commit.author.date) {
|
|
147
|
-
return resBodyObj.commit.author.date;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
132
|
+
})).data) === null || _await$axios$get$data3 === void 0 ? void 0 : (_await$axios$get$data4 = _await$axios$get$data3.tagger) === null || _await$axios$get$data4 === void 0 ? void 0 : _await$axios$get$data4.date;
|
|
150
133
|
} catch (ign) {}
|
|
151
134
|
|
|
152
135
|
return null;
|
|
@@ -252,4 +235,4 @@ async function validateTmpDir(tmpDir) {
|
|
|
252
235
|
const rootDir = _support.fs.findRoot(__dirname);
|
|
253
236
|
|
|
254
237
|
exports.rootDir = rootDir;
|
|
255
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJucG1QYWNrYWdlIiwiZnMiLCJyZWFkUGFja2FnZUpzb25Gcm9tIiwiX19kaXJuYW1lIiwiQVBQSVVNX1ZFUiIsInZlcnNpb24iLCJNSU5fTk9ERV9WRVJTSU9OIiwiZW5naW5lcyIsIm5vZGUiLCJHSVRfTUVUQV9ST09UIiwiR0lUX0JJTkFSWSIsInN5c3RlbSIsImlzV2luZG93cyIsIkdJVEhVQl9BUEkiLCJCVUlMRF9JTkZPIiwiZ2V0Tm9kZVZlcnNpb24iLCJzZW12ZXIiLCJjb2VyY2UiLCJwcm9jZXNzIiwidXBkYXRlQnVpbGRJbmZvIiwidXNlR2l0aHViQXBpRmFsbGJhY2siLCJzaGEiLCJnZXRHaXRSZXYiLCJidWlsdCIsImdldEdpdFRpbWVzdGFtcCIsImZpbmRHaXRSb290IiwiZmluZFVwIiwiY3dkIiwicm9vdERpciIsInR5cGUiLCJnaXRSb290Iiwic3Rkb3V0IiwiZXhlYyIsInRyaW0iLCJpZ24iLCJyZXNCb2R5T2JqIiwiYXhpb3MiLCJnZXQiLCJoZWFkZXJzIiwiZGF0YSIsIl8iLCJpc0FycmF5IiwibmFtZSIsImNvbW1pdCIsImNvbW1pdFNoYSIsImNvbW1pdHRlciIsImRhdGUiLCJhdXRob3IiLCJnZXRCdWlsZEluZm8iLCJjaGVja05vZGVPayIsInNhdGlzZmllcyIsImxvZ2dlciIsImVycm9yQW5kVGhyb3ciLCJ3YXJuTm9kZURlcHJlY2F0aW9ucyIsInNob3dCdWlsZEluZm8iLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzIiwicGFyc2VkQXJncyIsImZsYXR0ZW4iLCJhcmdzIiwiYXJnU3BlY3MiLCJnZXRBbGxBcmdTcGVjcyIsImZsYXR0ZW5lZCIsInJlZHVjZSIsInZhbHVlcyIsImFjYyIsImFyZ1NwZWMiLCJoYXMiLCJkZXN0IiwidmFsdWUiLCJ0eXBlc0RpZmZlciIsImRlZmF1bHRzRnJvbVNjaGVtYSIsImRlZmF1bHRWYWx1ZUlzQXJyYXkiLCJhcmdzVmFsdWVJc0FycmF5IiwiYXJyYXlzRGlmZmVyIiwiZ3QiLCJzaXplIiwiZGlmZmVyZW5jZSIsInZhbHVlc0RpZmZlciIsImRlZmF1bHRJc0RlZmluZWQiLCJpc1VuZGVmaW5lZCIsImFyZ1ZhbHVlTm90QXJyYXlPckFycmF5c0RpZmZlciIsIm92ZXJTb21lIiwibmVnYXRlIiwiZGVmYXVsdFZhbHVlTm90QXJyYXlBbmRWYWx1ZXNEaWZmZXIiLCJvdmVyRXZlcnkiLCJpc05vdERlZmF1bHQiLCJnZXREZWZhdWx0c0ZvclNjaGVtYSIsInBpY2tCeSIsIl9fIiwia2V5Iiwic2V0IiwiY29tcGFjdENvbmZpZyIsInBhcnRpYWwiLCJvbWl0QnkiLCJpc09iamVjdCIsImlzRW1wdHkiLCJzaG93Q29uZmlnIiwibm9uRGVmYXVsdFByZUNvbmZpZ1BhcnNlZEFyZ3MiLCJjb25maWdSZXN1bHQiLCJkZWZhdWx0cyIsImRpciIsImNvbmZpZyIsImZpbGVwYXRoIiwidmFsaWRhdGVUbXBEaXIiLCJ0bXBEaXIiLCJta2RpcnAiLCJlIiwiRXJyb3IiLCJmaW5kUm9vdCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7c3lzdGVtLCBmc30gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQge2V4ZWN9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCBmaW5kVXAgZnJvbSAnZmluZC11cCc7XG5pbXBvcnQge2dldERlZmF1bHRzRm9yU2NoZW1hLCBnZXRBbGxBcmdTcGVjc30gZnJvbSAnLi9zY2hlbWEvc2NoZW1hJztcblxuY29uc3QgbnBtUGFja2FnZSA9IGZzLnJlYWRQYWNrYWdlSnNvbkZyb20oX19kaXJuYW1lKTtcblxuY29uc3QgQVBQSVVNX1ZFUiA9IG5wbVBhY2thZ2UudmVyc2lvbjtcbmNvbnN0IE1JTl9OT0RFX1ZFUlNJT04gPSBucG1QYWNrYWdlLmVuZ2luZXMubm9kZTtcblxuY29uc3QgR0lUX01FVEFfUk9PVCA9ICcuZ2l0JztcbmNvbnN0IEdJVF9CSU5BUlkgPSBgZ2l0JHtzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnLmV4ZScgOiAnJ31gO1xuY29uc3QgR0lUSFVCX0FQSSA9ICdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2FwcGl1bS9hcHBpdW0nO1xuXG4vKipcbiAqIEB0eXBlIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkJ1aWxkSW5mb31cbiAqL1xuY29uc3QgQlVJTERfSU5GTyA9IHtcbiAgdmVyc2lvbjogQVBQSVVNX1ZFUixcbn07XG5cbmZ1bmN0aW9uIGdldE5vZGVWZXJzaW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtpbXBvcnQoJ3NlbXZlcicpLlNlbVZlcn0gKi8gKHNlbXZlci5jb2VyY2UocHJvY2Vzcy52ZXJzaW9uKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUJ1aWxkSW5mbyh1c2VHaXRodWJBcGlGYWxsYmFjayA9IGZhbHNlKSB7XG4gIGNvbnN0IHNoYSA9IGF3YWl0IGdldEdpdFJldih1c2VHaXRodWJBcGlGYWxsYmFjayk7XG4gIGlmICghc2hhKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIEJVSUxEX0lORk9bJ2dpdC1zaGEnXSA9IHNoYTtcbiAgY29uc3QgYnVpbHQgPSBhd2FpdCBnZXRHaXRUaW1lc3RhbXAoc2hhLCB1c2VHaXRodWJBcGlGYWxsYmFjayk7XG4gIGlmIChidWlsdCkge1xuICAgIEJVSUxEX0lORk8uYnVpbHQgPSBidWlsdDtcbiAgfVxufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBHaXQgbWV0YWRhdGEgZGlyIChzZWUgYEdJVF9NRVRBX1JPT1RgKVxuICpcbiAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgQXBwaXVtIGNhbm5vdCBhc3N1bWUgYHBhY2thZ2UuanNvbmAgYW5kIGAuZ2l0YCBhcmUgaW4gdGhlIHNhbWVcbiAqIGRpcmVjdG9yeS4gIE1vbm9yZXBvcywgc2VlP1xuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nfHVuZGVmaW5lZD59IFBhdGggdG8gZGlyIG9yIGB1bmRlZmluZWRgIGlmIG5vdCBmb3VuZFxuICovXG5hc3luYyBmdW5jdGlvbiBmaW5kR2l0Um9vdCgpIHtcbiAgcmV0dXJuIGF3YWl0IGZpbmRVcChHSVRfTUVUQV9ST09ULCB7Y3dkOiByb290RGlyLCB0eXBlOiAnZGlyZWN0b3J5J30pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRHaXRSZXYodXNlR2l0aHViQXBpRmFsbGJhY2sgPSBmYWxzZSkge1xuICBjb25zdCBnaXRSb290ID0gYXdhaXQgZmluZEdpdFJvb3QoKTtcbiAgaWYgKGdpdFJvb3QpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjKEdJVF9CSU5BUlksIFsncmV2LXBhcnNlJywgJ0hFQUQnXSwge1xuICAgICAgICBjd2Q6IGdpdFJvb3QsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBzdGRvdXQudHJpbSgpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuXG4gIGlmICghdXNlR2l0aHViQXBpRmFsbGJhY2spIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzQm9keU9iaiA9IChcbiAgICAgIGF3YWl0IGF4aW9zLmdldChgJHtHSVRIVUJfQVBJfS90YWdzYCwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ1VzZXItQWdlbnQnOiBgQXBwaXVtICR7QVBQSVVNX1ZFUn1gLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLmRhdGE7XG4gICAgaWYgKF8uaXNBcnJheShyZXNCb2R5T2JqKSkge1xuICAgICAgZm9yIChjb25zdCB7bmFtZSwgY29tbWl0fSBvZiByZXNCb2R5T2JqKSB7XG4gICAgICAgIGlmIChuYW1lID09PSBgdiR7QVBQSVVNX1ZFUn1gICYmIGNvbW1pdCAmJiBjb21taXQuc2hhKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbW1pdC5zaGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGlnbikge31cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbW1pdFNoYVxuICogQHBhcmFtIHtib29sZWFufSBbdXNlR2l0aHViQXBpRmFsbGJhY2tdXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc/Pn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0R2l0VGltZXN0YW1wKGNvbW1pdFNoYSwgdXNlR2l0aHViQXBpRmFsbGJhY2sgPSBmYWxzZSkge1xuICBjb25zdCBnaXRSb290ID0gYXdhaXQgZmluZEdpdFJvb3QoKTtcbiAgaWYgKGdpdFJvb3QpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjKEdJVF9CSU5BUlksIFsnc2hvdycsICctcycsICctLWZvcm1hdD0lY2knLCBjb21taXRTaGFdLCB7XG4gICAgICAgIGN3ZDogZ2l0Um9vdCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN0ZG91dC50cmltKCk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG5cbiAgaWYgKCF1c2VHaXRodWJBcGlGYWxsYmFjaykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNCb2R5T2JqID0gKFxuICAgICAgYXdhaXQgYXhpb3MuZ2V0KGAke0dJVEhVQl9BUEl9L2NvbW1pdHMvJHtjb21taXRTaGF9YCwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ1VzZXItQWdlbnQnOiBgQXBwaXVtICR7QVBQSVVNX1ZFUn1gLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApLmRhdGE7XG4gICAgaWYgKHJlc0JvZHlPYmogJiYgcmVzQm9keU9iai5jb21taXQpIHtcbiAgICAgIGlmIChyZXNCb2R5T2JqLmNvbW1pdC5jb21taXR0ZXIgJiYgcmVzQm9keU9iai5jb21taXQuY29tbWl0dGVyLmRhdGUpIHtcbiAgICAgICAgcmV0dXJuIHJlc0JvZHlPYmouY29tbWl0LmNvbW1pdHRlci5kYXRlO1xuICAgICAgfVxuICAgICAgaWYgKHJlc0JvZHlPYmouY29tbWl0LmF1dGhvciAmJiByZXNCb2R5T2JqLmNvbW1pdC5hdXRob3IuZGF0ZSkge1xuICAgICAgICByZXR1cm4gcmVzQm9keU9iai5jb21taXQuYXV0aG9yLmRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHt9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIE11dGFibGUgb2JqZWN0IGNvbnRhaW5pbmcgQXBwaXVtIGJ1aWxkIGluZm9ybWF0aW9uLiBCeSBkZWZhdWx0IGl0XG4gKiBvbmx5IGNvbnRhaW5zIHRoZSBBcHBpdW0gdmVyc2lvbiwgYnV0IGlzIHVwZGF0ZWQgd2l0aCB0aGUgYnVpbGQgdGltZXN0YW1wXG4gKiBhbmQgZ2l0IGNvbW1pdCBoYXNoIGFzeW5jaHJvbm91c2x5IGFzIHNvb24gYXMgYHVwZGF0ZUJ1aWxkSW5mb2AgaXMgY2FsbGVkXG4gKiBhbmQgc3VjY2VlZHMuXG4gKiBAcmV0dXJucyB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5CdWlsZEluZm99XG4gKi9cbmZ1bmN0aW9uIGdldEJ1aWxkSW5mbygpIHtcbiAgcmV0dXJuIEJVSUxEX0lORk87XG59XG5cbmZ1bmN0aW9uIGNoZWNrTm9kZU9rKCkge1xuICBjb25zdCB2ZXJzaW9uID0gZ2V0Tm9kZVZlcnNpb24oKTtcbiAgaWYgKCFzZW12ZXIuc2F0aXNmaWVzKHZlcnNpb24sIE1JTl9OT0RFX1ZFUlNJT04pKSB7XG4gICAgbG9nZ2VyLmVycm9yQW5kVGhyb3coYE5vZGUgdmVyc2lvbiBtdXN0IGJlICR7TUlOX05PREVfVkVSU0lPTn0uIEN1cnJlbnRseSAke3ZlcnNpb24udmVyc2lvbn1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB3YXJuTm9kZURlcHJlY2F0aW9ucygpIHtcbiAgLyoqXG4gICAqIFVuY29tbWVudCB0aGlzIHNlY3Rpb24gdG8gZ2V0IG5vZGUgdmVyc2lvbiBkZXByZWNhdGlvbiB3YXJuaW5nc1xuICAgKiBBbHNvIGFkZCB0ZXN0IGNhc2VzIHRvIGNvbmZpZy1zcGVjcy5qcyB0byBjb3ZlciB0aGUgY2FzZXMgYWRkZWRcbiAgICoqL1xuICAvLyBjb25zdCB2ZXJzaW9uID0gZ2V0Tm9kZVZlcnNpb24oKTtcbiAgLy8gaWYgKHZlcnNpb24ubWFqb3IgPCA4KSB7XG4gIC8vICAgbG9nZ2VyLndhcm4oYEFwcGl1bSBzdXBwb3J0IGZvciB2ZXJzaW9ucyBvZiBub2RlIDwgJHt2ZXJzaW9uLm1ham9yfSBoYXMgYmVlbiBgICtcbiAgLy8gICAgICAgICAgICAgICAnZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIFBsZWFzZSAnICtcbiAgLy8gICAgICAgICAgICAgICAndXBncmFkZSEnKTtcbiAgLy8gfVxufVxuXG5hc3luYyBmdW5jdGlvbiBzaG93QnVpbGRJbmZvKCkge1xuICBhd2FpdCB1cGRhdGVCdWlsZEluZm8odHJ1ZSk7XG4gIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGdldEJ1aWxkSW5mbygpKSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29uc29sZVxufVxuXG4vKipcbiAqIFJldHVybnMgay92IHBhaXJzIG9mIHNlcnZlciBhcmd1bWVudHMgd2hpY2ggYXJlIF9ub3RfIHRoZSBkZWZhdWx0cy5cbiAqIEBwYXJhbSB7QXJnc30gcGFyc2VkQXJnc1xuICogQHJldHVybnMge0FyZ3N9XG4gKi9cbmZ1bmN0aW9uIGdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzKHBhcnNlZEFyZ3MpIHtcbiAgLyoqXG4gICAqIEZsYXR0ZW5zIHBhcnNlZCBhcmdzIGludG8gYSBzaW5nbGUgbGV2ZWwgb2JqZWN0IGZvciBjb21wYXJpc29uIHdpdGhcbiAgICogZmxhdHRlbmVkIGRlZmF1bHRzIGFjcm9zcyBzZXJ2ZXIgYXJncyBhbmQgZXh0ZW5zaW9uIGFyZ3MuXG4gICAqIEBwYXJhbSB7QXJnc30gYXJnc1xuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgeyB2YWx1ZTogYW55LCBhcmdTcGVjOiBBcmdTcGVjIH0+fVxuICAgKi9cbiAgY29uc3QgZmxhdHRlbiA9IChhcmdzKSA9PiB7XG4gICAgY29uc3QgYXJnU3BlY3MgPSBnZXRBbGxBcmdTcGVjcygpO1xuICAgIGNvbnN0IGZsYXR0ZW5lZCA9IF8ucmVkdWNlKFxuICAgICAgWy4uLmFyZ1NwZWNzLnZhbHVlcygpXSxcbiAgICAgIChhY2MsIGFyZ1NwZWMpID0+IHtcbiAgICAgICAgaWYgKF8uaGFzKGFyZ3MsIGFyZ1NwZWMuZGVzdCkpIHtcbiAgICAgICAgICBhY2NbYXJnU3BlYy5kZXN0XSA9IHt2YWx1ZTogXy5nZXQoYXJncywgYXJnU3BlYy5kZXN0KSwgYXJnU3BlY307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIHsgdmFsdWU6IGFueSwgYXJnU3BlYzogQXJnU3BlYyB9Pn0gKi8gKHt9KVxuICAgICk7XG5cbiAgICByZXR1cm4gZmxhdHRlbmVkO1xuICB9O1xuXG4gIGNvbnN0IGFyZ3MgPSBmbGF0dGVuKHBhcnNlZEFyZ3MpO1xuXG4gIC8vIGhvcGVmdWxseSB0aGVzZSBmdW5jdGlvbiBuYW1lcyBhcmUgZGVzY3JpcHRpdmUgZW5vdWdoXG4gIGNvbnN0IHR5cGVzRGlmZmVyID0gLyoqIEBwYXJhbSB7c3RyaW5nfSBkZXN0ICovIChkZXN0KSA9PlxuICAgIHR5cGVvZiBhcmdzW2Rlc3RdLnZhbHVlICE9PSB0eXBlb2YgZGVmYXVsdHNGcm9tU2NoZW1hW2Rlc3RdO1xuXG4gIGNvbnN0IGRlZmF1bHRWYWx1ZUlzQXJyYXkgPSAvKiogQHBhcmFtIHtzdHJpbmd9IGRlc3QgKi8gKGRlc3QpID0+XG4gICAgXy5pc0FycmF5KGRlZmF1bHRzRnJvbVNjaGVtYVtkZXN0XSk7XG5cbiAgY29uc3QgYXJnc1ZhbHVlSXNBcnJheSA9IC8qKiBAcGFyYW0ge3N0cmluZ30gZGVzdCAqLyAoZGVzdCkgPT4gXy5pc0FycmF5KGFyZ3NbZGVzdF0udmFsdWUpO1xuXG4gIGNvbnN0IGFycmF5c0RpZmZlciA9IC8qKiBAcGFyYW0ge3N0cmluZ30gZGVzdCAqLyAoZGVzdCkgPT5cbiAgICBfLmd0KF8uc2l6ZShfLmRpZmZlcmVuY2UoYXJnc1tkZXN0XS52YWx1ZSwgZGVmYXVsdHNGcm9tU2NoZW1hW2Rlc3RdKSksIDApO1xuXG4gIGNvbnN0IHZhbHVlc0RpZmZlciA9IC8qKiBAcGFyYW0ge3N0cmluZ30gZGVzdCAqLyAoZGVzdCkgPT5cbiAgICBhcmdzW2Rlc3RdLnZhbHVlICE9PSBkZWZhdWx0c0Zyb21TY2hlbWFbZGVzdF07XG5cbiAgY29uc3QgZGVmYXVsdElzRGVmaW5lZCA9IC8qKiBAcGFyYW0ge3N0cmluZ30gZGVzdCAqLyAoZGVzdCkgPT5cbiAgICAhXy5pc1VuZGVmaW5lZChkZWZhdWx0c0Zyb21TY2hlbWFbZGVzdF0pO1xuXG4gIC8vIG5vdGUgdGhhdCBgXy5vdmVyRXZlcnlgIGlzIGxpa2UgYW4gXCJBTkRcIiwgYW5kIGBfLm92ZXJTb21lYCBpcyBsaWtlIGFuIFwiT1JcIlxuXG4gIGNvbnN0IGFyZ1ZhbHVlTm90QXJyYXlPckFycmF5c0RpZmZlciA9IF8ub3ZlclNvbWUoW18ubmVnYXRlKGFyZ3NWYWx1ZUlzQXJyYXkpLCBhcnJheXNEaWZmZXJdKTtcblxuICBjb25zdCBkZWZhdWx0VmFsdWVOb3RBcnJheUFuZFZhbHVlc0RpZmZlciA9IF8ub3ZlckV2ZXJ5KFtcbiAgICBfLm5lZ2F0ZShkZWZhdWx0VmFsdWVJc0FycmF5KSxcbiAgICB2YWx1ZXNEaWZmZXIsXG4gIF0pO1xuXG4gIC8qKlxuICAgKiBUaGlzIHVzZWQgdG8gYmUgYSBoaWRlb3VzIGNvbmRpdGlvbmFsLCBidXQgaXQncyBicm9rZW4gdXAgaW50byBhIGhpZGVvdXMgZnVuY3Rpb24gaW5zdGVhZC5cbiAgICogaG9wZWZ1bGx5IHRoaXMgbWFrZXMgdGhpbmdzIGEgbGl0dGxlIG1vcmUgdW5kZXJzdGFuZGFibGUuXG4gICAqIC0gY2hlY2tzIGlmIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGRlZmluZWRcbiAgICogLSBpZiBzbywgYW5kIHRoZSBkZWZhdWx0IGlzIG5vdCBhbiBhcnJheTpcbiAgICogICAtIGVuc3VyZXMgdGhlIHR5cGVzIGFyZSB0aGUgc2FtZVxuICAgKiAgIC0gZW5zdXJlcyB0aGUgdmFsdWVzIGFyZSBlcXVhbFxuICAgKiAtIGlmIHNvLCBhbmQgdGhlIGRlZmF1bHQgaXMgYW4gYXJyYXk6XG4gICAqICAgLSBlbnN1cmVzIHRoZSBhcmdzIHZhbHVlIGlzIGFuIGFycmF5XG4gICAqICAgLSBlbnN1cmVzIHRoZSBhcmdzIHZhbHVlcyBkbyBub3QgZGlmZmVyIGZyb20gdGhlIGRlZmF1bHQgdmFsdWVzXG4gICAqIEB0eXBlIHsoZGVzdDogc3RyaW5nKSA9PiBib29sZWFufVxuICAgKi9cbiAgY29uc3QgaXNOb3REZWZhdWx0ID0gXy5vdmVyRXZlcnkoW1xuICAgIGRlZmF1bHRJc0RlZmluZWQsXG4gICAgXy5vdmVyU29tZShbXG4gICAgICB0eXBlc0RpZmZlcixcbiAgICAgIF8ub3ZlckV2ZXJ5KFtkZWZhdWx0VmFsdWVJc0FycmF5LCBhcmdWYWx1ZU5vdEFycmF5T3JBcnJheXNEaWZmZXJdKSxcbiAgICAgIGRlZmF1bHRWYWx1ZU5vdEFycmF5QW5kVmFsdWVzRGlmZmVyLFxuICAgIF0pLFxuICBdKTtcblxuICBjb25zdCBkZWZhdWx0c0Zyb21TY2hlbWEgPSBnZXREZWZhdWx0c0ZvclNjaGVtYSh0cnVlKTtcblxuICByZXR1cm4gXy5yZWR1Y2UoXG4gICAgXy5waWNrQnkoYXJncywgKF9fLCBrZXkpID0+IGlzTm90RGVmYXVsdChrZXkpKSxcbiAgICAvLyBleHBsb2RlcyB0aGUgZmxhdHRlbmVkIG9iamVjdCBiYWNrIGludG8gbmVzdGVkIG9uZVxuICAgIChhY2MsIHt2YWx1ZSwgYXJnU3BlY30pID0+IF8uc2V0KGFjYywgYXJnU3BlYy5kZXN0LCB2YWx1ZSksXG4gICAgLyoqIEB0eXBlIHtBcmdzfSAqLyAoe30pXG4gICk7XG59XG5cbi8qKlxuICogQ29tcGFjdHMgYW4gb2JqZWN0IGZvciB7QGxpbmsgc2hvd0NvbmZpZ306XG4gKiAxLiBSZW1vdmVzIGBzdWJjb21tYW5kYCBrZXkvdmFsdWVcbiAqIDIuIFJlbW92ZXMgYHVuZGVmaW5lZGAgdmFsdWVzXG4gKiAzLiBSZW1vdmVzIGVtcHR5IG9iamVjdHMgKGJ1dCBub3QgYGZhbHNlYCB2YWx1ZXMpXG4gKiBEb2VzIG5vdCBvcGVyYXRlIHJlY3Vyc2l2ZWx5LlxuICovXG5jb25zdCBjb21wYWN0Q29uZmlnID0gXy5wYXJ0aWFsKFxuICBfLm9taXRCeSxcbiAgXyxcbiAgKHZhbHVlLCBrZXkpID0+XG4gICAga2V5ID09PSAnc3ViY29tbWFuZCcgfHwgXy5pc1VuZGVmaW5lZCh2YWx1ZSkgfHwgKF8uaXNPYmplY3QodmFsdWUpICYmIF8uaXNFbXB0eSh2YWx1ZSkpXG4pO1xuXG4vKipcbiAqIFNob3dzIGEgYnJlYWtkb3duIG9mIHRoZSBjdXJyZW50IGNvbmZpZyBhZnRlciBDTEkgcGFyYW1zLCBjb25maWcgZmlsZSBsb2FkZWQgJiBkZWZhdWx0cyBhcHBsaWVkLlxuICpcbiAqIFRoZSBhY3R1YWwgc2hhcGUgb2YgYHByZUNvbmZpZ1BhcnNlZEFyZ3NgIGFuZCBgZGVmYXVsdHNgIGRvZXMgbm90IG1hdHRlciBmb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZnVuY3Rpb24sXG4gKiBidXQgaXQncyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgd2l0aCB2YWx1ZXMgb2YgdHlwZSB7QGxpbmsgUGFyc2VkQXJnc30gYW5kIGBEZWZhdWx0VmFsdWVzPHRydWU+YCwgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBwYXJhbSB7UGFydGlhbDxQYXJzZWRBcmdzPn0gbm9uRGVmYXVsdFByZUNvbmZpZ1BhcnNlZEFyZ3MgLSBQYXJzZWQgQ0xJIGFyZ3MgKG9yIHBhcmFtIHRvIGBpbml0KClgKSBiZWZvcmUgY29uZmlnICYgZGVmYXVsdHMgYXBwbGllZFxuICogQHBhcmFtIHtpbXBvcnQoJy4vY29uZmlnLWZpbGUnKS5SZWFkQ29uZmlnRmlsZVJlc3VsdH0gY29uZmlnUmVzdWx0IC0gUmVzdWx0IG9mIGF0dGVtcHRpbmcgdG8gbG9hZCBhIGNvbmZpZyBmaWxlLiAgX011c3RfIGJlIG5vcm1hbGl6ZWRcbiAqIEBwYXJhbSB7UGFydGlhbDxQYXJzZWRBcmdzPn0gZGVmYXVsdHMgLSBDb25maWd1cmF0aW9uIGRlZmF1bHRzIGZyb20gc2NoZW1hc1xuICogQHBhcmFtIHtQYXJzZWRBcmdzfSBwYXJzZWRBcmdzIC0gRW50aXJlIHBhcnNlZCBhcmdzIG9iamVjdFxuICovXG5mdW5jdGlvbiBzaG93Q29uZmlnKG5vbkRlZmF1bHRQcmVDb25maWdQYXJzZWRBcmdzLCBjb25maWdSZXN1bHQsIGRlZmF1bHRzLCBwYXJzZWRBcmdzKSB7XG4gIGNvbnNvbGUubG9nKCdBcHBpdW0gQ29uZmlndXJhdGlvblxcbicpO1xuICBjb25zb2xlLmxvZygnZnJvbSBkZWZhdWx0czpcXG4nKTtcbiAgY29uc29sZS5kaXIoY29tcGFjdENvbmZpZyhkZWZhdWx0cykpO1xuICBpZiAoY29uZmlnUmVzdWx0LmNvbmZpZykge1xuICAgIGNvbnNvbGUubG9nKGBcXG5mcm9tIGNvbmZpZyBmaWxlIGF0ICR7Y29uZmlnUmVzdWx0LmZpbGVwYXRofTpcXG5gKTtcbiAgICBjb25zb2xlLmRpcihjb21wYWN0Q29uZmlnKGNvbmZpZ1Jlc3VsdC5jb25maWcpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZyhgXFxuKG5vIGNvbmZpZ3VyYXRpb24gZmlsZSBsb2FkZWQpYCk7XG4gIH1cbiAgaWYgKF8uaXNFbXB0eShub25EZWZhdWx0UHJlQ29uZmlnUGFyc2VkQXJncykpIHtcbiAgICBjb25zb2xlLmxvZyhgXFxuKG5vIENMSSBwYXJhbWV0ZXJzIHByb3ZpZGVkKWApO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKCdcXG52aWEgQ0xJIG9yIGZ1bmN0aW9uIGNhbGw6XFxuJyk7XG4gICAgY29uc29sZS5kaXIoY29tcGFjdENvbmZpZyhub25EZWZhdWx0UHJlQ29uZmlnUGFyc2VkQXJncykpO1xuICB9XG4gIGNvbnNvbGUubG9nKCdcXG5maW5hbCBjb25maWd1cmF0aW9uOlxcbicpO1xuICBjb25zb2xlLmRpcihjb21wYWN0Q29uZmlnKHBhcnNlZEFyZ3MpKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gdG1wRGlyXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlVG1wRGlyKHRtcERpcikge1xuICB0cnkge1xuICAgIGF3YWl0IGZzLm1rZGlycCh0bXBEaXIpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFdlIGNvdWxkIG5vdCBlbnN1cmUgdGhhdCB0aGUgdGVtcCBkaXIgeW91IHNwZWNpZmllZCBgICtcbiAgICAgICAgYCgke3RtcERpcn0pIGV4aXN0cy4gUGxlYXNlIG1ha2Ugc3VyZSBpdCdzIHdyaXRlYWJsZS5gXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCByb290RGlyID0gZnMuZmluZFJvb3QoX19kaXJuYW1lKTtcblxuZXhwb3J0IHtcbiAgZ2V0QnVpbGRJbmZvLFxuICBjaGVja05vZGVPayxcbiAgc2hvd0J1aWxkSW5mbyxcbiAgd2Fybk5vZGVEZXByZWNhdGlvbnMsXG4gIHZhbGlkYXRlVG1wRGlyLFxuICBnZXROb25EZWZhdWx0U2VydmVyQXJncyxcbiAgZ2V0R2l0UmV2LFxuICBBUFBJVU1fVkVSLFxuICB1cGRhdGVCdWlsZEluZm8sXG4gIHNob3dDb25maWcsXG4gIHJvb3REaXIsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLlBhcnNlZEFyZ3N9IFBhcnNlZEFyZ3NcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkFyZ3N9IEFyZ3NcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2NoZW1hL2FyZy1zcGVjJykuQXJnU3BlY30gQXJnU3BlY1xuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFVBQVUsR0FBR0MsV0FBQSxDQUFHQyxtQkFBSCxDQUF1QkMsU0FBdkIsQ0FBbkI7O0FBRUEsTUFBTUMsVUFBVSxHQUFHSixVQUFVLENBQUNLLE9BQTlCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHTixVQUFVLENBQUNPLE9BQVgsQ0FBbUJDLElBQTVDO0FBRUEsTUFBTUMsYUFBYSxHQUFHLE1BQXRCO0FBQ0EsTUFBTUMsVUFBVSxHQUFJLE1BQUtDLGVBQUEsQ0FBT0MsU0FBUCxLQUFxQixNQUFyQixHQUE4QixFQUFHLEVBQTFEO0FBQ0EsTUFBTUMsVUFBVSxHQUFHLDRDQUFuQjtBQUtBLE1BQU1DLFVBQVUsR0FBRztFQUNqQlQsT0FBTyxFQUFFRDtBQURRLENBQW5COztBQUlBLFNBQVNXLGNBQVQsR0FBMEI7RUFDeEIsT0FBK0NDLGVBQUEsQ0FBT0MsTUFBUCxDQUFjQyxPQUFPLENBQUNiLE9BQXRCLENBQS9DO0FBQ0Q7O0FBRUQsZUFBZWMsZUFBZixDQUErQkMsb0JBQW9CLEdBQUcsS0FBdEQsRUFBNkQ7RUFDM0QsTUFBTUMsR0FBRyxHQUFHLE1BQU1DLFNBQVMsQ0FBQ0Ysb0JBQUQsQ0FBM0I7O0VBQ0EsSUFBSSxDQUFDQyxHQUFMLEVBQVU7SUFDUjtFQUNEOztFQUNEUCxVQUFVLENBQUMsU0FBRCxDQUFWLEdBQXdCTyxHQUF4QjtFQUNBLE1BQU1FLEtBQUssR0FBRyxNQUFNQyxlQUFlLENBQUNILEdBQUQsRUFBTUQsb0JBQU4sQ0FBbkM7O0VBQ0EsSUFBSUcsS0FBSixFQUFXO0lBQ1RULFVBQVUsQ0FBQ1MsS0FBWCxHQUFtQkEsS0FBbkI7RUFDRDtBQUNGOztBQVNELGVBQWVFLFdBQWYsR0FBNkI7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
|
|
238
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJucG1QYWNrYWdlIiwiZnMiLCJyZWFkUGFja2FnZUpzb25Gcm9tIiwiX19kaXJuYW1lIiwiQVBQSVVNX1ZFUiIsInZlcnNpb24iLCJNSU5fTk9ERV9WRVJTSU9OIiwiZW5naW5lcyIsIm5vZGUiLCJHSVRfTUVUQV9ST09UIiwiR0lUX0JJTkFSWSIsInN5c3RlbSIsImlzV2luZG93cyIsIkdJVEhVQl9BUEkiLCJCVUlMRF9JTkZPIiwiZ2V0Tm9kZVZlcnNpb24iLCJzZW12ZXIiLCJjb2VyY2UiLCJwcm9jZXNzIiwidXBkYXRlQnVpbGRJbmZvIiwidXNlR2l0aHViQXBpRmFsbGJhY2siLCJzaGEiLCJnZXRHaXRSZXYiLCJidWlsZFRpbWVzdGFtcCIsImdldEdpdFRpbWVzdGFtcCIsImJ1aWx0IiwiZmluZEdpdFJvb3QiLCJmaW5kVXAiLCJjd2QiLCJyb290RGlyIiwidHlwZSIsImdpdFJvb3QiLCJzdGRvdXQiLCJleGVjIiwidHJpbSIsImlnbiIsImF4aW9zIiwiZ2V0IiwiaGVhZGVycyIsImRhdGEiLCJvYmplY3QiLCJjb21taXRTaGEiLCJ0YWdnZXIiLCJkYXRlIiwiZ2V0QnVpbGRJbmZvIiwiY2hlY2tOb2RlT2siLCJzYXRpc2ZpZXMiLCJsb2dnZXIiLCJlcnJvckFuZFRocm93Iiwid2Fybk5vZGVEZXByZWNhdGlvbnMiLCJzaG93QnVpbGRJbmZvIiwiY29uc29sZSIsImxvZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXROb25EZWZhdWx0U2VydmVyQXJncyIsInBhcnNlZEFyZ3MiLCJmbGF0dGVuIiwiYXJncyIsImFyZ1NwZWNzIiwiZ2V0QWxsQXJnU3BlY3MiLCJmbGF0dGVuZWQiLCJfIiwicmVkdWNlIiwidmFsdWVzIiwiYWNjIiwiYXJnU3BlYyIsImhhcyIsImRlc3QiLCJ2YWx1ZSIsInR5cGVzRGlmZmVyIiwiZGVmYXVsdHNGcm9tU2NoZW1hIiwiZGVmYXVsdFZhbHVlSXNBcnJheSIsImlzQXJyYXkiLCJhcmdzVmFsdWVJc0FycmF5IiwiYXJyYXlzRGlmZmVyIiwiZ3QiLCJzaXplIiwiZGlmZmVyZW5jZSIsInZhbHVlc0RpZmZlciIsImRlZmF1bHRJc0RlZmluZWQiLCJpc1VuZGVmaW5lZCIsImFyZ1ZhbHVlTm90QXJyYXlPckFycmF5c0RpZmZlciIsIm92ZXJTb21lIiwibmVnYXRlIiwiZGVmYXVsdFZhbHVlTm90QXJyYXlBbmRWYWx1ZXNEaWZmZXIiLCJvdmVyRXZlcnkiLCJpc05vdERlZmF1bHQiLCJnZXREZWZhdWx0c0ZvclNjaGVtYSIsInBpY2tCeSIsIl9fIiwia2V5Iiwic2V0IiwiY29tcGFjdENvbmZpZyIsInBhcnRpYWwiLCJvbWl0QnkiLCJpc09iamVjdCIsImlzRW1wdHkiLCJzaG93Q29uZmlnIiwibm9uRGVmYXVsdFByZUNvbmZpZ1BhcnNlZEFyZ3MiLCJjb25maWdSZXN1bHQiLCJkZWZhdWx0cyIsImRpciIsImNvbmZpZyIsImZpbGVwYXRoIiwidmFsaWRhdGVUbXBEaXIiLCJ0bXBEaXIiLCJta2RpcnAiLCJlIiwiRXJyb3IiLCJmaW5kUm9vdCJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7c3lzdGVtLCBmc30gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQge2V4ZWN9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCBmaW5kVXAgZnJvbSAnZmluZC11cCc7XG5pbXBvcnQge2dldERlZmF1bHRzRm9yU2NoZW1hLCBnZXRBbGxBcmdTcGVjc30gZnJvbSAnLi9zY2hlbWEvc2NoZW1hJztcblxuY29uc3QgbnBtUGFja2FnZSA9IGZzLnJlYWRQYWNrYWdlSnNvbkZyb20oX19kaXJuYW1lKTtcblxuY29uc3QgQVBQSVVNX1ZFUiA9IG5wbVBhY2thZ2UudmVyc2lvbjtcbmNvbnN0IE1JTl9OT0RFX1ZFUlNJT04gPSBucG1QYWNrYWdlLmVuZ2luZXMubm9kZTtcblxuY29uc3QgR0lUX01FVEFfUk9PVCA9ICcuZ2l0JztcbmNvbnN0IEdJVF9CSU5BUlkgPSBgZ2l0JHtzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnLmV4ZScgOiAnJ31gO1xuY29uc3QgR0lUSFVCX0FQSSA9ICdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL2FwcGl1bS9hcHBpdW0nO1xuXG4vKipcbiAqIEB0eXBlIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkJ1aWxkSW5mb31cbiAqL1xuY29uc3QgQlVJTERfSU5GTyA9IHtcbiAgdmVyc2lvbjogQVBQSVVNX1ZFUixcbn07XG5cbmZ1bmN0aW9uIGdldE5vZGVWZXJzaW9uKCkge1xuICByZXR1cm4gLyoqIEB0eXBlIHtpbXBvcnQoJ3NlbXZlcicpLlNlbVZlcn0gKi8gKHNlbXZlci5jb2VyY2UocHJvY2Vzcy52ZXJzaW9uKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtib29sZWFufSBbdXNlR2l0aHViQXBpRmFsbGJhY2tdXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZUJ1aWxkSW5mbyh1c2VHaXRodWJBcGlGYWxsYmFjayA9IGZhbHNlKSB7XG4gIGNvbnN0IHNoYSA9IGF3YWl0IGdldEdpdFJldih1c2VHaXRodWJBcGlGYWxsYmFjayk7XG4gIGlmICghc2hhKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIEJVSUxEX0lORk9bJ2dpdC1zaGEnXSA9IHNoYTtcbiAgY29uc3QgYnVpbGRUaW1lc3RhbXAgPSBhd2FpdCBnZXRHaXRUaW1lc3RhbXAoc2hhLCB1c2VHaXRodWJBcGlGYWxsYmFjayk7XG4gIGlmIChidWlsZFRpbWVzdGFtcCkge1xuICAgIEJVSUxEX0lORk8uYnVpbHQgPSBidWlsZFRpbWVzdGFtcDtcbiAgfVxufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBHaXQgbWV0YWRhdGEgZGlyIChzZWUgYEdJVF9NRVRBX1JPT1RgKVxuICpcbiAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgQXBwaXVtIGNhbm5vdCBhc3N1bWUgYHBhY2thZ2UuanNvbmAgYW5kIGAuZ2l0YCBhcmUgaW4gdGhlIHNhbWVcbiAqIGRpcmVjdG9yeS4gIE1vbm9yZXBvcywgc2VlP1xuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nfHVuZGVmaW5lZD59IFBhdGggdG8gZGlyIG9yIGB1bmRlZmluZWRgIGlmIG5vdCBmb3VuZFxuICovXG5hc3luYyBmdW5jdGlvbiBmaW5kR2l0Um9vdCgpIHtcbiAgcmV0dXJuIGF3YWl0IGZpbmRVcChHSVRfTUVUQV9ST09ULCB7Y3dkOiByb290RGlyLCB0eXBlOiAnZGlyZWN0b3J5J30pO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3VzZUdpdGh1YkFwaUZhbGxiYWNrXVxuICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPz59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldEdpdFJldih1c2VHaXRodWJBcGlGYWxsYmFjayA9IGZhbHNlKSB7XG4gIGNvbnN0IGdpdFJvb3QgPSBhd2FpdCBmaW5kR2l0Um9vdCgpO1xuICBpZiAoZ2l0Um9vdCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoR0lUX0JJTkFSWSwgWydyZXYtcGFyc2UnLCAnSEVBRCddLCB7XG4gICAgICAgIGN3ZDogZ2l0Um9vdCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN0ZG91dC50cmltKCk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG5cbiAgaWYgKCF1c2VHaXRodWJBcGlGYWxsYmFjaykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSWYgdGhlIHBhY2thZ2UgZm9sZGVyIGlzIG5vdCBhIHZhbGlkIGdpdCByZXBvc2l0b3J5XG4gIC8vIHRoZW4gZmV0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgdGFnIGluZm8gZnJvbSBHaXRIdWJcbiAgdHJ5IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgYXhpb3MuZ2V0KGAke0dJVEhVQl9BUEl9L2dpdC9yZWZzL3RhZ3MvYXBwaXVtQCR7QVBQSVVNX1ZFUn1gLCB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnVXNlci1BZ2VudCc6IGBBcHBpdW0gJHtBUFBJVU1fVkVSfWAsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICkuZGF0YT8ub2JqZWN0Py5zaGE7XG4gIH0gY2F0Y2ggKGlnbikge31cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbW1pdFNoYVxuICogQHBhcmFtIHtib29sZWFufSBbdXNlR2l0aHViQXBpRmFsbGJhY2tdXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc/Pn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0R2l0VGltZXN0YW1wKGNvbW1pdFNoYSwgdXNlR2l0aHViQXBpRmFsbGJhY2sgPSBmYWxzZSkge1xuICBjb25zdCBnaXRSb290ID0gYXdhaXQgZmluZEdpdFJvb3QoKTtcbiAgaWYgKGdpdFJvb3QpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjKEdJVF9CSU5BUlksIFsnc2hvdycsICctcycsICctLWZvcm1hdD0lY2knLCBjb21taXRTaGFdLCB7XG4gICAgICAgIGN3ZDogZ2l0Um9vdCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHN0ZG91dC50cmltKCk7XG4gICAgfSBjYXRjaCAoaWduKSB7fVxuICB9XG5cbiAgaWYgKCF1c2VHaXRodWJBcGlGYWxsYmFjaykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgYXhpb3MuZ2V0KGAke0dJVEhVQl9BUEl9L2dpdC90YWdzLyR7Y29tbWl0U2hhfWAsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdVc2VyLUFnZW50JzogYEFwcGl1bSAke0FQUElVTV9WRVJ9YCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKS5kYXRhPy50YWdnZXI/LmRhdGU7XG4gIH0gY2F0Y2ggKGlnbikge31cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogTXV0YWJsZSBvYmplY3QgY29udGFpbmluZyBBcHBpdW0gYnVpbGQgaW5mb3JtYXRpb24uIEJ5IGRlZmF1bHQgaXRcbiAqIG9ubHkgY29udGFpbnMgdGhlIEFwcGl1bSB2ZXJzaW9uLCBidXQgaXMgdXBkYXRlZCB3aXRoIHRoZSBidWlsZCB0aW1lc3RhbXBcbiAqIGFuZCBnaXQgY29tbWl0IGhhc2ggYXN5bmNocm9ub3VzbHkgYXMgc29vbiBhcyBgdXBkYXRlQnVpbGRJbmZvYCBpcyBjYWxsZWRcbiAqIGFuZCBzdWNjZWVkcy5cbiAqIEByZXR1cm5zIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkJ1aWxkSW5mb31cbiAqL1xuZnVuY3Rpb24gZ2V0QnVpbGRJbmZvKCkge1xuICByZXR1cm4gQlVJTERfSU5GTztcbn1cblxuZnVuY3Rpb24gY2hlY2tOb2RlT2soKSB7XG4gIGNvbnN0IHZlcnNpb24gPSBnZXROb2RlVmVyc2lvbigpO1xuICBpZiAoIXNlbXZlci5zYXRpc2ZpZXModmVyc2lvbiwgTUlOX05PREVfVkVSU0lPTikpIHtcbiAgICBsb2dnZXIuZXJyb3JBbmRUaHJvdyhgTm9kZSB2ZXJzaW9uIG11c3QgYmUgJHtNSU5fTk9ERV9WRVJTSU9OfS4gQ3VycmVudGx5ICR7dmVyc2lvbi52ZXJzaW9ufWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5Ob2RlRGVwcmVjYXRpb25zKCkge1xuICAvKipcbiAgICogVW5jb21tZW50IHRoaXMgc2VjdGlvbiB0byBnZXQgbm9kZSB2ZXJzaW9uIGRlcHJlY2F0aW9uIHdhcm5pbmdzXG4gICAqIEFsc28gYWRkIHRlc3QgY2FzZXMgdG8gY29uZmlnLXNwZWNzLmpzIHRvIGNvdmVyIHRoZSBjYXNlcyBhZGRlZFxuICAgKiovXG4gIC8vIGNvbnN0IHZlcnNpb24gPSBnZXROb2RlVmVyc2lvbigpO1xuICAvLyBpZiAodmVyc2lvbi5tYWpvciA8IDgpIHtcbiAgLy8gICBsb2dnZXIud2FybihgQXBwaXVtIHN1cHBvcnQgZm9yIHZlcnNpb25zIG9mIG5vZGUgPCAke3ZlcnNpb24ubWFqb3J9IGhhcyBiZWVuIGAgK1xuICAvLyAgICAgICAgICAgICAgICdkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gUGxlYXNlICcgK1xuICAvLyAgICAgICAgICAgICAgICd1cGdyYWRlIScpO1xuICAvLyB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNob3dCdWlsZEluZm8oKSB7XG4gIGF3YWl0IHVwZGF0ZUJ1aWxkSW5mbyh0cnVlKTtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZ2V0QnVpbGRJbmZvKCkpKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG59XG5cbi8qKlxuICogUmV0dXJucyBrL3YgcGFpcnMgb2Ygc2VydmVyIGFyZ3VtZW50cyB3aGljaCBhcmUgX25vdF8gdGhlIGRlZmF1bHRzLlxuICogQHBhcmFtIHtBcmdzfSBwYXJzZWRBcmdzXG4gKiBAcmV0dXJucyB7QXJnc31cbiAqL1xuZnVuY3Rpb24gZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MocGFyc2VkQXJncykge1xuICAvKipcbiAgICogRmxhdHRlbnMgcGFyc2VkIGFyZ3MgaW50byBhIHNpbmdsZSBsZXZlbCBvYmplY3QgZm9yIGNvbXBhcmlzb24gd2l0aFxuICAgKiBmbGF0dGVuZWQgZGVmYXVsdHMgYWNyb3NzIHNlcnZlciBhcmdzIGFuZCBleHRlbnNpb24gYXJncy5cbiAgICogQHBhcmFtIHtBcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCB7IHZhbHVlOiBhbnksIGFyZ1NwZWM6IEFyZ1NwZWMgfT59XG4gICAqL1xuICBjb25zdCBmbGF0dGVuID0gKGFyZ3MpID0+IHtcbiAgICBjb25zdCBhcmdTcGVjcyA9IGdldEFsbEFyZ1NwZWNzKCk7XG4gICAgY29uc3QgZmxhdHRlbmVkID0gXy5yZWR1Y2UoXG4gICAgICBbLi4uYXJnU3BlY3MudmFsdWVzKCldLFxuICAgICAgKGFjYywgYXJnU3BlYykgPT4ge1xuICAgICAgICBpZiAoXy5oYXMoYXJncywgYXJnU3BlYy5kZXN0KSkge1xuICAgICAgICAgIGFjY1thcmdTcGVjLmRlc3RdID0ge3ZhbHVlOiBfLmdldChhcmdzLCBhcmdTcGVjLmRlc3QpLCBhcmdTcGVjfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgeyB2YWx1ZTogYW55LCBhcmdTcGVjOiBBcmdTcGVjIH0+fSAqLyAoe30pXG4gICAgKTtcblxuICAgIHJldHVybiBmbGF0dGVuZWQ7XG4gIH07XG5cbiAgY29uc3QgYXJncyA9IGZsYXR0ZW4ocGFyc2VkQXJncyk7XG5cbiAgLy8gaG9wZWZ1bGx5IHRoZXNlIGZ1bmN0aW9uIG5hbWVzIGFyZSBkZXNjcmlwdGl2ZSBlbm91Z2hcbiAgY29uc3QgdHlwZXNEaWZmZXIgPSAvKiogQHBhcmFtIHtzdHJpbmd9IGRlc3QgKi8gKGRlc3QpID0+XG4gICAgdHlwZW9mIGFyZ3NbZGVzdF0udmFsdWUgIT09IHR5cGVvZiBkZWZhdWx0c0Zyb21TY2hlbWFbZGVzdF07XG5cbiAgY29uc3QgZGVmYXVsdFZhbHVlSXNBcnJheSA9IC8qKiBAcGFyYW0ge3N0cmluZ30gZGVzdCAqLyAoZGVzdCkgPT5cbiAgICBfLmlzQXJyYXkoZGVmYXVsdHNGcm9tU2NoZW1hW2Rlc3RdKTtcblxuICBjb25zdCBhcmdzVmFsdWVJc0FycmF5ID0gLyoqIEBwYXJhbSB7c3RyaW5nfSBkZXN0ICovIChkZXN0KSA9PiBfLmlzQXJyYXkoYXJnc1tkZXN0XS52YWx1ZSk7XG5cbiAgY29uc3QgYXJyYXlzRGlmZmVyID0gLyoqIEBwYXJhbSB7c3RyaW5nfSBkZXN0ICovIChkZXN0KSA9PlxuICAgIF8uZ3QoXy5zaXplKF8uZGlmZmVyZW5jZShhcmdzW2Rlc3RdLnZhbHVlLCBkZWZhdWx0c0Zyb21TY2hlbWFbZGVzdF0pKSwgMCk7XG5cbiAgY29uc3QgdmFsdWVzRGlmZmVyID0gLyoqIEBwYXJhbSB7c3RyaW5nfSBkZXN0ICovIChkZXN0KSA9PlxuICAgIGFyZ3NbZGVzdF0udmFsdWUgIT09IGRlZmF1bHRzRnJvbVNjaGVtYVtkZXN0XTtcblxuICBjb25zdCBkZWZhdWx0SXNEZWZpbmVkID0gLyoqIEBwYXJhbSB7c3RyaW5nfSBkZXN0ICovIChkZXN0KSA9PlxuICAgICFfLmlzVW5kZWZpbmVkKGRlZmF1bHRzRnJvbVNjaGVtYVtkZXN0XSk7XG5cbiAgLy8gbm90ZSB0aGF0IGBfLm92ZXJFdmVyeWAgaXMgbGlrZSBhbiBcIkFORFwiLCBhbmQgYF8ub3ZlclNvbWVgIGlzIGxpa2UgYW4gXCJPUlwiXG5cbiAgY29uc3QgYXJnVmFsdWVOb3RBcnJheU9yQXJyYXlzRGlmZmVyID0gXy5vdmVyU29tZShbXy5uZWdhdGUoYXJnc1ZhbHVlSXNBcnJheSksIGFycmF5c0RpZmZlcl0pO1xuXG4gIGNvbnN0IGRlZmF1bHRWYWx1ZU5vdEFycmF5QW5kVmFsdWVzRGlmZmVyID0gXy5vdmVyRXZlcnkoW1xuICAgIF8ubmVnYXRlKGRlZmF1bHRWYWx1ZUlzQXJyYXkpLFxuICAgIHZhbHVlc0RpZmZlcixcbiAgXSk7XG5cbiAgLyoqXG4gICAqIFRoaXMgdXNlZCB0byBiZSBhIGhpZGVvdXMgY29uZGl0aW9uYWwsIGJ1dCBpdCdzIGJyb2tlbiB1cCBpbnRvIGEgaGlkZW91cyBmdW5jdGlvbiBpbnN0ZWFkLlxuICAgKiBob3BlZnVsbHkgdGhpcyBtYWtlcyB0aGluZ3MgYSBsaXR0bGUgbW9yZSB1bmRlcnN0YW5kYWJsZS5cbiAgICogLSBjaGVja3MgaWYgdGhlIGRlZmF1bHQgdmFsdWUgaXMgZGVmaW5lZFxuICAgKiAtIGlmIHNvLCBhbmQgdGhlIGRlZmF1bHQgaXMgbm90IGFuIGFycmF5OlxuICAgKiAgIC0gZW5zdXJlcyB0aGUgdHlwZXMgYXJlIHRoZSBzYW1lXG4gICAqICAgLSBlbnN1cmVzIHRoZSB2YWx1ZXMgYXJlIGVxdWFsXG4gICAqIC0gaWYgc28sIGFuZCB0aGUgZGVmYXVsdCBpcyBhbiBhcnJheTpcbiAgICogICAtIGVuc3VyZXMgdGhlIGFyZ3MgdmFsdWUgaXMgYW4gYXJyYXlcbiAgICogICAtIGVuc3VyZXMgdGhlIGFyZ3MgdmFsdWVzIGRvIG5vdCBkaWZmZXIgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZXNcbiAgICogQHR5cGUgeyhkZXN0OiBzdHJpbmcpID0+IGJvb2xlYW59XG4gICAqL1xuICBjb25zdCBpc05vdERlZmF1bHQgPSBfLm92ZXJFdmVyeShbXG4gICAgZGVmYXVsdElzRGVmaW5lZCxcbiAgICBfLm92ZXJTb21lKFtcbiAgICAgIHR5cGVzRGlmZmVyLFxuICAgICAgXy5vdmVyRXZlcnkoW2RlZmF1bHRWYWx1ZUlzQXJyYXksIGFyZ1ZhbHVlTm90QXJyYXlPckFycmF5c0RpZmZlcl0pLFxuICAgICAgZGVmYXVsdFZhbHVlTm90QXJyYXlBbmRWYWx1ZXNEaWZmZXIsXG4gICAgXSksXG4gIF0pO1xuXG4gIGNvbnN0IGRlZmF1bHRzRnJvbVNjaGVtYSA9IGdldERlZmF1bHRzRm9yU2NoZW1hKHRydWUpO1xuXG4gIHJldHVybiBfLnJlZHVjZShcbiAgICBfLnBpY2tCeShhcmdzLCAoX18sIGtleSkgPT4gaXNOb3REZWZhdWx0KGtleSkpLFxuICAgIC8vIGV4cGxvZGVzIHRoZSBmbGF0dGVuZWQgb2JqZWN0IGJhY2sgaW50byBuZXN0ZWQgb25lXG4gICAgKGFjYywge3ZhbHVlLCBhcmdTcGVjfSkgPT4gXy5zZXQoYWNjLCBhcmdTcGVjLmRlc3QsIHZhbHVlKSxcbiAgICAvKiogQHR5cGUge0FyZ3N9ICovICh7fSlcbiAgKTtcbn1cblxuLyoqXG4gKiBDb21wYWN0cyBhbiBvYmplY3QgZm9yIHtAbGluayBzaG93Q29uZmlnfTpcbiAqIDEuIFJlbW92ZXMgYHN1YmNvbW1hbmRgIGtleS92YWx1ZVxuICogMi4gUmVtb3ZlcyBgdW5kZWZpbmVkYCB2YWx1ZXNcbiAqIDMuIFJlbW92ZXMgZW1wdHkgb2JqZWN0cyAoYnV0IG5vdCBgZmFsc2VgIHZhbHVlcylcbiAqIERvZXMgbm90IG9wZXJhdGUgcmVjdXJzaXZlbHkuXG4gKi9cbmNvbnN0IGNvbXBhY3RDb25maWcgPSBfLnBhcnRpYWwoXG4gIF8ub21pdEJ5LFxuICBfLFxuICAodmFsdWUsIGtleSkgPT5cbiAgICBrZXkgPT09ICdzdWJjb21tYW5kJyB8fCBfLmlzVW5kZWZpbmVkKHZhbHVlKSB8fCAoXy5pc09iamVjdCh2YWx1ZSkgJiYgXy5pc0VtcHR5KHZhbHVlKSlcbik7XG5cbi8qKlxuICogU2hvd3MgYSBicmVha2Rvd24gb2YgdGhlIGN1cnJlbnQgY29uZmlnIGFmdGVyIENMSSBwYXJhbXMsIGNvbmZpZyBmaWxlIGxvYWRlZCAmIGRlZmF1bHRzIGFwcGxpZWQuXG4gKlxuICogVGhlIGFjdHVhbCBzaGFwZSBvZiBgcHJlQ29uZmlnUGFyc2VkQXJnc2AgYW5kIGBkZWZhdWx0c2AgZG9lcyBub3QgbWF0dGVyIGZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBmdW5jdGlvbixcbiAqIGJ1dCBpdCdzIGludGVuZGVkIHRvIGJlIGNhbGxlZCB3aXRoIHZhbHVlcyBvZiB0eXBlIHtAbGluayBQYXJzZWRBcmdzfSBhbmQgYERlZmF1bHRWYWx1ZXM8dHJ1ZT5gLCByZXNwZWN0aXZlbHkuXG4gKlxuICogQHBhcmFtIHtQYXJ0aWFsPFBhcnNlZEFyZ3M+fSBub25EZWZhdWx0UHJlQ29uZmlnUGFyc2VkQXJncyAtIFBhcnNlZCBDTEkgYXJncyAob3IgcGFyYW0gdG8gYGluaXQoKWApIGJlZm9yZSBjb25maWcgJiBkZWZhdWx0cyBhcHBsaWVkXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi9jb25maWctZmlsZScpLlJlYWRDb25maWdGaWxlUmVzdWx0fSBjb25maWdSZXN1bHQgLSBSZXN1bHQgb2YgYXR0ZW1wdGluZyB0byBsb2FkIGEgY29uZmlnIGZpbGUuICBfTXVzdF8gYmUgbm9ybWFsaXplZFxuICogQHBhcmFtIHtQYXJ0aWFsPFBhcnNlZEFyZ3M+fSBkZWZhdWx0cyAtIENvbmZpZ3VyYXRpb24gZGVmYXVsdHMgZnJvbSBzY2hlbWFzXG4gKiBAcGFyYW0ge1BhcnNlZEFyZ3N9IHBhcnNlZEFyZ3MgLSBFbnRpcmUgcGFyc2VkIGFyZ3Mgb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIHNob3dDb25maWcobm9uRGVmYXVsdFByZUNvbmZpZ1BhcnNlZEFyZ3MsIGNvbmZpZ1Jlc3VsdCwgZGVmYXVsdHMsIHBhcnNlZEFyZ3MpIHtcbiAgY29uc29sZS5sb2coJ0FwcGl1bSBDb25maWd1cmF0aW9uXFxuJyk7XG4gIGNvbnNvbGUubG9nKCdmcm9tIGRlZmF1bHRzOlxcbicpO1xuICBjb25zb2xlLmRpcihjb21wYWN0Q29uZmlnKGRlZmF1bHRzKSk7XG4gIGlmIChjb25maWdSZXN1bHQuY29uZmlnKSB7XG4gICAgY29uc29sZS5sb2coYFxcbmZyb20gY29uZmlnIGZpbGUgYXQgJHtjb25maWdSZXN1bHQuZmlsZXBhdGh9OlxcbmApO1xuICAgIGNvbnNvbGUuZGlyKGNvbXBhY3RDb25maWcoY29uZmlnUmVzdWx0LmNvbmZpZykpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKGBcXG4obm8gY29uZmlndXJhdGlvbiBmaWxlIGxvYWRlZClgKTtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KG5vbkRlZmF1bHRQcmVDb25maWdQYXJzZWRBcmdzKSkge1xuICAgIGNvbnNvbGUubG9nKGBcXG4obm8gQ0xJIHBhcmFtZXRlcnMgcHJvdmlkZWQpYCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ1xcbnZpYSBDTEkgb3IgZnVuY3Rpb24gY2FsbDpcXG4nKTtcbiAgICBjb25zb2xlLmRpcihjb21wYWN0Q29uZmlnKG5vbkRlZmF1bHRQcmVDb25maWdQYXJzZWRBcmdzKSk7XG4gIH1cbiAgY29uc29sZS5sb2coJ1xcbmZpbmFsIGNvbmZpZ3VyYXRpb246XFxuJyk7XG4gIGNvbnNvbGUuZGlyKGNvbXBhY3RDb25maWcocGFyc2VkQXJncykpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB0bXBEaXJcbiAqL1xuYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVUbXBEaXIodG1wRGlyKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMubWtkaXJwKHRtcERpcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgV2UgY291bGQgbm90IGVuc3VyZSB0aGF0IHRoZSB0ZW1wIGRpciB5b3Ugc3BlY2lmaWVkIGAgK1xuICAgICAgICBgKCR7dG1wRGlyfSkgZXhpc3RzLiBQbGVhc2UgbWFrZSBzdXJlIGl0J3Mgd3JpdGVhYmxlLmBcbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHJvb3REaXIgPSBmcy5maW5kUm9vdChfX2Rpcm5hbWUpO1xuXG5leHBvcnQge1xuICBnZXRCdWlsZEluZm8sXG4gIGNoZWNrTm9kZU9rLFxuICBzaG93QnVpbGRJbmZvLFxuICB3YXJuTm9kZURlcHJlY2F0aW9ucyxcbiAgdmFsaWRhdGVUbXBEaXIsXG4gIGdldE5vbkRlZmF1bHRTZXJ2ZXJBcmdzLFxuICBnZXRHaXRSZXYsXG4gIEFQUElVTV9WRVIsXG4gIHVwZGF0ZUJ1aWxkSW5mbyxcbiAgc2hvd0NvbmZpZyxcbiAgcm9vdERpcixcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuUGFyc2VkQXJnc30gUGFyc2VkQXJnc1xuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuQXJnc30gQXJnc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9zY2hlbWEvYXJnLXNwZWMnKS5BcmdTcGVjfSBBcmdTcGVjXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsVUFBVSxHQUFHQyxXQUFBLENBQUdDLG1CQUFILENBQXVCQyxTQUF2QixDQUFuQjs7QUFFQSxN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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/extension-config.js"],"names":[],"mappings":"AA4BA;;;;;GAKG;AACH;
|
|
1
|
+
{"version":3,"file":"extension-config.d.ts","sourceRoot":"","sources":["../../../lib/extension/extension-config.js"],"names":[],"mappings":"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"}
|
|
@@ -136,14 +136,14 @@ class ExtensionConfig {
|
|
|
136
136
|
} = this.getValidationResultSummaries(errorMap, warningMap);
|
|
137
137
|
|
|
138
138
|
if (!_lodash.default.isEmpty(errorSummaries)) {
|
|
139
|
-
_logger.default.error(`Appium encountered ${_support.util.pluralize('error',
|
|
139
|
+
_logger.default.error(`Appium encountered ${_support.util.pluralize('error', errorMap.size, true)} while validating ${this.configKey} found in manifest ${this.manifestPath}`);
|
|
140
140
|
|
|
141
141
|
for (const summary of errorSummaries) {
|
|
142
142
|
_logger.default.error(summary);
|
|
143
143
|
}
|
|
144
144
|
} else {
|
|
145
145
|
if (!_lodash.default.isEmpty(warningSummaries)) {
|
|
146
|
-
_logger.default.warn(`Appium encountered ${_support.util.pluralize('warning',
|
|
146
|
+
_logger.default.warn(`Appium encountered ${_support.util.pluralize('warning', warningMap.size, true)} while validating ${this.configKey} found in manifest ${this.manifestPath}`);
|
|
147
147
|
|
|
148
148
|
for (const summary of warningSummaries) {
|
|
149
149
|
_logger.default.warn(summary);
|
|
@@ -433,4 +433,4 @@ class ExtensionConfig {
|
|
|
433
433
|
}
|
|
434
434
|
|
|
435
435
|
exports.ExtensionConfig = ExtensionConfig;
|
|
436
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlNUQUxMX1RZUEVfTlBNIiwiSU5TVEFMTF9UWVBFX0xPQ0FMIiwiSU5TVEFMTF9UWVBFX0dJVEhVQiIsIklOU1RBTExfVFlQRV9HSVQiLCJJTlNUQUxMX1RZUEVTIiwiU2V0IiwiRXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uVHlwZSIsImNvbmZpZ0tleSIsImluc3RhbGxlZEV4dGVuc2lvbnMiLCJsb2ciLCJtYW5pZmVzdCIsIl9saXN0RGF0YUNhY2hlIiwiY29uc3RydWN0b3IiLCJnZXRFeHRlbnNpb25EYXRhIiwibWFuaWZlc3RQYXRoIiwiYXBwaXVtSG9tZSIsImdldFByb2JsZW1zIiwiZXh0TmFtZSIsImV4dE1hbmlmZXN0IiwiZ2V0R2VuZXJpY0NvbmZpZ1Byb2JsZW1zIiwiZ2V0Q29uZmlnUHJvYmxlbXMiLCJnZXRTY2hlbWFQcm9ibGVtcyIsImdldFdhcm5pbmdzIiwiZ2VuZXJpY0NvbmZpZ1dhcm5pbmdzIiwiY29uZmlnV2FybmluZ3MiLCJCIiwiYWxsIiwiZ2V0R2VuZXJpY0NvbmZpZ1dhcm5pbmdzIiwiZ2V0Q29uZmlnV2FybmluZ3MiLCJnZXRWYWxpZGF0aW9uUmVzdWx0U3VtbWFyaWVzIiwiZXJyb3JNYXAiLCJNYXAiLCJ3YXJuaW5nTWFwIiwiZXJyb3JTdW1tYXJpZXMiLCJwcm9ibGVtcyIsImVudHJpZXMiLCJfIiwiaXNFbXB0eSIsInB1c2giLCJ1dGlsIiwicGx1cmFsaXplIiwibGVuZ3RoIiwicHJvYmxlbSIsImVyciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2YWwiLCJ3YXJuaW5nU3VtbWFyaWVzIiwid2FybmluZ3MiLCJleHRUeXBlVGV4dCIsImNhcGl0YWxpemUiLCJwcm9ibGVtRW51bWVyYXRpb25UZXh0Iiwid2FybmluZyIsIl92YWxpZGF0ZSIsImV4dHMiLCJ0b1BhaXJzIiwiZXJyb3JzIiwic2V0IiwiZXJyb3IiLCJzdW1tYXJ5Iiwid2FybiIsImdldExpc3REYXRhIiwiQ29tbWFuZENsYXNzIiwiY29tbWFuZENsYXNzZXMiLCJjbWQiLCJjb25maWciLCJqc29uIiwibGlzdERhdGEiLCJsaXN0Iiwic2hvd0luc3RhbGxlZCIsInNob3dVcGRhdGVzIiwiYXBwaXVtVmVyc2lvbiIsImluc3RhbGxTcGVjIiwiaW5zdGFsbFR5cGUiLCJwa2dOYW1lIiwiaW52YWxpZEZpZWxkcyIsImlzU3RyaW5nIiwiaGFzIiwiaW52YWxpZEZpZWxkc0VudW1lcmF0aW9uVGV4dCIsImludmFsaWRGaWVsZHNUZXh0IiwibWFwIiwiZmllbGQiLCJqb2luIiwiY3JlYXRlUGVlcldhcm5pbmciLCJyZWFzb24iLCJBUFBJVU1fVkVSIiwic2F0aXNmaWVzIiwiZXh0TGlzdERhdGEiLCJpbnN0YWxsZWQiLCJ1cGRhdGVWZXJzaW9uIiwidXBUb0RhdGUiLCJzY2hlbWEiLCJhcmdTY2hlbWFQYXRoIiwiZXh0RGF0YUhhc1NjaGVtYSIsImlzQWxsb3dlZFNjaGVtYUZpbGVFeHRlbnNpb24iLCJyZWFkRXh0ZW5zaW9uU2NoZW1hIiwibWVzc2FnZSIsIkFMTE9XRURfU0NIRU1BX0VYVEVOU0lPTlMiLCJpc1BsYWluT2JqZWN0IiwidmVyc2lvbiIsIm1haW5DbGFzcyIsImFkZEV4dGVuc2lvbiIsIndyaXRlIiwidXBkYXRlRXh0ZW5zaW9uIiwicmVtb3ZlRXh0ZW5zaW9uIiwicHJpbnQiLCJhY3RpdmVOYW1lcyIsImluZm8iLCJleHRlbnNpb25EZXNjIiwiRXJyb3IiLCJnZXRJbnN0YWxsUGF0aCIsInBhdGgiLCJyZXF1aXJlIiwicmVxUGF0aCIsInJlcVJlc29sdmVkIiwicmVzb2x2ZSIsIlJlZmVyZW5jZUVycm9yIiwicHJvY2VzcyIsImVudiIsIkFQUElVTV9SRUxPQURfRVhURU5TSU9OUyIsImNhY2hlIiwiZGVidWciLCJNYWluQ2xhc3MiLCJpc0luc3RhbGxlZCIsImluY2x1ZGVzIiwiT2JqZWN0Iiwia2V5cyIsIl9yZWFkRXh0ZW5zaW9uU2NoZW1hIiwiZXh0VHlwZSIsIlR5cGVFcnJvciIsIm1vZHVsZU9iamVjdCIsInNjaGVtYVBhdGgiLCJyZXNvbHZlRnJvbSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicmVnaXN0ZXJTY2hlbWEiLCJpc09iamVjdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb24vZXh0ZW5zaW9uLWNvbmZpZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgcmVzb2x2ZUZyb20gZnJvbSAncmVzb2x2ZS1mcm9tJztcbmltcG9ydCB7c2F0aXNmaWVzfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHt1dGlsfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHtjb21tYW5kQ2xhc3Nlc30gZnJvbSAnLi4vY2xpL2V4dGVuc2lvbic7XG5pbXBvcnQge0FQUElVTV9WRVJ9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQge1xuICBBTExPV0VEX1NDSEVNQV9FWFRFTlNJT05TLFxuICBpc0FsbG93ZWRTY2hlbWFGaWxlRXh0ZW5zaW9uLFxuICByZWdpc3RlclNjaGVtYSxcbn0gZnJvbSAnLi4vc2NoZW1hL3NjaGVtYSc7XG5cbmNvbnN0IElOU1RBTExfVFlQRV9OUE0gPSAnbnBtJztcbmNvbnN0IElOU1RBTExfVFlQRV9MT0NBTCA9ICdsb2NhbCc7XG5jb25zdCBJTlNUQUxMX1RZUEVfR0lUSFVCID0gJ2dpdGh1Yic7XG5jb25zdCBJTlNUQUxMX1RZUEVfR0lUID0gJ2dpdCc7XG5cbi8qKiBAdHlwZSB7U2V0PEluc3RhbGxUeXBlPn0gKi9cbmNvbnN0IElOU1RBTExfVFlQRVMgPSBuZXcgU2V0KFtcbiAgSU5TVEFMTF9UWVBFX0dJVCxcbiAgSU5TVEFMTF9UWVBFX0dJVEhVQixcbiAgSU5TVEFMTF9UWVBFX0xPQ0FMLFxuICBJTlNUQUxMX1RZUEVfTlBNLFxuXSk7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyBhYnN0cmFjdC4gSXQgc2hvdWxkIG5vdCBiZSBpbnN0YW50aWF0ZWQgZGlyZWN0bHkuXG4gKlxuICogU3ViY2xhc3NlcyBzaG91bGQgcHJvdmlkZSB0aGUgZ2VuZXJpYyBwYXJhbWV0ZXIgdG8gaW1wbGVtZW50LlxuICogQHRlbXBsYXRlIHtFeHRlbnNpb25UeXBlfSBFeHRUeXBlXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHRlbnNpb25Db25maWcge1xuICAvKiogQHR5cGUge0V4dFR5cGV9ICovXG4gIGV4dGVuc2lvblR5cGU7XG5cbiAgLyoqIEB0eXBlIHtgJHtFeHRUeXBlfXNgfSAqL1xuICBjb25maWdLZXk7XG5cbiAgLyoqIEB0eXBlIHtFeHRSZWNvcmQ8RXh0VHlwZT59ICovXG4gIGluc3RhbGxlZEV4dGVuc2lvbnM7XG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9ICovXG4gIGxvZztcblxuICAvKiogQHR5cGUge01hbmlmZXN0fSAqL1xuICBtYW5pZmVzdDtcblxuICAvKipcbiAgICogQHR5cGUge0V4dGVuc2lvbkxpc3REYXRhfVxuICAgKi9cbiAgX2xpc3REYXRhQ2FjaGU7XG5cbiAgLyoqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHBhcmFtIHtFeHRUeXBlfSBleHRlbnNpb25UeXBlIC0gVHlwZSBvZiBleHRlbnNpb25cbiAgICogQHBhcmFtIHtNYW5pZmVzdH0gbWFuaWZlc3QgLSBgTWFuaWZlc3RgIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihleHRlbnNpb25UeXBlLCBtYW5pZmVzdCkge1xuICAgIHRoaXMuZXh0ZW5zaW9uVHlwZSA9IGV4dGVuc2lvblR5cGU7XG4gICAgdGhpcy5jb25maWdLZXkgPSBgJHtleHRlbnNpb25UeXBlfXNgO1xuICAgIHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9ucyA9IG1hbmlmZXN0LmdldEV4dGVuc2lvbkRhdGEoZXh0ZW5zaW9uVHlwZSk7XG4gICAgdGhpcy5tYW5pZmVzdCA9IG1hbmlmZXN0O1xuICB9XG5cbiAgZ2V0IG1hbmlmZXN0UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYW5pZmVzdC5tYW5pZmVzdFBhdGg7XG4gIH1cblxuICBnZXQgYXBwaXVtSG9tZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tYW5pZmVzdC5hcHBpdW1Ib21lO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGVycm9ycyBmb3IgYSBnaXZlbiBleHRlbnNpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZVxuICAgKiBAcGFyYW0ge0V4dE1hbmlmZXN0PEV4dFR5cGU+fSBleHRNYW5pZmVzdFxuICAgKiBAcmV0dXJucyB7RXh0TWFuaWZlc3RQcm9ibGVtW119XG4gICAqL1xuICBnZXRQcm9ibGVtcyhleHROYW1lLCBleHRNYW5pZmVzdCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLmdldEdlbmVyaWNDb25maWdQcm9ibGVtcyhleHRNYW5pZmVzdCwgZXh0TmFtZSksXG4gICAgICAuLi50aGlzLmdldENvbmZpZ1Byb2JsZW1zKGV4dE1hbmlmZXN0LCBleHROYW1lKSxcbiAgICAgIC4uLnRoaXMuZ2V0U2NoZW1hUHJvYmxlbXMoZXh0TWFuaWZlc3QsIGV4dE5hbWUpLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2Ygd2FybmluZ3MgZm9yIGEgZ2l2ZW4gZXh0ZW5zaW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT59IGV4dE5hbWVcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fVxuICAgKi9cbiAgYXN5bmMgZ2V0V2FybmluZ3MoZXh0TmFtZSwgZXh0TWFuaWZlc3QpIHtcbiAgICBjb25zdCBbZ2VuZXJpY0NvbmZpZ1dhcm5pbmdzLCBjb25maWdXYXJuaW5nc10gPSBhd2FpdCBCLmFsbChbXG4gICAgICB0aGlzLmdldEdlbmVyaWNDb25maWdXYXJuaW5ncyhleHRNYW5pZmVzdCwgZXh0TmFtZSksXG4gICAgICB0aGlzLmdldENvbmZpZ1dhcm5pbmdzKGV4dE1hbmlmZXN0LCBleHROYW1lKSxcbiAgICBdKTtcblxuICAgIHJldHVybiBbLi4uZ2VuZXJpY0NvbmZpZ1dhcm5pbmdzLCAuLi5jb25maWdXYXJuaW5nc107XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgZXh0ZW5zaW9uLXR5cGUtc3BlY2lmaWMgaXNzdWVzLiBUbyBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycyxyZXF1aXJlLWF3YWl0XG4gIGFzeW5jIGdldENvbmZpZ1dhcm5pbmdzKGV4dE1hbmlmZXN0LCBleHROYW1lKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7TWFwPEV4dE5hbWU8RXh0VHlwZT4sRXh0TWFuaWZlc3RQcm9ibGVtW10+fSBbZXJyb3JNYXBdXG4gICAqIEBwYXJhbSB7TWFwPEV4dE5hbWU8RXh0VHlwZT4sc3RyaW5nW10+fSBbd2FybmluZ01hcF1cbiAgICovXG4gIGdldFZhbGlkYXRpb25SZXN1bHRTdW1tYXJpZXMoZXJyb3JNYXAgPSBuZXcgTWFwKCksIHdhcm5pbmdNYXAgPSBuZXcgTWFwKCkpIHtcbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiBjb21wdXRlZCBzdHJpbmdzXG4gICAgICogQHR5cGUge3N0cmluZ1tdfVxuICAgICAqL1xuICAgIGNvbnN0IGVycm9yU3VtbWFyaWVzID0gW107XG4gICAgZm9yIChjb25zdCBbZXh0TmFtZSwgcHJvYmxlbXNdIG9mIGVycm9yTWFwLmVudHJpZXMoKSkge1xuICAgICAgaWYgKF8uaXNFbXB0eShwcm9ibGVtcykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICAvLyByZW1vdmUgdGhpcyBleHRlbnNpb24gZnJvbSB0aGUgbGlzdCBzaW5jZSBpdCdzIG5vdCB2YWxpZFxuICAgICAgZXJyb3JTdW1tYXJpZXMucHVzaChcbiAgICAgICAgYCR7dGhpcy5leHRlbnNpb25UeXBlfSBcIiR7ZXh0TmFtZX1cIiBoYWQgJHt1dGlsLnBsdXJhbGl6ZShcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHByb2JsZW1zLmxlbmd0aFxuICAgICAgICApfSBhbmQgd2lsbCBub3QgYmUgYXZhaWxhYmxlOmBcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHByb2JsZW0gb2YgcHJvYmxlbXMpIHtcbiAgICAgICAgZXJyb3JTdW1tYXJpZXMucHVzaChcbiAgICAgICAgICBgICAtICR7cHJvYmxlbS5lcnJ9IChBY3R1YWwgdmFsdWU6IGAgKyBgJHtKU09OLnN0cmluZ2lmeShwcm9ibGVtLnZhbCl9KWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgICBjb25zdCB3YXJuaW5nU3VtbWFyaWVzID0gW107XG4gICAgZm9yIChjb25zdCBbZXh0TmFtZSwgd2FybmluZ3NdIG9mIHdhcm5pbmdNYXAuZW50cmllcygpKSB7XG4gICAgICBpZiAoXy5pc0VtcHR5KHdhcm5pbmdzKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV4dFR5cGVUZXh0ID0gXy5jYXBpdGFsaXplKHRoaXMuZXh0ZW5zaW9uVHlwZSk7XG4gICAgICBjb25zdCBwcm9ibGVtRW51bWVyYXRpb25UZXh0ID0gdXRpbC5wbHVyYWxpemUoJ3BvdGVudGlhbCBwcm9ibGVtJywgd2FybmluZ3MubGVuZ3RoLCB0cnVlKTtcbiAgICAgIHdhcm5pbmdTdW1tYXJpZXMucHVzaChgJHtleHRUeXBlVGV4dH0gXCIke2V4dE5hbWV9XCIgaGFzICR7cHJvYmxlbUVudW1lcmF0aW9uVGV4dH06IGApO1xuICAgICAgZm9yIChjb25zdCB3YXJuaW5nIG9mIHdhcm5pbmdzKSB7XG4gICAgICAgIHdhcm5pbmdTdW1tYXJpZXMucHVzaChgICAtICR7d2FybmluZ31gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge2Vycm9yU3VtbWFyaWVzLCB3YXJuaW5nU3VtbWFyaWVzfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgZXh0ZW5zaW9ucyBmb3IgcHJvYmxlbXMuICBUbyBiZSBjYWxsZWQgYnkgc3ViY2xhc3NlcycgYHZhbGlkYXRlYCBtZXRob2QuXG4gICAqXG4gICAqIEVycm9ycyBhbmQgd2FybmluZ3Mgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG11dGF0ZXMgYGV4dHNgLlxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBwYXJhbSB7RXh0UmVjb3JkPEV4dFR5cGU+fSBleHRzIC0gTG9va3VwIG9mIGV4dGVuc2lvbiBuYW1lcyB0byB7QGxpbmtjb2RlIEV4dE1hbmlmZXN0fSBvYmplY3RzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEV4dFJlY29yZDxFeHRUeXBlPj59IFRoZSBzYW1lIGxvb2t1cCwgYnV0IHBpY2tpbmcgb25seSBlcnJvci1mcmVlIGV4dGVuc2lvbnNcbiAgICovXG4gIGFzeW5jIF92YWxpZGF0ZShleHRzKSB7XG4gICAgLyoqXG4gICAgICogTG9va3VwIG9mIGV4dGVuc2lvbiBuYW1lcyB0byB7QGxpbmtjb2RlIEV4dE1hbmlmZXN0UHJvYmxlbSBFeHRNYW5pZmVzdFByb2JsZW1zfVxuICAgICAqIEB0eXBlIHtNYXA8RXh0TmFtZTxFeHRUeXBlPixFeHRNYW5pZmVzdFByb2JsZW1bXT59XG4gICAgICovXG4gICAgY29uc3QgZXJyb3JNYXAgPSBuZXcgTWFwKCk7XG4gICAgLyoqXG4gICAgICogTG9va3VwIG9mIGV4dGVuc2lvbiBuYW1lcyB0byB3YXJuaW5ncy5cbiAgICAgKiBAdHlwZSB7TWFwPEV4dE5hbWU8RXh0VHlwZT4sc3RyaW5nW10+fVxuICAgICAqL1xuICAgIGNvbnN0IHdhcm5pbmdNYXAgPSBuZXcgTWFwKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtleHROYW1lLCBleHRNYW5pZmVzdF0gb2YgXy50b1BhaXJzKGV4dHMpKSB7XG4gICAgICBjb25zdCBbZXJyb3JzLCB3YXJuaW5nc10gPSBhd2FpdCBCLmFsbChbXG4gICAgICAgIHRoaXMuZ2V0UHJvYmxlbXMoZXh0TmFtZSwgZXh0TWFuaWZlc3QpLFxuICAgICAgICB0aGlzLmdldFdhcm5pbmdzKGV4dE5hbWUsIGV4dE1hbmlmZXN0KSxcbiAgICAgIF0pO1xuICAgICAgaWYgKGVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgZGVsZXRlIGV4dHNbZXh0TmFtZV07XG4gICAgICB9XG4gICAgICBlcnJvck1hcC5zZXQoZXh0TmFtZSwgZXJyb3JzKTtcbiAgICAgIHdhcm5pbmdNYXAuc2V0KGV4dE5hbWUsIHdhcm5pbmdzKTtcbiAgICB9XG5cbiAgICBjb25zdCB7ZXJyb3JTdW1tYXJpZXMsIHdhcm5pbmdTdW1tYXJpZXN9ID0gdGhpcy5nZXRWYWxpZGF0aW9uUmVzdWx0U3VtbWFyaWVzKFxuICAgICAgZXJyb3JNYXAsXG4gICAgICB3YXJuaW5nTWFwXG4gICAgKTtcblxuICAgIGlmICghXy5pc0VtcHR5KGVycm9yU3VtbWFyaWVzKSkge1xuICAgICAgbG9nLmVycm9yKFxuICAgICAgICBgQXBwaXVtIGVuY291bnRlcmVkICR7dXRpbC5wbHVyYWxpemUoXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICBlcnJvclN1bW1hcmllcy5sZW5ndGgsXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApfSB3aGlsZSB2YWxpZGF0aW5nICR7dGhpcy5jb25maWdLZXl9IGZvdW5kIGluIG1hbmlmZXN0ICR7dGhpcy5tYW5pZmVzdFBhdGh9YFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3Qgc3VtbWFyeSBvZiBlcnJvclN1bW1hcmllcykge1xuICAgICAgICBsb2cuZXJyb3Ioc3VtbWFyeSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIG9ubHkgZGlzcGxheSB3YXJuaW5ncyBpZiB0aGVyZSBhcmUgbm8gZXJyb3JzIVxuXG4gICAgICBpZiAoIV8uaXNFbXB0eSh3YXJuaW5nU3VtbWFyaWVzKSkge1xuICAgICAgICBsb2cud2FybihcbiAgICAgICAgICBgQXBwaXVtIGVuY291bnRlcmVkICR7dXRpbC5wbHVyYWxpemUoXG4gICAgICAgICAgICAnd2FybmluZycsXG4gICAgICAgICAgICB3YXJuaW5nU3VtbWFyaWVzLmxlbmd0aCxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApfSB3aGlsZSB2YWxpZGF0aW5nICR7dGhpcy5jb25maWdLZXl9IGZvdW5kIGluIG1hbmlmZXN0ICR7dGhpcy5tYW5pZmVzdFBhdGh9YFxuICAgICAgICApO1xuICAgICAgICBmb3IgKGNvbnN0IHN1bW1hcnkgb2Ygd2FybmluZ1N1bW1hcmllcykge1xuICAgICAgICAgIGxvZy53YXJuKHN1bW1hcnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBleHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBsaXN0aW5nIGRhdGEgZm9yIGV4dGVuc2lvbnMgdmlhIGNvbW1hbmQgY2xhc3MuXG4gICAqIENhY2hlcyB0aGUgcmVzdWx0IGluIHtAbGlua2NvZGUgRXh0ZW5zaW9uQ29uZmlnLl9saXN0RGF0YUNhY2hlfVxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEV4dGVuc2lvbkxpc3REYXRhPn1cbiAgICovXG4gIGFzeW5jIGdldExpc3REYXRhKCkge1xuICAgIGlmICh0aGlzLl9saXN0RGF0YUNhY2hlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGlzdERhdGFDYWNoZTtcbiAgICB9XG4gICAgY29uc3QgQ29tbWFuZENsYXNzID0gLyoqIEB0eXBlIHtFeHRDb21tYW5kPEV4dFR5cGU+fSAqLyAoY29tbWFuZENsYXNzZXNbdGhpcy5leHRlbnNpb25UeXBlXSk7XG4gICAgY29uc3QgY21kID0gbmV3IENvbW1hbmRDbGFzcyh7Y29uZmlnOiB0aGlzLCBqc29uOiB0cnVlfSk7XG4gICAgY29uc3QgbGlzdERhdGEgPSBhd2FpdCBjbWQubGlzdCh7c2hvd0luc3RhbGxlZDogdHJ1ZSwgc2hvd1VwZGF0ZXM6IHRydWV9KTtcbiAgICB0aGlzLl9saXN0RGF0YUNhY2hlID0gbGlzdERhdGE7XG4gICAgcmV0dXJuIGxpc3REYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIHdhcm5pbmdzIGZvciBhIHBhcnRpY3VsYXIgZXh0ZW5zaW9uLlxuICAgKlxuICAgKiBCeSBkZWZpbml0aW9uLCBhIG5vbi1lbXB0eSBsaXN0IG9mIHdhcm5pbmdzIGRvZXMgX25vdF8gaW1wbHkgdGhlIGV4dGVuc2lvbiBjYW5ub3QgYmUgbG9hZGVkLFxuICAgKiBidXQgaXQgbWF5IG5vdCB3b3JrIGFzIGV4cGVjdGVkIG9yIG90aGVyd2lzZSB0aHJvdyBhbiBleGNlcHRpb24gYXQgcnVudGltZS5cbiAgICpcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn1cbiAgICovXG4gIGFzeW5jIGdldEdlbmVyaWNDb25maWdXYXJuaW5ncyhleHRNYW5pZmVzdCwgZXh0TmFtZSkge1xuICAgIGNvbnN0IHthcHBpdW1WZXJzaW9uLCBpbnN0YWxsU3BlYywgaW5zdGFsbFR5cGUsIHBrZ05hbWV9ID0gZXh0TWFuaWZlc3Q7XG4gICAgY29uc3Qgd2FybmluZ3MgPSBbXTtcblxuICAgIGNvbnN0IGludmFsaWRGaWVsZHMgPSBbXTtcbiAgICBpZiAoIV8uaXNTdHJpbmcoaW5zdGFsbFNwZWMpKSB7XG4gICAgICBpbnZhbGlkRmllbGRzLnB1c2goJ2luc3RhbGxTcGVjJyk7XG4gICAgfVxuXG4gICAgaWYgKCFJTlNUQUxMX1RZUEVTLmhhcyhpbnN0YWxsVHlwZSkpIHtcbiAgICAgIGludmFsaWRGaWVsZHMucHVzaCgnaW5zdGFsbFR5cGUnKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRUeXBlVGV4dCA9IF8uY2FwaXRhbGl6ZSh0aGlzLmV4dGVuc2lvblR5cGUpO1xuXG4gICAgaWYgKGludmFsaWRGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpbnZhbGlkRmllbGRzRW51bWVyYXRpb25UZXh0ID0gdXRpbC5wbHVyYWxpemUoXG4gICAgICAgICdpbnZhbGlkIG9yIG1pc3NpbmcgZmllbGQnLFxuICAgICAgICBpbnZhbGlkRmllbGRzLmxlbmd0aCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGludmFsaWRGaWVsZHNUZXh0ID0gaW52YWxpZEZpZWxkcy5tYXAoKGZpZWxkKSA9PiBgXCIke2ZpZWxkfVwiYCkuam9pbignLCAnKTtcblxuICAgICAgd2FybmluZ3MucHVzaChcbiAgICAgICAgYCR7ZXh0VHlwZVRleHR9IFwiJHtleHROYW1lfVwiIChwYWNrYWdlIFxcYCR7cGtnTmFtZX1cXGApIGhhcyAke2ludmFsaWRGaWVsZHNFbnVtZXJhdGlvblRleHR9ICgke2ludmFsaWRGaWVsZHNUZXh0fSkgaW4gXFxgZXh0ZW5zaW9ucy55YW1sXFxgOyB0aGlzIG1heSBjYXVzZSB1cGdyYWRlcyBkb25lIHZpYSB0aGUgXFxgYXBwaXVtXFxgIENMSSB0b29sIHRvIGZhaWwuIFBsZWFzZSByZWluc3RhbGwgd2l0aCBcXGBhcHBpdW0gJHt0aGlzLmV4dGVuc2lvblR5cGV9IHVuaW5zdGFsbCAke2V4dE5hbWV9XFxgIGFuZCBcXGBhcHBpdW0gJHt0aGlzLmV4dGVuc2lvblR5cGV9IGluc3RhbGwgJHtleHROYW1lfVxcYCB0byBhdHRlbXB0IGEgZml4LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGVscHMgY29uY2F0ZW5hdGUgd2FybmluZyBtZXNzYWdlcyByZWxhdGVkIHRvIHBlZXIgZGVwZW5kZW5jaWVzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJlYXNvblxuICAgICAqIEByZXR1cm5zIHN0cmluZ1xuICAgICAqL1xuICAgIGNvbnN0IGNyZWF0ZVBlZXJXYXJuaW5nID0gKHJlYXNvbikgPT5cbiAgICAgIGAke2V4dFR5cGVUZXh0fSBcIiR7ZXh0TmFtZX1cIiAocGFja2FnZSBcXGAke3BrZ05hbWV9XFxgKSBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBBcHBpdW0gKHYke0FQUElVTV9WRVJ9KSBkdWUgdG8gJHtyZWFzb259YDtcblxuICAgIGlmIChfLmlzU3RyaW5nKGFwcGl1bVZlcnNpb24pICYmICFzYXRpc2ZpZXMoQVBQSVVNX1ZFUiwgYXBwaXVtVmVyc2lvbikpIHtcbiAgICAgIGNvbnN0IGxpc3REYXRhID0gYXdhaXQgdGhpcy5nZXRMaXN0RGF0YSgpO1xuICAgICAgY29uc3QgZXh0TGlzdERhdGEgPSAvKiogQHR5cGUge0luc3RhbGxlZEV4dGVuc2lvbkxpc3REYXRhfSAqLyAobGlzdERhdGFbZXh0TmFtZV0pO1xuICAgICAgaWYgKGV4dExpc3REYXRhPy5pbnN0YWxsZWQpIHtcbiAgICAgICAgY29uc3Qge3VwZGF0ZVZlcnNpb24sIHVwVG9EYXRlfSA9IGV4dExpc3REYXRhO1xuICAgICAgICBpZiAoIXVwVG9EYXRlKSB7XG4gICAgICAgICAgd2FybmluZ3MucHVzaChcbiAgICAgICAgICAgIGNyZWF0ZVBlZXJXYXJuaW5nKFxuICAgICAgICAgICAgICBgaXRzIHBlZXIgZGVwZW5kZW5jeSBvbiBvbGRlciBBcHBpdW0gdiR7YXBwaXVtVmVyc2lvbn0uIFBsZWFzZSB1cGdyYWRlIFxcYCR7cGtnTmFtZX1cXGAgdG8gdiR7dXBkYXRlVmVyc2lvbn0gb3IgbmV3ZXIuYFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2FybmluZ3MucHVzaChcbiAgICAgICAgICAgIGNyZWF0ZVBlZXJXYXJuaW5nKFxuICAgICAgICAgICAgICBgaXRzIHBlZXIgZGVwZW5kZW5jeSBvbiBvbGRlciBBcHBpdW0gdiR7YXBwaXVtVmVyc2lvbn0uIFBsZWFzZSBhc2sgdGhlIGRldmVsb3BlciBvZiBcXGAke3BrZ05hbWV9XFxgIHRvIHVwZGF0ZSB0aGUgcGVlciBkZXBlbmRlbmN5IG9uIEFwcGl1bSB0byB2JHtBUFBJVU1fVkVSfS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIV8uaXNTdHJpbmcoYXBwaXVtVmVyc2lvbikpIHtcbiAgICAgIGNvbnN0IGxpc3REYXRhID0gYXdhaXQgdGhpcy5nZXRMaXN0RGF0YSgpO1xuICAgICAgY29uc3QgZXh0TGlzdERhdGEgPSAvKiogQHR5cGUge0luc3RhbGxlZEV4dGVuc2lvbkxpc3REYXRhfSAqLyAobGlzdERhdGFbZXh0TmFtZV0pO1xuICAgICAgaWYgKCFleHRMaXN0RGF0YT8udXBUb0RhdGUgJiYgZXh0TGlzdERhdGE/LnVwZGF0ZVZlcnNpb24pIHtcbiAgICAgICAgd2FybmluZ3MucHVzaChcbiAgICAgICAgICBjcmVhdGVQZWVyV2FybmluZyhcbiAgICAgICAgICAgIGBhbiBpbnZhbGlkIG9yIG1pc3NpbmcgcGVlciBkZXBlbmRlbmN5IG9uIEFwcGl1bS4gQSBuZXdlciB2ZXJzaW9uIG9mIFxcYCR7cGtnTmFtZX1cXGAgaXMgYXZhaWxhYmxlOyBwbGVhc2UgYXR0ZW1wdCB0byB1cGdyYWRlIFwiJHtleHROYW1lfVwiIHRvIHYke2V4dExpc3REYXRhLnVwZGF0ZVZlcnNpb259IG9yIG5ld2VyLmBcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICAgIGNyZWF0ZVBlZXJXYXJuaW5nKFxuICAgICAgICAgICAgYGFuIGludmFsaWQgb3IgbWlzc2luZyBwZWVyIGRlcGVuZGVuY3kgb24gQXBwaXVtLiBQbGVhc2UgYXNrIHRoZSBkZXZlbG9wZXIgb2YgXFxgJHtwa2dOYW1lfVxcYCB0byBhZGQgYSBwZWVyIGRlcGVuZGVuY3kgb24gXFxgXmFwcGl1bUAke0FQUElVTV9WRVJ9XFxgLmBcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3YXJuaW5ncztcbiAgfVxuICAvKipcbiAgICogUmV0dXJucyBsaXN0IG9mIHVucmVjb3ZlcmFibGUgZXJyb3JzIChpZiBhbnkpIGZvciB0aGUgZ2l2ZW4gZXh0ZW5zaW9uIF9pZl8gaXQgaGFzIGEgYHNjaGVtYWAgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0IC0gRXh0ZW5zaW9uIGRhdGEgKGZyb20gbWFuaWZlc3QpXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZSAtIEV4dGVuc2lvbiBuYW1lIChmcm9tIG1hbmlmZXN0KVxuICAgKiBAcmV0dXJucyB7RXh0TWFuaWZlc3RQcm9ibGVtW119XG4gICAqL1xuICBnZXRTY2hlbWFQcm9ibGVtcyhleHRNYW5pZmVzdCwgZXh0TmFtZSkge1xuICAgIC8qKiBAdHlwZSB7RXh0TWFuaWZlc3RQcm9ibGVtW119ICovXG4gICAgY29uc3QgcHJvYmxlbXMgPSBbXTtcbiAgICBjb25zdCB7c2NoZW1hOiBhcmdTY2hlbWFQYXRofSA9IGV4dE1hbmlmZXN0O1xuICAgIGlmIChFeHRlbnNpb25Db25maWcuZXh0RGF0YUhhc1NjaGVtYShleHRNYW5pZmVzdCkpIHtcbiAgICAgIGlmIChfLmlzU3RyaW5nKGFyZ1NjaGVtYVBhdGgpKSB7XG4gICAgICAgIGlmIChpc0FsbG93ZWRTY2hlbWFGaWxlRXh0ZW5zaW9uKGFyZ1NjaGVtYVBhdGgpKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucmVhZEV4dGVuc2lvblNjaGVtYShleHROYW1lLCBleHRNYW5pZmVzdCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgICAgICAgICAgZXJyOiBgVW5hYmxlIHRvIHJlZ2lzdGVyIHNjaGVtYSBhdCBwYXRoICR7YXJnU2NoZW1hUGF0aH07ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgICAgdmFsOiBhcmdTY2hlbWFQYXRoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICAgICAgZXJyOiBgU2NoZW1hIGZpbGUgaGFzIHVuc3VwcG9ydGVkIGV4dGVuc2lvbi4gQWxsb3dlZDogJHtbXG4gICAgICAgICAgICAgIC4uLkFMTE9XRURfU0NIRU1BX0VYVEVOU0lPTlMsXG4gICAgICAgICAgICBdLmpvaW4oJywgJyl9YCxcbiAgICAgICAgICAgIHZhbDogYXJnU2NoZW1hUGF0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChfLmlzUGxhaW5PYmplY3QoYXJnU2NoZW1hUGF0aCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnJlYWRFeHRlbnNpb25TY2hlbWEoZXh0TmFtZSwgZXh0TWFuaWZlc3QpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGVycjogYFVuYWJsZSB0byByZWdpc3RlciBlbWJlZGRlZCBzY2hlbWE7ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgICAgIHZhbDogYXJnU2NoZW1hUGF0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgICAgZXJyOiAnSW5jb3JyZWN0bHkgZm9ybWF0dGVkIHNjaGVtYSBmaWVsZDsgbXVzdCBiZSBhIHBhdGggdG8gYSBzY2hlbWEgZmlsZSBvciBhIHNjaGVtYSBvYmplY3QuJyxcbiAgICAgICAgICB2YWw6IGFyZ1NjaGVtYVBhdGgsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcHJvYmxlbXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbGlzdCBvZiBnZW5lcmljIHVucmVjb3ZlcmFibGUgZXJyb3JzIGZvciB0aGUgZ2l2ZW4gZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0IC0gRXh0ZW5zaW9uIGRhdGEgKGZyb20gbWFuaWZlc3QpXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZSAtIEV4dGVuc2lvbiBuYW1lIChmcm9tIG1hbmlmZXN0KVxuICAgKiBAcmV0dXJucyB7RXh0TWFuaWZlc3RQcm9ibGVtW119XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgZ2V0R2VuZXJpY0NvbmZpZ1Byb2JsZW1zKGV4dE1hbmlmZXN0LCBleHROYW1lKSB7XG4gICAgY29uc3Qge3ZlcnNpb24sIHBrZ05hbWUsIG1haW5DbGFzc30gPSBleHRNYW5pZmVzdDtcbiAgICBjb25zdCBwcm9ibGVtcyA9IFtdO1xuXG4gICAgaWYgKCFfLmlzU3RyaW5nKHZlcnNpb24pKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgICAgZXJyOiBgSW52YWxpZCBvciBtaXNzaW5nIFxcYHZlcnNpb25cXGAgZmllbGQgaW4gbXkgXFxgcGFja2FnZS5qc29uXFxgIGFuZC9vciBcXGBleHRlbnNpb25zLnlhbWxcXGAgKG11c3QgYmUgYSBzdHJpbmcpYCxcbiAgICAgICAgdmFsOiB2ZXJzaW9uLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzU3RyaW5nKHBrZ05hbWUpKSB7XG4gICAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgICAgZXJyOiBgSW52YWxpZCBvciBtaXNzaW5nIFxcYG5hbWVcXGAgZmllbGQgaW4gbXkgXFxgcGFja2FnZS5qc29uXFxgIGFuZC9vciBcXGBleHRlbnNpb25zLnlhbWxcXGAgKG11c3QgYmUgYSBzdHJpbmcpYCxcbiAgICAgICAgdmFsOiBwa2dOYW1lLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzU3RyaW5nKG1haW5DbGFzcykpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICBlcnI6IGBJbnZhbGlkIG9yIG1pc3NpbmcgXFxgYXBwaXVtLm1haW5DbGFzc1xcYCBmaWVsZCBpbiBteSBcXGBwYWNrYWdlLmpzb25cXGAgYW5kL29yIFxcYG1haW5DbGFzc1xcYCBmaWVsZCBpbiBcXGBleHRlbnNpb25zLnlhbWxcXGAgKG11c3QgYmUgYSBzdHJpbmcpYCxcbiAgICAgICAgdmFsOiBtYWluQ2xhc3MsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvYmxlbXM7XG4gIH1cblxuICAvKipcbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0XG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZVxuICAgKiBAcmV0dXJucyB7RXh0TWFuaWZlc3RQcm9ibGVtW119XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgZ2V0Q29uZmlnUHJvYmxlbXMoZXh0TWFuaWZlc3QsIGV4dE5hbWUpIHtcbiAgICAvLyBzaG91ZCBvdmVycmlkZSB0aGlzIG1ldGhvZCBpZiBzcGVjaWFsIHZhbGlkYXRpb24gaXMgbmVjZXNzYXJ5IGZvciB0aGlzIGV4dGVuc2lvbiB0eXBlXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHROYW1lXG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0XG4gICAqIEBwYXJhbSB7RXh0ZW5zaW9uQ29uZmlnTXV0YXRpb25PcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBhZGRFeHRlbnNpb24oZXh0TmFtZSwgZXh0TWFuaWZlc3QsIHt3cml0ZSA9IHRydWV9ID0ge30pIHtcbiAgICB0aGlzLm1hbmlmZXN0LmFkZEV4dGVuc2lvbih0aGlzLmV4dGVuc2lvblR5cGUsIGV4dE5hbWUsIGV4dE1hbmlmZXN0KTtcbiAgICBpZiAod3JpdGUpIHtcbiAgICAgIGF3YWl0IHRoaXMubWFuaWZlc3Qud3JpdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT58aW1wb3J0KCcuLi9jbGkvZXh0ZW5zaW9uLWNvbW1hbmQnKS5FeHRlbnNpb25GaWVsZHM8RXh0VHlwZT59IGV4dE1hbmlmZXN0XG4gICAqIEBwYXJhbSB7RXh0ZW5zaW9uQ29uZmlnTXV0YXRpb25PcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyB1cGRhdGVFeHRlbnNpb24oZXh0TmFtZSwgZXh0TWFuaWZlc3QsIHt3cml0ZSA9IHRydWV9ID0ge30pIHtcbiAgICB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNbZXh0TmFtZV0gPSB7XG4gICAgICAuLi50aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNbZXh0TmFtZV0sXG4gICAgICAuLi5leHRNYW5pZmVzdCxcbiAgICB9O1xuICAgIGlmICh3cml0ZSkge1xuICAgICAgYXdhaXQgdGhpcy5tYW5pZmVzdC53cml0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gZXh0ZW5zaW9uIGZyb20gdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIGV4dGVuc2lvbnMsIGFuZCBvcHRpb25hbGx5IGF2b2lkIGEgd3JpdGUgdG8gdGhlIG1hbmlmZXN0IGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZVxuICAgKiBAcGFyYW0ge0V4dGVuc2lvbkNvbmZpZ011dGF0aW9uT3B0c30gW29wdHNdXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlRXh0ZW5zaW9uKGV4dE5hbWUsIHt3cml0ZSA9IHRydWV9ID0ge30pIHtcbiAgICBkZWxldGUgdGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zW2V4dE5hbWVdO1xuICAgIGlmICh3cml0ZSkge1xuICAgICAgYXdhaXQgdGhpcy5tYW5pZmVzdC53cml0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT5bXX0gW2FjdGl2ZU5hbWVzXVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBwcmludChhY3RpdmVOYW1lcykge1xuICAgIGlmIChfLmlzRW1wdHkodGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKSkge1xuICAgICAgbG9nLmluZm8oXG4gICAgICAgIGBObyAke3RoaXMuY29uZmlnS2V5fSBoYXZlIGJlZW4gaW5zdGFsbGVkIGluICR7dGhpcy5hcHBpdW1Ib21lfS4gVXNlIHRoZSBcImFwcGl1bSAke3RoaXMuZXh0ZW5zaW9uVHlwZX1cIiBgICtcbiAgICAgICAgICAnY29tbWFuZCB0byBpbnN0YWxsIHRoZSBvbmUocykgeW91IHdhbnQgdG8gdXNlLidcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nLmluZm8oYEF2YWlsYWJsZSAke3RoaXMuY29uZmlnS2V5fTpgKTtcbiAgICBmb3IgKGNvbnN0IFtleHROYW1lLCBleHRNYW5pZmVzdF0gb2YgLyoqIEB0eXBlIHtbc3RyaW5nLCBFeHRNYW5pZmVzdDxFeHRUeXBlPl1bXX0gKi8gKFxuICAgICAgXy50b1BhaXJzKHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9ucylcbiAgICApKSB7XG4gICAgICBsb2cuaW5mbyhgICAtICR7dGhpcy5leHRlbnNpb25EZXNjKGV4dE5hbWUsIGV4dE1hbmlmZXN0KX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBleHRlbnNpb24uIFN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQuXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZSAtIEV4dGVuc2lvbiBuYW1lXG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0IC0gRXh0ZW5zaW9uIGRhdGFcbiAgICogQHJldHVybnMge3N0cmluZ31cbiAgICogQGFic3RyYWN0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgZXh0ZW5zaW9uRGVzYyhleHROYW1lLCBleHRNYW5pZmVzdCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhpcyBtdXN0IGJlIGltcGxlbWVudGVkIGluIGEgc3ViY2xhc3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXh0TmFtZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKi9cbiAgZ2V0SW5zdGFsbFBhdGgoZXh0TmFtZSkge1xuICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5hcHBpdW1Ib21lLCAnbm9kZV9tb2R1bGVzJywgdGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zW2V4dE5hbWVdLnBrZ05hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIGV4dGVuc2lvbiBhbmQgcmV0dXJucyBpdHMgbWFpbiBjbGFzcyAoY29uc3RydWN0b3IpXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZVxuICAgKiBAcmV0dXJucyB7RXh0Q2xhc3M8RXh0VHlwZT59XG4gICAqL1xuICByZXF1aXJlKGV4dE5hbWUpIHtcbiAgICBjb25zdCB7bWFpbkNsYXNzfSA9IHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9uc1tleHROYW1lXTtcbiAgICBjb25zdCByZXFQYXRoID0gdGhpcy5nZXRJbnN0YWxsUGF0aChleHROYW1lKTtcbiAgICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgICBsZXQgcmVxUmVzb2x2ZWQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlcVJlc29sdmVkID0gcmVxdWlyZS5yZXNvbHZlKHJlcVBhdGgpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKGBDb3VsZCBub3QgZmluZCBhICR7dGhpcy5leHRlbnNpb25UeXBlfSBpbnN0YWxsZWQgYXQgJHtyZXFQYXRofWApO1xuICAgIH1cbiAgICAvLyBub3RlOiB0aGlzIHdpbGwgb25seSByZWxvYWQgdGhlIGVudHJ5IHBvaW50XG4gICAgaWYgKHByb2Nlc3MuZW52LkFQUElVTV9SRUxPQURfRVhURU5TSU9OUyAmJiByZXF1aXJlLmNhY2hlW3JlcVJlc29sdmVkXSkge1xuICAgICAgbG9nLmRlYnVnKGBSZW1vdmluZyAke3JlcVJlc29sdmVkfSBmcm9tIHJlcXVpcmUgY2FjaGVgKTtcbiAgICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW3JlcVJlc29sdmVkXTtcbiAgICB9XG4gICAgbG9nLmRlYnVnKGBSZXF1aXJpbmcgJHt0aGlzLmV4dGVuc2lvblR5cGV9IGF0ICR7cmVxUGF0aH1gKTtcbiAgICBjb25zdCBNYWluQ2xhc3MgPSByZXF1aXJlKHJlcVBhdGgpW21haW5DbGFzc107XG4gICAgaWYgKCFNYWluQ2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcbiAgICAgICAgYENvdWxkIG5vdCBmaW5kIGEgY2xhc3MgbmFtZWQgXCIke21haW5DbGFzc31cIiBleHBvcnRlZCBieSAke3RoaXMuZXh0ZW5zaW9uVHlwZX0gXCIke2V4dE5hbWV9XCJgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gTWFpbkNsYXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHROYW1lXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgaXNJbnN0YWxsZWQoZXh0TmFtZSkge1xuICAgIHJldHVybiBfLmluY2x1ZGVzKE9iamVjdC5rZXlzKHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9ucyksIGV4dE5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVuZGVkIHRvIGJlIGNhbGxlZCBieSBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG1ldGhvZHMgb2Ygc3ViY2xhc3MuXG4gICAqIEBwcml2YXRlXG4gICAqIEB0ZW1wbGF0ZSB7RXh0ZW5zaW9uVHlwZX0gRXh0VHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBwaXVtSG9tZVxuICAgKiBAcGFyYW0ge0V4dFR5cGV9IGV4dFR5cGVcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lIC0gRXh0ZW5zaW9uIG5hbWUgKHVuaXF1ZSB0byBpdHMgdHlwZSlcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdFdpdGhTY2hlbWE8RXh0VHlwZT59IGV4dE1hbmlmZXN0IC0gRXh0ZW5zaW9uIGNvbmZpZ1xuICAgKiBAcmV0dXJucyB7aW1wb3J0KCdhanYnKS5TY2hlbWFPYmplY3R8dW5kZWZpbmVkfVxuICAgKi9cbiAgc3RhdGljIF9yZWFkRXh0ZW5zaW9uU2NoZW1hKGFwcGl1bUhvbWUsIGV4dFR5cGUsIGV4dE5hbWUsIGV4dE1hbmlmZXN0KSB7XG4gICAgY29uc3Qge3BrZ05hbWUsIHNjaGVtYTogYXJnU2NoZW1hUGF0aH0gPSBleHRNYW5pZmVzdDtcbiAgICBpZiAoIWFyZ1NjaGVtYVBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgIGBObyBcXGBzY2hlbWFcXGAgcHJvcGVydHkgZm91bmQgaW4gY29uZmlnIGZvciAke2V4dFR5cGV9ICR7cGtnTmFtZX0gLS0gd2h5IGlzIHRoaXMgZnVuY3Rpb24gYmVpbmcgY2FsbGVkP2BcbiAgICAgICk7XG4gICAgfVxuICAgIGxldCBtb2R1bGVPYmplY3Q7XG4gICAgaWYgKF8uaXNTdHJpbmcoYXJnU2NoZW1hUGF0aCkpIHtcbiAgICAgIGNvbnN0IHNjaGVtYVBhdGggPSByZXNvbHZlRnJvbShhcHBpdW1Ib21lLCBwYXRoLmpvaW4ocGtnTmFtZSwgYXJnU2NoZW1hUGF0aCkpO1xuICAgICAgbW9kdWxlT2JqZWN0ID0gcmVxdWlyZShzY2hlbWFQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbW9kdWxlT2JqZWN0ID0gYXJnU2NoZW1hUGF0aDtcbiAgICB9XG4gICAgLy8gdGhpcyBzdWNrcy4gZGVmYXVsdCBleHBvcnRzIHNob3VsZCBiZSBkZXN0cm95ZWRcbiAgICBjb25zdCBzY2hlbWEgPSBtb2R1bGVPYmplY3QuX19lc01vZHVsZSA/IG1vZHVsZU9iamVjdC5kZWZhdWx0IDogbW9kdWxlT2JqZWN0O1xuICAgIHJlZ2lzdGVyU2NoZW1hKGV4dFR5cGUsIGV4dE5hbWUsIHNjaGVtYSk7XG4gICAgcmV0dXJuIHNjaGVtYTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBhIHNwZWNpZmljIHtAbGluayBFeHRNYW5pZmVzdH0gb2JqZWN0IGhhcyBhIGBzY2hlbWFgIHByb3AuXG4gICAqIFRoZSB7QGxpbmsgRXh0TWFuaWZlc3R9IG9iamVjdCBiZWNvbWVzIGEge0BsaW5rIEV4dE1hbmlmZXN0V2l0aFNjaGVtYX0gb2JqZWN0LlxuICAgKiBAdGVtcGxhdGUge0V4dGVuc2lvblR5cGV9IEV4dFR5cGVcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHJldHVybnMge2V4dE1hbmlmZXN0IGlzIEV4dE1hbmlmZXN0V2l0aFNjaGVtYTxFeHRUeXBlPn1cbiAgICovXG4gIHN0YXRpYyBleHREYXRhSGFzU2NoZW1hKGV4dE1hbmlmZXN0KSB7XG4gICAgcmV0dXJuIF8uaXNTdHJpbmcoZXh0TWFuaWZlc3Q/LnNjaGVtYSkgfHwgXy5pc09iamVjdChleHRNYW5pZmVzdD8uc2NoZW1hKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhbiBleHRlbnNpb24gcHJvdmlkZXMgYSBzY2hlbWEsIHRoaXMgd2lsbCBsb2FkIHRoZSBzY2hlbWEgYW5kIGF0dGVtcHQgdG9cbiAgICogcmVnaXN0ZXIgaXQgd2l0aCB0aGUgc2NoZW1hIHJlZ2lzdHJhci5cbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lIC0gTmFtZSBvZiBleHRlbnNpb25cbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdFdpdGhTY2hlbWE8RXh0VHlwZT59IGV4dE1hbmlmZXN0IC0gRXh0ZW5zaW9uIGRhdGFcbiAgICogQHJldHVybnMge2ltcG9ydCgnYWp2JykuU2NoZW1hT2JqZWN0fHVuZGVmaW5lZH1cbiAgICovXG4gIHJlYWRFeHRlbnNpb25TY2hlbWEoZXh0TmFtZSwgZXh0TWFuaWZlc3QpIHtcbiAgICByZXR1cm4gRXh0ZW5zaW9uQ29uZmlnLl9yZWFkRXh0ZW5zaW9uU2NoZW1hKFxuICAgICAgdGhpcy5hcHBpdW1Ib21lLFxuICAgICAgdGhpcy5leHRlbnNpb25UeXBlLFxuICAgICAgZXh0TmFtZSxcbiAgICAgIGV4dE1hbmlmZXN0XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQge0lOU1RBTExfVFlQRV9OUE0sIElOU1RBTExfVFlQRV9HSVQsIElOU1RBTExfVFlQRV9MT0NBTCwgSU5TVEFMTF9UWVBFX0dJVEhVQiwgSU5TVEFMTF9UWVBFU307XG5cbi8qKlxuICogQW4gaXNzdWUgd2l0aCB0aGUge0BsaW5rY29kZSBFeHRNYW5pZmVzdH0gZm9yIGEgcGFydGljdWxhciBleHRlbnNpb24uXG4gKlxuICogVGhlIGV4aXN0YW5jZSBvZiBzdWNoIGFuIG9iamVjdCBpbXBsaWVzIHRoYXQgdGhlIGV4dGVuc2lvbiBjYW5ub3QgYmUgbG9hZGVkLlxuICogQHR5cGVkZWYgRXh0TWFuaWZlc3RQcm9ibGVtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZXJyIC0gRXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHthbnl9IHZhbCAtIEFzc29jaWF0ZWQgdmFsdWVcbiAqL1xuXG4vKipcbiAqIEFuIG9wdGlvbmFsIGxvZ2dpbmcgZnVuY3Rpb24gcHJvdmlkZWQgdG8gYW4ge0BsaW5rIEV4dGVuc2lvbkNvbmZpZ30gc3ViY2xhc3MuXG4gKiBAY2FsbGJhY2sgRXh0ZW5zaW9uTG9nRm5cbiAqIEBwYXJhbSB7Li4uYW55fSBhcmdzXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FeHRlbnNpb25UeXBlfSBFeHRlbnNpb25UeXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL21hbmlmZXN0JykuTWFuaWZlc3R9IE1hbmlmZXN0XG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgVFxuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuRXh0TWFuaWZlc3Q8VD59IEV4dE1hbmlmZXN0XG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgVFxuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuRXh0TWFuaWZlc3RXaXRoU2NoZW1hPFQ+fSBFeHRNYW5pZmVzdFdpdGhTY2hlbWFcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5FeHROYW1lPFQ+fSBFeHROYW1lXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgVFxuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuRXh0Q2xhc3M8VD59IEV4dENsYXNzXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgVFxuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuRXh0UmVjb3JkPFQ+fSBFeHRSZWNvcmRcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9jbGkvZXh0ZW5zaW9uJykuRXh0Q29tbWFuZDxUPn0gRXh0Q29tbWFuZFxuICovXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdmFyaW91cyBtZXRob2RzIGluIHtAbGluayBFeHRlbnNpb25Db25maWd9XG4gKiBAdHlwZWRlZiBFeHRlbnNpb25Db25maWdNdXRhdGlvbk9wdHNcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3dyaXRlPXRydWVdIFdoZXRoZXIgb3Igbm90IHRvIHdyaXRlIHRoZSBtYW5pZmVzdCB0byBkaXNrIGFmdGVyIGEgbXV0YXRpb24gb3BlcmF0aW9uXG4gKi9cblxuLyoqXG4gKiBBIHZhbGlkIGluc3RhbGwgdHlwZVxuICogQHR5cGVkZWYge3R5cGVvZiBJTlNUQUxMX1RZUEVfTlBNIHwgdHlwZW9mIElOU1RBTExfVFlQRV9HSVQgfCB0eXBlb2YgSU5TVEFMTF9UWVBFX0xPQ0FMIHwgdHlwZW9mIElOU1RBTExfVFlQRV9HSVRIVUJ9IEluc3RhbGxUeXBlXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9jbGkvZXh0ZW5zaW9uLWNvbW1hbmQnKS5FeHRlbnNpb25MaXN0RGF0YX0gRXh0ZW5zaW9uTGlzdERhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2NsaS9leHRlbnNpb24tY29tbWFuZCcpLkluc3RhbGxlZEV4dGVuc2lvbkxpc3REYXRhfSBJbnN0YWxsZWRFeHRlbnNpb25MaXN0RGF0YVxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUEsTUFBTUEsZ0JBQWdCLEdBQUcsS0FBekI7O0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsT0FBM0I7O0FBQ0EsTUFB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
|
|
436
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlNUQUxMX1RZUEVfTlBNIiwiSU5TVEFMTF9UWVBFX0xPQ0FMIiwiSU5TVEFMTF9UWVBFX0dJVEhVQiIsIklOU1RBTExfVFlQRV9HSVQiLCJJTlNUQUxMX1RZUEVTIiwiU2V0IiwiRXh0ZW5zaW9uQ29uZmlnIiwiZXh0ZW5zaW9uVHlwZSIsImNvbmZpZ0tleSIsImluc3RhbGxlZEV4dGVuc2lvbnMiLCJsb2ciLCJtYW5pZmVzdCIsIl9saXN0RGF0YUNhY2hlIiwiY29uc3RydWN0b3IiLCJnZXRFeHRlbnNpb25EYXRhIiwibWFuaWZlc3RQYXRoIiwiYXBwaXVtSG9tZSIsImdldFByb2JsZW1zIiwiZXh0TmFtZSIsImV4dE1hbmlmZXN0IiwiZ2V0R2VuZXJpY0NvbmZpZ1Byb2JsZW1zIiwiZ2V0Q29uZmlnUHJvYmxlbXMiLCJnZXRTY2hlbWFQcm9ibGVtcyIsImdldFdhcm5pbmdzIiwiZ2VuZXJpY0NvbmZpZ1dhcm5pbmdzIiwiY29uZmlnV2FybmluZ3MiLCJCIiwiYWxsIiwiZ2V0R2VuZXJpY0NvbmZpZ1dhcm5pbmdzIiwiZ2V0Q29uZmlnV2FybmluZ3MiLCJnZXRWYWxpZGF0aW9uUmVzdWx0U3VtbWFyaWVzIiwiZXJyb3JNYXAiLCJNYXAiLCJ3YXJuaW5nTWFwIiwiZXJyb3JTdW1tYXJpZXMiLCJwcm9ibGVtcyIsImVudHJpZXMiLCJfIiwiaXNFbXB0eSIsInB1c2giLCJ1dGlsIiwicGx1cmFsaXplIiwibGVuZ3RoIiwicHJvYmxlbSIsImVyciIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2YWwiLCJ3YXJuaW5nU3VtbWFyaWVzIiwid2FybmluZ3MiLCJleHRUeXBlVGV4dCIsImNhcGl0YWxpemUiLCJwcm9ibGVtRW51bWVyYXRpb25UZXh0Iiwid2FybmluZyIsIl92YWxpZGF0ZSIsImV4dHMiLCJ0b1BhaXJzIiwiZXJyb3JzIiwic2V0IiwiZXJyb3IiLCJzaXplIiwic3VtbWFyeSIsIndhcm4iLCJnZXRMaXN0RGF0YSIsIkNvbW1hbmRDbGFzcyIsImNvbW1hbmRDbGFzc2VzIiwiY21kIiwiY29uZmlnIiwianNvbiIsImxpc3REYXRhIiwibGlzdCIsInNob3dJbnN0YWxsZWQiLCJzaG93VXBkYXRlcyIsImFwcGl1bVZlcnNpb24iLCJpbnN0YWxsU3BlYyIsImluc3RhbGxUeXBlIiwicGtnTmFtZSIsImludmFsaWRGaWVsZHMiLCJpc1N0cmluZyIsImhhcyIsImludmFsaWRGaWVsZHNFbnVtZXJhdGlvblRleHQiLCJpbnZhbGlkRmllbGRzVGV4dCIsIm1hcCIsImZpZWxkIiwiam9pbiIsImNyZWF0ZVBlZXJXYXJuaW5nIiwicmVhc29uIiwiQVBQSVVNX1ZFUiIsInNhdGlzZmllcyIsImV4dExpc3REYXRhIiwiaW5zdGFsbGVkIiwidXBkYXRlVmVyc2lvbiIsInVwVG9EYXRlIiwic2NoZW1hIiwiYXJnU2NoZW1hUGF0aCIsImV4dERhdGFIYXNTY2hlbWEiLCJpc0FsbG93ZWRTY2hlbWFGaWxlRXh0ZW5zaW9uIiwicmVhZEV4dGVuc2lvblNjaGVtYSIsIm1lc3NhZ2UiLCJBTExPV0VEX1NDSEVNQV9FWFRFTlNJT05TIiwiaXNQbGFpbk9iamVjdCIsInZlcnNpb24iLCJtYWluQ2xhc3MiLCJhZGRFeHRlbnNpb24iLCJ3cml0ZSIsInVwZGF0ZUV4dGVuc2lvbiIsInJlbW92ZUV4dGVuc2lvbiIsInByaW50IiwiYWN0aXZlTmFtZXMiLCJpbmZvIiwiZXh0ZW5zaW9uRGVzYyIsIkVycm9yIiwiZ2V0SW5zdGFsbFBhdGgiLCJwYXRoIiwicmVxdWlyZSIsInJlcVBhdGgiLCJyZXFSZXNvbHZlZCIsInJlc29sdmUiLCJSZWZlcmVuY2VFcnJvciIsInByb2Nlc3MiLCJlbnYiLCJBUFBJVU1fUkVMT0FEX0VYVEVOU0lPTlMiLCJjYWNoZSIsImRlYnVnIiwiTWFpbkNsYXNzIiwiaXNJbnN0YWxsZWQiLCJpbmNsdWRlcyIsIk9iamVjdCIsImtleXMiLCJfcmVhZEV4dGVuc2lvblNjaGVtYSIsImV4dFR5cGUiLCJUeXBlRXJyb3IiLCJtb2R1bGVPYmplY3QiLCJzY2hlbWFQYXRoIiwicmVzb2x2ZUZyb20iLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInJlZ2lzdGVyU2NoZW1hIiwiaXNPYmplY3QiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXh0ZW5zaW9uL2V4dGVuc2lvbi1jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHJlc29sdmVGcm9tIGZyb20gJ3Jlc29sdmUtZnJvbSc7XG5pbXBvcnQge3NhdGlzZmllc30gZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7Y29tbWFuZENsYXNzZXN9IGZyb20gJy4uL2NsaS9leHRlbnNpb24nO1xuaW1wb3J0IHtBUFBJVU1fVkVSfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHtcbiAgQUxMT1dFRF9TQ0hFTUFfRVhURU5TSU9OUyxcbiAgaXNBbGxvd2VkU2NoZW1hRmlsZUV4dGVuc2lvbixcbiAgcmVnaXN0ZXJTY2hlbWEsXG59IGZyb20gJy4uL3NjaGVtYS9zY2hlbWEnO1xuXG5jb25zdCBJTlNUQUxMX1RZUEVfTlBNID0gJ25wbSc7XG5jb25zdCBJTlNUQUxMX1RZUEVfTE9DQUwgPSAnbG9jYWwnO1xuY29uc3QgSU5TVEFMTF9UWVBFX0dJVEhVQiA9ICdnaXRodWInO1xuY29uc3QgSU5TVEFMTF9UWVBFX0dJVCA9ICdnaXQnO1xuXG4vKiogQHR5cGUge1NldDxJbnN0YWxsVHlwZT59ICovXG5jb25zdCBJTlNUQUxMX1RZUEVTID0gbmV3IFNldChbXG4gIElOU1RBTExfVFlQRV9HSVQsXG4gIElOU1RBTExfVFlQRV9HSVRIVUIsXG4gIElOU1RBTExfVFlQRV9MT0NBTCxcbiAgSU5TVEFMTF9UWVBFX05QTSxcbl0pO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgYWJzdHJhY3QuIEl0IHNob3VsZCBub3QgYmUgaW5zdGFudGlhdGVkIGRpcmVjdGx5LlxuICpcbiAqIFN1YmNsYXNzZXMgc2hvdWxkIHByb3ZpZGUgdGhlIGdlbmVyaWMgcGFyYW1ldGVyIHRvIGltcGxlbWVudC5cbiAqIEB0ZW1wbGF0ZSB7RXh0ZW5zaW9uVHlwZX0gRXh0VHlwZVxuICovXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uQ29uZmlnIHtcbiAgLyoqIEB0eXBlIHtFeHRUeXBlfSAqL1xuICBleHRlbnNpb25UeXBlO1xuXG4gIC8qKiBAdHlwZSB7YCR7RXh0VHlwZX1zYH0gKi9cbiAgY29uZmlnS2V5O1xuXG4gIC8qKiBAdHlwZSB7RXh0UmVjb3JkPEV4dFR5cGU+fSAqL1xuICBpbnN0YWxsZWRFeHRlbnNpb25zO1xuXG4gIC8qKiBAdHlwZSB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtTG9nZ2VyfSAqL1xuICBsb2c7XG5cbiAgLyoqIEB0eXBlIHtNYW5pZmVzdH0gKi9cbiAgbWFuaWZlc3Q7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtFeHRlbnNpb25MaXN0RGF0YX1cbiAgICovXG4gIF9saXN0RGF0YUNhY2hlO1xuXG4gIC8qKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBwYXJhbSB7RXh0VHlwZX0gZXh0ZW5zaW9uVHlwZSAtIFR5cGUgb2YgZXh0ZW5zaW9uXG4gICAqIEBwYXJhbSB7TWFuaWZlc3R9IG1hbmlmZXN0IC0gYE1hbmlmZXN0YCBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0b3IoZXh0ZW5zaW9uVHlwZSwgbWFuaWZlc3QpIHtcbiAgICB0aGlzLmV4dGVuc2lvblR5cGUgPSBleHRlbnNpb25UeXBlO1xuICAgIHRoaXMuY29uZmlnS2V5ID0gYCR7ZXh0ZW5zaW9uVHlwZX1zYDtcbiAgICB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnMgPSBtYW5pZmVzdC5nZXRFeHRlbnNpb25EYXRhKGV4dGVuc2lvblR5cGUpO1xuICAgIHRoaXMubWFuaWZlc3QgPSBtYW5pZmVzdDtcbiAgfVxuXG4gIGdldCBtYW5pZmVzdFBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFuaWZlc3QubWFuaWZlc3RQYXRoO1xuICB9XG5cbiAgZ2V0IGFwcGl1bUhvbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFuaWZlc3QuYXBwaXVtSG9tZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBlcnJvcnMgZm9yIGEgZ2l2ZW4gZXh0ZW5zaW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT59IGV4dE5hbWVcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHJldHVybnMge0V4dE1hbmlmZXN0UHJvYmxlbVtdfVxuICAgKi9cbiAgZ2V0UHJvYmxlbXMoZXh0TmFtZSwgZXh0TWFuaWZlc3QpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5nZXRHZW5lcmljQ29uZmlnUHJvYmxlbXMoZXh0TWFuaWZlc3QsIGV4dE5hbWUpLFxuICAgICAgLi4udGhpcy5nZXRDb25maWdQcm9ibGVtcyhleHRNYW5pZmVzdCwgZXh0TmFtZSksXG4gICAgICAuLi50aGlzLmdldFNjaGVtYVByb2JsZW1zKGV4dE1hbmlmZXN0LCBleHROYW1lKSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIHdhcm5pbmdzIGZvciBhIGdpdmVuIGV4dGVuc2lvbi5cbiAgICpcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn1cbiAgICovXG4gIGFzeW5jIGdldFdhcm5pbmdzKGV4dE5hbWUsIGV4dE1hbmlmZXN0KSB7XG4gICAgY29uc3QgW2dlbmVyaWNDb25maWdXYXJuaW5ncywgY29uZmlnV2FybmluZ3NdID0gYXdhaXQgQi5hbGwoW1xuICAgICAgdGhpcy5nZXRHZW5lcmljQ29uZmlnV2FybmluZ3MoZXh0TWFuaWZlc3QsIGV4dE5hbWUpLFxuICAgICAgdGhpcy5nZXRDb25maWdXYXJuaW5ncyhleHRNYW5pZmVzdCwgZXh0TmFtZSksXG4gICAgXSk7XG5cbiAgICByZXR1cm4gWy4uLmdlbmVyaWNDb25maWdXYXJuaW5ncywgLi4uY29uZmlnV2FybmluZ3NdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBsaXN0IG9mIGV4dGVuc2lvbi10eXBlLXNwZWNpZmljIGlzc3Vlcy4gVG8gYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICogQGFic3RyYWN0XG4gICAqIEBwYXJhbSB7RXh0TWFuaWZlc3Q8RXh0VHlwZT59IGV4dE1hbmlmZXN0XG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPn0gZXh0TmFtZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmdbXT59XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMscmVxdWlyZS1hd2FpdFxuICBhc3luYyBnZXRDb25maWdXYXJuaW5ncyhleHRNYW5pZmVzdCwgZXh0TmFtZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge01hcDxFeHROYW1lPEV4dFR5cGU+LEV4dE1hbmlmZXN0UHJvYmxlbVtdPn0gW2Vycm9yTWFwXVxuICAgKiBAcGFyYW0ge01hcDxFeHROYW1lPEV4dFR5cGU+LHN0cmluZ1tdPn0gW3dhcm5pbmdNYXBdXG4gICAqL1xuICBnZXRWYWxpZGF0aW9uUmVzdWx0U3VtbWFyaWVzKGVycm9yTWFwID0gbmV3IE1hcCgpLCB3YXJuaW5nTWFwID0gbmV3IE1hcCgpKSB7XG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgY29tcHV0ZWQgc3RyaW5nc1xuICAgICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICAgKi9cbiAgICBjb25zdCBlcnJvclN1bW1hcmllcyA9IFtdO1xuICAgIGZvciAoY29uc3QgW2V4dE5hbWUsIHByb2JsZW1zXSBvZiBlcnJvck1hcC5lbnRyaWVzKCkpIHtcbiAgICAgIGlmIChfLmlzRW1wdHkocHJvYmxlbXMpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gcmVtb3ZlIHRoaXMgZXh0ZW5zaW9uIGZyb20gdGhlIGxpc3Qgc2luY2UgaXQncyBub3QgdmFsaWRcbiAgICAgIGVycm9yU3VtbWFyaWVzLnB1c2goXG4gICAgICAgIGAke3RoaXMuZXh0ZW5zaW9uVHlwZX0gXCIke2V4dE5hbWV9XCIgaGFkICR7dXRpbC5wbHVyYWxpemUoXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICBwcm9ibGVtcy5sZW5ndGhcbiAgICAgICAgKX0gYW5kIHdpbGwgbm90IGJlIGF2YWlsYWJsZTpgXG4gICAgICApO1xuICAgICAgZm9yIChjb25zdCBwcm9ibGVtIG9mIHByb2JsZW1zKSB7XG4gICAgICAgIGVycm9yU3VtbWFyaWVzLnB1c2goXG4gICAgICAgICAgYCAgLSAke3Byb2JsZW0uZXJyfSAoQWN0dWFsIHZhbHVlOiBgICsgYCR7SlNPTi5zdHJpbmdpZnkocHJvYmxlbS52YWwpfSlgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gICAgY29uc3Qgd2FybmluZ1N1bW1hcmllcyA9IFtdO1xuICAgIGZvciAoY29uc3QgW2V4dE5hbWUsIHdhcm5pbmdzXSBvZiB3YXJuaW5nTWFwLmVudHJpZXMoKSkge1xuICAgICAgaWYgKF8uaXNFbXB0eSh3YXJuaW5ncykpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBleHRUeXBlVGV4dCA9IF8uY2FwaXRhbGl6ZSh0aGlzLmV4dGVuc2lvblR5cGUpO1xuICAgICAgY29uc3QgcHJvYmxlbUVudW1lcmF0aW9uVGV4dCA9IHV0aWwucGx1cmFsaXplKCdwb3RlbnRpYWwgcHJvYmxlbScsIHdhcm5pbmdzLmxlbmd0aCwgdHJ1ZSk7XG4gICAgICB3YXJuaW5nU3VtbWFyaWVzLnB1c2goYCR7ZXh0VHlwZVRleHR9IFwiJHtleHROYW1lfVwiIGhhcyAke3Byb2JsZW1FbnVtZXJhdGlvblRleHR9OiBgKTtcbiAgICAgIGZvciAoY29uc3Qgd2FybmluZyBvZiB3YXJuaW5ncykge1xuICAgICAgICB3YXJuaW5nU3VtbWFyaWVzLnB1c2goYCAgLSAke3dhcm5pbmd9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtlcnJvclN1bW1hcmllcywgd2FybmluZ1N1bW1hcmllc307XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGV4dGVuc2lvbnMgZm9yIHByb2JsZW1zLiAgVG8gYmUgY2FsbGVkIGJ5IHN1YmNsYXNzZXMnIGB2YWxpZGF0ZWAgbWV0aG9kLlxuICAgKlxuICAgKiBFcnJvcnMgYW5kIHdhcm5pbmdzIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBtdXRhdGVzIGBleHRzYC5cbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKiBAcGFyYW0ge0V4dFJlY29yZDxFeHRUeXBlPn0gZXh0cyAtIExvb2t1cCBvZiBleHRlbnNpb24gbmFtZXMgdG8ge0BsaW5rY29kZSBFeHRNYW5pZmVzdH0gb2JqZWN0c1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxFeHRSZWNvcmQ8RXh0VHlwZT4+fSBUaGUgc2FtZSBsb29rdXAsIGJ1dCBwaWNraW5nIG9ubHkgZXJyb3ItZnJlZSBleHRlbnNpb25zXG4gICAqL1xuICBhc3luYyBfdmFsaWRhdGUoZXh0cykge1xuICAgIC8qKlxuICAgICAqIExvb2t1cCBvZiBleHRlbnNpb24gbmFtZXMgdG8ge0BsaW5rY29kZSBFeHRNYW5pZmVzdFByb2JsZW0gRXh0TWFuaWZlc3RQcm9ibGVtc31cbiAgICAgKiBAdHlwZSB7TWFwPEV4dE5hbWU8RXh0VHlwZT4sRXh0TWFuaWZlc3RQcm9ibGVtW10+fVxuICAgICAqL1xuICAgIGNvbnN0IGVycm9yTWFwID0gbmV3IE1hcCgpO1xuICAgIC8qKlxuICAgICAqIExvb2t1cCBvZiBleHRlbnNpb24gbmFtZXMgdG8gd2FybmluZ3MuXG4gICAgICogQHR5cGUge01hcDxFeHROYW1lPEV4dFR5cGU+LHN0cmluZ1tdPn1cbiAgICAgKi9cbiAgICBjb25zdCB3YXJuaW5nTWFwID0gbmV3IE1hcCgpO1xuXG4gICAgZm9yIChjb25zdCBbZXh0TmFtZSwgZXh0TWFuaWZlc3RdIG9mIF8udG9QYWlycyhleHRzKSkge1xuICAgICAgY29uc3QgW2Vycm9ycywgd2FybmluZ3NdID0gYXdhaXQgQi5hbGwoW1xuICAgICAgICB0aGlzLmdldFByb2JsZW1zKGV4dE5hbWUsIGV4dE1hbmlmZXN0KSxcbiAgICAgICAgdGhpcy5nZXRXYXJuaW5ncyhleHROYW1lLCBleHRNYW5pZmVzdCksXG4gICAgICBdKTtcbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSB7XG4gICAgICAgIGRlbGV0ZSBleHRzW2V4dE5hbWVdO1xuICAgICAgfVxuICAgICAgZXJyb3JNYXAuc2V0KGV4dE5hbWUsIGVycm9ycyk7XG4gICAgICB3YXJuaW5nTWFwLnNldChleHROYW1lLCB3YXJuaW5ncyk7XG4gICAgfVxuXG4gICAgY29uc3Qge2Vycm9yU3VtbWFyaWVzLCB3YXJuaW5nU3VtbWFyaWVzfSA9IHRoaXMuZ2V0VmFsaWRhdGlvblJlc3VsdFN1bW1hcmllcyhcbiAgICAgIGVycm9yTWFwLFxuICAgICAgd2FybmluZ01hcFxuICAgICk7XG5cbiAgICBpZiAoIV8uaXNFbXB0eShlcnJvclN1bW1hcmllcykpIHtcbiAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgYEFwcGl1bSBlbmNvdW50ZXJlZCAke3V0aWwucGx1cmFsaXplKCdlcnJvcicsIGVycm9yTWFwLnNpemUsIHRydWUpfSB3aGlsZSB2YWxpZGF0aW5nICR7XG4gICAgICAgICAgdGhpcy5jb25maWdLZXlcbiAgICAgICAgfSBmb3VuZCBpbiBtYW5pZmVzdCAke3RoaXMubWFuaWZlc3RQYXRofWBcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHN1bW1hcnkgb2YgZXJyb3JTdW1tYXJpZXMpIHtcbiAgICAgICAgbG9nLmVycm9yKHN1bW1hcnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvbmx5IGRpc3BsYXkgd2FybmluZ3MgaWYgdGhlcmUgYXJlIG5vIGVycm9ycyFcblxuICAgICAgaWYgKCFfLmlzRW1wdHkod2FybmluZ1N1bW1hcmllcykpIHtcbiAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgYEFwcGl1bSBlbmNvdW50ZXJlZCAke3V0aWwucGx1cmFsaXplKFxuICAgICAgICAgICAgJ3dhcm5pbmcnLFxuICAgICAgICAgICAgd2FybmluZ01hcC5zaXplLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICl9IHdoaWxlIHZhbGlkYXRpbmcgJHt0aGlzLmNvbmZpZ0tleX0gZm91bmQgaW4gbWFuaWZlc3QgJHt0aGlzLm1hbmlmZXN0UGF0aH1gXG4gICAgICAgICk7XG4gICAgICAgIGZvciAoY29uc3Qgc3VtbWFyeSBvZiB3YXJuaW5nU3VtbWFyaWVzKSB7XG4gICAgICAgICAgbG9nLndhcm4oc3VtbWFyeSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV4dHM7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGxpc3RpbmcgZGF0YSBmb3IgZXh0ZW5zaW9ucyB2aWEgY29tbWFuZCBjbGFzcy5cbiAgICogQ2FjaGVzIHRoZSByZXN1bHQgaW4ge0BsaW5rY29kZSBFeHRlbnNpb25Db25maWcuX2xpc3REYXRhQ2FjaGV9XG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHJldHVybnMge1Byb21pc2U8RXh0ZW5zaW9uTGlzdERhdGE+fVxuICAgKi9cbiAgYXN5bmMgZ2V0TGlzdERhdGEoKSB7XG4gICAgaWYgKHRoaXMuX2xpc3REYXRhQ2FjaGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9saXN0RGF0YUNhY2hlO1xuICAgIH1cbiAgICBjb25zdCBDb21tYW5kQ2xhc3MgPSAvKiogQHR5cGUge0V4dENvbW1hbmQ8RXh0VHlwZT59ICovIChjb21tYW5kQ2xhc3Nlc1t0aGlzLmV4dGVuc2lvblR5cGVdKTtcbiAgICBjb25zdCBjbWQgPSBuZXcgQ29tbWFuZENsYXNzKHtjb25maWc6IHRoaXMsIGpzb246IHRydWV9KTtcbiAgICBjb25zdCBsaXN0RGF0YSA9IGF3YWl0IGNtZC5saXN0KHtzaG93SW5zdGFsbGVkOiB0cnVlLCBzaG93VXBkYXRlczogdHJ1ZX0pO1xuICAgIHRoaXMuX2xpc3REYXRhQ2FjaGUgPSBsaXN0RGF0YTtcbiAgICByZXR1cm4gbGlzdERhdGE7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2Ygd2FybmluZ3MgZm9yIGEgcGFydGljdWxhciBleHRlbnNpb24uXG4gICAqXG4gICAqIEJ5IGRlZmluaXRpb24sIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygd2FybmluZ3MgZG9lcyBfbm90XyBpbXBseSB0aGUgZXh0ZW5zaW9uIGNhbm5vdCBiZSBsb2FkZWQsXG4gICAqIGJ1dCBpdCBtYXkgbm90IHdvcmsgYXMgZXhwZWN0ZWQgb3Igb3RoZXJ3aXNlIHRocm93IGFuIGV4Y2VwdGlvbiBhdCBydW50aW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge0V4dE1hbmlmZXN0PEV4dFR5cGU+fSBleHRNYW5pZmVzdFxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT59IGV4dE5hbWVcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fVxuICAgKi9cbiAgYXN5bmMgZ2V0R2VuZXJpY0NvbmZpZ1dhcm5pbmdzKGV4dE1hbmlmZXN0LCBleHROYW1lKSB7XG4gICAgY29uc3Qge2FwcGl1bVZlcnNpb24sIGluc3RhbGxTcGVjLCBpbnN0YWxsVHlwZSwgcGtnTmFtZX0gPSBleHRNYW5pZmVzdDtcbiAgICBjb25zdCB3YXJuaW5ncyA9IFtdO1xuXG4gICAgY29uc3QgaW52YWxpZEZpZWxkcyA9IFtdO1xuICAgIGlmICghXy5pc1N0cmluZyhpbnN0YWxsU3BlYykpIHtcbiAgICAgIGludmFsaWRGaWVsZHMucHVzaCgnaW5zdGFsbFNwZWMnKTtcbiAgICB9XG5cbiAgICBpZiAoIUlOU1RBTExfVFlQRVMuaGFzKGluc3RhbGxUeXBlKSkge1xuICAgICAgaW52YWxpZEZpZWxkcy5wdXNoKCdpbnN0YWxsVHlwZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dFR5cGVUZXh0ID0gXy5jYXBpdGFsaXplKHRoaXMuZXh0ZW5zaW9uVHlwZSk7XG5cbiAgICBpZiAoaW52YWxpZEZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGludmFsaWRGaWVsZHNFbnVtZXJhdGlvblRleHQgPSB1dGlsLnBsdXJhbGl6ZShcbiAgICAgICAgJ2ludmFsaWQgb3IgbWlzc2luZyBmaWVsZCcsXG4gICAgICAgIGludmFsaWRGaWVsZHMubGVuZ3RoLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgICAgY29uc3QgaW52YWxpZEZpZWxkc1RleHQgPSBpbnZhbGlkRmllbGRzLm1hcCgoZmllbGQpID0+IGBcIiR7ZmllbGR9XCJgKS5qb2luKCcsICcpO1xuXG4gICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICBgJHtleHRUeXBlVGV4dH0gXCIke2V4dE5hbWV9XCIgKHBhY2thZ2UgXFxgJHtwa2dOYW1lfVxcYCkgaGFzICR7aW52YWxpZEZpZWxkc0VudW1lcmF0aW9uVGV4dH0gKCR7aW52YWxpZEZpZWxkc1RleHR9KSBpbiBcXGBleHRlbnNpb25zLnlhbWxcXGA7IHRoaXMgbWF5IGNhdXNlIHVwZ3JhZGVzIGRvbmUgdmlhIHRoZSBcXGBhcHBpdW1cXGAgQ0xJIHRvb2wgdG8gZmFpbC4gUGxlYXNlIHJlaW5zdGFsbCB3aXRoIFxcYGFwcGl1bSAke3RoaXMuZXh0ZW5zaW9uVHlwZX0gdW5pbnN0YWxsICR7ZXh0TmFtZX1cXGAgYW5kIFxcYGFwcGl1bSAke3RoaXMuZXh0ZW5zaW9uVHlwZX0gaW5zdGFsbCAke2V4dE5hbWV9XFxgIHRvIGF0dGVtcHQgYSBmaXguYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIZWxwcyBjb25jYXRlbmF0ZSB3YXJuaW5nIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gcGVlciBkZXBlbmRlbmNpZXNcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVhc29uXG4gICAgICogQHJldHVybnMgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgY3JlYXRlUGVlcldhcm5pbmcgPSAocmVhc29uKSA9PlxuICAgICAgYCR7ZXh0VHlwZVRleHR9IFwiJHtleHROYW1lfVwiIChwYWNrYWdlIFxcYCR7cGtnTmFtZX1cXGApIG1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIEFwcGl1bSAodiR7QVBQSVVNX1ZFUn0pIGR1ZSB0byAke3JlYXNvbn1gO1xuXG4gICAgaWYgKF8uaXNTdHJpbmcoYXBwaXVtVmVyc2lvbikgJiYgIXNhdGlzZmllcyhBUFBJVU1fVkVSLCBhcHBpdW1WZXJzaW9uKSkge1xuICAgICAgY29uc3QgbGlzdERhdGEgPSBhd2FpdCB0aGlzLmdldExpc3REYXRhKCk7XG4gICAgICBjb25zdCBleHRMaXN0RGF0YSA9IC8qKiBAdHlwZSB7SW5zdGFsbGVkRXh0ZW5zaW9uTGlzdERhdGF9ICovIChsaXN0RGF0YVtleHROYW1lXSk7XG4gICAgICBpZiAoZXh0TGlzdERhdGE/Lmluc3RhbGxlZCkge1xuICAgICAgICBjb25zdCB7dXBkYXRlVmVyc2lvbiwgdXBUb0RhdGV9ID0gZXh0TGlzdERhdGE7XG4gICAgICAgIGlmICghdXBUb0RhdGUpIHtcbiAgICAgICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICAgICAgY3JlYXRlUGVlcldhcm5pbmcoXG4gICAgICAgICAgICAgIGBpdHMgcGVlciBkZXBlbmRlbmN5IG9uIG9sZGVyIEFwcGl1bSB2JHthcHBpdW1WZXJzaW9ufS4gUGxlYXNlIHVwZ3JhZGUgXFxgJHtwa2dOYW1lfVxcYCB0byB2JHt1cGRhdGVWZXJzaW9ufSBvciBuZXdlci5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICAgICAgY3JlYXRlUGVlcldhcm5pbmcoXG4gICAgICAgICAgICAgIGBpdHMgcGVlciBkZXBlbmRlbmN5IG9uIG9sZGVyIEFwcGl1bSB2JHthcHBpdW1WZXJzaW9ufS4gUGxlYXNlIGFzayB0aGUgZGV2ZWxvcGVyIG9mIFxcYCR7cGtnTmFtZX1cXGAgdG8gdXBkYXRlIHRoZSBwZWVyIGRlcGVuZGVuY3kgb24gQXBwaXVtIHRvIHYke0FQUElVTV9WRVJ9LmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghXy5pc1N0cmluZyhhcHBpdW1WZXJzaW9uKSkge1xuICAgICAgY29uc3QgbGlzdERhdGEgPSBhd2FpdCB0aGlzLmdldExpc3REYXRhKCk7XG4gICAgICBjb25zdCBleHRMaXN0RGF0YSA9IC8qKiBAdHlwZSB7SW5zdGFsbGVkRXh0ZW5zaW9uTGlzdERhdGF9ICovIChsaXN0RGF0YVtleHROYW1lXSk7XG4gICAgICBpZiAoIWV4dExpc3REYXRhPy51cFRvRGF0ZSAmJiBleHRMaXN0RGF0YT8udXBkYXRlVmVyc2lvbikge1xuICAgICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICAgIGNyZWF0ZVBlZXJXYXJuaW5nKFxuICAgICAgICAgICAgYGFuIGludmFsaWQgb3IgbWlzc2luZyBwZWVyIGRlcGVuZGVuY3kgb24gQXBwaXVtLiBBIG5ld2VyIHZlcnNpb24gb2YgXFxgJHtwa2dOYW1lfVxcYCBpcyBhdmFpbGFibGU7IHBsZWFzZSBhdHRlbXB0IHRvIHVwZ3JhZGUgXCIke2V4dE5hbWV9XCIgdG8gdiR7ZXh0TGlzdERhdGEudXBkYXRlVmVyc2lvbn0gb3IgbmV3ZXIuYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5pbmdzLnB1c2goXG4gICAgICAgICAgY3JlYXRlUGVlcldhcm5pbmcoXG4gICAgICAgICAgICBgYW4gaW52YWxpZCBvciBtaXNzaW5nIHBlZXIgZGVwZW5kZW5jeSBvbiBBcHBpdW0uIFBsZWFzZSBhc2sgdGhlIGRldmVsb3BlciBvZiBcXGAke3BrZ05hbWV9XFxgIHRvIGFkZCBhIHBlZXIgZGVwZW5kZW5jeSBvbiBcXGBeYXBwaXVtQCR7QVBQSVVNX1ZFUn1cXGAuYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHdhcm5pbmdzO1xuICB9XG4gIC8qKlxuICAgKiBSZXR1cm5zIGxpc3Qgb2YgdW5yZWNvdmVyYWJsZSBlcnJvcnMgKGlmIGFueSkgZm9yIHRoZSBnaXZlbiBleHRlbnNpb24gX2lmXyBpdCBoYXMgYSBgc2NoZW1hYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3QgLSBFeHRlbnNpb24gZGF0YSAoZnJvbSBtYW5pZmVzdClcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lIC0gRXh0ZW5zaW9uIG5hbWUgKGZyb20gbWFuaWZlc3QpXG4gICAqIEByZXR1cm5zIHtFeHRNYW5pZmVzdFByb2JsZW1bXX1cbiAgICovXG4gIGdldFNjaGVtYVByb2JsZW1zKGV4dE1hbmlmZXN0LCBleHROYW1lKSB7XG4gICAgLyoqIEB0eXBlIHtFeHRNYW5pZmVzdFByb2JsZW1bXX0gKi9cbiAgICBjb25zdCBwcm9ibGVtcyA9IFtdO1xuICAgIGNvbnN0IHtzY2hlbWE6IGFyZ1NjaGVtYVBhdGh9ID0gZXh0TWFuaWZlc3Q7XG4gICAgaWYgKEV4dGVuc2lvbkNvbmZpZy5leHREYXRhSGFzU2NoZW1hKGV4dE1hbmlmZXN0KSkge1xuICAgICAgaWYgKF8uaXNTdHJpbmcoYXJnU2NoZW1hUGF0aCkpIHtcbiAgICAgICAgaWYgKGlzQWxsb3dlZFNjaGVtYUZpbGVFeHRlbnNpb24oYXJnU2NoZW1hUGF0aCkpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5yZWFkRXh0ZW5zaW9uU2NoZW1hKGV4dE5hbWUsIGV4dE1hbmlmZXN0KTtcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICAgICAgICBlcnI6IGBVbmFibGUgdG8gcmVnaXN0ZXIgc2NoZW1hIGF0IHBhdGggJHthcmdTY2hlbWFQYXRofTsgJHtlcnIubWVzc2FnZX1gLFxuICAgICAgICAgICAgICB2YWw6IGFyZ1NjaGVtYVBhdGgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgICAgICBlcnI6IGBTY2hlbWEgZmlsZSBoYXMgdW5zdXBwb3J0ZWQgZXh0ZW5zaW9uLiBBbGxvd2VkOiAke1tcbiAgICAgICAgICAgICAgLi4uQUxMT1dFRF9TQ0hFTUFfRVhURU5TSU9OUyxcbiAgICAgICAgICAgIF0uam9pbignLCAnKX1gLFxuICAgICAgICAgICAgdmFsOiBhcmdTY2hlbWFQYXRoLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKF8uaXNQbGFpbk9iamVjdChhcmdTY2hlbWFQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMucmVhZEV4dGVuc2lvblNjaGVtYShleHROYW1lLCBleHRNYW5pZmVzdCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICAgICAgZXJyOiBgVW5hYmxlIHRvIHJlZ2lzdGVyIGVtYmVkZGVkIHNjaGVtYTsgJHtlcnIubWVzc2FnZX1gLFxuICAgICAgICAgICAgdmFsOiBhcmdTY2hlbWFQYXRoLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9ibGVtcy5wdXNoKHtcbiAgICAgICAgICBlcnI6ICdJbmNvcnJlY3RseSBmb3JtYXR0ZWQgc2NoZW1hIGZpZWxkOyBtdXN0IGJlIGEgcGF0aCB0byBhIHNjaGVtYSBmaWxlIG9yIGEgc2NoZW1hIG9iamVjdC4nLFxuICAgICAgICAgIHZhbDogYXJnU2NoZW1hUGF0aCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9ibGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBsaXN0IG9mIGdlbmVyaWMgdW5yZWNvdmVyYWJsZSBlcnJvcnMgZm9yIHRoZSBnaXZlbiBleHRlbnNpb25cbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3QgLSBFeHRlbnNpb24gZGF0YSAoZnJvbSBtYW5pZmVzdClcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lIC0gRXh0ZW5zaW9uIG5hbWUgKGZyb20gbWFuaWZlc3QpXG4gICAqIEByZXR1cm5zIHtFeHRNYW5pZmVzdFByb2JsZW1bXX1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBnZXRHZW5lcmljQ29uZmlnUHJvYmxlbXMoZXh0TWFuaWZlc3QsIGV4dE5hbWUpIHtcbiAgICBjb25zdCB7dmVyc2lvbiwgcGtnTmFtZSwgbWFpbkNsYXNzfSA9IGV4dE1hbmlmZXN0O1xuICAgIGNvbnN0IHByb2JsZW1zID0gW107XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcodmVyc2lvbikpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICBlcnI6IGBJbnZhbGlkIG9yIG1pc3NpbmcgXFxgdmVyc2lvblxcYCBmaWVsZCBpbiBteSBcXGBwYWNrYWdlLmpzb25cXGAgYW5kL29yIFxcYGV4dGVuc2lvbnMueWFtbFxcYCAobXVzdCBiZSBhIHN0cmluZylgLFxuICAgICAgICB2YWw6IHZlcnNpb24sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcocGtnTmFtZSkpIHtcbiAgICAgIHByb2JsZW1zLnB1c2goe1xuICAgICAgICBlcnI6IGBJbnZhbGlkIG9yIG1pc3NpbmcgXFxgbmFtZVxcYCBmaWVsZCBpbiBteSBcXGBwYWNrYWdlLmpzb25cXGAgYW5kL29yIFxcYGV4dGVuc2lvbnMueWFtbFxcYCAobXVzdCBiZSBhIHN0cmluZylgLFxuICAgICAgICB2YWw6IHBrZ05hbWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaXNTdHJpbmcobWFpbkNsYXNzKSkge1xuICAgICAgcHJvYmxlbXMucHVzaCh7XG4gICAgICAgIGVycjogYEludmFsaWQgb3IgbWlzc2luZyBcXGBhcHBpdW0ubWFpbkNsYXNzXFxgIGZpZWxkIGluIG15IFxcYHBhY2thZ2UuanNvblxcYCBhbmQvb3IgXFxgbWFpbkNsYXNzXFxgIGZpZWxkIGluIFxcYGV4dGVuc2lvbnMueWFtbFxcYCAobXVzdCBiZSBhIHN0cmluZylgLFxuICAgICAgICB2YWw6IG1haW5DbGFzcyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9ibGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAYWJzdHJhY3RcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEByZXR1cm5zIHtFeHRNYW5pZmVzdFByb2JsZW1bXX1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBnZXRDb25maWdQcm9ibGVtcyhleHRNYW5pZmVzdCwgZXh0TmFtZSkge1xuICAgIC8vIHNob3VkIG92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHNwZWNpYWwgdmFsaWRhdGlvbiBpcyBuZWNlc3NhcnkgZm9yIHRoaXMgZXh0ZW5zaW9uIHR5cGVcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dE5hbWVcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHBhcmFtIHtFeHRlbnNpb25Db25maWdNdXRhdGlvbk9wdHN9IFtvcHRzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGFkZEV4dGVuc2lvbihleHROYW1lLCBleHRNYW5pZmVzdCwge3dyaXRlID0gdHJ1ZX0gPSB7fSkge1xuICAgIHRoaXMubWFuaWZlc3QuYWRkRXh0ZW5zaW9uKHRoaXMuZXh0ZW5zaW9uVHlwZSwgZXh0TmFtZSwgZXh0TWFuaWZlc3QpO1xuICAgIGlmICh3cml0ZSkge1xuICAgICAgYXdhaXQgdGhpcy5tYW5pZmVzdC53cml0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT59IGV4dE5hbWVcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPnxpbXBvcnQoJy4uL2NsaS9leHRlbnNpb24tY29tbWFuZCcpLkV4dGVuc2lvbkZpZWxkczxFeHRUeXBlPn0gZXh0TWFuaWZlc3RcbiAgICogQHBhcmFtIHtFeHRlbnNpb25Db25maWdNdXRhdGlvbk9wdHN9IFtvcHRzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIHVwZGF0ZUV4dGVuc2lvbihleHROYW1lLCBleHRNYW5pZmVzdCwge3dyaXRlID0gdHJ1ZX0gPSB7fSkge1xuICAgIHRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9uc1tleHROYW1lXSA9IHtcbiAgICAgIC4uLnRoaXMuaW5zdGFsbGVkRXh0ZW5zaW9uc1tleHROYW1lXSxcbiAgICAgIC4uLmV4dE1hbmlmZXN0LFxuICAgIH07XG4gICAgaWYgKHdyaXRlKSB7XG4gICAgICBhd2FpdCB0aGlzLm1hbmlmZXN0LndyaXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBleHRlbnNpb24gZnJvbSB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgZXh0ZW5zaW9ucywgYW5kIG9wdGlvbmFsbHkgYXZvaWQgYSB3cml0ZSB0byB0aGUgbWFuaWZlc3QgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEBwYXJhbSB7RXh0ZW5zaW9uQ29uZmlnTXV0YXRpb25PcHRzfSBbb3B0c11cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZW1vdmVFeHRlbnNpb24oZXh0TmFtZSwge3dyaXRlID0gdHJ1ZX0gPSB7fSkge1xuICAgIGRlbGV0ZSB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNbZXh0TmFtZV07XG4gICAgaWYgKHdyaXRlKSB7XG4gICAgICBhd2FpdCB0aGlzLm1hbmlmZXN0LndyaXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7RXh0TmFtZTxFeHRUeXBlPltdfSBbYWN0aXZlTmFtZXNdXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIHByaW50KGFjdGl2ZU5hbWVzKSB7XG4gICAgaWYgKF8uaXNFbXB0eSh0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnMpKSB7XG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYE5vICR7dGhpcy5jb25maWdLZXl9IGhhdmUgYmVlbiBpbnN0YWxsZWQgaW4gJHt0aGlzLmFwcGl1bUhvbWV9LiBVc2UgdGhlIFwiYXBwaXVtICR7dGhpcy5leHRlbnNpb25UeXBlfVwiIGAgK1xuICAgICAgICAgICdjb21tYW5kIHRvIGluc3RhbGwgdGhlIG9uZShzKSB5b3Ugd2FudCB0byB1c2UuJ1xuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2cuaW5mbyhgQXZhaWxhYmxlICR7dGhpcy5jb25maWdLZXl9OmApO1xuICAgIGZvciAoY29uc3QgW2V4dE5hbWUsIGV4dE1hbmlmZXN0XSBvZiAvKiogQHR5cGUge1tzdHJpbmcsIEV4dE1hbmlmZXN0PEV4dFR5cGU+XVtdfSAqLyAoXG4gICAgICBfLnRvUGFpcnModGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKVxuICAgICkpIHtcbiAgICAgIGxvZy5pbmZvKGAgIC0gJHt0aGlzLmV4dGVuc2lvbkRlc2MoZXh0TmFtZSwgZXh0TWFuaWZlc3QpfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGV4dGVuc2lvbi4gU3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudC5cbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICogQHBhcmFtIHtFeHRNYW5pZmVzdDxFeHRUeXBlPn0gZXh0TWFuaWZlc3QgLSBFeHRlbnNpb24gZGF0YVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgKiBAYWJzdHJhY3RcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBleHRlbnNpb25EZXNjKGV4dE5hbWUsIGV4dE1hbmlmZXN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIG11c3QgYmUgaW1wbGVtZW50ZWQgaW4gYSBzdWJjbGFzcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHROYW1lXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICBnZXRJbnN0YWxsUGF0aChleHROYW1lKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmFwcGl1bUhvbWUsICdub2RlX21vZHVsZXMnLCB0aGlzLmluc3RhbGxlZEV4dGVuc2lvbnNbZXh0TmFtZV0ucGtnTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgZXh0ZW5zaW9uIGFuZCByZXR1cm5zIGl0cyBtYWluIGNsYXNzIChjb25zdHJ1Y3RvcilcbiAgICogQHBhcmFtIHtFeHROYW1lPEV4dFR5cGU+fSBleHROYW1lXG4gICAqIEByZXR1cm5zIHtFeHRDbGFzczxFeHRUeXBlPn1cbiAgICovXG4gIHJlcXVpcmUoZXh0TmFtZSkge1xuICAgIGNvbnN0IHttYWluQ2xhc3N9ID0gdGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zW2V4dE5hbWVdO1xuICAgIGNvbnN0IHJlcVBhdGggPSB0aGlzLmdldEluc3RhbGxQYXRoKGV4dE5hbWUpO1xuICAgIC8qKiBAdHlwZSB7c3RyaW5nfSAqL1xuICAgIGxldCByZXFSZXNvbHZlZDtcbiAgICB0cnkge1xuICAgICAgcmVxUmVzb2x2ZWQgPSByZXF1aXJlLnJlc29sdmUocmVxUGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoYENvdWxkIG5vdCBmaW5kIGEgJHt0aGlzLmV4dGVuc2lvblR5cGV9IGluc3RhbGxlZCBhdCAke3JlcVBhdGh9YCk7XG4gICAgfVxuICAgIC8vIG5vdGU6IHRoaXMgd2lsbCBvbmx5IHJlbG9hZCB0aGUgZW50cnkgcG9pbnRcbiAgICBpZiAocHJvY2Vzcy5lbnYuQVBQSVVNX1JFTE9BRF9FWFRFTlNJT05TICYmIHJlcXVpcmUuY2FjaGVbcmVxUmVzb2x2ZWRdKSB7XG4gICAgICBsb2cuZGVidWcoYFJlbW92aW5nICR7cmVxUmVzb2x2ZWR9IGZyb20gcmVxdWlyZSBjYWNoZWApO1xuICAgICAgZGVsZXRlIHJlcXVpcmUuY2FjaGVbcmVxUmVzb2x2ZWRdO1xuICAgIH1cbiAgICBsb2cuZGVidWcoYFJlcXVpcmluZyAke3RoaXMuZXh0ZW5zaW9uVHlwZX0gYXQgJHtyZXFQYXRofWApO1xuICAgIGNvbnN0IE1haW5DbGFzcyA9IHJlcXVpcmUocmVxUGF0aClbbWFpbkNsYXNzXTtcbiAgICBpZiAoIU1haW5DbGFzcykge1xuICAgICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFxuICAgICAgICBgQ291bGQgbm90IGZpbmQgYSBjbGFzcyBuYW1lZCBcIiR7bWFpbkNsYXNzfVwiIGV4cG9ydGVkIGJ5ICR7dGhpcy5leHRlbnNpb25UeXBlfSBcIiR7ZXh0TmFtZX1cImBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBNYWluQ2xhc3M7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dE5hbWVcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBpc0luc3RhbGxlZChleHROYW1lKSB7XG4gICAgcmV0dXJuIF8uaW5jbHVkZXMoT2JqZWN0LmtleXModGhpcy5pbnN0YWxsZWRFeHRlbnNpb25zKSwgZXh0TmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZW5kZWQgdG8gYmUgY2FsbGVkIGJ5IGNvcnJlc3BvbmRpbmcgaW5zdGFuY2UgbWV0aG9kcyBvZiBzdWJjbGFzcy5cbiAgICogQHByaXZhdGVcbiAgICogQHRlbXBsYXRlIHtFeHRlbnNpb25UeXBlfSBFeHRUeXBlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lXG4gICAqIEBwYXJhbSB7RXh0VHlwZX0gZXh0VHlwZVxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT59IGV4dE5hbWUgLSBFeHRlbnNpb24gbmFtZSAodW5pcXVlIHRvIGl0cyB0eXBlKVxuICAgKiBAcGFyYW0ge0V4dE1hbmlmZXN0V2l0aFNjaGVtYTxFeHRUeXBlPn0gZXh0TWFuaWZlc3QgLSBFeHRlbnNpb24gY29uZmlnXG4gICAqIEByZXR1cm5zIHtpbXBvcnQoJ2FqdicpLlNjaGVtYU9iamVjdHx1bmRlZmluZWR9XG4gICAqL1xuICBzdGF0aWMgX3JlYWRFeHRlbnNpb25TY2hlbWEoYXBwaXVtSG9tZSwgZXh0VHlwZSwgZXh0TmFtZSwgZXh0TWFuaWZlc3QpIHtcbiAgICBjb25zdCB7cGtnTmFtZSwgc2NoZW1hOiBhcmdTY2hlbWFQYXRofSA9IGV4dE1hbmlmZXN0O1xuICAgIGlmICghYXJnU2NoZW1hUGF0aCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgYE5vIFxcYHNjaGVtYVxcYCBwcm9wZXJ0eSBmb3VuZCBpbiBjb25maWcgZm9yICR7ZXh0VHlwZX0gJHtwa2dOYW1lfSAtLSB3aHkgaXMgdGhpcyBmdW5jdGlvbiBiZWluZyBjYWxsZWQ/YFxuICAgICAgKTtcbiAgICB9XG4gICAgbGV0IG1vZHVsZU9iamVjdDtcbiAgICBpZiAoXy5pc1N0cmluZyhhcmdTY2hlbWFQYXRoKSkge1xuICAgICAgY29uc3Qgc2NoZW1hUGF0aCA9IHJlc29sdmVGcm9tKGFwcGl1bUhvbWUsIHBhdGguam9pbihwa2dOYW1lLCBhcmdTY2hlbWFQYXRoKSk7XG4gICAgICBtb2R1bGVPYmplY3QgPSByZXF1aXJlKHNjaGVtYVBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBtb2R1bGVPYmplY3QgPSBhcmdTY2hlbWFQYXRoO1xuICAgIH1cbiAgICAvLyB0aGlzIHN1Y2tzLiBkZWZhdWx0IGV4cG9ydHMgc2hvdWxkIGJlIGRlc3Ryb3llZFxuICAgIGNvbnN0IHNjaGVtYSA9IG1vZHVsZU9iamVjdC5fX2VzTW9kdWxlID8gbW9kdWxlT2JqZWN0LmRlZmF1bHQgOiBtb2R1bGVPYmplY3Q7XG4gICAgcmVnaXN0ZXJTY2hlbWEoZXh0VHlwZSwgZXh0TmFtZSwgc2NoZW1hKTtcbiAgICByZXR1cm4gc2NoZW1hO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYHRydWVgIGlmIGEgc3BlY2lmaWMge0BsaW5rIEV4dE1hbmlmZXN0fSBvYmplY3QgaGFzIGEgYHNjaGVtYWAgcHJvcC5cbiAgICogVGhlIHtAbGluayBFeHRNYW5pZmVzdH0gb2JqZWN0IGJlY29tZXMgYSB7QGxpbmsgRXh0TWFuaWZlc3RXaXRoU2NoZW1hfSBvYmplY3QuXG4gICAqIEB0ZW1wbGF0ZSB7RXh0ZW5zaW9uVHlwZX0gRXh0VHlwZVxuICAgKiBAcGFyYW0ge0V4dE1hbmlmZXN0PEV4dFR5cGU+fSBleHRNYW5pZmVzdFxuICAgKiBAcmV0dXJucyB7ZXh0TWFuaWZlc3QgaXMgRXh0TWFuaWZlc3RXaXRoU2NoZW1hPEV4dFR5cGU+fVxuICAgKi9cbiAgc3RhdGljIGV4dERhdGFIYXNTY2hlbWEoZXh0TWFuaWZlc3QpIHtcbiAgICByZXR1cm4gXy5pc1N0cmluZyhleHRNYW5pZmVzdD8uc2NoZW1hKSB8fCBfLmlzT2JqZWN0KGV4dE1hbmlmZXN0Py5zY2hlbWEpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIGFuIGV4dGVuc2lvbiBwcm92aWRlcyBhIHNjaGVtYSwgdGhpcyB3aWxsIGxvYWQgdGhlIHNjaGVtYSBhbmQgYXR0ZW1wdCB0b1xuICAgKiByZWdpc3RlciBpdCB3aXRoIHRoZSBzY2hlbWEgcmVnaXN0cmFyLlxuICAgKiBAcGFyYW0ge0V4dE5hbWU8RXh0VHlwZT59IGV4dE5hbWUgLSBOYW1lIG9mIGV4dGVuc2lvblxuICAgKiBAcGFyYW0ge0V4dE1hbmlmZXN0V2l0aFNjaGVtYTxFeHRUeXBlPn0gZXh0TWFuaWZlc3QgLSBFeHRlbnNpb24gZGF0YVxuICAgKiBAcmV0dXJucyB7aW1wb3J0KCdhanYnKS5TY2hlbWFPYmplY3R8dW5kZWZpbmVkfVxuICAgKi9cbiAgcmVhZEV4dGVuc2lvblNjaGVtYShleHROYW1lLCBleHRNYW5pZmVzdCkge1xuICAgIHJldHVybiBFeHRlbnNpb25Db25maWcuX3JlYWRFeHRlbnNpb25TY2hlbWEoXG4gICAgICB0aGlzLmFwcGl1bUhvbWUsXG4gICAgICB0aGlzLmV4dGVuc2lvblR5cGUsXG4gICAgICBleHROYW1lLFxuICAgICAgZXh0TWFuaWZlc3RcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7SU5TVEFMTF9UWVBFX05QTSwgSU5TVEFMTF9UWVBFX0dJVCwgSU5TVEFMTF9UWVBFX0xPQ0FMLCBJTlNUQUxMX1RZUEVfR0lUSFVCLCBJTlNUQUxMX1RZUEVTfTtcblxuLyoqXG4gKiBBbiBpc3N1ZSB3aXRoIHRoZSB7QGxpbmtjb2RlIEV4dE1hbmlmZXN0fSBmb3IgYSBwYXJ0aWN1bGFyIGV4dGVuc2lvbi5cbiAqXG4gKiBUaGUgZXhpc3RhbmNlIG9mIHN1Y2ggYW4gb2JqZWN0IGltcGxpZXMgdGhhdCB0aGUgZXh0ZW5zaW9uIGNhbm5vdCBiZSBsb2FkZWQuXG4gKiBAdHlwZWRlZiBFeHRNYW5pZmVzdFByb2JsZW1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBlcnIgLSBFcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge2FueX0gdmFsIC0gQXNzb2NpYXRlZCB2YWx1ZVxuICovXG5cbi8qKlxuICogQW4gb3B0aW9uYWwgbG9nZ2luZyBmdW5jdGlvbiBwcm92aWRlZCB0byBhbiB7QGxpbmsgRXh0ZW5zaW9uQ29uZmlnfSBzdWJjbGFzcy5cbiAqIEBjYWxsYmFjayBFeHRlbnNpb25Mb2dGblxuICogQHBhcmFtIHsuLi5hbnl9IGFyZ3NcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV4dGVuc2lvblR5cGV9IEV4dGVuc2lvblR5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vbWFuaWZlc3QnKS5NYW5pZmVzdH0gTWFuaWZlc3RcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5FeHRNYW5pZmVzdDxUPn0gRXh0TWFuaWZlc3RcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5FeHRNYW5pZmVzdFdpdGhTY2hlbWE8VD59IEV4dE1hbmlmZXN0V2l0aFNjaGVtYVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkV4dE5hbWU8VD59IEV4dE5hbWVcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5FeHRDbGFzczxUPn0gRXh0Q2xhc3NcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhcHBpdW0vdHlwZXMnKS5FeHRSZWNvcmQ8VD59IEV4dFJlY29yZFxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2NsaS9leHRlbnNpb24nKS5FeHRDb21tYW5kPFQ+fSBFeHRDb21tYW5kXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciB2YXJpb3VzIG1ldGhvZHMgaW4ge0BsaW5rIEV4dGVuc2lvbkNvbmZpZ31cbiAqIEB0eXBlZGVmIEV4dGVuc2lvbkNvbmZpZ011dGF0aW9uT3B0c1xuICogQHByb3BlcnR5IHtib29sZWFufSBbd3JpdGU9dHJ1ZV0gV2hldGhlciBvciBub3QgdG8gd3JpdGUgdGhlIG1hbmlmZXN0IHRvIGRpc2sgYWZ0ZXIgYSBtdXRhdGlvbiBvcGVyYXRpb25cbiAqL1xuXG4vKipcbiAqIEEgdmFsaWQgaW5zdGFsbCB0eXBlXG4gKiBAdHlwZWRlZiB7dHlwZW9mIElOU1RBTExfVFlQRV9OUE0gfCB0eXBlb2YgSU5TVEFMTF9UWVBFX0dJVCB8IHR5cGVvZiBJTlNUQUxMX1RZUEVfTE9DQUwgfCB0eXBlb2YgSU5TVEFMTF9UWVBFX0dJVEhVQn0gSW5zdGFsbFR5cGVcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2NsaS9leHRlbnNpb24tY29tbWFuZCcpLkV4dGVuc2lvbkxpc3REYXRhfSBFeHRlbnNpb25MaXN0RGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vY2xpL2V4dGVuc2lvbi1jb21tYW5kJykuSW5zdGFsbGVkRXh0ZW5zaW9uTGlzdERhdGF9IEluc3RhbGxlZEV4dGVuc2lvbkxpc3REYXRhXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFNQSxNQUFNQSxnQkFBZ0IsR0FBRyxLQUF6Qjs7QUFDQSxNQUFNQyxrQkFBa0IsR0FBRyxPQUEzQjs7QUFDQSxNQUFNQyxtQkFBbUIsR0FBRyxRQUE1Qjs7QUFDQSxNQUFNQyxnQkFBZ0IsR0FBRyxLQUF6Qjs7QUFHQSxNQUFNQyxhQUFhLEdBQUcsSUFBSUMsR0FBSixDQUFRLENBQzVCRixnQkFENEIsRUFFNUJELG1CQUY0QixFQUc1QkQsa0JBSDRCLEVBSTVCRCxnQkFKNEIsQ0FBUixDQUF0Qjs7O0FBYU8sTUFBTU0sZUFBTixDQUFzQjtFQUUzQkMsYUFBYTtFQUdiQyxTQUFTO0VBR1RDLG1CQUFtQjtFQUduQkMsR0FBRztFQUdIQyxRQUFRO0VBS1JDLGNBQWM7O0VBT2RDLFdBQVcsQ0FBQ04sYUFBRCxFQUFnQkksUUFBaEIsRUFBMEI7SUFDbkMsS0FBS0osYUFBTCxHQUFxQkEsYUFBckI7SUFDQSxLQUFLQyxTQUFMLEdBQWtCLEdBQUVELGFBQWMsR0FBbEM7SUFDQSxLQUFLRSxtQkFBTCxHQUEyQkUsUUFBUSxDQUFDRyxnQkFBVCxDQUEwQlAsYUFBMUIsQ0FBM0I7SUFDQSxLQUFLSSxRQUFMLEdBQWdCQSxRQUFoQjtFQUNEOztFQUVlLElBQVpJLFlBQVksR0FBRztJQUNqQixPQUFPLEtBQUtKLFFBQUwsQ0FBY0ksWUFBckI7RUFDRDs7RUFFYSxJQUFWQyxVQUFVLEdBQUc7SUFDZixPQUFPLEtBQUtMLFFBQUwsQ0FBY0ssVUFBckI7RUFDRDs7RUFTREMsV0FBVyxDQUFDQyxPQUFELEVBQVVDLFdBQVYsRUFBdUI7SUFDaEMsT0FBTyxDQUNMLEdBQUcsS0FBS0Msd0JBQUwsQ0FBOEJELFdBQTlCLEVBQTJDRCxPQUEzQyxDQURFLEVBRUwsR0FBRyxLQUFLRyxpQkFBTCxDQUF1QkYsV0FBdkIsRUFBb0NELE9BQXBDLENBRkUsRUFHTCxHQUFHLEtBQUtJLGlCQUFMLENBQXVCSCxXQUF2QixFQUFvQ0QsT0FBcEMsQ0FIRSxDQUFQO0VBS0Q7O0VBU2dCLE1BQVhLLFdBQVcsQ0FBQ0wsT0FBRCxFQUFVQyxXQUFWLEVBQXVCO0lBQ3RDLE1BQU0sQ0FBQ0sscUJBQUQsRUFBd0JDLGNBQXhCLElBQTBDLE1BQU1DLGlCQUFBLENBQUVDLEdBQUYsQ0FBTSxDQUMxRCxLQUFLQyx3QkFBTCxDQUE4QlQsV0FBOUIsRUFBMkNELE9BQTNDLENBRDBELEVBRTFELEtBQUtXLGlCQUFMLENBQXVCVixXQUF2QixFQUFvQ0QsT0FBcEMsQ0FGMEQsQ0FBTixDQUF0RDtJQUtBLE9BQU8sQ0FBQyxHQUFHTSxxQkFBSixFQUEyQixHQUFHQyxjQUE5QixDQUFQO0VBQ0Q7O0VBVXNCLE1BQWpCSSxpQkFBaUIsQ0FBQ1YsV0FBRCxFQUFjRCxPQUFkLEVBQXVCO0lBQzVDLE9BQU8sRUFBUDtFQUNEOztFQU9EWSw0QkFBNEIsQ0FBQ0MsUUFBUSxHQUFHLElBQUlDLEdBQUosRUFBWixFQUF1QkMsVUFBVSxHQUFHLElBQUlELEdBQUosRUFBcEMsRUFBK0M7SUFLekUsTUFBTUUsY0FBYyxHQUFHLEVBQXZCOztJQUNBLEtBQUssTUFBTSxDQUFDaEIsT0FBRCxFQUFVaUIsUUFBVixDQUFYLElBQWtDSixRQUFRLENBQUNLLE9BQVQsRUFBbEMsRUFBc0Q7TUFDcEQsSUFBSUMsZUFBQSxDQUFFQyxPQUFGLENBQVVILFFBQVYsQ0FBSixFQUF5QjtRQUN2QjtNQUNEOztNQUVERCxjQUFjLENBQUNLLElBQWYsQ0FDRyxHQUFFLEtBQUtoQyxhQUFjLEtBQUlXLE9BQVEsU0FBUXNCLGFBQUEsQ0FBS0MsU0FBTCxDQUN4QyxPQUR3QyxFQUV4Q04sUUFBUSxDQUFDTyxNQUYrQixDQUd4Qyw2QkFKSjs7TUFNQSxLQUFLLE1BQU1DLE9BQVgsSUFBc0JSLFFBQXRCLEVBQWdDO1FBQzlCRCxjQUFjLENBQUNLLElBQWYsQ0FDRyxPQUFNSSxPQUFPLENBQUNDLEdBQUksa0JBQW5CLEdBQXdDLEdBQUVDLElBQUksQ0FBQ0MsU0FBTCxDQUFlSCxPQUFPLENBQUNJLEdBQXZCLENBQTRCLEdBRHhFO01BR0Q7SUFDRjs7SUFFRCxNQUFNQyxnQkFBZ0IsR0FBRyxFQUF6Qjs7SUFDQSxLQUFLLE1BQU0sQ0FBQzlCLE9BQUQsRUFBVStCLFFBQVYsQ0FBWCxJQUFrQ2hCLFVBQVUsQ0FBQ0csT0FBWCxFQUFsQyxFQUF3RDtNQUN0RCxJQUFJQyxlQUFBLENBQUVDLE9BQUYsQ0FBVVcsUUFBVixDQUFKLEVBQXlCO1FBQ3ZCO01BQ0Q7O01BQ0QsTUFBTUMsV0FBVyxHQUFHYixlQUFBLENBQUVjLFVBQUYsQ0FBYSxLQUFLNUMsYUFBbEIsQ0FBcEI7O01BQ0EsTUFBTTZDLHNCQUFzQixHQUFHWixhQUFBLENBQUtDLFNBQUwsQ0FBZSxtQkFBZixFQUFvQ1EsUUFBUSxDQUFDUCxNQUE3QyxFQUFxRCxJQUFyRCxDQUEvQjs7TUFDQU0sZ0JBQWdCLENBQUNULElBQWpCLENBQXVCLEdBQUVXLFdBQVksS0FBSWhDLE9BQVEsU0FBUWtDLHNCQUF1QixJQUFoRjs7TUFDQSxLQUFLLE1BQU1DLE9BQVgsSUFBc0JKLFFBQXRCLEVBQWdDO1FBQzlCRCxnQkFBZ0IsQ0FBQ1QsSUFBakIsQ0FBdUIsT0FBTWMsT0FBUSxFQUFyQztNQUNEO0lBQ0Y7O0lBRUQsT0FBTztNQUFDbkIsY0FBRDtNQUFpQmM7SUFBakIsQ0FBUDtFQUNEOztFQWFjLE1BQVRNLFNBQVMsQ0FBQ0MsSUFBRCxFQUFPO0lBS3BCLE1BQU14QixRQUFRLEdBQUcsSUFBSUMsR0FBSixFQUFqQjtJQUtBLE1BQU1DLFVBQVUsR0FBRyxJQUFJRCxHQUFKLEVBQW5COztJQUVBLEtBQUssTUFBTSxDQUFDZCxPQUFELEVBQVVDLFdBQVYsQ0FBWCxJQUFxQ2tCLGVBQUEsQ0FBRW1CLE9BQUYsQ0FBVUQsSUFBVixDQUFyQyxFQUFzRDtNQUNwRCxNQUFNLENBQUNFLE1BQUQsRUFBU1IsUUFBVCxJQUFxQixNQUFNdkIsaUJBQUEsQ0FBRUMsR0FBRixDQUFNLENBQ3JDLEtBQUtWLFdBQUwsQ0FBaUJDLE9BQWpCLEVBQTBCQyxXQUExQixDQURxQyxFQUVyQyxLQUFLSSxXQUFMLENBQWlCTCxPQUFqQixFQUEwQkMsV0FBMUIsQ0FGcUMsQ0FBTixDQUFqQzs7TUFJQSxJQUFJc0MsTUFBTSxDQUFDZixNQUFYLEVBQW1CO1FBQ2pCLE9BQU9hLElBQUksQ0FBQ3JDLE9BQUQsQ0FBWDtNQUNEOztNQUNEYSxRQUFRLENBQUMyQixHQUFULENBQWF4QyxPQUFiLEVBQXNCdUMsTUFBdEI7TUFDQXhCLFVBQVUsQ0FBQ3lCLEdBQVgsQ0FBZXhDLE9BQWYsRUFBd0IrQixRQUF4QjtJQUNEOztJQUVELE1BQU07TUFBQ2YsY0FBRDtNQUFpQmM7SUFBakIsSUFBcUMsS0FBS2xCLDRCQUFMLENBQ3pDQyxRQUR5QyxFQUV6Q0UsVUFGeUMsQ0FBM0M7O0lBS0EsSUFBSSxDQUFDSSxlQUFBLENBQUVDLE9BQUYsQ0FBVUosY0FBVixDQUFMLEVBQWdDO01BQzlCeEIsZUFBQSxDQUFJaUQsS0FBSixDQUNHLHNCQUFxQm5CLGFBQUEsQ0FBS0MsU0FBTCxDQUFlLE9BQWYsRUFBd0JWLFFBQVEsQ0FBQzZCLElBQWpDLEVBQXVDLElBQXZDLENBQTZDLHFCQUNqRSxLQUFLcEQsU0FDTixzQkFBcUIsS0FBS08sWUFBYSxFQUgxQzs7TUFLQSxLQUFLLE1BQU04QyxPQUFYLElBQXNCM0IsY0FBdEIsRUFBc0M7UUFDcEN4QixlQUFBLENBQUlpRCxLQUFKLENBQVVFLE9BQVY7TUFDRDtJQUNGLENBVEQsTUFTTztNQUdMLElBQUksQ0FBQ3hCLGVBQUEsQ0FBRUMsT0FBRixDQUFVVSxnQkFBVixDQUFMLEVBQWtDO1FBQ2hDdEMsZUFBQSxDQUFJb0QsSUFBSixDQUNHLHNCQUFxQnRCLGFBQUEsQ0FBS0MsU0FBTCxDQUNwQixTQURvQixFQUVwQlIsVUFBVSxDQUFDMkIsSUFGUyxFQUdwQixJQUhvQixDQUlwQixxQkFBb0IsS0FBS3BELFNBQVUsc0JBQXFCLEtBQUtPLFlBQWEsRUFMOUU7O1FBT0EsS0FBSyxNQUFNOEMsT0FBWCxJQUFzQmIsZ0JBQXRCLEVBQXdDO1VBQ3RDdEMsZUFBQSxDQUFJb0QsSUFBSixDQUFTRCxPQUFUO1FBQ0Q7TUFDRjtJQUNGOztJQUNELE9BQU9OLElBQVA7RUFDRDs7RUFRZ0IsTUFBWFEsV0FBVyxHQUFHO0lBQ2xCLElBQUksS0FBS25ELGNBQVQsRUFBeUI7TUFDdkIsT0FBTyxLQUFLQSxjQUFaO0lBQ0Q7O0lBQ0QsTUFBTW9ELFlBQVksR0FBdUNDLHlCQUFBLENBQWUsS0FBSzFELGFBQXBCLENBQXpEO0lBQ0EsTUFBTTJELEdBQUcsR0FBRyxJQUFJRixZQUFKLENBQWlCO01BQUNHLE1BQU0sRUFBRSxJQUFUO01BQWVDLElBQUksRUFBRTtJQUFyQixDQUFqQixDQUFaO0lBQ0EsTUFBTUMsUUFBUSxHQUFHLE1BQU1ILEdBQUcsQ0FBQ0ksSUFBSixDQUFTO01BQUNDLGFBQWEsRUFBRSxJQUFoQjtNQUFzQkMsV0FBVyxFQUFFO0lBQW5DLENBQVQsQ0FBdkI7SUFDQSxLQUFLNUQsY0FBTCxHQUFzQnlELFFBQXRCO0lBQ0EsT0FBT0EsUUFBUDtFQUNEOztFQVk2QixNQUF4QnpDLHdCQUF3QixDQUFDVCxXQUFELEVBQWNELE9BQWQsRUFBdUI7SUFDbkQsTUFBTTtNQUFDdUQsYUFBRDtNQUFnQkMsV0FBaEI7TUFBNkJDLFdBQTdCO01BQTBDQztJQUExQyxJQUFxRHpELFdBQTNEO0lBQ0EsTUFBTThCLFFBQVEsR0FBRyxFQUFqQjtJQUVBLE1BQU00QixhQUFhLEdBQUcsRUFBdEI7O0lBQ0EsSUFBSSxDQUFDeEMsZUFBQSxDQUFFeUMsUUFBRixDQUFXSixXQUFYLENBQUwsRUFBOEI7TUFDNUJHLGFBQWEsQ0FBQ3RDLElBQWQsQ0FBbUIsYUFBbkI7SUFDRDs7SUFFRCxJQUFJLENBQUNuQyxhQUFhLENBQUMyRSxHQUFkLENBQWtCSixXQUFsQixDQUFMLEVBQXFDO01BQ25DRSxhQUFhLENBQUN0QyxJQUFkLENBQW1CLGFBQW5CO0lBQ0Q7O0lBRUQsTUFBTVcsV0FBVyxHQUFHYixlQUFBLENBQUVjLFVBQUYsQ0FBYSxLQUFLNUMsYUFBbEIsQ0FBcEI7O0lBRUEsSUFBSXNFLGFBQWEsQ0FBQ25DLE1BQWxCLEVBQTBCO01BQ3hCLE1BQU1zQyw0QkFBNEIsR0FBR3hDLGFBQUEsQ0FBS0MsU0FBTCxDQUNuQywwQkFEbUMsRUFFbkNvQyxhQUFhLENBQUNuQyxNQUZxQixFQUduQyxJQUhtQyxDQUFyQzs7TUFLQSxNQUFNdUMsaUJBQWlCLEdBQUdKLGFBQWEsQ0FBQ0ssR0FBZCxDQUFtQkMsS0FBRCxJQUFZLElBQUdBLEtBQU0sR0FBdkMsRUFBMkNDLElBQTNDLENBQWdELElBQWhELENBQTFCO01BRUFuQyxRQUFRLENBQUNWLElBQVQsQ0FDRyxHQUFFVyxXQUFZLEtBQUloQyxPQUFRLGdCQUFlMEQsT0FBUSxXQUFVSSw0QkFBNkIsS0FBSUMsaUJBQWtCLDhIQUE2SCxLQUFLMUUsYUFBYyxjQUFhVyxPQUFRLG1CQUFrQixLQUFLWCxhQUFjLFlBQVdXLE9BQVEsc0JBRDlVO0lBR0Q7O0lBT0QsTUFBTW1FLGlCQUFpQixHQUFJQyxNQUFELElBQ3ZCLEdBQUVwQyxXQUFZLEtBQUloQyxPQUFRLGdCQUFlMEQsT0FBUSxnRUFBK0RXLGtCQUFXLFlBQVdELE1BQU8sRUFEaEo7O0lBR0EsSUFBSWpELGVBQUEsQ0FBRXlDLFFBQUYsQ0FBV0wsYUFBWCxLQUE2QixDQUFDLElBQUFlLGlCQUFBLEVBQVVELGtCQUFWLEVBQXNCZCxhQUF0QixDQUFsQyxFQUF3RTtNQUN0RSxNQUFNSixRQUFRLEdBQUcsTUFBTSxLQUFLTixXQUFMLEVBQXZCO01BQ0EsTUFBTTBCLFdBQVcsR0FBOENwQixRQUFRLENBQUNuRCxPQUFELENBQXZFOztNQUNBLElBQUl1RSxXQUFKLGFBQUlBLFdBQUosZUFBSUEsV0FBVyxDQUFFQyxTQUFqQixFQUE0QjtRQUMxQixNQUFNO1VBQUNDLGFBQUQ7VUFBZ0JDO1FBQWhCLElBQTRCSCxXQUFsQzs7UUFDQSxJQUFJLENBQUNHLFFBQUwsRUFBZTtVQUNiM0MsUUFBUSxDQUFDVixJQUFULENBQ0U4QyxpQkFBaUIsQ0FDZCx3Q0FBdUNaLGFBQWMsc0JBQXFCRyxPQUFRLFVBQVNlLGFBQWMsWUFEM0YsQ0FEbkI7UUFLRCxDQU5ELE1BTU87VUFDTDFDLFFBQVEsQ0FBQ1YsSUFBVCxDQUNFOEMsaUJBQWlCLENBQ2Qsd0NBQXVDWixhQUFjLG1DQUFrQ0csT0FBUSxrREFBaURXLGtCQUFXLEdBRDdJLENBRG5CO1FBS0Q7TUFDRjtJQUNGLENBbkJELE1BbUJPLElBQUksQ0FBQ2xELGVBQUEsQ0FBRXlDLFFBQUYsQ0FBV0wsYUFBWCxDQUFMLEVBQWdDO01BQ3JDLE1BQU1KLFFBQVEsR0FBRyxNQUFNLEtBQUtOLFdBQUwsRUFBdkI7TUFDQSxNQUFNMEIsV0FBVyxHQUE4Q3BCLFFBQVEsQ0FBQ25ELE9BQUQsQ0FBdkU7O01BQ0EsSUFBSSxFQUFDdUUsV0FBRCxhQUFDQSxXQUFELGVBQUNBLFdBQVcsQ0FBRUcsUUFBZCxLQUEwQkgsV0FBMUIsYUFBMEJBLFdBQTFCLGVBQTBCQSxXQUFXLENBQUVFLGFBQTNDLEVBQTBEO1FBQ3hEMUMsUUFBUSxDQUFDVixJQUFULENBQ0U4QyxpQkFBaUIsQ0FDZCx5RUFBd0VULE9BQVEsK0NBQThDMUQsT0FBUSxTQUFRdUUsV0FBVyxDQUFDRSxhQUFjLFlBRDFKLENBRG5CO01BS0QsQ0FORCxNQU1PO1FBQ0wxQyxRQUFRLENBQUNWLElBQVQsQ0FDRThDLGlCQUFpQixDQUNkLGtGQUFpRlQsT0FBUSw0Q0FBMkNXLGtCQUFXLEtBRGpJLENBRG5CO01BS0Q7SUFDRjs7SUFDRCxPQUFPdEMsUUFBUDtFQUNEOztFQVFEM0IsaUJBQWlCLENBQUNILFdBQUQsRUFBY0QsT0FBZCxFQUF1QjtJQUV0QyxNQUFNaUIsUUFBUSxHQUFHLEVBQWpCO0lBQ0EsTUFBTTtNQUFDMEQsTUFBTSxFQUFFQztJQUFULElBQTBCM0UsV0FBaEM7O0lBQ0EsSUFBSWIsZUFBZSxDQUFDeUYsZ0JBQWhCLENBQWlDNUUsV0FBakMsQ0FBSixFQUFtRDtNQUNqRCxJQUFJa0IsZUFBQSxDQUFFeUMsUUFBRixDQUFXZ0IsYUFBWCxDQUFKLEVBQStCO1FBQzdCLElBQUksSUFBQUUsb0NBQUEsRUFBNkJGLGFBQTdCLENBQUosRUFBaUQ7VUFDL0MsSUFBSTtZQUNGLEtBQUtHLG1CQUFMLENBQXlCL0UsT0FBekIsRUFBa0NDLFdBQWxDO1VBQ0QsQ0FGRCxDQUVFLE9BQU95QixHQUFQLEVBQVk7WUFDWlQsUUFBUSxDQUFDSSxJQUFULENBQWM7Y0FDWkssR0FBRyxFQUFHLHFDQUFvQ2tELGFBQWMsS0FBSWxELEdBQUcsQ0FBQ3NELE9BQVEsRUFENUQ7Y0FFWm5ELEdBQUcsRUFBRStDO1lBRk8sQ0FBZDtVQUlEO1FBQ0YsQ0FURCxNQVNPO1VBQ0wzRCxRQUFRLENBQUNJLElBQVQsQ0FBYztZQUNaSyxHQUFHLEVBQUcsbURBQWtELENBQ3RELEdBQUd1RCxpQ0FEbUQsRUFFdERmLElBRnNELENBRWpELElBRmlELENBRTNDLEVBSEQ7WUFJWnJDLEdBQUcsRUFBRStDO1VBSk8sQ0FBZDtRQU1EO01BQ0YsQ0FsQkQsTUFrQk8sSUFBSXpELGVBQUEsQ0FBRStELGFBQUYsQ0FBZ0JOLGFBQWhCLENBQUosRUFBb0M7UUFDekMsSUFBSTtVQUNGLEtBQUtHLG1CQUFMLENBQXlCL0UsT0FBekIsRUFBa0NDLFdBQWxDO1FBQ0QsQ0FGRCxDQUVFLE9BQU95QixHQUFQLEVBQVk7VUFDWlQsUUFBUSxDQUFDSSxJQUFULENBQWM7WUFDWkssR0FBRyxFQUFHLHVDQUFzQ0EsR0FBRyxDQUFDc0QsT0FBUSxFQUQ1QztZQUVabkQsR0FBRyxFQUFFK0M7VUFGTyxDQUFkO1FBSUQ7TUFDRixDQVRNLE1BU0E7UUFDTDNELFFBQVEsQ0FBQ0ksSUFBVCxDQUFjO1VBQ1pLLEdBQUcsRUFBRSx5RkFETztVQUVaRyxHQUFHLEVBQUUrQztRQUZPLENBQWQ7TUFJRDtJQUNGOztJQUNELE9BQU8zRCxRQUFQO0VBQ0Q7O0VBU0RmLHdCQUF3QixDQUFDRCxXQUFELEVBQWNELE9BQWQsRUFBdUI7SUFDN0MsTUFBTTtNQUFDbUYsT0FBRDtNQUFVekIsT0FBVjtNQUFtQjBCO0lBQW5CLElBQWdDbkYsV0FBdEM7SUFDQSxNQUFNZ0IsUUFBUSxHQUFHLEVBQWpCOztJQUVBLElBQUksQ0FBQ0UsZUFBQSxDQUFFeUMsUUFBRixDQUFXdUIsT0FBWCxDQUFMLEVBQTBCO01BQ3hCbEUsUUFBUSxDQUFDSSxJQUFULENBQWM7UUFDWkssR0FBRyxFQUFHLDJHQURNO1FBRVpHLEdBQUcsRUFBRXNEO01BRk8sQ0FBZDtJQUlEOztJQUVELElBQUksQ0FBQ2hFLGVBQUEsQ0FBRXlDLFFBQUYsQ0FBV0YsT0FBWCxDQUFMLEVBQTBCO01BQ3hCekMsUUFBUSxDQUFDSSxJQUFULENBQWM7UUFDWkssR0FBRyxFQUFHLHdHQURNO1FBRVpHLEdBQUcsRUFBRTZCO01BRk8sQ0FBZDtJQUlEOztJQUVELElBQUksQ0FBQ3ZDLGVBQUEsQ0FBRXlDLFFBQUYsQ0FBV3dCLFNBQVgsQ0FBTCxFQUE0QjtNQUMxQm5FLFFBQVEsQ0FBQ0ksSUFBVCxDQUFjO1FBQ1pLLEdBQUcsRUFBRywySUFETTtRQUVaRyxHQUFHLEVBQUV1RDtNQUZPLENBQWQ7SUFJRDs7SUFFRCxPQUFPbkUsUUFBUDtFQUNEOztFQVNEZCxpQkFBaUIsQ0FBQ0YsV0FBRCxFQUFjRCxPQUFkLEVBQXVCO0lBRXRDLE9BQU8sRUFBUDtFQUNEOztFQVFpQixNQUFacUYsWUFBWSxDQUFDckYsT0FBRCxFQUFVQyxXQUFWLEVBQXVCO0lBQUNxRixLQUFLLEdBQUc7RUFBVCxJQUFpQixFQUF4QyxFQUE0QztJQUM1RCxLQUFLN0YsUUFBTCxDQUFjNEYsWUFBZCxDQUEyQixLQUFLaEcsYUFBaEMsRUFBK0NXLE9BQS9DLEVBQXdEQyxXQUF4RDs7SUFDQSxJQUFJcUYsS0FBSixFQUFXO01BQ1QsTUFBTSxLQUFLN0YsUUFBTCxDQUFjNkYsS0FBZCxFQUFOO0lBQ0Q7RUFDRjs7RUFRb0IsTUFBZkMsZUFBZSxDQUFDdkYsT0FBRCxFQUFVQyxXQUFWLEVBQXVCO0lBQUNxRixLQUFLLEdBQUc7RUFBVCxJQUFpQixFQUF4QyxFQUE0QztJQUMvRCxLQUFLL0YsbUJBQUwsQ0FBeUJTLE9BQXpCLElBQW9DLEVBQ2xDLEdBQUcsS0FBS1QsbUJBQUwsQ0FBeUJTLE9BQXpCLENBRCtCO01BRWxDLEdBQUdDO0lBRitCLENBQXBDOztJQUlBLElBQUlxRixLQUFKLEVBQVc7TUFDVCxNQUFNLEtBQUs3RixRQUFMLENBQWM2RixLQUFkLEVBQU47SUFDRDtFQUNGOztFQVNvQixNQUFmRSxlQUFlLENBQUN4RixPQUFELEVBQVU7SUFBQ3NGLEtBQUssR0FBRztFQUFULElBQWlCLEVBQTNCLEVBQStCO0lBQ2xELE9BQU8sS0FBSy9GLG1CQUFMLENBQXlCUyxPQUF6QixDQUFQOztJQUNBLElBQUlzRixLQUFKLEVBQVc7TUFDVCxNQUFNLEtBQUs3RixRQUFMLENBQWM2RixLQUFkLEVBQU47SUFDRDtFQUNGOztFQU9ERyxLQUFLLENBQUNDLFdBQUQsRUFBYztJQUNqQixJQUFJdkUsZUFBQSxDQUFFQyxPQUFGLENBQVUsS0FBSzdCLG1CQUFmLENBQUosRUFBeUM7TUFDdkNDLGVBQUEsQ0FBSW1HLElBQUosQ0FDRyxNQUFLLEtBQUtyRyxTQUFVLDJCQUEwQixLQUFLUSxVQUFXLHFCQUFvQixLQUFLVCxhQUFjLElBQXRHLEdBQ0UsZ0RBRko7O01BSUE7SUFDRDs7SUFFREcsZUFBQSxDQUFJbUcsSUFBSixDQUFVLGFBQVksS0FBS3JHLFNBQVUsR0FBckM7O0lBQ0EsS0FBSyxNQUFNLENBQUNVLE9BQUQsRUFBVUMsV0FBVixDQUFYLElBQ0VrQixlQUFBLENBQUVtQixPQUFGLENBQVUsS0FBSy9DLG1CQUFmLENBREYsRUFFRztNQUNEQyxlQUFBLENBQUltRyxJQUFKLENBQVUsT0FBTSxLQUFLQyxhQUFMLENBQW1CNUYsT0FBbkIsRUFBNEJDLFdBQTVCLENBQXlDLEVBQXpEO0lBQ0Q7RUFDRjs7RUFVRDJGLGFBQWEsQ0FBQzVGLE9BQUQsRUFBVUMsV0FBVixFQUF1QjtJQUNsQyxNQUFNLElBQUk0RixLQUFKLENBQVUsd0NBQVYsQ0FBTjtFQUNEOztFQU1EQyxjQUFjLENBQUM5RixPQUFELEVBQVU7SUFDdEIsT0FBTytGLGFBQUEsQ0FBSzdCLElBQUwsQ0FBVSxLQUFLcEUsVUFBZixFQUEyQixjQUEzQixFQUEyQyxLQUFLUCxtQkFBTCxDQUF5QlMsT0FBekIsRUFBa0MwRCxPQUE3RSxDQUFQO0VBQ0Q7O0VBT0RzQyxPQUFPLENBQUNoRyxPQUFELEVBQVU7SUFDZixNQUFNO01BQUNvRjtJQUFELElBQWMsS0FBSzdGLG1CQUFMLENBQXlCUyxPQUF6QixDQUFwQjtJQUNBLE1BQU1pRyxPQUFPLEdBQUcsS0FBS0gsY0FBTCxDQUFvQjlGLE9BQXBCLENBQWhCO0lBRUEsSUFBSWtHLFdBQUo7O0lBQ0EsSUFBSTtNQUNGQSxXQUFXLEdBQUdGLE9BQU8sQ0FBQ0csT0FBUixDQUFnQkYsT0FBaEIsQ0FBZDtJQUNELENBRkQsQ0FFRSxPQUFPdkUsR0FBUCxFQUFZO01BQ1osTUFBTSxJQUFJMEUsY0FBSixDQUFvQixvQkFBbUIsS0FBSy9HLGFBQWMsaUJBQWdCNEcsT0FBUSxFQUFsRixDQUFOO0lBQ0Q7O0lBRUQsSUFBSUksT0FBTyxDQUFDQyxHQUFSLENBQVlDLHdCQUFaLElBQXdDUCxPQUFPLENBQUNRLEtBQVIsQ0FBY04sV0FBZCxDQUE1QyxFQUF3RTtNQUN0RTFHLGVBQUEsQ0FBSWlILEtBQUosQ0FBVyxZQUFXUCxXQUFZLHFCQUFsQzs7TUFDQSxPQUFPRixPQUFPLENBQUNRLEtBQVIsQ0FBY04sV0FBZCxDQUFQO0lBQ0Q7O0lBQ0QxRyxlQUFBLENBQUlpSCxLQUFKLENBQVcsYUFBWSxLQUFLcEgsYUFBYyxPQUFNNEcsT0FBUSxFQUF4RDs7SUFDQSxNQUFNUyxTQUFTLEdBQUdWLE9BQU8sQ0FBQ0MsT0FBRCxDQUFQLENBQWlCYixTQUFqQixDQUFsQjs7SUFDQSxJQUFJLENBQUNzQixTQUFMLEVBQWdCO01BQ2QsTUFBTSxJQUFJTixjQUFKLENBQ0gsaUNBQWdDaEIsU0FBVSxpQkFBZ0IsS0FBSy9GLGFBQWMsS0FBSVcsT0FBUSxHQUR0RixDQUFOO0lBR0Q7O0lBQ0QsT0FBTzBHLFNBQVA7RUFDRDs7RUFNREMsV0FBVyxDQUFDM0csT0FBRCxFQUFVO0lBQ25CLE9BQU9tQixlQUFBLENBQUV5RixRQUFGLENBQVdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLEtBQUt2SCxtQkFBakIsQ0FBWCxFQUFrRFMsT0FBbEQsQ0FBUDtFQUNEOztFQVkwQixPQUFwQitHLG9CQUFvQixDQUFDakgsVUFBRCxFQUFha0gsT0FBYixFQUFzQmhILE9BQXRCLEVBQStCQyxXQUEvQixFQUE0QztJQUNyRSxNQUFNO01BQUN5RCxPQUFEO01BQVVpQixNQUFNLEVBQUVDO0lBQWxCLElBQW1DM0UsV0FBekM7O0lBQ0EsSUFBSSxDQUFDMkUsYUFBTCxFQUFvQjtNQUNsQixNQUFNLElBQUlxQyxTQUFKLENBQ0gsOENBQTZDRCxPQUFRLElBQUd0RCxPQUFRLHdDQUQ3RCxDQUFOO0lBR0Q7O0lBQ0QsSUFBSXdELFlBQUo7O0lBQ0EsSUFBSS9GLGVBQUEsQ0FBRXlDLFFBQUYsQ0FBV2dCLGFBQVgsQ0FBSixFQUErQjtNQUM3QixNQUFNdUMsVUFBVSxHQUFHLElBQUFDLG9CQUFBLEVBQVl0SCxVQUFaLEVBQXdCaUcsYUFBQSxDQUFLN0IsSUFBTCxDQUFVUixPQUFWLEVBQW1Ca0IsYUFBbkIsQ0FBeEIsQ0FBbkI7TUFDQXNDLFlBQVksR0FBR2xCLE9BQU8sQ0FBQ21CLFVBQUQsQ0FBdEI7SUFDRCxDQUhELE1BR087TUFDTEQsWUFBWSxHQUFHdEMsYUFBZjtJQUNEOztJQUVELE1BQU1ELE1BQU0sR0FBR3VDLFlBQVksQ0FBQ0csVUFBYixHQUEwQkgsWUFBWSxDQUFDSSxPQUF2QyxHQUFpREosWUFBaEU7SUFDQSxJQUFBSyxzQkFBQSxFQUFlUCxPQUFmLEVBQXdCaEgsT0FBeEIsRUFBaUMyRSxNQUFqQztJQUNBLE9BQU9BLE1BQVA7RUFDRDs7RUFTc0IsT0FBaEJFLGdCQUFnQixDQUFDNUUsV0FBRCxFQUFjO0lBQ25DLE9BQU9rQixlQUFBLENBQUV5QyxRQUFGLENBQVczRCxXQUFYLGFBQVdBLFdBQVgsdUJBQVdBLFdBQVcsQ0FBRTBFLE1BQXhCLEtBQW1DeEQsZUFBQSxDQUFFcUcsUUFBRixDQUFXdkgsV0FBWCxhQUFXQSxXQUFYLHVCQUFXQSxXQUFXLENBQUUwRSxNQUF4QixDQUExQztFQUNEOztFQVNESSxtQkFBbUIsQ0FBQy9FLE9BQUQsRUFBVUMsV0FBVixFQUF1QjtJQUN4QyxPQUFPYixlQUFlLENBQUMySCxvQkFBaEIsQ0FDTCxLQUFLakgsVUFEQSxFQUVMLEtBQUtULGFBRkEsRUFHTFcsT0FISyxFQUlMQyxXQUpLLENBQVA7RUFNRDs7QUE1akIwQiJ9
|
|
@@ -26,13 +26,14 @@ var _pluginConfig = require("./plugin-config");
|
|
|
26
26
|
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
27
27
|
|
|
28
28
|
async function loadExtensions(appiumHome) {
|
|
29
|
-
var _DriverConfig$getInst, _PluginConfig$getInst;
|
|
30
|
-
|
|
31
29
|
const manifest = _manifest.Manifest.getInstance(appiumHome);
|
|
32
30
|
|
|
33
31
|
await manifest.read();
|
|
34
|
-
|
|
35
|
-
const
|
|
32
|
+
|
|
33
|
+
const driverConfig = _driverConfig.DriverConfig.getInstance(manifest) ?? _driverConfig.DriverConfig.create(manifest);
|
|
34
|
+
|
|
35
|
+
const pluginConfig = _pluginConfig.PluginConfig.getInstance(manifest) ?? _pluginConfig.PluginConfig.create(manifest);
|
|
36
|
+
|
|
36
37
|
await _bluebird.default.all([driverConfig.validate(), pluginConfig.validate()]);
|
|
37
38
|
return {
|
|
38
39
|
driverConfig,
|
|
@@ -71,4 +72,4 @@ function getActiveDrivers(driverConfig, useDrivers = []) {
|
|
|
71
72
|
}
|
|
72
73
|
})));
|
|
73
74
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2FkRXh0ZW5zaW9ucyIsImFwcGl1bUhvbWUiLCJtYW5pZmVzdCIsIk1hbmlmZXN0IiwiZ2V0SW5zdGFuY2UiLCJyZWFkIiwiZHJpdmVyQ29uZmlnIiwiRHJpdmVyQ29uZmlnIiwiY3JlYXRlIiwicGx1Z2luQ29uZmlnIiwiUGx1Z2luQ29uZmlnIiwiQiIsImFsbCIsInZhbGlkYXRlIiwiZ2V0QWN0aXZlUGx1Z2lucyIsInVzZVBsdWdpbnMiLCJNYXAiLCJfIiwiY29tcGFjdCIsIk9iamVjdCIsImtleXMiLCJpbnN0YWxsZWRFeHRlbnNpb25zIiwiZmlsdGVyIiwicGx1Z2luTmFtZSIsImluY2x1ZGVzIiwibGVuZ3RoIiwiVVNFX0FMTF9QTFVHSU5TIiwibWFwIiwibG9nIiwiaW5mbyIsIlBsdWdpbkNsYXNzIiwicmVxdWlyZSIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImRlYnVnIiwic3RhY2siLCJnZXRBY3RpdmVEcml2ZXJzIiwidXNlRHJpdmVycyIsImRyaXZlck5hbWUiLCJEcml2ZXJDbGFzcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb24vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7VVNFX0FMTF9QTFVHSU5TfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHtEcml2ZXJDb25maWd9IGZyb20gJy4vZHJpdmVyLWNvbmZpZyc7XG5pbXBvcnQge01hbmlmZXN0fSBmcm9tICcuL21hbmlmZXN0JztcbmltcG9ydCB7UGx1Z2luQ29uZmlnfSBmcm9tICcuL3BsdWdpbi1jb25maWcnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG4vKipcbiAqIExvYWRzIGV4dGVuc2lvbnMgYW5kIGNyZWF0ZXMgYEV4dGVuc2lvbkNvbmZpZ2AgaW5zdGFuY2VzLlxuICpcbiAqIC0gUmVhZHMgdGhlIG1hbmlmZXN0IGZpbGUsIGNyZWF0aW5nIGlmIG5lY2Vzc2FyeVxuICogLSBVc2luZyB0aGUgcGFyc2VkIGV4dGVuc2lvbiBkYXRhLCBjcmVhdGVzL2dldHMgdGhlIGBFeHRlbnNpb25Db25maWdgIHN1YmNsYXNzIGluc3RhbmNlc1xuICogLSBSZXR1cm5zIHRoZXNlIGluc3RhbmNlc1xuICpcbiAqIElmIGBhcHBpdW1Ib21lYCBpcyBuZWVkZWQsIHVzZSBgcmVzb2x2ZUFwcGl1bUhvbWVgIGZyb20gdGhlIGBlbnZgIG1vZHVsZSBpbiBgQGFwcGl1bS9zdXBwb3J0YC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxFeHRlbnNpb25Db25maWdzPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlbnNpb25zKGFwcGl1bUhvbWUpIHtcbiAgY29uc3QgbWFuaWZlc3QgPSBNYW5pZmVzdC5nZXRJbnN0YW5jZShhcHBpdW1Ib21lKTtcbiAgYXdhaXQgbWFuaWZlc3QucmVhZCgpO1xuICBjb25zdCBkcml2ZXJDb25maWcgPSBEcml2ZXJDb25maWcuZ2V0SW5zdGFuY2UobWFuaWZlc3QpID8/IERyaXZlckNvbmZpZy5jcmVhdGUobWFuaWZlc3QpO1xuICBjb25zdCBwbHVnaW5Db25maWcgPSBQbHVnaW5Db25maWcuZ2V0SW5zdGFuY2UobWFuaWZlc3QpID8/IFBsdWdpbkNvbmZpZy5jcmVhdGUobWFuaWZlc3QpO1xuXG4gIGF3YWl0IEIuYWxsKFtkcml2ZXJDb25maWcudmFsaWRhdGUoKSwgcGx1Z2luQ29uZmlnLnZhbGlkYXRlKCldKTtcbiAgcmV0dXJuIHtkcml2ZXJDb25maWcsIHBsdWdpbkNvbmZpZ307XG59XG5cbi8qKlxuICogRmluZCBhbnkgcGx1Z2luIG5hbWUgd2hpY2ggaGFzIGJlZW4gaW5zdGFsbGVkLCBhbmQgd2hpY2ggaGFzIGJlZW4gcmVxdWVzdGVkIGZvciBhY3RpdmF0aW9uIGJ5XG4gKiB1c2luZyB0aGUgLS11c2UtcGx1Z2lucyBmbGFnLCBhbmQgdHVybiBlYWNoIG9uZSBpbnRvIGl0cyBjbGFzcywgc28gd2UgY2FuIHNlbmQgdGhlbSBhcyBvYmplY3RzXG4gKiB0byB0aGUgc2VydmVyIGluaXQuIFdlIGFsc28gd2FudCB0byBzZW5kL2Fzc2lnbiB0aGVtIHRvIHRoZSB1bWJyZWxsYSBkcml2ZXIgc28gaXQgY2FuIHVzZSB0aGVtXG4gKiB0byB3cmFwIGNvbW1hbmQgZXhlY3V0aW9uXG4gKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vcGx1Z2luLWNvbmZpZycpLlBsdWdpbkNvbmZpZ30gcGx1Z2luQ29uZmlnIC0gYSBwbHVnaW4gZXh0ZW5zaW9uIGNvbmZpZ1xuICogQHBhcmFtIHtzdHJpbmdbXX0gdXNlUGx1Z2luc1xuICogQHJldHVybnMge1BsdWdpbk5hbWVNYXB9IE1hcHBpbmcgb2YgUGx1Z2luQ2xhc3MgdG8gbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aXZlUGx1Z2lucyhwbHVnaW5Db25maWcsIHVzZVBsdWdpbnMgPSBbXSkge1xuICByZXR1cm4gbmV3IE1hcChcbiAgICBfLmNvbXBhY3QoXG4gICAgICBPYmplY3Qua2V5cyhwbHVnaW5Db25maWcuaW5zdGFsbGVkRXh0ZW5zaW9ucylcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAocGx1Z2luTmFtZSkgPT5cbiAgICAgICAgICAgIF8uaW5jbHVkZXModXNlUGx1Z2lucywgcGx1Z2luTmFtZSkgfHxcbiAgICAgICAgICAgICh1c2VQbHVnaW5zLmxlbmd0aCA9PT0gMSAmJiB1c2VQbHVnaW5zWzBdID09PSBVU0VfQUxMX1BMVUdJTlMpXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgocGx1Z2luTmFtZSkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhgQXR0ZW1wdGluZyB0byBsb2FkIHBsdWdpbiAke3BsdWdpbk5hbWV9Li4uYCk7XG4gICAgICAgICAgICBjb25zdCBQbHVnaW5DbGFzcyA9IHBsdWdpbkNvbmZpZy5yZXF1aXJlKHBsdWdpbk5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIFtQbHVnaW5DbGFzcywgcGx1Z2luTmFtZV07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgIGBDb3VsZCBub3QgbG9hZCBwbHVnaW4gJyR7cGx1Z2luTmFtZX0nLCBzbyBpdCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIEVycm9yIGAgK1xuICAgICAgICAgICAgICAgIGBpbiBsb2FkaW5nIHRoZSBwbHVnaW4gd2FzOiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsb2cuZGVidWcoZXJyLnN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEZpbmQgYW55IGRyaXZlciBuYW1lIHdoaWNoIGhhcyBiZWVuIGluc3RhbGxlZCwgYW5kIHR1cm4gZWFjaCBvbmUgaW50byBpdHMgY2xhc3MsIHNvIHdlIGNhbiBzZW5kXG4gKiB0aGVtIGFzIG9iamVjdHMgdG8gdGhlIHNlcnZlciBpbml0IGluIGNhc2UgdGhleSBuZWVkIHRvIGFkZCBtZXRob2RzL3JvdXRlcyBvciB1cGRhdGUgdGhlIHNlcnZlci5cbiAqIElmIHRoZSAtLWRyaXZlcnMgZmxhZyB3YXMgZ2l2ZW4sIHRoaXMgbWV0aG9kIG9ubHkgbG9hZHMgdGhlIGdpdmVuIGRyaXZlcnMuXG4gKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vZHJpdmVyLWNvbmZpZycpLkRyaXZlckNvbmZpZ30gZHJpdmVyQ29uZmlnIC0gYSBkcml2ZXIgZXh0ZW5zaW9uIGNvbmZpZ1xuICogQHBhcmFtIHtzdHJpbmdbXX0gW3VzZURyaXZlcnNdIC0gb3B0aW9uYWwgbGlzdCBvZiBkcml2ZXJzIHRvIGxvYWRcbiAqIEByZXR1cm5zIHtEcml2ZXJOYW1lTWFwfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aXZlRHJpdmVycyhkcml2ZXJDb25maWcsIHVzZURyaXZlcnMgPSBbXSkge1xuICByZXR1cm4gbmV3IE1hcChcbiAgICBfLmNvbXBhY3QoXG4gICAgICBPYmplY3Qua2V5cyhkcml2ZXJDb25maWcuaW5zdGFsbGVkRXh0ZW5zaW9ucylcbiAgICAgICAgLmZpbHRlcigoZHJpdmVyTmFtZSkgPT4gXy5pbmNsdWRlcyh1c2VEcml2ZXJzLCBkcml2ZXJOYW1lKSB8fCB1c2VEcml2ZXJzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgLm1hcCgoZHJpdmVyTmFtZSkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhgQXR0ZW1wdGluZyB0byBsb2FkIGRyaXZlciAke2RyaXZlck5hbWV9Li4uYCk7XG4gICAgICAgICAgICBjb25zdCBEcml2ZXJDbGFzcyA9IGRyaXZlckNvbmZpZy5yZXF1aXJlKGRyaXZlck5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIFtEcml2ZXJDbGFzcywgZHJpdmVyTmFtZV07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgIGBDb3VsZCBub3QgbG9hZCBkcml2ZXIgJyR7ZHJpdmVyTmFtZX0nLCBzbyBpdCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIEVycm9yIGAgK1xuICAgICAgICAgICAgICAgIGBpbiBsb2FkaW5nIHRoZSBkcml2ZXIgd2FzOiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsb2cuZGVidWcoZXJyLnN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyBvZiB7QGxpbmtjb2RlIFBsdWdpbkNsYXNzfSBjbGFzc2VzIHRvIHRoZWlyIG5hbWVzLlxuICogQHR5cGVkZWYge01hcDxQbHVnaW5DbGFzcyxzdHJpbmc+
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2FkRXh0ZW5zaW9ucyIsImFwcGl1bUhvbWUiLCJtYW5pZmVzdCIsIk1hbmlmZXN0IiwiZ2V0SW5zdGFuY2UiLCJyZWFkIiwiZHJpdmVyQ29uZmlnIiwiRHJpdmVyQ29uZmlnIiwiY3JlYXRlIiwicGx1Z2luQ29uZmlnIiwiUGx1Z2luQ29uZmlnIiwiQiIsImFsbCIsInZhbGlkYXRlIiwiZ2V0QWN0aXZlUGx1Z2lucyIsInVzZVBsdWdpbnMiLCJNYXAiLCJfIiwiY29tcGFjdCIsIk9iamVjdCIsImtleXMiLCJpbnN0YWxsZWRFeHRlbnNpb25zIiwiZmlsdGVyIiwicGx1Z2luTmFtZSIsImluY2x1ZGVzIiwibGVuZ3RoIiwiVVNFX0FMTF9QTFVHSU5TIiwibWFwIiwibG9nIiwiaW5mbyIsIlBsdWdpbkNsYXNzIiwicmVxdWlyZSIsImVyciIsImVycm9yIiwibWVzc2FnZSIsImRlYnVnIiwic3RhY2siLCJnZXRBY3RpdmVEcml2ZXJzIiwidXNlRHJpdmVycyIsImRyaXZlck5hbWUiLCJEcml2ZXJDbGFzcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb24vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7VVNFX0FMTF9QTFVHSU5TfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHtEcml2ZXJDb25maWd9IGZyb20gJy4vZHJpdmVyLWNvbmZpZyc7XG5pbXBvcnQge01hbmlmZXN0fSBmcm9tICcuL21hbmlmZXN0JztcbmltcG9ydCB7UGx1Z2luQ29uZmlnfSBmcm9tICcuL3BsdWdpbi1jb25maWcnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG4vKipcbiAqIExvYWRzIGV4dGVuc2lvbnMgYW5kIGNyZWF0ZXMgYEV4dGVuc2lvbkNvbmZpZ2AgaW5zdGFuY2VzLlxuICpcbiAqIC0gUmVhZHMgdGhlIG1hbmlmZXN0IGZpbGUsIGNyZWF0aW5nIGlmIG5lY2Vzc2FyeVxuICogLSBVc2luZyB0aGUgcGFyc2VkIGV4dGVuc2lvbiBkYXRhLCBjcmVhdGVzL2dldHMgdGhlIGBFeHRlbnNpb25Db25maWdgIHN1YmNsYXNzIGluc3RhbmNlc1xuICogLSBSZXR1cm5zIHRoZXNlIGluc3RhbmNlc1xuICpcbiAqIElmIGBhcHBpdW1Ib21lYCBpcyBuZWVkZWQsIHVzZSBgcmVzb2x2ZUFwcGl1bUhvbWVgIGZyb20gdGhlIGBlbnZgIG1vZHVsZSBpbiBgQGFwcGl1bS9zdXBwb3J0YC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxFeHRlbnNpb25Db25maWdzPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlbnNpb25zKGFwcGl1bUhvbWUpIHtcbiAgY29uc3QgbWFuaWZlc3QgPSBNYW5pZmVzdC5nZXRJbnN0YW5jZShhcHBpdW1Ib21lKTtcbiAgYXdhaXQgbWFuaWZlc3QucmVhZCgpO1xuICBjb25zdCBkcml2ZXJDb25maWcgPSBEcml2ZXJDb25maWcuZ2V0SW5zdGFuY2UobWFuaWZlc3QpID8/IERyaXZlckNvbmZpZy5jcmVhdGUobWFuaWZlc3QpO1xuICBjb25zdCBwbHVnaW5Db25maWcgPSBQbHVnaW5Db25maWcuZ2V0SW5zdGFuY2UobWFuaWZlc3QpID8/IFBsdWdpbkNvbmZpZy5jcmVhdGUobWFuaWZlc3QpO1xuXG4gIGF3YWl0IEIuYWxsKFtkcml2ZXJDb25maWcudmFsaWRhdGUoKSwgcGx1Z2luQ29uZmlnLnZhbGlkYXRlKCldKTtcbiAgcmV0dXJuIHtkcml2ZXJDb25maWcsIHBsdWdpbkNvbmZpZ307XG59XG5cbi8qKlxuICogRmluZCBhbnkgcGx1Z2luIG5hbWUgd2hpY2ggaGFzIGJlZW4gaW5zdGFsbGVkLCBhbmQgd2hpY2ggaGFzIGJlZW4gcmVxdWVzdGVkIGZvciBhY3RpdmF0aW9uIGJ5XG4gKiB1c2luZyB0aGUgLS11c2UtcGx1Z2lucyBmbGFnLCBhbmQgdHVybiBlYWNoIG9uZSBpbnRvIGl0cyBjbGFzcywgc28gd2UgY2FuIHNlbmQgdGhlbSBhcyBvYmplY3RzXG4gKiB0byB0aGUgc2VydmVyIGluaXQuIFdlIGFsc28gd2FudCB0byBzZW5kL2Fzc2lnbiB0aGVtIHRvIHRoZSB1bWJyZWxsYSBkcml2ZXIgc28gaXQgY2FuIHVzZSB0aGVtXG4gKiB0byB3cmFwIGNvbW1hbmQgZXhlY3V0aW9uXG4gKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vcGx1Z2luLWNvbmZpZycpLlBsdWdpbkNvbmZpZ30gcGx1Z2luQ29uZmlnIC0gYSBwbHVnaW4gZXh0ZW5zaW9uIGNvbmZpZ1xuICogQHBhcmFtIHtzdHJpbmdbXX0gdXNlUGx1Z2luc1xuICogQHJldHVybnMge1BsdWdpbk5hbWVNYXB9IE1hcHBpbmcgb2YgUGx1Z2luQ2xhc3MgdG8gbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aXZlUGx1Z2lucyhwbHVnaW5Db25maWcsIHVzZVBsdWdpbnMgPSBbXSkge1xuICByZXR1cm4gbmV3IE1hcChcbiAgICBfLmNvbXBhY3QoXG4gICAgICBPYmplY3Qua2V5cyhwbHVnaW5Db25maWcuaW5zdGFsbGVkRXh0ZW5zaW9ucylcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAocGx1Z2luTmFtZSkgPT5cbiAgICAgICAgICAgIF8uaW5jbHVkZXModXNlUGx1Z2lucywgcGx1Z2luTmFtZSkgfHxcbiAgICAgICAgICAgICh1c2VQbHVnaW5zLmxlbmd0aCA9PT0gMSAmJiB1c2VQbHVnaW5zWzBdID09PSBVU0VfQUxMX1BMVUdJTlMpXG4gICAgICAgIClcbiAgICAgICAgLm1hcCgocGx1Z2luTmFtZSkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhgQXR0ZW1wdGluZyB0byBsb2FkIHBsdWdpbiAke3BsdWdpbk5hbWV9Li4uYCk7XG4gICAgICAgICAgICBjb25zdCBQbHVnaW5DbGFzcyA9IHBsdWdpbkNvbmZpZy5yZXF1aXJlKHBsdWdpbk5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIFtQbHVnaW5DbGFzcywgcGx1Z2luTmFtZV07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgIGBDb3VsZCBub3QgbG9hZCBwbHVnaW4gJyR7cGx1Z2luTmFtZX0nLCBzbyBpdCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIEVycm9yIGAgK1xuICAgICAgICAgICAgICAgIGBpbiBsb2FkaW5nIHRoZSBwbHVnaW4gd2FzOiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsb2cuZGVidWcoZXJyLnN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEZpbmQgYW55IGRyaXZlciBuYW1lIHdoaWNoIGhhcyBiZWVuIGluc3RhbGxlZCwgYW5kIHR1cm4gZWFjaCBvbmUgaW50byBpdHMgY2xhc3MsIHNvIHdlIGNhbiBzZW5kXG4gKiB0aGVtIGFzIG9iamVjdHMgdG8gdGhlIHNlcnZlciBpbml0IGluIGNhc2UgdGhleSBuZWVkIHRvIGFkZCBtZXRob2RzL3JvdXRlcyBvciB1cGRhdGUgdGhlIHNlcnZlci5cbiAqIElmIHRoZSAtLWRyaXZlcnMgZmxhZyB3YXMgZ2l2ZW4sIHRoaXMgbWV0aG9kIG9ubHkgbG9hZHMgdGhlIGdpdmVuIGRyaXZlcnMuXG4gKlxuICogQHBhcmFtIHtpbXBvcnQoJy4vZHJpdmVyLWNvbmZpZycpLkRyaXZlckNvbmZpZ30gZHJpdmVyQ29uZmlnIC0gYSBkcml2ZXIgZXh0ZW5zaW9uIGNvbmZpZ1xuICogQHBhcmFtIHtzdHJpbmdbXX0gW3VzZURyaXZlcnNdIC0gb3B0aW9uYWwgbGlzdCBvZiBkcml2ZXJzIHRvIGxvYWRcbiAqIEByZXR1cm5zIHtEcml2ZXJOYW1lTWFwfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aXZlRHJpdmVycyhkcml2ZXJDb25maWcsIHVzZURyaXZlcnMgPSBbXSkge1xuICByZXR1cm4gbmV3IE1hcChcbiAgICBfLmNvbXBhY3QoXG4gICAgICBPYmplY3Qua2V5cyhkcml2ZXJDb25maWcuaW5zdGFsbGVkRXh0ZW5zaW9ucylcbiAgICAgICAgLmZpbHRlcigoZHJpdmVyTmFtZSkgPT4gXy5pbmNsdWRlcyh1c2VEcml2ZXJzLCBkcml2ZXJOYW1lKSB8fCB1c2VEcml2ZXJzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgLm1hcCgoZHJpdmVyTmFtZSkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuaW5mbyhgQXR0ZW1wdGluZyB0byBsb2FkIGRyaXZlciAke2RyaXZlck5hbWV9Li4uYCk7XG4gICAgICAgICAgICBjb25zdCBEcml2ZXJDbGFzcyA9IGRyaXZlckNvbmZpZy5yZXF1aXJlKGRyaXZlck5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIFtEcml2ZXJDbGFzcywgZHJpdmVyTmFtZV07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgIGBDb3VsZCBub3QgbG9hZCBkcml2ZXIgJyR7ZHJpdmVyTmFtZX0nLCBzbyBpdCB3aWxsIG5vdCBiZSBhdmFpbGFibGUuIEVycm9yIGAgK1xuICAgICAgICAgICAgICAgIGBpbiBsb2FkaW5nIHRoZSBkcml2ZXIgd2FzOiAke2Vyci5tZXNzYWdlfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsb2cuZGVidWcoZXJyLnN0YWNrKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEEgbWFwcGluZyBvZiB7QGxpbmtjb2RlIFBsdWdpbkNsYXNzfSBjbGFzc2VzIHRvIHRoZWlyIG5hbWVzLlxuICogQHR5cGVkZWYge01hcDxQbHVnaW5DbGFzcyxzdHJpbmc+fSBQbHVnaW5OYW1lTWFwXG4gKi9cblxuLyoqXG4gKiBBIG1hcHBpbmcgb2Yge0BsaW5rY29kZSBEcml2ZXJDbGFzc30gY2xhc3NlcyB0byB0aGVpciBuYW1lcy5cbiAqIEB0eXBlZGVmIHtNYXA8RHJpdmVyQ2xhc3Msc3RyaW5nPn0gRHJpdmVyTmFtZU1hcFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlBsdWdpbkNsYXNzfSBQbHVnaW5DbGFzc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlckNsYXNzfSBEcml2ZXJDbGFzc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYgRXh0ZW5zaW9uQ29uZmlnc1xuICogQHByb3BlcnR5IHtpbXBvcnQoJy4vZHJpdmVyLWNvbmZpZycpLkRyaXZlckNvbmZpZ30gZHJpdmVyQ29uZmlnXG4gKiBAcHJvcGVydHkge2ltcG9ydCgnLi9wbHVnaW4tY29uZmlnJykuUGx1Z2luQ29uZmlnfSBwbHVnaW5Db25maWdcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBYU8sZUFBZUEsY0FBZixDQUE4QkMsVUFBOUIsRUFBMEM7RUFDL0MsTUFBTUMsUUFBUSxHQUFHQyxrQkFBQSxDQUFTQyxXQUFULENBQXFCSCxVQUFyQixDQUFqQjs7RUFDQSxNQUFNQyxRQUFRLENBQUNHLElBQVQsRUFBTjs7RUFDQSxNQUFNQyxZQUFZLEdBQUdDLDBCQUFBLENBQWFILFdBQWIsQ0FBeUJGLFFBQXpCLEtBQXNDSywwQkFBQSxDQUFhQyxNQUFiLENBQW9CTixRQUFwQixDQUEzRDs7RUFDQSxNQUFNTyxZQUFZLEdBQUdDLDBCQUFBLENBQWFOLFdBQWIsQ0FBeUJGLFFBQXpCLEtBQXNDUSwwQkFBQSxDQUFhRixNQUFiLENBQW9CTixRQUFwQixDQUEzRDs7RUFFQSxNQUFNUyxpQkFBQSxDQUFFQyxHQUFGLENBQU0sQ0FBQ04sWUFBWSxDQUFDTyxRQUFiLEVBQUQsRUFBMEJKLFlBQVksQ0FBQ0ksUUFBYixFQUExQixDQUFOLENBQU47RUFDQSxPQUFPO0lBQUNQLFlBQUQ7SUFBZUc7RUFBZixDQUFQO0FBQ0Q7O0FBWU0sU0FBU0ssZ0JBQVQsQ0FBMEJMLFlBQTFCLEVBQXdDTSxVQUFVLEdBQUcsRUFBckQsRUFBeUQ7RUFDOUQsT0FBTyxJQUFJQyxHQUFKLENBQ0xDLGVBQUEsQ0FBRUMsT0FBRixDQUNFQyxNQUFNLENBQUNDLElBQVAsQ0FBWVgsWUFBWSxDQUFDWSxtQkFBekIsRUFDR0MsTUFESCxDQUVLQyxVQUFELElBQ0VOLGVBQUEsQ0FBRU8sUUFBRixDQUFXVCxVQUFYLEVBQXVCUSxVQUF2QixLQUNDUixVQUFVLENBQUNVLE1BQVgsS0FBc0IsQ0FBdEIsSUFBMkJWLFVBQVUsQ0FBQyxDQUFELENBQVYsS0FBa0JXLDBCQUpwRCxFQU1HQyxHQU5ILENBTVFKLFVBQUQsSUFBZ0I7SUFDbkIsSUFBSTtNQUNGSyxlQUFBLENBQUlDLElBQUosQ0FBVSw2QkFBNEJOLFVBQVcsS0FBakQ7O01BQ0EsTUFBTU8sV0FBVyxHQUFHckIsWUFBWSxDQUFDc0IsT0FBYixDQUFxQlIsVUFBckIsQ0FBcEI7O01BQ0EsT0FBTyxDQUFDTyxXQUFELEVBQWNQLFVBQWQsQ0FBUDtJQUNELENBSkQsQ0FJRSxPQUFPUyxHQUFQLEVBQVk7TUFDWkosZUFBQSxDQUFJSyxLQUFKLENBQ0csMEJBQXlCVixVQUFXLHdDQUFyQyxHQUNHLDhCQUE2QlMsR0FBRyxDQUFDRSxPQUFRLEVBRjlDOztNQUlBTixlQUFBLENBQUlPLEtBQUosQ0FBVUgsR0FBRyxDQUFDSSxLQUFkO0lBQ0Q7RUFDRixDQWxCSCxDQURGLENBREssQ0FBUDtBQXVCRDs7QUFXTSxTQUFTQyxnQkFBVCxDQUEwQi9CLFlBQTFCLEVBQXdDZ0MsVUFBVSxHQUFHLEVBQXJELEVBQXlEO0VBQzlELE9BQU8sSUFBSXRCLEdBQUosQ0FDTEMsZUFBQSxDQUFFQyxPQUFGLENBQ0VDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZZCxZQUFZLENBQUNlLG1CQUF6QixFQUNHQyxNQURILENBQ1dpQixVQUFELElBQWdCdEIsZUFBQSxDQUFFTyxRQUFGLENBQVdjLFVBQVgsRUFBdUJDLFVBQXZCLEtBQXNDRCxVQUFVLENBQUNiLE1BQVgsS0FBc0IsQ0FEdEYsRUFFR0UsR0FGSCxDQUVRWSxVQUFELElBQWdCO0lBQ25CLElBQUk7TUFDRlgsZUFBQSxDQUFJQyxJQUFKLENBQVUsNkJBQTRCVSxVQUFXLEtBQWpEOztNQUNBLE1BQU1DLFdBQVcsR0FBR2xDLFlBQVksQ0FBQ3lCLE9BQWIsQ0FBcUJRLFVBQXJCLENBQXBCOztNQUNBLE9BQU8sQ0FBQ0MsV0FBRCxFQUFjRCxVQUFkLENBQVA7SUFDRCxDQUpELENBSUUsT0FBT1AsR0FBUCxFQUFZO01BQ1pKLGVBQUEsQ0FBSUssS0FBSixDQUNHLDBCQUF5Qk0sVUFBVyx3Q0FBckMsR0FDRyw4QkFBNkJQLEdBQUcsQ0FBQ0UsT0FBUSxFQUY5Qzs7TUFJQU4sZUFBQSxDQUFJTyxLQUFKLENBQVVILEdBQUcsQ0FBQ0ksS0FBZDtJQUNEO0VBQ0YsQ0FkSCxDQURGLENBREssQ0FBUDtBQW1CRCJ9
|
|
@@ -53,11 +53,9 @@ async function packageDidChange(appiumHome) {
|
|
|
53
53
|
|
|
54
54
|
if (isChanged) {
|
|
55
55
|
try {
|
|
56
|
-
var _oldHash;
|
|
57
|
-
|
|
58
56
|
writeHash();
|
|
59
57
|
|
|
60
|
-
_logger.default.debug(`Updated hash of ${appiumHome}/package.json from: ${
|
|
58
|
+
_logger.default.debug(`Updated hash of ${appiumHome}/package.json from: ${oldHash ?? '(none)'} to: ${hash}`);
|
|
61
59
|
} catch (err) {
|
|
62
60
|
throw new Error(`Appium could not write hash file: ${hashFilenameDir}. Original error: ${err.message}`);
|
|
63
61
|
}
|
|
@@ -65,4 +63,4 @@ async function packageDidChange(appiumHome) {
|
|
|
65
63
|
|
|
66
64
|
return isChanged;
|
|
67
65
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWNrYWdlRGlkQ2hhbmdlIiwiYXBwaXVtSG9tZSIsImhhc2hGaWxlbmFtZSIsInBhdGgiLCJqb2luIiwiUEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEgiLCJpc0NoYW5nZWQiLCJ3cml0ZUhhc2giLCJoYXNoIiwib2xkSGFzaCIsImhhc2hGaWxlbmFtZURpciIsImRpcm5hbWUiLCJsb2ciLCJkZWJ1ZyIsImZzIiwibWtkaXJwIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwiaXNQYWNrYWdlQ2hhbmdlZCIsImN3ZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb24vcGFja2FnZS1jaGFuZ2VkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZnN9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge2lzUGFja2FnZUNoYW5nZWR9IGZyb20gJ3BhY2thZ2UtY2hhbmdlZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7UEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEh9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBleHRlbnNpb25zIGhhdmUgY2hhbmdlZCwgYW5kIHVwZGF0ZXMgYSBoYXNoIHRoZSBgcGFja2FnZS5qc29uYCBpbiBgYXBwaXVtSG9tZWAgaWYgc28uXG4gKlxuICogSWYgdGhleSBoYXZlLCB3ZSBuZWVkIHRvIHN5bmMgdGhlbSB3aXRoIHRoZSBgZXh0ZW5zaW9ucy55YW1sYCBtYW5pZmVzdC5cbiAqXG4gKiBfV2FybmluZzogdGhpcyBtYWtlcyBhIGJsb2NraW5nIGNhbGwgdG8gYHdyaXRlRmlsZVN5bmNgLl9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gYHRydWVgIGlmIGBwYWNrYWdlLmpzb25gIGBhcHBpdW1Ib21lYCBjaGFuZ2VkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYWNrYWdlRGlkQ2hhbmdlKGFwcGl1bUhvbWUpIHtcbiAgY29uc3QgaGFzaEZpbGVuYW1lID0gcGF0aC5qb2luKGFwcGl1bUhvbWUsIFBLR19IQVNIRklMRV9SRUxBVElWRV9QQVRIKTtcblxuICAvLyBYWFg6IHRoZSB0eXBlcyBpbiBgcGFja2FnZS1jaGFuZ2VkYCBzZWVtIHRvIGJlIHdyb25nLlxuXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGlzQ2hhbmdlZDtcbiAgLyoqIEB0eXBlIHsoKSA9PiB2b2lkfSAqL1xuICBsZXQgd3JpdGVIYXNoO1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGhhc2g7XG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG9sZEhhc2g7XG5cbiAgLy8gZmlyc3QgbWtkaXJwIHRoZSB0YXJnZXQgZGlyLlxuICBjb25zdCBoYXNoRmlsZW5hbWVEaXIgPSBwYXRoLmRpcm5hbWUoaGFzaEZpbGVuYW1lKTtcbiAgbG9nLmRlYnVnKGBDcmVhdGluZyBoYXNoIGZpbGUgZGlyZWN0b3J5OiAke2hhc2hGaWxlbmFtZURpcn1gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy5ta2RpcnAoaGFzaEZpbGVuYW1lRGlyKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEFwcGl1bSBjb3VsZCBub3QgY3JlYXRlIHRoZSBkaXJlY3RvcnkgZm9yIGhhc2ggZmlsZTogJHtoYXNoRmlsZW5hbWVEaXJ9LiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgKHtpc0NoYW5nZWQsIHdyaXRlSGFzaCwgb2xkSGFzaCwgaGFzaH0gPSBhd2FpdCBpc1BhY2thZ2VDaGFuZ2VkKHtcbiAgICAgIGN3ZDogYXBwaXVtSG9tZSxcbiAgICAgIGhhc2hGaWxlbmFtZTogUEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEgsXG4gICAgfSkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0NoYW5nZWQpIHtcbiAgICB0cnkge1xuICAgICAgd3JpdGVIYXNoKCk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBVcGRhdGVkIGhhc2ggb2YgJHthcHBpdW1Ib21lfS9wYWNrYWdlLmpzb24gZnJvbTogJHtvbGRIYXNoID8/
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYWNrYWdlRGlkQ2hhbmdlIiwiYXBwaXVtSG9tZSIsImhhc2hGaWxlbmFtZSIsInBhdGgiLCJqb2luIiwiUEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEgiLCJpc0NoYW5nZWQiLCJ3cml0ZUhhc2giLCJoYXNoIiwib2xkSGFzaCIsImhhc2hGaWxlbmFtZURpciIsImRpcm5hbWUiLCJsb2ciLCJkZWJ1ZyIsImZzIiwibWtkaXJwIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwiaXNQYWNrYWdlQ2hhbmdlZCIsImN3ZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9leHRlbnNpb24vcGFja2FnZS1jaGFuZ2VkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZnN9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge2lzUGFja2FnZUNoYW5nZWR9IGZyb20gJ3BhY2thZ2UtY2hhbmdlZCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7UEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEh9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBleHRlbnNpb25zIGhhdmUgY2hhbmdlZCwgYW5kIHVwZGF0ZXMgYSBoYXNoIHRoZSBgcGFja2FnZS5qc29uYCBpbiBgYXBwaXVtSG9tZWAgaWYgc28uXG4gKlxuICogSWYgdGhleSBoYXZlLCB3ZSBuZWVkIHRvIHN5bmMgdGhlbSB3aXRoIHRoZSBgZXh0ZW5zaW9ucy55YW1sYCBtYW5pZmVzdC5cbiAqXG4gKiBfV2FybmluZzogdGhpcyBtYWtlcyBhIGJsb2NraW5nIGNhbGwgdG8gYHdyaXRlRmlsZVN5bmNgLl9cbiAqIEBwYXJhbSB7c3RyaW5nfSBhcHBpdW1Ib21lXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gYHRydWVgIGlmIGBwYWNrYWdlLmpzb25gIGBhcHBpdW1Ib21lYCBjaGFuZ2VkXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwYWNrYWdlRGlkQ2hhbmdlKGFwcGl1bUhvbWUpIHtcbiAgY29uc3QgaGFzaEZpbGVuYW1lID0gcGF0aC5qb2luKGFwcGl1bUhvbWUsIFBLR19IQVNIRklMRV9SRUxBVElWRV9QQVRIKTtcblxuICAvLyBYWFg6IHRoZSB0eXBlcyBpbiBgcGFja2FnZS1jaGFuZ2VkYCBzZWVtIHRvIGJlIHdyb25nLlxuXG4gIC8qKiBAdHlwZSB7Ym9vbGVhbn0gKi9cbiAgbGV0IGlzQ2hhbmdlZDtcbiAgLyoqIEB0eXBlIHsoKSA9PiB2b2lkfSAqL1xuICBsZXQgd3JpdGVIYXNoO1xuICAvKiogQHR5cGUge3N0cmluZ30gKi9cbiAgbGV0IGhhc2g7XG4gIC8qKiBAdHlwZSB7c3RyaW5nfHVuZGVmaW5lZH0gKi9cbiAgbGV0IG9sZEhhc2g7XG5cbiAgLy8gZmlyc3QgbWtkaXJwIHRoZSB0YXJnZXQgZGlyLlxuICBjb25zdCBoYXNoRmlsZW5hbWVEaXIgPSBwYXRoLmRpcm5hbWUoaGFzaEZpbGVuYW1lKTtcbiAgbG9nLmRlYnVnKGBDcmVhdGluZyBoYXNoIGZpbGUgZGlyZWN0b3J5OiAke2hhc2hGaWxlbmFtZURpcn1gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy5ta2RpcnAoaGFzaEZpbGVuYW1lRGlyKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEFwcGl1bSBjb3VsZCBub3QgY3JlYXRlIHRoZSBkaXJlY3RvcnkgZm9yIGhhc2ggZmlsZTogJHtoYXNoRmlsZW5hbWVEaXJ9LiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gXG4gICAgKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgKHtpc0NoYW5nZWQsIHdyaXRlSGFzaCwgb2xkSGFzaCwgaGFzaH0gPSBhd2FpdCBpc1BhY2thZ2VDaGFuZ2VkKHtcbiAgICAgIGN3ZDogYXBwaXVtSG9tZSxcbiAgICAgIGhhc2hGaWxlbmFtZTogUEtHX0hBU0hGSUxFX1JFTEFUSVZFX1BBVEgsXG4gICAgfSkpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChpc0NoYW5nZWQpIHtcbiAgICB0cnkge1xuICAgICAgd3JpdGVIYXNoKCk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBVcGRhdGVkIGhhc2ggb2YgJHthcHBpdW1Ib21lfS9wYWNrYWdlLmpzb24gZnJvbTogJHtvbGRIYXNoID8/ICcobm9uZSknfSB0bzogJHtoYXNofWBcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBcHBpdW0gY291bGQgbm90IHdyaXRlIGhhc2ggZmlsZTogJHtoYXNoRmlsZW5hbWVEaXJ9LiBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpc0NoYW5nZWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBV08sZUFBZUEsZ0JBQWYsQ0FBZ0NDLFVBQWhDLEVBQTRDO0VBQ2pELE1BQU1DLFlBQVksR0FBR0MsYUFBQSxDQUFLQyxJQUFMLENBQVVILFVBQVYsRUFBc0JJLHFDQUF0QixDQUFyQjs7RUFLQSxJQUFJQyxTQUFKO0VBRUEsSUFBSUMsU0FBSjtFQUVBLElBQUlDLElBQUo7RUFFQSxJQUFJQyxPQUFKOztFQUdBLE1BQU1DLGVBQWUsR0FBR1AsYUFBQSxDQUFLUSxPQUFMLENBQWFULFlBQWIsQ0FBeEI7O0VBQ0FVLGVBQUEsQ0FBSUMsS0FBSixDQUFXLGlDQUFnQ0gsZUFBZ0IsRUFBM0Q7O0VBQ0EsSUFBSTtJQUNGLE1BQU1JLFdBQUEsQ0FBR0MsTUFBSCxDQUFVTCxlQUFWLENBQU47RUFDRCxDQUZELENBRUUsT0FBT00sR0FBUCxFQUFZO0lBQ1osTUFBTSxJQUFJQyxLQUFKLENBQ0gsd0RBQXVEUCxlQUFnQixxQkFBb0JNLEdBQUcsQ0FBQ0UsT0FBUSxFQURwRyxDQUFOO0VBR0Q7O0VBRUQsSUFBSTtJQUNGLENBQUM7TUFBQ1osU0FBRDtNQUFZQyxTQUFaO01BQXVCRSxPQUF2QjtNQUFnQ0Q7SUFBaEMsSUFBd0MsTUFBTSxJQUFBVyxnQ0FBQSxFQUFpQjtNQUM5REMsR0FBRyxFQUFFbkIsVUFEeUQ7TUFFOURDLFlBQVksRUFBRUc7SUFGZ0QsQ0FBakIsQ0FBL0M7RUFJRCxDQUxELENBS0UsTUFBTTtJQUNOLE9BQU8sSUFBUDtFQUNEOztFQUVELElBQUlDLFNBQUosRUFBZTtJQUNiLElBQUk7TUFDRkMsU0FBUzs7TUFDVEssZUFBQSxDQUFJQyxLQUFKLENBQ0csbUJBQWtCWixVQUFXLHVCQUFzQlEsT0FBTyxJQUFJLFFBQVMsUUFBT0QsSUFBSyxFQUR0RjtJQUdELENBTEQsQ0FLRSxPQUFPUSxHQUFQLEVBQVk7TUFDWixNQUFNLElBQUlDLEtBQUosQ0FDSCxxQ0FBb0NQLGVBQWdCLHFCQUFvQk0sR0FBRyxDQUFDRSxPQUFRLEVBRGpGLENBQU47SUFHRDtFQUNGOztFQUVELE9BQU9aLFNBQVA7QUFDRCJ9
|
package/build/lib/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../lib/main.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../lib/main.js"],"names":[],"mappings":";;yBAiZa,OAAO,eAAe,EAAE,UAAU;yBAClC,OAAO,eAAe,EAAE,UAAU;0BAClC,OAAO,eAAe,EAAE,WAAW;0BACnC,OAAO,eAAe,EAAE,WAAW;mCACnC,OAAO,cAAc,EAAE,oBAAoB;4BAC3C,OAAO,aAAa,EAAE,aAAa;4BACnC,OAAO,aAAa,EAAE,aAAa;;;;mCAKlC,EAAE;;;;;kBAKF,OAAO,UAAU,EAAE,YAAY;;;;gBAC/B,OAAO,cAAc,EAAE,UAAU;;+BAIlC,cAAc,GAAG,OAAO,aAAa,EAAE,gBAAgB;oEAKvD,OAAO,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;0EAK9B,OAAO,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAjJjD;;;;;;GAMG;AACH,mGAFa,QAAQ,OAAO,eAAe,EAAE,YAAY,GAAC,SAAS,CAAC,CA8FnE;AAvOD;;;;;;;;;;;;;;;GAeG;AACH,mGAPa,QAAQ,gBAAgB,GAAG,oBAAoB,CAAC,CAyH5D"}
|