aws-cdk 2.1123.0 → 2.1124.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2026-05-19T13:57:12Z by generate.sh",
3
- "commit": "6623803"
2
+ "comment": "Generated at 2026-05-20T15:50:00Z by generate.sh",
3
+ "commit": "791408c"
4
4
  }
@@ -30,6 +30,15 @@ function collectKnownOptions(optionDefs) {
30
30
  }
31
31
  /** Pre-computed set of known global options (static, doesn't depend on argv) */
32
32
  const globalKnownOptions = collectKnownOptions(config.globalOptions);
33
+ /** Reverse mapping from command alias to canonical command name */
34
+ const commandAliasMap = new Map();
35
+ for (const [name, def] of Object.entries(config.commands)) {
36
+ if (def.aliases) {
37
+ for (const alias of def.aliases) {
38
+ commandAliasMap.set(alias, name);
39
+ }
40
+ }
41
+ }
33
42
  /** yargs internal keys that are always present in argv */
34
43
  const yargsInternals = new Set(['_', '$0', 'help', 'h', 'version']);
35
44
  /**
@@ -42,17 +51,21 @@ const yargsInternals = new Set(['_', '$0', 'help', 'h', 'version']);
42
51
  */
43
52
  function findUnknownOptions(argv) {
44
53
  const command = argv._[0];
45
- const commandDef = config.commands[command];
54
+ const canonicalCommand = commandAliasMap.get(command) ?? command;
55
+ const commandDef = config.commands[canonicalCommand];
46
56
  const commandKnownOptions = commandDef?.options
47
57
  ? collectKnownOptions(commandDef.options)
48
58
  : new Set();
49
- const positionalArg = commandDef?.arg?.name;
59
+ const positionalArgRaw = commandDef?.arg?.name;
60
+ const positionalArgs = positionalArgRaw
61
+ ? new Set([positionalArgRaw, positionalArgRaw.toLowerCase()])
62
+ : new Set();
50
63
  const unknown = [];
51
64
  for (const key of Object.keys(argv)) {
52
65
  if (argv[key] === undefined) {
53
66
  continue;
54
67
  }
55
- if (yargsInternals.has(key) || key === positionalArg) {
68
+ if (yargsInternals.has(key) || positionalArgs.has(key)) {
56
69
  continue;
57
70
  }
58
71
  if (globalKnownOptions.has(key) || commandKnownOptions.has(key)) {
@@ -80,4 +93,4 @@ function isFromEnvPrefix(key, prefix) {
80
93
  const screamingSnake = key.replace(/[A-Z]/g, (m) => `_${m}`).toUpperCase();
81
94
  return process.env[`${prefix}_${screamingSnake}`] !== undefined;
82
95
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdW5rbm93bi1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2stdW5rbm93bi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMkNBLGdEQWdDQztBQTNFRCxpRUFBaUU7QUFDakUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFcEQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsbUJBQW1CLENBQUMsVUFBK0I7SUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUNoQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBTSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzFELEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELGdGQUFnRjtBQUNoRixNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVyRSwwREFBMEQ7QUFDMUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUVwRTs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsSUFBUztJQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTFCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsTUFBTSxtQkFBbUIsR0FBRyxVQUFVLEVBQUUsT0FBTztRQUM3QyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUV0QixNQUFNLGFBQWEsR0FBRyxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQztJQUU1QyxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFDN0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsU0FBUztRQUNYLENBQUM7UUFDRCxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3JELFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEUsU0FBUztRQUNYLENBQUM7UUFDRCwwRUFBMEU7UUFDMUUsMEVBQTBFO1FBQzFFLGtFQUFrRTtRQUNsRSxJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxTQUFTO1FBQ1gsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQy9CLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsZUFBZSxDQUFDLEdBQVcsRUFBRSxNQUFjO0lBQ2xELE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0UsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxJQUFJLGNBQWMsRUFBRSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQ2xFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgY29uZmlnID0gcmVxdWlyZSgnLi4vY2xpLXR5cGUtcmVnaXN0cnkuanNvbicpO1xuXG4vKipcbiAqIEJ1aWxkIGEgc2V0IG9mIGFsbCBrbm93biBvcHRpb24gbmFtZXMgZm9yIGEgZ2l2ZW4gb3B0aW9uIGRlZmluaXRpb25zIG9iamVjdC5cbiAqIEluY2x1ZGVzIHRoZSBrZWJhYi1jYXNlIG5hbWUsIGl0cyBjYW1lbENhc2UgZXF1aXZhbGVudCwgYWxsIGFsaWFzZXMsIGFuZCBuZWdhdGl2ZUFsaWFzZXMuXG4gKlxuICogQHBhcmFtIG9wdGlvbkRlZnMgLSBPcHRpb24gZGVmaW5pdGlvbnMga2V5ZWQgYnkgdGhlaXIga2ViYWItY2FzZSBDTEkgbmFtZXNcbiAqICAgKGFzIGRlZmluZWQgaW4gY2xpLXR5cGUtcmVnaXN0cnkuanNvbikuIEVhY2gga2V5IGlzIGNvbnZlcnRlZCB0byBjYW1lbENhc2VcbiAqICAgYW5kIGJvdGggZm9ybXMgYXJlIGluY2x1ZGVkIGluIHRoZSByZXR1cm5lZCBzZXQuXG4gKi9cbmZ1bmN0aW9uIGNvbGxlY3RLbm93bk9wdGlvbnMob3B0aW9uRGVmczogUmVjb3JkPHN0cmluZywgYW55Pik6IFNldDxzdHJpbmc+IHtcbiAgY29uc3Qga25vd24gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgZm9yIChjb25zdCBbbmFtZSwgZGVmXSBvZiBPYmplY3QuZW50cmllczxhbnk+KG9wdGlvbkRlZnMpKSB7XG4gICAga25vd24uYWRkKG5hbWUpO1xuICAgIGtub3duLmFkZChrZWJhYlRvQ2FtZWwobmFtZSkpO1xuICAgIGlmIChkZWYuYWxpYXMpIHtcbiAgICAgIGNvbnN0IGFsaWFzZXMgPSBBcnJheS5pc0FycmF5KGRlZi5hbGlhcykgPyBkZWYuYWxpYXMgOiBbZGVmLmFsaWFzXTtcbiAgICAgIGZvciAoY29uc3QgYSBvZiBhbGlhc2VzKSB7XG4gICAgICAgIGtub3duLmFkZChhKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlZi5uZWdhdGl2ZUFsaWFzKSB7XG4gICAgICBrbm93bi5hZGQoZGVmLm5lZ2F0aXZlQWxpYXMpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ga25vd247XG59XG5cbi8qKiBQcmUtY29tcHV0ZWQgc2V0IG9mIGtub3duIGdsb2JhbCBvcHRpb25zIChzdGF0aWMsIGRvZXNuJ3QgZGVwZW5kIG9uIGFyZ3YpICovXG5jb25zdCBnbG9iYWxLbm93bk9wdGlvbnMgPSBjb2xsZWN0S25vd25PcHRpb25zKGNvbmZpZy5nbG9iYWxPcHRpb25zKTtcblxuLyoqIHlhcmdzIGludGVybmFsIGtleXMgdGhhdCBhcmUgYWx3YXlzIHByZXNlbnQgaW4gYXJndiAqL1xuY29uc3QgeWFyZ3NJbnRlcm5hbHMgPSBuZXcgU2V0KFsnXycsICckMCcsICdoZWxwJywgJ2gnLCAndmVyc2lvbiddKTtcblxuLyoqXG4gKiBEZXRlY3QgdW5yZWNvZ25pemVkIENMSSBvcHRpb25zLlxuICpcbiAqIFlhcmdzIGRvZXMgbm90IGVuYWJsZSBzdHJpY3Qgb3B0aW9uIGNoZWNraW5nIGJ5IGRlZmF1bHQsIHNvIHVua25vd24gZmxhZ3NcbiAqIGFyZSBzaWxlbnRseSBzd2FsbG93ZWQuIFRoaXMgZnVuY3Rpb24gY29tcGFyZXMgdGhlIHBhcnNlZCBhcmd2IGtleXMgYWdhaW5zdFxuICogdGhlIGtub3duIGdsb2JhbCBhbmQgY29tbWFuZCBvcHRpb25zIGZyb20gdGhlIENMSSB0eXBlIHJlZ2lzdHJ5IGFuZCByZXR1cm5zXG4gKiBhbnkgdGhhdCBkb24ndCBtYXRjaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRVbmtub3duT3B0aW9ucyhhcmd2OiBhbnkpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGNvbW1hbmQgPSBhcmd2Ll9bMF07XG5cbiAgY29uc3QgY29tbWFuZERlZiA9IGNvbmZpZy5jb21tYW5kc1tjb21tYW5kXTtcbiAgY29uc3QgY29tbWFuZEtub3duT3B0aW9ucyA9IGNvbW1hbmREZWY/Lm9wdGlvbnNcbiAgICA/IGNvbGxlY3RLbm93bk9wdGlvbnMoY29tbWFuZERlZi5vcHRpb25zKVxuICAgIDogbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3QgcG9zaXRpb25hbEFyZyA9IGNvbW1hbmREZWY/LmFyZz8ubmFtZTtcblxuICBjb25zdCB1bmtub3duOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhcmd2KSkge1xuICAgIGlmIChhcmd2W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICh5YXJnc0ludGVybmFscy5oYXMoa2V5KSB8fCBrZXkgPT09IHBvc2l0aW9uYWxBcmcpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoZ2xvYmFsS25vd25PcHRpb25zLmhhcyhrZXkpIHx8IGNvbW1hbmRLbm93bk9wdGlvbnMuaGFzKGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyB5YXJncyAuZW52KCdDREsnKSBpbmplY3RzIENES18qIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcyBjYW1lbENhc2UgYXJndlxuICAgIC8vIGtleXMgKGUuZy4gQ0RLX0lOVEVHX0FUTU9TUEhFUkVfUE9PTCAtPiBpbnRlZ0F0bW9zcGhlcmVQb29sKS4gVGhlc2UgYXJlXG4gICAgLy8gaW50ZW50aW9uYWwgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBlbnZpcm9ubWVudCwgbm90IHVzZXIgdHlwb3MuXG4gICAgaWYgKGlzRnJvbUVudlByZWZpeChrZXksICdDREsnKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdW5rbm93bi5wdXNoKGtleSk7XG4gIH1cblxuICByZXR1cm4gdW5rbm93bjtcbn1cblxuZnVuY3Rpb24ga2ViYWJUb0NhbWVsKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8tKFthLXpdKS9nLCAoXywgYykgPT4gYy50b1VwcGVyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbWVsQ2FzZSBhcmd2IGtleSB3YXMgaW5qZWN0ZWQgYnkgeWFyZ3MnIC5lbnYoUFJFRklYKVxuICogZmVhdHVyZS4geWFyZ3MgY29udmVydHMgUFJFRklYX0ZPT19CQVIgZW52IHZhcnMgaW50byBjYW1lbENhc2Uga2V5c1xuICogKGZvb0JhcikuIFdlIHJldmVyc2UgdGhlIG1hcHBpbmcgYW5kIGNoZWNrIGlmIHRoZSBlbnYgdmFyIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gaXNGcm9tRW52UHJlZml4KGtleTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzY3JlYW1pbmdTbmFrZSA9IGtleS5yZXBsYWNlKC9bQS1aXS9nLCAobSkgPT4gYF8ke219YCkudG9VcHBlckNhc2UoKTtcbiAgcmV0dXJuIHByb2Nlc3MuZW52W2Ake3ByZWZpeH1fJHtzY3JlYW1pbmdTbmFrZX1gXSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdW5rbm93bi1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2hlY2stdW5rbm93bi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBcURBLGdEQW9DQztBQXpGRCxpRUFBaUU7QUFDakUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFcEQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsbUJBQW1CLENBQUMsVUFBK0I7SUFDMUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUNoQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBTSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzFELEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELGdGQUFnRjtBQUNoRixN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QUNsRCxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNFLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sSUFBSSxjQUFjLEVBQUUsQ0FBQyxLQUFLLFNBQVMsQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IGNvbmZpZyA9IHJlcXVpcmUoJy4uL2NsaS10eXBlLXJlZ2lzdHJ5Lmpzb24nKTtcblxuLyoqXG4gKiBCdWlsZCBhIHNldCBvZiBhbGwga25vd24gb3B0aW9uIG5hbWVzIGZvciBhIGdpdmVuIG9wdGlvbiBkZWZpbml0aW9ucyBvYmplY3QuXG4gKiBJbmNsdWRlcyB0aGUga2ViYWItY2FzZSBuYW1lLCBpdHMgY2FtZWxDYXNlIGVxdWl2YWxlbnQsIGFsbCBhbGlhc2VzLCBhbmQgbmVnYXRpdmVBbGlhc2VzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25EZWZzIC0gT3B0aW9uIGRlZmluaXRpb25zIGtleWVkIGJ5IHRoZWlyIGtlYmFiLWNhc2UgQ0xJIG5hbWVzXG4gKiAgIChhcyBkZWZpbmVkIGluIGNsaS10eXBlLXJlZ2lzdHJ5Lmpzb24pLiBFYWNoIGtleSBpcyBjb252ZXJ0ZWQgdG8gY2FtZWxDYXNlXG4gKiAgIGFuZCBib3RoIGZvcm1zIGFyZSBpbmNsdWRlZCBpbiB0aGUgcmV0dXJuZWQgc2V0LlxuICovXG5mdW5jdGlvbiBjb2xsZWN0S25vd25PcHRpb25zKG9wdGlvbkRlZnM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IGtub3duID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgW25hbWUsIGRlZl0gb2YgT2JqZWN0LmVudHJpZXM8YW55PihvcHRpb25EZWZzKSkge1xuICAgIGtub3duLmFkZChuYW1lKTtcbiAgICBrbm93bi5hZGQoa2ViYWJUb0NhbWVsKG5hbWUpKTtcbiAgICBpZiAoZGVmLmFsaWFzKSB7XG4gICAgICBjb25zdCBhbGlhc2VzID0gQXJyYXkuaXNBcnJheShkZWYuYWxpYXMpID8gZGVmLmFsaWFzIDogW2RlZi5hbGlhc107XG4gICAgICBmb3IgKGNvbnN0IGEgb2YgYWxpYXNlcykge1xuICAgICAgICBrbm93bi5hZGQoYSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkZWYubmVnYXRpdmVBbGlhcykge1xuICAgICAga25vd24uYWRkKGRlZi5uZWdhdGl2ZUFsaWFzKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGtub3duO1xufVxuXG4vKiogUHJlLWNvbXB1dGVkIHNldCBvZiBrbm93biBnbG9iYWwgb3B0aW9ucyAoc3RhdGljLCBkb2Vzbid0IGRlcGVuZCBvbiBhcmd2KSAqL1xuY29uc3QgZ2xvYmFsS25vd25PcHRpb25zID0gY29sbGVjdEtub3duT3B0aW9ucyhjb25maWcuZ2xvYmFsT3B0aW9ucyk7XG5cbi8qKiBSZXZlcnNlIG1hcHBpbmcgZnJvbSBjb21tYW5kIGFsaWFzIHRvIGNhbm9uaWNhbCBjb21tYW5kIG5hbWUgKi9cbmNvbnN0IGNvbW1hbmRBbGlhc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5mb3IgKGNvbnN0IFtuYW1lLCBkZWZdIG9mIE9iamVjdC5lbnRyaWVzPGFueT4oY29uZmlnLmNvbW1hbmRzKSkge1xuICBpZiAoZGVmLmFsaWFzZXMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIGRlZi5hbGlhc2VzKSB7XG4gICAgICBjb21tYW5kQWxpYXNNYXAuc2V0KGFsaWFzLCBuYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIHlhcmdzIGludGVybmFsIGtleXMgdGhhdCBhcmUgYWx3YXlzIHByZXNlbnQgaW4gYXJndiAqL1xuY29uc3QgeWFyZ3NJbnRlcm5hbHMgPSBuZXcgU2V0KFsnXycsICckMCcsICdoZWxwJywgJ2gnLCAndmVyc2lvbiddKTtcblxuLyoqXG4gKiBEZXRlY3QgdW5yZWNvZ25pemVkIENMSSBvcHRpb25zLlxuICpcbiAqIFlhcmdzIGRvZXMgbm90IGVuYWJsZSBzdHJpY3Qgb3B0aW9uIGNoZWNraW5nIGJ5IGRlZmF1bHQsIHNvIHVua25vd24gZmxhZ3NcbiAqIGFyZSBzaWxlbnRseSBzd2FsbG93ZWQuIFRoaXMgZnVuY3Rpb24gY29tcGFyZXMgdGhlIHBhcnNlZCBhcmd2IGtleXMgYWdhaW5zdFxuICogdGhlIGtub3duIGdsb2JhbCBhbmQgY29tbWFuZCBvcHRpb25zIGZyb20gdGhlIENMSSB0eXBlIHJlZ2lzdHJ5IGFuZCByZXR1cm5zXG4gKiBhbnkgdGhhdCBkb24ndCBtYXRjaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRVbmtub3duT3B0aW9ucyhhcmd2OiBhbnkpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGNvbW1hbmQgPSBhcmd2Ll9bMF07XG4gIGNvbnN0IGNhbm9uaWNhbENvbW1hbmQgPSBjb21tYW5kQWxpYXNNYXAuZ2V0KGNvbW1hbmQpID8/IGNvbW1hbmQ7XG5cbiAgY29uc3QgY29tbWFuZERlZiA9IGNvbmZpZy5jb21tYW5kc1tjYW5vbmljYWxDb21tYW5kXTtcbiAgY29uc3QgY29tbWFuZEtub3duT3B0aW9ucyA9IGNvbW1hbmREZWY/Lm9wdGlvbnNcbiAgICA/IGNvbGxlY3RLbm93bk9wdGlvbnMoY29tbWFuZERlZi5vcHRpb25zKVxuICAgIDogbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3QgcG9zaXRpb25hbEFyZ1JhdyA9IGNvbW1hbmREZWY/LmFyZz8ubmFtZTtcbiAgY29uc3QgcG9zaXRpb25hbEFyZ3MgPSBwb3NpdGlvbmFsQXJnUmF3XG4gICAgPyBuZXcgU2V0KFtwb3NpdGlvbmFsQXJnUmF3LCBwb3NpdGlvbmFsQXJnUmF3LnRvTG93ZXJDYXNlKCldKVxuICAgIDogbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3QgdW5rbm93bjogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoYXJndikpIHtcbiAgICBpZiAoYXJndltrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoeWFyZ3NJbnRlcm5hbHMuaGFzKGtleSkgfHwgcG9zaXRpb25hbEFyZ3MuaGFzKGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoZ2xvYmFsS25vd25PcHRpb25zLmhhcyhrZXkpIHx8IGNvbW1hbmRLbm93bk9wdGlvbnMuaGFzKGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICAvLyB5YXJncyAuZW52KCdDREsnKSBpbmplY3RzIENES18qIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcyBjYW1lbENhc2UgYXJndlxuICAgIC8vIGtleXMgKGUuZy4gQ0RLX0lOVEVHX0FUTU9TUEhFUkVfUE9PTCAtPiBpbnRlZ0F0bW9zcGhlcmVQb29sKS4gVGhlc2UgYXJlXG4gICAgLy8gaW50ZW50aW9uYWwgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBlbnZpcm9ubWVudCwgbm90IHVzZXIgdHlwb3MuXG4gICAgaWYgKGlzRnJvbUVudlByZWZpeChrZXksICdDREsnKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdW5rbm93bi5wdXNoKGtleSk7XG4gIH1cblxuICByZXR1cm4gdW5rbm93bjtcbn1cblxuZnVuY3Rpb24ga2ViYWJUb0NhbWVsKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8tKFthLXpdKS9nLCAoXywgYykgPT4gYy50b1VwcGVyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbWVsQ2FzZSBhcmd2IGtleSB3YXMgaW5qZWN0ZWQgYnkgeWFyZ3MnIC5lbnYoUFJFRklYKVxuICogZmVhdHVyZS4geWFyZ3MgY29udmVydHMgUFJFRklYX0ZPT19CQVIgZW52IHZhcnMgaW50byBjYW1lbENhc2Uga2V5c1xuICogKGZvb0JhcikuIFdlIHJldmVyc2UgdGhlIG1hcHBpbmcgYW5kIGNoZWNrIGlmIHRoZSBlbnYgdmFyIGV4aXN0cy5cbiAqL1xuZnVuY3Rpb24gaXNGcm9tRW52UHJlZml4KGtleTogc3RyaW5nLCBwcmVmaXg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBzY3JlYW1pbmdTbmFrZSA9IGtleS5yZXBsYWNlKC9bQS1aXS9nLCAobSkgPT4gYF8ke219YCkudG9VcHBlckNhc2UoKTtcbiAgcmV0dXJuIHByb2Nlc3MuZW52W2Ake3ByZWZpeH1fJHtzY3JlYW1pbmdTbmFrZX1gXSAhPT0gdW5kZWZpbmVkO1xufVxuIl19