@cdktn/cli-core 0.25.0-pre.41 → 0.25.0-pre.43

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.
@@ -315,7 +315,7 @@ class TerraformCli {
315
315
  }
316
316
  async version() {
317
317
  try {
318
- return await (0, commons_1.exec)(commons_1.terraformBinaryName, ["-v"], {
318
+ return await (0, commons_1.exec)(commons_1.terraformBinaryName, ["version"], {
319
319
  cwd: this.workdir,
320
320
  env: process.env,
321
321
  signal: this.abortSignal,
@@ -372,4 +372,4 @@ async function tryRemoveGeneratedConfigurationFile(workingDir) {
372
372
  fs.unlinkSync(generatedConfigPath);
373
373
  }
374
374
  }
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3RlcnJhZm9ybS1jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOGdCQSw4RUFRQztBQUVELGtGQUtDO0FBN2hCRCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDREQUFtQztBQUNuQyw0Q0FNd0I7QUFDeEIsMkNBTXFCO0FBRXJCLHFEQU8wQjtBQUMxQixtQ0FBaUM7QUFDakMsc0NBQTRDO0FBQzVDLHNEQUF3RDtBQUN4RCwrREFBeUQ7QUFDekQsZ0RBQXdCO0FBQ3hCLDZDQUErQjtBQUUvQixNQUFNLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO0FBRTFELE1BQWEsZ0JBQ1gsU0FBUSxpQ0FBcUI7SUFHN0IsWUFDa0IsUUFBZ0IsRUFDaEIsSUFBNEI7UUFFNUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsZ0JBQWdCLEVBQUUsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGNBQWMsQ0FBQyxDQUFDO1FBSDlDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFHOUMsQ0FBQztDQUNGO0FBVkQsNENBVUM7QUFFRCxNQUFlLG9CQUFvQjtDQUdsQztBQUdELDRGQUE0RjtBQUM1RixnR0FBZ0c7QUFDaEcsTUFBTSxzQkFBdUIsU0FBUSxvQkFBb0I7SUFDdkQscURBQXFEO0lBQ3JELElBQUk7SUFDSiwwQ0FBMEM7SUFDMUMsSUFBSTtJQUNKLDJDQUEyQztJQUMzQywrQkFBK0I7SUFDL0IsSUFBSTtJQUNKLGdGQUFnRjtJQUNoRixnRkFBZ0Y7SUFDaEYsa0JBQWtCO0lBQ1gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFhO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JB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IENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gXCJzdHJpcC1hbnNpXCI7XG5pbXBvcnQge1xuICBFcnJvcnMsXG4gIGV4ZWMsXG4gIGxvZ2dlcixcbiAgcmVhZENES1RGVmVyc2lvbixcbiAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm0sXG4gIFRlcnJhZm9ybVBsYW4sXG4gIFRlcnJhZm9ybU91dHB1dCxcbiAgQWJzdHJhY3RUZXJyYWZvcm1QbGFuLFxuICBUZXJyYWZvcm1EZXBsb3lTdGF0ZSxcbn0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBTeW50aGVzaXplZFN0YWNrIH0gZnJvbSBcIi4uL3N5bnRoLXN0YWNrXCI7XG5pbXBvcnQge1xuICBjcmVhdGVBbmRTdGFydERlcGxveVNlcnZpY2UsXG4gIGNyZWF0ZUFuZFN0YXJ0RGVzdHJveVNlcnZpY2UsXG4gIERlcGxveUFjdG9yLFxuICBEZXBsb3lJbnNwZWN0aW9uSGFuZGxlcixcbiAgRGVwbG95U25hcHNob3QsXG4gIGlzRGVwbG95RXZlbnQsXG59IGZyb20gXCIuL2RlcGxveS1tYWNoaW5lXCI7XG5pbXBvcnQgeyB3YWl0Rm9yIH0gZnJvbSBcInhzdGF0ZVwiO1xuaW1wb3J0IHsgbWlzc2luZ1ZhcmlhYmxlIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgdGVycmFmb3JtSnNvblNjaGVtYSB9IGZyb20gXCIuLi90ZXJyYWZvcm0tanNvblwiO1xuaW1wb3J0IHsgc3Bhd25JbnRlcmFjdGl2ZSB9IGZyb20gXCIuL2ludGVyYWN0aXZlLXByb2Nlc3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcblxuY29uc3QgR0VORVJBVEVfQ09ORklHX09VVF9GSUxFID0gXCJnZW5lcmF0ZWRfcmVzb3VyY2VzLnRmXCI7XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1DbGlQbGFuXG4gIGV4dGVuZHMgQWJzdHJhY3RUZXJyYWZvcm1QbGFuXG4gIGltcGxlbWVudHMgVGVycmFmb3JtUGxhblxue1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGxhbkZpbGU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGxhbjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgKSB7XG4gICAgc3VwZXIocGxhbkZpbGUsIHBsYW4/LnJlc291cmNlX2NoYW5nZXMsIHBsYW4/Lm91dHB1dF9jaGFuZ2VzKTtcbiAgfVxufVxuXG5hYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE91dHB1dEZpbHRlciB7XG4gIHB1YmxpYyBzdGF0aWMgY29uZGl0aW9uOiAobGluZTogc3RyaW5nKSA9PiBib29sZWFuO1xuICBwdWJsaWMgc3RhdGljIHRyYW5zZm9ybTogKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgT3V0cHV0RmlsdGVyID0gdHlwZW9mIEFic3RyYWN0T3V0cHV0RmlsdGVyO1xuXG4vLyBUaGUgcGxhbiBtaWdodCBlcnJvciBpZiB0aGVyZSBpcyBhIHZhcmlhYmxlIG1pc3NpbmcsIGJ1dCB0aGUgZXJyb3IgbWVzc2FnZSBoaW50cyB0aGUgdXNlclxuLy8gaW4gYSB3cm9uZyBkaXJlY3Rpb24uIFdlIHRoZXJlZm9yZSBjYXRjaCB0aGUgZXJyb3IgYW5kIHJldGhyb3cgaXQgd2l0aCBhIG1vcmUgaGVscGZ1bCBtZXNzYWdlXG5jbGFzcyBWYXJpYWJsZVJlcXVpcmVkRmlsdGVyIGV4dGVuZHMgQWJzdHJhY3RPdXRwdXRGaWx0ZXIge1xuICAvLyBFeGFtcGxlIGZvciBcIk5vIHZhbHVlIGZvciByZXF1aXJlZCB2YXJpYWJsZVwiIGVycm9yXG4gIC8vIOKVt1xuICAvLyDilIIgRXJyb3I6IE5vIHZhbHVlIGZvciByZXF1aXJlZCB2YXJpYWJsZVxuICAvLyDilIJcbiAgLy8g4pSCICAgb24gY2RrLnRmLmpzb24gbGluZSAzMSwgaW4gdmFyaWFibGU6XG4gIC8vIOKUgiAgIDMxOiAgICAgXCJ3aXRoLWRhc2hlc1wiOiB7XG4gIC8vIOKUglxuICAvLyDilIIgVGhlIHJvb3QgbW9kdWxlIGlucHV0IHZhcmlhYmxlIFwid2l0aC1kYXNoZXNcIiBpcyBub3Qgc2V0LCBhbmQgaGFzIG5vIGRlZmF1bHRcbiAgLy8g4pSCIHZhbHVlLiBVc2UgYSAtdmFyIG9yIC12YXItZmlsZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgdG8gcHJvdmlkZSBhIHZhbHVlIGZvclxuICAvLyDilIIgdGhpcyB2YXJpYWJsZVxuICBwdWJsaWMgc3RhdGljIGNvbmRpdGlvbihpbnB1dDogc3RyaW5nKSB7XG4gICAgY29uc3QgbGluZSA9IHN0cmlwQW5zaShpbnB1dCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgbGluZS5pbmNsdWRlcyhcIkVycm9yOiBObyB2YWx1ZSBmb3IgcmVxdWlyZWQgdmFyaWFibGVcIikgJiZcbiAgICAgIGxpbmUuaW5jbHVkZXMoXCJUaGUgcm9vdCBtb2R1bGUgaW5wdXQgdmFyaWFibGVcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgdHJhbnNmb3JtKGxpbmU6IHN0cmluZykge1xuICAgIGNvbnN0IHN0YXJ0TWFya2VyID0gJ1RoZSByb290IG1vZHVsZSBpbnB1dCB2YXJpYWJsZSBcIic7XG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gbGluZS5zdWJzdHJpbmcoXG4gICAgICBsaW5lLmluZGV4T2Yoc3RhcnRNYXJrZXIpICsgc3RhcnRNYXJrZXIubGVuZ3RoLFxuICAgICAgbGluZS5pbmRleE9mKCdcIiBpcyBub3Qgc2V0JyksXG4gICAgKTtcblxuICAgIHJldHVybiBtaXNzaW5nVmFyaWFibGUodmFyaWFibGVOYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtQ2xpIGltcGxlbWVudHMgVGVycmFmb3JtIHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtkaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBvblN0ZG91dDogKFxuICAgIHN0YXRlTmFtZTogc3RyaW5nLFxuICAgIGZpbHRlcj86IE91dHB1dEZpbHRlcltdLFxuICApID0+IChzdGRvdXQ6IEJ1ZmZlciB8IHN0cmluZykgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSBvblN0ZGVycjogKFxuICAgIHN0YXRlTmFtZTogc3RyaW5nLFxuICAgIGZpbHRlcj86IE91dHB1dEZpbHRlcltdLFxuICApID0+IChzdGRlcnI6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrOiBTeW50aGVzaXplZFN0YWNrLFxuICAgIGNyZWF0ZVRlcnJhZm9ybUxvZ0hhbmRsZXIgPSAoX3BoYXNlOiBzdHJpbmcsIF9maWx0ZXI/OiBPdXRwdXRGaWx0ZXJbXSkgPT5cbiAgICAgIChfc3Rkb3V0OiBzdHJpbmcsIF9pc0VyciA9IGZhbHNlKSA9PiB7fSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZGlyID0gc3RhY2sud29ya2luZ0RpcmVjdG9yeTtcbiAgICB0aGlzLm9uU3Rkb3V0ID1cbiAgICAgIChwaGFzZTogc3RyaW5nLCBmaWx0ZXI/OiBPdXRwdXRGaWx0ZXJbXSkgPT4gKHN0ZG91dDogQnVmZmVyIHwgc3RyaW5nKSA9PlxuICAgICAgICBjcmVhdGVUZXJyYWZvcm1Mb2dIYW5kbGVyKFxuICAgICAgICAgIHBoYXNlLFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgKShCdWZmZXIuaXNCdWZmZXIoc3Rkb3V0KSA/IHN0ZG91dC50b1N0cmluZygpIDogc3Rkb3V0KTtcbiAgICB0aGlzLm9uU3RkZXJyID1cbiAgICAgIChwaGFzZTogc3RyaW5nLCBmaWx0ZXI/OiBPdXRwdXRGaWx0ZXJbXSkgPT5cbiAgICAgIChzdGRlcnI6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+XG4gICAgICAgIGNyZWF0ZVRlcnJhZm9ybUxvZ0hhbmRsZXIocGhhc2UsIGZpbHRlcikoc3RkZXJyLnRvU3RyaW5nKCksIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXQob3B0czoge1xuICAgIG5lZWRzVXBncmFkZTogYm9vbGVhbjtcbiAgICBub0NvbG9yPzogYm9vbGVhbjtcbiAgICBtaWdyYXRlU3RhdGU6IGJvb2xlYW47XG4gICAgbmVlZHNMb2NrZmlsZVVwZGF0ZTogYm9vbGVhbjtcbiAgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2V0VXNlckFnZW50KCk7XG5cbiAgICBjb25zdCBhcmdzID0gW1wiaW5pdFwiXTtcbiAgICBpZiAob3B0cy5uZWVkc1VwZ3JhZGUpIHtcbiAgICAgIGFyZ3MucHVzaChcIi11cGdyYWRlXCIpO1xuICAgIH1cbiAgICBpZiAob3B0cy5ub0NvbG9yKSB7XG4gICAgICBhcmdzLnB1c2goXCItbm8tY29sb3JcIik7XG4gICAgfVxuICAgIGlmIChvcHRzLm1pZ3JhdGVTdGF0ZSkge1xuICAgICAgYXJncy5wdXNoKFwiLW1pZ3JhdGUtc3RhdGVcIik7XG4gICAgfVxuXG4gICAgbGV0IGluaXRDYW5Ob3RDb250aW51ZSA9IChfZXJyOiBhbnkpID0+IHt9O1xuICAgIGNvbnN0IHJlamVjdHNJZkluaXRDYW5Ob3RDb250aW51ZSA9IG5ldyBQcm9taXNlKChfcmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpbml0Q2FuTm90Q29udGludWUgPSByZWplY3Q7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGRvdXQgPSB0aGlzLm9uU3Rkb3V0KFwiaW5pdFwiKTtcbiAgICBjb25zdCB7IGFjdGlvbnMsIGV4aXRDb2RlIH0gPSBzcGF3bkludGVyYWN0aXZlKFxuICAgICAge1xuICAgICAgICBmaWxlOiB0ZXJyYWZvcm1CaW5hcnlOYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgY3dkOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudiBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgc3Rkb3V0KGRhdGEpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZGF0YS5pbmNsdWRlcyhcIlNob3VsZCBUZXJyYWZvcm0gbWlncmF0ZSB5b3VyIGV4aXN0aW5nIHN0YXRlP1wiKSB8fFxuICAgICAgICAgIGRhdGEuaW5jbHVkZXMoXCJEbyB5b3Ugd2FudCB0byBjb3B5IGV4aXN0aW5nIHN0YXRlIHRvIHRoZSBuZXcgYmFja2VuZFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIG9ubHkgaGFwcGVucyB3aGVuIHRlcnJhZm9ybSBpcyBwYXNzZWQgdGhlIC1taWdyYXRlLXN0YXRlIGFueXdheSwgc28gdGhpcyBjaGVjayBpcyByZWR1bmRhbnRcbiAgICAgICAgICBpZiAob3B0cy5taWdyYXRlU3RhdGUpIHtcbiAgICAgICAgICAgIGFjdGlvbnMud3JpdGVMaW5lKFwieWVzXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3Rpb25zLnN0b3AoKTtcbiAgICAgICAgICAgIGluaXRDYW5Ob3RDb250aW51ZShcbiAgICAgICAgICAgICAgXCJQbGVhc2UgcGFzcyB0aGUgLS1taWdyYXRlLXN0YXRlIGZsYWcgdG8gbWlncmF0ZSB5b3VyIHN0YXRlXCIsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsICgpID0+IHtcbiAgICAgIGFjdGlvbnMuc3RvcCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBleGl0Q29kZS50aGVuKChjb2RlKSA9PiB7XG4gICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHRlcnJhZm9ybSBpbml0IGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtwcm9ncmVzcywgcmVqZWN0c0lmSW5pdENhbk5vdENvbnRpbnVlXSk7XG5cbiAgICAvLyBUT0RPOiB0aGlzIG1pZ2h0IGhhdmUgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBpZiB3ZSdyZVxuICAgIC8vIHJ1bm5pbmcgYSByZW1vdGUgcGxhbiBvciBhIGxvY2FsIG9uZSAoc28gd2UgcnVuIGl0IGFsd2F5cyBmb3IgYWxsIHBsYXRmb3JtcylcbiAgICAvLyB3aGlsZSB3ZSdkIG9ubHkgbmVlZCBpdCBmb3IgcmVtb3RlIHBsYW5zXG4gICAgaWYgKG9wdHMubmVlZHNMb2NrZmlsZVVwZGF0ZSkge1xuICAgICAgYXdhaXQgZXhlYyhcbiAgICAgICAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICAgICAgW1xuICAgICAgICAgIFwicHJvdmlkZXJzXCIsXG4gICAgICAgICAgXCJsb2NrXCIsXG4gICAgICAgICAgXCItcGxhdGZvcm09bGludXhfYW1kNjRcIixcbiAgICAgICAgICAuLi4ob3B0cy5ub0NvbG9yID8gW1wiLW5vLWNvbG9yXCJdIDogW10pLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBzaWduYWw6IHRoaXMuYWJvcnRTaWduYWwsXG4gICAgICAgICAgbm9Db2xvcjogb3B0cy5ub0NvbG9yLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLm9uU3Rkb3V0KFwiaW5pdFwiKSxcbiAgICAgICAgdGhpcy5vblN0ZGVycihcImluaXRcIiksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzQ2xvdWRTdGFjaygpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJzZWRTdGFjayA9IHRlcnJhZm9ybUpzb25TY2hlbWEucGFyc2UoXG4gICAgICBKU09OLnBhcnNlKHRoaXMuc3RhY2suY29udGVudCksXG4gICAgKTtcblxuICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgcGFyc2VkU3RhY2sudGVycmFmb3JtPy5iYWNrZW5kPy5yZW1vdGUgfHwgcGFyc2VkU3RhY2sudGVycmFmb3JtPy5jbG91ZCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzSW1wb3J0cygpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJzZWRTdGFjayA9IHRlcnJhZm9ybUpzb25TY2hlbWEucGFyc2UoXG4gICAgICBKU09OLnBhcnNlKHRoaXMuc3RhY2suY29udGVudCksXG4gICAgKTtcblxuICAgIHJldHVybiBCb29sZWFuKHBhcnNlZFN0YWNrLmltcG9ydCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGxhbihvcHRzOiB7XG4gICAgZGVzdHJveTogYm9vbGVhbjtcbiAgICByZWZyZXNoT25seT86IGJvb2xlYW47XG4gICAgcGFyYWxsZWxpc20/OiBudW1iZXI7XG4gICAgdmFycz86IHN0cmluZ1tdO1xuICAgIHZhckZpbGVzPzogc3RyaW5nW107XG4gICAgbm9Db2xvcj86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBkZXN0cm95ID0gZmFsc2UsXG4gICAgICByZWZyZXNoT25seSA9IGZhbHNlLFxuICAgICAgcGFyYWxsZWxpc20gPSAtMSxcbiAgICAgIHZhcnMgPSBbXSxcbiAgICAgIHZhckZpbGVzID0gW10sXG4gICAgICBub0NvbG9yID0gZmFsc2UsXG4gICAgfSA9IG9wdHM7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtcInBsYW5cIiwgXCItaW5wdXQ9ZmFsc2VcIl07XG5cbiAgICBjb25zdCBnZW5lcmF0ZWRDb25maWdGaWxlID0gcGF0aC5qb2luKFxuICAgICAgdGhpcy53b3JrZGlyLFxuICAgICAgR0VORVJBVEVfQ09ORklHX09VVF9GSUxFLFxuICAgICk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZ2VuZXJhdGVkQ29uZmlnRmlsZSkpIHtcbiAgICAgIGZzLnJlbW92ZShnZW5lcmF0ZWRDb25maWdGaWxlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzSW1wb3J0cykge1xuICAgICAgb3B0aW9ucy5wdXNoKGAtZ2VuZXJhdGUtY29uZmlnLW91dD0ke0dFTkVSQVRFX0NPTkZJR19PVVRfRklMRX1gKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzQ2xvdWRTdGFjaykge1xuICAgICAgY29uc3QgcGxhbkZpbGUgPSBcInBsYW5cIjtcbiAgICAgIG9wdGlvbnMucHVzaChcIi1vdXRcIiwgcGxhbkZpbGUpO1xuICAgIH1cblxuICAgIGlmIChkZXN0cm95KSB7XG4gICAgICBvcHRpb25zLnB1c2goXCItZGVzdHJveVwiKTtcbiAgICB9XG4gICAgaWYgKHJlZnJlc2hPbmx5KSB7XG4gICAgICBvcHRpb25zLnB1c2goXCItcmVmcmVzaC1vbmx5XCIpO1xuICAgIH1cbiAgICBpZiAocGFyYWxsZWxpc20gPiAtMSkge1xuICAgICAgb3B0aW9ucy5wdXNoKGAtcGFyYWxsZWxpc209JHtwYXJhbGxlbGlzbX1gKTtcbiAgICB9XG4gICAgaWYgKG5vQ29sb3IpIHtcbiAgICAgIG9wdGlvbnMucHVzaChcIi1uby1jb2xvclwiKTtcbiAgICB9XG5cbiAgICB2YXJzLmZvckVhY2goKHYpID0+IG9wdGlvbnMucHVzaChgLXZhcj0ke3Z9YCkpO1xuICAgIHZhckZpbGVzLmZvckVhY2goKHYpID0+IG9wdGlvbnMucHVzaChgLXZhci1maWxlPSR7dn1gKSk7XG5cbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgRXhlY3V0aW5nICR7dGVycmFmb3JtQmluYXJ5TmFtZX0gJHtvcHRpb25zLmpvaW4oXCIgXCIpfSBpbiAke3RoaXMud29ya2Rpcn1gLFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLnNldFVzZXJBZ2VudCgpO1xuXG4gICAgYXdhaXQgZXhlYyhcbiAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICBvcHRpb25zLFxuICAgICAge1xuICAgICAgICBjd2Q6IHRoaXMud29ya2RpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgc2lnbmFsOiB0aGlzLmFib3J0U2lnbmFsLFxuICAgICAgICBub0NvbG9yLFxuICAgICAgfSxcbiAgICAgIHRoaXMub25TdGRvdXQoXCJwbGFuXCIsIFtWYXJpYWJsZVJlcXVpcmVkRmlsdGVyXSksXG4gICAgICB0aGlzLm9uU3RkZXJyKFwicGxhblwiLCBbVmFyaWFibGVSZXF1aXJlZEZpbHRlcl0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVwbG95KFxuICAgIHtcbiAgICAgIGF1dG9BcHByb3ZlID0gZmFsc2UsXG4gICAgICByZWZyZXNoT25seSA9IGZhbHNlLFxuICAgICAgbm9Db2xvciA9IGZhbHNlLFxuICAgICAgcGFyYWxsZWxpc20gPSAtMSxcbiAgICAgIGV4dHJhT3B0aW9ucyA9IFtdLFxuICAgICAgdmFycyA9IFtdLFxuICAgICAgdmFyRmlsZXMgPSBbXSxcbiAgICB9LFxuICAgIGNhbGxiYWNrOiAoc3RhdGU6IFRlcnJhZm9ybURlcGxveVN0YXRlKSA9PiB2b2lkLFxuICApOiBQcm9taXNlPHsgY2FuY2VsbGVkOiBib29sZWFuIH0+IHtcbiAgICBhd2FpdCB0aGlzLnNldFVzZXJBZ2VudCgpO1xuICAgIHJldHVybiB0aGlzLmhhbmRsZVNlcnZpY2UoXCJkZXBsb3lcIiwgY2FsbGJhY2ssIChpbnNwZWN0KSA9PlxuICAgICAgY3JlYXRlQW5kU3RhcnREZXBsb3lTZXJ2aWNlKFxuICAgICAgICB7XG4gICAgICAgICAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICAgICAgICB3b3JrZGlyOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgcmVmcmVzaE9ubHksXG4gICAgICAgICAgbm9Db2xvcixcbiAgICAgICAgICBhdXRvQXBwcm92ZSxcbiAgICAgICAgICBwYXJhbGxlbGlzbSxcbiAgICAgICAgICBleHRyYU9wdGlvbnMsXG4gICAgICAgICAgdmFycyxcbiAgICAgICAgICB2YXJGaWxlcyxcbiAgICAgICAgfSxcbiAgICAgICAgaW5zcGVjdCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZXN0cm95KFxuICAgIHtcbiAgICAgIGF1dG9BcHByb3ZlID0gZmFsc2UsXG4gICAgICBwYXJhbGxlbGlzbSA9IC0xLFxuICAgICAgbm9Db2xvciA9IGZhbHNlLFxuICAgICAgZXh0cmFPcHRpb25zID0gW10sXG4gICAgICB2YXJzID0gW10sXG4gICAgICB2YXJGaWxlcyA9IFtdLFxuICAgIH0sXG4gICAgY2FsbGJhY2s6IChzdGF0ZTogVGVycmFmb3JtRGVwbG95U3RhdGUpID0+IHZvaWQsXG4gICk6IFByb21pc2U8eyBjYW5jZWxsZWQ6IGJvb2xlYW4gfT4ge1xuICAgIGF3YWl0IHRoaXMuc2V0VXNlckFnZW50KCk7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlU2VydmljZShcImRlc3Ryb3lcIiwgY2FsbGJhY2ssIChpbnNwZWN0KSA9PlxuICAgICAgY3JlYXRlQW5kU3RhcnREZXN0cm95U2VydmljZShcbiAgICAgICAge1xuICAgICAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICAgICAgd29ya2RpcjogdGhpcy53b3JrZGlyLFxuICAgICAgICAgIGF1dG9BcHByb3ZlLFxuICAgICAgICAgIHBhcmFsbGVsaXNtLFxuICAgICAgICAgIG5vQ29sb3IsXG4gICAgICAgICAgZXh0cmFPcHRpb25zLFxuICAgICAgICAgIHZhcnMsXG4gICAgICAgICAgdmFyRmlsZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGluc3BlY3QsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVNlcnZpY2UoXG4gICAgdHlwZTogXCJkZXBsb3lcIiB8IFwiZGVzdHJveVwiLFxuICAgIGNhbGxiYWNrOiAoc3RhdGU6IFRlcnJhZm9ybURlcGxveVN0YXRlKSA9PiB2b2lkLFxuICAgIGNyZWF0ZVNlcnZpY2U6IChpbnNwZWN0OiBEZXBsb3lJbnNwZWN0aW9uSGFuZGxlcikgPT4gRGVwbG95QWN0b3IsXG4gICk6IFByb21pc2U8eyBjYW5jZWxsZWQ6IGJvb2xlYW4gfT4ge1xuICAgIC8vIEV2ZW50cyByZWFjaCB1cyB0aHJvdWdoIGluc3BlY3Rpb24sIHdoaWNoIGZpcmVzIGZvciB0aGUgd2hvbGUgYWN0b3IgdHJlZS4gRmlsdGVyIHRvIHRoZSByb290IGRlcGxveSBhY3RvclxuICAgIC8vIChpdHMgc2Vzc2lvbklkIGVxdWFscyB0aGUgdHJlZSdzIHJvb3RJZCkgc28gd2UgZG9uJ3QgcmVhY3QgdG8gdGhlIGludm9rZWQgcHR5IGNoaWxkJ3Mgb3duIGV2ZW50cy4gQ29tcGFyaW5nXG4gICAgLy8gc2Vzc2lvbklkIHJhdGhlciB0aGFuIHRoZSBhY3RvciByZWYga2VlcHMgdGhpcyBzZWxmLWNvbnRhaW5lZDogaW5zcGVjdGlvbiBmaXJlcyBkdXJpbmcgc3RhcnR1cCwgYmVmb3JlIHRoZVxuICAgIC8vIGBzZXJ2aWNlYCBiaW5kaW5nIGJlbG93IGlzIGluaXRpYWxpemVkLlxuICAgIGNvbnN0IGluc3BlY3Q6IERlcGxveUluc3BlY3Rpb25IYW5kbGVyID0gKGluc3BlY3Rpb25FdmVudCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBpbnNwZWN0aW9uRXZlbnQudHlwZSAhPT0gXCJAeHN0YXRlLmV2ZW50XCIgfHxcbiAgICAgICAgaW5zcGVjdGlvbkV2ZW50LmFjdG9yUmVmLnNlc3Npb25JZCAhPT0gaW5zcGVjdGlvbkV2ZW50LnJvb3RJZFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXZlbnQgPSBpbnNwZWN0aW9uRXZlbnQuZXZlbnQ7XG4gICAgICBsb2dnZXIudHJhY2UoXG4gICAgICAgIGBUZXJyYWZvcm0gQ0xJIHN0YXRlIG1hY2hpbmUgZXZlbnQ6ICR7SlNPTi5zdHJpbmdpZnkoZXZlbnQpfWAsXG4gICAgICApO1xuICAgICAgaWYgKGlzRGVwbG95RXZlbnQoZXZlbnQsIFwiT1VUUFVUX1JFQ0VJVkVEXCIpKVxuICAgICAgICB0aGlzLm9uU3Rkb3V0KHR5cGUpKGV2ZW50Lm91dHB1dCk7XG4gICAgICBlbHNlIGlmIChpc0RlcGxveUV2ZW50KGV2ZW50LCBcIkFQUFJPVkVEX0VYVEVSTkFMTFlcIikpXG4gICAgICAgIGNhbGxiYWNrKHsgdHlwZTogXCJleHRlcm5hbCBhcHByb3ZhbCByZXBseVwiLCBhcHByb3ZlZDogdHJ1ZSB9KTtcbiAgICAgIGVsc2UgaWYgKGlzRGVwbG95RXZlbnQoZXZlbnQsIFwiUkVKRUNURURfRVhURVJOQUxMWVwiKSlcbiAgICAgICAgY2FsbGJhY2soeyB0eXBlOiBcImV4dGVybmFsIGFwcHJvdmFsIHJlcGx5XCIsIGFwcHJvdmVkOiBmYWxzZSB9KTtcbiAgICAgIGVsc2UgaWYgKGlzRGVwbG95RXZlbnQoZXZlbnQsIFwiT1ZFUlJJRERFTl9FWFRFUk5BTExZXCIpKVxuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgdHlwZTogXCJleHRlcm5hbCBzZW50aW5lbCBvdmVycmlkZSByZXBseVwiLFxuICAgICAgICAgIG92ZXJyaWRkZW46IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgZWxzZSBpZiAoaXNEZXBsb3lFdmVudChldmVudCwgXCJPVkVSUklERV9SRUpFQ1RFRF9FWFRFUk5BTExZXCIpKVxuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgdHlwZTogXCJleHRlcm5hbCBzZW50aW5lbCBvdmVycmlkZSByZXBseVwiLFxuICAgICAgICAgIG92ZXJyaWRkZW46IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VydmljZSA9IGNyZWF0ZVNlcnZpY2UoaW5zcGVjdCk7XG5cbiAgICAvLyBUcmFuc2l0aW9ucyBjb21lIGZyb20gdGhlIGFjdG9yJ3Mgb3duIHN1YnNjcmlwdGlvbiwgd2hpY2ggeWllbGRzIHR5cGVkIHNuYXBzaG90cyBmb3IgdGhlIHJvb3QgYWN0b3Igb25seS5cbiAgICBsZXQgcHJldmlvdXNTdGF0ZTogRGVwbG95U25hcHNob3RbXCJ2YWx1ZVwiXSA9IFwiaWRsZVwiO1xuICAgIGNvbnN0IGhhbmRsZVNuYXBzaG90ID0gKHNuYXBzaG90OiBEZXBsb3lTbmFwc2hvdCkgPT4ge1xuICAgICAgLy8gT25seSBzZW5kIHVwZGF0ZXMgb24gYWN0dWFsIHN0YXRlIGNoYW5nZTsgYSBzbmFwc2hvdCBpcyBlbWl0dGVkIGV2ZW4gd2hlbiBvbmx5IGFuIGV2ZW50IGhhcHBlbmVkLlxuICAgICAgaWYgKHNuYXBzaG90Lm1hdGNoZXMocHJldmlvdXNTdGF0ZSkpIHJldHVybjtcblxuICAgICAgbG9nZ2VyLnRyYWNlKFxuICAgICAgICBgVGVycmFmb3JtIENMSSBzdGF0ZSBtYWNoaW5lIHN0YXRlIHRyYW5zaXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgcHJldmlvdXNTdGF0ZSxcbiAgICAgICAgKX0gPT4gJHtKU09OLnN0cmluZ2lmeShzbmFwc2hvdC52YWx1ZSl9YCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChzbmFwc2hvdC5tYXRjaGVzKHsgcnVubmluZzogXCJhd2FpdGluZ19hcHByb3ZhbFwiIH0pKSB7XG4gICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICB0eXBlOiBcIndhaXRpbmcgZm9yIGFwcHJvdmFsXCIsXG4gICAgICAgICAgYXBwcm92ZTogKCkgPT4gc2VydmljZS5zZW5kKHsgdHlwZTogXCJBUFBST1ZFXCIgfSksXG4gICAgICAgICAgcmVqZWN0OiAoKSA9PiBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIlJFSkVDVFwiIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc25hcHNob3QubWF0Y2hlcyh7IHJ1bm5pbmc6IFwiYXdhaXRpbmdfc2VudGluZWxfb3ZlcnJpZGVcIiB9KSkge1xuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgdHlwZTogXCJ3YWl0aW5nIGZvciBzZW50aW5lbCBvdmVycmlkZVwiLFxuICAgICAgICAgIG92ZXJyaWRlOiAoKSA9PiBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIk9WRVJSSURFXCIgfSksXG4gICAgICAgICAgcmVqZWN0OiAoKSA9PiBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIlJFSkVDVF9PVkVSUklERVwiIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc25hcHNob3QubWF0Y2hlcyh7IHJ1bm5pbmc6IFwicHJvY2Vzc2luZ1wiIH0pKSB7XG4gICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICB0eXBlOiBcInJ1bm5pbmdcIixcbiAgICAgICAgICBjYW5jZWxsZWQ6IEJvb2xlYW4oc25hcHNob3QuY29udGV4dC5jYW5jZWxsZWQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHByZXZpb3VzU3RhdGUgPSBzbmFwc2hvdC52YWx1ZTtcbiAgICB9O1xuXG4gICAgc2VydmljZS5zdWJzY3JpYmUoaGFuZGxlU25hcHNob3QpO1xuICAgIGhhbmRsZVNuYXBzaG90KHNlcnZpY2UuZ2V0U25hcHNob3QoKSk7XG5cbiAgICAvLyBzdG9wIHRlcnJhZm9ybSBhcHBseSBpZiBzaWduYWxlZCBhcyBzdWNoIGZyb20gdGhlIG91dHNpZGUgKGUuZy4gdmlhIGN0cmwrYylcbiAgICB0aGlzLmFib3J0U2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBcImFib3J0XCIsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHNlcnZpY2Uuc2VuZCh7IHR5cGU6IFwiU1RPUFwiIH0pO1xuICAgICAgfSxcbiAgICAgIHsgb25jZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IHdhaXRGb3IoXG4gICAgICBzZXJ2aWNlLFxuICAgICAgKHNuYXBzaG90KSA9PiBzbmFwc2hvdC5zdGF0dXMgPT09IFwiZG9uZVwiLFxuICAgICAge1xuICAgICAgICB0aW1lb3V0OiBJbmZpbml0eSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIFRoZSBmaW5hbCBzdGF0ZSBwcm9kdWNlcyB0aGUgdGVycmFmb3JtIGV4aXQgY29kZSBhcyB0aGUgbWFjaGluZSdzIG91dHB1dC5cbiAgICBjb25zdCBleGl0Q29kZSA9IHNuYXBzaG90Lm91dHB1dD8uZXhpdENvZGU7XG5cbiAgICBsb2dnZXIudHJhY2UoXG4gICAgICBgSW52b2tpbmcgVGVycmFmb3JtIENMSSBmb3IgJHt0eXBlfSBkb25lIChzdGF0ZSBtYWNoaW5lIHJlYWNoZWQgZmluYWwgc3RhdGUpLiBMYXN0IGV4aXQgY29kZTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgZXhpdENvZGUsXG4gICAgICApfS4gQ29udGV4dDogJHtKU09OLnN0cmluZ2lmeShzbmFwc2hvdC5jb250ZXh0KX1gLFxuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICBleGl0Q29kZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBleGl0Q29kZSAhPT0gMCAmJlxuICAgICAgIXNuYXBzaG90LmNvbnRleHQuY2FuY2VsbGVkIC8vIGRvbid0IGZhaWwgaWYgd2UgY2FuY2VsbGVkIHRoZSBydW5cbiAgICApIHtcbiAgICAgIHRocm93IGBJbnZva2luZyBUZXJyYWZvcm0gQ0xJIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2V4aXRDb2RlfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY2FuY2VsbGVkOiBCb29sZWFuKHNuYXBzaG90LmNvbnRleHQuY2FuY2VsbGVkKSB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGV4ZWMoXG4gICAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICAgIFtcIi12XCJdLFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBzaWduYWw6IHRoaXMuYWJvcnRTaWduYWwsXG4gICAgICAgICAgbm9Db2xvcjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5vblN0ZG91dChcInZlcnNpb25cIiksXG4gICAgICAgIHRoaXMub25TdGRlcnIoXCJ2ZXJzaW9uXCIpLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUZXJyYWZvcm0gQ0xJIG5vdCBwcmVzZW50IC0gUGxlYXNlIGluc3RhbGwgYSBjdXJyZW50IHZlcnNpb24gaHR0cHM6Ly9sZWFybi5oYXNoaWNvcnAuY29tL3RlcnJhZm9ybS9nZXR0aW5nLXN0YXJ0ZWQvaW5zdGFsbC5odG1sXCIsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvdXRwdXQoKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IFRlcnJhZm9ybU91dHB1dCB9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgZXhlYyhcbiAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICBbXCJvdXRwdXRcIiwgXCItanNvblwiXSxcbiAgICAgIHtcbiAgICAgICAgY3dkOiB0aGlzLndvcmtkaXIsXG4gICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgIHNpZ25hbDogdGhpcy5hYm9ydFNpZ25hbCxcbiAgICAgICAgbm9Db2xvcjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgb3V0cHV0IGhlcmUgc2luY2Ugd2UgdXNlIGl0IGxhdGVyIG9uXG4gICAgICAoKSA9PiB7fSxcbiAgICAgIHRoaXMub25TdGRlcnIoXCJvdXRwdXRcIiksXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShvdXRwdXQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IEVycm9ycy5FeHRlcm5hbChcbiAgICAgICAgYEZhaWxlZCB0byBwYXJzZSB0ZXJyYWZvcm0gb3V0cHV0OiAke2V9LiBUaGUgb3V0cHV0IHdhcyAnJHtvdXRwdXR9J2AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRVc2VyQWdlbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gUmVhZCB0aGUgY2RrdGYgdmVyc2lvbiBmcm9tIHRoZSAnY2RrLnRmLmpzb24nIGZpbGVcbiAgICAvLyBhbmQgc2V0IHRoZSB1c2VyIGFnZW50LlxuICAgIGNvbnN0IHZlcnNpb24gPSBhd2FpdCByZWFkQ0RLVEZWZXJzaW9uKHRoaXMud29ya2Rpcik7XG4gICAgaWYgKHZlcnNpb24gIT0gXCJcIikge1xuICAgICAgcHJvY2Vzcy5lbnYuVEZfQVBQRU5EX1VTRVJfQUdFTlQgPVxuICAgICAgICBcImNka3RuL1wiICtcbiAgICAgICAgdmVyc2lvbiArXG4gICAgICAgIFwiICgraHR0cHM6Ly9naXRodWIuY29tL29wZW4tY29uc3RydWN0cy9jZGstdGVycmFpbilcIjtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBkb24ndCBuZWVkIHRvIGNsZWFuIGFueXRoaW5nIHVwIGZvciBhIHJ1bm5pbmcgZXhlY3V0aW9uIGluIHRoZSBDTEkgc2luY2UgdGhlcmUgaXMgbm8gbGVmdC1vdmVyIHN0YXRlIGluIGNvbnRyYXN0IHRvIGFuIG9wZW4gVGVycmFmb3JtIENsb3VkIHJ1blxuICBwdWJsaWMgYXN5bmMgYWJvcnQoKSB7XG4gICAgcmV0dXJuO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0cnlSZWFkR2VuZXJhdGVkQ29uZmlndXJhdGlvbkZpbGUoXG4gIHdvcmtpbmdEaXI6IHN0cmluZyxcbik6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICBjb25zdCBnZW5lcmF0ZWRDb25maWdQYXRoID0gcGF0aC5qb2luKHdvcmtpbmdEaXIsIEdFTkVSQVRFX0NPTkZJR19PVVRfRklMRSk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhnZW5lcmF0ZWRDb25maWdQYXRoKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoZ2VuZXJhdGVkQ29uZmlnUGF0aCwgXCJ1dGYtOFwiKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeVJlbW92ZUdlbmVyYXRlZENvbmZpZ3VyYXRpb25GaWxlKHdvcmtpbmdEaXI6IHN0cmluZykge1xuICBjb25zdCBnZW5lcmF0ZWRDb25maWdQYXRoID0gcGF0aC5qb2luKHdvcmtpbmdEaXIsIEdFTkVSQVRFX0NPTkZJR19PVVRfRklMRSk7XG4gIGlmIChmcy5leGlzdHNTeW5jKGdlbmVyYXRlZENvbmZpZ1BhdGgpKSB7XG4gICAgZnMudW5saW5rU3luYyhnZW5lcmF0ZWRDb25maWdQYXRoKTtcbiAgfVxufVxuIl19
375
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtLWNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL3RlcnJhZm9ybS1jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBOGdCQSw4RUFRQztBQUVELGtGQUtDO0FBN2hCRCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDREQUFtQztBQUNuQyw0Q0FNd0I7QUFDeEIsMkNBTXFCO0FBRXJCLHFEQU8wQjtBQUMxQixtQ0FBaUM7QUFDakMsc0NBQTRDO0FBQzVDLHNEQUF3RDtBQUN4RCwrREFBeUQ7QUFDekQsZ0RBQXdCO0FBQ3hCLDZDQUErQjtBQUUvQixNQUFNLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO0FBRTFELE1BQWEsZ0JBQ1gsU0FBUSxpQ0FBcUI7SUFHN0IsWUFDa0IsUUFBZ0IsRUFDaEIsSUFBNEI7UUFFNUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsZ0JBQWdCLEVBQUUsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGNBQWMsQ0FBQyxDQUFDO1FBSDlDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFHOUMsQ0FBQztDQUNGO0FBVkQsNENBVUM7QUFFRCxNQUFlLG9CQUFvQjtDQUdsQztBQUdELDRGQUE0RjtBQUM1RixnR0FBZ0c7QUFDaEcsTUFBTSxzQkFBdUIsU0FBUSxvQkFBb0I7SUFDdkQscURBQXFEO0lBQ3JELElBQUk7SUFDSiwwQ0FBMEM7SUFDMUMsSUFBSTtJQUNKLDJDQUEyQztJQUMzQywrQkFBK0I7SUFDL0IsSUFBSTtJQUNKLGdGQUFnRjtJQUNoRixnRkFBZ0Y7SUFDaEYsa0JBQWtCO0lBQ1gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFhO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixPQUFPLENBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDLENBQ2hELENBQUM7SUFDSixDQUFDO0lBQ00sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFDO1FBQ3ZELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FBQztRQUVGLE9BQU8sSUFBQSx3QkFBZSxFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQUVELE1BQWEsWUFBWTtJQVd2QixZQUNtQixXQUF3QixFQUN6QixLQUF1QixFQUN2Qyw0QkFBNEIsQ0FBQyxNQUFjLEVBQUUsT0FBd0IsRUFBRSxFQUFFLENBQ3ZFLENBQUMsT0FBZSxFQUFFLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFBRSxHQUFFLENBQUM7UUFIeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFJdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVE7WUFDWCxDQUFDLEtBQWEsRUFBRSxNQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUN0RSx5QkFBeUIsQ0FDdkIsS0FBSyxFQUNMLE1BQU0sQ0FDUCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFFBQVE7WUFDWCxDQUFDLEtBQWEsRUFBRSxNQUF1QixFQUFFLEVBQUUsQ0FDM0MsQ0FBQyxNQUEyQixFQUFFLEVBQUUsQ0FDOUIseUJBQXlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUtqQjtRQUNDLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxJQUFJLGtCQUFrQixHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDM0MsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuRSxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBQSxzQ0FBZ0IsRUFDNUM7WUFDRSxJQUFJLEVBQUUsNkJBQW1CO1lBQ3pCLElBQUk7WUFDSixPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQVU7YUFDeEI7U0FDRixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDYixJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsK0NBQStDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsdURBQXVELENBQUMsRUFDdEUsQ0FBQztnQkFDRCx5R0FBeUc7Z0JBQ3pHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUN0QixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNmLGtCQUFrQixDQUNoQiw0REFBNEQsQ0FDN0QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLENBQUM7UUFFNUQsZ0ZBQWdGO1FBQ2hGLCtFQUErRTtRQUMvRSwyQ0FBMkM7UUFDM0MsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUEsY0FBSSxFQUNSLDZCQUFtQixFQUNuQjtnQkFDRSxXQUFXO2dCQUNYLE1BQU07Z0JBQ04sdUJBQXVCO2dCQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3ZDLEVBQ0Q7Z0JBQ0UsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3RCLEVBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FDdEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBWSxZQUFZOztRQUN0QixNQUFNLFdBQVcsR0FBRyxvQ0FBbUIsQ0FBQyxLQUFLLENBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FDL0IsQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUNaLENBQUEsTUFBQSxNQUFBLFdBQVcsQ0FBQyxTQUFTLDBDQUFFLE9BQU8sMENBQUUsTUFBTSxNQUFJLE1BQUEsV0FBVyxDQUFDLFNBQVMsMENBQUUsS0FBSyxDQUFBLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBWSxVQUFVO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLG9DQUFtQixDQUFDLEtBQUssQ0FDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUMvQixDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBT2pCO1FBQ0MsTUFBTSxFQUNKLE9BQU8sR0FBRyxLQUFLLEVBQ2YsV0FBVyxHQUFHLEtBQUssRUFDbkIsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUNoQixJQUFJLEdBQUcsRUFBRSxFQUNULFFBQVEsR0FBRyxFQUFFLEVBQ2IsT0FBTyxHQUFHLEtBQUssR0FDaEIsR0FBRyxJQUFJLENBQUM7UUFDVCxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6QyxNQUFNLG1CQUFtQixHQUFHLGNBQUksQ0FBQyxJQUFJLENBQ25DLElBQUksQ0FBQyxPQUFPLEVBQ1osd0JBQXdCLENBQ3pCLENBQUM7UUFDRixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0Isd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXhELGdCQUFNLENBQUMsS0FBSyxDQUNWLGFBQWEsNkJBQW1CLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQzNFLENBQUM7UUFFRixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUxQixNQUFNLElBQUEsY0FBSSxFQUNSLDZCQUFtQixFQUNuQixPQUFPLEVBQ1A7WUFDRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDakIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztZQUN4QixPQUFPO1NBQ1IsRUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsRUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FDakIsRUFDRSxXQUFXLEdBQUcsS0FBSyxFQUNuQixXQUFXLEdBQUcsS0FBSyxFQUNuQixPQUFPLEdBQUcsS0FBSyxFQUNmLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFDaEIsWUFBWSxHQUFHLEVBQUUsRUFDakIsSUFBSSxHQUFHLEVBQUUsRUFDVCxRQUFRLEdBQUcsRUFBRSxHQUNkLEVBQ0QsUUFBK0M7UUFFL0MsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUN4RCxJQUFBLDRDQUEyQixFQUN6QjtZQUNFLG1CQUFtQixFQUFuQiw2QkFBbUI7WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFdBQVc7WUFDWCxPQUFPO1lBQ1AsV0FBVztZQUNYLFdBQVc7WUFDWCxZQUFZO1lBQ1osSUFBSTtZQUNKLFFBQVE7U0FDVCxFQUNELE9BQU8sQ0FDUixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FDbEIsRUFDRSxXQUFXLEdBQUcsS0FBSyxFQUNuQixXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQ2hCLE9BQU8sR0FBRyxLQUFLLEVBQ2YsWUFBWSxHQUFHLEVBQUUsRUFDakIsSUFBSSxHQUFHLEVBQUUsRUFDVCxRQUFRLEdBQUcsRUFBRSxHQUNkLEVBQ0QsUUFBK0M7UUFFL0MsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUN6RCxJQUFBLDZDQUE0QixFQUMxQjtZQUNFLG1CQUFtQixFQUFuQiw2QkFBbUI7WUFDbkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFdBQVc7WUFDWCxXQUFXO1lBQ1gsT0FBTztZQUNQLFlBQVk7WUFDWixJQUFJO1lBQ0osUUFBUTtTQUNULEVBQ0QsT0FBTyxDQUNSLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUN6QixJQUEwQixFQUMxQixRQUErQyxFQUMvQyxhQUFnRTs7UUFFaEUsNEdBQTRHO1FBQzVHLDhHQUE4RztRQUM5Ryw2R0FBNkc7UUFDN0csMENBQTBDO1FBQzFDLE1BQU0sT0FBTyxHQUE0QixDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzNELElBQ0UsZUFBZSxDQUFDLElBQUksS0FBSyxlQUFlO2dCQUN4QyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsTUFBTSxFQUM3RCxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FDVixzQ0FBc0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUM5RCxDQUFDO1lBQ0YsSUFBSSxJQUFBLDhCQUFhLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDO2dCQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDL0IsSUFBSSxJQUFBLDhCQUFhLEVBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDO2dCQUNsRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzNELElBQUksSUFBQSw4QkFBYSxFQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQztnQkFDbEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUM1RCxJQUFJLElBQUEsOEJBQWEsRUFBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7Z0JBQ3BELFFBQVEsQ0FBQztvQkFDUCxJQUFJLEVBQUUsa0NBQWtDO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakIsQ0FBQyxDQUFDO2lCQUNBLElBQUksSUFBQSw4QkFBYSxFQUFDLEtBQUssRUFBRSw4QkFBOEIsQ0FBQztnQkFDM0QsUUFBUSxDQUFDO29CQUNQLElBQUksRUFBRSxrQ0FBa0M7b0JBQ3hDLFVBQVUsRUFBRSxLQUFLO2lCQUNsQixDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkMsNEdBQTRHO1FBQzVHLElBQUksYUFBYSxHQUE0QixNQUFNLENBQUM7UUFDcEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUF3QixFQUFFLEVBQUU7WUFDbEQsb0dBQW9HO1lBQ3BHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQUUsT0FBTztZQUU1QyxnQkFBTSxDQUFDLEtBQUssQ0FDVixpREFBaUQsSUFBSSxDQUFDLFNBQVMsQ0FDN0QsYUFBYSxDQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDekMsQ0FBQztZQUVGLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsUUFBUSxDQUFDO29CQUNQLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO29CQUNoRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztpQkFDL0MsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLFFBQVEsQ0FBQztvQkFDUCxJQUFJLEVBQUUsK0JBQStCO29CQUNyQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztvQkFDbEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztpQkFDeEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxRQUFRLENBQUM7b0JBQ1AsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztpQkFDL0MsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2pDLENBQUMsQ0FBQztRQUVGLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXRDLDhFQUE4RTtRQUM5RSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUMvQixPQUFPLEVBQ1AsR0FBRyxFQUFFO1lBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsRUFDRCxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FDZixDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLGdCQUFPLEVBQzVCLE9BQU8sRUFDUCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQ3hDO1lBQ0UsT0FBTyxFQUFFLFFBQVE7U0FDbEIsQ0FDRixDQUFDO1FBRUYsNEVBQTRFO1FBQzVFLE1BQU0sUUFBUSxHQUFHLE1BQUEsUUFBUSxDQUFDLE1BQU0sMENBQUUsUUFBUSxDQUFDO1FBRTNDLGdCQUFNLENBQUMsS0FBSyxDQUNWLDhCQUE4QixJQUFJLDhEQUE4RCxJQUFJLENBQUMsU0FBUyxDQUM1RyxRQUFRLENBQ1QsY0FBYyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNsRCxDQUFDO1FBRUYsSUFDRSxRQUFRLEtBQUssU0FBUztZQUN0QixRQUFRLEtBQUssQ0FBQztZQUNkLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMscUNBQXFDO1VBQ2pFLENBQUM7WUFDRCxNQUFNLGdEQUFnRCxRQUFRLEVBQUUsQ0FBQztRQUNuRSxDQUFDO1FBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sSUFBQSxjQUFJLEVBQ2YsNkJBQW1CLEVBQ25CLENBQUMsU0FBUyxDQUFDLEVBQ1g7Z0JBQ0UsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNqQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDeEIsT0FBTyxFQUFFLElBQUk7YUFDZCxFQUNELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQ3pCLENBQUM7UUFDSixDQUFDO1FBQUMsV0FBTSxDQUFDO1lBQ1AsTUFBTSxJQUFJLEtBQUssQ0FDYixpSUFBaUksQ0FDbEksQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLGNBQUksRUFDdkIsNkJBQW1CLEVBQ25CLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUNuQjtZQUNFLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTztZQUNqQixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3hCLE9BQU8sRUFBRSxJQUFJO1NBQ2Q7UUFDRCxnRUFBZ0U7UUFDaEUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ3hCLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLGdCQUFNLENBQUMsUUFBUSxDQUNuQixxQ0FBcUMsQ0FBQyxxQkFBcUIsTUFBTSxHQUFHLENBQ3JFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLHFEQUFxRDtRQUNyRCwwQkFBMEI7UUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFBLDBCQUFnQixFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQjtnQkFDOUIsUUFBUTtvQkFDUixPQUFPO29CQUNQLG9EQUFvRCxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQscUpBQXFKO0lBQzlJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLE9BQU87SUFDVCxDQUFDO0NBQ0Y7QUF2YkQsb0NBdWJDO0FBRU0sS0FBSyxVQUFVLGlDQUFpQyxDQUNyRCxVQUFrQjtJQUVsQixNQUFNLG1CQUFtQixHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDNUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRU0sS0FBSyxVQUFVLG1DQUFtQyxDQUFDLFVBQWtCO0lBQzFFLE1BQU0sbUJBQW1CLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUM1RSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLEVBQUUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNyQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gXCJzdHJpcC1hbnNpXCI7XG5pbXBvcnQge1xuICBFcnJvcnMsXG4gIGV4ZWMsXG4gIGxvZ2dlcixcbiAgcmVhZENES1RGVmVyc2lvbixcbiAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm0sXG4gIFRlcnJhZm9ybVBsYW4sXG4gIFRlcnJhZm9ybU91dHB1dCxcbiAgQWJzdHJhY3RUZXJyYWZvcm1QbGFuLFxuICBUZXJyYWZvcm1EZXBsb3lTdGF0ZSxcbn0gZnJvbSBcIi4vdGVycmFmb3JtXCI7XG5pbXBvcnQgeyBTeW50aGVzaXplZFN0YWNrIH0gZnJvbSBcIi4uL3N5bnRoLXN0YWNrXCI7XG5pbXBvcnQge1xuICBjcmVhdGVBbmRTdGFydERlcGxveVNlcnZpY2UsXG4gIGNyZWF0ZUFuZFN0YXJ0RGVzdHJveVNlcnZpY2UsXG4gIERlcGxveUFjdG9yLFxuICBEZXBsb3lJbnNwZWN0aW9uSGFuZGxlcixcbiAgRGVwbG95U25hcHNob3QsXG4gIGlzRGVwbG95RXZlbnQsXG59IGZyb20gXCIuL2RlcGxveS1tYWNoaW5lXCI7XG5pbXBvcnQgeyB3YWl0Rm9yIH0gZnJvbSBcInhzdGF0ZVwiO1xuaW1wb3J0IHsgbWlzc2luZ1ZhcmlhYmxlIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHsgdGVycmFmb3JtSnNvblNjaGVtYSB9IGZyb20gXCIuLi90ZXJyYWZvcm0tanNvblwiO1xuaW1wb3J0IHsgc3Bhd25JbnRlcmFjdGl2ZSB9IGZyb20gXCIuL2ludGVyYWN0aXZlLXByb2Nlc3NcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcblxuY29uc3QgR0VORVJBVEVfQ09ORklHX09VVF9GSUxFID0gXCJnZW5lcmF0ZWRfcmVzb3VyY2VzLnRmXCI7XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1DbGlQbGFuXG4gIGV4dGVuZHMgQWJzdHJhY3RUZXJyYWZvcm1QbGFuXG4gIGltcGxlbWVudHMgVGVycmFmb3JtUGxhblxue1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGxhbkZpbGU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGxhbjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAgKSB7XG4gICAgc3VwZXIocGxhbkZpbGUsIHBsYW4/LnJlc291cmNlX2NoYW5nZXMsIHBsYW4/Lm91dHB1dF9jaGFuZ2VzKTtcbiAgfVxufVxuXG5hYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE91dHB1dEZpbHRlciB7XG4gIHB1YmxpYyBzdGF0aWMgY29uZGl0aW9uOiAobGluZTogc3RyaW5nKSA9PiBib29sZWFuO1xuICBwdWJsaWMgc3RhdGljIHRyYW5zZm9ybTogKGxpbmU6IHN0cmluZykgPT4gc3RyaW5nO1xufVxuZXhwb3J0IHR5cGUgT3V0cHV0RmlsdGVyID0gdHlwZW9mIEFic3RyYWN0T3V0cHV0RmlsdGVyO1xuXG4vLyBUaGUgcGxhbiBtaWdodCBlcnJvciBpZiB0aGVyZSBpcyBhIHZhcmlhYmxlIG1pc3NpbmcsIGJ1dCB0aGUgZXJyb3IgbWVzc2FnZSBoaW50cyB0aGUgdXNlclxuLy8gaW4gYSB3cm9uZyBkaXJlY3Rpb24uIFdlIHRoZXJlZm9yZSBjYXRjaCB0aGUgZXJyb3IgYW5kIHJldGhyb3cgaXQgd2l0aCBhIG1vcmUgaGVscGZ1bCBtZXNzYWdlXG5jbGFzcyBWYXJpYWJsZVJlcXVpcmVkRmlsdGVyIGV4dGVuZHMgQWJzdHJhY3RPdXRwdXRGaWx0ZXIge1xuICAvLyBFeGFtcGxlIGZvciBcIk5vIHZhbHVlIGZvciByZXF1aXJlZCB2YXJpYWJsZVwiIGVycm9yXG4gIC8vIOKVt1xuICAvLyDilIIgRXJyb3I6IE5vIHZhbHVlIGZvciByZXF1aXJlZCB2YXJpYWJsZVxuICAvLyDilIJcbiAgLy8g4pSCICAgb24gY2RrLnRmLmpzb24gbGluZSAzMSwgaW4gdmFyaWFibGU6XG4gIC8vIOKUgiAgIDMxOiAgICAgXCJ3aXRoLWRhc2hlc1wiOiB7XG4gIC8vIOKUglxuICAvLyDilIIgVGhlIHJvb3QgbW9kdWxlIGlucHV0IHZhcmlhYmxlIFwid2l0aC1kYXNoZXNcIiBpcyBub3Qgc2V0LCBhbmQgaGFzIG5vIGRlZmF1bHRcbiAgLy8g4pSCIHZhbHVlLiBVc2UgYSAtdmFyIG9yIC12YXItZmlsZSBjb21tYW5kIGxpbmUgYXJndW1lbnQgdG8gcHJvdmlkZSBhIHZhbHVlIGZvclxuICAvLyDilIIgdGhpcyB2YXJpYWJsZVxuICBwdWJsaWMgc3RhdGljIGNvbmRpdGlvbihpbnB1dDogc3RyaW5nKSB7XG4gICAgY29uc3QgbGluZSA9IHN0cmlwQW5zaShpbnB1dCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgbGluZS5pbmNsdWRlcyhcIkVycm9yOiBObyB2YWx1ZSBmb3IgcmVxdWlyZWQgdmFyaWFibGVcIikgJiZcbiAgICAgIGxpbmUuaW5jbHVkZXMoXCJUaGUgcm9vdCBtb2R1bGUgaW5wdXQgdmFyaWFibGVcIilcbiAgICApO1xuICB9XG4gIHB1YmxpYyBzdGF0aWMgdHJhbnNmb3JtKGxpbmU6IHN0cmluZykge1xuICAgIGNvbnN0IHN0YXJ0TWFya2VyID0gJ1RoZSByb290IG1vZHVsZSBpbnB1dCB2YXJpYWJsZSBcIic7XG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gbGluZS5zdWJzdHJpbmcoXG4gICAgICBsaW5lLmluZGV4T2Yoc3RhcnRNYXJrZXIpICsgc3RhcnRNYXJrZXIubGVuZ3RoLFxuICAgICAgbGluZS5pbmRleE9mKCdcIiBpcyBub3Qgc2V0JyksXG4gICAgKTtcblxuICAgIHJldHVybiBtaXNzaW5nVmFyaWFibGUodmFyaWFibGVOYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtQ2xpIGltcGxlbWVudHMgVGVycmFmb3JtIHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtkaXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBvblN0ZG91dDogKFxuICAgIHN0YXRlTmFtZTogc3RyaW5nLFxuICAgIGZpbHRlcj86IE91dHB1dEZpbHRlcltdLFxuICApID0+IChzdGRvdXQ6IEJ1ZmZlciB8IHN0cmluZykgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSBvblN0ZGVycjogKFxuICAgIHN0YXRlTmFtZTogc3RyaW5nLFxuICAgIGZpbHRlcj86IE91dHB1dEZpbHRlcltdLFxuICApID0+IChzdGRlcnI6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWNrOiBTeW50aGVzaXplZFN0YWNrLFxuICAgIGNyZWF0ZVRlcnJhZm9ybUxvZ0hhbmRsZXIgPSAoX3BoYXNlOiBzdHJpbmcsIF9maWx0ZXI/OiBPdXRwdXRGaWx0ZXJbXSkgPT5cbiAgICAgIChfc3Rkb3V0OiBzdHJpbmcsIF9pc0VyciA9IGZhbHNlKSA9PiB7fSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZGlyID0gc3RhY2sud29ya2luZ0RpcmVjdG9yeTtcbiAgICB0aGlzLm9uU3Rkb3V0ID1cbiAgICAgIChwaGFzZTogc3RyaW5nLCBmaWx0ZXI/OiBPdXRwdXRGaWx0ZXJbXSkgPT4gKHN0ZG91dDogQnVmZmVyIHwgc3RyaW5nKSA9PlxuICAgICAgICBjcmVhdGVUZXJyYWZvcm1Mb2dIYW5kbGVyKFxuICAgICAgICAgIHBoYXNlLFxuICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgKShCdWZmZXIuaXNCdWZmZXIoc3Rkb3V0KSA/IHN0ZG91dC50b1N0cmluZygpIDogc3Rkb3V0KTtcbiAgICB0aGlzLm9uU3RkZXJyID1cbiAgICAgIChwaGFzZTogc3RyaW5nLCBmaWx0ZXI/OiBPdXRwdXRGaWx0ZXJbXSkgPT5cbiAgICAgIChzdGRlcnI6IHN0cmluZyB8IFVpbnQ4QXJyYXkpID0+XG4gICAgICAgIGNyZWF0ZVRlcnJhZm9ybUxvZ0hhbmRsZXIocGhhc2UsIGZpbHRlcikoc3RkZXJyLnRvU3RyaW5nKCksIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXQob3B0czoge1xuICAgIG5lZWRzVXBncmFkZTogYm9vbGVhbjtcbiAgICBub0NvbG9yPzogYm9vbGVhbjtcbiAgICBtaWdyYXRlU3RhdGU6IGJvb2xlYW47XG4gICAgbmVlZHNMb2NrZmlsZVVwZGF0ZTogYm9vbGVhbjtcbiAgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2V0VXNlckFnZW50KCk7XG5cbiAgICBjb25zdCBhcmdzID0gW1wiaW5pdFwiXTtcbiAgICBpZiAob3B0cy5uZWVkc1VwZ3JhZGUpIHtcbiAgICAgIGFyZ3MucHVzaChcIi11cGdyYWRlXCIpO1xuICAgIH1cbiAgICBpZiAob3B0cy5ub0NvbG9yKSB7XG4gICAgICBhcmdzLnB1c2goXCItbm8tY29sb3JcIik7XG4gICAgfVxuICAgIGlmIChvcHRzLm1pZ3JhdGVTdGF0ZSkge1xuICAgICAgYXJncy5wdXNoKFwiLW1pZ3JhdGUtc3RhdGVcIik7XG4gICAgfVxuXG4gICAgbGV0IGluaXRDYW5Ob3RDb250aW51ZSA9IChfZXJyOiBhbnkpID0+IHt9O1xuICAgIGNvbnN0IHJlamVjdHNJZkluaXRDYW5Ob3RDb250aW51ZSA9IG5ldyBQcm9taXNlKChfcmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpbml0Q2FuTm90Q29udGludWUgPSByZWplY3Q7XG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGRvdXQgPSB0aGlzLm9uU3Rkb3V0KFwiaW5pdFwiKTtcbiAgICBjb25zdCB7IGFjdGlvbnMsIGV4aXRDb2RlIH0gPSBzcGF3bkludGVyYWN0aXZlKFxuICAgICAge1xuICAgICAgICBmaWxlOiB0ZXJyYWZvcm1CaW5hcnlOYW1lLFxuICAgICAgICBhcmdzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgY3dkOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudiBhcyBhbnksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgc3Rkb3V0KGRhdGEpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZGF0YS5pbmNsdWRlcyhcIlNob3VsZCBUZXJyYWZvcm0gbWlncmF0ZSB5b3VyIGV4aXN0aW5nIHN0YXRlP1wiKSB8fFxuICAgICAgICAgIGRhdGEuaW5jbHVkZXMoXCJEbyB5b3Ugd2FudCB0byBjb3B5IGV4aXN0aW5nIHN0YXRlIHRvIHRoZSBuZXcgYmFja2VuZFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIG9ubHkgaGFwcGVucyB3aGVuIHRlcnJhZm9ybSBpcyBwYXNzZWQgdGhlIC1taWdyYXRlLXN0YXRlIGFueXdheSwgc28gdGhpcyBjaGVjayBpcyByZWR1bmRhbnRcbiAgICAgICAgICBpZiAob3B0cy5taWdyYXRlU3RhdGUpIHtcbiAgICAgICAgICAgIGFjdGlvbnMud3JpdGVMaW5lKFwieWVzXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3Rpb25zLnN0b3AoKTtcbiAgICAgICAgICAgIGluaXRDYW5Ob3RDb250aW51ZShcbiAgICAgICAgICAgICAgXCJQbGVhc2UgcGFzcyB0aGUgLS1taWdyYXRlLXN0YXRlIGZsYWcgdG8gbWlncmF0ZSB5b3VyIHN0YXRlXCIsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICAgIHRoaXMuYWJvcnRTaWduYWwuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsICgpID0+IHtcbiAgICAgIGFjdGlvbnMuc3RvcCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBleGl0Q29kZS50aGVuKChjb2RlKSA9PiB7XG4gICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHRlcnJhZm9ybSBpbml0IGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5yYWNlKFtwcm9ncmVzcywgcmVqZWN0c0lmSW5pdENhbk5vdENvbnRpbnVlXSk7XG5cbiAgICAvLyBUT0RPOiB0aGlzIG1pZ2h0IGhhdmUgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBpZiB3ZSdyZVxuICAgIC8vIHJ1bm5pbmcgYSByZW1vdGUgcGxhbiBvciBhIGxvY2FsIG9uZSAoc28gd2UgcnVuIGl0IGFsd2F5cyBmb3IgYWxsIHBsYXRmb3JtcylcbiAgICAvLyB3aGlsZSB3ZSdkIG9ubHkgbmVlZCBpdCBmb3IgcmVtb3RlIHBsYW5zXG4gICAgaWYgKG9wdHMubmVlZHNMb2NrZmlsZVVwZGF0ZSkge1xuICAgICAgYXdhaXQgZXhlYyhcbiAgICAgICAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICAgICAgW1xuICAgICAgICAgIFwicHJvdmlkZXJzXCIsXG4gICAgICAgICAgXCJsb2NrXCIsXG4gICAgICAgICAgXCItcGxhdGZvcm09bGludXhfYW1kNjRcIixcbiAgICAgICAgICAuLi4ob3B0cy5ub0NvbG9yID8gW1wiLW5vLWNvbG9yXCJdIDogW10pLFxuICAgICAgICBdLFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBzaWduYWw6IHRoaXMuYWJvcnRTaWduYWwsXG4gICAgICAgICAgbm9Db2xvcjogb3B0cy5ub0NvbG9yLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLm9uU3Rkb3V0KFwiaW5pdFwiKSxcbiAgICAgICAgdGhpcy5vblN0ZGVycihcImluaXRcIiksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzQ2xvdWRTdGFjaygpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJzZWRTdGFjayA9IHRlcnJhZm9ybUpzb25TY2hlbWEucGFyc2UoXG4gICAgICBKU09OLnBhcnNlKHRoaXMuc3RhY2suY29udGVudCksXG4gICAgKTtcblxuICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgcGFyc2VkU3RhY2sudGVycmFmb3JtPy5iYWNrZW5kPy5yZW1vdGUgfHwgcGFyc2VkU3RhY2sudGVycmFmb3JtPy5jbG91ZCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzSW1wb3J0cygpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXJzZWRTdGFjayA9IHRlcnJhZm9ybUpzb25TY2hlbWEucGFyc2UoXG4gICAgICBKU09OLnBhcnNlKHRoaXMuc3RhY2suY29udGVudCksXG4gICAgKTtcblxuICAgIHJldHVybiBCb29sZWFuKHBhcnNlZFN0YWNrLmltcG9ydCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGxhbihvcHRzOiB7XG4gICAgZGVzdHJveTogYm9vbGVhbjtcbiAgICByZWZyZXNoT25seT86IGJvb2xlYW47XG4gICAgcGFyYWxsZWxpc20/OiBudW1iZXI7XG4gICAgdmFycz86IHN0cmluZ1tdO1xuICAgIHZhckZpbGVzPzogc3RyaW5nW107XG4gICAgbm9Db2xvcj86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBkZXN0cm95ID0gZmFsc2UsXG4gICAgICByZWZyZXNoT25seSA9IGZhbHNlLFxuICAgICAgcGFyYWxsZWxpc20gPSAtMSxcbiAgICAgIHZhcnMgPSBbXSxcbiAgICAgIHZhckZpbGVzID0gW10sXG4gICAgICBub0NvbG9yID0gZmFsc2UsXG4gICAgfSA9IG9wdHM7XG4gICAgY29uc3Qgb3B0aW9ucyA9IFtcInBsYW5cIiwgXCItaW5wdXQ9ZmFsc2VcIl07XG5cbiAgICBjb25zdCBnZW5lcmF0ZWRDb25maWdGaWxlID0gcGF0aC5qb2luKFxuICAgICAgdGhpcy53b3JrZGlyLFxuICAgICAgR0VORVJBVEVfQ09ORklHX09VVF9GSUxFLFxuICAgICk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZ2VuZXJhdGVkQ29uZmlnRmlsZSkpIHtcbiAgICAgIGZzLnJlbW92ZShnZW5lcmF0ZWRDb25maWdGaWxlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzSW1wb3J0cykge1xuICAgICAgb3B0aW9ucy5wdXNoKGAtZ2VuZXJhdGUtY29uZmlnLW91dD0ke0dFTkVSQVRFX0NPTkZJR19PVVRfRklMRX1gKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzQ2xvdWRTdGFjaykge1xuICAgICAgY29uc3QgcGxhbkZpbGUgPSBcInBsYW5cIjtcbiAgICAgIG9wdGlvbnMucHVzaChcIi1vdXRcIiwgcGxhbkZpbGUpO1xuICAgIH1cblxuICAgIGlmIChkZXN0cm95KSB7XG4gICAgICBvcHRpb25zLnB1c2goXCItZGVzdHJveVwiKTtcbiAgICB9XG4gICAgaWYgKHJlZnJlc2hPbmx5KSB7XG4gICAgICBvcHRpb25zLnB1c2goXCItcmVmcmVzaC1vbmx5XCIpO1xuICAgIH1cbiAgICBpZiAocGFyYWxsZWxpc20gPiAtMSkge1xuICAgICAgb3B0aW9ucy5wdXNoKGAtcGFyYWxsZWxpc209JHtwYXJhbGxlbGlzbX1gKTtcbiAgICB9XG4gICAgaWYgKG5vQ29sb3IpIHtcbiAgICAgIG9wdGlvbnMucHVzaChcIi1uby1jb2xvclwiKTtcbiAgICB9XG5cbiAgICB2YXJzLmZvckVhY2goKHYpID0+IG9wdGlvbnMucHVzaChgLXZhcj0ke3Z9YCkpO1xuICAgIHZhckZpbGVzLmZvckVhY2goKHYpID0+IG9wdGlvbnMucHVzaChgLXZhci1maWxlPSR7dn1gKSk7XG5cbiAgICBsb2dnZXIuZGVidWcoXG4gICAgICBgRXhlY3V0aW5nICR7dGVycmFmb3JtQmluYXJ5TmFtZX0gJHtvcHRpb25zLmpvaW4oXCIgXCIpfSBpbiAke3RoaXMud29ya2Rpcn1gLFxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLnNldFVzZXJBZ2VudCgpO1xuXG4gICAgYXdhaXQgZXhlYyhcbiAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICBvcHRpb25zLFxuICAgICAge1xuICAgICAgICBjd2Q6IHRoaXMud29ya2RpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgc2lnbmFsOiB0aGlzLmFib3J0U2lnbmFsLFxuICAgICAgICBub0NvbG9yLFxuICAgICAgfSxcbiAgICAgIHRoaXMub25TdGRvdXQoXCJwbGFuXCIsIFtWYXJpYWJsZVJlcXVpcmVkRmlsdGVyXSksXG4gICAgICB0aGlzLm9uU3RkZXJyKFwicGxhblwiLCBbVmFyaWFibGVSZXF1aXJlZEZpbHRlcl0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVwbG95KFxuICAgIHtcbiAgICAgIGF1dG9BcHByb3ZlID0gZmFsc2UsXG4gICAgICByZWZyZXNoT25seSA9IGZhbHNlLFxuICAgICAgbm9Db2xvciA9IGZhbHNlLFxuICAgICAgcGFyYWxsZWxpc20gPSAtMSxcbiAgICAgIGV4dHJhT3B0aW9ucyA9IFtdLFxuICAgICAgdmFycyA9IFtdLFxuICAgICAgdmFyRmlsZXMgPSBbXSxcbiAgICB9LFxuICAgIGNhbGxiYWNrOiAoc3RhdGU6IFRlcnJhZm9ybURlcGxveVN0YXRlKSA9PiB2b2lkLFxuICApOiBQcm9taXNlPHsgY2FuY2VsbGVkOiBib29sZWFuIH0+IHtcbiAgICBhd2FpdCB0aGlzLnNldFVzZXJBZ2VudCgpO1xuICAgIHJldHVybiB0aGlzLmhhbmRsZVNlcnZpY2UoXCJkZXBsb3lcIiwgY2FsbGJhY2ssIChpbnNwZWN0KSA9PlxuICAgICAgY3JlYXRlQW5kU3RhcnREZXBsb3lTZXJ2aWNlKFxuICAgICAgICB7XG4gICAgICAgICAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICAgICAgICB3b3JrZGlyOiB0aGlzLndvcmtkaXIsXG4gICAgICAgICAgcmVmcmVzaE9ubHksXG4gICAgICAgICAgbm9Db2xvcixcbiAgICAgICAgICBhdXRvQXBwcm92ZSxcbiAgICAgICAgICBwYXJhbGxlbGlzbSxcbiAgICAgICAgICBleHRyYU9wdGlvbnMsXG4gICAgICAgICAgdmFycyxcbiAgICAgICAgICB2YXJGaWxlcyxcbiAgICAgICAgfSxcbiAgICAgICAgaW5zcGVjdCxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZXN0cm95KFxuICAgIHtcbiAgICAgIGF1dG9BcHByb3ZlID0gZmFsc2UsXG4gICAgICBwYXJhbGxlbGlzbSA9IC0xLFxuICAgICAgbm9Db2xvciA9IGZhbHNlLFxuICAgICAgZXh0cmFPcHRpb25zID0gW10sXG4gICAgICB2YXJzID0gW10sXG4gICAgICB2YXJGaWxlcyA9IFtdLFxuICAgIH0sXG4gICAgY2FsbGJhY2s6IChzdGF0ZTogVGVycmFmb3JtRGVwbG95U3RhdGUpID0+IHZvaWQsXG4gICk6IFByb21pc2U8eyBjYW5jZWxsZWQ6IGJvb2xlYW4gfT4ge1xuICAgIGF3YWl0IHRoaXMuc2V0VXNlckFnZW50KCk7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlU2VydmljZShcImRlc3Ryb3lcIiwgY2FsbGJhY2ssIChpbnNwZWN0KSA9PlxuICAgICAgY3JlYXRlQW5kU3RhcnREZXN0cm95U2VydmljZShcbiAgICAgICAge1xuICAgICAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICAgICAgd29ya2RpcjogdGhpcy53b3JrZGlyLFxuICAgICAgICAgIGF1dG9BcHByb3ZlLFxuICAgICAgICAgIHBhcmFsbGVsaXNtLFxuICAgICAgICAgIG5vQ29sb3IsXG4gICAgICAgICAgZXh0cmFPcHRpb25zLFxuICAgICAgICAgIHZhcnMsXG4gICAgICAgICAgdmFyRmlsZXMsXG4gICAgICAgIH0sXG4gICAgICAgIGluc3BlY3QsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVNlcnZpY2UoXG4gICAgdHlwZTogXCJkZXBsb3lcIiB8IFwiZGVzdHJveVwiLFxuICAgIGNhbGxiYWNrOiAoc3RhdGU6IFRlcnJhZm9ybURlcGxveVN0YXRlKSA9PiB2b2lkLFxuICAgIGNyZWF0ZVNlcnZpY2U6IChpbnNwZWN0OiBEZXBsb3lJbnNwZWN0aW9uSGFuZGxlcikgPT4gRGVwbG95QWN0b3IsXG4gICk6IFByb21pc2U8eyBjYW5jZWxsZWQ6IGJvb2xlYW4gfT4ge1xuICAgIC8vIEV2ZW50cyByZWFjaCB1cyB0aHJvdWdoIGluc3BlY3Rpb24sIHdoaWNoIGZpcmVzIGZvciB0aGUgd2hvbGUgYWN0b3IgdHJlZS4gRmlsdGVyIHRvIHRoZSByb290IGRlcGxveSBhY3RvclxuICAgIC8vIChpdHMgc2Vzc2lvbklkIGVxdWFscyB0aGUgdHJlZSdzIHJvb3RJZCkgc28gd2UgZG9uJ3QgcmVhY3QgdG8gdGhlIGludm9rZWQgcHR5IGNoaWxkJ3Mgb3duIGV2ZW50cy4gQ29tcGFyaW5nXG4gICAgLy8gc2Vzc2lvbklkIHJhdGhlciB0aGFuIHRoZSBhY3RvciByZWYga2VlcHMgdGhpcyBzZWxmLWNvbnRhaW5lZDogaW5zcGVjdGlvbiBmaXJlcyBkdXJpbmcgc3RhcnR1cCwgYmVmb3JlIHRoZVxuICAgIC8vIGBzZXJ2aWNlYCBiaW5kaW5nIGJlbG93IGlzIGluaXRpYWxpemVkLlxuICAgIGNvbnN0IGluc3BlY3Q6IERlcGxveUluc3BlY3Rpb25IYW5kbGVyID0gKGluc3BlY3Rpb25FdmVudCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBpbnNwZWN0aW9uRXZlbnQudHlwZSAhPT0gXCJAeHN0YXRlLmV2ZW50XCIgfHxcbiAgICAgICAgaW5zcGVjdGlvbkV2ZW50LmFjdG9yUmVmLnNlc3Npb25JZCAhPT0gaW5zcGVjdGlvbkV2ZW50LnJvb3RJZFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXZlbnQgPSBpbnNwZWN0aW9uRXZlbnQuZXZlbnQ7XG4gICAgICBsb2dnZXIudHJhY2UoXG4gICAgICAgIGBUZXJyYWZvcm0gQ0xJIHN0YXRlIG1hY2hpbmUgZXZlbnQ6ICR7SlNPTi5zdHJpbmdpZnkoZXZlbnQpfWAsXG4gICAgICApO1xuICAgICAgaWYgKGlzRGVwbG95RXZlbnQoZXZlbnQsIFwiT1VUUFVUX1JFQ0VJVkVEXCIpKVxuICAgICAgICB0aGlzLm9uU3Rkb3V0KHR5cGUpKGV2ZW50Lm91dHB1dCk7XG4gICAgICBlbHNlIGlmIChpc0RlcGxveUV2ZW50KGV2ZW50LCBcIkFQUFJPVkVEX0VYVEVSTkFMTFlcIikpXG4gICAgICAgIGNhbGxiYWNrKHsgdHlwZTogXCJleHRlcm5hbCBhcHByb3ZhbCByZXBseVwiLCBhcHByb3ZlZDogdHJ1ZSB9KTtcbiAgICAgIGVsc2UgaWYgKGlzRGVwbG95RXZlbnQoZXZlbnQsIFwiUkVKRUNURURfRVhURVJOQUxMWVwiKSlcbiAgICAgICAgY2FsbGJhY2soeyB0eXBlOiBcImV4dGVybmFsIGFwcHJvdmFsIHJlcGx5XCIsIGFwcHJvdmVkOiBmYWxzZSB9KTtcbiAgICAgIGVsc2UgaWYgKGlzRGVwbG95RXZlbnQoZXZlbnQsIFwiT1ZFUlJJRERFTl9FWFRFUk5BTExZXCIpKVxuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgdHlwZTogXCJleHRlcm5hbCBzZW50aW5lbCBvdmVycmlkZSByZXBseVwiLFxuICAgICAgICAgIG92ZXJyaWRkZW46IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgZWxzZSBpZiAoaXNEZXBsb3lFdmVudChldmVudCwgXCJPVkVSUklERV9SRUpFQ1RFRF9FWFRFUk5BTExZXCIpKVxuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgdHlwZTogXCJleHRlcm5hbCBzZW50aW5lbCBvdmVycmlkZSByZXBseVwiLFxuICAgICAgICAgIG92ZXJyaWRkZW46IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VydmljZSA9IGNyZWF0ZVNlcnZpY2UoaW5zcGVjdCk7XG5cbiAgICAvLyBUcmFuc2l0aW9ucyBjb21lIGZyb20gdGhlIGFjdG9yJ3Mgb3duIHN1YnNjcmlwdGlvbiwgd2hpY2ggeWllbGRzIHR5cGVkIHNuYXBzaG90cyBmb3IgdGhlIHJvb3QgYWN0b3Igb25seS5cbiAgICBsZXQgcHJldmlvdXNTdGF0ZTogRGVwbG95U25hcHNob3RbXCJ2YWx1ZVwiXSA9IFwiaWRsZVwiO1xuICAgIGNvbnN0IGhhbmRsZVNuYXBzaG90ID0gKHNuYXBzaG90OiBEZXBsb3lTbmFwc2hvdCkgPT4ge1xuICAgICAgLy8gT25seSBzZW5kIHVwZGF0ZXMgb24gYWN0dWFsIHN0YXRlIGNoYW5nZTsgYSBzbmFwc2hvdCBpcyBlbWl0dGVkIGV2ZW4gd2hlbiBvbmx5IGFuIGV2ZW50IGhhcHBlbmVkLlxuICAgICAgaWYgKHNuYXBzaG90Lm1hdGNoZXMocHJldmlvdXNTdGF0ZSkpIHJldHVybjtcblxuICAgICAgbG9nZ2VyLnRyYWNlKFxuICAgICAgICBgVGVycmFmb3JtIENMSSBzdGF0ZSBtYWNoaW5lIHN0YXRlIHRyYW5zaXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgcHJldmlvdXNTdGF0ZSxcbiAgICAgICAgKX0gPT4gJHtKU09OLnN0cmluZ2lmeShzbmFwc2hvdC52YWx1ZSl9YCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChzbmFwc2hvdC5tYXRjaGVzKHsgcnVubmluZzogXCJhd2FpdGluZ19hcHByb3ZhbFwiIH0pKSB7XG4gICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICB0eXBlOiBcIndhaXRpbmcgZm9yIGFwcHJvdmFsXCIsXG4gICAgICAgICAgYXBwcm92ZTogKCkgPT4gc2VydmljZS5zZW5kKHsgdHlwZTogXCJBUFBST1ZFXCIgfSksXG4gICAgICAgICAgcmVqZWN0OiAoKSA9PiBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIlJFSkVDVFwiIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc25hcHNob3QubWF0Y2hlcyh7IHJ1bm5pbmc6IFwiYXdhaXRpbmdfc2VudGluZWxfb3ZlcnJpZGVcIiB9KSkge1xuICAgICAgICBjYWxsYmFjayh7XG4gICAgICAgICAgdHlwZTogXCJ3YWl0aW5nIGZvciBzZW50aW5lbCBvdmVycmlkZVwiLFxuICAgICAgICAgIG92ZXJyaWRlOiAoKSA9PiBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIk9WRVJSSURFXCIgfSksXG4gICAgICAgICAgcmVqZWN0OiAoKSA9PiBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIlJFSkVDVF9PVkVSUklERVwiIH0pLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoc25hcHNob3QubWF0Y2hlcyh7IHJ1bm5pbmc6IFwicHJvY2Vzc2luZ1wiIH0pKSB7XG4gICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICB0eXBlOiBcInJ1bm5pbmdcIixcbiAgICAgICAgICBjYW5jZWxsZWQ6IEJvb2xlYW4oc25hcHNob3QuY29udGV4dC5jYW5jZWxsZWQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHByZXZpb3VzU3RhdGUgPSBzbmFwc2hvdC52YWx1ZTtcbiAgICB9O1xuXG4gICAgc2VydmljZS5zdWJzY3JpYmUoaGFuZGxlU25hcHNob3QpO1xuICAgIGhhbmRsZVNuYXBzaG90KHNlcnZpY2UuZ2V0U25hcHNob3QoKSk7XG5cbiAgICAvLyBzdG9wIHRlcnJhZm9ybSBhcHBseSBpZiBzaWduYWxlZCBhcyBzdWNoIGZyb20gdGhlIG91dHNpZGUgKGUuZy4gdmlhIGN0cmwrYylcbiAgICB0aGlzLmFib3J0U2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICBcImFib3J0XCIsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHNlcnZpY2Uuc2VuZCh7IHR5cGU6IFwiU1RPUFwiIH0pO1xuICAgICAgfSxcbiAgICAgIHsgb25jZTogdHJ1ZSB9LFxuICAgICk7XG5cbiAgICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IHdhaXRGb3IoXG4gICAgICBzZXJ2aWNlLFxuICAgICAgKHNuYXBzaG90KSA9PiBzbmFwc2hvdC5zdGF0dXMgPT09IFwiZG9uZVwiLFxuICAgICAge1xuICAgICAgICB0aW1lb3V0OiBJbmZpbml0eSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIFRoZSBmaW5hbCBzdGF0ZSBwcm9kdWNlcyB0aGUgdGVycmFmb3JtIGV4aXQgY29kZSBhcyB0aGUgbWFjaGluZSdzIG91dHB1dC5cbiAgICBjb25zdCBleGl0Q29kZSA9IHNuYXBzaG90Lm91dHB1dD8uZXhpdENvZGU7XG5cbiAgICBsb2dnZXIudHJhY2UoXG4gICAgICBgSW52b2tpbmcgVGVycmFmb3JtIENMSSBmb3IgJHt0eXBlfSBkb25lIChzdGF0ZSBtYWNoaW5lIHJlYWNoZWQgZmluYWwgc3RhdGUpLiBMYXN0IGV4aXQgY29kZTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgZXhpdENvZGUsXG4gICAgICApfS4gQ29udGV4dDogJHtKU09OLnN0cmluZ2lmeShzbmFwc2hvdC5jb250ZXh0KX1gLFxuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICBleGl0Q29kZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBleGl0Q29kZSAhPT0gMCAmJlxuICAgICAgIXNuYXBzaG90LmNvbnRleHQuY2FuY2VsbGVkIC8vIGRvbid0IGZhaWwgaWYgd2UgY2FuY2VsbGVkIHRoZSBydW5cbiAgICApIHtcbiAgICAgIHRocm93IGBJbnZva2luZyBUZXJyYWZvcm0gQ0xJIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAke2V4aXRDb2RlfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgY2FuY2VsbGVkOiBCb29sZWFuKHNuYXBzaG90LmNvbnRleHQuY2FuY2VsbGVkKSB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGV4ZWMoXG4gICAgICAgIHRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgICAgIFtcInZlcnNpb25cIl0sXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHRoaXMud29ya2RpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIHNpZ25hbDogdGhpcy5hYm9ydFNpZ25hbCxcbiAgICAgICAgICBub0NvbG9yOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB0aGlzLm9uU3Rkb3V0KFwidmVyc2lvblwiKSxcbiAgICAgICAgdGhpcy5vblN0ZGVycihcInZlcnNpb25cIiksXG4gICAgICApO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRlcnJhZm9ybSBDTEkgbm90IHByZXNlbnQgLSBQbGVhc2UgaW5zdGFsbCBhIGN1cnJlbnQgdmVyc2lvbiBodHRwczovL2xlYXJuLmhhc2hpY29ycC5jb20vdGVycmFmb3JtL2dldHRpbmctc3RhcnRlZC9pbnN0YWxsLmh0bWxcIixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG91dHB1dCgpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogVGVycmFmb3JtT3V0cHV0IH0+IHtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBleGVjKFxuICAgICAgdGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICAgIFtcIm91dHB1dFwiLCBcIi1qc29uXCJdLFxuICAgICAge1xuICAgICAgICBjd2Q6IHRoaXMud29ya2RpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgc2lnbmFsOiB0aGlzLmFib3J0U2lnbmFsLFxuICAgICAgICBub0NvbG9yOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBvdXRwdXQgaGVyZSBzaW5jZSB3ZSB1c2UgaXQgbGF0ZXIgb25cbiAgICAgICgpID0+IHt9LFxuICAgICAgdGhpcy5vblN0ZGVycihcIm91dHB1dFwiKSxcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKG91dHB1dCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIHRlcnJhZm9ybSBvdXRwdXQ6ICR7ZX0uIFRoZSBvdXRwdXQgd2FzICcke291dHB1dH0nYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFVzZXJBZ2VudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBSZWFkIHRoZSBjZGt0ZiB2ZXJzaW9uIGZyb20gdGhlICdjZGsudGYuanNvbicgZmlsZVxuICAgIC8vIGFuZCBzZXQgdGhlIHVzZXIgYWdlbnQuXG4gICAgY29uc3QgdmVyc2lvbiA9IGF3YWl0IHJlYWRDREtURlZlcnNpb24odGhpcy53b3JrZGlyKTtcbiAgICBpZiAodmVyc2lvbiAhPSBcIlwiKSB7XG4gICAgICBwcm9jZXNzLmVudi5URl9BUFBFTkRfVVNFUl9BR0VOVCA9XG4gICAgICAgIFwiY2RrdG4vXCIgK1xuICAgICAgICB2ZXJzaW9uICtcbiAgICAgICAgXCIgKCtodHRwczovL2dpdGh1Yi5jb20vb3Blbi1jb25zdHJ1Y3RzL2Nkay10ZXJyYWluKVwiO1xuICAgIH1cbiAgfVxuXG4gIC8vIFdlIGRvbid0IG5lZWQgdG8gY2xlYW4gYW55dGhpbmcgdXAgZm9yIGEgcnVubmluZyBleGVjdXRpb24gaW4gdGhlIENMSSBzaW5jZSB0aGVyZSBpcyBubyBsZWZ0LW92ZXIgc3RhdGUgaW4gY29udHJhc3QgdG8gYW4gb3BlbiBUZXJyYWZvcm0gQ2xvdWQgcnVuXG4gIHB1YmxpYyBhc3luYyBhYm9ydCgpIHtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRHZW5lcmF0ZWRDb25maWd1cmF0aW9uRmlsZShcbiAgd29ya2luZ0Rpcjogc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gIGNvbnN0IGdlbmVyYXRlZENvbmZpZ1BhdGggPSBwYXRoLmpvaW4od29ya2luZ0RpciwgR0VORVJBVEVfQ09ORklHX09VVF9GSUxFKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGdlbmVyYXRlZENvbmZpZ1BhdGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhnZW5lcmF0ZWRDb25maWdQYXRoLCBcInV0Zi04XCIpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJ5UmVtb3ZlR2VuZXJhdGVkQ29uZmlndXJhdGlvbkZpbGUod29ya2luZ0Rpcjogc3RyaW5nKSB7XG4gIGNvbnN0IGdlbmVyYXRlZENvbmZpZ1BhdGggPSBwYXRoLmpvaW4od29ya2luZ0RpciwgR0VORVJBVEVfQ09ORklHX09VVF9GSUxFKTtcbiAgaWYgKGZzLmV4aXN0c1N5bmMoZ2VuZXJhdGVkQ29uZmlnUGF0aCkpIHtcbiAgICBmcy51bmxpbmtTeW5jKGdlbmVyYXRlZENvbmZpZ1BhdGgpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdktn/cli-core",
3
- "version": "0.25.0-pre.41",
3
+ "version": "0.25.0-pre.43",
4
4
  "description": "CDK Terrain CLI Core, meant for internal use only",
5
5
  "main": "build/lib/index.js",
6
6
  "types": "build/lib/index.d.ts",
@@ -47,11 +47,11 @@
47
47
  "xml-js": "1.6.11",
48
48
  "xstate": "5.32.4",
49
49
  "zod": "4.4.3",
50
- "@cdktn/commons": "0.25.0-pre.41",
51
- "@cdktn/hcl-tools": "0.25.0-pre.41",
52
- "@cdktn/hcl2cdk": "0.25.0-pre.41",
53
- "@cdktn/provider-schema": "0.25.0-pre.41",
54
- "cdktn": "0.25.0-pre.41"
50
+ "@cdktn/commons": "0.25.0-pre.43",
51
+ "@cdktn/hcl-tools": "0.25.0-pre.43",
52
+ "@cdktn/hcl2cdk": "0.25.0-pre.43",
53
+ "@cdktn/provider-schema": "0.25.0-pre.43",
54
+ "cdktn": "0.25.0-pre.43"
55
55
  },
56
56
  "lint-staged": {
57
57
  "src/**/*.{ts,tsx}": "tsc-files ambient.d.ts --noEmit"
@@ -65,7 +65,7 @@
65
65
  "prettier": "2.8.8",
66
66
  "tsc-files": "1.1.4",
67
67
  "typescript": "~6.0.0",
68
- "@cdktn/provider-generator": "0.25.0-pre.41"
68
+ "@cdktn/provider-generator": "0.25.0-pre.43"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=22.19.0"