appium 2.0.0-beta.35 → 2.0.0-beta.37
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 +41 -52
- package/build/lib/appium.d.ts.map +1 -1
- package/build/lib/appium.js +32 -15
- package/build/lib/cli/args.d.ts +1 -1
- package/build/lib/cli/args.d.ts.map +1 -1
- package/build/lib/cli/args.js +1 -1
- package/build/lib/cli/driver-command.d.ts +3 -3
- package/build/lib/cli/driver-command.d.ts.map +1 -1
- package/build/lib/cli/driver-command.js +1 -1
- package/build/lib/cli/extension-command.d.ts +60 -38
- package/build/lib/cli/extension-command.d.ts.map +1 -1
- package/build/lib/cli/extension-command.js +115 -59
- package/build/lib/cli/extension.d.ts +9 -5
- package/build/lib/cli/extension.d.ts.map +1 -1
- package/build/lib/cli/extension.js +5 -7
- package/build/lib/cli/parser.d.ts +3 -3
- package/build/lib/cli/parser.d.ts.map +1 -1
- package/build/lib/cli/parser.js +1 -1
- package/build/lib/cli/plugin-command.d.ts +1 -1
- package/build/lib/cli/plugin-command.d.ts.map +1 -1
- package/build/lib/cli/plugin-command.js +1 -1
- package/build/lib/cli/utils.js +1 -1
- package/build/lib/config-file.d.ts.map +1 -1
- package/build/lib/config-file.js +1 -1
- package/build/lib/config.d.ts +4 -4
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +1 -1
- package/build/lib/constants.d.ts.map +1 -1
- package/build/lib/constants.js +1 -1
- package/build/lib/extension/driver-config.d.ts +29 -32
- package/build/lib/extension/driver-config.d.ts.map +1 -1
- package/build/lib/extension/driver-config.js +7 -20
- package/build/lib/extension/extension-config.d.ts +108 -36
- package/build/lib/extension/extension-config.d.ts.map +1 -1
- package/build/lib/extension/extension-config.js +199 -60
- package/build/lib/extension/index.d.ts +16 -7
- package/build/lib/extension/index.d.ts.map +1 -1
- package/build/lib/extension/index.js +15 -18
- package/build/lib/extension/manifest.d.ts +12 -12
- package/build/lib/extension/manifest.d.ts.map +1 -1
- package/build/lib/extension/manifest.js +13 -3
- package/build/lib/extension/package-changed.d.ts.map +1 -1
- package/build/lib/extension/package-changed.js +1 -1
- package/build/lib/extension/plugin-config.d.ts +19 -24
- package/build/lib/extension/plugin-config.d.ts.map +1 -1
- package/build/lib/extension/plugin-config.js +9 -18
- package/build/lib/grid-register.d.ts.map +1 -1
- package/build/lib/grid-register.js +1 -1
- package/build/lib/logger.d.ts +1 -1
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/logsink.d.ts.map +1 -1
- package/build/lib/logsink.js +3 -2
- package/build/lib/main.d.ts +13 -12
- package/build/lib/main.d.ts.map +1 -1
- package/build/lib/main.js +4 -4
- package/build/lib/schema/arg-spec.d.ts +4 -4
- package/build/lib/schema/arg-spec.d.ts.map +1 -1
- package/build/lib/schema/arg-spec.js +1 -1
- package/build/lib/schema/cli-args.d.ts.map +1 -1
- package/build/lib/schema/cli-args.js +1 -1
- package/build/lib/schema/cli-transformers.d.ts.map +1 -1
- package/build/lib/schema/cli-transformers.js +1 -1
- package/build/lib/schema/keywords.d.ts.map +1 -1
- package/build/lib/schema/keywords.js +1 -1
- package/build/lib/schema/schema.d.ts +2 -2
- package/build/lib/schema/schema.d.ts.map +1 -1
- package/build/lib/schema/schema.js +1 -1
- package/build/lib/utils.d.ts.map +1 -1
- package/build/lib/utils.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/appium-manifest.d.ts +23 -4
- package/build/types/appium-manifest.d.ts.map +1 -1
- package/build/types/cli.d.ts.map +1 -1
- package/build/types/{external-manifest.d.ts → extension-manifest.d.ts} +15 -7
- package/build/types/extension-manifest.d.ts.map +1 -0
- package/build/types/index.d.ts +6 -5
- package/build/types/index.d.ts.map +1 -1
- package/driver.d.ts +1 -0
- package/driver.js +14 -0
- package/lib/appium.js +208 -124
- package/lib/cli/args.js +143 -93
- package/lib/cli/driver-command.js +10 -15
- package/lib/cli/extension-command.js +226 -175
- package/lib/cli/extension.js +15 -19
- package/lib/cli/parser.js +19 -31
- package/lib/cli/plugin-command.js +8 -8
- package/lib/cli/utils.js +8 -14
- package/lib/config-file.js +21 -25
- package/lib/config.js +82 -64
- package/lib/constants.js +4 -13
- package/lib/extension/driver-config.js +171 -171
- package/lib/extension/extension-config.js +347 -126
- package/lib/extension/index.js +72 -58
- package/lib/extension/manifest.js +48 -57
- package/lib/extension/package-changed.js +9 -8
- package/lib/extension/plugin-config.js +62 -62
- package/lib/grid-register.js +29 -18
- package/lib/logger.js +1 -2
- package/lib/logsink.js +29 -31
- package/lib/main.js +111 -73
- package/lib/schema/arg-spec.js +10 -13
- package/lib/schema/cli-args.js +14 -37
- package/lib/schema/cli-transformers.js +7 -14
- package/lib/schema/keywords.js +15 -13
- package/lib/schema/schema.js +58 -75
- package/lib/utils.js +50 -25
- package/package.json +25 -18
- package/plugin.d.ts +1 -0
- package/plugin.js +13 -0
- package/scripts/autoinstall-extensions.js +177 -0
- package/support.d.ts +1 -0
- package/support.js +13 -0
- package/types/appium-manifest.ts +27 -15
- package/types/cli.ts +2 -9
- package/types/{external-manifest.ts → extension-manifest.ts} +21 -15
- package/types/index.ts +12 -5
- package/build/types/extension.d.ts +0 -43
- package/build/types/extension.d.ts.map +0 -1
- package/build/types/external-manifest.d.ts.map +0 -1
- package/scripts/postinstall.js +0 -71
- package/types/extension.ts +0 -56
package/build/lib/logger.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,0DAAqC"}
|
package/build/lib/logger.js
CHANGED
|
@@ -13,4 +13,4 @@ let log = _support.logger.getLogger('Appium');
|
|
|
13
13
|
|
|
14
14
|
var _default = log;
|
|
15
15
|
exports.default = _default;
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bG9nZ2VyfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5sZXQgbG9nID0gbG9nZ2VyLmdldExvZ2dlcignQXBwaXVtJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBSUEsR0FBRyxHQUFHQyxlQUFBLENBQU9DLFNBQVAsQ0FBaUIsUUFBakIsQ0FBVjs7ZUFFZUYsRyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logsink.d.ts","sourceRoot":"","sources":["../../lib/logsink.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"logsink.d.ts","sourceRoot":"","sources":["../../lib/logsink.js"],"names":[],"mappings":";AA4LA,+CA0BC;AAED,8BAOC"}
|
package/build/lib/logsink.js
CHANGED
|
@@ -22,7 +22,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
22
22
|
_support.logger.patchLogger(_npmlog.default);
|
|
23
23
|
|
|
24
24
|
global._global_npmlog = _npmlog.default;
|
|
25
|
-
_npmlog.default.level = '
|
|
25
|
+
_npmlog.default.level = 'info';
|
|
26
26
|
const levels = {
|
|
27
27
|
debug: 4,
|
|
28
28
|
info: 3,
|
|
@@ -170,6 +170,7 @@ async function createTransports(args) {
|
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
async function init(args) {
|
|
173
|
+
_npmlog.default.level = 'silent';
|
|
173
174
|
useLocalTimeZone = args.localTimezone;
|
|
174
175
|
clear();
|
|
175
176
|
log = (0, _winston.createLogger)({
|
|
@@ -206,4 +207,4 @@ function clear() {
|
|
|
206
207
|
|
|
207
208
|
var _default = init;
|
|
208
209
|
exports.default = _default;
|
|
209
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2dnZXIiLCJwYXRjaExvZ2dlciIsIm5wbWxvZyIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibGV2ZWwiLCJsZXZlbHMiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJjb2xvcnMiLCJucG1Ub1dpbnN0b25MZXZlbHMiLCJzaWxseSIsInZlcmJvc2UiLCJodHRwIiwibG9nIiwidXNlTG9jYWxUaW1lWm9uZSIsInRpbWVzdGFtcEZvcm1hdCIsImZvcm1hdCIsInRpbWVzdGFtcCIsImRhdGUiLCJEYXRlIiwidmFsdWVPZiIsImdldFRpbWV6b25lT2Zmc2V0IiwidG9JU09TdHJpbmciLCJyZXBsYWNlIiwidHJpbSIsImNvbG9yaXplRm9ybWF0IiwiY29sb3JpemUiLCJzdHJpcENvbG9yRm9ybWF0Iiwic3RyaXBDb2xvciIsImNvZGUiLCJtZXNzYWdlIiwiY3JlYXRlQ29uc29sZVRyYW5zcG9ydCIsImFyZ3MiLCJsb2dMdmwiLCJ0cmFuc3BvcnRzIiwiQ29uc29sZSIsIm5hbWUiLCJoYW5kbGVFeGNlcHRpb25zIiwiZXhpdE9uRXJyb3IiLCJqc29uIiwic3RkZXJyTGV2ZWxzIiwiY29tYmluZSIsImFkanVzdERlYnVnIiwibG9nTm9Db2xvcnMiLCJwcmludGYiLCJwcmludEluZm8iLCJsb2dUaW1lc3RhbXAiLCJjcmVhdGVGaWxlVHJhbnNwb3J0IiwiRmlsZSIsImZpbGVuYW1lIiwibG9nRmlsZSIsIm1heEZpbGVzIiwiY3JlYXRlSHR0cFRyYW5zcG9ydCIsImhvc3QiLCJwb3J0Iiwid2ViaG9vayIsIm1hdGNoIiwiaG9zdEFuZFBvcnQiLCJzcGxpdCIsInBhcnNlSW50IiwiSHR0cCIsInBhdGgiLCJjcmVhdGVUcmFuc3BvcnRzIiwiY29uc29sZUxvZ0xldmVsIiwiZmlsZUxvZ0xldmVsIiwibG9nbGV2ZWwiLCJsdmxQYWlyIiwicHVzaCIsImZzIiwiZXhpc3RzIiwidW5saW5rIiwiZSIsImNvbnNvbGUiLCJpbml0IiwibG9jYWxUaW1lem9uZSIsImNsZWFyIiwib24iLCJsb2dPYmoiLCJ3aW5zdG9uTGV2ZWwiLCJtc2ciLCJwcmVmaXgiLCJtYWdlbnRhIiwibG9nSGFuZGxlciIsIl8iLCJpc0Z1bmN0aW9uIiwidHJhbnNwb3J0Iiwia2V5cyIsInJlbW92ZSIsInJlbW92ZUFsbExpc3RlbmVycyJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dzaW5rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciwgZm9ybWF0LCB0cmFuc3BvcnRzIH0gZnJvbSAnd2luc3Rvbic7XG5pbXBvcnQgeyBmcywgbG9nZ2VyIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cblxuLy8gc2V0IHVwIGRpc3RyaWJ1dGVkIGxvZ2dpbmcgYmVmb3JlIGV2ZXJ5dGhpbmcgZWxzZVxubG9nZ2VyLnBhdGNoTG9nZ2VyKG5wbWxvZyk7XG5nbG9iYWwuX2dsb2JhbF9ucG1sb2cgPSBucG1sb2c7XG5cbi8vIG5wbWxvZyBpcyB1c2VkIG9ubHkgZm9yIGVtaXR0aW5nLCB3ZSB1c2Ugd2luc3RvbiBmb3Igb3V0cHV0XG5ucG1sb2cubGV2ZWwgPSAnc2lsZW50JztcbmNvbnN0IGxldmVscyA9IHtcbiAgZGVidWc6IDQsXG4gIGluZm86IDMsXG4gIHdhcm46IDIsXG4gIGVycm9yOiAxLFxufTtcblxuY29uc3QgY29sb3JzID0ge1xuICBpbmZvOiAnY3lhbicsXG4gIGRlYnVnOiAnZ3JleScsXG4gIHdhcm46ICd5ZWxsb3cnLFxuICBlcnJvcjogJ3JlZCcsXG59O1xuXG5jb25zdCBucG1Ub1dpbnN0b25MZXZlbHMgPSB7XG4gIHNpbGx5OiAnZGVidWcnLFxuICB2ZXJib3NlOiAnZGVidWcnLFxuICBkZWJ1ZzogJ2RlYnVnJyxcbiAgaW5mbzogJ2luZm8nLFxuICBodHRwOiAnaW5mbycsXG4gIHdhcm46ICd3YXJuJyxcbiAgZXJyb3I6ICdlcnJvcicsXG59O1xuXG5sZXQgbG9nID0gbnVsbDtcbmxldCB1c2VMb2NhbFRpbWVab25lID0gZmFsc2U7XG5cbi8vIGFkZCB0aGUgdGltZXN0YW1wIGluIHRoZSBjb3JyZWN0IGZvcm1hdCB0byB0aGUgbG9nIGluZm8gb2JqZWN0XG5jb25zdCB0aW1lc3RhbXBGb3JtYXQgPSBmb3JtYXQudGltZXN0YW1wKHtcbiAgZm9ybWF0ICgpIHtcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgaWYgKHVzZUxvY2FsVGltZVpvbmUpIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICB9XG4gICAgLy8gJzIwMTItMTEtMDRUMTQ6NTE6MDYuMTU3WicgLT4gJzIwMTItMTEtMDQgMTQ6NTE6MDY6MTU3J1xuICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKClcbiAgICAgIC5yZXBsYWNlKC9bVFpdL2csICcgJylcbiAgICAgIC5yZXBsYWNlKC9cXC4vZywgJzonKVxuICAgICAgLnRyaW0oKTtcbiAgfSxcbn0pO1xuXG4vLyBzZXQgdGhlIGN1c3RvbSBjb2xvcnNcbmNvbnN0IGNvbG9yaXplRm9ybWF0ID0gZm9ybWF0LmNvbG9yaXplKHtcbiAgY29sb3JzLFxufSk7XG5cbi8vIFN0cmlwIHRoZSBjb2xvciBtYXJraW5nIHdpdGhpbiBtZXNzYWdlc1xuY29uc3Qgc3RyaXBDb2xvckZvcm1hdCA9IGZvcm1hdChmdW5jdGlvbiBzdHJpcENvbG9yIChpbmZvKSB7XG4gIGNvbnN0IGNvZGUgPSAvXFx1MDAxYlxcWyhcXGQrKDtcXGQrKSopP20vZzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gIGluZm8ubWVzc2FnZSA9IGluZm8ubWVzc2FnZS5yZXBsYWNlKGNvZGUsICcnKTtcbiAgcmV0dXJuIGluZm87XG59KSgpO1xuXG5mdW5jdGlvbiBjcmVhdGVDb25zb2xlVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5Db25zb2xlKSh7XG4gICAgLy8gYG5hbWVgIGlzIHVuc3VwcG9ydGVkIHBlciB3aW5zdG9uJ3MgdHlwZSBkZWNsYXJhdGlvbnNcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgbmFtZTogJ2NvbnNvbGUnLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgc3RkZXJyTGV2ZWxzOiBbJ2Vycm9yJ10sXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIGZvcm1hdChmdW5jdGlvbiBhZGp1c3REZWJ1ZyAoaW5mbykge1xuICAgICAgICAvLyBwcmVwZW5kIGRlYnVnIG1hcmtlciwgYW5kIHNoaWZ0IHRvIGBpbmZvYCBsb2cgbGV2ZWxcbiAgICAgICAgaWYgKGluZm8ubGV2ZWwgPT09ICdkZWJ1ZycpIHtcbiAgICAgICAgICBpbmZvLmxldmVsID0gJ2luZm8nO1xuICAgICAgICAgIGluZm8ubWVzc2FnZSA9IGBbZGVidWddICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluZm87XG4gICAgICB9KSgpLFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgYXJncy5sb2dOb0NvbG9ycyA/IHN0cmlwQ29sb3JGb3JtYXQgOiBjb2xvcml6ZUZvcm1hdCxcbiAgICAgIGZvcm1hdC5wcmludGYoZnVuY3Rpb24gcHJpbnRJbmZvIChpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHthcmdzLmxvZ1RpbWVzdGFtcCA/IGAke2luZm8udGltZXN0YW1wfSAtIGAgOiAnJ30ke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZVRyYW5zcG9ydCAoYXJncywgbG9nTHZsKSB7XG4gIHJldHVybiBuZXcgKHRyYW5zcG9ydHMuRmlsZSkoe1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBuYW1lOiAnZmlsZScsXG4gICAgZmlsZW5hbWU6IGFyZ3MubG9nRmlsZSxcbiAgICBtYXhGaWxlczogMSxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBzdHJpcENvbG9yRm9ybWF0LFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgZm9ybWF0LnByaW50ZihmdW5jdGlvbiBwcmludEluZm8gKGluZm8pIHtcbiAgICAgICAgcmV0dXJuIGAke2luZm8udGltZXN0YW1wfSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIdHRwVHJhbnNwb3J0IChhcmdzLCBsb2dMdmwpIHtcbiAgbGV0IGhvc3QgPSAnMTI3LjAuMC4xJztcbiAgbGV0IHBvcnQgPSA5MDAzO1xuXG4gIGlmIChhcmdzLndlYmhvb2subWF0Y2goJzonKSkge1xuICAgIGNvbnN0IGhvc3RBbmRQb3J0ID0gYXJncy53ZWJob29rLnNwbGl0KCc6Jyk7XG4gICAgaG9zdCA9IGhvc3RBbmRQb3J0WzBdO1xuICAgIHBvcnQgPSBwYXJzZUludChob3N0QW5kUG9ydFsxXSwgMTApO1xuICB9XG5cbiAgcmV0dXJuIG5ldyAodHJhbnNwb3J0cy5IdHRwKSh7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIG5hbWU6ICdodHRwJyxcbiAgICBob3N0LFxuICAgIHBvcnQsXG4gICAgcGF0aDogJy8nLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIHN0cmlwQ29sb3JGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyAoaW5mbykge1xuICAgICAgICByZXR1cm4gYCR7aW5mby50aW1lc3RhbXB9ICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICB9KVxuICAgICksXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVUcmFuc3BvcnRzIChhcmdzKSB7XG4gIGxldCB0cmFuc3BvcnRzID0gW107XG4gIGxldCBjb25zb2xlTG9nTGV2ZWwgPSBudWxsO1xuICBsZXQgZmlsZUxvZ0xldmVsID0gbnVsbDtcblxuICBpZiAoYXJncy5sb2dsZXZlbCAmJiBhcmdzLmxvZ2xldmVsLm1hdGNoKCc6JykpIHtcbiAgICAvLyAtLWxvZy1sZXZlbCBhcmcgY2FuIG9wdGlvbmFsbHkgcHJvdmlkZSBkaWZmIGxvZ2dpbmcgbGV2ZWxzIGZvciBjb25zb2xlIGFuZCBmaWxlLCBzZXBhcmF0ZWQgYnkgYSBjb2xvblxuICAgIGNvbnN0IGx2bFBhaXIgPSBhcmdzLmxvZ2xldmVsLnNwbGl0KCc6Jyk7XG4gICAgY29uc29sZUxvZ0xldmVsID0gbHZsUGFpclswXSB8fCBjb25zb2xlTG9nTGV2ZWw7XG4gICAgZmlsZUxvZ0xldmVsID0gbHZsUGFpclsxXSB8fCBmaWxlTG9nTGV2ZWw7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZUxvZ0xldmVsID0gZmlsZUxvZ0xldmVsID0gYXJncy5sb2dsZXZlbDtcbiAgfVxuXG4gIHRyYW5zcG9ydHMucHVzaChjcmVhdGVDb25zb2xlVHJhbnNwb3J0KGFyZ3MsIGNvbnNvbGVMb2dMZXZlbCkpO1xuXG4gIGlmIChhcmdzLmxvZ0ZpbGUpIHtcbiAgICB0cnkge1xuICAgICAgLy8gaWYgd2UgZG9uJ3QgZGVsZXRlIHRoZSBsb2cgZmlsZSwgd2luc3RvbiB3aWxsIGFsd2F5cyBhcHBlbmQgYW5kIGl0IHdpbGwgZ3JvdyBpbmZpbml0ZWx5IGxhcmdlO1xuICAgICAgLy8gd2luc3RvbiBhbGxvd3MgZm9yIGxpbWl0aW5nIGxvZyBmaWxlIHNpemUsIGJ1dCBhcyBvZiA5LjIuMTQgdGhlcmUncyBhIHNlcmlvdXMgYnVnIHdoZW4gdXNpbmdcbiAgICAgIC8vIG1heEZpbGVzIGFuZCBtYXhTaXplIHRvZ2V0aGVyLiBodHRwczovL2dpdGh1Yi5jb20vZmxhdGlyb24vd2luc3Rvbi9pc3N1ZXMvMzk3XG4gICAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKGFyZ3MubG9nRmlsZSkpIHtcbiAgICAgICAgYXdhaXQgZnMudW5saW5rKGFyZ3MubG9nRmlsZSk7XG4gICAgICB9XG5cbiAgICAgIHRyYW5zcG9ydHMucHVzaChjcmVhdGVGaWxlVHJhbnNwb3J0KGFyZ3MsIGZpbGVMb2dMZXZlbCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZyhgVHJpZWQgdG8gYXR0YWNoIGxvZ2dpbmcgdG8gZmlsZSAnJHthcmdzLmxvZ0ZpbGV9JyBidXQgYW4gZXJyb3IgYCArXG4gICAgICAgICAgICAgICAgICBgb2NjdXJyZWQ6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChhcmdzLndlYmhvb2spIHtcbiAgICB0cnkge1xuICAgICAgdHJhbnNwb3J0cy5wdXNoKGNyZWF0ZUh0dHBUcmFuc3BvcnQoYXJncywgZmlsZUxvZ0xldmVsKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGBUcmllZCB0byBhdHRhY2ggbG9nZ2luZyB0byBIdHRwIGF0ICR7YXJncy53ZWJob29rfSBidXQgYCArXG4gICAgICAgICAgICAgICAgICBgYW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc3BvcnRzO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0IChhcmdzKSB7XG4gIC8vIHNldCBkZSBmYWN0byBwYXJhbSBwYXNzZWQgdG8gdGltZXN0YW1wIGZ1bmN0aW9uXG4gIHVzZUxvY2FsVGltZVpvbmUgPSBhcmdzLmxvY2FsVGltZXpvbmU7XG5cbiAgLy8gY2xlYW4gdXAgaW4gY2FzZSB3ZSBoYXZlIGluaXRpYXRlZCBiZWZvcmUgc2luY2UgbnBtbG9nIGlzIGEgZ2xvYmFsIG9iamVjdFxuICBjbGVhcigpO1xuXG4gIGxvZyA9IGNyZWF0ZUxvZ2dlcih7XG4gICAgdHJhbnNwb3J0czogYXdhaXQgY3JlYXRlVHJhbnNwb3J0cyhhcmdzKSxcbiAgICBsZXZlbHMsXG4gIH0pO1xuXG4gIC8vIENhcHR1cmUgbG9ncyBlbWl0dGVkIHZpYSBucG1sb2cgYW5kIHBhc3MgdGhlbSB0aHJvdWdoIHdpbnN0b25cbiAgbnBtbG9nLm9uKCdsb2cnLCAobG9nT2JqKSA9PiB7XG4gICAgY29uc3Qgd2luc3RvbkxldmVsID0gbnBtVG9XaW5zdG9uTGV2ZWxzW2xvZ09iai5sZXZlbF0gfHwgJ2luZm8nO1xuICAgIGxldCBtc2cgPSBsb2dPYmoubWVzc2FnZTtcbiAgICBpZiAobG9nT2JqLnByZWZpeCkge1xuICAgICAgY29uc3QgcHJlZml4ID0gYFske2xvZ09iai5wcmVmaXh9XWA7XG4gICAgICBtc2cgPSBgJHthcmdzLmxvZ05vQ29sb3JzID8gcHJlZml4IDogcHJlZml4Lm1hZ2VudGF9ICR7bXNnfWA7XG4gICAgfVxuICAgIGxvZ1t3aW5zdG9uTGV2ZWxdKG1zZyk7XG4gICAgaWYgKGFyZ3MubG9nSGFuZGxlciAmJiBfLmlzRnVuY3Rpb24oYXJncy5sb2dIYW5kbGVyKSkge1xuICAgICAgYXJncy5sb2dIYW5kbGVyKGxvZ09iai5sZXZlbCwgbXNnKTtcbiAgICB9XG5cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNsZWFyICgpIHtcbiAgaWYgKGxvZykge1xuICAgIGZvciAobGV0IHRyYW5zcG9ydCBvZiBfLmtleXMobG9nLnRyYW5zcG9ydHMpKSB7XG4gICAgICBsb2cucmVtb3ZlKHRyYW5zcG9ydCk7XG4gICAgfVxuICB9XG4gIG5wbWxvZy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2xvZycpO1xufVxuXG5cbmV4cG9ydCB7IGluaXQsIGNsZWFyIH07XG5leHBvcnQgZGVmYXVsdCBpbml0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUFBLGdCQUFPQyxXQUFQLENBQW1CQyxlQUFuQjs7QUFDQUMsTUFBTSxDQUFDQyxjQUFQLEdBQXdCRixlQUF4QjtBQUdBQSxnQkFBT0csS0FBUCxHQUFlLFFBQWY7QUFDQSxNQUFNQyxNQUFNLEdBQUc7RUFDYkMsS0FBSyxFQUFFLENBRE07RUFFYkMsSUFBSSxFQUFFLENBRk87RUFHYkMsSUFBSSxFQUFFLENBSE87RUFJYkMsS0FBSyxFQUFFO0FBSk0sQ0FBZjtBQU9BLE1BQU1DLE1BQU0sR0FBRztFQUNiSCxJQUFJLEVBQUUsTUFETztFQUViRCxLQUFLLEVBQUUsTUFGTTtFQUdiRSxJQUFJLEVBQUUsUUFITztFQUliQyxLQUFLLEVBQUU7QUFKTSxDQUFmO0FBT0EsTUFBTUUsa0JBQWtCLEdBQUc7RUFDekJDLEtBQUssRUFBRSxPQURrQjtFQUV6QkMsT0FBTyxFQUFFLE9BRmdCO0VBR3pCUCxLQUFLLEVBQUUsT0FIa0I7RUFJekJDLElBQUksRUFBRSxNQUptQjtFQUt6Qk8sSUFBSSxFQUFFLE1BTG1CO0VBTXpCTixJQUFJLEVBQUUsTUFObUI7RUFPekJDLEtBQUssRUFBRTtBQVBrQixDQUEzQjtBQVVBLElBQUlNLEdBQUcsR0FBRyxJQUFWO0FBQ0EsSUFBSUMsZ0JBQWdCLEdBQUcsS0FBdkI7O0FBR0EsTUFBTUMsZUFBZSxHQUFHQyxnQkFBT0MsU0FBUCxDQUFpQjtFQUN2Q0QsTUFBTSxHQUFJO0lBQ1IsSUFBSUUsSUFBSSxHQUFHLElBQUlDLElBQUosRUFBWDs7SUFDQSxJQUFJTCxnQkFBSixFQUFzQjtNQUNwQkksSUFBSSxHQUFHLElBQUlDLElBQUosQ0FBU0QsSUFBSSxDQUFDRSxPQUFMLEtBQWlC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
|
|
210
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2dnZXIiLCJwYXRjaExvZ2dlciIsIm5wbWxvZyIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibGV2ZWwiLCJsZXZlbHMiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuIiwiZXJyb3IiLCJjb2xvcnMiLCJucG1Ub1dpbnN0b25MZXZlbHMiLCJzaWxseSIsInZlcmJvc2UiLCJodHRwIiwibG9nIiwidXNlTG9jYWxUaW1lWm9uZSIsInRpbWVzdGFtcEZvcm1hdCIsImZvcm1hdCIsInRpbWVzdGFtcCIsImRhdGUiLCJEYXRlIiwidmFsdWVPZiIsImdldFRpbWV6b25lT2Zmc2V0IiwidG9JU09TdHJpbmciLCJyZXBsYWNlIiwidHJpbSIsImNvbG9yaXplRm9ybWF0IiwiY29sb3JpemUiLCJzdHJpcENvbG9yRm9ybWF0Iiwic3RyaXBDb2xvciIsImNvZGUiLCJtZXNzYWdlIiwiY3JlYXRlQ29uc29sZVRyYW5zcG9ydCIsImFyZ3MiLCJsb2dMdmwiLCJ0cmFuc3BvcnRzIiwiQ29uc29sZSIsIm5hbWUiLCJoYW5kbGVFeGNlcHRpb25zIiwiZXhpdE9uRXJyb3IiLCJqc29uIiwic3RkZXJyTGV2ZWxzIiwiY29tYmluZSIsImFkanVzdERlYnVnIiwibG9nTm9Db2xvcnMiLCJwcmludGYiLCJwcmludEluZm8iLCJsb2dUaW1lc3RhbXAiLCJjcmVhdGVGaWxlVHJhbnNwb3J0IiwiRmlsZSIsImZpbGVuYW1lIiwibG9nRmlsZSIsIm1heEZpbGVzIiwiY3JlYXRlSHR0cFRyYW5zcG9ydCIsImhvc3QiLCJwb3J0Iiwid2ViaG9vayIsIm1hdGNoIiwiaG9zdEFuZFBvcnQiLCJzcGxpdCIsInBhcnNlSW50IiwiSHR0cCIsInBhdGgiLCJjcmVhdGVUcmFuc3BvcnRzIiwiY29uc29sZUxvZ0xldmVsIiwiZmlsZUxvZ0xldmVsIiwibG9nbGV2ZWwiLCJsdmxQYWlyIiwicHVzaCIsImZzIiwiZXhpc3RzIiwidW5saW5rIiwiZSIsImNvbnNvbGUiLCJpbml0IiwibG9jYWxUaW1lem9uZSIsImNsZWFyIiwiY3JlYXRlTG9nZ2VyIiwib24iLCJsb2dPYmoiLCJ3aW5zdG9uTGV2ZWwiLCJtc2ciLCJwcmVmaXgiLCJtYWdlbnRhIiwibG9nSGFuZGxlciIsIl8iLCJpc0Z1bmN0aW9uIiwidHJhbnNwb3J0Iiwia2V5cyIsInJlbW92ZSIsInJlbW92ZUFsbExpc3RlbmVycyJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dzaW5rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcbmltcG9ydCB7Y3JlYXRlTG9nZ2VyLCBmb3JtYXQsIHRyYW5zcG9ydHN9IGZyb20gJ3dpbnN0b24nO1xuaW1wb3J0IHtmcywgbG9nZ2VyfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLy8gc2V0IHVwIGRpc3RyaWJ1dGVkIGxvZ2dpbmcgYmVmb3JlIGV2ZXJ5dGhpbmcgZWxzZVxubG9nZ2VyLnBhdGNoTG9nZ2VyKG5wbWxvZyk7XG5nbG9iYWwuX2dsb2JhbF9ucG1sb2cgPSBucG1sb2c7XG5cbi8vIG5wbWxvZyBpcyB1c2VkIG9ubHkgZm9yIGVtaXR0aW5nLCB3ZSB1c2Ugd2luc3RvbiBmb3Igb3V0cHV0XG5ucG1sb2cubGV2ZWwgPSAnaW5mbyc7XG5jb25zdCBsZXZlbHMgPSB7XG4gIGRlYnVnOiA0LFxuICBpbmZvOiAzLFxuICB3YXJuOiAyLFxuICBlcnJvcjogMSxcbn07XG5cbmNvbnN0IGNvbG9ycyA9IHtcbiAgaW5mbzogJ2N5YW4nLFxuICBkZWJ1ZzogJ2dyZXknLFxuICB3YXJuOiAneWVsbG93JyxcbiAgZXJyb3I6ICdyZWQnLFxufTtcblxuY29uc3QgbnBtVG9XaW5zdG9uTGV2ZWxzID0ge1xuICBzaWxseTogJ2RlYnVnJyxcbiAgdmVyYm9zZTogJ2RlYnVnJyxcbiAgZGVidWc6ICdkZWJ1ZycsXG4gIGluZm86ICdpbmZvJyxcbiAgaHR0cDogJ2luZm8nLFxuICB3YXJuOiAnd2FybicsXG4gIGVycm9yOiAnZXJyb3InLFxufTtcblxubGV0IGxvZyA9IG51bGw7XG5sZXQgdXNlTG9jYWxUaW1lWm9uZSA9IGZhbHNlO1xuXG4vLyBhZGQgdGhlIHRpbWVzdGFtcCBpbiB0aGUgY29ycmVjdCBmb3JtYXQgdG8gdGhlIGxvZyBpbmZvIG9iamVjdFxuY29uc3QgdGltZXN0YW1wRm9ybWF0ID0gZm9ybWF0LnRpbWVzdGFtcCh7XG4gIGZvcm1hdCgpIHtcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgaWYgKHVzZUxvY2FsVGltZVpvbmUpIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSAtIGRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcbiAgICB9XG4gICAgLy8gJzIwMTItMTEtMDRUMTQ6NTE6MDYuMTU3WicgLT4gJzIwMTItMTEtMDQgMTQ6NTE6MDY6MTU3J1xuICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvW1RaXS9nLCAnICcpLnJlcGxhY2UoL1xcLi9nLCAnOicpLnRyaW0oKTtcbiAgfSxcbn0pO1xuXG4vLyBzZXQgdGhlIGN1c3RvbSBjb2xvcnNcbmNvbnN0IGNvbG9yaXplRm9ybWF0ID0gZm9ybWF0LmNvbG9yaXplKHtcbiAgY29sb3JzLFxufSk7XG5cbi8vIFN0cmlwIHRoZSBjb2xvciBtYXJraW5nIHdpdGhpbiBtZXNzYWdlc1xuY29uc3Qgc3RyaXBDb2xvckZvcm1hdCA9IGZvcm1hdChmdW5jdGlvbiBzdHJpcENvbG9yKGluZm8pIHtcbiAgY29uc3QgY29kZSA9IC9cXHUwMDFiXFxbKFxcZCsoO1xcZCspKik/bS9nOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnRyb2wtcmVnZXhcbiAgaW5mby5tZXNzYWdlID0gaW5mby5tZXNzYWdlLnJlcGxhY2UoY29kZSwgJycpO1xuICByZXR1cm4gaW5mbztcbn0pKCk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVUcmFuc3BvcnQoYXJncywgbG9nTHZsKSB7XG4gIHJldHVybiBuZXcgdHJhbnNwb3J0cy5Db25zb2xlKHtcbiAgICAvLyBgbmFtZWAgaXMgdW5zdXBwb3J0ZWQgcGVyIHdpbnN0b24ncyB0eXBlIGRlY2xhcmF0aW9uc1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBuYW1lOiAnY29uc29sZScsXG4gICAgaGFuZGxlRXhjZXB0aW9uczogdHJ1ZSxcbiAgICBleGl0T25FcnJvcjogZmFsc2UsXG4gICAganNvbjogZmFsc2UsXG4gICAgbGV2ZWw6IGxvZ0x2bCxcbiAgICBzdGRlcnJMZXZlbHM6IFsnZXJyb3InXSxcbiAgICBmb3JtYXQ6IGZvcm1hdC5jb21iaW5lKFxuICAgICAgZm9ybWF0KGZ1bmN0aW9uIGFkanVzdERlYnVnKGluZm8pIHtcbiAgICAgICAgLy8gcHJlcGVuZCBkZWJ1ZyBtYXJrZXIsIGFuZCBzaGlmdCB0byBgaW5mb2AgbG9nIGxldmVsXG4gICAgICAgIGlmIChpbmZvLmxldmVsID09PSAnZGVidWcnKSB7XG4gICAgICAgICAgaW5mby5sZXZlbCA9ICdpbmZvJztcbiAgICAgICAgICBpbmZvLm1lc3NhZ2UgPSBgW2RlYnVnXSAke2luZm8ubWVzc2FnZX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbmZvO1xuICAgICAgfSkoKSxcbiAgICAgIHRpbWVzdGFtcEZvcm1hdCxcbiAgICAgIGFyZ3MubG9nTm9Db2xvcnMgPyBzdHJpcENvbG9yRm9ybWF0IDogY29sb3JpemVGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyhpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHthcmdzLmxvZ1RpbWVzdGFtcCA/IGAke2luZm8udGltZXN0YW1wfSAtIGAgOiAnJ30ke2luZm8ubWVzc2FnZX1gO1xuICAgICAgfSlcbiAgICApLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRmlsZVRyYW5zcG9ydChhcmdzLCBsb2dMdmwpIHtcbiAgcmV0dXJuIG5ldyB0cmFuc3BvcnRzLkZpbGUoe1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBuYW1lOiAnZmlsZScsXG4gICAgZmlsZW5hbWU6IGFyZ3MubG9nRmlsZSxcbiAgICBtYXhGaWxlczogMSxcbiAgICBoYW5kbGVFeGNlcHRpb25zOiB0cnVlLFxuICAgIGV4aXRPbkVycm9yOiBmYWxzZSxcbiAgICBqc29uOiBmYWxzZSxcbiAgICBsZXZlbDogbG9nTHZsLFxuICAgIGZvcm1hdDogZm9ybWF0LmNvbWJpbmUoXG4gICAgICBzdHJpcENvbG9yRm9ybWF0LFxuICAgICAgdGltZXN0YW1wRm9ybWF0LFxuICAgICAgZm9ybWF0LnByaW50ZihmdW5jdGlvbiBwcmludEluZm8oaW5mbykge1xuICAgICAgICByZXR1cm4gYCR7aW5mby50aW1lc3RhbXB9ICR7aW5mby5tZXNzYWdlfWA7XG4gICAgICB9KVxuICAgICksXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIdHRwVHJhbnNwb3J0KGFyZ3MsIGxvZ0x2bCkge1xuICBsZXQgaG9zdCA9ICcxMjcuMC4wLjEnO1xuICBsZXQgcG9ydCA9IDkwMDM7XG5cbiAgaWYgKGFyZ3Mud2ViaG9vay5tYXRjaCgnOicpKSB7XG4gICAgY29uc3QgaG9zdEFuZFBvcnQgPSBhcmdzLndlYmhvb2suc3BsaXQoJzonKTtcbiAgICBob3N0ID0gaG9zdEFuZFBvcnRbMF07XG4gICAgcG9ydCA9IHBhcnNlSW50KGhvc3RBbmRQb3J0WzFdLCAxMCk7XG4gIH1cblxuICByZXR1cm4gbmV3IHRyYW5zcG9ydHMuSHR0cCh7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIG5hbWU6ICdodHRwJyxcbiAgICBob3N0LFxuICAgIHBvcnQsXG4gICAgcGF0aDogJy8nLFxuICAgIGhhbmRsZUV4Y2VwdGlvbnM6IHRydWUsXG4gICAgZXhpdE9uRXJyb3I6IGZhbHNlLFxuICAgIGpzb246IGZhbHNlLFxuICAgIGxldmVsOiBsb2dMdmwsXG4gICAgZm9ybWF0OiBmb3JtYXQuY29tYmluZShcbiAgICAgIHN0cmlwQ29sb3JGb3JtYXQsXG4gICAgICBmb3JtYXQucHJpbnRmKGZ1bmN0aW9uIHByaW50SW5mbyhpbmZvKSB7XG4gICAgICAgIHJldHVybiBgJHtpbmZvLnRpbWVzdGFtcH0gJHtpbmZvLm1lc3NhZ2V9YDtcbiAgICAgIH0pXG4gICAgKSxcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRyYW5zcG9ydHMoYXJncykge1xuICBsZXQgdHJhbnNwb3J0cyA9IFtdO1xuICBsZXQgY29uc29sZUxvZ0xldmVsID0gbnVsbDtcbiAgbGV0IGZpbGVMb2dMZXZlbCA9IG51bGw7XG5cbiAgaWYgKGFyZ3MubG9nbGV2ZWwgJiYgYXJncy5sb2dsZXZlbC5tYXRjaCgnOicpKSB7XG4gICAgLy8gLS1sb2ctbGV2ZWwgYXJnIGNhbiBvcHRpb25hbGx5IHByb3ZpZGUgZGlmZiBsb2dnaW5nIGxldmVscyBmb3IgY29uc29sZSBhbmQgZmlsZSwgc2VwYXJhdGVkIGJ5IGEgY29sb25cbiAgICBjb25zdCBsdmxQYWlyID0gYXJncy5sb2dsZXZlbC5zcGxpdCgnOicpO1xuICAgIGNvbnNvbGVMb2dMZXZlbCA9IGx2bFBhaXJbMF0gfHwgY29uc29sZUxvZ0xldmVsO1xuICAgIGZpbGVMb2dMZXZlbCA9IGx2bFBhaXJbMV0gfHwgZmlsZUxvZ0xldmVsO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGVMb2dMZXZlbCA9IGZpbGVMb2dMZXZlbCA9IGFyZ3MubG9nbGV2ZWw7XG4gIH1cblxuICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlQ29uc29sZVRyYW5zcG9ydChhcmdzLCBjb25zb2xlTG9nTGV2ZWwpKTtcblxuICBpZiAoYXJncy5sb2dGaWxlKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGlmIHdlIGRvbid0IGRlbGV0ZSB0aGUgbG9nIGZpbGUsIHdpbnN0b24gd2lsbCBhbHdheXMgYXBwZW5kIGFuZCBpdCB3aWxsIGdyb3cgaW5maW5pdGVseSBsYXJnZTtcbiAgICAgIC8vIHdpbnN0b24gYWxsb3dzIGZvciBsaW1pdGluZyBsb2cgZmlsZSBzaXplLCBidXQgYXMgb2YgOS4yLjE0IHRoZXJlJ3MgYSBzZXJpb3VzIGJ1ZyB3aGVuIHVzaW5nXG4gICAgICAvLyBtYXhGaWxlcyBhbmQgbWF4U2l6ZSB0b2dldGhlci4gaHR0cHM6Ly9naXRodWIuY29tL2ZsYXRpcm9uL3dpbnN0b24vaXNzdWVzLzM5N1xuICAgICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhhcmdzLmxvZ0ZpbGUpKSB7XG4gICAgICAgIGF3YWl0IGZzLnVubGluayhhcmdzLmxvZ0ZpbGUpO1xuICAgICAgfVxuXG4gICAgICB0cmFuc3BvcnRzLnB1c2goY3JlYXRlRmlsZVRyYW5zcG9ydChhcmdzLCBmaWxlTG9nTGV2ZWwpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBUcmllZCB0byBhdHRhY2ggbG9nZ2luZyB0byBmaWxlICcke2FyZ3MubG9nRmlsZX0nIGJ1dCBhbiBlcnJvciBgICsgYG9jY3VycmVkOiAke2UubWVzc2FnZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChhcmdzLndlYmhvb2spIHtcbiAgICB0cnkge1xuICAgICAgdHJhbnNwb3J0cy5wdXNoKGNyZWF0ZUh0dHBUcmFuc3BvcnQoYXJncywgZmlsZUxvZ0xldmVsKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgVHJpZWQgdG8gYXR0YWNoIGxvZ2dpbmcgdG8gSHR0cCBhdCAke2FyZ3Mud2ViaG9va30gYnV0IGAgK1xuICAgICAgICAgIGBhbiBlcnJvciBvY2N1cnJlZDogJHtlLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNwb3J0cztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdChhcmdzKSB7XG4gIG5wbWxvZy5sZXZlbCA9ICdzaWxlbnQnO1xuICAvLyBzZXQgZGUgZmFjdG8gcGFyYW0gcGFzc2VkIHRvIHRpbWVzdGFtcCBmdW5jdGlvblxuICB1c2VMb2NhbFRpbWVab25lID0gYXJncy5sb2NhbFRpbWV6b25lO1xuXG4gIC8vIGNsZWFuIHVwIGluIGNhc2Ugd2UgaGF2ZSBpbml0aWF0ZWQgYmVmb3JlIHNpbmNlIG5wbWxvZyBpcyBhIGdsb2JhbCBvYmplY3RcbiAgY2xlYXIoKTtcblxuICBsb2cgPSBjcmVhdGVMb2dnZXIoe1xuICAgIHRyYW5zcG9ydHM6IGF3YWl0IGNyZWF0ZVRyYW5zcG9ydHMoYXJncyksXG4gICAgbGV2ZWxzLFxuICB9KTtcblxuICAvLyBDYXB0dXJlIGxvZ3MgZW1pdHRlZCB2aWEgbnBtbG9nIGFuZCBwYXNzIHRoZW0gdGhyb3VnaCB3aW5zdG9uXG4gIG5wbWxvZy5vbignbG9nJywgKGxvZ09iaikgPT4ge1xuICAgIGNvbnN0IHdpbnN0b25MZXZlbCA9IG5wbVRvV2luc3RvbkxldmVsc1tsb2dPYmoubGV2ZWxdIHx8ICdpbmZvJztcbiAgICBsZXQgbXNnID0gbG9nT2JqLm1lc3NhZ2U7XG4gICAgaWYgKGxvZ09iai5wcmVmaXgpIHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IGBbJHtsb2dPYmoucHJlZml4fV1gO1xuICAgICAgbXNnID0gYCR7YXJncy5sb2dOb0NvbG9ycyA/IHByZWZpeCA6IHByZWZpeC5tYWdlbnRhfSAke21zZ31gO1xuICAgIH1cbiAgICBsb2dbd2luc3RvbkxldmVsXShtc2cpO1xuICAgIGlmIChhcmdzLmxvZ0hhbmRsZXIgJiYgXy5pc0Z1bmN0aW9uKGFyZ3MubG9nSGFuZGxlcikpIHtcbiAgICAgIGFyZ3MubG9nSGFuZGxlcihsb2dPYmoubGV2ZWwsIG1zZyk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gY2xlYXIoKSB7XG4gIGlmIChsb2cpIHtcbiAgICBmb3IgKGxldCB0cmFuc3BvcnQgb2YgXy5rZXlzKGxvZy50cmFuc3BvcnRzKSkge1xuICAgICAgbG9nLnJlbW92ZSh0cmFuc3BvcnQpO1xuICAgIH1cbiAgfVxuICBucG1sb2cucmVtb3ZlQWxsTGlzdGVuZXJzKCdsb2cnKTtcbn1cblxuZXhwb3J0IHtpbml0LCBjbGVhcn07XG5leHBvcnQgZGVmYXVsdCBpbml0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0FBLGVBQUEsQ0FBT0MsV0FBUCxDQUFtQkMsZUFBbkI7O0FBQ0FDLE1BQU0sQ0FBQ0MsY0FBUCxHQUF3QkYsZUFBeEI7QUFHQUEsZUFBQSxDQUFPRyxLQUFQLEdBQWUsTUFBZjtBQUNBLE1BQU1DLE1BQU0sR0FBRztFQUNiQyxLQUFLLEVBQUUsQ0FETTtFQUViQyxJQUFJLEVBQUUsQ0FGTztFQUdiQyxJQUFJLEVBQUUsQ0FITztFQUliQyxLQUFLLEVBQUU7QUFKTSxDQUFmO0FBT0EsTUFBTUMsTUFBTSxHQUFHO0VBQ2JILElBQUksRUFBRSxNQURPO0VBRWJELEtBQUssRUFBRSxNQUZNO0VBR2JFLElBQUksRUFBRSxRQUhPO0VBSWJDLEtBQUssRUFBRTtBQUpNLENBQWY7QUFPQSxNQUFNRSxrQkFBa0IsR0FBRztFQUN6QkMsS0FBSyxFQUFFLE9BRGtCO0VBRXpCQyxPQUFPLEVBQUUsT0FGZ0I7RUFHekJQLEtBQUssRUFBRSxPQUhrQjtFQUl6QkMsSUFBSSxFQUFFLE1BSm1CO0VBS3pCTyxJQUFJLEVBQUUsTUFMbUI7RUFNekJOLElBQUksRUFBRSxNQU5tQjtFQU96QkMsS0FBSyxFQUFFO0FBUGtCLENBQTNCO0FBVUEsSUFBSU0sR0FBRyxHQUFHLElBQVY7QUFDQSxJQUFJQyxnQkFBZ0IsR0FBRyxLQUF2Qjs7QUFHQSxNQUFNQyxlQUFlLEdBQUdDLGVBQUEsQ0FBT0MsU0FBUCxDQUFpQjtFQUN2Q0QsTUFBTSxHQUFHO0lBQ1AsSUFBSUUsSUFBSSxHQUFHLElBQUlDLElBQUosRUFBWDs7SUFDQSxJQUFJTCxnQkFBSixFQUFzQjtNQUNwQkksSUFBSSxHQUFHLElBQUlDLElBQUosQ0FBU0QsSUFBSSxDQUFDRSxP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
|
package/build/lib/main.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
export { readConfigFile } from "./config-file";
|
|
3
|
-
export type DriverType = import('
|
|
4
|
-
export type PluginType = import('
|
|
5
|
-
export type DriverClass = import('
|
|
6
|
-
export type PluginClass = import('
|
|
7
|
-
export type WithServerSubcommand = import('
|
|
3
|
+
export type DriverType = import('@appium/types').DriverType;
|
|
4
|
+
export type PluginType = import('@appium/types').PluginType;
|
|
5
|
+
export type DriverClass = import('@appium/types').DriverClass;
|
|
6
|
+
export type PluginClass = import('@appium/types').PluginClass;
|
|
7
|
+
export type WithServerSubcommand = import('appium/types').WithServerSubcommand;
|
|
8
|
+
export type DriverNameMap = import('./extension').DriverNameMap;
|
|
9
|
+
export type PluginNameMap = import('./extension').PluginNameMap;
|
|
8
10
|
/**
|
|
9
11
|
* Literally an empty object
|
|
10
12
|
*/
|
|
@@ -13,15 +15,15 @@ export type ServerInitData = {
|
|
|
13
15
|
/**
|
|
14
16
|
* - The Appium driver
|
|
15
17
|
*/
|
|
16
|
-
appiumDriver: AppiumDriver;
|
|
18
|
+
appiumDriver: import('./appium').AppiumDriver;
|
|
17
19
|
/**
|
|
18
20
|
* - The parsed arguments
|
|
19
21
|
*/
|
|
20
|
-
parsedArgs: import('
|
|
22
|
+
parsedArgs: import('appium/types').ParsedArgs;
|
|
21
23
|
};
|
|
22
24
|
export type ServerInitResult = ServerInitData & import('./extension').ExtensionConfigs;
|
|
23
|
-
export type Args<T = import("
|
|
24
|
-
export type ParsedArgs<T = import("
|
|
25
|
+
export type Args<T = import("appium/types").WithServerSubcommand> = import('appium/types').Args<T>;
|
|
26
|
+
export type ParsedArgs<T = import("appium/types").WithServerSubcommand> = import('appium/types').ParsedArgs<T>;
|
|
25
27
|
/**
|
|
26
28
|
* Initializes Appium's config. Starts server if appropriate and resolves the
|
|
27
29
|
* server instance if so; otherwise resolves w/ `undefined`.
|
|
@@ -29,7 +31,7 @@ export type ParsedArgs<T = import("../types").WithServerSubcommand> = import('..
|
|
|
29
31
|
* @param {Args<T>} [args] - Arguments from CLI or otherwise
|
|
30
32
|
* @returns {Promise<import('@appium/types').AppiumServer|undefined>}
|
|
31
33
|
*/
|
|
32
|
-
export function main<T = import("
|
|
34
|
+
export function main<T = import("appium/types").WithServerSubcommand>(args?: Args<T> | undefined): Promise<import('@appium/types').AppiumServer | undefined>;
|
|
33
35
|
/**
|
|
34
36
|
* Initializes Appium, but does not start the server.
|
|
35
37
|
*
|
|
@@ -46,9 +48,8 @@ export function main<T = import("../types").WithServerSubcommand>(args?: Args<T>
|
|
|
46
48
|
* await init(options);
|
|
47
49
|
* const schema = getSchema(); // entire config schema including plugins and drivers
|
|
48
50
|
*/
|
|
49
|
-
export function init<T = import("
|
|
51
|
+
export function init<T = import("appium/types").WithServerSubcommand>(args?: Args<T> | undefined): Promise<ServerInitResult | ExtCommandInitResult>;
|
|
50
52
|
export const resolveAppiumHome: ((cwd?: string | undefined) => Promise<string>) & _.MemoizedFunction;
|
|
51
|
-
import { AppiumDriver } from "./appium";
|
|
52
53
|
import _ from "lodash";
|
|
53
54
|
export { finalizeSchema, getSchema, validate } from "./schema/schema";
|
|
54
55
|
//# sourceMappingURL=main.d.ts.map
|
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":";;yBAkYa,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;AA1ND;;;;;;;;;;;;;;;GAeG;AACH,mGAPa,QAAQ,gBAAgB,GAAG,oBAAoB,CAAC,CA4G5D"}
|
package/build/lib/main.js
CHANGED
|
@@ -143,11 +143,11 @@ function logServerPort(address, port) {
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
function getServerUpdaters(driverClasses, pluginClasses) {
|
|
146
|
-
return _lodash.default.compact(_lodash.default.map([...driverClasses, ...pluginClasses], 'updateServer'));
|
|
146
|
+
return _lodash.default.compact(_lodash.default.map([...driverClasses.keys(), ...pluginClasses.keys()], 'updateServer'));
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
function getExtraMethodMap(driverClasses, pluginClasses) {
|
|
150
|
-
return [...driverClasses, ...pluginClasses].reduce((map, klass) => {
|
|
150
|
+
return [...driverClasses.keys(), ...pluginClasses.keys()].reduce((map, klass) => {
|
|
151
151
|
var _klass$newMethodMap;
|
|
152
152
|
|
|
153
153
|
return { ...map,
|
|
@@ -331,11 +331,11 @@ async function main(args) {
|
|
|
331
331
|
|
|
332
332
|
logServerPort(parsedArgs.address, parsedArgs.port);
|
|
333
333
|
driverConfig.print();
|
|
334
|
-
pluginConfig.print(pluginClasses.
|
|
334
|
+
pluginConfig.print([...pluginClasses.values()]);
|
|
335
335
|
return server;
|
|
336
336
|
}
|
|
337
337
|
|
|
338
338
|
if (require.main === module) {
|
|
339
339
|
(0, _asyncbox.asyncify)(main);
|
|
340
340
|
}
|
|
341
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvbHZlQXBwaXVtSG9tZSIsImVudiIsInByZWZsaWdodENoZWNrcyIsImFyZ3MiLCJ0aHJvd0luc3RlYWRPZkV4aXQiLCJsb25nU3RhY2t0cmFjZSIsInJlcXVpcmUiLCJhc3luY190cmFjZV9saW1pdCIsInNob3dCdWlsZEluZm8iLCJwcm9jZXNzIiwiZXhpdCIsInRtcERpciIsImVyciIsImxvZ2dlciIsImVycm9yIiwibWVzc2FnZSIsInJlZCIsImxvZ05vbkRlZmF1bHRBcmdzV2FybmluZyIsImluZm8iLCJsb2dEZWZhdWx0Q2FwYWJpbGl0aWVzV2FybmluZyIsImNhcHMiLCJsb2dTdGFydHVwSW5mbyIsIndlbGNvbWUiLCJBUFBJVU1fVkVSIiwiYXBwaXVtUmV2Iiwic2hvd0FyZ3MiLCJfIiwic2l6ZSIsImlzRW1wdHkiLCJkZWZhdWx0Q2FwYWJpbGl0aWVzIiwibG9nU2VydmVyUG9ydCIsImFkZHJlc3MiLCJwb3J0IiwibG9nTWVzc2FnZSIsImdldFNlcnZlclVwZGF0ZXJzIiwiZHJpdmVyQ2xhc3NlcyIsInBsdWdpbkNsYXNzZXMiLCJjb21wYWN0IiwibWFwIiwiZ2V0RXh0cmFNZXRob2RNYXAiLCJyZWR1Y2UiLCJrbGFzcyIsIm5ld01ldGhvZE1hcCIsImFyZVNlcnZlckNvbW1hbmRBcmdzIiwic3ViY29tbWFuZCIsIlNFUlZFUl9TVUJDT01NQU5EIiwiaW5pdCIsImFwcGl1bUhvbWUiLCJkcml2ZXJDb25maWciLCJwbHVnaW5Db25maWciLCJwYXJzZXIiLCJwcmVDb25maWdBcmdzIiwicGFyc2VBcmdzIiwiY29uZmlnUmVzdWx0IiwiY29uZmlnRmlsZSIsImVycm9ycyIsIkVycm9yIiwiZmlsZXBhdGgiLCJyZWFzb24iLCJEUklWRVJfVFlQRSIsIlBMVUdJTl9UWVBFIiwiZGVmYXVsdHMiLCJzZXJ2ZXJBcmdzIiwiZGVmYXVsdHNEZWVwIiwiY29uZmlnIiwic2VydmVyIiwic2hvd0NvbmZpZyIsImxvZ0ZpbHRlcnMiLCJpc3N1ZXMiLCJydWxlcyIsImxvZ0ZhY3RvcnkiLCJsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIiwiSlNPTiIsInN0cmluZ2lmeSIsIndhcm4iLCJ1dGlsIiwicGx1cmFsaXplIiwibGVuZ3RoIiwiYXBwaXVtRHJpdmVyIiwiQXBwaXVtRHJpdmVyIiwicGFyc2VkQXJncyIsIm1haW4iLCJ1c2VQbHVnaW5zIiwicm91dGVDb25maWd1cmluZ0Z1bmN0aW9uIiwidXNlRHJpdmVycyIsInNlcnZlclVwZGF0ZXJzIiwiZXh0cmFNZXRob2RNYXAiLCJzZXJ2ZXJPcHRzIiwiaG9zdG5hbWUiLCJhbGxvd0NvcnMiLCJiYXNlUGF0aCIsImtlZXBBbGl2ZVRpbWVvdXQiLCJkZWJ1ZyIsInN0YWNrIiwibm9kZWNvbmZpZyIsImNsb3NlIiwic2lnbmFsIiwib25jZSIsIm9uU2lnbmFsIiwiZGVsZXRlQWxsU2Vzc2lvbnMiLCJmb3JjZSIsImUiLCJwcmludCIsInAiLCJwbHVnaW5OYW1lIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL21haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5cbmltcG9ydCB7IGluaXQgYXMgbG9nc2lua0luaXQgfSBmcm9tICcuL2xvZ3NpbmsnOyAvLyB0aGlzIGltcG9ydCBuZWVkcyB0byBjb21lIGZpcnN0IHNpbmNlIGl0IHNldHMgdXAgZ2xvYmFsIG5wbWxvZ1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7IC8vIGxvZ2dlciBuZWVkcyB0byByZW1haW4gc2Vjb25kXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gYXMgbWFrZVJvdXRlciwgc2VydmVyIGFzIGJhc2VTZXJ2ZXIgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IGxvZ2dlciBhcyBsb2dGYWN0b3J5LCB1dGlsLCBlbnYgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgYXN5bmNpZnkgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQXBwaXVtRHJpdmVyIH0gZnJvbSAnLi9hcHBpdW0nO1xuaW1wb3J0IHsgcnVuRXh0ZW5zaW9uQ29tbWFuZCB9IGZyb20gJy4vY2xpL2V4dGVuc2lvbic7XG5pbXBvcnQgeyBnZXRQYXJzZXIgfSBmcm9tICcuL2NsaS9wYXJzZXInO1xuaW1wb3J0IHsgQVBQSVVNX1ZFUiwgY2hlY2tOb2RlT2ssIGdldEdpdFJldiwgZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MsIHNob3dDb25maWcsIHNob3dCdWlsZEluZm8sIHZhbGlkYXRlVG1wRGlyLCB3YXJuTm9kZURlcHJlY2F0aW9ucyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IHJlYWRDb25maWdGaWxlIH0gZnJvbSAnLi9jb25maWctZmlsZSc7XG5pbXBvcnQgeyBsb2FkRXh0ZW5zaW9ucywgZ2V0QWN0aXZlUGx1Z2lucywgZ2V0QWN0aXZlRHJpdmVycyB9IGZyb20gJy4vZXh0ZW5zaW9uJztcbmltcG9ydCB7IERSSVZFUl9UWVBFLCBQTFVHSU5fVFlQRSwgU0VSVkVSX1NVQkNPTU1BTkQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgcmVnaXN0ZXJOb2RlIGZyb20gJy4vZ3JpZC1yZWdpc3Rlcic7XG5pbXBvcnQgeyBnZXREZWZhdWx0c0ZvclNjaGVtYSwgdmFsaWRhdGUgfSBmcm9tICcuL3NjaGVtYS9zY2hlbWEnO1xuaW1wb3J0IHsgaW5zcGVjdCB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCB7cmVzb2x2ZUFwcGl1bUhvbWV9ID0gZW52O1xuXG4vKipcbiAqXG4gKiBAcGFyYW0ge1BhcnNlZEFyZ3N9IGFyZ3NcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Rocm93SW5zdGVhZE9mRXhpdF1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJlZmxpZ2h0Q2hlY2tzIChhcmdzLCB0aHJvd0luc3RlYWRPZkV4aXQgPSBmYWxzZSkge1xuICB0cnkge1xuICAgIGNoZWNrTm9kZU9rKCk7XG4gICAgaWYgKGFyZ3MubG9uZ1N0YWNrdHJhY2UpIHtcbiAgICAgIHJlcXVpcmUoJ2xvbmdqb2huJykuYXN5bmNfdHJhY2VfbGltaXQgPSAtMTtcbiAgICB9XG4gICAgaWYgKGFyZ3Muc2hvd0J1aWxkSW5mbykge1xuICAgICAgYXdhaXQgc2hvd0J1aWxkSW5mbygpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH1cbiAgICB3YXJuTm9kZURlcHJlY2F0aW9ucygpO1xuXG4gICAgdmFsaWRhdGUoYXJncyk7XG5cbiAgICBpZiAoYXJncy50bXBEaXIpIHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlVG1wRGlyKGFyZ3MudG1wRGlyKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihlcnIubWVzc2FnZS5yZWQpO1xuICAgIGlmICh0aHJvd0luc3RlYWRPZkV4aXQpIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FyZ3N9IGFyZ3NcbiAqL1xuZnVuY3Rpb24gbG9nTm9uRGVmYXVsdEFyZ3NXYXJuaW5nIChhcmdzKSB7XG4gIGxvZ2dlci5pbmZvKCdOb24tZGVmYXVsdCBzZXJ2ZXIgYXJnczonKTtcbiAgaW5zcGVjdChhcmdzKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FyZ3NbJ2RlZmF1bHRDYXBhYmlsaXRpZXMnXX0gY2Fwc1xuICovXG5mdW5jdGlvbiBsb2dEZWZhdWx0Q2FwYWJpbGl0aWVzV2FybmluZyAoY2Fwcykge1xuICBsb2dnZXIuaW5mbygnRGVmYXVsdCBjYXBhYmlsaXRpZXMsIHdoaWNoIHdpbGwgYmUgYWRkZWQgdG8gZWFjaCByZXF1ZXN0ICcgK1xuICAgICAgICAgICAgICAndW5sZXNzIG92ZXJyaWRkZW4gYnkgZGVzaXJlZCBjYXBhYmlsaXRpZXM6Jyk7XG4gIGluc3BlY3QoY2Fwcyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtQYXJzZWRBcmdzfSBhcmdzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvZ1N0YXJ0dXBJbmZvIChhcmdzKSB7XG4gIGxldCB3ZWxjb21lID0gYFdlbGNvbWUgdG8gQXBwaXVtIHYke0FQUElVTV9WRVJ9YDtcbiAgbGV0IGFwcGl1bVJldiA9IGF3YWl0IGdldEdpdFJldigpO1xuICBpZiAoYXBwaXVtUmV2KSB7XG4gICAgd2VsY29tZSArPSBgIChSRVYgJHthcHBpdW1SZXZ9KWA7XG4gIH1cbiAgbG9nZ2VyLmluZm8od2VsY29tZSk7XG5cbiAgbGV0IHNob3dBcmdzID0gZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MoYXJncyk7XG4gIGlmIChfLnNpemUoc2hvd0FyZ3MpKSB7XG4gICAgbG9nTm9uRGVmYXVsdEFyZ3NXYXJuaW5nKHNob3dBcmdzKTtcbiAgfVxuICBpZiAoIV8uaXNFbXB0eShhcmdzLmRlZmF1bHRDYXBhYmlsaXRpZXMpKSB7XG4gICAgbG9nRGVmYXVsdENhcGFiaWxpdGllc1dhcm5pbmcoYXJncy5kZWZhdWx0Q2FwYWJpbGl0aWVzKTtcbiAgfVxuICAvLyBUT0RPOiBicmluZyBiYWNrIGxvZ2xldmVsIHJlcG9ydGluZyBiZWxvdyBvbmNlIGxvZ2dlciBpcyBmbHVzaGVkIG91dFxuICAvLyBsb2dnZXIuaW5mbygnQ29uc29sZSBMb2dMZXZlbDogJyArIGxvZ2dlci50cmFuc3BvcnRzLmNvbnNvbGUubGV2ZWwpO1xuICAvLyBpZiAobG9nZ2VyLnRyYW5zcG9ydHMuZmlsZSkge1xuICAvLyAgIGxvZ2dlci5pbmZvKCdGaWxlIExvZ0xldmVsOiAnICsgbG9nZ2VyLnRyYW5zcG9ydHMuZmlsZS5sZXZlbCk7XG4gIC8vIH1cbn1cblxuLyoqXG4gKiBMb2dzIHRoZSBhZGRyZXNzIGFuZCBwb3J0IHRoZSBzZXJ2ZXIgaXMgbGlzdGVuaW5nIG9uXG4gKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIEFkZHJlc3NcbiAqIEBwYXJhbSB7bnVtYmVyfSBwb3J0IC0gUG9ydFxuICogQHJldHVybnMge3ZvaWR9XG4gKi9cbmZ1bmN0aW9uIGxvZ1NlcnZlclBvcnQgKGFkZHJlc3MsIHBvcnQpIHtcbiAgbGV0IGxvZ01lc3NhZ2UgPSBgQXBwaXVtIFJFU1QgaHR0cCBpbnRlcmZhY2UgbGlzdGVuZXIgc3RhcnRlZCBvbiBgICtcbiAgICAgICAgICAgICAgICAgICBgJHthZGRyZXNzfToke3BvcnR9YDtcbiAgbG9nZ2VyLmluZm8obG9nTWVzc2FnZSk7XG59XG5cbi8qKlxuICogR2V0cyBhIGxpc3Qgb2YgYHVwZGF0ZVNlcnZlcmAgZnVuY3Rpb25zIGZyb20gYWxsIGV4dGVuc2lvbnNcbiAqIEBwYXJhbSB7RHJpdmVyQ2xhc3NbXX0gZHJpdmVyQ2xhc3Nlc1xuICogQHBhcmFtIHtQbHVnaW5DbGFzc1tdfSBwbHVnaW5DbGFzc2VzXG4gKiBAcmV0dXJucyB7aW1wb3J0KCdAYXBwaXVtL2Jhc2UtZHJpdmVyL2xpYi9iYXNlZHJpdmVyL2RyaXZlcicpLlVwZGF0ZVNlcnZlckNhbGxiYWNrW119XG4gKi9cbmZ1bmN0aW9uIGdldFNlcnZlclVwZGF0ZXJzIChkcml2ZXJDbGFzc2VzLCBwbHVnaW5DbGFzc2VzKSB7XG4gIHJldHVybiBfLmNvbXBhY3QoXy5tYXAoWy4uLmRyaXZlckNsYXNzZXMsIC4uLnBsdWdpbkNsYXNzZXNdLCAndXBkYXRlU2VydmVyJykpO1xufVxuXG4vKipcbiAqIE1ha2VzIGEgYmlnIGBNZXRob2RNYXBgIGZyb20gYWxsIHRoZSBsaXR0bGUgYE1ldGhvZE1hcGBzIGluIHRoZSBleHRlbnNpb25zXG4gKiBAcGFyYW0ge0RyaXZlckNsYXNzW119IGRyaXZlckNsYXNzZXNcbiAqIEBwYXJhbSB7UGx1Z2luQ2xhc3NbXX0gcGx1Z2luQ2xhc3Nlc1xuICogQHJldHVybnMge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLk1ldGhvZE1hcH1cbiAqL1xuZnVuY3Rpb24gZ2V0RXh0cmFNZXRob2RNYXAgKGRyaXZlckNsYXNzZXMsIHBsdWdpbkNsYXNzZXMpIHtcbiAgcmV0dXJuIFsuLi5kcml2ZXJDbGFzc2VzLCAuLi5wbHVnaW5DbGFzc2VzXS5yZWR1Y2UoXG4gICAgKG1hcCwga2xhc3MpID0+ICh7Li4ubWFwLCAuLi4vKiogQHR5cGUge0RyaXZlckNsYXNzfSAqLyhrbGFzcykubmV3TWV0aG9kTWFwID8/IHt9fSksXG4gICAge31cbiAgKTtcbn1cblxuLyoqXG4gKiBAdGVtcGxhdGUgW1Q9V2l0aFNlcnZlclN1YmNvbW1hbmRdXG4gKiBAcGFyYW0ge0FyZ3M8VD59IGFyZ3NcbiAqIEByZXR1cm5zIHthcmdzIGlzIEFyZ3M8V2l0aFNlcnZlclN1YmNvbW1hbmQ+fVxuICovXG5mdW5jdGlvbiBhcmVTZXJ2ZXJDb21tYW5kQXJncyAoYXJncykge1xuICByZXR1cm4gYXJncy5zdWJjb21tYW5kID09PSBTRVJWRVJfU1VCQ09NTUFORDtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyBBcHBpdW0sIGJ1dCBkb2VzIG5vdCBzdGFydCB0aGUgc2VydmVyLlxuICpcbiAqIFVzZSB0aGlzIHRvIGdldCBhdCB0aGUgY29uZmlndXJhdGlvbiBzY2hlbWEuXG4gKlxuICogSWYgYGFyZ3NgIGNvbnRhaW5zIGEgbm9uLWVtcHR5IGBzdWJjb21tYW5kYCB3aGljaCBpcyBub3QgYHNlcnZlcmAsIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gYW4gZW1wdHkgb2JqZWN0LlxuICpcbiAqIEB0ZW1wbGF0ZSBbVD1XaXRoU2VydmVyU3ViY29tbWFuZF1cbiAqIEBwYXJhbSB7QXJnczxUPn0gW2FyZ3NdIC0gUGFydGlhbCBhcmdzIChwcm9nYW1tYXRpYyB1c2FnZSBvbmx5KVxuICogQHJldHVybnMge1Byb21pc2U8U2VydmVySW5pdFJlc3VsdCB8IEV4dENvbW1hbmRJbml0UmVzdWx0Pn1cbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQge2luaXQsIGdldFNjaGVtYX0gZnJvbSAnYXBwaXVtJztcbiAqIGNvbnN0IG9wdGlvbnMgPSB7fTsgLy8gY29uZmlnIG9iamVjdFxuICogYXdhaXQgaW5pdChvcHRpb25zKTtcbiAqIGNvbnN0IHNjaGVtYSA9IGdldFNjaGVtYSgpOyAvLyBlbnRpcmUgY29uZmlnIHNjaGVtYSBpbmNsdWRpbmcgcGx1Z2lucyBhbmQgZHJpdmVyc1xuICovXG5hc3luYyBmdW5jdGlvbiBpbml0IChhcmdzKSB7XG4gIGNvbnN0IGFwcGl1bUhvbWUgPSBhcmdzPy5hcHBpdW1Ib21lID8/IGF3YWl0IHJlc29sdmVBcHBpdW1Ib21lKCk7XG5cbiAgY29uc3Qge2RyaXZlckNvbmZpZywgcGx1Z2luQ29uZmlnfSA9IGF3YWl0IGxvYWRFeHRlbnNpb25zKGFwcGl1bUhvbWUpO1xuXG4gIGNvbnN0IHBhcnNlciA9IGdldFBhcnNlcigpO1xuICBsZXQgdGhyb3dJbnN0ZWFkT2ZFeGl0ID0gZmFsc2U7XG4gIC8qKiBAdHlwZSB7QXJnczxUPn0gKi9cbiAgbGV0IHByZUNvbmZpZ0FyZ3M7XG5cbiAgaWYgKGFyZ3MpIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGEgY29udGFpbmluZyBwYWNrYWdlIGluc3RlYWQgb2YgcnVubmluZyBhcyBhIENMSSBwcm9jZXNzLFxuICAgIC8vIHRoYXQgcGFja2FnZSBtaWdodCBub3QgYXBwcmVjaWF0ZSB1cyBjYWxsaW5nICdwcm9jZXNzLmV4aXQnIHdpbGx5LVxuICAgIC8vIG5pbGx5LCBzbyBnaXZlIGl0IHRoZSBvcHRpb24gdG8gaGF2ZSB1cyB0aHJvdyBpbnN0ZWFkIG9mIGV4aXRcbiAgICBpZiAoYXJncy50aHJvd0luc3RlYWRPZkV4aXQpIHtcbiAgICAgIHRocm93SW5zdGVhZE9mRXhpdCA9IHRydWU7XG4gICAgICAvLyBidXQgcmVtb3ZlIGl0IHNpbmNlIGl0J3Mgbm90IGEgcmVhbCBzZXJ2ZXIgYXJnIHBlciBzZVxuICAgICAgZGVsZXRlIGFyZ3MudGhyb3dJbnN0ZWFkT2ZFeGl0O1xuICAgIH1cbiAgICBwcmVDb25maWdBcmdzID0gey4uLmFyZ3MsIHN1YmNvbW1hbmQ6IGFyZ3Muc3ViY29tbWFuZCA/PyBTRVJWRVJfU1VCQ09NTUFORH07XG4gIH0gZWxzZSB7XG4gICAgLy8gb3RoZXJ3aXNlIHBhcnNlIGZyb20gQ0xJXG4gICAgcHJlQ29uZmlnQXJncyA9IC8qKiBAdHlwZSB7QXJnczxUPn0gKi8ocGFyc2VyLnBhcnNlQXJncygpKTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZ1Jlc3VsdCA9IGF3YWl0IHJlYWRDb25maWdGaWxlKHByZUNvbmZpZ0FyZ3MuY29uZmlnRmlsZSk7XG5cbiAgaWYgKCFfLmlzRW1wdHkoY29uZmlnUmVzdWx0LmVycm9ycykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9ycyBpbiBjb25maWcgZmlsZSAke2NvbmZpZ1Jlc3VsdC5maWxlcGF0aH06XFxuICR7Y29uZmlnUmVzdWx0LnJlYXNvbiA/PyBjb25maWdSZXN1bHQuZXJyb3JzfWApO1xuICB9XG5cbiAgLy8gbWVyZ2UgY29uZmlnIGFuZCBhcHBseSBkZWZhdWx0cy5cbiAgLy8gdGhlIG9yZGVyIG9mIHByZWNlbmRlY2UgaXM6XG4gIC8vIDEuIGNvbW1hbmQgbGluZSBhcmdzXG4gIC8vIDIuIGNvbmZpZyBmaWxlXG4gIC8vIDMuIGRlZmF1bHRzIGZyb20gY29uZmlnIGZpbGUuXG4gIGlmICghYXJlU2VydmVyQ29tbWFuZEFyZ3MocHJlQ29uZmlnQXJncykpIHtcblxuICAgIC8vIGlmIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgdGhlICdkcml2ZXInIENMSSwgZG9uJ3QgcnVuIHRoZSBub3JtYWwgc2VydmVyLFxuICAgIC8vIGJ1dCBpbnN0ZWFkIHBhc3MgY29udHJvbCB0byB0aGUgZHJpdmVyIENMSVxuICAgIGlmIChwcmVDb25maWdBcmdzLnN1YmNvbW1hbmQgPT09IERSSVZFUl9UWVBFKSB7XG4gICAgICBhd2FpdCBydW5FeHRlbnNpb25Db21tYW5kKHByZUNvbmZpZ0FyZ3MsIGRyaXZlckNvbmZpZyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGlmIChwcmVDb25maWdBcmdzLnN1YmNvbW1hbmQgPT09IFBMVUdJTl9UWVBFKSB7XG4gICAgICBhd2FpdCBydW5FeHRlbnNpb25Db21tYW5kKHByZUNvbmZpZ0FyZ3MsIHBsdWdpbkNvbmZpZyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHt9OyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSBnZXREZWZhdWx0c0ZvclNjaGVtYShmYWxzZSk7XG5cbiAgICAvKiogQHR5cGUge1BhcnNlZEFyZ3N9ICovXG4gICAgY29uc3Qgc2VydmVyQXJncyA9IF8uZGVmYXVsdHNEZWVwKFxuICAgICAgcHJlQ29uZmlnQXJncyxcbiAgICAgIGNvbmZpZ1Jlc3VsdC5jb25maWc/LnNlcnZlcixcbiAgICAgIGRlZmF1bHRzXG4gICAgKTtcblxuICAgIGlmIChwcmVDb25maWdBcmdzLnNob3dDb25maWcpIHtcbiAgICAgIHNob3dDb25maWcoZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MocHJlQ29uZmlnQXJncyksIGNvbmZpZ1Jlc3VsdCwgZGVmYXVsdHMsIHNlcnZlckFyZ3MpO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGF3YWl0IGxvZ3NpbmtJbml0KHNlcnZlckFyZ3MpO1xuXG4gICAgaWYgKHNlcnZlckFyZ3MubG9nRmlsdGVycykge1xuICAgICAgY29uc3Qge2lzc3VlcywgcnVsZXN9ID0gYXdhaXQgbG9nRmFjdG9yeS5sb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzKHNlcnZlckFyZ3MubG9nRmlsdGVycyk7XG4gICAgICBpZiAoIV8uaXNFbXB0eShpc3N1ZXMpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGxvZyBmaWx0ZXJpbmcgcnVsZXMgY29uZmlnICcke3NlcnZlckFyZ3MubG9nRmlsdGVyc30nIGhhcyBpc3N1ZXM6IGAgK1xuICAgICAgICBKU09OLnN0cmluZ2lmeShpc3N1ZXMsIG51bGwsIDIpKTtcbiAgICAgIH1cbiAgICAgIGlmIChfLmlzRW1wdHkocnVsZXMpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuKGBGb3VuZCBubyBsb2cgZmlsdGVyaW5nIHJ1bGVzIGluICcke3NlcnZlckFyZ3MubG9nRmlsdGVyc30nLiBJcyB0aGF0IGV4cGVjdGVkP2ApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nZ2VyLmluZm8oYExvYWRlZCAke3V0aWwucGx1cmFsaXplKCdmaWx0ZXJpbmcgcnVsZScsIHJ1bGVzLmxlbmd0aCwgdHJ1ZSl9IGZyb20gJyR7c2VydmVyQXJncy5sb2dGaWx0ZXJzfSdgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhcHBpdW1Ecml2ZXIgPSBuZXcgQXBwaXVtRHJpdmVyKHNlcnZlckFyZ3MpO1xuICAgIC8vIHNldCB0aGUgY29uZmlnIG9uIHRoZSB1bWJyZWxsYSBkcml2ZXIgc28gaXQgY2FuIG1hdGNoIGRyaXZlcnMgdG8gY2Fwc1xuICAgIGFwcGl1bURyaXZlci5kcml2ZXJDb25maWcgPSBkcml2ZXJDb25maWc7XG4gICAgYXdhaXQgcHJlZmxpZ2h0Q2hlY2tzKHNlcnZlckFyZ3MsIHRocm93SW5zdGVhZE9mRXhpdCk7XG5cbiAgICByZXR1cm4gLyoqIEB0eXBlIHtTZXJ2ZXJJbml0UmVzdWx0fSAqLyh7YXBwaXVtRHJpdmVyLCBwYXJzZWRBcmdzOiBzZXJ2ZXJBcmdzLCBkcml2ZXJDb25maWcsIHBsdWdpbkNvbmZpZ30pO1xuICB9XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgQXBwaXVtJ3MgY29uZmlnLiAgU3RhcnRzIHNlcnZlciBpZiBhcHByb3ByaWF0ZSBhbmQgcmVzb2x2ZXMgdGhlXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgaWYgc287IG90aGVyd2lzZSByZXNvbHZlcyB3LyBgdW5kZWZpbmVkYC5cbiAqIEB0ZW1wbGF0ZSBbVD1XaXRoU2VydmVyU3ViY29tbWFuZF1cbiAqIEBwYXJhbSB7QXJnczxUPn0gW2FyZ3NdIC0gQXJndW1lbnRzIGZyb20gQ0xJIG9yIG90aGVyd2lzZVxuICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtU2VydmVyfHVuZGVmaW5lZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW4gKGFyZ3MpIHtcbiAgY29uc3Qge2FwcGl1bURyaXZlciwgcGFyc2VkQXJncywgcGx1Z2luQ29uZmlnLCBkcml2ZXJDb25maWd9ID0gLyoqIEB0eXBlIHtTZXJ2ZXJJbml0UmVzdWx0fSAqLyhhd2FpdCBpbml0KGFyZ3MpKTtcblxuICBpZiAoIWFwcGl1bURyaXZlciB8fCAhcGFyc2VkQXJncyB8fCAhcGx1Z2luQ29uZmlnIHx8ICFkcml2ZXJDb25maWcpIHtcbiAgICAvLyBpZiB0aGlzIGJyYW5jaCBpcyB0YWtlbiwgd2UndmUgcnVuIGEgZGlmZmVyZW50IHN1YmNvbW1hbmQsIHNvIHRoZXJlJ3Mgbm90aGluZ1xuICAgIC8vIGxlZnQgdG8gZG8gaGVyZS5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBwbHVnaW5DbGFzc2VzID0gZ2V0QWN0aXZlUGx1Z2lucyhwbHVnaW5Db25maWcsIHBhcnNlZEFyZ3MudXNlUGx1Z2lucyk7XG4gIC8vIHNldCB0aGUgYWN0aXZlIHBsdWdpbnMgb24gdGhlIHVtYnJlbGxhIGRyaXZlciBzbyBpdCBjYW4gdXNlIHRoZW0gZm9yIGNvbW1hbmRzXG4gIGFwcGl1bURyaXZlci5wbHVnaW5DbGFzc2VzID0gcGx1Z2luQ2xhc3NlcztcblxuICBhd2FpdCBsb2dTdGFydHVwSW5mbyhwYXJzZWRBcmdzKTtcbiAgbGV0IHJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiA9IG1ha2VSb3V0ZXIoYXBwaXVtRHJpdmVyKTtcblxuICBjb25zdCBkcml2ZXJDbGFzc2VzID0gZ2V0QWN0aXZlRHJpdmVycyhkcml2ZXJDb25maWcsIHBhcnNlZEFyZ3MudXNlRHJpdmVycyk7XG4gIGNvbnN0IHNlcnZlclVwZGF0ZXJzID0gZ2V0U2VydmVyVXBkYXRlcnMoZHJpdmVyQ2xhc3NlcywgcGx1Z2luQ2xhc3Nlcyk7XG4gIGNvbnN0IGV4dHJhTWV0aG9kTWFwID0gZ2V0RXh0cmFNZXRob2RNYXAoZHJpdmVyQ2xhc3NlcywgcGx1Z2luQ2xhc3Nlcyk7XG5cbiAgY29uc3Qgc2VydmVyT3B0cyA9IHtcbiAgICByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24sXG4gICAgcG9ydDogcGFyc2VkQXJncy5wb3J0LFxuICAgIGhvc3RuYW1lOiBwYXJzZWRBcmdzLmFkZHJlc3MsXG4gICAgYWxsb3dDb3JzOiBwYXJzZWRBcmdzLmFsbG93Q29ycyxcbiAgICBiYXNlUGF0aDogcGFyc2VkQXJncy5iYXNlUGF0aCxcbiAgICBzZXJ2ZXJVcGRhdGVycyxcbiAgICBleHRyYU1ldGhvZE1hcCxcbiAgfTtcbiAgaWYgKHBhcnNlZEFyZ3Mua2VlcEFsaXZlVGltZW91dCkge1xuICAgIHNlcnZlck9wdHMua2VlcEFsaXZlVGltZW91dCA9IHBhcnNlZEFyZ3Mua2VlcEFsaXZlVGltZW91dCAqIDEwMDA7XG4gIH1cbiAgbGV0IHNlcnZlcjtcbiAgdHJ5IHtcbiAgICBzZXJ2ZXIgPSBhd2FpdCBiYXNlU2VydmVyKHNlcnZlck9wdHMpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2dnZXIuZXJyb3IoYENvdWxkIG5vdCBjb25maWd1cmUgQXBwaXVtIHNlcnZlci4gSXQncyBwb3NzaWJsZSB0aGF0IGEgZHJpdmVyIG9yIHBsdWdpbiB0cmllZCBgICtcbiAgICAgICAgICAgICAgICAgYHRvIHVwZGF0ZSB0aGUgc2VydmVyIGFuZCBmYWlsZWQuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIGxvZ2dlci5kZWJ1ZyhlcnIuc3RhY2spO1xuICAgIHJldHVybiBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBpZiAocGFyc2VkQXJncy5hbGxvd0NvcnMpIHtcbiAgICBsb2dnZXIud2FybignWW91IGhhdmUgZW5hYmxlZCBDT1JTIHJlcXVlc3RzIGZyb20gYW55IGhvc3QuIEJlIGNhcmVmdWwgbm90ICcgK1xuICAgICAgICAgICAgICAgICd0byB2aXNpdCBzaXRlcyB3aGljaCBjb3VsZCBtYWxpY2lvdXNseSB0cnkgdG8gc3RhcnQgQXBwaXVtICcgK1xuICAgICAgICAgICAgICAgICdzZXNzaW9ucyBvbiB5b3VyIG1hY2hpbmUnKTtcbiAgfVxuICBhcHBpdW1Ecml2ZXIuc2VydmVyID0gc2VydmVyO1xuICB0cnkge1xuICAgIC8vIGNvbmZpZ3VyZSBhcyBub2RlIG9uIGdyaWQsIGlmIG5lY2Vzc2FyeVxuICAgIC8vIGZhbHN5IHZhbHVlcyBzaG91bGQgbm90IGNhdXNlIHRoaXMgdG8gcnVuXG4gICAgaWYgKHBhcnNlZEFyZ3Mubm9kZWNvbmZpZykge1xuICAgICAgYXdhaXQgcmVnaXN0ZXJOb2RlKHBhcnNlZEFyZ3Mubm9kZWNvbmZpZywgcGFyc2VkQXJncy5hZGRyZXNzLCBwYXJzZWRBcmdzLnBvcnQsIHBhcnNlZEFyZ3MuYmFzZVBhdGgpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgdGhyb3cgZXJyO1xuICB9XG5cbiAgZm9yIChjb25zdCBzaWduYWwgb2YgWydTSUdJTlQnLCAnU0lHVEVSTSddKSB7XG4gICAgcHJvY2Vzcy5vbmNlKHNpZ25hbCwgYXN5bmMgZnVuY3Rpb24gb25TaWduYWwgKCkge1xuICAgICAgbG9nZ2VyLmluZm8oYFJlY2VpdmVkICR7c2lnbmFsfSAtIHNodXR0aW5nIGRvd25gKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGFwcGl1bURyaXZlci5kZWxldGVBbGxTZXNzaW9ucyh7XG4gICAgICAgICAgZm9yY2U6IHRydWUsXG4gICAgICAgICAgcmVhc29uOiBgVGhlIHByb2Nlc3MgaGFzIHJlY2VpdmVkICR7c2lnbmFsfSBzaWduYWxgLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oZSk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGxvZ1NlcnZlclBvcnQocGFyc2VkQXJncy5hZGRyZXNzLCBwYXJzZWRBcmdzLnBvcnQpO1xuICBkcml2ZXJDb25maWcucHJpbnQoKTtcbiAgcGx1Z2luQ29uZmlnLnByaW50KHBsdWdpbkNsYXNzZXMubWFwKChwKSA9PiBwLnBsdWdpbk5hbWUpKTtcblxuICByZXR1cm4gc2VydmVyO1xufVxuXG4vLyBOT1RFOiB0aGlzIGlzIGhlcmUgZm9yIGJhY2t3YXJkcyBjb21wYXQgZm9yIGFueSBzY3JpcHRzIHJlZmVyZW5jaW5nIGBtYWluLmpzYCBkaXJlY3RseVxuLy8gKG1vcmUgc3BlY2lmaWNhbGx5LCBgYnVpbGQvbGliL21haW4uanNgKVxuLy8gdGhlIGV4ZWN1dGFibGUgaXMgbm93IGAuLi9pbmRleC5qc2AsIHNvIHRoYXQgbW9kdWxlIHdpbGwgdHlwaWNhbGx5IGJlIGByZXF1aXJlLm1haW5gLlxuaWYgKHJlcXVpcmUubWFpbiA9PT0gbW9kdWxlKSB7XG4gIGFzeW5jaWZ5KG1haW4pO1xufVxuXG4vLyBldmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgaW50ZW5kZWQgdG8gYmUgYSBwdWJsaWMgQVBJLlxuZXhwb3J0IHsgcmVhZENvbmZpZ0ZpbGUgfSBmcm9tICcuL2NvbmZpZy1maWxlJztcbmV4cG9ydCB7IGZpbmFsaXplU2NoZW1hLCBnZXRTY2hlbWEsIHZhbGlkYXRlIH0gZnJvbSAnLi9zY2hlbWEvc2NoZW1hJztcbmV4cG9ydCB7IG1haW4sIGluaXQsIHJlc29sdmVBcHBpdW1Ib21lIH07XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMnKS5Ecml2ZXJUeXBlfSBEcml2ZXJUeXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcycpLlBsdWdpblR5cGV9IFBsdWdpblR5cGVcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL3R5cGVzJykuRHJpdmVyQ2xhc3N9IERyaXZlckNsYXNzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcycpLlBsdWdpbkNsYXNzfSBQbHVnaW5DbGFzc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMnKS5XaXRoU2VydmVyU3ViY29tbWFuZH0gV2l0aFNlcnZlclN1YmNvbW1hbmRcbiAqL1xuXG4vKipcbiAqIExpdGVyYWxseSBhbiBlbXB0eSBvYmplY3RcbiAqIEB0eXBlZGVmIHsge30gfSBFeHRDb21tYW5kSW5pdFJlc3VsdFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYgU2VydmVySW5pdERhdGFcbiAqIEBwcm9wZXJ0eSB7QXBwaXVtRHJpdmVyfSBhcHBpdW1Ecml2ZXIgLSBUaGUgQXBwaXVtIGRyaXZlclxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4uL3R5cGVzJykuUGFyc2VkQXJnc30gcGFyc2VkQXJncyAtIFRoZSBwYXJzZWQgYXJndW1lbnRzXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7U2VydmVySW5pdERhdGEgJiBpbXBvcnQoJy4vZXh0ZW5zaW9uJykuRXh0ZW5zaW9uQ29uZmlnc30gU2VydmVySW5pdFJlc3VsdFxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFtUPVdpdGhTZXJ2ZXJTdWJjb21tYW5kXVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vdHlwZXMnKS5BcmdzPFQ+fSBBcmdzXG4gKi9cblxuLyoqXG4gKiBAdGVtcGxhdGUgW1Q9V2l0aFNlcnZlclN1YmNvbW1hbmRdXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi90eXBlcycpLlBhcnNlZEFyZ3M8VD59IFBhcnNlZEFyZ3NcbiAqL1xuXG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU07RUFBQ0E7QUFBRCxJQUFzQkMsWUFBNUI7OztBQU9BLGVBQWVDLGVBQWYsQ0FBZ0NDLElBQWhDLEVBQXND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
|
|
341
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvbHZlQXBwaXVtSG9tZSIsImVudiIsInByZWZsaWdodENoZWNrcyIsImFyZ3MiLCJ0aHJvd0luc3RlYWRPZkV4aXQiLCJjaGVja05vZGVPayIsImxvbmdTdGFja3RyYWNlIiwicmVxdWlyZSIsImFzeW5jX3RyYWNlX2xpbWl0Iiwic2hvd0J1aWxkSW5mbyIsInByb2Nlc3MiLCJleGl0Iiwid2Fybk5vZGVEZXByZWNhdGlvbnMiLCJ2YWxpZGF0ZSIsInRtcERpciIsInZhbGlkYXRlVG1wRGlyIiwiZXJyIiwibG9nZ2VyIiwiZXJyb3IiLCJtZXNzYWdlIiwicmVkIiwibG9nTm9uRGVmYXVsdEFyZ3NXYXJuaW5nIiwiaW5mbyIsImluc3BlY3QiLCJsb2dEZWZhdWx0Q2FwYWJpbGl0aWVzV2FybmluZyIsImNhcHMiLCJsb2dTdGFydHVwSW5mbyIsIndlbGNvbWUiLCJBUFBJVU1fVkVSIiwiYXBwaXVtUmV2IiwiZ2V0R2l0UmV2Iiwic2hvd0FyZ3MiLCJnZXROb25EZWZhdWx0U2VydmVyQXJncyIsIl8iLCJzaXplIiwiaXNFbXB0eSIsImRlZmF1bHRDYXBhYmlsaXRpZXMiLCJsb2dTZXJ2ZXJQb3J0IiwiYWRkcmVzcyIsInBvcnQiLCJsb2dNZXNzYWdlIiwiZ2V0U2VydmVyVXBkYXRlcnMiLCJkcml2ZXJDbGFzc2VzIiwicGx1Z2luQ2xhc3NlcyIsImNvbXBhY3QiLCJtYXAiLCJrZXlzIiwiZ2V0RXh0cmFNZXRob2RNYXAiLCJyZWR1Y2UiLCJrbGFzcyIsIm5ld01ldGhvZE1hcCIsImFyZVNlcnZlckNvbW1hbmRBcmdzIiwic3ViY29tbWFuZCIsIlNFUlZFUl9TVUJDT01NQU5EIiwiaW5pdCIsImFwcGl1bUhvbWUiLCJkcml2ZXJDb25maWciLCJwbHVnaW5Db25maWciLCJsb2FkRXh0ZW5zaW9ucyIsInBhcnNlciIsImdldFBhcnNlciIsInByZUNvbmZpZ0FyZ3MiLCJwYXJzZUFyZ3MiLCJjb25maWdSZXN1bHQiLCJyZWFkQ29uZmlnRmlsZSIsImNvbmZpZ0ZpbGUiLCJlcnJvcnMiLCJFcnJvciIsImZpbGVwYXRoIiwicmVhc29uIiwiRFJJVkVSX1RZUEUiLCJydW5FeHRlbnNpb25Db21tYW5kIiwiUExVR0lOX1RZUEUiLCJkZWZhdWx0cyIsImdldERlZmF1bHRzRm9yU2NoZW1hIiwic2VydmVyQXJncyIsImRlZmF1bHRzRGVlcCIsImNvbmZpZyIsInNlcnZlciIsInNob3dDb25maWciLCJsb2dzaW5rSW5pdCIsImxvZ0ZpbHRlcnMiLCJpc3N1ZXMiLCJydWxlcyIsImxvZ0ZhY3RvcnkiLCJsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIiwiSlNPTiIsInN0cmluZ2lmeSIsIndhcm4iLCJ1dGlsIiwicGx1cmFsaXplIiwibGVuZ3RoIiwiYXBwaXVtRHJpdmVyIiwiQXBwaXVtRHJpdmVyIiwicGFyc2VkQXJncyIsIm1haW4iLCJnZXRBY3RpdmVQbHVnaW5zIiwidXNlUGx1Z2lucyIsInJvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiIsIm1ha2VSb3V0ZXIiLCJnZXRBY3RpdmVEcml2ZXJzIiwidXNlRHJpdmVycyIsInNlcnZlclVwZGF0ZXJzIiwiZXh0cmFNZXRob2RNYXAiLCJzZXJ2ZXJPcHRzIiwiaG9zdG5hbWUiLCJhbGxvd0NvcnMiLCJiYXNlUGF0aCIsImtlZXBBbGl2ZVRpbWVvdXQiLCJiYXNlU2VydmVyIiwiZGVidWciLCJzdGFjayIsIm5vZGVjb25maWciLCJyZWdpc3Rlck5vZGUiLCJjbG9zZSIsInNpZ25hbCIsIm9uY2UiLCJvblNpZ25hbCIsImRlbGV0ZUFsbFNlc3Npb25zIiwiZm9yY2UiLCJlIiwicHJpbnQiLCJ2YWx1ZXMiLCJtb2R1bGUiLCJhc3luY2lmeSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHtpbml0IGFzIGxvZ3NpbmtJbml0fSBmcm9tICcuL2xvZ3NpbmsnOyAvLyB0aGlzIGltcG9ydCBuZWVkcyB0byBjb21lIGZpcnN0IHNpbmNlIGl0IHNldHMgdXAgZ2xvYmFsIG5wbWxvZ1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7IC8vIGxvZ2dlciBuZWVkcyB0byByZW1haW4gc2Vjb25kXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQge3JvdXRlQ29uZmlndXJpbmdGdW5jdGlvbiBhcyBtYWtlUm91dGVyLCBzZXJ2ZXIgYXMgYmFzZVNlcnZlcn0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5pbXBvcnQge2xvZ2dlciBhcyBsb2dGYWN0b3J5LCB1dGlsLCBlbnZ9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQge2FzeW5jaWZ5fSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtBcHBpdW1Ecml2ZXJ9IGZyb20gJy4vYXBwaXVtJztcbmltcG9ydCB7cnVuRXh0ZW5zaW9uQ29tbWFuZH0gZnJvbSAnLi9jbGkvZXh0ZW5zaW9uJztcbmltcG9ydCB7Z2V0UGFyc2VyfSBmcm9tICcuL2NsaS9wYXJzZXInO1xuaW1wb3J0IHtcbiAgQVBQSVVNX1ZFUixcbiAgY2hlY2tOb2RlT2ssXG4gIGdldEdpdFJldixcbiAgZ2V0Tm9uRGVmYXVsdFNlcnZlckFyZ3MsXG4gIHNob3dDb25maWcsXG4gIHNob3dCdWlsZEluZm8sXG4gIHZhbGlkYXRlVG1wRGlyLFxuICB3YXJuTm9kZURlcHJlY2F0aW9ucyxcbn0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHtyZWFkQ29uZmlnRmlsZX0gZnJvbSAnLi9jb25maWctZmlsZSc7XG5pbXBvcnQge2xvYWRFeHRlbnNpb25zLCBnZXRBY3RpdmVQbHVnaW5zLCBnZXRBY3RpdmVEcml2ZXJzfSBmcm9tICcuL2V4dGVuc2lvbic7XG5pbXBvcnQge0RSSVZFUl9UWVBFLCBQTFVHSU5fVFlQRSwgU0VSVkVSX1NVQkNPTU1BTkR9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCByZWdpc3Rlck5vZGUgZnJvbSAnLi9ncmlkLXJlZ2lzdGVyJztcbmltcG9ydCB7Z2V0RGVmYXVsdHNGb3JTY2hlbWEsIHZhbGlkYXRlfSBmcm9tICcuL3NjaGVtYS9zY2hlbWEnO1xuaW1wb3J0IHtpbnNwZWN0fSBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qge3Jlc29sdmVBcHBpdW1Ib21lfSA9IGVudjtcblxuLyoqXG4gKlxuICogQHBhcmFtIHtQYXJzZWRBcmdzfSBhcmdzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFt0aHJvd0luc3RlYWRPZkV4aXRdXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByZWZsaWdodENoZWNrcyhhcmdzLCB0aHJvd0luc3RlYWRPZkV4aXQgPSBmYWxzZSkge1xuICB0cnkge1xuICAgIGNoZWNrTm9kZU9rKCk7XG4gICAgaWYgKGFyZ3MubG9uZ1N0YWNrdHJhY2UpIHtcbiAgICAgIHJlcXVpcmUoJ2xvbmdqb2huJykuYXN5bmNfdHJhY2VfbGltaXQgPSAtMTtcbiAgICB9XG4gICAgaWYgKGFyZ3Muc2hvd0J1aWxkSW5mbykge1xuICAgICAgYXdhaXQgc2hvd0J1aWxkSW5mbygpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH1cbiAgICB3YXJuTm9kZURlcHJlY2F0aW9ucygpO1xuXG4gICAgdmFsaWRhdGUoYXJncyk7XG5cbiAgICBpZiAoYXJncy50bXBEaXIpIHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlVG1wRGlyKGFyZ3MudG1wRGlyKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZ2dlci5lcnJvcihlcnIubWVzc2FnZS5yZWQpO1xuICAgIGlmICh0aHJvd0luc3RlYWRPZkV4aXQpIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0FyZ3N9IGFyZ3NcbiAqL1xuZnVuY3Rpb24gbG9nTm9uRGVmYXVsdEFyZ3NXYXJuaW5nKGFyZ3MpIHtcbiAgbG9nZ2VyLmluZm8oJ05vbi1kZWZhdWx0IHNlcnZlciBhcmdzOicpO1xuICBpbnNwZWN0KGFyZ3MpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7QXJnc1snZGVmYXVsdENhcGFiaWxpdGllcyddfSBjYXBzXG4gKi9cbmZ1bmN0aW9uIGxvZ0RlZmF1bHRDYXBhYmlsaXRpZXNXYXJuaW5nKGNhcHMpIHtcbiAgbG9nZ2VyLmluZm8oXG4gICAgJ0RlZmF1bHQgY2FwYWJpbGl0aWVzLCB3aGljaCB3aWxsIGJlIGFkZGVkIHRvIGVhY2ggcmVxdWVzdCAnICtcbiAgICAgICd1bmxlc3Mgb3ZlcnJpZGRlbiBieSBkZXNpcmVkIGNhcGFiaWxpdGllczonXG4gICk7XG4gIGluc3BlY3QoY2Fwcyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtQYXJzZWRBcmdzfSBhcmdzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxvZ1N0YXJ0dXBJbmZvKGFyZ3MpIHtcbiAgbGV0IHdlbGNvbWUgPSBgV2VsY29tZSB0byBBcHBpdW0gdiR7QVBQSVVNX1ZFUn1gO1xuICBsZXQgYXBwaXVtUmV2ID0gYXdhaXQgZ2V0R2l0UmV2KCk7XG4gIGlmIChhcHBpdW1SZXYpIHtcbiAgICB3ZWxjb21lICs9IGAgKFJFViAke2FwcGl1bVJldn0pYDtcbiAgfVxuICBsb2dnZXIuaW5mbyh3ZWxjb21lKTtcblxuICBsZXQgc2hvd0FyZ3MgPSBnZXROb25EZWZhdWx0U2VydmVyQXJncyhhcmdzKTtcbiAgaWYgKF8uc2l6ZShzaG93QXJncykpIHtcbiAgICBsb2dOb25EZWZhdWx0QXJnc1dhcm5pbmcoc2hvd0FyZ3MpO1xuICB9XG4gIGlmICghXy5pc0VtcHR5KGFyZ3MuZGVmYXVsdENhcGFiaWxpdGllcykpIHtcbiAgICBsb2dEZWZhdWx0Q2FwYWJpbGl0aWVzV2FybmluZyhhcmdzLmRlZmF1bHRDYXBhYmlsaXRpZXMpO1xuICB9XG4gIC8vIFRPRE86IGJyaW5nIGJhY2sgbG9nbGV2ZWwgcmVwb3J0aW5nIGJlbG93IG9uY2UgbG9nZ2VyIGlzIGZsdXNoZWQgb3V0XG4gIC8vIGxvZ2dlci5pbmZvKCdDb25zb2xlIExvZ0xldmVsOiAnICsgbG9nZ2VyLnRyYW5zcG9ydHMuY29uc29sZS5sZXZlbCk7XG4gIC8vIGlmIChsb2dnZXIudHJhbnNwb3J0cy5maWxlKSB7XG4gIC8vICAgbG9nZ2VyLmluZm8oJ0ZpbGUgTG9nTGV2ZWw6ICcgKyBsb2dnZXIudHJhbnNwb3J0cy5maWxlLmxldmVsKTtcbiAgLy8gfVxufVxuXG4vKipcbiAqIExvZ3MgdGhlIGFkZHJlc3MgYW5kIHBvcnQgdGhlIHNlcnZlciBpcyBsaXN0ZW5pbmcgb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gQWRkcmVzc1xuICogQHBhcmFtIHtudW1iZXJ9IHBvcnQgLSBQb3J0XG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gbG9nU2VydmVyUG9ydChhZGRyZXNzLCBwb3J0KSB7XG4gIGxldCBsb2dNZXNzYWdlID0gYEFwcGl1bSBSRVNUIGh0dHAgaW50ZXJmYWNlIGxpc3RlbmVyIHN0YXJ0ZWQgb24gYCArIGAke2FkZHJlc3N9OiR7cG9ydH1gO1xuICBsb2dnZXIuaW5mbyhsb2dNZXNzYWdlKTtcbn1cblxuLyoqXG4gKiBHZXRzIGEgbGlzdCBvZiBgdXBkYXRlU2VydmVyYCBmdW5jdGlvbnMgZnJvbSBhbGwgZXh0ZW5zaW9uc1xuICogQHBhcmFtIHtEcml2ZXJOYW1lTWFwfSBkcml2ZXJDbGFzc2VzXG4gKiBAcGFyYW0ge1BsdWdpbk5hbWVNYXB9IHBsdWdpbkNsYXNzZXNcbiAqIEByZXR1cm5zIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5VcGRhdGVTZXJ2ZXJDYWxsYmFja1tdfVxuICovXG5mdW5jdGlvbiBnZXRTZXJ2ZXJVcGRhdGVycyhkcml2ZXJDbGFzc2VzLCBwbHVnaW5DbGFzc2VzKSB7XG4gIHJldHVybiBfLmNvbXBhY3QoXy5tYXAoWy4uLmRyaXZlckNsYXNzZXMua2V5cygpLCAuLi5wbHVnaW5DbGFzc2VzLmtleXMoKV0sICd1cGRhdGVTZXJ2ZXInKSk7XG59XG5cbi8qKlxuICogTWFrZXMgYSBiaWcgYE1ldGhvZE1hcGAgZnJvbSBhbGwgdGhlIGxpdHRsZSBgTWV0aG9kTWFwYHMgaW4gdGhlIGV4dGVuc2lvbnNcbiAqIEBwYXJhbSB7RHJpdmVyTmFtZU1hcH0gZHJpdmVyQ2xhc3Nlc1xuICogQHBhcmFtIHtQbHVnaW5OYW1lTWFwfSBwbHVnaW5DbGFzc2VzXG4gKiBAcmV0dXJucyB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuTWV0aG9kTWFwfVxuICovXG5mdW5jdGlvbiBnZXRFeHRyYU1ldGhvZE1hcChkcml2ZXJDbGFzc2VzLCBwbHVnaW5DbGFzc2VzKSB7XG4gIHJldHVybiBbLi4uZHJpdmVyQ2xhc3Nlcy5rZXlzKCksIC4uLnBsdWdpbkNsYXNzZXMua2V5cygpXS5yZWR1Y2UoXG4gICAgKG1hcCwga2xhc3MpID0+ICh7XG4gICAgICAuLi5tYXAsXG4gICAgICAuLi4oa2xhc3MubmV3TWV0aG9kTWFwID8/IHt9KSxcbiAgICB9KSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbVD1XaXRoU2VydmVyU3ViY29tbWFuZF1cbiAqIEBwYXJhbSB7QXJnczxUPn0gYXJnc1xuICogQHJldHVybnMge2FyZ3MgaXMgQXJnczxXaXRoU2VydmVyU3ViY29tbWFuZD59XG4gKi9cbmZ1bmN0aW9uIGFyZVNlcnZlckNvbW1hbmRBcmdzKGFyZ3MpIHtcbiAgcmV0dXJuIGFyZ3Muc3ViY29tbWFuZCA9PT0gU0VSVkVSX1NVQkNPTU1BTkQ7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgQXBwaXVtLCBidXQgZG9lcyBub3Qgc3RhcnQgdGhlIHNlcnZlci5cbiAqXG4gKiBVc2UgdGhpcyB0byBnZXQgYXQgdGhlIGNvbmZpZ3VyYXRpb24gc2NoZW1hLlxuICpcbiAqIElmIGBhcmdzYCBjb250YWlucyBhIG5vbi1lbXB0eSBgc3ViY29tbWFuZGAgd2hpY2ggaXMgbm90IGBzZXJ2ZXJgLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGVtcHR5IG9iamVjdC5cbiAqXG4gKiBAdGVtcGxhdGUgW1Q9V2l0aFNlcnZlclN1YmNvbW1hbmRdXG4gKiBAcGFyYW0ge0FyZ3M8VD59IFthcmdzXSAtIFBhcnRpYWwgYXJncyAocHJvZ2FtbWF0aWMgdXNhZ2Ugb25seSlcbiAqIEByZXR1cm5zIHtQcm9taXNlPFNlcnZlckluaXRSZXN1bHQgfCBFeHRDb21tYW5kSW5pdFJlc3VsdD59XG4gKiBAZXhhbXBsZVxuICogaW1wb3J0IHtpbml0LCBnZXRTY2hlbWF9IGZyb20gJ2FwcGl1bSc7XG4gKiBjb25zdCBvcHRpb25zID0ge307IC8vIGNvbmZpZyBvYmplY3RcbiAqIGF3YWl0IGluaXQob3B0aW9ucyk7XG4gKiBjb25zdCBzY2hlbWEgPSBnZXRTY2hlbWEoKTsgLy8gZW50aXJlIGNvbmZpZyBzY2hlbWEgaW5jbHVkaW5nIHBsdWdpbnMgYW5kIGRyaXZlcnNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5pdChhcmdzKSB7XG4gIGNvbnN0IGFwcGl1bUhvbWUgPSBhcmdzPy5hcHBpdW1Ib21lID8/IChhd2FpdCByZXNvbHZlQXBwaXVtSG9tZSgpKTtcblxuICBjb25zdCB7ZHJpdmVyQ29uZmlnLCBwbHVnaW5Db25maWd9ID0gYXdhaXQgbG9hZEV4dGVuc2lvbnMoYXBwaXVtSG9tZSk7XG5cbiAgY29uc3QgcGFyc2VyID0gZ2V0UGFyc2VyKCk7XG4gIGxldCB0aHJvd0luc3RlYWRPZkV4aXQgPSBmYWxzZTtcbiAgLyoqIEB0eXBlIHtBcmdzPFQ+fSAqL1xuICBsZXQgcHJlQ29uZmlnQXJncztcblxuICBpZiAoYXJncykge1xuICAgIC8vIGlmIHdlIGhhdmUgYSBjb250YWluaW5nIHBhY2thZ2UgaW5zdGVhZCBvZiBydW5uaW5nIGFzIGEgQ0xJIHByb2Nlc3MsXG4gICAgLy8gdGhhdCBwYWNrYWdlIG1pZ2h0IG5vdCBhcHByZWNpYXRlIHVzIGNhbGxpbmcgJ3Byb2Nlc3MuZXhpdCcgd2lsbHktXG4gICAgLy8gbmlsbHksIHNvIGdpdmUgaXQgdGhlIG9wdGlvbiB0byBoYXZlIHVzIHRocm93IGluc3RlYWQgb2YgZXhpdFxuICAgIGlmIChhcmdzLnRocm93SW5zdGVhZE9mRXhpdCkge1xuICAgICAgdGhyb3dJbnN0ZWFkT2ZFeGl0ID0gdHJ1ZTtcbiAgICAgIC8vIGJ1dCByZW1vdmUgaXQgc2luY2UgaXQncyBub3QgYSByZWFsIHNlcnZlciBhcmcgcGVyIHNlXG4gICAgICBkZWxldGUgYXJncy50aHJvd0luc3RlYWRPZkV4aXQ7XG4gICAgfVxuICAgIHByZUNvbmZpZ0FyZ3MgPSB7Li4uYXJncywgc3ViY29tbWFuZDogYXJncy5zdWJjb21tYW5kID8/IFNFUlZFUl9TVUJDT01NQU5EfTtcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UgcGFyc2UgZnJvbSBDTElcbiAgICBwcmVDb25maWdBcmdzID0gLyoqIEB0eXBlIHtBcmdzPFQ+fSAqLyAocGFyc2VyLnBhcnNlQXJncygpKTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZ1Jlc3VsdCA9IGF3YWl0IHJlYWRDb25maWdGaWxlKHByZUNvbmZpZ0FyZ3MuY29uZmlnRmlsZSk7XG5cbiAgaWYgKCFfLmlzRW1wdHkoY29uZmlnUmVzdWx0LmVycm9ycykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgRXJyb3JzIGluIGNvbmZpZyBmaWxlICR7Y29uZmlnUmVzdWx0LmZpbGVwYXRofTpcXG4gJHtcbiAgICAgICAgY29uZmlnUmVzdWx0LnJlYXNvbiA/PyBjb25maWdSZXN1bHQuZXJyb3JzXG4gICAgICB9YFxuICAgICk7XG4gIH1cblxuICAvLyBtZXJnZSBjb25maWcgYW5kIGFwcGx5IGRlZmF1bHRzLlxuICAvLyB0aGUgb3JkZXIgb2YgcHJlY2VuZGVjZSBpczpcbiAgLy8gMS4gY29tbWFuZCBsaW5lIGFyZ3NcbiAgLy8gMi4gY29uZmlnIGZpbGVcbiAgLy8gMy4gZGVmYXVsdHMgZnJvbSBjb25maWcgZmlsZS5cbiAgaWYgKCFhcmVTZXJ2ZXJDb21tYW5kQXJncyhwcmVDb25maWdBcmdzKSkge1xuICAgIC8vIGlmIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgdGhlICdkcml2ZXInIENMSSwgZG9uJ3QgcnVuIHRoZSBub3JtYWwgc2VydmVyLFxuICAgIC8vIGJ1dCBpbnN0ZWFkIHBhc3MgY29udHJvbCB0byB0aGUgZHJpdmVyIENMSVxuICAgIGlmIChwcmVDb25maWdBcmdzLnN1YmNvbW1hbmQgPT09IERSSVZFUl9UWVBFKSB7XG4gICAgICBhd2FpdCBydW5FeHRlbnNpb25Db21tYW5kKHByZUNvbmZpZ0FyZ3MsIGRyaXZlckNvbmZpZyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGlmIChwcmVDb25maWdBcmdzLnN1YmNvbW1hbmQgPT09IFBMVUdJTl9UWVBFKSB7XG4gICAgICBhd2FpdCBydW5FeHRlbnNpb25Db21tYW5kKHByZUNvbmZpZ0FyZ3MsIHBsdWdpbkNvbmZpZyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHt9OyAvLyBzaG91bGQgbmV2ZXIgaGFwcGVuXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSBnZXREZWZhdWx0c0ZvclNjaGVtYShmYWxzZSk7XG5cbiAgICAvKiogQHR5cGUge1BhcnNlZEFyZ3N9ICovXG4gICAgY29uc3Qgc2VydmVyQXJncyA9IF8uZGVmYXVsdHNEZWVwKHByZUNvbmZpZ0FyZ3MsIGNvbmZpZ1Jlc3VsdC5jb25maWc/LnNlcnZlciwgZGVmYXVsdHMpO1xuXG4gICAgaWYgKHByZUNvbmZpZ0FyZ3Muc2hvd0NvbmZpZykge1xuICAgICAgc2hvd0NvbmZpZyhnZXROb25EZWZhdWx0U2VydmVyQXJncyhwcmVDb25maWdBcmdzKSwgY29uZmlnUmVzdWx0LCBkZWZhdWx0cywgc2VydmVyQXJncyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgYXdhaXQgbG9nc2lua0luaXQoc2VydmVyQXJncyk7XG5cbiAgICBpZiAoc2VydmVyQXJncy5sb2dGaWx0ZXJzKSB7XG4gICAgICBjb25zdCB7aXNzdWVzLCBydWxlc30gPSBhd2FpdCBsb2dGYWN0b3J5LmxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMoXG4gICAgICAgIHNlcnZlckFyZ3MubG9nRmlsdGVyc1xuICAgICAgKTtcbiAgICAgIGlmICghXy5pc0VtcHR5KGlzc3VlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGUgbG9nIGZpbHRlcmluZyBydWxlcyBjb25maWcgJyR7c2VydmVyQXJncy5sb2dGaWx0ZXJzfScgaGFzIGlzc3VlczogYCArXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShpc3N1ZXMsIG51bGwsIDIpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoXy5pc0VtcHR5KHJ1bGVzKSkge1xuICAgICAgICBsb2dnZXIud2FybihcbiAgICAgICAgICBgRm91bmQgbm8gbG9nIGZpbHRlcmluZyBydWxlcyBpbiAnJHtzZXJ2ZXJBcmdzLmxvZ0ZpbHRlcnN9Jy4gSXMgdGhhdCBleHBlY3RlZD9gXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICBgTG9hZGVkICR7dXRpbC5wbHVyYWxpemUoJ2ZpbHRlcmluZyBydWxlJywgcnVsZXMubGVuZ3RoLCB0cnVlKX0gZnJvbSAnJHtcbiAgICAgICAgICAgIHNlcnZlckFyZ3MubG9nRmlsdGVyc1xuICAgICAgICAgIH0nYFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGFwcGl1bURyaXZlciA9IG5ldyBBcHBpdW1Ecml2ZXIoc2VydmVyQXJncyk7XG4gICAgLy8gc2V0IHRoZSBjb25maWcgb24gdGhlIHVtYnJlbGxhIGRyaXZlciBzbyBpdCBjYW4gbWF0Y2ggZHJpdmVycyB0byBjYXBzXG4gICAgYXBwaXVtRHJpdmVyLmRyaXZlckNvbmZpZyA9IGRyaXZlckNvbmZpZztcbiAgICBhd2FpdCBwcmVmbGlnaHRDaGVja3Moc2VydmVyQXJncywgdGhyb3dJbnN0ZWFkT2ZFeGl0KTtcblxuICAgIHJldHVybiAvKiogQHR5cGUge1NlcnZlckluaXRSZXN1bHR9ICovICh7XG4gICAgICBhcHBpdW1Ecml2ZXIsXG4gICAgICBwYXJzZWRBcmdzOiBzZXJ2ZXJBcmdzLFxuICAgICAgZHJpdmVyQ29uZmlnLFxuICAgICAgcGx1Z2luQ29uZmlnLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgQXBwaXVtJ3MgY29uZmlnLiAgU3RhcnRzIHNlcnZlciBpZiBhcHByb3ByaWF0ZSBhbmQgcmVzb2x2ZXMgdGhlXG4gKiBzZXJ2ZXIgaW5zdGFuY2UgaWYgc287IG90aGVyd2lzZSByZXNvbHZlcyB3LyBgdW5kZWZpbmVkYC5cbiAqIEB0ZW1wbGF0ZSBbVD1XaXRoU2VydmVyU3ViY29tbWFuZF1cbiAqIEBwYXJhbSB7QXJnczxUPn0gW2FyZ3NdIC0gQXJndW1lbnRzIGZyb20gQ0xJIG9yIG90aGVyd2lzZVxuICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtU2VydmVyfHVuZGVmaW5lZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXJncykge1xuICBjb25zdCB7YXBwaXVtRHJpdmVyLCBwYXJzZWRBcmdzLCBwbHVnaW5Db25maWcsIGRyaXZlckNvbmZpZ30gPSAvKiogQHR5cGUge1NlcnZlckluaXRSZXN1bHR9ICovIChcbiAgICBhd2FpdCBpbml0KGFyZ3MpXG4gICk7XG5cbiAgaWYgKCFhcHBpdW1Ecml2ZXIgfHwgIXBhcnNlZEFyZ3MgfHwgIXBsdWdpbkNvbmZpZyB8fCAhZHJpdmVyQ29uZmlnKSB7XG4gICAgLy8gaWYgdGhpcyBicmFuY2ggaXMgdGFrZW4sIHdlJ3ZlIHJ1biBhIGRpZmZlcmVudCBzdWJjb21tYW5kLCBzbyB0aGVyZSdzIG5vdGhpbmdcbiAgICAvLyBsZWZ0IHRvIGRvIGhlcmUuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGx1Z2luQ2xhc3NlcyA9IGdldEFjdGl2ZVBsdWdpbnMocGx1Z2luQ29uZmlnLCBwYXJzZWRBcmdzLnVzZVBsdWdpbnMpO1xuICAvLyBzZXQgdGhlIGFjdGl2ZSBwbHVnaW5zIG9uIHRoZSB1bWJyZWxsYSBkcml2ZXIgc28gaXQgY2FuIHVzZSB0aGVtIGZvciBjb21tYW5kc1xuICBhcHBpdW1Ecml2ZXIucGx1Z2luQ2xhc3NlcyA9IHBsdWdpbkNsYXNzZXM7XG5cbiAgYXdhaXQgbG9nU3RhcnR1cEluZm8ocGFyc2VkQXJncyk7XG4gIGxldCByb3V0ZUNvbmZpZ3VyaW5nRnVuY3Rpb24gPSBtYWtlUm91dGVyKGFwcGl1bURyaXZlcik7XG5cbiAgY29uc3QgZHJpdmVyQ2xhc3NlcyA9IGdldEFjdGl2ZURyaXZlcnMoZHJpdmVyQ29uZmlnLCBwYXJzZWRBcmdzLnVzZURyaXZlcnMpO1xuICBjb25zdCBzZXJ2ZXJVcGRhdGVycyA9IGdldFNlcnZlclVwZGF0ZXJzKGRyaXZlckNsYXNzZXMsIHBsdWdpbkNsYXNzZXMpO1xuICBjb25zdCBleHRyYU1ldGhvZE1hcCA9IGdldEV4dHJhTWV0aG9kTWFwKGRyaXZlckNsYXNzZXMsIHBsdWdpbkNsYXNzZXMpO1xuXG4gIGNvbnN0IHNlcnZlck9wdHMgPSB7XG4gICAgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLFxuICAgIHBvcnQ6IHBhcnNlZEFyZ3MucG9ydCxcbiAgICBob3N0bmFtZTogcGFyc2VkQXJncy5hZGRyZXNzLFxuICAgIGFsbG93Q29yczogcGFyc2VkQXJncy5hbGxvd0NvcnMsXG4gICAgYmFzZVBhdGg6IHBhcnNlZEFyZ3MuYmFzZVBhdGgsXG4gICAgc2VydmVyVXBkYXRlcnMsXG4gICAgZXh0cmFNZXRob2RNYXAsXG4gIH07XG4gIGlmIChwYXJzZWRBcmdzLmtlZXBBbGl2ZVRpbWVvdXQpIHtcbiAgICBzZXJ2ZXJPcHRzLmtlZXBBbGl2ZVRpbWVvdXQgPSBwYXJzZWRBcmdzLmtlZXBBbGl2ZVRpbWVvdXQgKiAxMDAwO1xuICB9XG4gIGxldCBzZXJ2ZXI7XG4gIHRyeSB7XG4gICAgc2VydmVyID0gYXdhaXQgYmFzZVNlcnZlcihzZXJ2ZXJPcHRzKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nZ2VyLmVycm9yKFxuICAgICAgYENvdWxkIG5vdCBjb25maWd1cmUgQXBwaXVtIHNlcnZlci4gSXQncyBwb3NzaWJsZSB0aGF0IGEgZHJpdmVyIG9yIHBsdWdpbiB0cmllZCBgICtcbiAgICAgICAgYHRvIHVwZGF0ZSB0aGUgc2VydmVyIGFuZCBmYWlsZWQuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWBcbiAgICApO1xuICAgIGxvZ2dlci5kZWJ1ZyhlcnIuc3RhY2spO1xuICAgIHJldHVybiBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBpZiAocGFyc2VkQXJncy5hbGxvd0NvcnMpIHtcbiAgICBsb2dnZXIud2FybihcbiAgICAgICdZb3UgaGF2ZSBlbmFibGVkIENPUlMgcmVxdWVzdHMgZnJvbSBhbnkgaG9zdC4gQmUgY2FyZWZ1bCBub3QgJyArXG4gICAgICAgICd0byB2aXNpdCBzaXRlcyB3aGljaCBjb3VsZCBtYWxpY2lvdXNseSB0cnkgdG8gc3RhcnQgQXBwaXVtICcgK1xuICAgICAgICAnc2Vzc2lvbnMgb24geW91ciBtYWNoaW5lJ1xuICAgICk7XG4gIH1cbiAgYXBwaXVtRHJpdmVyLnNlcnZlciA9IHNlcnZlcjtcbiAgdHJ5IHtcbiAgICAvLyBjb25maWd1cmUgYXMgbm9kZSBvbiBncmlkLCBpZiBuZWNlc3NhcnlcbiAgICAvLyBmYWxzeSB2YWx1ZXMgc2hvdWxkIG5vdCBjYXVzZSB0aGlzIHRvIHJ1blxuICAgIGlmIChwYXJzZWRBcmdzLm5vZGVjb25maWcpIHtcbiAgICAgIGF3YWl0IHJlZ2lzdGVyTm9kZShcbiAgICAgICAgcGFyc2VkQXJncy5ub2RlY29uZmlnLFxuICAgICAgICBwYXJzZWRBcmdzLmFkZHJlc3MsXG4gICAgICAgIHBhcnNlZEFyZ3MucG9ydCxcbiAgICAgICAgcGFyc2VkQXJncy5iYXNlUGF0aFxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGF3YWl0IHNlcnZlci5jbG9zZSgpO1xuICAgIHRocm93IGVycjtcbiAgfVxuXG4gIGZvciAoY29uc3Qgc2lnbmFsIG9mIFsnU0lHSU5UJywgJ1NJR1RFUk0nXSkge1xuICAgIHByb2Nlc3Mub25jZShzaWduYWwsIGFzeW5jIGZ1bmN0aW9uIG9uU2lnbmFsKCkge1xuICAgICAgbG9nZ2VyLmluZm8oYFJlY2VpdmVkICR7c2lnbmFsfSAtIHNodXR0aW5nIGRvd25gKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGFwcGl1bURyaXZlci5kZWxldGVBbGxTZXNzaW9ucyh7XG4gICAgICAgICAgZm9yY2U6IHRydWUsXG4gICAgICAgICAgcmVhc29uOiBgVGhlIHByb2Nlc3MgaGFzIHJlY2VpdmVkICR7c2lnbmFsfSBzaWduYWxgLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgc2VydmVyLmNsb3NlKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nZ2VyLndhcm4oZSk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGxvZ1NlcnZlclBvcnQocGFyc2VkQXJncy5hZGRyZXNzLCBwYXJzZWRBcmdzLnBvcnQpO1xuICBkcml2ZXJDb25maWcucHJpbnQoKTtcbiAgcGx1Z2luQ29uZmlnLnByaW50KFsuLi5wbHVnaW5DbGFzc2VzLnZhbHVlcygpXSk7XG5cbiAgcmV0dXJuIHNlcnZlcjtcbn1cblxuLy8gTk9URTogdGhpcyBpcyBoZXJlIGZvciBiYWNrd2FyZHMgY29tcGF0IGZvciBhbnkgc2NyaXB0cyByZWZlcmVuY2luZyBgbWFpbi5qc2AgZGlyZWN0bHlcbi8vIChtb3JlIHNwZWNpZmljYWxseSwgYGJ1aWxkL2xpYi9tYWluLmpzYClcbi8vIHRoZSBleGVjdXRhYmxlIGlzIG5vdyBgLi4vaW5kZXguanNgLCBzbyB0aGF0IG1vZHVsZSB3aWxsIHR5cGljYWxseSBiZSBgcmVxdWlyZS5tYWluYC5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBhc3luY2lmeShtYWluKTtcbn1cblxuLy8gZXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIGludGVuZGVkIHRvIGJlIGEgcHVibGljIEFQSS5cbmV4cG9ydCB7cmVhZENvbmZpZ0ZpbGV9IGZyb20gJy4vY29uZmlnLWZpbGUnO1xuZXhwb3J0IHtmaW5hbGl6ZVNjaGVtYSwgZ2V0U2NoZW1hLCB2YWxpZGF0ZX0gZnJvbSAnLi9zY2hlbWEvc2NoZW1hJztcbmV4cG9ydCB7bWFpbiwgaW5pdCwgcmVzb2x2ZUFwcGl1bUhvbWV9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJUeXBlfSBEcml2ZXJUeXBlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuUGx1Z2luVHlwZX0gUGx1Z2luVHlwZVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlckNsYXNzfSBEcml2ZXJDbGFzc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlBsdWdpbkNsYXNzfSBQbHVnaW5DbGFzc1xuICogQHR5cGVkZWYge2ltcG9ydCgnYXBwaXVtL3R5cGVzJykuV2l0aFNlcnZlclN1YmNvbW1hbmR9IFdpdGhTZXJ2ZXJTdWJjb21tYW5kXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2V4dGVuc2lvbicpLkRyaXZlck5hbWVNYXB9IERyaXZlck5hbWVNYXBcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vZXh0ZW5zaW9uJykuUGx1Z2luTmFtZU1hcH0gUGx1Z2luTmFtZU1hcFxuICovXG5cbi8qKlxuICogTGl0ZXJhbGx5IGFuIGVtcHR5IG9iamVjdFxuICogQHR5cGVkZWYgeyB7fSB9IEV4dENvbW1hbmRJbml0UmVzdWx0XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiBTZXJ2ZXJJbml0RGF0YVxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4vYXBwaXVtJykuQXBwaXVtRHJpdmVyfSBhcHBpdW1Ecml2ZXIgLSBUaGUgQXBwaXVtIGRyaXZlclxuICogQHByb3BlcnR5IHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLlBhcnNlZEFyZ3N9IHBhcnNlZEFyZ3MgLSBUaGUgcGFyc2VkIGFyZ3VtZW50c1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYge1NlcnZlckluaXREYXRhICYgaW1wb3J0KCcuL2V4dGVuc2lvbicpLkV4dGVuc2lvbkNvbmZpZ3N9IFNlcnZlckluaXRSZXN1bHRcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbVD1XaXRoU2VydmVyU3ViY29tbWFuZF1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLkFyZ3M8VD59IEFyZ3NcbiAqL1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbVD1XaXRoU2VydmVyU3ViY29tbWFuZF1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ2FwcGl1bS90eXBlcycpLlBhcnNlZEFyZ3M8VD59IFBhcnNlZEFyZ3NcbiAqL1xuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFVQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNO0VBQUNBO0FBQUQsSUFBc0JDLFlBQTVCOzs7QUFPQSxlQUFlQyxlQUFmLENBQStCQyxJQUEvQixFQUFxQ0Msa0JBQWtCLEdBQUcsS0FBMUQsRUFBaUU7RUFDL0QsSUFBSTtJQUNGLElBQUFDLG1CQUFBOztJQUNBLElBQUlGLElBQUksQ0FBQ0csY0FBVCxFQUF5QjtNQUN2QkMsT0FBTyxDQUFDLFVBQUQsQ0FBUCxDQUFvQkMsaUJBQXBCLEdBQXdDLENBQUMsQ0FBekM7SUFDRDs7SUFDRCxJQUFJTCxJQUFJLENBQUNNLGFBQVQsRUFBd0I7TUFDdEIsTUFBTSxJQUFBQSxxQkFBQSxHQUFOO01BQ0FDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLENBQWI7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
|
|
@@ -26,13 +26,13 @@ export class ArgSpec<D> {
|
|
|
26
26
|
* @param {string} [extName] - Extension name
|
|
27
27
|
* @returns {string} Schema ID
|
|
28
28
|
*/
|
|
29
|
-
static toSchemaRef(name: string, extType?: import("
|
|
29
|
+
static toSchemaRef(name: string, extType?: import("../../../types/build").ExtensionType | undefined, extName?: string | undefined): string;
|
|
30
30
|
/**
|
|
31
31
|
* Return the schema ID for an extension or the base schema ID.
|
|
32
32
|
* @param {ExtensionType} [extType] - Extension type
|
|
33
33
|
* @param {string} [extName] - Extension name
|
|
34
34
|
*/
|
|
35
|
-
static toSchemaBaseRef(extType?: import("
|
|
35
|
+
static toSchemaBaseRef(extType?: import("../../../types/build").ExtensionType | undefined, extName?: string | undefined): string;
|
|
36
36
|
/**
|
|
37
37
|
* Return the unique ID for the argument given the parameters.
|
|
38
38
|
* @param {string} name - Argument name
|
|
@@ -40,7 +40,7 @@ export class ArgSpec<D> {
|
|
|
40
40
|
* @param {string} [extName] - Extension name
|
|
41
41
|
* @returns {string} Unique ID
|
|
42
42
|
*/
|
|
43
|
-
static toArg(name: string, extType?: import("
|
|
43
|
+
static toArg(name: string, extType?: import("../../../types/build").ExtensionType | undefined, extName?: string | undefined): string;
|
|
44
44
|
/**
|
|
45
45
|
* Normalizes a raw extension name (not including the type).
|
|
46
46
|
* @param {string} extName - Extension name
|
|
@@ -135,7 +135,7 @@ export class ArgSpec<D> {
|
|
|
135
135
|
*/
|
|
136
136
|
export type ArgSpecOptions<D> = {
|
|
137
137
|
extName?: string | undefined;
|
|
138
|
-
extType?: import("
|
|
138
|
+
extType?: import("../../../types/build").ExtensionType | undefined;
|
|
139
139
|
dest?: string | undefined;
|
|
140
140
|
defaultValue?: D | undefined;
|
|
141
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arg-spec.d.ts","sourceRoot":"","sources":["../../../lib/schema/arg-spec.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,oDAAqD;AAErD;;;;GAIG;AACH,wCAAyC;AAYzC;;;;;;GAMG;AACH;
|
|
1
|
+
{"version":3,"file":"arg-spec.d.ts","sourceRoot":"","sources":["../../../lib/schema/arg-spec.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,oDAAqD;AAErD;;;;GAIG;AACH,wCAAyC;AAYzC;;;;;;GAMG;AACH;IAyFE;;;;;;;;OAQG;IACH,yBALW,MAAM,qGAGJ,MAAM,CAQlB;IAED;;;;OAIG;IACH,iIAKC;IAED;;;;;;OAMG;IACH,mBALW,MAAM,qGAGJ,MAAM,CAQlB;IAED;;;;OAIG;IACH,oCAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;;OAIG;IACH,+CAHW,MAAM,GACH;QAAC,OAAO,CAAC,EAAE,aAAa,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAC,CAUlE;IAED;;;;;;;;OAQG;IACH,yBANW,MAAM,2CAIJ,sBAAiB,CAI7B;IAhHD;;;;;;;;;OASG;IACH,sBAqBC;IAtFD;;;OAGG;IACH,MAFU,MAAM,CAEX;IAEL;;;;OAIG;IACH,SAFU,aAAa,GAAC,SAAS,CAEzB;IAER;;;;;OAKG;IACH,SAFU,MAAM,GAAC,SAAS,CAElB;IAER;;;;OAIG;IACH,KAFU,MAAM,CAEZ;IAEJ;;;OAGG;IACH,KAFU,MAAM,CAEZ;IAEJ;;;;;;OAMG;IACH,MAFU,MAAM,CAEX;IAEL;;OAEG;IACH,gBAAQ;IAER;;;;OAIG;IACH,cAFU,CAAC,GAAC,SAAS,CAER;IAoHb;;;OAGG;IAEH,YAHa,MAAM,CASlB;CACF;;;;;;;;;;4BAaY,OAAO,uBAAuB,EAAE,aAAa"}
|
|
@@ -116,4 +116,4 @@ class ArgSpec {
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
exports.ArgSpec = ArgSpec;
|
|
119
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBUFBJVU1fQ09ORklHX1NDSEVNQV9JRCIsIlNFUlZFUl9QUk9QX05BTUUiLCJTQ0hFTUFfSURfUkVHRVhQIiwiUFJPUEVSVElFUyIsIkFyZ1NwZWMiLCJuYW1lIiwiZXh0VHlwZSIsImV4dE5hbWUiLCJyZWYiLCJhcmciLCJkZXN0IiwicmF3RGVzdCIsImRlZmF1bHRWYWx1ZSIsImNvbnN0cnVjdG9yIiwidG9BcmciLCJ0b1NjaGVtYVJlZiIsIl8iLCJjYW1lbENhc2UiLCJkZXN0S2V5cGF0aCIsImpvaW4iLCJiYXNlUmVmIiwidG9TY2hlbWFCYXNlUmVmIiwidG9Ob3JtYWxpemVkRXh0TmFtZSIsInByb3Blck5hbWUiLCJrZWJhYkNhc2UiLCJyZXBsYWNlIiwiZXh0ZW5zaW9uSW5mb0Zyb21Sb290U2NoZW1hSWQiLCJzY2hlbWFJZCIsIm1hdGNoZXMiLCJtYXRjaCIsImdyb3VwcyIsIm5vcm1hbGl6ZWRFeHROYW1lIiwiY3JlYXRlIiwib3B0cyIsIk9iamVjdCIsImZyZWV6ZSIsInRvU3RyaW5nIiwic3RyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS9hcmctc3BlYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFRoZSBvcmlnaW5hbCBJRCBvZiB0aGUgQXBwaXVtIGNvbmZpZyBzY2hlbWEuXG4gKiBXZSB1c2UgdGhpcyBpbiB0aGUgQ0xJIHRvIGNvbnZlcnQgaXQgdG8gYGFyZ3BhcnNlYCBvcHRpb25zLlxuICovXG5leHBvcnQgY29uc3QgQVBQSVVNX0NPTkZJR19TQ0hFTUFfSUQgPSAnYXBwaXVtLmpzb24nO1xuXG4vKipcbiAqIFRoZSBzY2hlbWEgcHJvcCBjb250YWluaW5nIHNlcnZlci1yZWxhdGVkIG9wdGlvbnMuIEV2ZXJ5dGhpbmcgaW4gaGVyZVxuICogaXMgXCJuYXRpdmVcIiB0byBBcHBpdW0uXG4gKiBVc2VkIGJ5IHtAbGluayBmbGF0dGVuU2NoZW1hfSBmb3IgdHJhbnNmb3JtaW5nIHRoZSBzY2hlbWEgaW50byBDTEkgYXJncy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9QUk9QX05BTUUgPSAnc2VydmVyJztcblxuLyoqXG4gKiBVc2VkIHRvIHBhcnNlIGV4dGVuc2lvbiBpbmZvIGZyb20gYSBzY2hlbWEgSUQuXG4gKi9cbmNvbnN0IFNDSEVNQV9JRF9SRUdFWFAgPSAvXig/PGV4dFR5cGU+Lis/KS0oPzxub3JtYWxpemVkRXh0TmFtZT4uKylcXC5qc29uJC87XG5cbi8qKlxuICogQXZvaWQgdHlwb3MgYnkgdXNpbmcgY29uc3RhbnRzIVxuICovXG5jb25zdCBQUk9QRVJUSUVTID0gJ3Byb3BlcnRpZXMnO1xuXG4vKipcbiAqIEFuIGBBcmdTcGVjYCBpcyBhIGNsYXNzIHJlcHJlc2VudGluZyBtZXRhZGF0YSBhYm91dCBhbiBhcmd1bWVudCAob3IgY29uZmlnXG4gKiBvcHRpb24pIHVzZWQgZm9yIGNyb3NzLXJlZmVyZW5jaW5nLlxuICpcbiAqIFRoaXMgY2xhc3MgaGFzIG5vIGluc3RhbmNlIG1ldGhvZHMsIGFuZCBpcyBiYXNpY2FsbHkganVzdCBhIHJlYWQtb25seSBcInN0cnVjdFwiLlxuICogQHRlbXBsYXRlIERcbiAqL1xuZXhwb3J0IGNsYXNzIEFyZ1NwZWMge1xuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBhcmd1bWVudC4gQ29ycmVzcG9uZHMgdG8ga2V5IGluIHNjaGVtYSdzIGBwcm9wZXJ0aWVzYCBwcm9wLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgbmFtZTtcblxuICAvKipcbiAgICogVGhlIGBFeHRlbnNpb25UeXBlYCBvZiB0aGUgYXJndW1lbnQuIFRoaXMgd2lsbCBiZSBzZXQgaWYgdGhlIGFyZyBjYW1lIGZyb20gYW4gZXh0ZW5zaW9uO1xuICAgKiBvdGhlcndpc2UgaXQgd2lsbCBiZSBgdW5kZWZpbmVkYC5cbiAgICogQHR5cGUge0V4dGVuc2lvblR5cGV8dW5kZWZpbmVkfVxuICAgKi9cbiAgZXh0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGV4dGVuc2lvbiwgaWYgdGhpcyBhcmd1bWVudCBjYW1lIGZyb20gYW4gZXh0ZW5zaW9uLlxuICAgKlxuICAgKiBPdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqIEB0eXBlIHtzdHJpbmd8dW5kZWZpbmVkfVxuICAgKi9cbiAgZXh0TmFtZTtcblxuICAvKipcbiAgICogVGhlIHNjaGVtYSBJRCAoYCRpZGApIGZvciB0aGUgYXJndW1lbnQuICBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZCwgYW5kIGFueSB1c2VyLXByb3ZpZGVkIGAkaWRgcyB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgcmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0xJIGFyZ3VtZW50LCBzYW5zIGxlYWRpbmcgZGFzaGVzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgYXJnO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzaXJlZCBrZXlwYXRoIGZvciB0aGUgYXJndW1lbnQgYWZ0ZXIgYXJndW1lbnRzIGhhdmUgYmVlbiBwYXJzZWQuXG4gICAqXG4gICAqIFR5cGljYWxseSB0aGlzIGlzIGNhbWVsQ2FzZWQuICBJZiB0aGUgYXJnIGNhbWUgZnJvbSBhbiBleHRlbnNpb24sIGl0IHdpbGwgYmUgcHJlZml4ZWQgd2l0aFxuICAgKiBgPGV4dFR5cGU+LjxleHROYW1lPi5gXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBkZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgQXJnU3BlYy5kZXN0fSBidXQgd2l0aG91dCB0aGUgbGVhZGluZyBgPGV4dFR5cGU+LjxleHROYW1lPi5gIHByZWZpeC5cbiAgICovXG4gIHJhd0Rlc3Q7XG5cbiAgLyoqXG4gICAqIFdoYXRldmVyIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgYXJndW1lbnQgaXMsIGFzIHNwZWNpZmllZCBieSB0aGVcbiAgICogYGRlZmF1bHRgIHByb3BlcnR5IG9mIHRoZSBzY2hlbWEuXG4gICAqIEB0eXBlIHtEfHVuZGVmaW5lZH1cbiAgICovXG4gIGRlZmF1bHRWYWx1ZTtcblxuICAvKipcbiAgICogQnVpbGRzIHNvbWUgY29tcHV0ZWQgZmllbGRzIGFuZCBhc3NpZ25zIHRoZW0gdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBVbmRlZmluZWQgcHJvcGVydGllcyBhcmUgbm90IGFzc2lnbmVkLlxuICAgKlxuICAgKiBUaGUgX2NvbnN0cnVjdG9yXyBpcyBwcml2YXRlLiBVc2Uge0BsaW5rIEFyZ1NwZWMuY3JlYXRlfSBpbnN0ZWFkLlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge0FyZ1NwZWNPcHRpb25zPEQ+fSBbb3B0c11cbiAgICovXG4gIGNvbnN0cnVjdG9yIChuYW1lLCB7ZXh0VHlwZSwgZXh0TmFtZSwgZGVzdCwgZGVmYXVsdFZhbHVlfSA9IHt9KSB7XG4gICAgLy8gd2UgbXVzdCBub3JtYWxpemUgdGhlIGV4dGVuc2lvbiBuYW1lIHRvIGZpdCBpbnRvIG91ciBjb252ZW50aW9uIGZvciBDTElcbiAgICAvLyBhcmdzLlxuICAgIGNvbnN0IGFyZyA9IEFyZ1NwZWMudG9BcmcobmFtZSwgZXh0VHlwZSwgZXh0TmFtZSk7XG5cbiAgICBjb25zdCByZWYgPSBBcmdTcGVjLnRvU2NoZW1hUmVmKG5hbWUsIGV4dFR5cGUsIGV4dE5hbWUpO1xuXG4gICAgLy8gaWYgbm8gZXhwbGljaXQgYGRlc3RgIHByb3ZpZGVkLCBqdXN0IGNhbWVsQ2FzZSB0aGUgbmFtZSB0byBhdm9pZCBuZWVkaW5nXG4gICAgLy8gdG8gdXNlIGJyYWNrZXQgc3ludGF4IHdoZW4gYWNjZXNzaW5nIHByb3BzIG9uIHRoZSBwYXJzZWQgYXJncyBvYmplY3QuXG4gICAgY29uc3QgcmF3RGVzdCA9IF8uY2FtZWxDYXNlKGRlc3QgPz8gbmFtZSk7XG5cbiAgICBjb25zdCBkZXN0S2V5cGF0aCA9XG4gICAgICBleHRUeXBlICYmIGV4dE5hbWUgPyBbZXh0VHlwZSwgZXh0TmFtZSwgcmF3RGVzdF0uam9pbignLicpIDogcmF3RGVzdDtcblxuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5leHRUeXBlID0gZXh0VHlwZTtcbiAgICB0aGlzLmV4dE5hbWUgPSBleHROYW1lO1xuICAgIHRoaXMuYXJnID0gYXJnO1xuICAgIHRoaXMuZGVzdCA9IGRlc3RLZXlwYXRoO1xuICAgIHRoaXMucmVmID0gcmVmO1xuICAgIHRoaXMucmF3RGVzdCA9IHJhd0Rlc3Q7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzY2hlbWEgSUQgKGAkaWRgKSBmb3IgdGhlICoqYXJndW1lbnQqKiBnaXZlbiB0aGUgcGFyYW1ldGVycy5cbiAgICpcbiAgICogSWYgeW91IG5lZWQgdGhlIFwicm9vdFwiIG9yIFwiYmFzZVwiIHNjaGVtYSBJRCwgdXNlIHtAbGluayBBcmdTcGVjLnRvU2NoZW1hQmFzZVJlZn0gaW5zdGVhZC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBBcmd1bWVudCBuYW1lXG4gICAqIEBwYXJhbSB7RXh0ZW5zaW9uVHlwZX0gW2V4dFR5cGVdIC0gRXh0ZW5zaW9uIHR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHROYW1lXSAtIEV4dGVuc2lvbiBuYW1lXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFNjaGVtYSBJRFxuICAgKi9cbiAgc3RhdGljIHRvU2NoZW1hUmVmIChuYW1lLCBleHRUeXBlLCBleHROYW1lKSB7XG4gICAgY29uc3QgYmFzZVJlZiA9IEFyZ1NwZWMudG9TY2hlbWFCYXNlUmVmKGV4dFR5cGUsIGV4dE5hbWUpO1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBbYCR7YmFzZVJlZn0jYCwgUFJPUEVSVElFUywgbmFtZV0uam9pbignLycpO1xuICAgIH1cbiAgICByZXR1cm4gW2Ake2Jhc2VSZWZ9I2AsIFBST1BFUlRJRVMsIFNFUlZFUl9QUk9QX05BTUUsIFBST1BFUlRJRVMsIG5hbWVdLmpvaW4oJy8nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNjaGVtYSBJRCBmb3IgYW4gZXh0ZW5zaW9uIG9yIHRoZSBiYXNlIHNjaGVtYSBJRC5cbiAgICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV0gLSBFeHRlbnNpb24gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4dE5hbWVdIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICovXG4gIHN0YXRpYyB0b1NjaGVtYUJhc2VSZWYgKGV4dFR5cGUsIGV4dE5hbWUpIHtcbiAgICBpZiAoZXh0VHlwZSAmJiBleHROYW1lKSB7XG4gICAgICByZXR1cm4gYCR7ZXh0VHlwZX0tJHtBcmdTcGVjLnRvTm9ybWFsaXplZEV4dE5hbWUoZXh0TmFtZSl9Lmpzb25gO1xuICAgIH1cbiAgICByZXR1cm4gQVBQSVVNX0NPTkZJR19TQ0hFTUFfSUQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB1bmlxdWUgSUQgZm9yIHRoZSBhcmd1bWVudCBnaXZlbiB0aGUgcGFyYW1ldGVycy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBBcmd1bWVudCBuYW1lXG4gICAqIEBwYXJhbSB7RXh0ZW5zaW9uVHlwZX0gW2V4dFR5cGVdIC0gRXh0ZW5zaW9uIHR5cGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtleHROYW1lXSAtIEV4dGVuc2lvbiBuYW1lXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFVuaXF1ZSBJRFxuICAgKi9cbiAgc3RhdGljIHRvQXJnIChuYW1lLCBleHRUeXBlLCBleHROYW1lKSB7XG4gICAgY29uc3QgcHJvcGVyTmFtZSA9IF8ua2ViYWJDYXNlKG5hbWUucmVwbGFjZSgvXi0tPy8sICcnKSk7XG4gICAgaWYgKGV4dFR5cGUgJiYgZXh0TmFtZSkge1xuICAgICAgcmV0dXJuIFtleHRUeXBlLCBfLmtlYmFiQ2FzZShleHROYW1lKSwgcHJvcGVyTmFtZV0uam9pbignLScpO1xuICAgIH1cbiAgICByZXR1cm4gcHJvcGVyTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemVzIGEgcmF3IGV4dGVuc2lvbiBuYW1lIChub3QgaW5jbHVkaW5nIHRoZSB0eXBlKS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dE5hbWUgLSBFeHRlbnNpb24gbmFtZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBOb3JtYWxpemVkIGV4dGVuc2lvbiBuYW1lXG4gICAqL1xuICBzdGF0aWMgdG9Ob3JtYWxpemVkRXh0TmFtZSAoZXh0TmFtZSkge1xuICAgIHJldHVybiBfLmtlYmFiQ2FzZShleHROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGdpdmVuIHRoZSByb290IElEIG9mIGEgc2NoZW1hIGZvciBhbiBleHRlbnNpb24gKGA8ZXh0VHlwZT4tPG5vcm1hbGl6ZWRFeHROYW1lPi5qc29uYCkgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgZXh0ZW5zaW9uIHR5cGUgYW5kIHRoZSBfbm9ybWFsaXplZF8gZXh0ZW5zaW9uIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFJZCAtIFJvb3Qgc2NoZW1hIElEXG4gICAqIEByZXR1cm5zIHsge2V4dFR5cGU/OiBFeHRlbnNpb25UeXBlLCBub3JtYWxpemVkRXh0TmFtZT86IHN0cmluZ30gfVxuICAgKi9cbiAgc3RhdGljIGV4dGVuc2lvbkluZm9Gcm9tUm9vdFNjaGVtYUlkIChzY2hlbWFJZCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBzY2hlbWFJZC5tYXRjaChTQ0hFTUFfSURfUkVHRVhQKTtcbiAgICBpZiAobWF0Y2hlcz8uZ3JvdXBzKSB7XG4gICAgICBjb25zdCB7ZXh0VHlwZSwgbm9ybWFsaXplZEV4dE5hbWV9ID1cbiAgICAgICAgLyoqIEB0eXBlIHsge2V4dFR5cGU6IEV4dGVuc2lvblR5cGUsIG5vcm1hbGl6ZWRFeHROYW1lOiBzdHJpbmd9IH0gKi8gKFxuICAgICAgICAgIG1hdGNoZXMuZ3JvdXBzXG4gICAgICAgICk7XG4gICAgICByZXR1cm4ge2V4dFR5cGUsIG5vcm1hbGl6ZWRFeHROYW1lfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gYEFyZ1NwZWNgXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBhcmd1bWVudC4gQ29ycmVzcG9uZHMgdG8gYSBrZXkgaW4gYSBzY2hlbWEnc1xuICAgKiBgcHJvcGVydGllc2AgcHJvcGVydHkuXG4gICAqIEB0ZW1wbGF0ZSBEXG4gICAqIEBwYXJhbSB7QXJnU3BlY09wdGlvbnM8RD59IFtvcHRzXSAtIE9wdGlvbnNcbiAgICogQHJldHVybnMge1JlYWRvbmx5PEFyZ1NwZWM+fVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZSAobmFtZSwgb3B0cykge1xuICAgIHJldHVybiBPYmplY3QuZnJlZXplKG5ldyBBcmdTcGVjKG5hbWUsIG9wdHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJpbmcgcmVwcmVzZW50YXRpb24sIHVzZWZ1bCBmb3IgZGVidWdnaW5nXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0b1N0cmluZyAoKSB7XG4gICAgbGV0IHN0ciA9IGBbQXJnU3BlY10gJHt0aGlzLm5hbWV9ICgke3RoaXMucmVmfSlgO1xuICAgIGlmICh0aGlzLmV4dFR5cGUgJiYgdGhpcy5leHROYW1lKSB7XG4gICAgICBzdHIgKz0gYCAoZXh0OiAke3RoaXMuZXh0VHlwZX0vJHt0aGlzLmV4dE5hbWV9KWA7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgQXJnU3BlYy5jcmVhdGV9XG4gKiBAdGVtcGxhdGUgRFxuICogQHR5cGVkZWYgQXJnU3BlY09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZXh0TmFtZV1cbiAqIEBwcm9wZXJ0eSB7RXh0ZW5zaW9uVHlwZX0gW2V4dFR5cGVdXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2Rlc3RdXG4gKiBAcHJvcGVydHkge0R9IFtkZWZhdWx0VmFsdWVdXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9leHRlbnNpb24vbWFuaWZlc3QnKS5FeHRlbnNpb25UeXBlfSBFeHRlbnNpb25UeXBlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFNTyxNQUFNQSx1QkFBdUIsR0FBRyxhQUFoQzs7QUFPQSxNQUFNQyxnQkFBZ0IsR0FBRyxRQUF6Qjs7QUFLUCxNQUFNQyxnQkFBZ0IsR0FBRyxrREFBekI7QUFLQSxNQUFNQyxVQUFVLEdBQUcsWUFBbkI7O0FBU08sTUFBTUMsT0FBTixDQUFjO0VBS25CQyxJQUFJO0VBT0pDLE9BQU87RUFRUEMsT0FBTztFQU9QQyxHQUFHO0VBTUhDLEdBQUc7RUFTSEMsSUFBSTtFQUtKQyxPQUFPO0VBT1BDLFlBQVk7O0VBWVpDLFdBQVcsQ0FBRVIsSUFBRixFQUFRO0lBQUNDLE9BQUQ7SUFBVUMsT0FBVjtJQUFtQkcsSUFBbkI7SUFBeUJFO0VBQXpCLElBQXlDLEVBQWpELEVBQXFEO0lBRzlELE1BQU1ILEdBQUcsR0FBR0wsT0FBTyxDQUFDVSxLQUFSLENBQWNULElBQWQsRUFBb0JDLE9BQXBCLEVBQTZCQyxPQUE3QixDQUFaO0lBRUEsTUFBTUMsR0FBRyxHQUFHSixPQUFPLENBQUNXLFdBQVIsQ0FBb0JWLElBQXBCLEVBQTBCQyxPQUExQixFQUFtQ0MsT0FBbkMsQ0FBWjs7SUFJQSxNQUFNSSxPQUFPLEdBQUdLLGdCQUFFQyxTQUFGLENBQVlQLElBQVosYUFBWUEsSUFBWixjQUFZQSxJQUFaLEdBQW9CTCxJQUFwQixDQUFoQjs7SUFFQSxNQUFNYSxXQUFXLEdBQ2ZaLE9BQU8sSUFBSUMsT0FBWCxHQUFxQixD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
|
|
119
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBUFBJVU1fQ09ORklHX1NDSEVNQV9JRCIsIlNFUlZFUl9QUk9QX05BTUUiLCJTQ0hFTUFfSURfUkVHRVhQIiwiUFJPUEVSVElFUyIsIkFyZ1NwZWMiLCJuYW1lIiwiZXh0VHlwZSIsImV4dE5hbWUiLCJyZWYiLCJhcmciLCJkZXN0IiwicmF3RGVzdCIsImRlZmF1bHRWYWx1ZSIsImNvbnN0cnVjdG9yIiwidG9BcmciLCJ0b1NjaGVtYVJlZiIsIl8iLCJjYW1lbENhc2UiLCJkZXN0S2V5cGF0aCIsImpvaW4iLCJiYXNlUmVmIiwidG9TY2hlbWFCYXNlUmVmIiwidG9Ob3JtYWxpemVkRXh0TmFtZSIsInByb3Blck5hbWUiLCJrZWJhYkNhc2UiLCJyZXBsYWNlIiwiZXh0ZW5zaW9uSW5mb0Zyb21Sb290U2NoZW1hSWQiLCJzY2hlbWFJZCIsIm1hdGNoZXMiLCJtYXRjaCIsImdyb3VwcyIsIm5vcm1hbGl6ZWRFeHROYW1lIiwiY3JlYXRlIiwib3B0cyIsIk9iamVjdCIsImZyZWV6ZSIsInRvU3RyaW5nIiwic3RyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3NjaGVtYS9hcmctc3BlYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIFRoZSBvcmlnaW5hbCBJRCBvZiB0aGUgQXBwaXVtIGNvbmZpZyBzY2hlbWEuXG4gKiBXZSB1c2UgdGhpcyBpbiB0aGUgQ0xJIHRvIGNvbnZlcnQgaXQgdG8gYGFyZ3BhcnNlYCBvcHRpb25zLlxuICovXG5leHBvcnQgY29uc3QgQVBQSVVNX0NPTkZJR19TQ0hFTUFfSUQgPSAnYXBwaXVtLmpzb24nO1xuXG4vKipcbiAqIFRoZSBzY2hlbWEgcHJvcCBjb250YWluaW5nIHNlcnZlci1yZWxhdGVkIG9wdGlvbnMuIEV2ZXJ5dGhpbmcgaW4gaGVyZVxuICogaXMgXCJuYXRpdmVcIiB0byBBcHBpdW0uXG4gKiBVc2VkIGJ5IHtAbGluayBmbGF0dGVuU2NoZW1hfSBmb3IgdHJhbnNmb3JtaW5nIHRoZSBzY2hlbWEgaW50byBDTEkgYXJncy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9QUk9QX05BTUUgPSAnc2VydmVyJztcblxuLyoqXG4gKiBVc2VkIHRvIHBhcnNlIGV4dGVuc2lvbiBpbmZvIGZyb20gYSBzY2hlbWEgSUQuXG4gKi9cbmNvbnN0IFNDSEVNQV9JRF9SRUdFWFAgPSAvXig/PGV4dFR5cGU+Lis/KS0oPzxub3JtYWxpemVkRXh0TmFtZT4uKylcXC5qc29uJC87XG5cbi8qKlxuICogQXZvaWQgdHlwb3MgYnkgdXNpbmcgY29uc3RhbnRzIVxuICovXG5jb25zdCBQUk9QRVJUSUVTID0gJ3Byb3BlcnRpZXMnO1xuXG4vKipcbiAqIEFuIGBBcmdTcGVjYCBpcyBhIGNsYXNzIHJlcHJlc2VudGluZyBtZXRhZGF0YSBhYm91dCBhbiBhcmd1bWVudCAob3IgY29uZmlnXG4gKiBvcHRpb24pIHVzZWQgZm9yIGNyb3NzLXJlZmVyZW5jaW5nLlxuICpcbiAqIFRoaXMgY2xhc3MgaGFzIG5vIGluc3RhbmNlIG1ldGhvZHMsIGFuZCBpcyBiYXNpY2FsbHkganVzdCBhIHJlYWQtb25seSBcInN0cnVjdFwiLlxuICogQHRlbXBsYXRlIERcbiAqL1xuZXhwb3J0IGNsYXNzIEFyZ1NwZWMge1xuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCBuYW1lIG9mIHRoZSBhcmd1bWVudC4gQ29ycmVzcG9uZHMgdG8ga2V5IGluIHNjaGVtYSdzIGBwcm9wZXJ0aWVzYCBwcm9wLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgbmFtZTtcblxuICAvKipcbiAgICogVGhlIGBFeHRlbnNpb25UeXBlYCBvZiB0aGUgYXJndW1lbnQuIFRoaXMgd2lsbCBiZSBzZXQgaWYgdGhlIGFyZyBjYW1lIGZyb20gYW4gZXh0ZW5zaW9uO1xuICAgKiBvdGhlcndpc2UgaXQgd2lsbCBiZSBgdW5kZWZpbmVkYC5cbiAgICogQHR5cGUge0V4dGVuc2lvblR5cGV8dW5kZWZpbmVkfVxuICAgKi9cbiAgZXh0VHlwZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGV4dGVuc2lvbiwgaWYgdGhpcyBhcmd1bWVudCBjYW1lIGZyb20gYW4gZXh0ZW5zaW9uLlxuICAgKlxuICAgKiBPdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqIEB0eXBlIHtzdHJpbmd8dW5kZWZpbmVkfVxuICAgKi9cbiAgZXh0TmFtZTtcblxuICAvKipcbiAgICogVGhlIHNjaGVtYSBJRCAoYCRpZGApIGZvciB0aGUgYXJndW1lbnQuICBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZCwgYW5kIGFueSB1c2VyLXByb3ZpZGVkIGAkaWRgcyB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgcmVmO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0xJIGFyZ3VtZW50LCBzYW5zIGxlYWRpbmcgZGFzaGVzLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgYXJnO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzaXJlZCBrZXlwYXRoIGZvciB0aGUgYXJndW1lbnQgYWZ0ZXIgYXJndW1lbnRzIGhhdmUgYmVlbiBwYXJzZWQuXG4gICAqXG4gICAqIFR5cGljYWxseSB0aGlzIGlzIGNhbWVsQ2FzZWQuICBJZiB0aGUgYXJnIGNhbWUgZnJvbSBhbiBleHRlbnNpb24sIGl0IHdpbGwgYmUgcHJlZml4ZWQgd2l0aFxuICAgKiBgPGV4dFR5cGU+LjxleHROYW1lPi5gXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqL1xuICBkZXN0O1xuXG4gIC8qKlxuICAgKiBUaGUgc2FtZSBhcyB7QGxpbmsgQXJnU3BlYy5kZXN0fSBidXQgd2l0aG91dCB0aGUgbGVhZGluZyBgPGV4dFR5cGU+LjxleHROYW1lPi5gIHByZWZpeC5cbiAgICovXG4gIHJhd0Rlc3Q7XG5cbiAgLyoqXG4gICAqIFdoYXRldmVyIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgYXJndW1lbnQgaXMsIGFzIHNwZWNpZmllZCBieSB0aGVcbiAgICogYGRlZmF1bHRgIHByb3BlcnR5IG9mIHRoZSBzY2hlbWEuXG4gICAqIEB0eXBlIHtEfHVuZGVmaW5lZH1cbiAgICovXG4gIGRlZmF1bHRWYWx1ZTtcblxuICAvKipcbiAgICogQnVpbGRzIHNvbWUgY29tcHV0ZWQgZmllbGRzIGFuZCBhc3NpZ25zIHRoZW0gdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBVbmRlZmluZWQgcHJvcGVydGllcyBhcmUgbm90IGFzc2lnbmVkLlxuICAgKlxuICAgKiBUaGUgX2NvbnN0cnVjdG9yXyBpcyBwcml2YXRlLiBVc2Uge0BsaW5rIEFyZ1NwZWMuY3JlYXRlfSBpbnN0ZWFkLlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0ge0FyZ1NwZWNPcHRpb25zPEQ+fSBbb3B0c11cbiAgICovXG4gIGNvbnN0cnVjdG9yKG5hbWUsIHtleHRUeXBlLCBleHROYW1lLCBkZXN0LCBkZWZhdWx0VmFsdWV9ID0ge30pIHtcbiAgICAvLyB3ZSBtdXN0IG5vcm1hbGl6ZSB0aGUgZXh0ZW5zaW9uIG5hbWUgdG8gZml0IGludG8gb3VyIGNvbnZlbnRpb24gZm9yIENMSVxuICAgIC8vIGFyZ3MuXG4gICAgY29uc3QgYXJnID0gQXJnU3BlYy50b0FyZyhuYW1lLCBleHRUeXBlLCBleHROYW1lKTtcblxuICAgIGNvbnN0IHJlZiA9IEFyZ1NwZWMudG9TY2hlbWFSZWYobmFtZSwgZXh0VHlwZSwgZXh0TmFtZSk7XG5cbiAgICAvLyBpZiBubyBleHBsaWNpdCBgZGVzdGAgcHJvdmlkZWQsIGp1c3QgY2FtZWxDYXNlIHRoZSBuYW1lIHRvIGF2b2lkIG5lZWRpbmdcbiAgICAvLyB0byB1c2UgYnJhY2tldCBzeW50YXggd2hlbiBhY2Nlc3NpbmcgcHJvcHMgb24gdGhlIHBhcnNlZCBhcmdzIG9iamVjdC5cbiAgICBjb25zdCByYXdEZXN0ID0gXy5jYW1lbENhc2UoZGVzdCA/PyBuYW1lKTtcblxuICAgIGNvbnN0IGRlc3RLZXlwYXRoID0gZXh0VHlwZSAmJiBleHROYW1lID8gW2V4dFR5cGUsIGV4dE5hbWUsIHJhd0Rlc3RdLmpvaW4oJy4nKSA6IHJhd0Rlc3Q7XG5cbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuZXh0VHlwZSA9IGV4dFR5cGU7XG4gICAgdGhpcy5leHROYW1lID0gZXh0TmFtZTtcbiAgICB0aGlzLmFyZyA9IGFyZztcbiAgICB0aGlzLmRlc3QgPSBkZXN0S2V5cGF0aDtcbiAgICB0aGlzLnJlZiA9IHJlZjtcbiAgICB0aGlzLnJhd0Rlc3QgPSByYXdEZXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2NoZW1hIElEIChgJGlkYCkgZm9yIHRoZSAqKmFyZ3VtZW50KiogZ2l2ZW4gdGhlIHBhcmFtZXRlcnMuXG4gICAqXG4gICAqIElmIHlvdSBuZWVkIHRoZSBcInJvb3RcIiBvciBcImJhc2VcIiBzY2hlbWEgSUQsIHVzZSB7QGxpbmsgQXJnU3BlYy50b1NjaGVtYUJhc2VSZWZ9IGluc3RlYWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gQXJndW1lbnQgbmFtZVxuICAgKiBAcGFyYW0ge0V4dGVuc2lvblR5cGV9IFtleHRUeXBlXSAtIEV4dGVuc2lvbiB0eXBlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbZXh0TmFtZV0gLSBFeHRlbnNpb24gbmFtZVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBTY2hlbWEgSURcbiAgICovXG4gIHN0YXRpYyB0b1NjaGVtYVJlZihuYW1lLCBleHRUeXBlLCBleHROYW1lKSB7XG4gICAgY29uc3QgYmFzZVJlZiA9IEFyZ1NwZWMudG9TY2hlbWFCYXNlUmVmKGV4dFR5cGUsIGV4dE5hbWUpO1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBbYCR7YmFzZVJlZn0jYCwgUFJPUEVSVElFUywgbmFtZV0uam9pbignLycpO1xuICAgIH1cbiAgICByZXR1cm4gW2Ake2Jhc2VSZWZ9I2AsIFBST1BFUlRJRVMsIFNFUlZFUl9QUk9QX05BTUUsIFBST1BFUlRJRVMsIG5hbWVdLmpvaW4oJy8nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNjaGVtYSBJRCBmb3IgYW4gZXh0ZW5zaW9uIG9yIHRoZSBiYXNlIHNjaGVtYSBJRC5cbiAgICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV0gLSBFeHRlbnNpb24gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4dE5hbWVdIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICovXG4gIHN0YXRpYyB0b1NjaGVtYUJhc2VSZWYoZXh0VHlwZSwgZXh0TmFtZSkge1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBgJHtleHRUeXBlfS0ke0FyZ1NwZWMudG9Ob3JtYWxpemVkRXh0TmFtZShleHROYW1lKX0uanNvbmA7XG4gICAgfVxuICAgIHJldHVybiBBUFBJVU1fQ09ORklHX1NDSEVNQV9JRDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHVuaXF1ZSBJRCBmb3IgdGhlIGFyZ3VtZW50IGdpdmVuIHRoZSBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIEFyZ3VtZW50IG5hbWVcbiAgICogQHBhcmFtIHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV0gLSBFeHRlbnNpb24gdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2V4dE5hbWVdIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICogQHJldHVybnMge3N0cmluZ30gVW5pcXVlIElEXG4gICAqL1xuICBzdGF0aWMgdG9BcmcobmFtZSwgZXh0VHlwZSwgZXh0TmFtZSkge1xuICAgIGNvbnN0IHByb3Blck5hbWUgPSBfLmtlYmFiQ2FzZShuYW1lLnJlcGxhY2UoL14tLT8vLCAnJykpO1xuICAgIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICAgIHJldHVybiBbZXh0VHlwZSwgXy5rZWJhYkNhc2UoZXh0TmFtZSksIHByb3Blck5hbWVdLmpvaW4oJy0nKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3Blck5hbWU7XG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsaXplcyBhIHJhdyBleHRlbnNpb24gbmFtZSAobm90IGluY2x1ZGluZyB0aGUgdHlwZSkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBleHROYW1lIC0gRXh0ZW5zaW9uIG5hbWVcbiAgICogQHJldHVybnMge3N0cmluZ30gTm9ybWFsaXplZCBleHRlbnNpb24gbmFtZVxuICAgKi9cbiAgc3RhdGljIHRvTm9ybWFsaXplZEV4dE5hbWUoZXh0TmFtZSkge1xuICAgIHJldHVybiBfLmtlYmFiQ2FzZShleHROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGdpdmVuIHRoZSByb290IElEIG9mIGEgc2NoZW1hIGZvciBhbiBleHRlbnNpb24gKGA8ZXh0VHlwZT4tPG5vcm1hbGl6ZWRFeHROYW1lPi5qc29uYCkgUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgZXh0ZW5zaW9uIHR5cGUgYW5kIHRoZSBfbm9ybWFsaXplZF8gZXh0ZW5zaW9uIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFJZCAtIFJvb3Qgc2NoZW1hIElEXG4gICAqIEByZXR1cm5zIHsge2V4dFR5cGU/OiBFeHRlbnNpb25UeXBlLCBub3JtYWxpemVkRXh0TmFtZT86IHN0cmluZ30gfVxuICAgKi9cbiAgc3RhdGljIGV4dGVuc2lvbkluZm9Gcm9tUm9vdFNjaGVtYUlkKHNjaGVtYUlkKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHNjaGVtYUlkLm1hdGNoKFNDSEVNQV9JRF9SRUdFWFApO1xuICAgIGlmIChtYXRjaGVzPy5ncm91cHMpIHtcbiAgICAgIGNvbnN0IHtleHRUeXBlLCBub3JtYWxpemVkRXh0TmFtZX0gPVxuICAgICAgICAvKiogQHR5cGUgeyB7ZXh0VHlwZTogRXh0ZW5zaW9uVHlwZSwgbm9ybWFsaXplZEV4dE5hbWU6IHN0cmluZ30gfSAqLyAobWF0Y2hlcy5ncm91cHMpO1xuICAgICAgcmV0dXJuIHtleHRUeXBlLCBub3JtYWxpemVkRXh0TmFtZX07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGBBcmdTcGVjYFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBjYW5vbmljYWwgbmFtZSBvZiB0aGUgYXJndW1lbnQuIENvcnJlc3BvbmRzIHRvIGEga2V5IGluIGEgc2NoZW1hJ3NcbiAgICogYHByb3BlcnRpZXNgIHByb3BlcnR5LlxuICAgKiBAdGVtcGxhdGUgRFxuICAgKiBAcGFyYW0ge0FyZ1NwZWNPcHRpb25zPEQ+fSBbb3B0c10gLSBPcHRpb25zXG4gICAqIEByZXR1cm5zIHtSZWFkb25seTxBcmdTcGVjPn1cbiAgICovXG4gIHN0YXRpYyBjcmVhdGUobmFtZSwgb3B0cykge1xuICAgIHJldHVybiBPYmplY3QuZnJlZXplKG5ldyBBcmdTcGVjKG5hbWUsIG9wdHMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJpbmcgcmVwcmVzZW50YXRpb24sIHVzZWZ1bCBmb3IgZGVidWdnaW5nXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XG4gICAqL1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0b1N0cmluZygpIHtcbiAgICBsZXQgc3RyID0gYFtBcmdTcGVjXSAke3RoaXMubmFtZX0gKCR7dGhpcy5yZWZ9KWA7XG4gICAgaWYgKHRoaXMuZXh0VHlwZSAmJiB0aGlzLmV4dE5hbWUpIHtcbiAgICAgIHN0ciArPSBgIChleHQ6ICR7dGhpcy5leHRUeXBlfS8ke3RoaXMuZXh0TmFtZX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBBcmdTcGVjLmNyZWF0ZX1cbiAqIEB0ZW1wbGF0ZSBEXG4gKiBAdHlwZWRlZiBBcmdTcGVjT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtleHROYW1lXVxuICogQHByb3BlcnR5IHtFeHRlbnNpb25UeXBlfSBbZXh0VHlwZV1cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGVzdF1cbiAqIEBwcm9wZXJ0eSB7RH0gW2RlZmF1bHRWYWx1ZV1cbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2V4dGVuc2lvbi9tYW5pZmVzdCcpLkV4dGVuc2lvblR5cGV9IEV4dGVuc2lvblR5cGVcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQU1PLE1BQU1BLHVCQUF1QixHQUFHLGFBQWhDOztBQU9BLE1BQU1DLGdCQUFnQixHQUFHLFFBQXpCOztBQUtQLE1BQU1DLGdCQUFnQixHQUFHLGtEQUF6QjtBQUtBLE1BQU1DLFVBQVUsR0FBRyxZQUFuQjs7QUFTTyxNQUFNQyxPQUFOLENBQWM7RUFLbkJDLElBQUk7RUFPSkMsT0FBTztFQVFQQyxPQUFPO0VBT1BDLEdBQUc7RUFNSEMsR0FBRztFQVNIQyxJQUFJO0VBS0pDLE9BQU87RUFPUEMsWUFBWTs7RUFZWkMsV0FBVyxDQUFDUixJQUFELEVBQU87SUFBQ0MsT0FBRDtJQUFVQyxPQUFWO0lBQW1CRyxJQUFuQjtJQUF5QkU7RUFBekIsSUFBeUMsRUFBaEQsRUFBb0Q7SUFHN0QsTUFBTUgsR0FBRyxHQUFHTCxPQUFPLENBQUNVLEtBQVIsQ0FBY1QsSUFBZCxFQUFvQkMsT0FBcEIsRUFBNkJDLE9BQTdCLENBQVo7SUFFQSxNQUFNQyxHQUFHLEdBQUdKLE9BQU8sQ0FBQ1csV0FBUixDQUFvQlYsSUFBcEIsRUFBMEJDLE9BQTFCLEVBQW1DQyxPQUFuQyxDQUFaOztJQUlBLE1BQU1JLE9BQU8sR0FBR0ssZUFBQSxDQUFFQyxTQUFGLENBQVlQLElBQVosYUFBWUEsSUFBWixjQUFZQSxJQUFaLEdBQW9CTCxJQUFwQixDQUFoQjs7SUFFQSxNQUFNYSxXQUFXLEdBQUdaLE9BQU8sSUFBSUMsT0FBWCxHQUFxQixDQUFDRCxPQUFELEVBQVVDLE9BQVYsRUFBbUJJLE9BQW5C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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../../../lib/schema/cli-args.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../../../lib/schema/cli-args.js"],"names":[],"mappings":"AAoNA;;;;;;;GAOG;AACH,gCAHa,OAAO,aAAa,EAAE,mBAAmB,CAMrD;;;;iCAIY,OAAO,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC;;;;+BAK3C,OAAO,YAAY,EAAE,wBAAwB,GAAG,OAAO,aAAa,EAAE,WAAW"}
|
|
@@ -177,4 +177,4 @@ function toParserArgs() {
|
|
|
177
177
|
argSpec
|
|
178
178
|
}) => subSchemaToArgDef(schema, argSpec)));
|
|
179
179
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFTkFNRVMiLCJPYmplY3QiLCJmcmVlemUiLCJBUlJBWSIsIk9CSkVDVCIsIkJPT0xFQU4iLCJJTlRFR0VSIiwiTlVNQkVSIiwiTlVMTCIsIlNUUklORyIsIlNIT1JUX0FSR19DVVRPRkYiLCJhbGlhc1RvRmxhZyIsImFyZ1NwZWMiLCJhbGlhcyIsImV4dFR5cGUiLCJleHROYW1lIiwibmFtZSIsImFyZyIsImlzU2hvcnQiLCJsZW5ndGgiLCJfIiwia2ViYWJDYXNlIiwic2NyZWFtaW5nU25ha2VDYXNlIiwiZmxvdyIsInNuYWtlQ2FzZSIsInRvVXBwZXIiLCJnZXRTY2hlbWFWYWxpZGF0b3IiLCJyZWYiLCJzY2hlbWFJZCIsImNvZXJjZSIsImlkZW50aXR5IiwidmFsdWUiLCJjb2VyY2VkIiwiZXJyb3JzIiwiaXNFbXB0eSIsIkFyZ3VtZW50VHlwZUVycm9yIiwibWFrZURlc2NyaXB0aW9uIiwic2NoZW1hIiwiYXBwaXVtQ2xpRGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvbiIsImFwcGl1bURlcHJlY2F0ZWQiLCJkZXNjIiwic3ViU2NoZW1hVG9BcmdEZWYiLCJzdWJTY2hlbWEiLCJ0eXBlIiwiYXBwaXVtQ2xpQWxpYXNlcyIsImFwcGl1bUNsaVRyYW5zZm9ybWVyIiwiZW51bSIsImVudW1WYWx1ZXMiLCJhbGlhc2VzIiwibWFwIiwiYXJnT3B0cyIsInJlcXVpcmVkIiwiaGVscCIsImFyZ1R5cGVGdW5jdGlvbiIsImFjdGlvbiIsImNvbnN0IiwidHJhbnNmb3JtZXJzIiwianNvbiIsImNzdiIsInBhcnNlRmxvYXQiLCJwYXJzZUludCIsIlR5cGVFcnJvciIsIm1ldGF2YXIiLCJjaG9pY2VzIiwiU3RyaW5nIiwidG9QYXJzZXJBcmdzIiwiZmxhdHRlbmVkIiwiZmlsdGVyIiwiYXBwaXVtQ2xpSWdub3JlZCIsIk1hcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY2hlbWEvY2xpLWFyZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge0FyZ3VtZW50VHlwZUVycm9yfSBmcm9tICdhcmdwYXJzZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtmb3JtYXRFcnJvcnMgYXMgZm9ybWF0RXJyb3JzfSBmcm9tICcuLi9jb25maWctZmlsZSc7XG5pbXBvcnQge2ZsYXR0ZW5TY2hlbWEsIHZhbGlkYXRlfSBmcm9tICcuL3NjaGVtYSc7XG5pbXBvcnQge3RyYW5zZm9ybWVyc30gZnJvbSAnLi9jbGktdHJhbnNmb3JtZXJzJztcblxuLyoqXG4gKiBUaGlzIG1vZHVsZSBjb25jZXJucyBmdW5jdGlvbnMgd2hpY2ggY29udmVydCBzY2hlbWEgZGVmaW5pdGlvbnMgdG9cbiAqIGBhcmdwYXJzZWAtY29tcGF0aWJsZSBkYXRhIHN0cnVjdHVyZXMsIGZvciBkZXJpdmluZyBDTEkgYXJndW1lbnRzIGZyb20gYVxuICogc2NoZW1hLlxuICovXG5cbi8qKlxuICogTG9va3VwIG9mIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlIGB0eXBlYCBmaWVsZCBpbiBhIEpTT04gc2NoZW1hLlxuICogQHR5cGUge1JlYWRvbmx5PFJlY29yZDxzdHJpbmcsIGltcG9ydCgnanNvbi1zY2hlbWEnKS5KU09OU2NoZW1hN1R5cGVOYW1lPj59XG4gKi9cbmNvbnN0IFRZUEVOQU1FUyA9IE9iamVjdC5mcmVlemUoe1xuICBBUlJBWTogJ2FycmF5JyxcbiAgT0JKRUNUOiAnb2JqZWN0JyxcbiAgQk9PTEVBTjogJ2Jvb2xlYW4nLFxuICBJTlRFR0VSOiAnaW50ZWdlcicsXG4gIE5VTUJFUjogJ251bWJlcicsXG4gIE5VTEw6ICdudWxsJyxcbiAgU1RSSU5HOiAnc3RyaW5nJyxcbn0pO1xuXG4vKipcbiAqIE9wdGlvbnMgd2l0aCBhbGlhcyBsZW5ndGhzIGxlc3MgdGhhbiB0aGlzIHdpbGwgYmUgY29uc2lkZXJlZCBcInNob3J0XCIgZmxhZ3MuXG4gKi9cbmNvbnN0IFNIT1JUX0FSR19DVVRPRkYgPSAzO1xuXG4vKipcbiAqIENvbnZlcnQgYW4gYWxpYXMgKGBmb29gKSB0byBhIGZsYWcgKGAtLWZvb2ApIG9yIGEgc2hvcnQgZmxhZyAoYC1mYCkuXG4gKiBAcGFyYW0ge0FyZ1NwZWN9IGFyZ1NwZWMgLSB0aGUgYXJndW1lbnQgc3BlY2lmaWNhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IFthbGlhc10gLSB0aGUgYWxpYXMgdG8gY29udmVydCB0byBhIGZsYWdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSBmbGFnXG4gKi9cbmZ1bmN0aW9uIGFsaWFzVG9GbGFnIChhcmdTcGVjLCBhbGlhcykge1xuICBjb25zdCB7ZXh0VHlwZSwgZXh0TmFtZSwgbmFtZX0gPSBhcmdTcGVjO1xuICBjb25zdCBhcmcgPSBhbGlhcyA/PyBuYW1lO1xuICBjb25zdCBpc1Nob3J0ID0gYXJnLmxlbmd0aCA8IFNIT1JUX0FSR19DVVRPRkY7XG4gIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICByZXR1cm4gaXNTaG9ydFxuICAgICAgPyBgLS0ke2V4dFR5cGV9LSR7Xy5rZWJhYkNhc2UoZXh0TmFtZSl9LSR7YXJnfWBcbiAgICAgIDogYC0tJHtleHRUeXBlfS0ke18ua2ViYWJDYXNlKGV4dE5hbWUpfS0ke18ua2ViYWJDYXNlKGFyZyl9YDtcbiAgfVxuICByZXR1cm4gaXNTaG9ydCA/IGAtJHthcmd9YCA6IGAtLSR7Xy5rZWJhYkNhc2UoYXJnKX1gO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIFNDUkVBTUlOR19TTkFLRV9DQVNFXG4gKi9cbmNvbnN0IHNjcmVhbWluZ1NuYWtlQ2FzZSA9IF8uZmxvdyhfLnNuYWtlQ2FzZSwgXy50b1VwcGVyKTtcblxuLyoqXG4gKiBHaXZlbiB1bmlxdWUgcHJvcGVydHkgbmFtZSBgbmFtZWAsIHJldHVybiBhIGZ1bmN0aW9uIHdoaWNoIHZhbGlkYXRlcyBhIHZhbHVlXG4gKiBhZ2FpbnN0IGEgcHJvcGVydHkgd2l0aGluIHRoZSBzY2hlbWEuXG4gKiBAdGVtcGxhdGUgQ29lcmNlZFxuICogQHBhcmFtIHtBcmdTcGVjfSBhcmdTcGVjIC0gQXJndW1lbnQgbmFtZVxuICogQHBhcmFtIHsodmFsdWU6IHN0cmluZykgPT4gQ29lcmNlZH0gW2NvZXJjZV0gLSBGdW5jdGlvbiB0byBjb2VyY2UgdG8gYSBkaWZmZXJlbnRcbiAqIHByaW1pdGl2ZVxuICogQHRvZG8gU2VlIGlmIHdlIGNhbiByZW1vdmUgYGNvZXJjZWAgYnkgYWxsb3dpbmcgQWp2IHRvIGNvZXJjZSBpbiBpdHNcbiAqIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGdldFNjaGVtYVZhbGlkYXRvciAoe3JlZjogc2NoZW1hSWR9LCBjb2VyY2UgPSBfLmlkZW50aXR5KSB7XG4gIC8qKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgKi9cbiAgcmV0dXJuICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IGNvZXJjZWQgPSBjb2VyY2UodmFsdWUpO1xuICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlKGNvZXJjZWQsIHNjaGVtYUlkKTtcbiAgICBpZiAoXy5pc0VtcHR5KGVycm9ycykpIHtcbiAgICAgIHJldHVybiBjb2VyY2VkO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgQXJndW1lbnRUeXBlRXJyb3IoXG4gICAgICAnXFxuXFxuJyArIGZvcm1hdEVycm9ycyhlcnJvcnMsIHZhbHVlLCB7c2NoZW1hSWR9KSxcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIERldGVybWluZSB0aGUgZGVzY3JpcHRpb24gZm9yIGRpc3BsYXkgb24gdGhlIENMSSwgZ2l2ZW4gdGhlIHNjaGVtYS5cbiAqIEBwYXJhbSB7QXBwaXVtSlNPTlNjaGVtYX0gc2NoZW1hXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBtYWtlRGVzY3JpcHRpb24gKHNjaGVtYSkge1xuICBjb25zdCB7YXBwaXVtQ2xpRGVzY3JpcHRpb24sIGRlc2NyaXB0aW9uID0gJycsIGFwcGl1bURlcHJlY2F0ZWR9ID0gc2NoZW1hO1xuICBsZXQgZGVzYyA9IGFwcGl1bUNsaURlc2NyaXB0aW9uID8/IGRlc2NyaXB0aW9uO1xuICBpZiAoYXBwaXVtRGVwcmVjYXRlZCkge1xuICAgIGRlc2MgPSBgW0RFUFJFQ0FURURdICR7ZGVzY31gO1xuICB9XG4gIHJldHVybiBkZXNjO1xufVxuXG4vKipcbiAqIEdpdmVuIGFyZyBgbmFtZWAsIGEgSlNPTiBzY2hlbWEgYHN1YlNjaGVtYWAsIGFuZCBvcHRpb25zLCByZXR1cm4gYW4gYXJndW1lbnQgZGVmaW5pdGlvblxuICogYXMgdW5kZXJzdG9vZCBieSBgYXJncGFyc2VgLlxuICogQHBhcmFtIHtBcHBpdW1KU09OU2NoZW1hfSBzdWJTY2hlbWEgLSBKU09OIHNjaGVtYSBmb3IgdGhlIG9wdGlvblxuICogQHBhcmFtIHtBcmdTcGVjfSBhcmdTcGVjIC0gQXJndW1lbnQgc3BlYyB0dXBsZVxuICogQHJldHVybnMge1tzdHJpbmdbXSwgaW1wb3J0KCdhcmdwYXJzZScpLkFyZ3VtZW50T3B0aW9uc119IFR1cGxlIG9mIGZsYWcgYW5kIG9wdGlvbnNcbiAqL1xuZnVuY3Rpb24gc3ViU2NoZW1hVG9BcmdEZWYgKHN1YlNjaGVtYSwgYXJnU3BlYykge1xuICBsZXQge1xuICAgIHR5cGUsXG4gICAgYXBwaXVtQ2xpQWxpYXNlcyxcbiAgICBhcHBpdW1DbGlUcmFuc2Zvcm1lcixcbiAgICBlbnVtOiBlbnVtVmFsdWVzLFxuICB9ID0gc3ViU2NoZW1hO1xuXG4gIGNvbnN0IHtuYW1lLCBhcmd9ID0gYXJnU3BlYztcblxuICBjb25zdCBhbGlhc2VzID0gW1xuICAgIGFsaWFzVG9GbGFnKGFyZ1NwZWMpLFxuICAgIC4uLi8qKiBAdHlwZSB7c3RyaW5nW119ICovIChhcHBpdW1DbGlBbGlhc2VzID8/IFtdKS5tYXAoKGFsaWFzKSA9PlxuICAgICAgYWxpYXNUb0ZsYWcoYXJnU3BlYywgYWxpYXMpLFxuICAgICksXG4gIF07XG5cbiAgLyoqIEB0eXBlIHtpbXBvcnQoJ2FyZ3BhcnNlJykuQXJndW1lbnRPcHRpb25zfSAqL1xuICBsZXQgYXJnT3B0cyA9IHtcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgaGVscDogbWFrZURlc2NyaXB0aW9uKHN1YlNjaGVtYSlcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhbGx5IHdlIHdpbGwgcHJvdmlkZSBhIGB0eXBlYCB0byBgYXJncGFyc2VgIGFzIGEgZnVuY3Rpb24gd2hpY2hcbiAgICogdmFsaWRhdGVzIHVzaW5nIGFqdiAod2hpY2ggaXMgbXVjaCBtb3JlIGZ1bGwtZmVhdHVyZWQgdGhhbiB3aGF0IGBhcmdwYXJzZWBcbiAgICogY2FuIG9mZmVyKS4gVGhlIGV4Y2VwdGlvbiBpcyBgYm9vbGVhbmAtdHlwZSBvcHRpb25zLCB3aGljaCBoYXZlIG5vXG4gICAqIGBhcmdUeXBlYC5cbiAgICpcbiAgICogTm90IHN1cmUgaWYgdGhpcyB0eXBlIGlzIGNvcnJlY3QsIGJ1dCBpdCdzIG5vdCBkb2luZyB3aGF0IEkgd2FudC4gIEkgd2FudFxuICAgKiB0byBzYXkgXCJ0aGlzIGlzIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBzb21ldGhpbmcgb2YgdHlwZSBgVGAgd2hlcmUgYFRgIGlzXG4gICAqIG5ldmVyIGEgYFByb21pc2VgXCIuICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgc3luYy5cbiAgICogQHR5cGUgeygodmFsdWU6IHN0cmluZykgPT4gdW5rbm93bil8dW5kZWZpbmVkfVxuICAgKi9cbiAgbGV0IGFyZ1R5cGVGdW5jdGlvbjtcblxuICAvLyBoYW5kbGUgc3BlY2lhbCBjYXNlcyBmb3IgdmFyaW91cyB0eXBlc1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAvLyBib29sZWFucyBkbyBub3QgaGF2ZSBhIHR5cGUgcGVyIGBBcmd1bWVudE9wdGlvbnNgLCBqdXN0IGFuIFwiYWN0aW9uXCJcbiAgICAvLyBOT1RFOiBkdWUgdG8gbGltaXRhdGlvbnMgb2YgYGFyZ3BhcnNlYCwgd2UgY2Fubm90IHByb3ZpZGUgZmFuY3kgaGVscCB0ZXh0LCBhbmQgbXVzdCByZWx5IG9uIGl0cyBpbnRlcm5hbCBlcnJvciBtZXNzYWdpbmcuXG4gICAgY2FzZSBUWVBFTkFNRVMuQk9PTEVBTjoge1xuICAgICAgYXJnT3B0cy5hY3Rpb24gPSAnc3RvcmVfY29uc3QnO1xuICAgICAgYXJnT3B0cy5jb25zdCA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFRZUEVOQU1FUy5PQkpFQ1Q6IHtcbiAgICAgIGFyZ1R5cGVGdW5jdGlvbiA9IHRyYW5zZm9ybWVycy5qc29uO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gYXJyYXlzIGFyZSB0cmVhdGVkIGFzIENTVnMsIGJlY2F1c2UgYGFyZ3BhcnNlYCBkb2Vzbid0IGhhbmRsZSBhcnJheSBkYXRhLlxuICAgIGNhc2UgVFlQRU5BTUVTLkFSUkFZOiB7XG4gICAgICBhcmdUeXBlRnVuY3Rpb24gPSB0cmFuc2Zvcm1lcnMuY3N2O1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gXCJudW1iZXJcIiB0eXBlIGlzIGNvZXJjZWQgdG8gZmxvYXQuIGBhcmdwYXJzZWAgZG9lcyB0aGlzIGZvciB1cyBpZiB3ZSB1c2UgYGZsb2F0YCB0eXBlLCBidXRcbiAgICAvLyB3ZSBkb24ndC5cbiAgICBjYXNlIFRZUEVOQU1FUy5OVU1CRVI6IHtcbiAgICAgIGFyZ1R5cGVGdW5jdGlvbiA9IGdldFNjaGVtYVZhbGlkYXRvcihhcmdTcGVjLCBwYXJzZUZsb2F0KTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIFwiaW50ZWdlclwiIGlzIGNvZXJjZWQgdG8gYW4gLi4gaW50ZWdlci4gIGFnYWluLCBgYXJncGFyc2VgIHdvdWxkIGRvIHRoaXMgZm9yIHVzIGlmIHdlIHVzZWQgYGludGAuXG4gICAgY2FzZSBUWVBFTkFNRVMuSU5URUdFUjoge1xuICAgICAgYXJnVHlwZUZ1bmN0aW9uID0gZ2V0U2NoZW1hVmFsaWRhdG9yKGFyZ1NwZWMsIF8ucGFyc2VJbnQpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gc3RyaW5ncyAobGlrZSBudW1iZXIgYW5kIGludGVnZXIpIGFyZSBzdWJqZWN0IHRvIGZ1cnRoZXIgdmFsaWRhdGlvblxuICAgIC8vIChlLmcuLCBtdXN0IHNhdGlzZnkgYSBtYXNrIG9yIHJlZ2V4IG9yIGV2ZW4gc29tZSBjdXN0b20gdmFsaWRhdGlvblxuICAgIC8vIGZ1bmN0aW9uKVxuICAgIGNhc2UgVFlQRU5BTUVTLlNUUklORzoge1xuICAgICAgYXJnVHlwZUZ1bmN0aW9uID0gZ2V0U2NoZW1hVmFsaWRhdG9yKGFyZ1NwZWMpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogdGhlcmUgbWF5IGJlIHNvbWUgd2F5IHRvIHJlc3RyaWN0IHRoaXMgYXQgdGhlIEFqdiBsZXZlbCAtLVxuICAgIC8vIHRoYXQgbWF5IGludm9sdmUgcGF0Y2hpbmcgdGhlIG1ldGFzY2hlbWEuXG4gICAgY2FzZSBUWVBFTkFNRVMuTlVMTDpcbiAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgZGVmYXVsdDoge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgYFNjaGVtYSBwcm9wZXJ0eSBcIiR7YXJnfVwiOiBcXGAke3R5cGV9XFxgIHR5cGUgdW5rbm93biBvciBkaXNhbGxvd2VkYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gbWV0YXZhciBpcyB1c2VkIGluIGhlbHAgdGV4dC4gYGJvb2xlYW5gIGNhbm5vdCBoYXZlIGEgbWV0YXZhci0taXQgaXMgbm90XG4gIC8vIGRpc3BsYXllZC0tYW5kIGBhcmdwYXJzZWAgdGhyb3dzIGlmIHlvdSBnaXZlIGl0IG9uZS5cbiAgaWYgKHR5cGUgIT09IFRZUEVOQU1FUy5CT09MRUFOKSB7XG4gICAgYXJnT3B0cy5tZXRhdmFyID0gc2NyZWFtaW5nU25ha2VDYXNlKG5hbWUpO1xuICB9XG5cbiAgLy8gdGhlIHZhbGlkaXR5IG9mIFwiYXBwaXVtQ2xpVHJhbnNmb3JtZXJcIiBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gZGV0ZXJtaW5lZFxuICAvLyBieSBhanYgZHVyaW5nIHNjaGVtYSB2YWxpZGF0aW9uIGluIGBmaW5hbGl6ZVNjaGVtYSgpYC4gdGhlIGBhcnJheWAgJlxuICAvLyBgb2JqZWN0YCB0eXBlcyBoYXZlIGFscmVhZHkgYWRkZWQgYSBmb3JtYXR0ZXIgKHNlZSBhYm92ZSwgc28gd2UgZG9uJ3QgZG8gaXRcbiAgLy8gdHdpY2UpLlxuICBpZiAoXG4gICAgdHlwZSAhPT0gVFlQRU5BTUVTLkFSUkFZICYmXG4gICAgdHlwZSAhPT0gVFlQRU5BTUVTLk9CSkVDVCAmJlxuICAgIGFwcGl1bUNsaVRyYW5zZm9ybWVyXG4gICkge1xuICAgIGFyZ1R5cGVGdW5jdGlvbiA9IF8uZmxvdyhcbiAgICAgIGFyZ1R5cGVGdW5jdGlvbiA/PyBfLmlkZW50aXR5LFxuICAgICAgdHJhbnNmb3JtZXJzW2FwcGl1bUNsaVRyYW5zZm9ybWVyXSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGFyZ1R5cGVGdW5jdGlvbikge1xuICAgIGFyZ09wdHMudHlwZSA9IGFyZ1R5cGVGdW5jdGlvbjtcbiAgfVxuXG4gIC8vIGNvbnZlcnQgSlNPTiBzY2hlbWEgYGVudW1gIHRvIGBjaG9pY2VzYC4gYGVudW1gIGNhbiBjb250YWluIGFueSBKU09OIHR5cGUsIGJ1dCBgYXJncGFyc2VgXG4gIC8vIGlzIGxpbWl0ZWQgdG8gYSBzaW5nbGUgdHlwZSBwZXIgYXJnIChJIHRoaW5rKS4gIHNvIGxldCdzIG1ha2UgZXZlcnl0aGluZyBhIHN0cmluZy5cbiAgLy8gYW5kIG1pZ2h0IGFzIHdlbGwgX3JlcXVpcmVfIHRoZSBgdHlwZTogc3RyaW5nYCB3aGlsZSB3ZSdyZSBhdCBpdC5cbiAgaWYgKGVudW1WYWx1ZXMgJiYgIV8uaXNFbXB0eShlbnVtVmFsdWVzKSkge1xuICAgIGlmICh0eXBlID09PSBUWVBFTkFNRVMuU1RSSU5HKSB7XG4gICAgICBhcmdPcHRzLmNob2ljZXMgPSBlbnVtVmFsdWVzLm1hcChTdHJpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICBgUHJvYmxlbSB3aXRoIHNjaGVtYSBmb3IgJHthcmd9OyBcXGBlbnVtXFxgIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBcXGB0eXBlOiAnc3RyaW5nJ1xcYGAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbYWxpYXNlcywgYXJnT3B0c107XG59XG5cbi8qKlxuICogQ29udmVydHMgdGhlIGZpbmFsaXplZCwgZmxhdHRlbmVkIHNjaGVtYSByZXByZXNlbnRhdGlvbiBpbnRvXG4gKiBBcmd1bWVudERlZmluaXRpb25zIGZvciBoYW5kb2ZmIHRvIGBhcmdwYXJzZWAuXG4gKlxuICogQHRocm93cyBJZiBzY2hlbWEgaGFzIG5vdCBiZWVuIGFkZGVkIHRvIGFqdiAodmlhIGBmaW5hbGl6ZVNjaGVtYSgpYClcbiAqIEByZXR1cm5zIHtpbXBvcnQoJy4uL2NsaS9hcmdzJykuQXJndW1lbnREZWZpbml0aW9uc30gQSBtYXAgb2YgYXJyeWFzIG9mXG4gKiBhbGlhc2VzIHRvIGBhcmdwYXJzZWAgYXJndW1lbnRzOyBlbXB0eSBpZiBubyBzY2hlbWEgZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUGFyc2VyQXJncyAoKSB7XG4gIGNvbnN0IGZsYXR0ZW5lZCA9IGZsYXR0ZW5TY2hlbWEoKS5maWx0ZXIoKHtzY2hlbWF9KSA9PiAhc2NoZW1hLmFwcGl1bUNsaUlnbm9yZWQpO1xuICByZXR1cm4gbmV3IE1hcChcbiAgICBfLm1hcChmbGF0dGVuZWQsICh7c2NoZW1hLCBhcmdTcGVjfSkgPT5cbiAgICAgIHN1YlNjaGVtYVRvQXJnRGVmKHNjaGVtYSwgYXJnU3BlYyksXG4gICAgKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBAdGVtcGxhdGUgVFxuICogQHR5cGVkZWYge2ltcG9ydCgnYWp2L2Rpc3QvdHlwZXMnKS5Gb3JtYXRWYWxpZGF0b3I8VD59IEZvcm1hdFZhbGlkYXRvcjxUPlxuICovXG5cbi8qKlxuICogQSBKU09OIDcgc2NoZW1hIHdpdGggb3VyIGN1c3RvbSBrZXl3b3Jkcy5cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4va2V5d29yZHMnKS5BcHBpdW1KU09OU2NoZW1hS2V5d29yZHMgJiBpbXBvcnQoJ2pzb24tc2NoZW1hJykuSlNPTlNjaGVtYTd9IEFwcGl1bUpTT05TY2hlbWFcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vYXJnLXNwZWMnKS5BcmdTcGVjfSBBcmdTcGVjXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFZQSxNQUFNQSxTQUFTLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0VBQzlCQyxLQUFLLEVBQUUsT0FEdUI7RUFFOUJDLE1BQU0sRUFBRSxRQUZzQjtFQUc5QkMsT0FBTyxFQUFFLFNBSHFCO0VBSTlCQyxPQUFPLEVBQUUsU0FKcUI7RUFLOUJDLE1BQU0sRUFBRSxRQUxzQjtFQU05QkMsSUFBSSxFQUFFLE1BTndCO0VBTzlCQyxNQUFNLEVBQUU7QUFQc0IsQ0FBZCxDQUFsQjtBQWFBLE1BQU1DLGdCQUFnQixHQUFHLENBQXpCOztBQVFBLFNBQVNDLFdBQVQsQ0FBc0JDLE9BQXRCLEVBQStCQyxLQUEvQixFQUFzQztFQUNwQyxNQUFNO0lBQUNDLE9BQUQ7SUFBVUMsT0FBVjtJQUFtQkM7RUFBbkIsSUFBMkJKLE9BQWpDO0VBQ0EsTUFBTUssR0FBRyxHQUFHSixLQUFILGFBQUdBLEtBQUgsY0FBR0EsS0FBSCxHQUFZRyxJQUFyQjtFQUNBLE1BQU1FLE9BQU8sR0FBR0QsR0FBRyxDQUFDRSxNQUFKLEdBQWFULGdCQUE3Qjs7RUFDQSxJQUFJSSxPQUFPLElBQUlDLE9BQWYsRUFBd0I7SUFDdEIsT0FBT0csT0FBTyxHQUNULEtBQUlKLE9BQVEsSUFBR00sZ0JBQUVDLFNBQUYsQ0FBWU4sT0FBWixDQUFxQixJQUFHRSxHQUFJLEVBRGxDLEdBRVQsS0FBSUgsT0FBUSxJQUFHTSxnQkFBRUMsU0FBRixDQUFZTixPQUFaLENBQXFCLElBQUdLLGdCQUFFQyxTQUFGLENBQVlKLEdBQVosQ0FBaUIsRUFGN0Q7RUFHRDs7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
|
|
180
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFTkFNRVMiLCJPYmplY3QiLCJmcmVlemUiLCJBUlJBWSIsIk9CSkVDVCIsIkJPT0xFQU4iLCJJTlRFR0VSIiwiTlVNQkVSIiwiTlVMTCIsIlNUUklORyIsIlNIT1JUX0FSR19DVVRPRkYiLCJhbGlhc1RvRmxhZyIsImFyZ1NwZWMiLCJhbGlhcyIsImV4dFR5cGUiLCJleHROYW1lIiwibmFtZSIsImFyZyIsImlzU2hvcnQiLCJsZW5ndGgiLCJfIiwia2ViYWJDYXNlIiwic2NyZWFtaW5nU25ha2VDYXNlIiwiZmxvdyIsInNuYWtlQ2FzZSIsInRvVXBwZXIiLCJnZXRTY2hlbWFWYWxpZGF0b3IiLCJyZWYiLCJzY2hlbWFJZCIsImNvZXJjZSIsImlkZW50aXR5IiwidmFsdWUiLCJjb2VyY2VkIiwiZXJyb3JzIiwidmFsaWRhdGUiLCJpc0VtcHR5IiwiQXJndW1lbnRUeXBlRXJyb3IiLCJmb3JtYXRFcnJvcnMiLCJtYWtlRGVzY3JpcHRpb24iLCJzY2hlbWEiLCJhcHBpdW1DbGlEZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uIiwiYXBwaXVtRGVwcmVjYXRlZCIsImRlc2MiLCJzdWJTY2hlbWFUb0FyZ0RlZiIsInN1YlNjaGVtYSIsInR5cGUiLCJhcHBpdW1DbGlBbGlhc2VzIiwiYXBwaXVtQ2xpVHJhbnNmb3JtZXIiLCJlbnVtIiwiZW51bVZhbHVlcyIsImFsaWFzZXMiLCJtYXAiLCJhcmdPcHRzIiwicmVxdWlyZWQiLCJoZWxwIiwiYXJnVHlwZUZ1bmN0aW9uIiwiYWN0aW9uIiwiY29uc3QiLCJ0cmFuc2Zvcm1lcnMiLCJqc29uIiwiY3N2IiwicGFyc2VGbG9hdCIsInBhcnNlSW50IiwiVHlwZUVycm9yIiwibWV0YXZhciIsImNob2ljZXMiLCJTdHJpbmciLCJ0b1BhcnNlckFyZ3MiLCJmbGF0dGVuZWQiLCJmbGF0dGVuU2NoZW1hIiwiZmlsdGVyIiwiYXBwaXVtQ2xpSWdub3JlZCIsIk1hcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9zY2hlbWEvY2xpLWFyZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmd1bWVudFR5cGVFcnJvcn0gZnJvbSAnYXJncGFyc2UnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7Zm9ybWF0RXJyb3JzIGFzIGZvcm1hdEVycm9yc30gZnJvbSAnLi4vY29uZmlnLWZpbGUnO1xuaW1wb3J0IHtmbGF0dGVuU2NoZW1hLCB2YWxpZGF0ZX0gZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IHt0cmFuc2Zvcm1lcnN9IGZyb20gJy4vY2xpLXRyYW5zZm9ybWVycyc7XG5cbi8qKlxuICogVGhpcyBtb2R1bGUgY29uY2VybnMgZnVuY3Rpb25zIHdoaWNoIGNvbnZlcnQgc2NoZW1hIGRlZmluaXRpb25zIHRvXG4gKiBgYXJncGFyc2VgLWNvbXBhdGlibGUgZGF0YSBzdHJ1Y3R1cmVzLCBmb3IgZGVyaXZpbmcgQ0xJIGFyZ3VtZW50cyBmcm9tIGFcbiAqIHNjaGVtYS5cbiAqL1xuXG4vKipcbiAqIExvb2t1cCBvZiBwb3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSBgdHlwZWAgZmllbGQgaW4gYSBKU09OIHNjaGVtYS5cbiAqIEB0eXBlIHtSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBpbXBvcnQoJ2pzb24tc2NoZW1hJykuSlNPTlNjaGVtYTdUeXBlTmFtZT4+fVxuICovXG5jb25zdCBUWVBFTkFNRVMgPSBPYmplY3QuZnJlZXplKHtcbiAgQVJSQVk6ICdhcnJheScsXG4gIE9CSkVDVDogJ29iamVjdCcsXG4gIEJPT0xFQU46ICdib29sZWFuJyxcbiAgSU5URUdFUjogJ2ludGVnZXInLFxuICBOVU1CRVI6ICdudW1iZXInLFxuICBOVUxMOiAnbnVsbCcsXG4gIFNUUklORzogJ3N0cmluZycsXG59KTtcblxuLyoqXG4gKiBPcHRpb25zIHdpdGggYWxpYXMgbGVuZ3RocyBsZXNzIHRoYW4gdGhpcyB3aWxsIGJlIGNvbnNpZGVyZWQgXCJzaG9ydFwiIGZsYWdzLlxuICovXG5jb25zdCBTSE9SVF9BUkdfQ1VUT0ZGID0gMztcblxuLyoqXG4gKiBDb252ZXJ0IGFuIGFsaWFzIChgZm9vYCkgdG8gYSBmbGFnIChgLS1mb29gKSBvciBhIHNob3J0IGZsYWcgKGAtZmApLlxuICogQHBhcmFtIHtBcmdTcGVjfSBhcmdTcGVjIC0gdGhlIGFyZ3VtZW50IHNwZWNpZmljYXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBbYWxpYXNdIC0gdGhlIGFsaWFzIHRvIGNvbnZlcnQgdG8gYSBmbGFnXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgZmxhZ1xuICovXG5mdW5jdGlvbiBhbGlhc1RvRmxhZyhhcmdTcGVjLCBhbGlhcykge1xuICBjb25zdCB7ZXh0VHlwZSwgZXh0TmFtZSwgbmFtZX0gPSBhcmdTcGVjO1xuICBjb25zdCBhcmcgPSBhbGlhcyA/PyBuYW1lO1xuICBjb25zdCBpc1Nob3J0ID0gYXJnLmxlbmd0aCA8IFNIT1JUX0FSR19DVVRPRkY7XG4gIGlmIChleHRUeXBlICYmIGV4dE5hbWUpIHtcbiAgICByZXR1cm4gaXNTaG9ydFxuICAgICAgPyBgLS0ke2V4dFR5cGV9LSR7Xy5rZWJhYkNhc2UoZXh0TmFtZSl9LSR7YXJnfWBcbiAgICAgIDogYC0tJHtleHRUeXBlfS0ke18ua2ViYWJDYXNlKGV4dE5hbWUpfS0ke18ua2ViYWJDYXNlKGFyZyl9YDtcbiAgfVxuICByZXR1cm4gaXNTaG9ydCA/IGAtJHthcmd9YCA6IGAtLSR7Xy5rZWJhYkNhc2UoYXJnKX1gO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIHRvIFNDUkVBTUlOR19TTkFLRV9DQVNFXG4gKi9cbmNvbnN0IHNjcmVhbWluZ1NuYWtlQ2FzZSA9IF8uZmxvdyhfLnNuYWtlQ2FzZSwgXy50b1VwcGVyKTtcblxuLyoqXG4gKiBHaXZlbiB1bmlxdWUgcHJvcGVydHkgbmFtZSBgbmFtZWAsIHJldHVybiBhIGZ1bmN0aW9uIHdoaWNoIHZhbGlkYXRlcyBhIHZhbHVlXG4gKiBhZ2FpbnN0IGEgcHJvcGVydHkgd2l0aGluIHRoZSBzY2hlbWEuXG4gKiBAdGVtcGxhdGUgQ29lcmNlZFxuICogQHBhcmFtIHtBcmdTcGVjfSBhcmdTcGVjIC0gQXJndW1lbnQgbmFtZVxuICogQHBhcmFtIHsodmFsdWU6IHN0cmluZykgPT4gQ29lcmNlZH0gW2NvZXJjZV0gLSBGdW5jdGlvbiB0byBjb2VyY2UgdG8gYSBkaWZmZXJlbnRcbiAqIHByaW1pdGl2ZVxuICogQHRvZG8gU2VlIGlmIHdlIGNhbiByZW1vdmUgYGNvZXJjZWAgYnkgYWxsb3dpbmcgQWp2IHRvIGNvZXJjZSBpbiBpdHNcbiAqIGNvbnN0cnVjdG9yIG9wdGlvbnNcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGdldFNjaGVtYVZhbGlkYXRvcih7cmVmOiBzY2hlbWFJZH0sIGNvZXJjZSA9IF8uaWRlbnRpdHkpIHtcbiAgLyoqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAqL1xuICByZXR1cm4gKHZhbHVlKSA9PiB7XG4gICAgY29uc3QgY29lcmNlZCA9IGNvZXJjZSh2YWx1ZSk7XG4gICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGUoY29lcmNlZCwgc2NoZW1hSWQpO1xuICAgIGlmIChfLmlzRW1wdHkoZXJyb3JzKSkge1xuICAgICAgcmV0dXJuIGNvZXJjZWQ7XG4gICAgfVxuICAgIHRocm93IG5ldyBBcmd1bWVudFR5cGVFcnJvcignXFxuXFxuJyArIGZvcm1hdEVycm9ycyhlcnJvcnMsIHZhbHVlLCB7c2NoZW1hSWR9KSk7XG4gIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHRoZSBkZXNjcmlwdGlvbiBmb3IgZGlzcGxheSBvbiB0aGUgQ0xJLCBnaXZlbiB0aGUgc2NoZW1hLlxuICogQHBhcmFtIHtBcHBpdW1KU09OU2NoZW1hfSBzY2hlbWFcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIG1ha2VEZXNjcmlwdGlvbihzY2hlbWEpIHtcbiAgY29uc3Qge2FwcGl1bUNsaURlc2NyaXB0aW9uLCBkZXNjcmlwdGlvbiA9ICcnLCBhcHBpdW1EZXByZWNhdGVkfSA9IHNjaGVtYTtcbiAgbGV0IGRlc2MgPSBhcHBpdW1DbGlEZXNjcmlwdGlvbiA/PyBkZXNjcmlwdGlvbjtcbiAgaWYgKGFwcGl1bURlcHJlY2F0ZWQpIHtcbiAgICBkZXNjID0gYFtERVBSRUNBVEVEXSAke2Rlc2N9YDtcbiAgfVxuICByZXR1cm4gZGVzYztcbn1cblxuLyoqXG4gKiBHaXZlbiBhcmcgYG5hbWVgLCBhIEpTT04gc2NoZW1hIGBzdWJTY2hlbWFgLCBhbmQgb3B0aW9ucywgcmV0dXJuIGFuIGFyZ3VtZW50IGRlZmluaXRpb25cbiAqIGFzIHVuZGVyc3Rvb2QgYnkgYGFyZ3BhcnNlYC5cbiAqIEBwYXJhbSB7QXBwaXVtSlNPTlNjaGVtYX0gc3ViU2NoZW1hIC0gSlNPTiBzY2hlbWEgZm9yIHRoZSBvcHRpb25cbiAqIEBwYXJhbSB7QXJnU3BlY30gYXJnU3BlYyAtIEFyZ3VtZW50IHNwZWMgdHVwbGVcbiAqIEByZXR1cm5zIHtbc3RyaW5nW10sIGltcG9ydCgnYXJncGFyc2UnKS5Bcmd1bWVudE9wdGlvbnNdfSBUdXBsZSBvZiBmbGFnIGFuZCBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIHN1YlNjaGVtYVRvQXJnRGVmKHN1YlNjaGVtYSwgYXJnU3BlYykge1xuICBsZXQge3R5cGUsIGFwcGl1bUNsaUFsaWFzZXMsIGFwcGl1bUNsaVRyYW5zZm9ybWVyLCBlbnVtOiBlbnVtVmFsdWVzfSA9IHN1YlNjaGVtYTtcblxuICBjb25zdCB7bmFtZSwgYXJnfSA9IGFyZ1NwZWM7XG5cbiAgY29uc3QgYWxpYXNlcyA9IFtcbiAgICBhbGlhc1RvRmxhZyhhcmdTcGVjKSxcbiAgICAuLi4vKiogQHR5cGUge3N0cmluZ1tdfSAqLyAoYXBwaXVtQ2xpQWxpYXNlcyA/PyBbXSkubWFwKChhbGlhcykgPT4gYWxpYXNUb0ZsYWcoYXJnU3BlYywgYWxpYXMpKSxcbiAgXTtcblxuICAvKiogQHR5cGUge2ltcG9ydCgnYXJncGFyc2UnKS5Bcmd1bWVudE9wdGlvbnN9ICovXG4gIGxldCBhcmdPcHRzID0ge1xuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBoZWxwOiBtYWtlRGVzY3JpcHRpb24oc3ViU2NoZW1hKSxcbiAgfTtcblxuICAvKipcbiAgICogR2VuZXJhbGx5IHdlIHdpbGwgcHJvdmlkZSBhIGB0eXBlYCB0byBgYXJncGFyc2VgIGFzIGEgZnVuY3Rpb24gd2hpY2hcbiAgICogdmFsaWRhdGVzIHVzaW5nIGFqdiAod2hpY2ggaXMgbXVjaCBtb3JlIGZ1bGwtZmVhdHVyZWQgdGhhbiB3aGF0IGBhcmdwYXJzZWBcbiAgICogY2FuIG9mZmVyKS4gVGhlIGV4Y2VwdGlvbiBpcyBgYm9vbGVhbmAtdHlwZSBvcHRpb25zLCB3aGljaCBoYXZlIG5vXG4gICAqIGBhcmdUeXBlYC5cbiAgICpcbiAgICogTm90IHN1cmUgaWYgdGhpcyB0eXBlIGlzIGNvcnJlY3QsIGJ1dCBpdCdzIG5vdCBkb2luZyB3aGF0IEkgd2FudC4gIEkgd2FudFxuICAgKiB0byBzYXkgXCJ0aGlzIGlzIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBzb21ldGhpbmcgb2YgdHlwZSBgVGAgd2hlcmUgYFRgIGlzXG4gICAqIG5ldmVyIGEgYFByb21pc2VgXCIuICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgc3luYy5cbiAgICogQHR5cGUgeygodmFsdWU6IHN0cmluZykgPT4gdW5rbm93bil8dW5kZWZpbmVkfVxuICAgKi9cbiAgbGV0IGFyZ1R5cGVGdW5jdGlvbjtcblxuICAvLyBoYW5kbGUgc3BlY2lhbCBjYXNlcyBmb3IgdmFyaW91cyB0eXBlc1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAvLyBib29sZWFucyBkbyBub3QgaGF2ZSBhIHR5cGUgcGVyIGBBcmd1bWVudE9wdGlvbnNgLCBqdXN0IGFuIFwiYWN0aW9uXCJcbiAgICAvLyBOT1RFOiBkdWUgdG8gbGltaXRhdGlvbnMgb2YgYGFyZ3BhcnNlYCwgd2UgY2Fubm90IHByb3ZpZGUgZmFuY3kgaGVscCB0ZXh0LCBhbmQgbXVzdCByZWx5IG9uIGl0cyBpbnRlcm5hbCBlcnJvciBtZXNzYWdpbmcuXG4gICAgY2FzZSBUWVBFTkFNRVMuQk9PTEVBTjoge1xuICAgICAgYXJnT3B0cy5hY3Rpb24gPSAnc3RvcmVfY29uc3QnO1xuICAgICAgYXJnT3B0cy5jb25zdCA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjYXNlIFRZUEVOQU1FUy5PQkpFQ1Q6IHtcbiAgICAgIGFyZ1R5cGVGdW5jdGlvbiA9IHRyYW5zZm9ybWVycy5qc29uO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gYXJyYXlzIGFyZSB0cmVhdGVkIGFzIENTVnMsIGJlY2F1c2UgYGFyZ3BhcnNlYCBkb2Vzbid0IGhhbmRsZSBhcnJheSBkYXRhLlxuICAgIGNhc2UgVFlQRU5BTUVTLkFSUkFZOiB7XG4gICAgICBhcmdUeXBlRnVuY3Rpb24gPSB0cmFuc2Zvcm1lcnMuY3N2O1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gXCJudW1iZXJcIiB0eXBlIGlzIGNvZXJjZWQgdG8gZmxvYXQuIGBhcmdwYXJzZWAgZG9lcyB0aGlzIGZvciB1cyBpZiB3ZSB1c2UgYGZsb2F0YCB0eXBlLCBidXRcbiAgICAvLyB3ZSBkb24ndC5cbiAgICBjYXNlIFRZUEVOQU1FUy5OVU1CRVI6IHtcbiAgICAgIGFyZ1R5cGVGdW5jdGlvbiA9IGdldFNjaGVtYVZhbGlkYXRvcihhcmdTcGVjLCBwYXJzZUZsb2F0KTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIFwiaW50ZWdlclwiIGlzIGNvZXJjZWQgdG8gYW4gLi4gaW50ZWdlci4gIGFnYWluLCBgYXJncGFyc2VgIHdvdWxkIGRvIHRoaXMgZm9yIHVzIGlmIHdlIHVzZWQgYGludGAuXG4gICAgY2FzZSBUWVBFTkFNRVMuSU5URUdFUjoge1xuICAgICAgYXJnVHlwZUZ1bmN0aW9uID0gZ2V0U2NoZW1hVmFsaWRhdG9yKGFyZ1NwZWMsIF8ucGFyc2VJbnQpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gc3RyaW5ncyAobGlrZSBudW1iZXIgYW5kIGludGVnZXIpIGFyZSBzdWJqZWN0IHRvIGZ1cnRoZXIgdmFsaWRhdGlvblxuICAgIC8vIChlLmcuLCBtdXN0IHNhdGlzZnkgYSBtYXNrIG9yIHJlZ2V4IG9yIGV2ZW4gc29tZSBjdXN0b20gdmFsaWRhdGlvblxuICAgIC8vIGZ1bmN0aW9uKVxuICAgIGNhc2UgVFlQRU5BTUVTLlNUUklORzoge1xuICAgICAgYXJnVHlwZUZ1bmN0aW9uID0gZ2V0U2NoZW1hVmFsaWRhdG9yKGFyZ1NwZWMpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogdGhlcmUgbWF5IGJlIHNvbWUgd2F5IHRvIHJlc3RyaWN0IHRoaXMgYXQgdGhlIEFqdiBsZXZlbCAtLVxuICAgIC8vIHRoYXQgbWF5IGludm9sdmUgcGF0Y2hpbmcgdGhlIG1ldGFzY2hlbWEuXG4gICAgY2FzZSBUWVBFTkFNRVMuTlVMTDpcbiAgICAvLyBmYWxscyB0aHJvdWdoXG4gICAgZGVmYXVsdDoge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgU2NoZW1hIHByb3BlcnR5IFwiJHthcmd9XCI6IFxcYCR7dHlwZX1cXGAgdHlwZSB1bmtub3duIG9yIGRpc2FsbG93ZWRgKTtcbiAgICB9XG4gIH1cblxuICAvLyBtZXRhdmFyIGlzIHVzZWQgaW4gaGVscCB0ZXh0LiBgYm9vbGVhbmAgY2Fubm90IGhhdmUgYSBtZXRhdmFyLS1pdCBpcyBub3RcbiAgLy8gZGlzcGxheWVkLS1hbmQgYGFyZ3BhcnNlYCB0aHJvd3MgaWYgeW91IGdpdmUgaXQgb25lLlxuICBpZiAodHlwZSAhPT0gVFlQRU5BTUVTLkJPT0xFQU4pIHtcbiAgICBhcmdPcHRzLm1ldGF2YXIgPSBzY3JlYW1pbmdTbmFrZUNhc2UobmFtZSk7XG4gIH1cblxuICAvLyB0aGUgdmFsaWRpdHkgb2YgXCJhcHBpdW1DbGlUcmFuc2Zvcm1lclwiIHNob3VsZCBhbHJlYWR5IGhhdmUgYmVlbiBkZXRlcm1pbmVkXG4gIC8vIGJ5IGFqdiBkdXJpbmcgc2NoZW1hIHZhbGlkYXRpb24gaW4gYGZpbmFsaXplU2NoZW1hKClgLiB0aGUgYGFycmF5YCAmXG4gIC8vIGBvYmplY3RgIHR5cGVzIGhhdmUgYWxyZWFkeSBhZGRlZCBhIGZvcm1hdHRlciAoc2VlIGFib3ZlLCBzbyB3ZSBkb24ndCBkbyBpdFxuICAvLyB0d2ljZSkuXG4gIGlmICh0eXBlICE9PSBUWVBFTkFNRVMuQVJSQVkgJiYgdHlwZSAhPT0gVFlQRU5BTUVTLk9CSkVDVCAmJiBhcHBpdW1DbGlUcmFuc2Zvcm1lcikge1xuICAgIGFyZ1R5cGVGdW5jdGlvbiA9IF8uZmxvdyhhcmdUeXBlRnVuY3Rpb24gPz8gXy5pZGVudGl0eSwgdHJhbnNmb3JtZXJzW2FwcGl1bUNsaVRyYW5zZm9ybWVyXSk7XG4gIH1cblxuICBpZiAoYXJnVHlwZUZ1bmN0aW9uKSB7XG4gICAgYXJnT3B0cy50eXBlID0gYXJnVHlwZUZ1bmN0aW9uO1xuICB9XG5cbiAgLy8gY29udmVydCBKU09OIHNjaGVtYSBgZW51bWAgdG8gYGNob2ljZXNgLiBgZW51bWAgY2FuIGNvbnRhaW4gYW55IEpTT04gdHlwZSwgYnV0IGBhcmdwYXJzZWBcbiAgLy8gaXMgbGltaXRlZCB0byBhIHNpbmdsZSB0eXBlIHBlciBhcmcgKEkgdGhpbmspLiAgc28gbGV0J3MgbWFrZSBldmVyeXRoaW5nIGEgc3RyaW5nLlxuICAvLyBhbmQgbWlnaHQgYXMgd2VsbCBfcmVxdWlyZV8gdGhlIGB0eXBlOiBzdHJpbmdgIHdoaWxlIHdlJ3JlIGF0IGl0LlxuICBpZiAoZW51bVZhbHVlcyAmJiAhXy5pc0VtcHR5KGVudW1WYWx1ZXMpKSB7XG4gICAgaWYgKHR5cGUgPT09IFRZUEVOQU1FUy5TVFJJTkcpIHtcbiAgICAgIGFyZ09wdHMuY2hvaWNlcyA9IGVudW1WYWx1ZXMubWFwKFN0cmluZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgIGBQcm9ibGVtIHdpdGggc2NoZW1hIGZvciAke2FyZ307IFxcYGVudW1cXGAgaXMgb25seSBzdXBwb3J0ZWQgZm9yIFxcYHR5cGU6ICdzdHJpbmcnXFxgYFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gW2FsaWFzZXMsIGFyZ09wdHNdO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBmaW5hbGl6ZWQsIGZsYXR0ZW5lZCBzY2hlbWEgcmVwcmVzZW50YXRpb24gaW50b1xuICogQXJndW1lbnREZWZpbml0aW9ucyBmb3IgaGFuZG9mZiB0byBgYXJncGFyc2VgLlxuICpcbiAqIEB0aHJvd3MgSWYgc2NoZW1hIGhhcyBub3QgYmVlbiBhZGRlZCB0byBhanYgKHZpYSBgZmluYWxpemVTY2hlbWEoKWApXG4gKiBAcmV0dXJucyB7aW1wb3J0KCcuLi9jbGkvYXJncycpLkFyZ3VtZW50RGVmaW5pdGlvbnN9IEEgbWFwIG9mIGFycnlhcyBvZlxuICogYWxpYXNlcyB0byBgYXJncGFyc2VgIGFyZ3VtZW50czsgZW1wdHkgaWYgbm8gc2NoZW1hIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcnNlckFyZ3MoKSB7XG4gIGNvbnN0IGZsYXR0ZW5lZCA9IGZsYXR0ZW5TY2hlbWEoKS5maWx0ZXIoKHtzY2hlbWF9KSA9PiAhc2NoZW1hLmFwcGl1bUNsaUlnbm9yZWQpO1xuICByZXR1cm4gbmV3IE1hcChfLm1hcChmbGF0dGVuZWQsICh7c2NoZW1hLCBhcmdTcGVjfSkgPT4gc3ViU2NoZW1hVG9BcmdEZWYoc2NoZW1hLCBhcmdTcGVjKSkpO1xufVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdhanYvZGlzdC90eXBlcycpLkZvcm1hdFZhbGlkYXRvcjxUPn0gRm9ybWF0VmFsaWRhdG9yPFQ+XG4gKi9cblxuLyoqXG4gKiBBIEpTT04gNyBzY2hlbWEgd2l0aCBvdXIgY3VzdG9tIGtleXdvcmRzLlxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9rZXl3b3JkcycpLkFwcGl1bUpTT05TY2hlbWFLZXl3b3JkcyAmIGltcG9ydCgnanNvbi1zY2hlbWEnKS5KU09OU2NoZW1hN30gQXBwaXVtSlNPTlNjaGVtYVxuICovXG5cbi8qKlxu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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-transformers.d.ts","sourceRoot":"","sources":["../../../lib/schema/cli-transformers.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli-transformers.d.ts","sourceRoot":"","sources":["../../../lib/schema/cli-transformers.js"],"names":[],"mappings":";IA4DO,sCAiBJ;IAOK,uCA6BL"}
|
|
@@ -71,4 +71,4 @@ const transformers = {
|
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
73
|
exports.transformers = transformers;
|
|
74
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZUNzdkxpbmUiLCJ2YWx1ZSIsInNwbGl0IiwibWFwIiwidiIsInRyaW0iLCJmaWx0ZXIiLCJCb29sZWFuIiwicGFyc2VDc3ZGaWxlIiwiZmxhdE1hcCIsInRyYW5zZm9ybWVycyIsImNzdiIsImJvZHkiLCJyZWFkRmlsZVN5bmMiLCJlcnIiLCJjb2RlIiwiQXJndW1lbnRUeXBlRXJyb3IiLCJtZXNzYWdlIiwianNvbiIsImpzb25PclBhdGgiLCJsb2FkZWRGcm9tRmlsZSIsInJlc3VsdCIsIkpTT04iLCJwYXJzZSIsIl8iLCJpc1BsYWluT2JqZWN0IiwiRXJyb3IiLCJ0cnVuY2F0ZSIsImxlbmd0aCIsImUiLCJtc2ciLCJUeXBlRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvc2NoZW1hL2NsaS10cmFuc2Zvcm1lcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmd1bWVudFR5cGVFcnJvcn0gZnJvbSAnYXJncGFyc2UnO1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbi8qKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgY3VzdG9tIGtleXdvcmRzIGZvciBBcHBpdW0gc2NoZW1hcywgYXMgd2VsbCBhc1xuICogXCJ0cmFuc2Zvcm1lcnNcIiAoc2VlIGBhcmdUcmFuc2Zvcm1lcnNgIGJlbG93KS5cbiAqXG4gKiBDdXN0b20ga2V5d29yZHMgYXJlIGp1c3QgcHJvcGVydGllcyB0aGF0IHdpbGwgYXBwZWFyIGluIGEgc2NoZW1hIChlLmcuLFxuICogYGFwcGl1bS1jb25maWctc2NoZW1hLmpzYCkgYmV5b25kIHdoYXQgdGhlIEpTT04gU2NoZW1hIHNwZWMgb2ZmZXJzLiAgVGhlc2VcbiAqIGFyZSB1c2FibGUgYnkgZXh0ZW5zaW9ucywgYXMgd2VsbC5cbiAqL1xuXG4vKipcbiAqIFNwbGl0cyBhIENTViBzdHJpbmcgaW50byBhbiBhcnJheVxuICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gKiBAcmV0dXJucyB7c3RyaW5nW119XG4gKi9cbmZ1bmN0aW9uIHBhcnNlQ3N2TGluZSh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWVcbiAgICAuc3BsaXQoJywnKVxuICAgIC5tYXAoKHYpID0+IHYudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbi8qKlxuICogU3BsaXQgYSBmaWxlIGJ5IG5ld2xpbmUgdGhlbiBjYWxscyB7QGxpbmsgcGFyc2VDc3ZMaW5lfSBvbiBlYWNoIGxpbmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEByZXR1cm5zIHtzdHJpbmdbXX1cbiAqL1xuZnVuY3Rpb24gcGFyc2VDc3ZGaWxlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZVxuICAgIC5zcGxpdCgvXFxyP1xcbi8pXG4gICAgLm1hcCgodikgPT4gdi50cmltKCkpXG4gICAgLmZpbHRlcihCb29sZWFuKVxuICAgIC5mbGF0TWFwKHBhcnNlQ3N2TGluZSk7XG59XG5cbi8qKlxuICogTmFtZXNwYWNlIGNvbnRhaW5pbmcgX3RyYW5zZm9ybWVyc18gZm9yIENMSSBhcmd1bWVudHMuICBcIlZhbGlkYXRvcnNcIiBhbmRcbiAqIFwiZm9ybWF0dGVyc1wiIGRvIG5vdCBhY3R1YWxseSBtb2RpZnkgdGhlIHZhbHVlLCBidXQgdGhlc2UgZG8uXG4gKlxuICogVXNlIGNhc2UgaXMgZm9yIHdoZW4gdGhlIGNvbmZpZyBmaWxlIGNhbiBhY2NlcHQgZS5nLiwgYSBgc3RyaW5nW11gLCBidXQgdGhlXG4gKiBDTEkgY2FuIG9ubHkgdGFrZSBhIGBzdHJpbmdgIChhcyBgYXJncGFyc2VgIHNlZW1zIHRvIGJlIGxpbWl0ZWQgaW4gdGhhdFxuICogZmFzaGlvbjsgaXQgYWxzbyBjYW5ub3QgdW5kZXJzdGFuZCBhbiBhcmd1bWVudCBoYXZpbmcgbXVsdGlwbGUgdHlwZXMpLlxuICpcbiAqIEZvciBleGFtcGxlLCB0aGUgYGNzdmAgdHJhbnNmb3JtIHRha2VzIGEgYHN0cmluZ2AgYW5kIHJldHVybnMgYSBgc3RyaW5nW11gIGJ5XG4gKiBzcGxpdHRpbmcgaXQgYnkgY29tbWEtLV9vcl8gaWYgdGhhdCBgc3RyaW5nYCBoYXBwZW5zIHRvIGJlIGFcbiAqIGZpbGVwYXRoLS1yZWFkaW5nIHRoZSBmaWxlIGFzIGEgYC5jc3ZgLlxuICpcbiAqIFRoaXMgY29udGFpbnMgc29tZSBjb3B5LXBhc3RlZCBjb2RlIGZyb20gYGxpYi9jbGkvcGFyc2VyLWhlbHBlcnMuanNgLCB3aGljaCB3YXNcbiAqIG9ibGl0ZXJhdGVkLlxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtZXJzID0ge1xuICAvKipcbiAgICogR2l2ZW4gYSBDU1Ytc3R5bGUgc3RyaW5nIG9yIHBhdGhuYW1lLCBwYXJzZSBpdCBpbnRvIGFuIGFycmF5LlxuICAgKiBUaGUgZmlsZSBjYW4gYWxzbyBiZSBzcGxpdCBvbiBuZXdsaW5lcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEByZXR1cm5zIHtzdHJpbmdbXX1cbiAgICovXG4gIGNzdjogKHZhbHVlKSA9PiB7XG4gICAgbGV0IGJvZHk7XG4gICAgLy8gc2luY2UgdGhpcyB2YWx1ZSBjb3VsZCBiZSBhIHNpbmdsZSBzdHJpbmcgKG5vIGNvbW1hcykgX29yXyBhIHBhdGhuYW1lLCB3ZSB3aWxsIG5lZWRcbiAgICAvLyB0byBhdHRlbXB0IHRvIHBhcnNlIGl0IGFzIGEgZmlsZSBfZmlyc3RfLlxuICAgIHRyeSB7XG4gICAgICBib2R5ID0gcmVhZEZpbGVTeW5jKHZhbHVlLCAndXRmOCcpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGVyci5jb2RlICE9PSAnRU5PRU5UJykge1xuICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnRUeXBlRXJyb3IoYENvdWxkIG5vdCByZWFkIGZpbGUgJHtib2R5fTogJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGJvZHkgPyBwYXJzZUNzdkZpbGUoYm9keSkgOiBwYXJzZUNzdkxpbmUodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50VHlwZUVycm9yKCdNdXN0IGJlIGEgY29tbWEtZGVsaW1pdGVkIHN0cmluZywgZS5nLiwgXCJmb28sYmFyLGJhelwiJyk7XG4gICAgfVxuICB9LFxuXG4gIC8qKlxuICAgKiBQYXJzZSBhIHN0cmluZyB3aGljaCBjb3VsZCBiZSBhIHBhdGggdG8gYSBKU09OIGZpbGUgb3IgYSBKU09OIHN0cmluZy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGpzb25PclBhdGhcbiAgICogQHJldHVybnMge29iamVjdH1cbiAgICovXG4gIGpzb246IChqc29uT3JQYXRoKSA9PiB7XG4gICAgbGV0IGpzb24gPSBqc29uT3JQYXRoO1xuICAgIGxldCBsb2FkZWRGcm9tRmlsZSA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAvLyB1c2Ugc3luY2hyb25vdXMgZmlsZSBhY2Nlc3MsIGFzIGBhcmdwYXJzZWAgcHJvdmlkZXMgbm8gd2F5IG9mIGVpdGhlclxuICAgICAgLy8gYXdhaXRpbmcgb3IgdXNpbmcgY2FsbGJhY2tzLiBUaGlzIHN0ZXAgaGFwcGVucyBpbiBzdGFydHVwLCBpbiB3aGF0IGlzXG4gICAgICAvLyBlZmZlY3RpdmVseSBjb21tYW5kLWxpbmUgY29kZSwgc28gbm90aGluZyBpcyBibG9ja2VkIGluIHRlcm1zIG9mXG4gICAgICAvLyBzZXNzaW9ucywgc28gaG9sZGluZyB1cCB0aGUgZXZlbnQgbG9vcCBkb2VzIG5vdCBpbmN1ciB0aGUgdXN1YWxcbiAgICAgIC8vIGRyYXdiYWNrcy5cbiAgICAgIGpzb24gPSByZWFkRmlsZVN5bmMoanNvbk9yUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIGxvYWRlZEZyb21GaWxlID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIHVucmVhZGFibGUgZmlsZXMgZG9uJ3QgY291bnQuLi4gYnV0IG90aGVyIHByb2JsZW1zIGRvLlxuICAgICAgaWYgKGVyci5jb2RlICE9PSAnRU5PRU5UJykge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKGpzb24pO1xuICAgICAgaWYgKCFfLmlzUGxhaW5PYmplY3QocmVzdWx0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke18udHJ1bmNhdGUocmVzdWx0LCB7bGVuZ3RoOiAxMDB9KX0nIGlzIG5vdCBhbiBvYmplY3RgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgbXNnID0gbG9hZGVkRnJvbUZpbGVcbiAgICAgICAgPyBgVGhlIHByb3ZpZGVkIHZhbHVlIG9mICcke2pzb25PclBhdGh9JyBtdXN0IGJlIGEgdmFsaWQgSlNPTmBcbiAgICAgICAgOiBgVGhlIHByb3ZpZGVkIHZhbHVlIG11c3QgYmUgYSB2YWxpZCBKU09OYDtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7bXNnfS4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBZ0JBLFNBQVNBLFlBQVQsQ0FBc0JDLEtBQXRCLEVBQTZCO0VBQzNCLE9BQU9BLEtBQUssQ0FDVEMsS0FESSxDQUNFLEdBREYsRUFFSkMsR0FGSSxDQUVDQyxDQUFELElBQU9BLENBQUMsQ0FBQ0MsSUFBRixFQUZQLEVBR0pDLE1BSEksQ0FHR0MsT0FISCxDQUFQO0FBSUQ7O0FBT0QsU0FBU0MsWUFBVCxDQUFzQlAsS0FBdEIsRUFBNkI7RUFDM0IsT0FBT0EsS0FBSyxDQUNUQyxLQURJLENBQ0UsT0FERixFQUVKQyxHQUZJLENBRUNDLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxJQUFGLEVBRlAsRUFHSkMsTUFISSxDQUdHQyxPQUhILEVBSUpFLE9BSkksQ0FJSVQsWUFKSixDQUFQO0FBS0Q7O0FBaUJNLE1BQU1VLFlBQVksR0FBRztFQU8xQkMsR0FBRyxFQUFHVixLQUFELElBQVc7SUFDZCxJQUFJVyxJQUFKOztJQUdBLElBQUk7TUFDRkEsSUFBSSxHQUFHLElBQUFDLGdCQUFBLEVBQWFaLEtBQWIsRUFBb0IsTUFBcEIsQ0FBUDtJQUNELENBRkQsQ0FFRSxPQUFPYSxHQUFQLEVBQVk7TUFDWixJQUFJQSxHQUFHLENBQUNDLElBQUosS0FBYSxRQUFqQixFQUEyQjtRQUN6QixNQUFNLElBQUlDLDJCQUFKLENBQXVCLHVCQUFzQkosSUFBSyxLQUFJRSxHQUFHLENBQUNHLE9BQVEsRUFBbEUsQ0FBTjtNQUNEO0lBQ0Y7O0lBRUQsSUFBSTtNQUNGLE9BQU9MLElBQUksR0FBR0osWUFBWSxDQUFDSSxJQUFELENBQWYsR0FBd0JaLFlBQVksQ0FBQ0MsS0FBRCxDQUEvQztJQUNELENBRkQsQ0FFRSxPQUFPYSxHQUFQLEVBQVk7TUFDWixNQUFNLElBQUlFLDJCQUFKLENBQXNCLHVEQUF0QixDQUFOO0lBQ0Q7RUFDRixDQXhCeUI7RUErQjFCRSxJQUFJLEVBQUdDLFVBQUQsSUFBZ0I7SUFDcEIsSUFBSUQsSUFBSSxHQUFHQyxVQUFYO0lBQ0EsSUFBSUMsY0FBYyxHQUFHLEtBQXJCOztJQUNBLElBQUk7TUFNRkYsSUFBSSxHQUFHLElBQUFMLGdCQUFBLEVBQWFNLFVBQWIsRUFBeUIsTUFBekIsQ0FBUDtNQUNBQyxjQUFjLEdBQUcsSUFBakI7SUFDRCxDQVJELENBUUUsT0FBT04sR0FBUCxFQUFZO01BRVosSUFBSUEsR0FBRyxDQUFDQyxJQUFKLEtBQWEsUUFBakIsRUFBMkI7UUFDekIsTUFBTUQsR0FBTjtNQUNEO0lBQ0Y7O0lBQ0QsSUFBSTtNQUNGLE1BQU1PLE1BQU0sR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVdMLElBQVgsQ0FBZjs7TUFDQSxJQUFJLENBQUNNLGVBQUEsQ0FBRUMsYUFBRixDQUFnQkosTUFBaEIsQ0FBTCxFQUE4QjtRQUM1QixNQUFNLElBQUlLLEtBQUosQ0FBVyxJQUFHRixlQUFBLENBQUVHLFFBQUYsQ0FBV04sTUFBWCxFQUFtQjtVQUFDTyxNQUFNLEVBQUU7UUFBVCxDQUFuQixDQUFrQyxvQkFBaEQsQ0FBTjtNQUNEOztNQUNELE9BQU9QLE1BQVA7SUFDRCxDQU5ELENBTUUsT0FBT1EsQ0FBUCxFQUFVO01BQ1YsTUFBTUMsR0FBRyxHQUFHVixjQUFjLEdBQ3JCLDBCQUF5QkQsVUFBVyx3QkFEZixHQUVyQix5Q0FGTDtNQUdBLE1BQU0sSUFBSVksU0FBSixDQUFlLEdBQUVELEdBQUkscUJBQW9CRCxDQUFDLENBQUNaLE9BQVEsRUFBbkQsQ0FBTjtJQUNEO0VBQ0Y7QUE1RHlCLENBQXJCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../../lib/schema/keywords.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keywords.d.ts","sourceRoot":"","sources":["../../../lib/schema/keywords.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,uBAFU,OAAO,MAAM,EAAC,iBAAiB,CAAC,CA4GxC;;;;;;uCAMW,KAAK,GAAC,MAAM;;;;;;;;;;;;gCAgBZ,OAAO,KAAK,EAAE,iBAAiB"}
|