@cdktn/commons 0.25.0-pre.10 → 0.25.0-pre.12

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.
@@ -15,15 +15,25 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.mkdtemp = void 0;
36
+ exports.mkdtemp = mkdtemp;
27
37
  // Copyright (c) HashiCorp, Inc
28
38
  // SPDX-License-Identifier: MPL-2.0
29
39
  const config_1 = require("./config");
@@ -47,7 +57,6 @@ async function mkdtemp(closure) {
47
57
  await fs.remove(workdir);
48
58
  }
49
59
  }
50
- exports.mkdtemp = mkdtemp;
51
60
  describe("parseConfig", () => {
52
61
  it("provides default with no input", async () => {
53
62
  expect((0, config_1.parseConfig)()).toMatchInlineSnapshot(`
@@ -737,4 +746,4 @@ describe("parseConfig", () => {
737
746
  });
738
747
  });
739
748
  });
740
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHFDQUF1QztBQUN2Qyw2Q0FBK0I7QUFDL0IsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUU3Qjs7OztHQUlHO0FBQ0gsU0FBUyxXQUFXLENBQUMsQ0FBUztJQUM1QixPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFTSxLQUFLLFVBQVUsT0FBTyxDQUFDLE9BQXVDO0lBQ25FLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDSCxDQUFDO0FBUEQsMEJBT0M7QUFFRCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtJQUMzQixFQUFFLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUMsTUFBTSxDQUFDLElBQUEsb0JBQVcsR0FBRSxDQUFDLENBQUMscUJBQXFCLENBQUM7Ozs7O0tBSzNDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDekIsRUFBRSxDQUFDLHdCQUF3QixFQUFFLEtBQUssSUFB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QUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3ZFLG1DQUFtQyxDQUNwQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FDVixJQUFBLG9CQUFXLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDcEUsQ0FBQyxPQUFPLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHsgcGFyc2VDb25maWcgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgb3MgZnJvbSBcIm9zXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbi8qKlxuICogUmV3cml0ZXMgbmF0aXZlIHNlcGFyYXRvcnMgdG8gXCIvXCIgc28gcGF0aCBhc3NlcnRpb25zIGNhbiBiZSB3cml0dGVuIG9uY2UuXG4gKiBgbG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGhgIGlzIHJlc29sdmVkIHdpdGggYHBhdGgucmVzb2x2ZWAsIHdoaWNoIHlpZWxkc1xuICogYmFja3NsYXNoZXMgb24gV2luZG93cy5cbiAqL1xuZnVuY3Rpb24gdG9Qb3NpeFBhdGgocDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHAuc3BsaXQocGF0aC5zZXApLmpvaW4ocGF0aC5wb3NpeC5zZXApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWtkdGVtcChjbG9zdXJlOiAoZGlyOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pIHtcbiAgY29uc3Qgd29ya2RpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCBcImNka3RmLlwiKSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgY2xvc3VyZSh3b3JrZGlyKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBmcy5yZW1vdmUod29ya2Rpcik7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJwYXJzZUNvbmZpZ1wiLCAoKSA9PiB7XG4gIGl0KFwicHJvdmlkZXMgZGVmYXVsdCB3aXRoIG5vIGlucHV0XCIsIGFzeW5jICgpID0+IHtcbiAgICBleHBlY3QocGFyc2VDb25maWcoKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgIHtcbiAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICB9XG4gICAgYCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwicHJvdmlkZXJzXCIsICgpID0+IHtcbiAgICBpdChcInBhcnNlcyBwcm92aWRlciBzdHJpbmdcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1wiYXdzQH4+IDIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCJ+PiAyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBwcm92aWRlciBzdHJpbmcgd2l0aCBuYW1lc3BhY2VcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1wiaGFzaGljb3JwL2F3c0B+PiAyLjBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Qcm92aWRlcnNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJoYXNoaWNvcnAvYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwifj4gMi4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgY29tcGxleCBwcm92aWRlciBjb25maWdcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiYXdzXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIn4+IDIuMFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Qcm92aWRlcnNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJhd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCJ+PiAyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwibW9kdWxlc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJwYXJzZXMgbW9kdWxlIHN0cmluZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1widGVycmFmb3JtLWF3cy1tb2R1bGVzL3ZwYy9hd3NAMi4zOS4wXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvYXdzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL3ZwYy9hd3NcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwiMi4zOS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgbW9kdWxlIGZvciBsb2NhbCBtb2R1bGUgZm9yIG1vZHVsZSBnZW5lcmF0b3JcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImxvY2FsLW1vZHVsZVwiLFxuICAgICAgICAgICAgc291cmNlOiBcIi4vZm9vXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgICBjb25zdCBwYXJzZWQ6IGFueSA9IHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSk7XG4gICAgICBleHBlY3QoXG4gICAgICAgIHRvUG9zaXhQYXRoKHBhcnNlZC50ZXJyYWZvcm1Nb2R1bGVzWzBdLmxvY2FsU291cmNlQWJzb2x1dGVQYXRoKSxcbiAgICAgICkudG9NYXRjaChcIi9wYWNrYWdlcy9AY2RrdG4vY29tbW9ucy9mb29cIik7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWIgbW9kdWxlIHJlZ2lzdHJ5IHN0cmluZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvL21vZHVsZXMvaWFtLWFjY291bnRAMy4xMi4wXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9pYW0vYXdzL21vZHVsZXMvaWFtLWFjY291bnRcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiaWFtLWFjY291bnRcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvYXdzL2lhbS9tb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvL21vZHVsZXMvaWFtLWFjY291bnRcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwiMy4xMi4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJ0YWtlcyBjb21wbGV4IGNvbmZpZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy90ZXJyYWZvcm0tYXdzLXZwY1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCJ+PiB2Mi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImN1c3RvbUFXU1ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy90ZXJyYWZvcm0tYXdzLXZwY1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCJ+PiB2Mi4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJ0YWtlcyBjb21wbGV4IGFuZCBzdHJpbmcgY29uZmlnXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c0AyLjM5LjBcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImN1c3RvbUFXU1ZwY1wiLFxuICAgICAgICAgICAgc291cmNlOlxuICAgICAgICAgICAgICBcImh0dHBzOi8vZ2l0aHViLmNvbS90ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdGVycmFmb3JtLWF3cy12cGNcIixcbiAgICAgICAgICAgIHZlcnNpb246IFwifj4gdjIuMFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3NcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIyLjM5LjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBsb2NhbCBwYXRoXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCIuL2NvbnN1bFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBhcnNlZDogYW55ID0gcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgdG9Qb3NpeFBhdGgocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGgpLFxuICAgICAgKS50b01hdGNoKFwiL3BhY2thZ2VzL0BjZGt0bi9jb21tb25zL2NvbnN1bFwiKTtcblxuICAgICAgZXhwZWN0KHBhcnNlZC50ZXJyYWZvcm1Nb2R1bGVzWzBdLm5hbWUpLnRvTWF0Y2goXCJjb25zdWxcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGFzaGljb3JwL2NvbnN1bC9hd3NAMC4xLjBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImNvbnN1bFwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJoYXNoaWNvcnAvY29uc3VsL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIwLjEuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHByaXZhdGUgcmVnaXN0cnlcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImFwcC50ZXJyYWZvcm0uaW8vZXhhbXBsZS1jb3JwL2s4cy1jbHVzdGVyL2F6dXJlcm1AMS4xLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiYXBwLXRlcnJhZm9ybS1pby9leGFtcGxlLWNvcnAvazhzLWNsdXN0ZXIvYXp1cmVybVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJrOHMtY2x1c3RlclwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImV4YW1wbGUtY29ycC9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiYXBwLnRlcnJhZm9ybS5pby9leGFtcGxlLWNvcnAvazhzLWNsdXN0ZXIvYXp1cmVybVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIxLjEuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdGh1YlwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiZ2l0aHViLmNvbS9oYXNoaWNvcnAvZXhhbXBsZVwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2V4YW1wbGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdGh1Yi5jb20vaGFzaGljb3JwL2V4YW1wbGVcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBnaXRodWIgc3NoXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXRAZ2l0aHViLmNvbTpoYXNoaWNvcnAvZXhhbXBsZS5naXRcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9leGFtcGxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImV4YW1wbGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJoYXNoaWNvcnBcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXRAZ2l0aHViLmNvbTpoYXNoaWNvcnAvZXhhbXBsZS5naXRcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBiaXRidWNrZXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImJpdGJ1Y2tldC5vcmcvaGFzaGljb3JwL3RlcnJhZm9ybS1jb25zdWwtYXdzXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJoYXNoaWNvcnAvdGVycmFmb3JtLWNvbnN1bC1hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidGVycmFmb3JtLWNvbnN1bC1hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJoYXNoaWNvcnBcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJiaXRidWNrZXQub3JnL2hhc2hpY29ycC90ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdlbmVyaWMgZ2l0XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0OjpodHRwczovL2V4YW1wbGUuY29tL3ZwYy5naXRcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBnaXQgc3NoXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXQ6OnNzaDovL3VzZXJuYW1lQGV4YW1wbGUuY29tL3N0b3JhZ2UuZ2l0XCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJzdG9yYWdlXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInN0b3JhZ2VcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6c3NoOi8vdXNlcm5hbWVAZXhhbXBsZS5jb20vc3RvcmFnZS5naXRcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyByZXZpc2lvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiZ2l0OjpodHRwczovL2V4YW1wbGUuY29tL2luZnJhL21haW4tdnBjLmdpdD9yZWY9djEuMi4wXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImluZnJhL21haW4tdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcIm1haW4tdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaW5mcmFcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vaW5mcmEvbWFpbi12cGMuZ2l0P3JlZj12MS4yLjBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzY3BcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6dXNlcm5hbWVAZXhhbXBsZS5jb206c3RvcmFnZS5naXRcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInN0b3JhZ2VcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0Ojp1c2VybmFtZUBleGFtcGxlLmNvbTpzdG9yYWdlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIG1lcmN1cmlhbFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGdcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhnOjpodHRwOi8vZXhhbXBsZS5jb20vdnBjLmhnXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgaGcgcmV2aXNpb25cIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImhnOjpodHRwOi8vZXhhbXBsZS5jb20vdnBjLmhnP3JlZj12MS4yLjBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhnOjpodHRwOi8vZXhhbXBsZS5jb20vdnBjLmhnP3JlZj12MS4yLjBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBodHRwXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJodHRwczovL2V4YW1wbGUuY29tL3ZwYy1tb2R1bGUuemlwXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGMtbW9kdWxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZS56aXBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBhcmNoaXZlIHR5cGVcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZT9hcmNoaXZlPXppcFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjLW1vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGMtbW9kdWxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2V4YW1wbGUuY29tL3ZwYy1tb2R1bGU/YXJjaGl2ZT16aXBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzM1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiczM6Omh0dHBzOi8vczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vZXhhbXBsZWNvcnAtdGVycmFmb3JtLW1vZHVsZXMvdnBjLnppcFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiZXhhbXBsZWNvcnAtdGVycmFmb3JtLW1vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJzMzo6aHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9leGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy92cGMuemlwXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2NzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJnY3M6Omh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3N0b3JhZ2UvdjEvbW9kdWxlcy9mb29tb2R1bGUuemlwXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInN0b3JhZ2UvdjEvbW9kdWxlcy9mb29tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZm9vbW9kdWxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwibW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdjczo6aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vc3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZS56aXBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgcmVnaXN0cnlcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImhhc2hpY29ycC9jb25zdWwvYXdzLy9tb2R1bGVzL2NvbnN1bC1jbHVzdGVyXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJoYXNoaWNvcnAvY29uc3VsL2F3cy9tb2R1bGVzL2NvbnN1bC1jbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImNvbnN1bC1jbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwL2F3cy9jb25zdWwvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzLy9tb2R1bGVzL2NvbnN1bC1jbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgc3VibW9kdWxlIGdpdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiZ2l0OjpodHRwczovL2V4YW1wbGUuY29tL25ldHdvcmsuZ2l0Ly9tb2R1bGVzL3ZwY1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwibmV0d29yay9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJuZXR3b3JrL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay5naXQvL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgc3VibW9kdWxlIGh0dHBcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay1tb2R1bGUuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrLW1vZHVsZS9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJuZXR3b3JrLW1vZHVsZS9tb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLW1vZHVsZS56aXAvL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgc3VibW9kdWxlIHMzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJzMzo6aHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9leGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy9uZXR3b3JrLnppcC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiZXhhbXBsZWNvcnAtdGVycmFmb3JtLW1vZHVsZXMvbmV0d29yay9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy9uZXR3b3JrL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJzMzo6aHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9leGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy9uZXR3b3JrLnppcC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgcmVmXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay5naXQvL21vZHVsZXMvdnBjP3JlZj12MS4yLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwibmV0d29yay9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJuZXR3b3JrL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay5naXQvL21vZHVsZXMvdnBjP3JlZj12MS4yLjBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyByZWYgd2l0aCAvXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJnaXQ6Omh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZHBvc3NlL3RlcnJhZm9ybS1udWxsLWxhYmVsLmdpdD9yZWY9dGFncy8wLjE0LjFcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiY2xvdWRwb3NzZS90ZXJyYWZvcm0tbnVsbC1sYWJlbFwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXJyYWZvcm0tbnVsbC1sYWJlbFwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImNsb3VkcG9zc2VcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZ2l0aHViLmNvbS9jbG91ZHBvc3NlL3RlcnJhZm9ybS1udWxsLWxhYmVsLmdpdD9yZWY9dGFncy8wLjE0LjFcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwidGFyZ2V0VmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IEVOVl9LRVkgPSBcIkNES1RGX0NPTlRFWFRfSlNPTlwiO1xuICAgIGxldCBlbnZCZWZvcmU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGVudkJlZm9yZSA9IHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgICAgZGVsZXRlIHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgIH0pO1xuICAgIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgICBpZiAoZW52QmVmb3JlID09PSB1bmRlZmluZWQpIGRlbGV0ZSBwcm9jZXNzLmVudltFTlZfS0VZXTtcbiAgICAgIGVsc2UgcHJvY2Vzcy5lbnZbRU5WX0tFWV0gPSBlbnZCZWZvcmU7XG4gICAgfSk7XG5cbiAgICBpdChcImFjY2VwdHMgY29uc3RyYWludC1zaGFwZWQgdGFyZ2V0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBwYXJzZUNvbmZpZyhcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIHRhcmdldFZlcnNpb25zOiB7IHRlcnJhZm9ybTogXCI+PTEuNS43XCIsIG9wZW50b2Z1OiBcIj49MS42LjBcIiB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBleHBlY3QoY29uZmlnLnRhcmdldFZlcnNpb25zKS50b0VxdWFsKHtcbiAgICAgICAgdGVycmFmb3JtOiBcIj49MS41LjdcIixcbiAgICAgICAgb3BlbnRvZnU6IFwiPj0xLjYuMFwiLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcImFjY2VwdHMgYSBzaW5nbGUgcHJvZHVjdFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoXG4gICAgICAgIHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgb3BlbnRvZnU6IFwifjEuOVwiIH0gfSkpXG4gICAgICAgICAgLnRhcmdldFZlcnNpb25zLFxuICAgICAgKS50b0VxdWFsKHsgb3BlbnRvZnU6IFwifjEuOVwiIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXNzZXMgdGFyZ2V0VmVyc2lvbnMgdG8gdGhlIGFwcCB2aWEgdGhlIGNvbnRleHQgZW52aXJvbm1lbnRcIiwgKCkgPT4ge1xuICAgICAgcGFyc2VDb25maWcoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBjb250ZXh0OiB7IHNvbWVGbGFnOiBcInRydWVcIiB9LFxuICAgICAgICAgIHRhcmdldFZlcnNpb25zOiB7IHRlcnJhZm9ybTogXCI+PTEuOC4wXCIgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgZXhwZWN0KEpTT04ucGFyc2UocHJvY2Vzcy5lbnZbRU5WX0tFWV0hKSkudG9FcXVhbCh7XG4gICAgICAgIHNvbWVGbGFnOiBcInRydWVcIixcbiAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS44LjBcIiB9LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlamVjdHMgdW5rbm93biBwcm9kdWN0IG5hbWVzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeSh7IHRhcmdldFZlcnNpb25zOiB7IHRvZnU6IFwiPj0xLjYuMFwiIH0gfSkpLFxuICAgICAgKS50b1Rocm93KFxuICAgICAgICBgdGFyZ2V0VmVyc2lvbnMgaGFzIHVua25vd24gcHJvZHVjdCBcInRvZnVcIiAoZXhwZWN0ZWQgXCJ0ZXJyYWZvcm1cIiBvciBcIm9wZW50b2Z1XCIpYCxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlamVjdHMgbWFsZm9ybWVkIHNlbXZlciByYW5nZXNcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcImxhdGVzdFwiIH0gfSksXG4gICAgICAgICksXG4gICAgICApLnRvVGhyb3coYFwibGF0ZXN0XCIgaXMgbm90IGEgdmFsaWQgc2VtdmVyIHJhbmdlYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlamVjdHMgVGVycmFmb3JtIHByb3ZpZGVyIGNvbnN0cmFpbnQgc3ludGF4IHdpdGggYSBoaW50XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBwYXJzZUNvbmZpZyhcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHRhcmdldFZlcnNpb25zOiB7IHRlcnJhZm9ybTogXCJ+PiAxLjVcIiB9IH0pLFxuICAgICAgICApLFxuICAgICAgKS50b1Rocm93KGB1c2VzIFRlcnJhZm9ybSBwcm92aWRlciBjb25zdHJhaW50IHN5bnRheGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJyZWplY3RzIGFuIGVtcHR5IGRlY2xhcmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeSh7IHRhcmdldFZlcnNpb25zOiB7fSB9KSkpLnRvVGhyb3coXG4gICAgICAgIGBtdXN0IGRlY2xhcmUgYXQgbGVhc3Qgb25lIHByb2R1Y3RgLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBub24tc3RyaW5nIHJhbmdlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT5cbiAgICAgICAgcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IDEuNSB9IH0pKSxcbiAgICAgICkudG9UaHJvdyhgdGFyZ2V0VmVyc2lvbnMudGVycmFmb3JtIG11c3QgYmUgYSBzZW12ZXIgcmFuZ2Ugc3RyaW5nYCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
749
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsMEJBT0M7QUF2QkQsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyxxQ0FBdUM7QUFDdkMsNkNBQStCO0FBQy9CLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0I7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRU0sS0FBSyxVQUFVLE9BQU8sQ0FBQyxPQUF1QztJQUNuRSxNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNuRSxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0FBQ0gsQ0FBQztBQUVELFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLEVBQUUsQ0FBQyxnQ0FBZ0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM5QyxNQUFNLENBQUMsSUFBQSxvQkFBVyxHQUFFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQzs7Ozs7S0FLM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtRQUN6QixFQUFFLENBQUMsd0JBQXdCLEVB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Q0FBQztRQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdkUsbUNBQW1DLENBQ3BDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNWLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNwRSxDQUFDLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBwYXJzZUNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuLyoqXG4gKiBSZXdyaXRlcyBuYXRpdmUgc2VwYXJhdG9ycyB0byBcIi9cIiBzbyBwYXRoIGFzc2VydGlvbnMgY2FuIGJlIHdyaXR0ZW4gb25jZS5cbiAqIGBsb2NhbFNvdXJjZUFic29sdXRlUGF0aGAgaXMgcmVzb2x2ZWQgd2l0aCBgcGF0aC5yZXNvbHZlYCwgd2hpY2ggeWllbGRzXG4gKiBiYWNrc2xhc2hlcyBvbiBXaW5kb3dzLlxuICovXG5mdW5jdGlvbiB0b1Bvc2l4UGF0aChwOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcC5zcGxpdChwYXRoLnNlcCkuam9pbihwYXRoLnBvc2l4LnNlcCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBta2R0ZW1wKGNsb3N1cmU6IChkaXI6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksIFwiY2RrdGYuXCIpKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBjbG9zdXJlKHdvcmtkaXIpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IGZzLnJlbW92ZSh3b3JrZGlyKTtcbiAgfVxufVxuXG5kZXNjcmliZShcInBhcnNlQ29uZmlnXCIsICgpID0+IHtcbiAgaXQoXCJwcm92aWRlcyBkZWZhdWx0IHdpdGggbm8gaW5wdXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgIGV4cGVjdChwYXJzZUNvbmZpZygpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAge1xuICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgIH1cbiAgICBgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJwcm92aWRlcnNcIiwgKCkgPT4ge1xuICAgIGl0KFwicGFyc2VzIHByb3ZpZGVyIHN0cmluZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJhd3NAfj4gMi4wXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtUHJvdmlkZXJzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IDIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHByb3ZpZGVyIHN0cmluZyB3aXRoIG5hbWVzcGFjZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXCJoYXNoaWNvcnAvYXdzQH4+IDIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCJ+PiAyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBjb21wbGV4IHByb3ZpZGVyIGNvbmZpZ1wiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtUHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJhd3NcIixcbiAgICAgICAgICAgIHZlcnNpb246IFwifj4gMi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybVByb3ZpZGVyc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJhd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IDIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJtb2R1bGVzXCIsICgpID0+IHtcbiAgICBpdChcInBhcnNlcyBtb2R1bGUgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c0AyLjM5LjBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3NcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdnBjL2F3c1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIyLjM5LjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBtb2R1bGUgZm9yIGxvY2FsIG1vZHVsZSBmb3IgbW9kdWxlIGdlbmVyYXRvclwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwibG9jYWwtbW9kdWxlXCIsXG4gICAgICAgICAgICBzb3VyY2U6IFwiLi9mb29cIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHBhcnNlZDogYW55ID0gcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKTtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgdG9Qb3NpeFBhdGgocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGgpLFxuICAgICAgKS50b01hdGNoKFwiL3BhY2thZ2VzL0BjZGt0bi9jb21tb25zL2Zvb1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1YiBtb2R1bGUgcmVnaXN0cnkgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudEAzLjEyLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2lhbS9hd3MvbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJpYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy9hd3MvaWFtL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJ0ZXJyYWZvcm0tYXdzLW1vZHVsZXMvaWFtL2F3cy8vbW9kdWxlcy9pYW0tYWNjb3VudFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogXCIzLjEyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInRha2VzIGNvbXBsZXggY29uZmlnXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgIHNvdXJjZTpcbiAgICAgICAgICAgICAgXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2dpdGh1Yi5jb20vdGVycmFmb3JtLWF3cy1tb2R1bGVzL3RlcnJhZm9ybS1hd3MtdnBjXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIn4+IHYyLjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInRha2VzIGNvbXBsZXggYW5kIHN0cmluZyBjb25maWdcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzQDIuMzkuMFwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiY3VzdG9tQVdTVnBjXCIsXG4gICAgICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgICAgIFwiaHR0cHM6Ly9naXRodWIuY29tL3RlcnJhZm9ybS1hd3MtbW9kdWxlcy90ZXJyYWZvcm0tYXdzLXZwY1wiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCJ+PiB2Mi4wXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL3ZwYy9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwidGVycmFmb3JtLWF3cy1tb2R1bGVzL2F3c1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInRlcnJhZm9ybS1hd3MtbW9kdWxlcy92cGMvYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjIuMzkuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImN1c3RvbUFXU1ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJjdXN0b21BV1NWcGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS90ZXJyYWZvcm0tYXdzLW1vZHVsZXMvdGVycmFmb3JtLWF3cy12cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IFwifj4gdjIuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGxvY2FsIHBhdGhcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcIi4vY29uc3VsXCJdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcGFyc2VkOiBhbnkgPSBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpO1xuICAgICAgZXhwZWN0KFxuICAgICAgICB0b1Bvc2l4UGF0aChwYXJzZWQudGVycmFmb3JtTW9kdWxlc1swXS5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCksXG4gICAgICApLnRvTWF0Y2goXCIvcGFja2FnZXMvQGNka3RuL2NvbW1vbnMvY29uc3VsXCIpO1xuXG4gICAgICBleHBlY3QocGFyc2VkLnRlcnJhZm9ybU1vZHVsZXNbMF0ubmFtZSkudG9NYXRjaChcImNvbnN1bFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJlZ2lzdHJ5XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJoYXNoaWNvcnAvY29uc3VsL2F3c0AwLjEuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2NvbnN1bC9hd3NcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uc3VsXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwL2F3c1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjAuMS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgcHJpdmF0ZSByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiYXBwLnRlcnJhZm9ybS5pby9leGFtcGxlLWNvcnAvazhzLWNsdXN0ZXIvYXp1cmVybUAxLjEuMFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJhcHAtdGVycmFmb3JtLWlvL2V4YW1wbGUtY29ycC9rOHMtY2x1c3Rlci9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcIms4cy1jbHVzdGVyXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiZXhhbXBsZS1jb3JwL2F6dXJlcm1cIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJhcHAudGVycmFmb3JtLmlvL2V4YW1wbGUtY29ycC9rOHMtY2x1c3Rlci9henVyZXJtXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiBcIjEuMS4wXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2l0aHViXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXRodWIuY29tL2hhc2hpY29ycC9leGFtcGxlXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJoYXNoaWNvcnAvZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJleGFtcGxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiaGFzaGljb3JwXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdGh1YiBzc2hcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdEBnaXRodWIuY29tOmhhc2hpY29ycC9leGFtcGxlLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaGFzaGljb3JwL2V4YW1wbGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdEBnaXRodWIuY29tOmhhc2hpY29ycC9leGFtcGxlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGJpdGJ1Y2tldFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiYml0YnVja2V0Lm9yZy9oYXNoaWNvcnAvdGVycmFmb3JtLWNvbnN1bC1hd3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC90ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXJyYWZvcm0tY29uc3VsLWF3c1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImhhc2hpY29ycFwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImJpdGJ1Y2tldC5vcmcvaGFzaGljb3JwL3RlcnJhZm9ybS1jb25zdWwtYXdzXCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgZ2VuZXJpYyBnaXRcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS92cGMuZ2l0XCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGdpdCBzc2hcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImdpdDo6c3NoOi8vdXNlcm5hbWVAZXhhbXBsZS5jb20vc3RvcmFnZS5naXRcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInN0b3JhZ2VcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2l0Ojpzc2g6Ly91c2VybmFtZUBleGFtcGxlLmNvbS9zdG9yYWdlLmdpdFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJldmlzaW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vaW5mcmEvbWFpbi12cGMuZ2l0P3JlZj12MS4yLjBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwiaW5mcmEvbWFpbi12cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwibWFpbi12cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJpbmZyYVwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9pbmZyYS9tYWluLXZwYy5naXQ/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHNjcFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiZ2l0Ojp1c2VybmFtZUBleGFtcGxlLmNvbTpzdG9yYWdlLmdpdFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwic3RvcmFnZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJzdG9yYWdlXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJnaXQ6OnVzZXJuYW1lQGV4YW1wbGUuY29tOnN0b3JhZ2UuZ2l0XCIsXG4gICAgICAgICAgICAgIFwidmVyc2lvblwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIGApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJwYXJzZXMgbWVyY3VyaWFsXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJoZzo6aHR0cDovL2V4YW1wbGUuY29tL3ZwYy5oZ1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGdcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBoZyByZXZpc2lvblwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGc/cmVmPXYxLjIuMFwiXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwidnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGc6Omh0dHA6Ly9leGFtcGxlLmNvbS92cGMuaGc/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGh0dHBcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZS56aXBcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidnBjLW1vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS92cGMtbW9kdWxlLnppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIGFyY2hpdmUgdHlwZVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaHR0cHM6Ly9leGFtcGxlLmNvbS92cGMtbW9kdWxlP2FyY2hpdmU9emlwXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJ2cGMtbW9kdWxlXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwYy1tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vdnBjLW1vZHVsZT9hcmNoaXZlPXppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHMzXCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXG4gICAgICAgICAgXCJzMzo6aHR0cHM6Ly9zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9leGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy92cGMuemlwXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImV4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJ2cGNcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL3ZwYy56aXBcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBnY3NcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdjczo6aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vc3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZS56aXBcIixcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdChwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeShpbnB1dCkpKS50b01hdGNoSW5saW5lU25hcHNob3QoYFxuICAgICAgICB7XG4gICAgICAgICAgXCJjb2RlTWFrZXJPdXRwdXRcIjogXCIuZ2VuXCIsXG4gICAgICAgICAgXCJvdXRwdXRcIjogXCJjZGt0Zi5vdXRcIixcbiAgICAgICAgICBcInRlcnJhZm9ybU1vZHVsZXNcIjogW1xuICAgICAgICAgICAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCB7XG4gICAgICAgICAgICAgIFwiZnFuXCI6IFwic3RvcmFnZS92MS9tb2R1bGVzL2Zvb21vZHVsZVwiLFxuICAgICAgICAgICAgICBcIm5hbWVcIjogXCJmb29tb2R1bGVcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiZ2NzOjpodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9zdG9yYWdlL3YxL21vZHVsZXMvZm9vbW9kdWxlLnppcFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1Ym1vZHVsZSByZWdpc3RyeVwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1wiaGFzaGljb3JwL2NvbnN1bC9hd3MvL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIl0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcImhhc2hpY29ycC9jb25zdWwvYXdzL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJuYW1lc3BhY2VcIjogXCJoYXNoaWNvcnAvYXdzL2NvbnN1bC9tb2R1bGVzXCIsXG4gICAgICAgICAgICAgIFwic291cmNlXCI6IFwiaGFzaGljb3JwL2NvbnN1bC9hd3MvL21vZHVsZXMvY29uc3VsLWNsdXN0ZXJcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgZ2l0XCIsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXCJnaXQ6Omh0dHBzOi8vZXhhbXBsZS5jb20vbmV0d29yay5naXQvL21vZHVsZXMvdnBjXCJdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgaHR0cFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgdGVycmFmb3JtTW9kdWxlczogW1xuICAgICAgICAgIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLW1vZHVsZS56aXAvL21vZHVsZXMvdnBjXCIsXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QocGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoaW5wdXQpKSkudG9NYXRjaElubGluZVNuYXBzaG90KGBcbiAgICAgICAge1xuICAgICAgICAgIFwiY29kZU1ha2VyT3V0cHV0XCI6IFwiLmdlblwiLFxuICAgICAgICAgIFwib3V0cHV0XCI6IFwiY2RrdGYub3V0XCIsXG4gICAgICAgICAgXCJ0ZXJyYWZvcm1Nb2R1bGVzXCI6IFtcbiAgICAgICAgICAgIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQge1xuICAgICAgICAgICAgICBcImZxblwiOiBcIm5ldHdvcmstbW9kdWxlL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmstbW9kdWxlL21vZHVsZXNcIixcbiAgICAgICAgICAgICAgXCJzb3VyY2VcIjogXCJodHRwczovL2V4YW1wbGUuY29tL25ldHdvcmstbW9kdWxlLnppcC8vbW9kdWxlcy92cGNcIixcbiAgICAgICAgICAgICAgXCJ2ZXJzaW9uXCI6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgYCk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhcnNlcyBzdWJtb2R1bGUgczNcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJleGFtcGxlY29ycC10ZXJyYWZvcm0tbW9kdWxlcy9uZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcImV4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcInMzOjpodHRwczovL3MzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL2V4YW1wbGVjb3JwLXRlcnJhZm9ybS1tb2R1bGVzL25ldHdvcmsuemlwLy9tb2R1bGVzL3ZwY1wiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHN1Ym1vZHVsZSByZWZcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGM/cmVmPXYxLjIuMFwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJuZXR3b3JrL21vZHVsZXMvdnBjXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInZwY1wiLFxuICAgICAgICAgICAgICBcIm5hbWVzcGFjZVwiOiBcIm5ldHdvcmsvbW9kdWxlc1wiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9leGFtcGxlLmNvbS9uZXR3b3JrLmdpdC8vbW9kdWxlcy92cGM/cmVmPXYxLjIuMFwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicGFyc2VzIHJlZiB3aXRoIC9cIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtcbiAgICAgICAgICBcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkcG9zc2UvdGVycmFmb3JtLW51bGwtbGFiZWwuZ2l0P3JlZj10YWdzLzAuMTQuMVwiLFxuICAgICAgICBdLFxuICAgICAgfTtcblxuICAgICAgZXhwZWN0KHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KGlucHV0KSkpLnRvTWF0Y2hJbmxpbmVTbmFwc2hvdChgXG4gICAgICAgIHtcbiAgICAgICAgICBcImNvZGVNYWtlck91dHB1dFwiOiBcIi5nZW5cIixcbiAgICAgICAgICBcIm91dHB1dFwiOiBcImNka3RmLm91dFwiLFxuICAgICAgICAgIFwidGVycmFmb3JtTW9kdWxlc1wiOiBbXG4gICAgICAgICAgICBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50IHtcbiAgICAgICAgICAgICAgXCJmcW5cIjogXCJjbG91ZHBvc3NlL3RlcnJhZm9ybS1udWxsLWxhYmVsXCIsXG4gICAgICAgICAgICAgIFwibmFtZVwiOiBcInRlcnJhZm9ybS1udWxsLWxhYmVsXCIsXG4gICAgICAgICAgICAgIFwibmFtZXNwYWNlXCI6IFwiY2xvdWRwb3NzZVwiLFxuICAgICAgICAgICAgICBcInNvdXJjZVwiOiBcImdpdDo6aHR0cHM6Ly9naXRodWIuY29tL2Nsb3VkcG9zc2UvdGVycmFmb3JtLW51bGwtbGFiZWwuZ2l0P3JlZj10YWdzLzAuMTQuMVwiLFxuICAgICAgICAgICAgICBcInZlcnNpb25cIjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICBgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJ0YXJnZXRWZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgRU5WX0tFWSA9IFwiQ0RLVEZfQ09OVEVYVF9KU09OXCI7XG4gICAgbGV0IGVudkJlZm9yZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgZW52QmVmb3JlID0gcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnZbRU5WX0tFWV07XG4gICAgfSk7XG4gICAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICAgIGlmIChlbnZCZWZvcmUgPT09IHVuZGVmaW5lZCkgZGVsZXRlIHByb2Nlc3MuZW52W0VOVl9LRVldO1xuICAgICAgZWxzZSBwcm9jZXNzLmVudltFTlZfS0VZXSA9IGVudkJlZm9yZTtcbiAgICB9KTtcblxuICAgIGl0KFwiYWNjZXB0cyBjb25zdHJhaW50LXNoYXBlZCB0YXJnZXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHBhcnNlQ29uZmlnKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS41LjdcIiwgb3BlbnRvZnU6IFwiPj0xLjYuMFwiIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIGV4cGVjdChjb25maWcudGFyZ2V0VmVyc2lvbnMpLnRvRXF1YWwoe1xuICAgICAgICB0ZXJyYWZvcm06IFwiPj0xLjUuN1wiLFxuICAgICAgICBvcGVudG9mdTogXCI+PTEuNi4wXCIsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwiYWNjZXB0cyBhIHNpbmdsZSBwcm9kdWN0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdChcbiAgICAgICAgcGFyc2VDb25maWcoSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyBvcGVudG9mdTogXCJ+MS45XCIgfSB9KSlcbiAgICAgICAgICAudGFyZ2V0VmVyc2lvbnMsXG4gICAgICApLnRvRXF1YWwoeyBvcGVudG9mdTogXCJ+MS45XCIgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInBhc3NlcyB0YXJnZXRWZXJzaW9ucyB0byB0aGUgYXBwIHZpYSB0aGUgY29udGV4dCBlbnZpcm9ubWVudFwiLCAoKSA9PiB7XG4gICAgICBwYXJzZUNvbmZpZyhcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvbnRleHQ6IHsgc29tZUZsYWc6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIj49MS44LjBcIiB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICBleHBlY3QoSlNPTi5wYXJzZShwcm9jZXNzLmVudltFTlZfS0VZXSEpKS50b0VxdWFsKHtcbiAgICAgICAgc29tZUZsYWc6IFwidHJ1ZVwiLFxuICAgICAgICB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IFwiPj0xLjguMFwiIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyB1bmtub3duIHByb2R1Y3QgbmFtZXNcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdG9mdTogXCI+PTEuNi4wXCIgfSB9KSksXG4gICAgICApLnRvVGhyb3coXG4gICAgICAgIGB0YXJnZXRWZXJzaW9ucyBoYXMgdW5rbm93biBwcm9kdWN0IFwidG9mdVwiIChleHBlY3RlZCBcInRlcnJhZm9ybVwiIG9yIFwib3BlbnRvZnVcIilgLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBtYWxmb3JtZWQgc2VtdmVyIHJhbmdlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT5cbiAgICAgICAgcGFyc2VDb25maWcoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyB0YXJnZXRWZXJzaW9uczogeyB0ZXJyYWZvcm06IFwibGF0ZXN0XCIgfSB9KSxcbiAgICAgICAgKSxcbiAgICAgICkudG9UaHJvdyhgXCJsYXRlc3RcIiBpcyBub3QgYSB2YWxpZCBzZW12ZXIgcmFuZ2VgKTtcbiAgICB9KTtcblxuICAgIGl0KFwicmVqZWN0cyBUZXJyYWZvcm0gcHJvdmlkZXIgY29uc3RyYWludCBzeW50YXggd2l0aCBhIGhpbnRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+XG4gICAgICAgIHBhcnNlQ29uZmlnKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHsgdGVycmFmb3JtOiBcIn4+IDEuNVwiIH0gfSksXG4gICAgICAgICksXG4gICAgICApLnRvVGhyb3coYHVzZXMgVGVycmFmb3JtIHByb3ZpZGVyIGNvbnN0cmFpbnQgc3ludGF4YCk7XG4gICAgfSk7XG5cbiAgICBpdChcInJlamVjdHMgYW4gZW1wdHkgZGVjbGFyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHBhcnNlQ29uZmlnKEpTT04uc3RyaW5naWZ5KHsgdGFyZ2V0VmVyc2lvbnM6IHt9IH0pKSkudG9UaHJvdyhcbiAgICAgICAgYG11c3QgZGVjbGFyZSBhdCBsZWFzdCBvbmUgcHJvZHVjdGAsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJyZWplY3RzIG5vbi1zdHJpbmcgcmFuZ2VzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PlxuICAgICAgICBwYXJzZUNvbmZpZyhKU09OLnN0cmluZ2lmeSh7IHRhcmdldFZlcnNpb25zOiB7IHRlcnJhZm9ybTogMS41IH0gfSkpLFxuICAgICAgKS50b1Rocm93KGB0YXJnZXRWZXJzaW9ucy50ZXJyYWZvcm0gbXVzdCBiZSBhIHNlbXZlciByYW5nZSBzdHJpbmdgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
package/build/debug.js CHANGED
@@ -15,15 +15,36 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.collectDebugInformation = exports.getPackageVersion = exports.getNodeVersion = exports.getGoVersion = exports.getPipenvVersion = exports.getPipVersion = exports.getPythonVersion = exports.getGradleVersion = exports.getMavenVersion = exports.getJavaVersion = exports.getDotnetVersion = exports.getLanguage = void 0;
36
+ exports.getLanguage = getLanguage;
37
+ exports.getDotnetVersion = getDotnetVersion;
38
+ exports.getJavaVersion = getJavaVersion;
39
+ exports.getMavenVersion = getMavenVersion;
40
+ exports.getGradleVersion = getGradleVersion;
41
+ exports.getPythonVersion = getPythonVersion;
42
+ exports.getPipVersion = getPipVersion;
43
+ exports.getPipenvVersion = getPipenvVersion;
44
+ exports.getGoVersion = getGoVersion;
45
+ exports.getNodeVersion = getNodeVersion;
46
+ exports.getPackageVersion = getPackageVersion;
47
+ exports.collectDebugInformation = collectDebugInformation;
27
48
  // Copyright (c) HashiCorp, Inc
28
49
  // SPDX-License-Identifier: MPL-2.0
29
50
  const path = __importStar(require("path"));
@@ -45,7 +66,6 @@ function getLanguage(projectPath = process.cwd()) {
45
66
  return undefined;
46
67
  }
47
68
  }
48
- exports.getLanguage = getLanguage;
49
69
  async function getBinaryVersion(binary, versionCommand) {
50
70
  const noOp = () => { };
51
71
  try {
@@ -60,40 +80,31 @@ async function getBinaryVersion(binary, versionCommand) {
60
80
  function getDotnetVersion() {
61
81
  return getBinaryVersion("dotnet", "--version");
62
82
  }
63
- exports.getDotnetVersion = getDotnetVersion;
64
83
  function getJavaVersion() {
65
84
  return getBinaryVersion("java", "-version");
66
85
  }
67
- exports.getJavaVersion = getJavaVersion;
68
86
  function getMavenVersion() {
69
87
  return getBinaryVersion("mvn", "--version");
70
88
  }
71
- exports.getMavenVersion = getMavenVersion;
72
89
  function getGradleVersion() {
73
90
  return getBinaryVersion("gradle", "--version");
74
91
  }
75
- exports.getGradleVersion = getGradleVersion;
76
92
  async function getPythonVersion() {
77
93
  return ((await getBinaryVersion("python3", "--version")) ||
78
94
  (await getBinaryVersion("python", "--version")));
79
95
  }
80
- exports.getPythonVersion = getPythonVersion;
81
96
  function getPipVersion() {
82
97
  return getBinaryVersion("pip", "--version");
83
98
  }
84
- exports.getPipVersion = getPipVersion;
85
99
  function getPipenvVersion() {
86
100
  return getBinaryVersion("pipenv", "--version");
87
101
  }
88
- exports.getPipenvVersion = getPipenvVersion;
89
102
  function getGoVersion() {
90
103
  return getBinaryVersion("go", "version");
91
104
  }
92
- exports.getGoVersion = getGoVersion;
93
105
  function getNodeVersion() {
94
106
  return getBinaryVersion("node", "--version");
95
107
  }
96
- exports.getNodeVersion = getNodeVersion;
97
108
  async function getNodeModuleVersion(packageName) {
98
109
  // Use the presence of the pnpm lock file as a signal that
99
110
  // we should interrogate packages via pnpm instead of npm.
@@ -323,7 +334,6 @@ async function getPackageVersion(language, packageName) {
323
334
  const libVersion = await (getLibraryVersionMap[language] || noOp)(packageName);
324
335
  return libVersion !== null && libVersion !== void 0 ? libVersion : undefined;
325
336
  }
326
- exports.getPackageVersion = getPackageVersion;
327
337
  async function collectDebugInformation() {
328
338
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
329
339
  const debugOutput = {};
@@ -375,5 +385,4 @@ async function collectDebugInformation() {
375
385
  }
376
386
  return debugOutput;
377
387
  }
378
- exports.collectDebugInformation = collectDebugInformation;
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDJDQUE2QjtBQUM3Qix1Q0FBeUI7QUFDekIsdUNBQW1DO0FBQ25DLGlDQUE4QjtBQUM5QiwyQ0FBK0M7QUFDL0MsdUNBQTRDO0FBQzVDLHVDQUFvRDtBQUNwRCxxQ0FBb0U7QUFFcEUsU0FBZ0IsV0FBVyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO0lBQ3JELElBQUksQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzFCLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FDL0QsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBQUMsV0FBTSxDQUFDO1FBQ1AsaUNBQWlDO1FBQ2pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBWEQsa0NBV0M7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLE1BQWMsRUFDZCxjQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFDdkIsTUFBTSxFQUNOLENBQUMsY0FBYyxDQUFDLEVBQ2hCLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUM3RCxJQUFJLEVBQ0os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LGNBQWMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLEtBQUssR0FBRyxlQUFlLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQ0FBSSxJQUFJLENBQUM7Z0JBQzNDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxLQUFLLENBQUMsbUNBQUksSUFBSSxDQUFDO2dCQUM3QyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sTUFBTSxDQUFDLG1DQUFJLElBQUksQ0FBQztZQUNqRCxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssUUFBUTtZQUNYLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxnQkFBZ0IsRUFBRSxDQUFDLG1DQUFJLElBQUksQ0FBQztZQUMzRCxNQUFNO1FBQ1IsS0FBSyxJQUFJO1lBQ1AsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLFlBQVksRUFBRSxDQUFDLG1DQUFJLElBQUksQ0FBQztZQUNuRCxNQUFNO0lBQ1YsQ0FBQztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUF0REQsMERBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gXCIuL3V0aWxcIjtcbmltcG9ydCB7IHRlcnJhZm9ybVZlcnNpb24gfSBmcm9tIFwiLi90ZXJyYWZvcm1cIjtcbmltcG9ydCB7IERJU1BMQVlfVkVSU0lPTiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmltcG9ydCB7IHBhdGhFeGlzdHMsIHJlYWRGaWxlU3luYyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgZ2V0R3JhZGxlUGFja2FnZVZlcnNpb24sIGlzR3JhZGxlUHJvamVjdCB9IGZyb20gXCIuL2dyYWRsZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFuZ3VhZ2UocHJvamVjdFBhdGggPSBwcm9jZXNzLmN3ZCgpKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBjZGt0Zkpzb24gPSBKU09OLnBhcnNlKFxuICAgICAgcmVhZEZpbGVTeW5jKHBhdGgucmVzb2x2ZShwcm9qZWN0UGF0aCwgXCJjZGt0Zi5qc29uXCIpLCBcInV0Zi04XCIpLFxuICAgICk7XG4gICAgcmV0dXJuIGNka3RmSnNvbi5sYW5ndWFnZTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gV2UgY2FuIG5vdCBkZXRlY3QgdGhlIGxhbmd1YWdlXG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gZGV0ZWN0IGxhbmd1YWdlIGluICR7cHJvamVjdFBhdGh9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRCaW5hcnlWZXJzaW9uKFxuICBiaW5hcnk6IHN0cmluZyxcbiAgdmVyc2lvbkNvbW1hbmQ6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG5vT3AgPSAoKSA9PiB7fTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBleGVjKFxuICAgICAgYmluYXJ5LFxuICAgICAgW3ZlcnNpb25Db21tYW5kXSxcbiAgICAgIHsgZW52OiBwcm9jZXNzLmVudiwgc3RkaW86IFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgXCJpZ25vcmVcIl0gfSxcbiAgICAgIG5vT3AsXG4gICAgICBub09wLFxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdC50cmltKCkucmVwbGFjZSgvXFxyP1xcbnxcXHIvZywgXCJcIik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYEZhaWxlZCB0byBydW4gJHtiaW5hcnl9ICR7dmVyc2lvbkNvbW1hbmR9OiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RG90bmV0VmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJkb3RuZXRcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRKYXZhVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJqYXZhXCIsIFwiLXZlcnNpb25cIik7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF2ZW5WZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcIm12blwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdyYWRsZVZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiZ3JhZGxlXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHl0aG9uVmVyc2lvbigpIHtcbiAgcmV0dXJuIChcbiAgICAoYXdhaXQgZ2V0QmluYXJ5VmVyc2lvbihcInB5dGhvbjNcIiwgXCItLXZlcnNpb25cIikpIHx8XG4gICAgKGF3YWl0IGdldEJpbmFyeVZlcnNpb24oXCJweXRob25cIiwgXCItLXZlcnNpb25cIikpXG4gICk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0UGlwVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJwaXBcIiwgXCItLXZlcnNpb25cIik7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0UGlwZW52VmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJwaXBlbnZcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHb1ZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiZ29cIiwgXCJ2ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm9kZVZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwibm9kZVwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Tm9kZU1vZHVsZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAvLyBVc2UgdGhlIHByZXNlbmNlIG9mIHRoZSBwbnBtIGxvY2sgZmlsZSBhcyBhIHNpZ25hbCB0aGF0XG4gIC8vIHdlIHNob3VsZCBpbnRlcnJvZ2F0ZSBwYWNrYWdlcyB2aWEgcG5wbSBpbnN0ZWFkIG9mIG5wbS5cbiAgY29uc3QgdXNpbmdQbnBtID0gYXdhaXQgcGF0aEV4aXN0cyhcInBucG0tbG9jay55YW1sXCIpO1xuXG4gIHJldHVybiB1c2luZ1BucG1cbiAgICA/IGdldFBucG1Ob2RlTW9kdWxlVmVyc2lvbihwYWNrYWdlTmFtZSlcbiAgICA6IGdldE5wbU5vZGVNb2R1bGVWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UG5wbU5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDtcblxuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwbnBtXCIsIFtcImxpc3RcIiwgcGFja2FnZU5hbWUsIFwiLS1qc29uXCJdLCB7XG4gICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbGV0IGpzb247XG4gIHRyeSB7XG4gICAganNvbiA9IEpTT04ucGFyc2Uob3V0cHV0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gcGFyc2Ugb3V0cHV0IG9mICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKFxuICAgICFqc29uIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoanNvbikgfHxcbiAgICBqc29uLmxlbmd0aCA9PT0gMCB8fFxuICAgICFqc29uWzBdPy5kZXBlbmRlbmNpZXM/LltwYWNrYWdlTmFtZV0/LnZlcnNpb25cbiAgKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kICcke3BhY2thZ2VOYW1lfScgaW4gJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBqc29uWzBdLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0udmVyc2lvbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TnBtTm9kZU1vZHVsZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBsZXQgb3V0cHV0O1xuXG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcbiAgICAgIFwibnBtXCIsXG4gICAgICBbXCJsaXN0XCIsIHBhY2thZ2VOYW1lLCBcIi0tanNvblwiLCBcIi0taW5jbHVkZT1kZXZcIl0sXG4gICAgICB7XG4gICAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiB9LFxuICAgICAgfSxcbiAgICApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKFxuICAgICFqc29uLmRlcGVuZGVuY2llcyB8fFxuICAgICFqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0gfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb25cbiAgKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kICcke3BhY2thZ2VOYW1lfScgaW4gJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIGpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRQeXRob25QYWNrYWdlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcblxuICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicGlwZW52XCIsIFtcInJ1blwiLCBcInBpcFwiLCBcInNob3dcIiwgcGFja2FnZU5hbWVdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwaXBlbnYgcnVuIHBpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtlfWApO1xuICB9XG5cbiAgLy8gSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBvdXRwdXQgdXNpbmcgcGlwZW52LCB0cnkgdG8gZ2V0IGl0IHVzaW5nIHBpcCBkaXJlY3RseVxuICBpZiAoIW91dHB1dCkge1xuICAgIHRyeSB7XG4gICAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicGlwXCIsIFtcInNob3dcIiwgXCItcXFcIiwgcGFja2FnZU5hbWVdLCB7XG4gICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICB9KTtcblxuICAgICAgLy8gUnVubmluZyB3aXRoIGAtcXFgIHN1cHByZXNzZXMgYm90aCBtaXNzaW5nIHBhY2thZ2VzIGFuZCBhY3R1YWwgcGFja2FnZVxuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIW91dHB1dCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uSW5mbyA9IG91dHB1dFxuICAgIC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLnN0YXJ0c1dpdGgoXCJWZXJzaW9uOlwiKSk7XG5cbiAgaWYgKCF2ZXJzaW9uSW5mbykge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGluIG91dHB1dCBvZiAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfScgLyAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uSW5mby5zcGxpdChcIjpcIilbMV0udHJpbSgpO1xuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuLy8gT25jZSBodHRwczovL2dpdGh1Yi5jb20vTnVHZXQvSG9tZS9pc3N1ZXMvNzc1MiBnZXRzIHJlc29sdmVkIHdlIGNhbiBhbHNvIHRyeSB3aXRoIC0tanNvblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q1NoYXJwUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcIkFtYXpvbi5KU0lJLlJ1bnRpbWVcIixcbiAgICBjb25zdHJ1Y3RzOiBcIkNvbnN0cnVjdHNcIixcbiAgICBjZGt0ZjogXCJIYXNoaUNvcnAuQ2RrdGZcIixcbiAgICBjZGt0bjogXCJJby5DZGt0blwiLFxuICB9O1xuICBjb25zdCBjU2hhcnBQYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcblxuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJkb3RuZXRcIiwgW1wibGlzdFwiLCBcInBhY2thZ2VcIiwgXCItLWluY2x1ZGUtdHJhbnNpdGl2ZVwiXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gcnVuICdkb3RuZXQgbGlzdCBwYWNrYWdlIC0taW5jbHVkZS10cmFuc2l0aXZlJzogJHtlfWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkxpbmUgPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgPiAke2NTaGFycFBhY2thZ2VOYW1lfWApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2NTaGFycFBhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdkb3RuZXQgbGlzdCBwYWNrYWdlIC0taW5jbHVkZS10cmFuc2l0aXZlJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBBIGxpbmUgbWlnaHQgbG9vayBsaWtlIHRoaXM6XG4gIC8vICAgVHJhbnNpdGl2ZSBQYWNrYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc29sdmVkXG4gIC8vICAgPiBBbWF6b24uSlNJSS5SdW50aW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTcuMVxuICAvLyBUaGVyZWZvcmUgd2UgcmV2ZXJzZSBzcGxpdCBieSB3aGl0ZXNwYWNlIGFuZCByZXZlcnNlXG4gIC8vIHNvIHRoYXQgdGhlIGZpcnN0IHRoaW5nIHdlIGZpbmQgaXMgdGhlIHZlcnNpb24gbnVtYmVyXG4gIHJldHVybiB2ZXJzaW9uTGluZVxuICAgIC5zcGxpdChcIiBcIilcbiAgICAucmV2ZXJzZSgpXG4gICAgLmZpbmQoKHBhcnQpID0+IHBhcnQgIT09IFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRHb1BhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWUtZ29cIixcbiAgICBjZGt0ZjogXCJnaXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tY2RrLWdvXCIsXG4gICAgY2RrdG46IFwiZ2l0aHViLmNvbS9vcGVuLWNvbnN0cnVjdHMvY2RrLXRlcnJhaW4tZ29cIixcbiAgfTtcbiAgY29uc3QgZ29QYWNrYWdlTmFtZSA9IHRyYW5zbGF0aW9uTWFwW3BhY2thZ2VOYW1lXSB8fCBwYWNrYWdlTmFtZTtcblxuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJnb1wiLCBbXCJsaXN0XCIsIFwiLW1cIiwgXCJhbGxcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ2dvIGxpc3QgLW0gYWxsJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQgdmVyc2lvbkxpbmUgPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhnb1BhY2thZ2VOYW1lKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdnbyBsaXN0IC1tIGFsbCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gV2UgYXJlIGRlYWxpbmcgd2l0aCBhIGxvY2FsIHZlcnNpb25cbiAgaWYgKHZlcnNpb25MaW5lLmluY2x1ZGVzKFwiPT5cIikpIHtcbiAgICBsb2dnZXIuZGVidWcoYEZvdW5kIGxvY2FsIHZlcnNpb24gZm9yICcke2dvUGFja2FnZU5hbWV9JzogJHt2ZXJzaW9uTGluZX1gKTtcbiAgICB2ZXJzaW9uTGluZSA9IHZlcnNpb25MaW5lLnNwbGl0KFwiPT5cIilbMF0udHJpbSgpO1xuICB9XG5cbiAgcmV0dXJuIHZlcnNpb25MaW5lLnNwbGl0KFwiIFwiKS5wb3AoKT8ucmVwbGFjZShcInZcIiwgXCJcIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE1hdmVuUGFja2FnZVZlcnNpb24ocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBjb25zdCB0cmFuc2xhdGlvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBqc2lpOiBcImpzaWktcnVudGltZVwiLFxuICB9O1xuICBjb25zdCBqYXZhUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwibXZuXCIsIFtcImRlcGVuZGVuY3k6bGlzdFwiXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcmVzb2x1dGlvblBhcnQgPSBvdXRwdXQuc3BsaXQoXG4gICAgXCJUaGUgZm9sbG93aW5nIGZpbGVzIGhhdmUgYmVlbiByZXNvbHZlZFwiLFxuICApWzFdO1xuICBpZiAoIXJlc29sdXRpb25QYXJ0KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHJlc29sdXRpb24gcGFzc2FnZSBpbiBvdXRwdXQgb2YgJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIG5lZWQgdG8gc2VhcmNoIGZvciB0aGUgcGFja2FnZSBuYW1lIEFORCBhIGNvbG9uIHRvIG5vdCBtYXRjaCBhIGxpbmUgbGlrZVxuICAvLyBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0Zi1wcm92aWRlci1hd3M6amFyOjkuMC45OmNvbXBpbGVcbiAgLy8gd2hlbiBsb29raW5nIGZvciB0aGUgY2RrdGYgcGFja2FnZSAoc2VlIEdpdGh1YiBpc3N1ZSAjMTk5NClcbiAgY29uc3QgdmVyc2lvbkxpbmUgPSByZXNvbHV0aW9uUGFydFxuICAgIC5zcGxpdCgvXFxyXFxufFxccnxcXG4vKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKGAke2phdmFQYWNrYWdlTmFtZX06YCkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7amF2YVBhY2thZ2VOYW1lfScgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBFeGFtcGxlIGxpbmU6IFtJTkZPXSAgICBjb20uaGFzaGljb3JwOmNka3RmOmphcjowLjAuMDpjb21waWxlXG4gIGNvbnN0IHZlcnNpb25TdGFydERlbGltaXRlciA9IGAke2phdmFQYWNrYWdlTmFtZX06amFyOmA7XG4gIGNvbnN0IHZlcnNpb25TdGFydCA9XG4gICAgdmVyc2lvbkxpbmUuaW5kZXhPZih2ZXJzaW9uU3RhcnREZWxpbWl0ZXIpICsgdmVyc2lvblN0YXJ0RGVsaW1pdGVyLmxlbmd0aDtcbiAgY29uc3QgdmVyc2lvbkVuZERlbGVtaXRlciA9IFwiOmNvbXBpbGVcIjtcbiAgY29uc3QgdmVyc2lvbkVuZCA9IHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvbkVuZERlbGVtaXRlcik7XG4gIHJldHVybiB2ZXJzaW9uTGluZS5zdWJzdHJpbmcodmVyc2lvblN0YXJ0LCB2ZXJzaW9uRW5kKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0SmF2YVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKGlzR3JhZGxlUHJvamVjdChcIi4vXCIpKSB7XG4gICAgcmV0dXJuIGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbiAgfVxuXG4gIHJldHVybiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBhY2thZ2VWZXJzaW9uKFxuICBsYW5ndWFnZTogc3RyaW5nLFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgbm9PcCA9IGFzeW5jICgpID0+IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2V0TGlicmFyeVZlcnNpb25NYXA6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKG5hbWU6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+XG4gID4gPSB7XG4gICAgdHlwZXNjcmlwdDogZ2V0Tm9kZU1vZHVsZVZlcnNpb24sXG4gICAgcHl0aG9uOiBnZXRQeXRob25QYWNrYWdlVmVyc2lvbixcbiAgICBnbzogZ2V0R29QYWNrYWdlVmVyc2lvbixcbiAgICBjc2hhcnA6IGdldENTaGFycFBhY2thZ2VWZXJzaW9uLFxuICAgIGphdmE6IGdldEphdmFQYWNrYWdlVmVyc2lvbixcbiAgfTtcblxuICBjb25zdCBsaWJWZXJzaW9uID0gYXdhaXQgKGdldExpYnJhcnlWZXJzaW9uTWFwW2xhbmd1YWdlXSB8fCBub09wKShcbiAgICBwYWNrYWdlTmFtZSxcbiAgKTtcbiAgcmV0dXJuIGxpYlZlcnNpb24gPz8gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdERlYnVnSW5mb3JtYXRpb24oKSB7XG4gIGNvbnN0IGRlYnVnT3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPiA9IHt9O1xuICBjb25zdCBsYW5ndWFnZSA9IGdldExhbmd1YWdlKCk7XG4gIGRlYnVnT3V0cHV0W1wibGFuZ3VhZ2VcIl0gPSBsYW5ndWFnZSA/PyBudWxsO1xuICBkZWJ1Z091dHB1dFtcImNka3RuLWNsaVwiXSA9IERJU1BMQVlfVkVSU0lPTjtcblxuICBjb25zdCBub2RlID0gZ2V0Tm9kZVZlcnNpb24oKTtcblxuICBkZWJ1Z091dHB1dFtcIm5vZGVcIl0gPSAoYXdhaXQgbm9kZSkgPz8gbnVsbDtcbiAgaWYgKGxhbmd1YWdlKSB7XG4gICAgY29uc3QgY2RrdG4gPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0blwiKTtcbiAgICBjb25zdCBjZGt0ZiA9IGdldFBhY2thZ2VWZXJzaW9uKGxhbmd1YWdlLCBcImNka3RmXCIpO1xuICAgIGNvbnN0IGNvbnN0cnVjdHMgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjb25zdHJ1Y3RzXCIpO1xuICAgIGNvbnN0IGpzaWkgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJqc2lpXCIpO1xuXG4gICAgZGVidWdPdXRwdXRbXCJjZGt0blwiXSA9IChhd2FpdCBjZGt0bikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNka3RmXCJdID0gKGF3YWl0IGNka3RmKSA/PyBudWxsO1xuICAgIGRlYnVnT3V0cHV0W1wiY29uc3RydWN0c1wiXSA9IChhd2FpdCBjb25zdHJ1Y3RzKSA/PyBudWxsO1xuICAgIGRlYnVnT3V0cHV0W1wianNpaVwiXSA9IChhd2FpdCBqc2lpKSA/PyBudWxsO1xuICB9XG4gIGRlYnVnT3V0cHV0W1widGVycmFmb3JtXCJdID0gYXdhaXQgdGVycmFmb3JtVmVyc2lvbjtcbiAgZGVidWdPdXRwdXRbXCJhcmNoXCJdID0gb3MuYXJjaCgpO1xuICBkZWJ1Z091dHB1dFtcIm9zXCJdID0gYCR7b3MucGxhdGZvcm0oKX0gJHtvcy5yZWxlYXNlKCl9YDtcblxuICBzd2l0Y2ggKGxhbmd1YWdlKSB7XG4gICAgY2FzZSBcInB5dGhvblwiOlxuICAgICAge1xuICAgICAgICBjb25zdCBweXRob24gPSBnZXRQeXRob25WZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcCA9IGdldFBpcFZlcnNpb24oKTtcbiAgICAgICAgY29uc3QgcGlwZW52ID0gZ2V0UGlwZW52VmVyc2lvbigpO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInB5dGhvblwiXSA9IChhd2FpdCBweXRob24pID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwXCJdID0gKGF3YWl0IHBpcCkgPz8gbnVsbDtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJwaXBlbnZcIl0gPSAoYXdhaXQgcGlwZW52KSA/PyBudWxsO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImphdmFcIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgamF2YSA9IGdldEphdmFWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IG1hdmVuID0gZ2V0TWF2ZW5WZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IGdyYWRsZSA9IGdldEdyYWRsZVZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJqYXZhXCJdID0gKGF3YWl0IGphdmEpID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wibWF2ZW5cIl0gPSAoYXdhaXQgbWF2ZW4pID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiZ3JhZGxlXCJdID0gKGF3YWl0IGdyYWRsZSkgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJjc2hhcnBcIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZG90bmV0XCJdID0gKGF3YWl0IGdldERvdG5ldFZlcnNpb24oKSkgPz8gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJnb1wiOlxuICAgICAgZGVidWdPdXRwdXRbXCJnb1wiXSA9IChhd2FpdCBnZXRHb1ZlcnNpb24oKSkgPz8gbnVsbDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGRlYnVnT3V0cHV0O1xufVxuIl19
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSxrQ0FXQztBQXNCRCw0Q0FFQztBQUVELHdDQUVDO0FBQ0QsMENBRUM7QUFFRCw0Q0FFQztBQUVELDRDQUtDO0FBQ0Qsc0NBRUM7QUFDRCw0Q0FFQztBQUVELG9DQUVDO0FBRUQsd0NBRUM7QUE4UkQsOENBb0JDO0FBRUQsMERBc0RDO0FBeGJELCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qix1Q0FBbUM7QUFDbkMsaUNBQThCO0FBQzlCLDJDQUErQztBQUMvQyx1Q0FBNEM7QUFDNUMsdUNBQW9EO0FBQ3BELHFDQUFvRTtBQUVwRSxTQUFnQixXQUFXLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7SUFDckQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDMUIsSUFBQSx1QkFBWSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUMvRCxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDUCxpQ0FBaUM7UUFDakMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLE1BQWMsRUFDZCxjQUFzQjtJQUV0QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLFdBQUksRUFD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QUM7Z0JBQ0MsTUFBTSxJQUFJLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sS0FBSyxHQUFHLGVBQWUsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNsQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sSUFBSSxDQUFDLG1DQUFJLElBQUksQ0FBQztnQkFDM0MsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxtQ0FBSSxJQUFJLENBQUM7Z0JBQzdDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFBLENBQUMsTUFBTSxNQUFNLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQ2pELENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxRQUFRO1lBQ1gsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBQyxNQUFNLGdCQUFnQixFQUFFLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQzNELE1BQU07UUFDUixLQUFLLElBQUk7WUFDUCxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxDQUFDLE1BQU0sWUFBWSxFQUFFLENBQUMsbUNBQUksSUFBSSxDQUFDO1lBQ25ELE1BQU07SUFDVixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBvcyBmcm9tIFwib3NcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGV4ZWMgfSBmcm9tIFwiLi91dGlsXCI7XG5pbXBvcnQgeyB0ZXJyYWZvcm1WZXJzaW9uIH0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBESVNQTEFZX1ZFUlNJT04gfSBmcm9tIFwiLi92ZXJzaW9uXCI7XG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZVN5bmMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCB7IGdldEdyYWRsZVBhY2thZ2VWZXJzaW9uLCBpc0dyYWRsZVByb2plY3QgfSBmcm9tIFwiLi9ncmFkbGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlKHByb2plY3RQYXRoID0gcHJvY2Vzcy5jd2QoKSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgY29uc3QgY2RrdGZKc29uID0gSlNPTi5wYXJzZShcbiAgICAgIHJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUocHJvamVjdFBhdGgsIFwiY2RrdGYuanNvblwiKSwgXCJ1dGYtOFwiKSxcbiAgICApO1xuICAgIHJldHVybiBjZGt0Zkpzb24ubGFuZ3VhZ2U7XG4gIH0gY2F0Y2gge1xuICAgIC8vIFdlIGNhbiBub3QgZGV0ZWN0IHRoZSBsYW5ndWFnZVxuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIGRldGVjdCBsYW5ndWFnZSBpbiAke3Byb2plY3RQYXRofWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0QmluYXJ5VmVyc2lvbihcbiAgYmluYXJ5OiBzdHJpbmcsXG4gIHZlcnNpb25Db21tYW5kOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBub09wID0gKCkgPT4ge307XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyhcbiAgICAgIGJpbmFyeSxcbiAgICAgIFt2ZXJzaW9uQ29tbWFuZF0sXG4gICAgICB7IGVudjogcHJvY2Vzcy5lbnYsIHN0ZGlvOiBbdW5kZWZpbmVkLCB1bmRlZmluZWQsIFwiaWdub3JlXCJdIH0sXG4gICAgICBub09wLFxuICAgICAgbm9PcCxcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQudHJpbSgpLnJlcGxhY2UoL1xccj9cXG58XFxyL2csIFwiXCIpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgdG8gcnVuICR7YmluYXJ5fSAke3ZlcnNpb25Db21tYW5kfTogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERvdG5ldFZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiZG90bmV0XCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SmF2YVZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwiamF2YVwiLCBcIi12ZXJzaW9uXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1hdmVuVmVyc2lvbigpIHtcbiAgcmV0dXJuIGdldEJpbmFyeVZlcnNpb24oXCJtdm5cIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHcmFkbGVWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImdyYWRsZVwiLCBcIi0tdmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFB5dGhvblZlcnNpb24oKSB7XG4gIHJldHVybiAoXG4gICAgKGF3YWl0IGdldEJpbmFyeVZlcnNpb24oXCJweXRob24zXCIsIFwiLS12ZXJzaW9uXCIpKSB8fFxuICAgIChhd2FpdCBnZXRCaW5hcnlWZXJzaW9uKFwicHl0aG9uXCIsIFwiLS12ZXJzaW9uXCIpKVxuICApO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcFZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwicGlwXCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBpcGVudlZlcnNpb24oKSB7XG4gIHJldHVybiBnZXRCaW5hcnlWZXJzaW9uKFwicGlwZW52XCIsIFwiLS12ZXJzaW9uXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R29WZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcImdvXCIsIFwidmVyc2lvblwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVWZXJzaW9uKCkge1xuICByZXR1cm4gZ2V0QmluYXJ5VmVyc2lvbihcIm5vZGVcIiwgXCItLXZlcnNpb25cIik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgLy8gVXNlIHRoZSBwcmVzZW5jZSBvZiB0aGUgcG5wbSBsb2NrIGZpbGUgYXMgYSBzaWduYWwgdGhhdFxuICAvLyB3ZSBzaG91bGQgaW50ZXJyb2dhdGUgcGFja2FnZXMgdmlhIHBucG0gaW5zdGVhZCBvZiBucG0uXG4gIGNvbnN0IHVzaW5nUG5wbSA9IGF3YWl0IHBhdGhFeGlzdHMoXCJwbnBtLWxvY2sueWFtbFwiKTtcblxuICByZXR1cm4gdXNpbmdQbnBtXG4gICAgPyBnZXRQbnBtTm9kZU1vZHVsZVZlcnNpb24ocGFja2FnZU5hbWUpXG4gICAgOiBnZXROcG1Ob2RlTW9kdWxlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFBucG1Ob2RlTW9kdWxlVmVyc2lvbihcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGxldCBvdXRwdXQ7XG5cbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwicG5wbVwiLCBbXCJsaXN0XCIsIHBhY2thZ2VOYW1lLCBcIi0tanNvblwiXSwge1xuICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52IH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ3BucG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGxldCBqc29uO1xuICB0cnkge1xuICAgIGpzb24gPSBKU09OLnBhcnNlKG91dHB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHBhcnNlIG91dHB1dCBvZiAncG5wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbiB8fFxuICAgICFBcnJheS5pc0FycmF5KGpzb24pIHx8XG4gICAganNvbi5sZW5ndGggPT09IDAgfHxcbiAgICAhanNvblswXT8uZGVwZW5kZW5jaWVzPy5bcGFja2FnZU5hbWVdPy52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICdwbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4ganNvblswXS5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdLnZlcnNpb247XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldE5wbU5vZGVNb2R1bGVWZXJzaW9uKFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDtcblxuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXG4gICAgICBcIm5wbVwiLFxuICAgICAgW1wibGlzdFwiLCBwYWNrYWdlTmFtZSwgXCItLWpzb25cIiwgXCItLWluY2x1ZGU9ZGV2XCJdLFxuICAgICAge1xuICAgICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYgfSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAnbnBtIGxpc3QgJHtwYWNrYWdlTmFtZX0gLS1qc29uJzogJHtlfWApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBsZXQganNvbjtcbiAgdHJ5IHtcbiAgICBqc29uID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBwYXJzZSBvdXRwdXQgb2YgJ25wbSBsaXN0ICR7cGFja2FnZU5hbWV9IC0tanNvbic6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChcbiAgICAhanNvbi5kZXBlbmRlbmNpZXMgfHxcbiAgICAhanNvbi5kZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdIHx8XG4gICAgIWpzb24uZGVwZW5kZW5jaWVzW3BhY2thZ2VOYW1lXS52ZXJzaW9uXG4gICkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCAnJHtwYWNrYWdlTmFtZX0nIGluICducG0gbGlzdCAke3BhY2thZ2VOYW1lfSAtLWpzb24nOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBqc29uLmRlcGVuZGVuY2llc1twYWNrYWdlTmFtZV0udmVyc2lvbjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24oXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4pOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICBsZXQgb3V0cHV0O1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBlbnZcIiwgW1wicnVuXCIsIFwicGlwXCIsIFwic2hvd1wiLCBcIi1xcVwiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG5cbiAgICAvLyBSdW5uaW5nIHdpdGggYC1xcWAgc3VwcHJlc3NlcyBib3RoIG1pc3NpbmcgcGFja2FnZXMgYW5kIGFjdHVhbCBwYWNrYWdlXG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcGVudlwiLCBbXCJydW5cIiwgXCJwaXBcIiwgXCJzaG93XCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwZW52IHJ1biBwaXAgc2hvdyAke3BhY2thZ2VOYW1lfSc6ICR7ZX1gKTtcbiAgfVxuXG4gIC8vIElmIHdlIGNvdWxkbid0IGdldCB0aGUgb3V0cHV0IHVzaW5nIHBpcGVudiwgdHJ5IHRvIGdldCBpdCB1c2luZyBwaXAgZGlyZWN0bHlcbiAgaWYgKCFvdXRwdXQpIHtcbiAgICB0cnkge1xuICAgICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcInBpcFwiLCBbXCJzaG93XCIsIFwiLXFxXCIsIHBhY2thZ2VOYW1lXSwge1xuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFJ1bm5pbmcgd2l0aCBgLXFxYCBzdXBwcmVzc2VzIGJvdGggbWlzc2luZyBwYWNrYWdlcyBhbmQgYWN0dWFsIHBhY2thZ2VcbiAgICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoXCJwaXBcIiwgW1wic2hvd1wiLCBwYWNrYWdlTmFtZV0sIHtcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgVW5hYmxlIHRvIHJ1biAncGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nOiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFvdXRwdXQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgdmVyc2lvbkluZm8gPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5zdGFydHNXaXRoKFwiVmVyc2lvbjpcIikpO1xuXG4gIGlmICghdmVyc2lvbkluZm8pIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBpbiBvdXRwdXQgb2YgJ3BpcGVudiBydW4gcGlwIHNob3cgJHtwYWNrYWdlTmFtZX0nIC8gJ3BpcCBzaG93ICR7cGFja2FnZU5hbWV9JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB2ZXJzaW9uID0gdmVyc2lvbkluZm8uc3BsaXQoXCI6XCIpWzFdLnRyaW0oKTtcbiAgcmV0dXJuIHZlcnNpb247XG59XG5cbi8vIE9uY2UgaHR0cHM6Ly9naXRodWIuY29tL051R2V0L0hvbWUvaXNzdWVzLzc3NTIgZ2V0cyByZXNvbHZlZCB3ZSBjYW4gYWxzbyB0cnkgd2l0aCAtLWpzb25cbmFzeW5jIGZ1bmN0aW9uIGdldENTaGFycFBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJBbWF6b24uSlNJSS5SdW50aW1lXCIsXG4gICAgY29uc3RydWN0czogXCJDb25zdHJ1Y3RzXCIsXG4gICAgY2RrdGY6IFwiSGFzaGlDb3JwLkNka3RmXCIsXG4gICAgY2RrdG46IFwiSW8uQ2RrdG5cIixcbiAgfTtcbiAgY29uc3QgY1NoYXJwUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZG90bmV0XCIsIFtcImxpc3RcIiwgXCJwYWNrYWdlXCIsIFwiLS1pbmNsdWRlLXRyYW5zaXRpdmVcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIHJ1biAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7ZX1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoYD4gJHtjU2hhcnBQYWNrYWdlTmFtZX1gKSk7XG5cbiAgaWYgKCF2ZXJzaW9uTGluZSkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCB2ZXJzaW9uIGZvciAnJHtjU2hhcnBQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZG90bmV0IGxpc3QgcGFja2FnZSAtLWluY2x1ZGUtdHJhbnNpdGl2ZSc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gQSBsaW5lIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOlxuICAvLyAgIFRyYW5zaXRpdmUgUGFja2FnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvbHZlZFxuICAvLyAgID4gQW1hem9uLkpTSUkuUnVudGltZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjE3LjFcbiAgLy8gVGhlcmVmb3JlIHdlIHJldmVyc2Ugc3BsaXQgYnkgd2hpdGVzcGFjZSBhbmQgcmV2ZXJzZVxuICAvLyBzbyB0aGF0IHRoZSBmaXJzdCB0aGluZyB3ZSBmaW5kIGlzIHRoZSB2ZXJzaW9uIG51bWJlclxuICByZXR1cm4gdmVyc2lvbkxpbmVcbiAgICAuc3BsaXQoXCIgXCIpXG4gICAgLnJldmVyc2UoKVxuICAgIC5maW5kKChwYXJ0KSA9PiBwYXJ0ICE9PSBcIlwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0R29QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGpzaWk6IFwianNpaS1ydW50aW1lLWdvXCIsXG4gICAgY2RrdGY6IFwiZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLWNkay1nb1wiLFxuICAgIGNka3RuOiBcImdpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluLWdvXCIsXG4gIH07XG4gIGNvbnN0IGdvUGFja2FnZU5hbWUgPSB0cmFuc2xhdGlvbk1hcFtwYWNrYWdlTmFtZV0gfHwgcGFja2FnZU5hbWU7XG5cbiAgbGV0IG91dHB1dDtcbiAgdHJ5IHtcbiAgICBvdXRwdXQgPSBhd2FpdCBleGVjKFwiZ29cIiwgW1wibGlzdFwiLCBcIi1tXCIsIFwiYWxsXCJdLCB7XG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBVbmFibGUgdG8gcnVuICdnbyBsaXN0IC1tIGFsbCc6ICR7ZX1gKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgbGV0IHZlcnNpb25MaW5lID0gb3V0cHV0XG4gICAgLnNwbGl0KC9cXHJcXG58XFxyfFxcbi8pXG4gICAgLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoZ29QYWNrYWdlTmFtZSkpO1xuXG4gIGlmICghdmVyc2lvbkxpbmUpIHtcbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgdmVyc2lvbiBmb3IgJyR7Z29QYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnZ28gbGlzdCAtbSBhbGwnOiAke291dHB1dH1gLFxuICAgICk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIFdlIGFyZSBkZWFsaW5nIHdpdGggYSBsb2NhbCB2ZXJzaW9uXG4gIGlmICh2ZXJzaW9uTGluZS5pbmNsdWRlcyhcIj0+XCIpKSB7XG4gICAgbG9nZ2VyLmRlYnVnKGBGb3VuZCBsb2NhbCB2ZXJzaW9uIGZvciAnJHtnb1BhY2thZ2VOYW1lfSc6ICR7dmVyc2lvbkxpbmV9YCk7XG4gICAgdmVyc2lvbkxpbmUgPSB2ZXJzaW9uTGluZS5zcGxpdChcIj0+XCIpWzBdLnRyaW0oKTtcbiAgfVxuXG4gIHJldHVybiB2ZXJzaW9uTGluZS5zcGxpdChcIiBcIikucG9wKCk/LnJlcGxhY2UoXCJ2XCIsIFwiXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRNYXZlblBhY2thZ2VWZXJzaW9uKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAganNpaTogXCJqc2lpLXJ1bnRpbWVcIixcbiAgfTtcbiAgY29uc3QgamF2YVBhY2thZ2VOYW1lID0gdHJhbnNsYXRpb25NYXBbcGFja2FnZU5hbWVdIHx8IHBhY2thZ2VOYW1lO1xuXG4gIGxldCBvdXRwdXQ7XG4gIHRyeSB7XG4gICAgb3V0cHV0ID0gYXdhaXQgZXhlYyhcIm12blwiLCBbXCJkZXBlbmRlbmN5Omxpc3RcIl0sIHtcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZGVidWcoYFVuYWJsZSB0byBydW4gJ212biBkZXBlbmRlbmN5Omxpc3QnOiAke2V9YCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHJlc29sdXRpb25QYXJ0ID0gb3V0cHV0LnNwbGl0KFxuICAgIFwiVGhlIGZvbGxvd2luZyBmaWxlcyBoYXZlIGJlZW4gcmVzb2x2ZWRcIixcbiAgKVsxXTtcbiAgaWYgKCFyZXNvbHV0aW9uUGFydCkge1xuICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgIGBVbmFibGUgdG8gZmluZCByZXNvbHV0aW9uIHBhc3NhZ2UgaW4gb3V0cHV0IG9mICdtdm4gZGVwZW5kZW5jeTpsaXN0JzogJHtvdXRwdXR9YCxcbiAgICApO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIHBhY2thZ2UgbmFtZSBBTkQgYSBjb2xvbiB0byBub3QgbWF0Y2ggYSBsaW5lIGxpa2VcbiAgLy8gW0lORk9dICAgIGNvbS5oYXNoaWNvcnA6Y2RrdGYtcHJvdmlkZXItYXdzOmphcjo5LjAuOTpjb21waWxlXG4gIC8vIHdoZW4gbG9va2luZyBmb3IgdGhlIGNka3RmIHBhY2thZ2UgKHNlZSBHaXRodWIgaXNzdWUgIzE5OTQpXG4gIGNvbnN0IHZlcnNpb25MaW5lID0gcmVzb2x1dGlvblBhcnRcbiAgICAuc3BsaXQoL1xcclxcbnxcXHJ8XFxuLylcbiAgICAuZmluZCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgJHtqYXZhUGFja2FnZU5hbWV9OmApKTtcblxuICBpZiAoIXZlcnNpb25MaW5lKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgYFVuYWJsZSB0byBmaW5kIHZlcnNpb24gZm9yICcke2phdmFQYWNrYWdlTmFtZX0nIGluIG91dHB1dCBvZiAnbXZuIGRlcGVuZGVuY3k6bGlzdCc6ICR7b3V0cHV0fWAsXG4gICAgKTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gRXhhbXBsZSBsaW5lOiBbSU5GT10gICAgY29tLmhhc2hpY29ycDpjZGt0ZjpqYXI6MC4wLjA6Y29tcGlsZVxuICBjb25zdCB2ZXJzaW9uU3RhcnREZWxpbWl0ZXIgPSBgJHtqYXZhUGFja2FnZU5hbWV9OmphcjpgO1xuICBjb25zdCB2ZXJzaW9uU3RhcnQgPVxuICAgIHZlcnNpb25MaW5lLmluZGV4T2YodmVyc2lvblN0YXJ0RGVsaW1pdGVyKSArIHZlcnNpb25TdGFydERlbGltaXRlci5sZW5ndGg7XG4gIGNvbnN0IHZlcnNpb25FbmREZWxlbWl0ZXIgPSBcIjpjb21waWxlXCI7XG4gIGNvbnN0IHZlcnNpb25FbmQgPSB2ZXJzaW9uTGluZS5pbmRleE9mKHZlcnNpb25FbmREZWxlbWl0ZXIpO1xuICByZXR1cm4gdmVyc2lvbkxpbmUuc3Vic3RyaW5nKHZlcnNpb25TdGFydCwgdmVyc2lvbkVuZCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEphdmFQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGlmIChpc0dyYWRsZVByb2plY3QoXCIuL1wiKSkge1xuICAgIHJldHVybiBnZXRHcmFkbGVQYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gZ2V0TWF2ZW5QYWNrYWdlVmVyc2lvbihwYWNrYWdlTmFtZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQYWNrYWdlVmVyc2lvbihcbiAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IG5vT3AgPSBhc3luYyAoKSA9PiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldExpYnJhcnlWZXJzaW9uTWFwOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChuYW1lOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPlxuICA+ID0ge1xuICAgIHR5cGVzY3JpcHQ6IGdldE5vZGVNb2R1bGVWZXJzaW9uLFxuICAgIHB5dGhvbjogZ2V0UHl0aG9uUGFja2FnZVZlcnNpb24sXG4gICAgZ286IGdldEdvUGFja2FnZVZlcnNpb24sXG4gICAgY3NoYXJwOiBnZXRDU2hhcnBQYWNrYWdlVmVyc2lvbixcbiAgICBqYXZhOiBnZXRKYXZhUGFja2FnZVZlcnNpb24sXG4gIH07XG5cbiAgY29uc3QgbGliVmVyc2lvbiA9IGF3YWl0IChnZXRMaWJyYXJ5VmVyc2lvbk1hcFtsYW5ndWFnZV0gfHwgbm9PcCkoXG4gICAgcGFja2FnZU5hbWUsXG4gICk7XG4gIHJldHVybiBsaWJWZXJzaW9uID8/IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkge1xuICBjb25zdCBkZWJ1Z091dHB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVsbD4gPSB7fTtcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSgpO1xuICBkZWJ1Z091dHB1dFtcImxhbmd1YWdlXCJdID0gbGFuZ3VhZ2UgPz8gbnVsbDtcbiAgZGVidWdPdXRwdXRbXCJjZGt0bi1jbGlcIl0gPSBESVNQTEFZX1ZFUlNJT047XG5cbiAgY29uc3Qgbm9kZSA9IGdldE5vZGVWZXJzaW9uKCk7XG5cbiAgZGVidWdPdXRwdXRbXCJub2RlXCJdID0gKGF3YWl0IG5vZGUpID8/IG51bGw7XG4gIGlmIChsYW5ndWFnZSkge1xuICAgIGNvbnN0IGNka3RuID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY2RrdG5cIik7XG4gICAgY29uc3QgY2RrdGYgPSBnZXRQYWNrYWdlVmVyc2lvbihsYW5ndWFnZSwgXCJjZGt0ZlwiKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RzID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwiY29uc3RydWN0c1wiKTtcbiAgICBjb25zdCBqc2lpID0gZ2V0UGFja2FnZVZlcnNpb24obGFuZ3VhZ2UsIFwianNpaVwiKTtcblxuICAgIGRlYnVnT3V0cHV0W1wiY2RrdG5cIl0gPSAoYXdhaXQgY2RrdG4pID8/IG51bGw7XG4gICAgZGVidWdPdXRwdXRbXCJjZGt0ZlwiXSA9IChhd2FpdCBjZGt0ZikgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImNvbnN0cnVjdHNcIl0gPSAoYXdhaXQgY29uc3RydWN0cykgPz8gbnVsbDtcbiAgICBkZWJ1Z091dHB1dFtcImpzaWlcIl0gPSAoYXdhaXQganNpaSkgPz8gbnVsbDtcbiAgfVxuICBkZWJ1Z091dHB1dFtcInRlcnJhZm9ybVwiXSA9IGF3YWl0IHRlcnJhZm9ybVZlcnNpb247XG4gIGRlYnVnT3V0cHV0W1wiYXJjaFwiXSA9IG9zLmFyY2goKTtcbiAgZGVidWdPdXRwdXRbXCJvc1wiXSA9IGAke29zLnBsYXRmb3JtKCl9ICR7b3MucmVsZWFzZSgpfWA7XG5cbiAgc3dpdGNoIChsYW5ndWFnZSkge1xuICAgIGNhc2UgXCJweXRob25cIjpcbiAgICAgIHtcbiAgICAgICAgY29uc3QgcHl0aG9uID0gZ2V0UHl0aG9uVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBwaXAgPSBnZXRQaXBWZXJzaW9uKCk7XG4gICAgICAgIGNvbnN0IHBpcGVudiA9IGdldFBpcGVudlZlcnNpb24oKTtcbiAgICAgICAgZGVidWdPdXRwdXRbXCJweXRob25cIl0gPSAoYXdhaXQgcHl0aG9uKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcInBpcFwiXSA9IChhd2FpdCBwaXApID8/IG51bGw7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wicGlwZW52XCJdID0gKGF3YWl0IHBpcGVudikgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgXCJqYXZhXCI6XG4gICAgICB7XG4gICAgICAgIGNvbnN0IGphdmEgPSBnZXRKYXZhVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBtYXZlbiA9IGdldE1hdmVuVmVyc2lvbigpO1xuICAgICAgICBjb25zdCBncmFkbGUgPSBnZXRHcmFkbGVWZXJzaW9uKCk7XG4gICAgICAgIGRlYnVnT3V0cHV0W1wiamF2YVwiXSA9IChhd2FpdCBqYXZhKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcIm1hdmVuXCJdID0gKGF3YWl0IG1hdmVuKSA/PyBudWxsO1xuICAgICAgICBkZWJ1Z091dHB1dFtcImdyYWRsZVwiXSA9IChhd2FpdCBncmFkbGUpID8/IG51bGw7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiY3NoYXJwXCI6XG4gICAgICBkZWJ1Z091dHB1dFtcImRvdG5ldFwiXSA9IChhd2FpdCBnZXREb3RuZXRWZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFwiZ29cIjpcbiAgICAgIGRlYnVnT3V0cHV0W1wiZ29cIl0gPSAoYXdhaXQgZ2V0R29WZXJzaW9uKCkpID8/IG51bGw7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBkZWJ1Z091dHB1dDtcbn1cbiJdfQ==
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  // Copyright (c) HashiCorp, Inc
27
37
  // SPDX-License-Identifier: MPL-2.0
@@ -76,4 +86,4 @@ describe("collectDebugInformation()", () => {
76
86
  });
77
87
  });
78
88
  });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWJ1Zy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM5QixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztDQUMzQyxDQUFDLENBQUMsQ0FBQztBQUVKLG1DQUFrRDtBQUNsRCxpQ0FBcUM7QUFFckMsU0FBUyxxQkFBcUIsQ0FBQyxXQUFtQixFQUFFLE9BQWU7SUFDakUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsRUFBRSxDQUFDLGFBQWEsQ0FDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsRUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0FBQ0osQ0FBQztBQUVELFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7SUFDekMsSUFBSSxlQUFtQyxDQUFDO0lBRXhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxlQUFlLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxlQUFlLEtBQUssU0FBUztZQUFFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7O1lBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2RUFBNkUsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMzRixNQUFNLElBQUEsa0JBQVcsRUFBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDekMsRUFBRSxDQUFDLGFBQWEsQ0FDZCxZQUFZLEVBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUMzQyxDQUFDO1lBQ0YsRUFBRSxDQUFDLGFBQWEsQ0FDZCxjQUFjLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FDWjtnQkFDRSxJQUFJLEVBQUUsOEJBQThCO2dCQUNwQyxPQUFPLEVBQUUsT0FBTztnQkFDaEIsZUFBZSxFQUFFO29CQUNmLEtBQUssRUFBRSxRQUFRO29CQUNmLEtBQUssRUFBRSxTQUFTO29CQUNoQixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsSUFBSSxFQUFFLE9BQU87aUJBQ2Q7YUFDRixFQUNELElBQUksRUFDSixDQUFDLENBQ0YsQ0FDRixDQUFDO1lBRUYscUJBQXFCLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDOUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztZQUVwQyxNQUFNLE1BQU0sQ0FBQyxJQUFBLCtCQUF1QixHQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUN0RCxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixLQUFLLEVBQUUsUUFBUTtnQkFDZixLQUFLLEVBQUUsU0FBUztnQkFDaEIsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLElBQUksRUFBRSxPQUFPO2FBQ2QsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmplc3QubW9jayhcIi4vdGVycmFmb3JtXCIsICgpID0+ICh7XG4gIHRlcnJhZm9ybVZlcnNpb246IFByb21pc2UucmVzb2x2ZShcIjEuNy41XCIpLFxufSkpO1xuXG5pbXBvcnQgeyBjb2xsZWN0RGVidWdJbmZvcm1hdGlvbiB9IGZyb20gXCIuL2RlYnVnXCI7XG5pbXBvcnQgeyB3aXRoVGVtcERpciB9IGZyb20gXCIuL3V0aWxcIjtcblxuZnVuY3Rpb24gd3JpdGVJbnN0YWxsZWRQYWNrYWdlKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZykge1xuICBjb25zdCBwYWNrYWdlRGlyID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwibm9kZV9tb2R1bGVzXCIsIHBhY2thZ2VOYW1lKTtcbiAgZnMubWtkaXJTeW5jKHBhY2thZ2VEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBmcy53cml0ZUZpbGVTeW5jKFxuICAgIHBhdGguam9pbihwYWNrYWdlRGlyLCBcInBhY2thZ2UuanNvblwiKSxcbiAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6IHBhY2thZ2VOYW1lLCB2ZXJzaW9uIH0sIG51bGwsIDIpLFxuICApO1xufVxuXG5kZXNjcmliZShcImNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKClcIiwgKCkgPT4ge1xuICBsZXQgcHJldmlvdXNOb2RlRW52OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgcHJldmlvdXNOb2RlRW52ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlY7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaCgoKSA9PiB7XG4gICAgaWYgKHByZXZpb3VzTm9kZUVudiA9PT0gdW5kZWZpbmVkKSBkZWxldGUgcHJvY2Vzcy5lbnYuTk9ERV9FTlY7XG4gICAgZWxzZSBwcm9jZXNzLmVudi5OT0RFX0VOViA9IHByZXZpb3VzTm9kZUVudjtcbiAgfSk7XG5cbiAgaXQoXCJkZXRlY3RzIFR5cGVTY3JpcHQgcGFja2FnZXMgaW5zdGFsbGVkIGFzIG5wbSBkZXYgZGVwZW5kZW5jaWVzIGluIHByb2R1Y3Rpb25cIiwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHdpdGhUZW1wRGlyKFwiZGVidWcudGVzdFwiLCBhc3luYyAoKSA9PiB7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICBcImNka3RmLmpzb25cIixcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIgfSksXG4gICAgICApO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgXCJwYWNrYWdlLmpzb25cIixcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWJ1Zy1kZXYtZGVwZW5kZW5jeS1maXh0dXJlXCIsXG4gICAgICAgICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAgICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgICAgICAgY2RrdG46IFwiMC4yMy4zXCIsXG4gICAgICAgICAgICAgIGNka3RmOiBcIjAuMjAuMTFcIixcbiAgICAgICAgICAgICAgY29uc3RydWN0czogXCIxMC4zLjBcIixcbiAgICAgICAgICAgICAganNpaTogXCI1LjUuMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMixcbiAgICAgICAgKSxcbiAgICAgICk7XG5cbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImNka3RuXCIsIFwiMC4yMy4zXCIpO1xuICAgICAgd3JpdGVJbnN0YWxsZWRQYWNrYWdlKFwiY2RrdGZcIiwgXCIwLjIwLjExXCIpO1xuICAgICAgd3JpdGVJbnN0YWxsZWRQYWNrYWdlKFwiY29uc3RydWN0c1wiLCBcIjEwLjMuMFwiKTtcbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImpzaWlcIiwgXCI1LjUuMFwiKTtcblxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPSBcInByb2R1Y3Rpb25cIjtcblxuICAgICAgYXdhaXQgZXhwZWN0KGNvbGxlY3REZWJ1Z0luZm9ybWF0aW9uKCkpLnJlc29sdmVzLnRvRXF1YWwoXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgY2RrdG46IFwiMC4yMy4zXCIsXG4gICAgICAgICAgY2RrdGY6IFwiMC4yMC4xMVwiLFxuICAgICAgICAgIGNvbnN0cnVjdHM6IFwiMTAuMy4wXCIsXG4gICAgICAgICAganNpaTogXCI1LjUuMFwiLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWJ1Zy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDOUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Q0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFFSixtQ0FBa0Q7QUFDbEQsaUNBQXFDO0FBRXJDLFNBQVMscUJBQXFCLENBQUMsV0FBbUIsRUFBRSxPQUFlO0lBQ2pFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RSxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLEVBQUUsQ0FBQyxhQUFhLENBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEVBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztBQUNKLENBQUM7QUFFRCxRQUFRLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO0lBQ3pDLElBQUksZUFBbUMsQ0FBQztJQUV4QyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsZUFBZSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNiLElBQUksZUFBZSxLQUFLLFNBQVM7WUFBRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDOztZQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkVBQTZFLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0YsTUFBTSxJQUFBLGtCQUFXLEVBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3pDLEVBQUUsQ0FBQyxhQUFhLENBQ2QsWUFBWSxFQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FDM0MsQ0FBQztZQUNGLEVBQUUsQ0FBQyxhQUFhLENBQ2QsY0FBYyxFQUNkLElBQUksQ0FBQyxTQUFTLENBQ1o7Z0JBQ0UsSUFBSSxFQUFFLDhCQUE4QjtnQkFDcEMsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLGVBQWUsRUFBRTtvQkFDZixLQUFLLEVBQUUsUUFBUTtvQkFDZixLQUFLLEVBQUUsU0FBUztvQkFDaEIsVUFBVSxFQUFFLFFBQVE7b0JBQ3BCLElBQUksRUFBRSxPQUFPO2lCQUNkO2FBQ0YsRUFDRCxJQUFJLEVBQ0osQ0FBQyxDQUNGLENBQ0YsQ0FBQztZQUVGLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN6QyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDMUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7WUFFcEMsTUFBTSxNQUFNLENBQUMsSUFBQSwrQkFBdUIsR0FBRSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUN0QixRQUFRLEVBQUUsWUFBWTtnQkFDdEIsS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFVBQVUsRUFBRSxRQUFRO2dCQUNwQixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5qZXN0Lm1vY2soXCIuL3RlcnJhZm9ybVwiLCAoKSA9PiAoe1xuICB0ZXJyYWZvcm1WZXJzaW9uOiBQcm9taXNlLnJlc29sdmUoXCIxLjcuNVwiKSxcbn0pKTtcblxuaW1wb3J0IHsgY29sbGVjdERlYnVnSW5mb3JtYXRpb24gfSBmcm9tIFwiLi9kZWJ1Z1wiO1xuaW1wb3J0IHsgd2l0aFRlbXBEaXIgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmZ1bmN0aW9uIHdyaXRlSW5zdGFsbGVkUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFja2FnZURpciA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIm5vZGVfbW9kdWxlc1wiLCBwYWNrYWdlTmFtZSk7XG4gIGZzLm1rZGlyU3luYyhwYWNrYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZnMud3JpdGVGaWxlU3luYyhcbiAgICBwYXRoLmpvaW4ocGFja2FnZURpciwgXCJwYWNrYWdlLmpzb25cIiksXG4gICAgSlNPTi5zdHJpbmdpZnkoeyBuYW1lOiBwYWNrYWdlTmFtZSwgdmVyc2lvbiB9LCBudWxsLCAyKSxcbiAgKTtcbn1cblxuZGVzY3JpYmUoXCJjb2xsZWN0RGVidWdJbmZvcm1hdGlvbigpXCIsICgpID0+IHtcbiAgbGV0IHByZXZpb3VzTm9kZUVudjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIHByZXZpb3VzTm9kZUVudiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGlmIChwcmV2aW91c05vZGVFbnYgPT09IHVuZGVmaW5lZCkgZGVsZXRlIHByb2Nlc3MuZW52Lk5PREVfRU5WO1xuICAgIGVsc2UgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPSBwcmV2aW91c05vZGVFbnY7XG4gIH0pO1xuXG4gIGl0KFwiZGV0ZWN0cyBUeXBlU2NyaXB0IHBhY2thZ2VzIGluc3RhbGxlZCBhcyBucG0gZGV2IGRlcGVuZGVuY2llcyBpbiBwcm9kdWN0aW9uXCIsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCB3aXRoVGVtcERpcihcImRlYnVnLnRlc3RcIiwgYXN5bmMgKCkgPT4ge1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgXCJjZGt0Zi5qc29uXCIsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHsgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiIH0pLFxuICAgICAgKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgIFwicGFja2FnZS5qc29uXCIsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVidWctZGV2LWRlcGVuZGVuY3ktZml4dHVyZVwiLFxuICAgICAgICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgICAgIGNka3RuOiBcIjAuMjMuM1wiLFxuICAgICAgICAgICAgICBjZGt0ZjogXCIwLjIwLjExXCIsXG4gICAgICAgICAgICAgIGNvbnN0cnVjdHM6IFwiMTAuMy4wXCIsXG4gICAgICAgICAgICAgIGpzaWk6IFwiNS41LjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIDIsXG4gICAgICAgICksXG4gICAgICApO1xuXG4gICAgICB3cml0ZUluc3RhbGxlZFBhY2thZ2UoXCJjZGt0blwiLCBcIjAuMjMuM1wiKTtcbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImNka3RmXCIsIFwiMC4yMC4xMVwiKTtcbiAgICAgIHdyaXRlSW5zdGFsbGVkUGFja2FnZShcImNvbnN0cnVjdHNcIiwgXCIxMC4zLjBcIik7XG4gICAgICB3cml0ZUluc3RhbGxlZFBhY2thZ2UoXCJqc2lpXCIsIFwiNS41LjBcIik7XG5cbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID0gXCJwcm9kdWN0aW9uXCI7XG5cbiAgICAgIGF3YWl0IGV4cGVjdChjb2xsZWN0RGVidWdJbmZvcm1hdGlvbigpKS5yZXNvbHZlcy50b0VxdWFsKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgIGNka3RuOiBcIjAuMjMuM1wiLFxuICAgICAgICAgIGNka3RmOiBcIjAuMjAuMTFcIixcbiAgICAgICAgICBjb25zdHJ1Y3RzOiBcIjEwLjMuMFwiLFxuICAgICAgICAgIGpzaWk6IFwiNS41LjBcIixcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAmBA,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAsBD,eAAO,MAAM,MAAM;wBAlBN,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,OAAO,MAAM,EAAE,GAAG,CAAC;oBAyBf,MAAM;CAIvB,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAmBA,KAAK,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAEhE;AAsBD,eAAO,MAAM,MAAM;wBAlBN,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;qBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;wBAFpB,MAAM,kBACA,KAAK,YACV,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;oBAyBf,MAAM;CAIvB,CAAC"}