@kontur.candy/tools 2.134.0 → 2.135.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ <a name="2.135.0"></a>
2
+ # [2.135.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.134.0...release/tools/v2.135.0) (2022-10-31)
3
+
1
4
  <a name="2.134.0"></a>
2
5
  # [2.134.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.133.0...release/tools/v2.134.0) (2022-10-26)
3
6
 
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.FormBuildMode = void 0;
9
+ exports.getFormConfigFromSource = getFormConfigFromSource;
9
10
  exports.isNewFormJsonFormat = isNewFormJsonFormat;
10
11
  exports.readFormConfig = readFormConfig;
11
12
  exports.resolveFormInfo = resolveFormInfo;
@@ -14,6 +15,8 @@ var _path = _interopRequireDefault(require("path"));
14
15
 
15
16
  var _fsExtra = require("fs-extra");
16
17
 
18
+ var _lodash = require("lodash");
19
+
17
20
  var _FsUtils = require("../Commons/FsUtils");
18
21
 
19
22
  var _StaticLogger = require("../Commons/Logging/StaticLogger");
@@ -98,11 +101,15 @@ async function isNewFormJsonFormat(formJsonFile) {
98
101
  }
99
102
 
100
103
  async function readFormConfig(formJsonFile, logger) {
101
- var _formConfig$dependenc3, _formConfig$dependenc4, _formConfig$mode, _formConfig$settings$, _formConfig$settings, _formConfig$settings$2, _formConfig$settings2, _formConfig$settings$3, _formConfig$settings3;
102
-
103
104
  // tslint:disable-next-line no-unsafe-any
104
105
  const formConfig = await (0, _fsExtra.readJson)(formJsonFile);
106
+ return getFormConfigFromSource(formConfig, logger);
107
+ }
105
108
 
109
+ function getFormConfigFromSource(formConfig, logger) {
110
+ var _formConfig$dependenc3, _formConfig$dependenc4, _formConfig$settings, _formConfig$mode;
111
+
112
+ // tslint:disable-next-line no-unsafe-any
106
113
  if (((_formConfig$dependenc3 = formConfig.dependencies) === null || _formConfig$dependenc3 === void 0 ? void 0 : _formConfig$dependenc3.generator) != undefined && !(0, _Version.isValidSemVerVersionRange)(formConfig.dependencies.generator)) {
107
114
  throw new Error(`${formConfig.dependencies.generator} is not valid version format`);
108
115
  }
@@ -111,19 +118,19 @@ async function readFormConfig(formJsonFile, logger) {
111
118
  throw new Error(`${formConfig.dependencies.engine} is not valid version format`);
112
119
  }
113
120
 
121
+ const settings = {
122
+ useServerSideFLangNormalization: false,
123
+ ...(0, _lodash.pickBy)((_formConfig$settings = formConfig.settings) !== null && _formConfig$settings !== void 0 ? _formConfig$settings : {}, x => x !== undefined)
124
+ };
114
125
  return {
115
126
  themes: formConfig.themes,
116
127
  build: formConfig.build || "manual",
117
128
  mode: (_formConfig$mode = formConfig.mode) !== null && _formConfig$mode !== void 0 ? _formConfig$mode : "normal-build",
118
- settings: {
119
- useServerSideFLangNormalization: (_formConfig$settings$ = (_formConfig$settings = formConfig.settings) === null || _formConfig$settings === void 0 ? void 0 : _formConfig$settings.useServerSideFLangNormalization) !== null && _formConfig$settings$ !== void 0 ? _formConfig$settings$ : false,
120
- autoCalculationCalculatorImpl: (_formConfig$settings$2 = (_formConfig$settings2 = formConfig.settings) === null || _formConfig$settings2 === void 0 ? void 0 : _formConfig$settings2.autoCalculationCalculatorImpl) !== null && _formConfig$settings$2 !== void 0 ? _formConfig$settings$2 : "default",
121
- disableFlangRulesForEnableAutoFieldFeature: (_formConfig$settings$3 = (_formConfig$settings3 = formConfig.settings) === null || _formConfig$settings3 === void 0 ? void 0 : _formConfig$settings3.disableFlangRulesForEnableAutoFieldFeature) !== null && _formConfig$settings$3 !== void 0 ? _formConfig$settings$3 : false
122
- },
129
+ settings: settings,
123
130
  dependencies: formConfig.dependencies != undefined ? {
124
131
  generator: formConfig.dependencies.generator,
125
132
  engine: formConfig.dependencies.engine
126
133
  } : undefined
127
134
  };
128
135
  }
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mby50cyJdLCJuYW1lcyI6WyJGb3JtQnVpbGRNb2RlIiwicmVzb2x2ZUZvcm1JbmZvIiwiZm9ybUpzb25GaWxlIiwicGF0aFRvRm9ybSIsIl9lbmdpbmVEaXJlY3RvcnkiLCJsb2dnZXIiLCJ1cGdyYWRlRm9ybUpzb24iLCJ1c2VMYXN0U3RhYmxlVmVyc2lvbiIsInVzZVByZXJlbGVhc2VWZXJzaW9uIiwibmlnaHRseSIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsInVuZGVmaW5lZCIsIkVycm9yIiwiZGVwZW5kZW5jaWVzIiwiZW5naW5lIiwiZ2VuZXJhdG9yIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZW5lcmF0b3JWZXJzaW9uIiwiZW5naW5lVmVyc2lvbiIsInR5cGUiLCJwcmVJZCIsInRoZW1lcyIsIm1vZGUiLCJOb0VkaXRvciIsIkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcyIsIk5vcm1hbEJ1aWxkIiwiZm9ybU5hbWUiLCJwYXRoIiwiYmFzZW5hbWUiLCJmb3JtU291cmNlc1BhdGgiLCJpc05ld0Zvcm1Kc29uRm9ybWF0IiwiYnVpbGQiLCJzZXR0aW5ncyIsInVzZVNlcnZlclNpZGVGTGFuZ05vcm1hbGl6YXRpb24iLCJhdXRvQ2FsY3VsYXRpb25DYWxjdWxhdG9ySW1wbCIsImRpc2FibGVGbGFuZ1J1bGVzRm9yRW5hYmxlQXV0b0ZpZWxkRmVhdHVyZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBS0E7O0lBRVlBLGE7OztXQUFBQSxhO0FBQUFBLEVBQUFBLGEsQ0FBQUEsYTtBQUFBQSxFQUFBQSxhLENBQUFBLGE7QUFBQUEsRUFBQUEsYSxDQUFBQSxhO0dBQUFBLGEsNkJBQUFBLGE7O0FBNkNMLGVBQWVDLGVBQWYsQ0FDSEMsWUFERyxFQUVI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S0FBWCxJQUFvQixRQUZ4QjtBQUdIVCxJQUFBQSxJQUFJLHNCQUFFaEIsVUFBVSxDQUFDZ0IsSUFBYiwrREFBcUIsY0FIdEI7QUFJSFUsSUFBQUEsUUFBUSxFQUFFO0FBQ05DLE1BQUFBLCtCQUErQixtREFBRTNCLFVBQVUsQ0FBQzBCLFFBQWIseURBQUUscUJBQXFCQywrQkFBdkIseUVBQTBELEtBRG5GO0FBRU5DLE1BQUFBLDZCQUE2QixxREFBRTVCLFVBQVUsQ0FBQzBCLFFBQWIsMERBQUUsc0JBQXFCRSw2QkFBdkIsMkVBQXdELFNBRi9FO0FBR05DLE1BQUFBLDBDQUEwQyxxREFDdEM3QixVQUFVLENBQUMwQixRQUQyQiwwREFDdEMsc0JBQXFCRywwQ0FEaUIsMkVBQzZCO0FBSmpFLEtBSlA7QUFVSHpCLElBQUFBLFlBQVksRUFDUkosVUFBVSxDQUFDSSxZQUFYLElBQTJCRixTQUEzQixHQUNNO0FBQ0lJLE1BQUFBLFNBQVMsRUFBRU4sVUFBVSxDQUFDSSxZQUFYLENBQXdCRSxTQUR2QztBQUVJRCxNQUFBQSxNQUFNLEVBQUVMLFVBQVUsQ0FBQ0ksWUFBWCxDQUF3QkM7QUFGcEMsS0FETixHQUtNSDtBQWhCUCxHQUFQO0FBa0JIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcmVhZEpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHsgd3JpdGVGaWxlQXN5bmMgfSBmcm9tIFwiLi4vQ29tbW9ucy9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5pbXBvcnQge1xuICAgIGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uLFxuICAgIGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uLFxuICAgIGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG59IGZyb20gXCIuL1B1Ymxpc2hlZFZlcnNpb25VdGlsc1wiO1xuaW1wb3J0IHsgQ2FuZHlWZXJzaW9uU3BlYywgaXNWYWxpZFNlbVZlclZlcnNpb25SYW5nZSwgcGFyc2VDYW5keVZlcnNpb25TcGVjIH0gZnJvbSBcIi4vVmVyc2lvblwiO1xuXG5leHBvcnQgZW51bSBGb3JtQnVpbGRNb2RlIHtcbiAgICBOb3JtYWxCdWlsZCxcbiAgICBOb0VkaXRvcixcbiAgICBDb3B5TGVnYWN5UHJlYnVpbHRSZXNvdXJjZXMsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUluZm8ge1xuICAgIHRoZW1lcz86IHN0cmluZ1tdO1xuICAgIG1vZGU6IEZvcm1CdWlsZE1vZGU7XG4gICAgZm9ybU5hbWU6IHN0cmluZztcbiAgICBmb3JtU291cmNlc1BhdGg6IHN0cmluZztcbiAgICBnZW5lcmF0b3JWZXJzaW9uOiB1bmRlZmluZWQgfCBDYW5keVZlcnNpb25TcGVjO1xuICAgIGVuZ2luZVZlcnNpb246IHVuZGVmaW5lZCB8IENhbmR5VmVyc2lvblNwZWM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUNvbmZpZ0NvbnRlbnQge1xuICAgIHRoZW1lcz86IHN0cmluZ1tdO1xuICAgIGJ1aWxkPzogXCJjaVwiIHwgXCJtYW51YWxcIjtcbiAgICBtb2RlPzogXCJuby1lZGl0b3JcIiB8IFwiY29weS1sZWdhY3ktcHJlYnVpbHQtcmVzb3VyY2VzXCI7XG4gICAgZGVwZW5kZW5jaWVzPzoge1xuICAgICAgICBnZW5lcmF0b3I/OiBzdHJpbmc7XG4gICAgICAgIGVuZ2luZT86IHN0cmluZztcbiAgICB9O1xuICAgIHNldHRpbmdzPzoge1xuICAgICAgICB1c2VTZXJ2ZXJTaWRlRkxhbmdOb3JtYWxpemF0aW9uPzogYm9vbGVhbjtcbiAgICAgICAgYXV0b0NhbGN1bGF0aW9uQ2FsY3VsYXRvckltcGw/OiBcImNhbGN1bGF0b3IyXCI7XG4gICAgICAgIGRpc2FibGVGbGFuZ1J1bGVzRm9yRW5hYmxlQXV0b0ZpZWxkRmVhdHVyZT86IGJvb2xlYW47XG4gICAgfTtcbn1cblxuaW50ZXJmYWNlIEZvcm1Db25maWcge1xuICAgIHRoZW1lcz86IHN0cmluZ1tdO1xuICAgIGJ1aWxkPzogXCJjaVwiIHwgXCJtYW51YWxcIjtcbiAgICBtb2RlPzogXCJuby1lZGl0b3JcIiB8IFwiY29weS1sZWdhY3ktcHJlYnVpbHQtcmVzb3VyY2VzXCIgfCBcIm5vcm1hbC1idWlsZFwiO1xuICAgIGRlcGVuZGVuY2llcz86IHtcbiAgICAgICAgZ2VuZXJhdG9yOiB1bmRlZmluZWQgfCBzdHJpbmc7XG4gICAgICAgIGVuZ2luZTogdW5kZWZpbmVkIHwgc3RyaW5nO1xuICAgIH07XG4gICAgc2V0dGluZ3M6IHtcbiAgICAgICAgdXNlU2VydmVyU2lkZUZMYW5nTm9ybWFsaXphdGlvbjogYm9vbGVhbjtcbiAgICAgICAgYXV0b0NhbGN1bGF0aW9uQ2FsY3VsYXRvckltcGw/OiBcImNhbGN1bGF0b3IyXCIgfCBcImRlZmF1bHRcIjtcbiAgICAgICAgZGlzYWJsZUZsYW5nUnVsZXNGb3JFbmFibGVBdXRvRmllbGRGZWF0dXJlOiBib29sZWFuO1xuICAgIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlRm9ybUluZm8oXG4gICAgZm9ybUpzb25GaWxlOiBzdHJpbmcsXG4gICAgcGF0aFRvRm9ybTogc3RyaW5nLFxuICAgIF9lbmdpbmVEaXJlY3Rvcnk6IHVuZGVmaW5lZCB8IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXIgPSBnZXRMb2dnZXIoKSxcbiAgICB1cGdyYWRlRm9ybUpzb246IGJvb2xlYW4gPSBmYWxzZSxcbiAgICB1c2VMYXN0U3RhYmxlVmVyc2lvbjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHVzZVByZXJlbGVhc2VWZXJzaW9uPzogc3RyaW5nLFxuICAgIG5pZ2h0bHk6IGJvb2xlYW4gPSBmYWxzZVxuKTogUHJvbWlzZTxGb3JtSW5mbz4ge1xuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvbkZpbGUsIGxvZ2dlcik7XG4gICAgaWYgKHVzZUxhc3RTdGFibGVWZXJzaW9uICYmIHVzZVByZXJlbGVhc2VWZXJzaW9uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCLQndC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LvQuNCx0L4g0YTQu9Cw0LMgdXNlTGFzdFN0YWJsZVZlcnNpb24g0LvQuNCx0L4gdXNlUHJlcmVsZWFzZVZlcnNpb25cIik7XG4gICAgfVxuICAgIGlmICh1c2VMYXN0U3RhYmxlVmVyc2lvbikge1xuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHtcbiAgICAgICAgICAgIGVuZ2luZTogYXdhaXQgZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24oKSxcbiAgICAgICAgICAgIGdlbmVyYXRvcjogYXdhaXQgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24oKSxcbiAgICAgICAgfTtcbiAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byBsYXN0IHN0YWJsZSB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGVBc3luYyhmb3JtSnNvbkZpbGUsIEpTT04uc3RyaW5naWZ5KGZvcm1Db25maWcsIHVuZGVmaW5lZCwgXCIgIFwiKSwgXCJ1dGY4XCIpO1xuICAgIH1cbiAgICBpZiAodXNlUHJlcmVsZWFzZVZlcnNpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gPSBhd2FpdCBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uKHVzZVByZXJlbGVhc2VWZXJzaW9uKTtcbiAgICAgICAgaWYgKHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHtcbiAgICAgICAgICAgICAgICBlbmdpbmU6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG4gICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBwcmVyZWxlYXNlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlQXN5bmMoZm9ybUpzb25GaWxlLCBKU09OLnN0cmluZ2lmeShmb3JtQ29uZmlnLCB1bmRlZmluZWQsIFwiICBcIiksIFwidXRmOFwiKTtcbiAgICB9XG4gICAgbGV0IGdlbmVyYXRvclZlcnNpb24gPVxuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZ2VuZXJhdG9yICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZ2VuZXJhdG9yKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgbGV0IGVuZ2luZVZlcnNpb24gPVxuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZW5naW5lICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgaWYgKG5pZ2h0bHkpIHtcbiAgICAgICAgZ2VuZXJhdG9yVmVyc2lvbiA9IHsgdHlwZTogXCJwcmVcIiwgcHJlSWQ6IFwibmlnaHRseVwiIH07XG4gICAgICAgIGVuZ2luZVZlcnNpb24gPSB7IHR5cGU6IFwicHJlXCIsIHByZUlkOiBcIm5pZ2h0bHlcIiB9O1xuICAgIH1cbiAgICBpZiAodXBncmFkZUZvcm1Kc29uKSB7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZUFzeW5jKGZvcm1Kc29uRmlsZSwgSlNPTi5zdHJpbmdpZnkoZm9ybUNvbmZpZywgdW5kZWZpbmVkLCBcIiAgXCIpLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHRoZW1lczogZm9ybUNvbmZpZy50aGVtZXMsXG4gICAgICAgIG1vZGU6XG4gICAgICAgICAgICBmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCJcbiAgICAgICAgICAgICAgICA/IEZvcm1CdWlsZE1vZGUuTm9FZGl0b3JcbiAgICAgICAgICAgICAgICA6IGZvcm1Db25maWcubW9kZSA9PT0gXCJjb3B5LWxlZ2FjeS1wcmVidWlsdC1yZXNvdXJjZXNcIlxuICAgICAgICAgICAgICAgID8gRm9ybUJ1aWxkTW9kZS5Db3B5TGVnYWN5UHJlYnVpbHRSZXNvdXJjZXNcbiAgICAgICAgICAgICAgICA6IEZvcm1CdWlsZE1vZGUuTm9ybWFsQnVpbGQsXG4gICAgICAgIGZvcm1OYW1lOiBwYXRoLmJhc2VuYW1lKHBhdGhUb0Zvcm0pLFxuICAgICAgICBmb3JtU291cmNlc1BhdGg6IHBhdGhUb0Zvcm0sXG4gICAgICAgIGdlbmVyYXRvclZlcnNpb246IGdlbmVyYXRvclZlcnNpb24sXG4gICAgICAgIGVuZ2luZVZlcnNpb246IGVuZ2luZVZlcnNpb24sXG4gICAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGlzTmV3Rm9ybUpzb25Gb3JtYXQoZm9ybUpzb25GaWxlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgIGNvbnN0IGZvcm1Db25maWc6IEZvcm1Db25maWdDb250ZW50ID0gYXdhaXQgcmVhZEpzb24oZm9ybUpzb25GaWxlKTtcbiAgICByZXR1cm4gZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgIT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZEZvcm1Db25maWcoZm9ybUpzb25GaWxlOiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8Rm9ybUNvbmZpZz4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgY29uc3QgZm9ybUNvbmZpZzogRm9ybUNvbmZpZ0NvbnRlbnQgPSBhd2FpdCByZWFkSnNvbihmb3JtSnNvbkZpbGUpO1xuICAgIGlmIChcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQgJiZcbiAgICAgICAgIWlzVmFsaWRTZW1WZXJWZXJzaW9uUmFuZ2UoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZ2VuZXJhdG9yKVxuICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZ2VuZXJhdG9yfSBpcyBub3QgdmFsaWQgdmVyc2lvbiBmb3JtYXRgKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgIWlzVmFsaWRTZW1WZXJWZXJzaW9uUmFuZ2UoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfSBpcyBub3QgdmFsaWQgdmVyc2lvbiBmb3JtYXRgKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGhlbWVzOiBmb3JtQ29uZmlnLnRoZW1lcyxcbiAgICAgICAgYnVpbGQ6IGZvcm1Db25maWcuYnVpbGQgfHwgXCJtYW51YWxcIixcbiAgICAgICAgbW9kZTogZm9ybUNvbmZpZy5tb2RlID8/IFwibm9ybWFsLWJ1aWxkXCIsXG4gICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICB1c2VTZXJ2ZXJTaWRlRkxhbmdOb3JtYWxpemF0aW9uOiBmb3JtQ29uZmlnLnNldHRpbmdzPy51c2VTZXJ2ZXJTaWRlRkxhbmdOb3JtYWxpemF0aW9uID8/IGZhbHNlLFxuICAgICAgICAgICAgYXV0b0NhbGN1bGF0aW9uQ2FsY3VsYXRvckltcGw6IGZvcm1Db25maWcuc2V0dGluZ3M/LmF1dG9DYWxjdWxhdGlvbkNhbGN1bGF0b3JJbXBsID8/IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgZGlzYWJsZUZsYW5nUnVsZXNGb3JFbmFibGVBdXRvRmllbGRGZWF0dXJlOlxuICAgICAgICAgICAgICAgIGZvcm1Db25maWcuc2V0dGluZ3M/LmRpc2FibGVGbGFuZ1J1bGVzRm9yRW5hYmxlQXV0b0ZpZWxkRmVhdHVyZSA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOlxuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yOiBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgZW5naW5lOiBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmUsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbn1cbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mby50cyJdLCJuYW1lcyI6WyJGb3JtQnVpbGRNb2RlIiwicmVzb2x2ZUZvcm1JbmZvIiwiZm9ybUpzb25GaWxlIiwicGF0aFRvRm9ybSIsIl9lbmdpbmVEaXJlY3RvcnkiLCJsb2dnZXIiLCJ1cGdyYWRlRm9ybUpzb24iLCJ1c2VMYXN0U3RhYmxlVmVyc2lvbiIsInVzZVByZXJlbGVhc2VWZXJzaW9uIiwibmlnaHRseSIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsInVuZGVmaW5lZCIsIkVycm9yIiwiZGVwZW5kZW5jaWVzIiwiZW5naW5lIiwiZ2VuZXJhdG9yIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZW5lcmF0b3JWZXJzaW9uIiwiZW5naW5lVmVyc2lvbiIsInR5cGUiLCJwcmVJZCIsInRoZW1lcyIsIm1vZGUiLCJOb0VkaXRvciIsIkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlcyIsIk5vcm1hbEJ1aWxkIiwiZm9ybU5hbWUiLCJwYXRoIiwiYmFzZW5hbWUiLCJmb3JtU291cmNlc1BhdGgiLCJpc05ld0Zvcm1Kc29uRm9ybWF0IiwiZ2V0Rm9ybUNvbmZpZ0Zyb21Tb3VyY2UiLCJzZXR0aW5ncyIsInVzZVNlcnZlclNpZGVGTGFuZ05vcm1hbGl6YXRpb24iLCJ4IiwiYnVpbGQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFLQTs7SUFFWUEsYTs7O1dBQUFBLGE7QUFBQUEsRUFBQUEsYSxDQUFBQSxhO0FBQUFBLEVBQUFBLGEsQ0FBQUEsYTtBQUFBQSxFQUFBQSxhLENBQUFBLGE7R0FBQUEsYSw2QkFBQUEsYTs7QUE2Q0wsZUFBZUMsZUFBZixDQUNIQyxZQURHLEVBRUhDLFVBRkcsRUFHSEMsZ0JBSEcsRUFJSEMsTUFBZSxHQUFHLDhCQUpm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LEdBQUc7QUFDYkMsSUFBQUEsK0JBQStCLEVBQUUsS0FEcEI7QUFFYixPQUFHLDRDQUFPM0IsVUFBVSxDQUFDMEIsUUFBbEIsdUVBQThCLEVBQTlCLEVBQWtDRSxDQUFDLElBQUlBLENBQUMsS0FBSzFCLFNBQTdDO0FBRlUsR0FBakI7QUFLQSxTQUFPO0FBQ0hhLElBQUFBLE1BQU0sRUFBRWYsVUFBVSxDQUFDZSxNQURoQjtBQUVIYyxJQUFBQSxLQUFLLEVBQUU3QixVQUFVLENBQUM2QixLQUFYLElBQW9CLFFBRnhCO0FBR0hiLElBQUFBLElBQUksc0JBQUVoQixVQUFVLENBQUNnQixJQUFiLCtEQUFxQixjQUh0QjtBQUlIVSxJQUFBQSxRQUFRLEVBQUVBLFFBSlA7QUFLSHRCLElBQUFBLFlBQVksRUFDUkosVUFBVSxDQUFDSSxZQUFYLElBQTJCRixTQUEzQixHQUNNO0FBQ0lJLE1BQUFBLFNBQVMsRUFBRU4sVUFBVSxDQUFDSSxZQUFYLENBQXdCRSxTQUR2QztBQUVJRCxNQUFBQSxNQUFNLEVBQUVMLFVBQVUsQ0FBQ0ksWUFBWCxDQUF3QkM7QUFGcEMsS0FETixHQUtNSDtBQVhQLEdBQVA7QUFhSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHJlYWRKc29uIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBwaWNrQnkgfSBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7IHdyaXRlRmlsZUFzeW5jIH0gZnJvbSBcIi4uL0NvbW1vbnMvRnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxufSBmcm9tIFwiLi9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IENhbmR5VmVyc2lvblNwZWMsIGlzVmFsaWRTZW1WZXJWZXJzaW9uUmFuZ2UsIHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuL1ZlcnNpb25cIjtcblxuZXhwb3J0IGVudW0gRm9ybUJ1aWxkTW9kZSB7XG4gICAgTm9ybWFsQnVpbGQsXG4gICAgTm9FZGl0b3IsXG4gICAgQ29weUxlZ2FjeVByZWJ1aWx0UmVzb3VyY2VzLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1JbmZvIHtcbiAgICB0aGVtZXM/OiBzdHJpbmdbXTtcbiAgICBtb2RlOiBGb3JtQnVpbGRNb2RlO1xuICAgIGZvcm1OYW1lOiBzdHJpbmc7XG4gICAgZm9ybVNvdXJjZXNQYXRoOiBzdHJpbmc7XG4gICAgZ2VuZXJhdG9yVmVyc2lvbjogdW5kZWZpbmVkIHwgQ2FuZHlWZXJzaW9uU3BlYztcbiAgICBlbmdpbmVWZXJzaW9uOiB1bmRlZmluZWQgfCBDYW5keVZlcnNpb25TcGVjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Db25maWdDb250ZW50IHtcbiAgICB0aGVtZXM/OiBzdHJpbmdbXTtcbiAgICBidWlsZD86IFwiY2lcIiB8IFwibWFudWFsXCI7XG4gICAgbW9kZT86IFwibm8tZWRpdG9yXCIgfCBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiO1xuICAgIGRlcGVuZGVuY2llcz86IHtcbiAgICAgICAgZ2VuZXJhdG9yPzogc3RyaW5nO1xuICAgICAgICBlbmdpbmU/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBzZXR0aW5ncz86IHtcbiAgICAgICAgdXNlU2VydmVyU2lkZUZMYW5nTm9ybWFsaXphdGlvbj86IGJvb2xlYW47XG4gICAgICAgIGF1dG9DYWxjdWxhdGlvbkNhbGN1bGF0b3JJbXBsPzogXCJjYWxjdWxhdG9yMlwiO1xuICAgICAgICBkaXNhYmxlRmxhbmdSdWxlc0ZvckVuYWJsZUF1dG9GaWVsZEZlYXR1cmU/OiBib29sZWFuO1xuICAgIH07XG59XG5cbmludGVyZmFjZSBGb3JtQ29uZmlnIHtcbiAgICB0aGVtZXM/OiBzdHJpbmdbXTtcbiAgICBidWlsZD86IFwiY2lcIiB8IFwibWFudWFsXCI7XG4gICAgbW9kZT86IFwibm8tZWRpdG9yXCIgfCBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiIHwgXCJub3JtYWwtYnVpbGRcIjtcbiAgICBkZXBlbmRlbmNpZXM/OiB7XG4gICAgICAgIGdlbmVyYXRvcjogdW5kZWZpbmVkIHwgc3RyaW5nO1xuICAgICAgICBlbmdpbmU6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICB9O1xuICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHVzZVNlcnZlclNpZGVGTGFuZ05vcm1hbGl6YXRpb246IGJvb2xlYW47XG4gICAgICAgIGF1dG9DYWxjdWxhdGlvbkNhbGN1bGF0b3JJbXBsPzogXCJjYWxjdWxhdG9yMlwiIHwgXCJkZWZhdWx0XCI7XG4gICAgICAgIGRpc2FibGVGbGFuZ1J1bGVzRm9yRW5hYmxlQXV0b0ZpZWxkRmVhdHVyZT86IGJvb2xlYW47XG4gICAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVGb3JtSW5mbyhcbiAgICBmb3JtSnNvbkZpbGU6IHN0cmluZyxcbiAgICBwYXRoVG9Gb3JtOiBzdHJpbmcsXG4gICAgX2VuZ2luZURpcmVjdG9yeTogdW5kZWZpbmVkIHwgc3RyaW5nLFxuICAgIGxvZ2dlcjogSUxvZ2dlciA9IGdldExvZ2dlcigpLFxuICAgIHVwZ3JhZGVGb3JtSnNvbjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHVzZUxhc3RTdGFibGVWZXJzaW9uOiBib29sZWFuID0gZmFsc2UsXG4gICAgdXNlUHJlcmVsZWFzZVZlcnNpb24/OiBzdHJpbmcsXG4gICAgbmlnaHRseTogYm9vbGVhbiA9IGZhbHNlXG4pOiBQcm9taXNlPEZvcm1JbmZvPiB7XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uRmlsZSwgbG9nZ2VyKTtcbiAgICBpZiAodXNlTGFzdFN0YWJsZVZlcnNpb24gJiYgdXNlUHJlcmVsZWFzZVZlcnNpb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcItCd0LXQvtCx0YXQvtC00LjQvNC+INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQu9C40LHQviDRhNC70LDQsyB1c2VMYXN0U3RhYmxlVmVyc2lvbiDQu9C40LHQviB1c2VQcmVyZWxlYXNlVmVyc2lvblwiKTtcbiAgICB9XG4gICAgaWYgKHVzZUxhc3RTdGFibGVWZXJzaW9uKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIGxhc3Qgc3RhYmxlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZUFzeW5jKGZvcm1Kc29uRmlsZSwgSlNPTi5zdHJpbmdpZnkoZm9ybUNvbmZpZywgdW5kZWZpbmVkLCBcIiAgXCIpLCBcInV0ZjhcIik7XG4gICAgfVxuICAgIGlmICh1c2VQcmVyZWxlYXNlVmVyc2lvbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiA9IGF3YWl0IGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24odXNlUHJlcmVsZWFzZVZlcnNpb24pO1xuICAgICAgICBpZiAocHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgICAgIGVuZ2luZTogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbixcbiAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byBsYXN0IHByZXJlbGVhc2UgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB3cml0ZUZpbGVBc3luYyhmb3JtSnNvbkZpbGUsIEpTT04uc3RyaW5naWZ5KGZvcm1Db25maWcsIHVuZGVmaW5lZCwgXCIgIFwiKSwgXCJ1dGY4XCIpO1xuICAgIH1cbiAgICBsZXQgZ2VuZXJhdG9yVmVyc2lvbiA9XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IgIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5nZW5lcmF0b3IpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBsZXQgZW5naW5lVmVyc2lvbiA9XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUgIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmUpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBpZiAobmlnaHRseSkge1xuICAgICAgICBnZW5lcmF0b3JWZXJzaW9uID0geyB0eXBlOiBcInByZVwiLCBwcmVJZDogXCJuaWdodGx5XCIgfTtcbiAgICAgICAgZW5naW5lVmVyc2lvbiA9IHsgdHlwZTogXCJwcmVcIiwgcHJlSWQ6IFwibmlnaHRseVwiIH07XG4gICAgfVxuICAgIGlmICh1cGdyYWRlRm9ybUpzb24pIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlQXN5bmMoZm9ybUpzb25GaWxlLCBKU09OLnN0cmluZ2lmeShmb3JtQ29uZmlnLCB1bmRlZmluZWQsIFwiICBcIiksIFwidXRmOFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGhlbWVzOiBmb3JtQ29uZmlnLnRoZW1lcyxcbiAgICAgICAgbW9kZTpcbiAgICAgICAgICAgIGZvcm1Db25maWcubW9kZSA9PT0gXCJuby1lZGl0b3JcIlxuICAgICAgICAgICAgICAgID8gRm9ybUJ1aWxkTW9kZS5Ob0VkaXRvclxuICAgICAgICAgICAgICAgIDogZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiXG4gICAgICAgICAgICAgICAgPyBGb3JtQnVpbGRNb2RlLkNvcHlMZWdhY3lQcmVidWlsdFJlc291cmNlc1xuICAgICAgICAgICAgICAgIDogRm9ybUJ1aWxkTW9kZS5Ob3JtYWxCdWlsZCxcbiAgICAgICAgZm9ybU5hbWU6IHBhdGguYmFzZW5hbWUocGF0aFRvRm9ybSksXG4gICAgICAgIGZvcm1Tb3VyY2VzUGF0aDogcGF0aFRvRm9ybSxcbiAgICAgICAgZ2VuZXJhdG9yVmVyc2lvbjogZ2VuZXJhdG9yVmVyc2lvbixcbiAgICAgICAgZW5naW5lVmVyc2lvbjogZW5naW5lVmVyc2lvbixcbiAgICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNOZXdGb3JtSnNvbkZvcm1hdChmb3JtSnNvbkZpbGU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgY29uc3QgZm9ybUNvbmZpZzogRm9ybUNvbmZpZ0NvbnRlbnQgPSBhd2FpdCByZWFkSnNvbihmb3JtSnNvbkZpbGUpO1xuICAgIHJldHVybiBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyAhPSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkRm9ybUNvbmZpZyhmb3JtSnNvbkZpbGU6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTxGb3JtQ29uZmlnPiB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICBjb25zdCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnQ29udGVudCA9IGF3YWl0IHJlYWRKc29uKGZvcm1Kc29uRmlsZSk7XG4gICAgcmV0dXJuIGdldEZvcm1Db25maWdGcm9tU291cmNlKGZvcm1Db25maWcsIGxvZ2dlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtQ29uZmlnRnJvbVNvdXJjZShmb3JtQ29uZmlnOiBGb3JtQ29uZmlnQ29udGVudCwgbG9nZ2VyOiBJTG9nZ2VyKTogRm9ybUNvbmZpZyB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICBpZiAoXG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IgIT0gdW5kZWZpbmVkICYmXG4gICAgICAgICFpc1ZhbGlkU2VtVmVyVmVyc2lvblJhbmdlKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzLmdlbmVyYXRvcilcbiAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmdlbmVyYXRvcn0gaXMgbm90IHZhbGlkIHZlcnNpb24gZm9ybWF0YCk7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUgIT0gdW5kZWZpbmVkICYmICFpc1ZhbGlkU2VtVmVyVmVyc2lvblJhbmdlKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX0gaXMgbm90IHZhbGlkIHZlcnNpb24gZm9ybWF0YCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2V0dGluZ3MgPSB7XG4gICAgICAgIHVzZVNlcnZlclNpZGVGTGFuZ05vcm1hbGl6YXRpb246IGZhbHNlLFxuICAgICAgICAuLi5waWNrQnkoZm9ybUNvbmZpZy5zZXR0aW5ncyA/PyB7fSwgeCA9PiB4ICE9PSB1bmRlZmluZWQpLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0aGVtZXM6IGZvcm1Db25maWcudGhlbWVzLFxuICAgICAgICBidWlsZDogZm9ybUNvbmZpZy5idWlsZCB8fCBcIm1hbnVhbFwiLFxuICAgICAgICBtb2RlOiBmb3JtQ29uZmlnLm1vZGUgPz8gXCJub3JtYWwtYnVpbGRcIixcbiAgICAgICAgc2V0dGluZ3M6IHNldHRpbmdzLFxuICAgICAgICBkZXBlbmRlbmNpZXM6XG4gICAgICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyAhPSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3I6IGZvcm1Db25maWcuZGVwZW5kZW5jaWVzLmdlbmVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICBlbmdpbmU6IGZvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xufVxuIl19