@nlabs/lex 1.59.3 → 1.59.5

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/lib/LexConfig.js CHANGED
@@ -6,9 +6,7 @@ function _define_property(obj, key, value) {
6
6
  configurable: true,
7
7
  writable: true
8
8
  });
9
- } else {
10
- obj[key] = value;
11
- }
9
+ } else obj[key] = value;
12
10
  return obj;
13
11
  }
14
12
  /**
@@ -462,4 +460,4 @@ _define_property(LexConfig, "config", {
462
460
  ...defaultConfigValues
463
461
  });
464
462
 
465
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9MZXhDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBmaW5kRmlsZVVwIGZyb20gJ2ZpbmQtZmlsZS11cCc7XG5pbXBvcnQge2V4aXN0c1N5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSBhcyBwYXRoRXh0bmFtZSxcbiAgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLFxuICByZXNvbHZlIGFzIHBhdGhSZXNvbHZlXG59IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7Z2V0TGV4UGFja2FnZUpzb25QYXRoLCByZWxhdGl2ZUZpbGVQYXRofSBmcm9tICcuL3V0aWxzL2ZpbGUuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4vdXRpbHMvbG9nLmpzJztcblxuaW1wb3J0IHR5cGUge09wdGlvbnN9IGZyb20gJ0Bzd2MvY29yZSc7XG5pbXBvcnQgdHlwZSB7TGludGVyfSBmcm9tICdlc2xpbnQnO1xuXG5jb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cblxuZXhwb3J0IGludGVyZmFjZSBWaXRlc3RDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnBhY2tDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBlbnRyeT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBvdXRwdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbW9kdWxlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBsdWdpbnM/OiB1bmtub3duW107XG4gIHN0YXRpY1BhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlDb25maWcge1xuICBwcm92aWRlcj86ICdjdXJzb3InIHwgJ2NvcGlsb3QnIHwgJ29wZW5haScgfCAnYW50aHJvcGljJyB8ICdub25lJztcbiAgYXBpS2V5Pzogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZDb25maWcge1xuICBwb3J0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVTTGludENvbmZpZyB7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIGV4dGVuZHM/OiBzdHJpbmdbXTtcbiAgcnVsZXM/OiBMaW50ZXIuUnVsZXNSZWNvcmQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGV4Q29uZmlnVHlwZSB7XG4gIGFpPzogQUlDb25maWc7XG4gIGNvbmZpZ0ZpbGVzPzogc3RyaW5nW107XG4gIGNvcHlGaWxlcz86IHN0cmluZ1tdO1xuICBkZXY/OiBEZXZDb25maWc7XG4gIGVudHJ5SFRNTD86IHN0cmluZztcbiAgZW50cnlKcz86IHN0cmluZztcbiAgZW52Pzogb2JqZWN0IHwgbnVsbDtcbiAgZXNsaW50PzogRVNMaW50Q29uZmlnO1xuICBnaXRVcmw/OiBzdHJpbmc7XG4gIHZpdGVzdD86IFZpdGVzdENvbmZpZztcbiAgbGlicmFyeU5hbWU/OiBzdHJpbmc7XG4gIGxpYnJhcnlUYXJnZXQ/OiBzdHJpbmc7XG4gIG91dHB1dEZpbGU/OiBzdHJpbmc7XG4gIG91dHB1dEZ1bGxQYXRoPzogc3RyaW5nO1xuICBvdXRwdXRIYXNoPzogYm9vbGVhbjtcbiAgb3V0cHV0UGF0aD86IHN0cmluZztcbiAgcGFja2FnZU1hbmFnZXI/OiAnbnBtJyB8ICd5YXJuJztcbiAgcHJlc2V0PzogJ3dlYicgfCAnbm9kZScgfCAnbGFtYmRhJyB8ICdtb2JpbGUnO1xuICByZWFjdENvbXBpbGVyPzogUmVhY3RDb21waWxlckNvbmZpZztcbiAgc291cmNlRnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIHN3Yz86IFNXQ09wdGlvbnM7XG4gIHRhcmdldEVudmlyb25tZW50PzogJ25vZGUnIHwgJ3dlYic7XG4gIHVzZUdyYXBoUWw/OiBib29sZWFuO1xuICB1c2VUeXBlc2NyaXB0PzogYm9vbGVhbjtcbiAgd2VicGFjaz86IFdlYnBhY2tDb25maWc7XG59XG5cbmV4cG9ydCB0eXBlIENvbmZpZyA9IExleENvbmZpZ1R5cGU7XG5cbmV4cG9ydCB0eXBlIFJlYWN0Q29tcGlsZXJDb25maWcgPSBib29sZWFuIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCBjb25zdCByZWFjdENvbXBpbGVyUGx1Z2luTmFtZSA9ICdAc3djL3JlYWN0LWNvbXBpbGVyJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRSZWFjdENvbXBpbGVyT3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gIGNvbXBpbGF0aW9uTW9kZTogJ2luZmVyJyxcbiAgcGFuaWNUaHJlc2hvbGQ6ICdub25lJyxcbiAgdGFyZ2V0OiAnMTknXG59O1xuXG5jb25zdCBpc1JlYWN0Q29tcGlsZXJQbHVnaW4gPSAocGx1Z2luOiB1bmtub3duKTogYm9vbGVhbiA9PiAoXG4gIEFycmF5LmlzQXJyYXkocGx1Z2luKSAmJiBwbHVnaW5bMF0gPT09IHJlYWN0Q29tcGlsZXJQbHVnaW5OYW1lXG4pO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbmZpZ1ZhbHVlczogTGV4Q29uZmlnVHlwZSA9IHtcbiAgYWk6IHtcbiAgICBtYXhUb2tlbnM6IDQwMDAsXG4gICAgbW9kZWw6ICdncHQtNG8nLFxuICAgIHByb3ZpZGVyOiAnbm9uZScsXG4gICAgdGVtcGVyYXR1cmU6IDAuMVxuICB9LFxuICBjb25maWdGaWxlczogW10sXG4gIGNvcHlGaWxlczogW10sXG4gIGVudHJ5SFRNTDogJ2luZGV4Lmh0bWwnLFxuICBlbnRyeUpzOiAnaW5kZXguanMnLFxuICBlbnY6IG51bGwsXG4gIGVzbGludDoge30sXG4gIG91dHB1dEZ1bGxQYXRoOiBwYXRoUmVzb2x2ZShjd2QsICcuL2xpYicpLFxuICBvdXRwdXRIYXNoOiBmYWxzZSxcbiAgb3V0cHV0UGF0aDogJy4vbGliJyxcbiAgcGFja2FnZU1hbmFnZXI6ICducG0nLFxuICBwcmVzZXQ6ICd3ZWInLFxuICBzb3VyY2VGdWxsUGF0aDogcGF0aFJlc29sdmUoY3dkLCAnLi9zcmMnKSxcbiAgc291cmNlUGF0aDogJy4vc3JjJyxcbiAgc3djOiB7XG4gICAgaW5saW5lU291cmNlc0NvbnRlbnQ6IHRydWUsXG4gICAgaXNNb2R1bGU6IHRydWUsXG4gICAganNjOiB7XG4gICAgICBleHRlcm5hbEhlbHBlcnM6IGZhbHNlLFxuICAgICAga2VlcENsYXNzTmFtZXM6IGZhbHNlLFxuICAgICAgbG9vc2U6IGZhbHNlLFxuICAgICAgcGFyc2VyOiB7XG4gICAgICAgIGRlY29yYXRvcnM6IHRydWUsXG4gICAgICAgIGR5bmFtaWNJbXBvcnQ6IHRydWUsXG4gICAgICAgIHN5bnRheDogJ3R5cGVzY3JpcHQnLFxuICAgICAgICB0c3g6IHRydWVcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6ICdlczIwMjMnLFxuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgcnVudGltZTogJ2F1dG9tYXRpYydcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbWluaWZ5OiBmYWxzZSxcbiAgICBtb2R1bGU6IHtcbiAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgbm9JbnRlcm9wOiBmYWxzZSxcbiAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgICBzdHJpY3RNb2RlOiB0cnVlLFxuICAgICAgdHlwZTogJ2VzNidcbiAgICB9LFxuICAgIHNvdXJjZU1hcHM6ICdpbmxpbmUnXG4gIH0sXG4gIHRhcmdldEVudmlyb25tZW50OiAnd2ViJyxcbiAgdXNlR3JhcGhRbDogZmFsc2UsXG4gIHVzZVR5cGVzY3JpcHQ6IGZhbHNlLFxuICB2aXRlc3Q6IHt9LFxuICB3ZWJwYWNrOiB7XG4gICAgc3RhdGljUGF0aDogJy4vc3JjL3N0YXRpYydcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFBhY2thZ2VEaXIgPSAoKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgY3VycmVudFBrZ1BhdGggPSBwYXRoUmVzb2x2ZShjd2QsICdwYWNrYWdlLmpzb24nKTtcblxuICBpZihleGlzdHNTeW5jKGN1cnJlbnRQa2dQYXRoKSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhjdXJyZW50UGtnUGF0aCwgJ3V0ZjgnKSk7XG4gICAgICBpZighcGtnLndvcmtzcGFjZXMpIHtcbiAgICAgICAgcmV0dXJuIGN3ZDtcbiAgICAgIH1cbiAgICB9IGNhdGNoe1xuICAgICAgcmV0dXJuIGN3ZDtcbiAgICB9XG4gIH1cblxuICBsZXQgc2VhcmNoRGlyID0gY3dkO1xuXG4gIGZvcihsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgY29uc3QgcGtnUGF0aCA9IHBhdGhSZXNvbHZlKHNlYXJjaERpciwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocGtnUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGY4JykpO1xuXG4gICAgICAgIGlmKCFwa2cud29ya3NwYWNlcykge1xuICAgICAgICAgIHJldHVybiBzZWFyY2hEaXI7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2h7XG4gICAgICAgIC8vIENvbnRpbnVlIHNlYXJjaGluZ1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoc2VhcmNoRGlyKTtcblxuICAgIGlmKHBhcmVudCA9PT0gc2VhcmNoRGlyKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2VhcmNoRGlyID0gcGFyZW50O1xuICB9XG5cbiAgY29uc3QgY29uZmlnRm9ybWF0cyA9IFsnanMnLCAnbWpzJywgJ2NqcycsICd0cycsICdqc29uJ107XG5cbiAgZm9yKGNvbnN0IGZvcm1hdCBvZiBjb25maWdGb3JtYXRzKSB7XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGZpbmRGaWxlVXAuc3luYyhgbGV4LmNvbmZpZy4ke2Zvcm1hdH1gLCBjd2QsIDUpO1xuXG4gICAgaWYoY29uZmlnUGF0aCkge1xuICAgICAgcmV0dXJuIGRpcm5hbWUoY29uZmlnUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN3ZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUeXBlU2NyaXB0Q29uZmlnUGF0aCA9IChjb25maWdOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwYWNrYWdlRGlyID0gZ2V0UGFja2FnZURpcigpO1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIGlmKGNvbmZpZ05hbWUgPT09ICd0c2NvbmZpZy5idWlsZC5qc29uJykge1xuICAgIGNvbnN0IHByb2plY3RCdWlsZENvbmZpZyA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsICd0c2NvbmZpZy5idWlsZC5qc29uJyk7XG5cbiAgICBpZihleGlzdHNTeW5jKHByb2plY3RCdWlsZENvbmZpZykpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0QnVpbGRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdEJ1aWxkQ29uZmlnID0gcGF0aFJlc29sdmUoY3dkLCAndHNjb25maWcuYnVpbGQuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocm9vdEJ1aWxkQ29uZmlnKSkge1xuICAgICAgcmV0dXJuIHJvb3RCdWlsZENvbmZpZztcbiAgICB9XG4gIH1cblxuICBpZihjb25maWdOYW1lID09PSAndHNjb25maWcubGludC5qc29uJykge1xuICAgIGNvbnN0IHByb2plY3RMaW50Q29uZmlnID0gcGF0aFJlc29sdmUocGFja2FnZURpciwgJ3RzY29uZmlnLmVzbGludC5qc29uJyk7XG4gICAgaWYoZXhpc3RzU3luYyhwcm9qZWN0TGludENvbmZpZykpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0TGludENvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCByb290TGludENvbmZpZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJ3RzY29uZmlnLmVzbGludC5qc29uJyk7XG5cbiAgICBpZihleGlzdHNTeW5jKHJvb3RMaW50Q29uZmlnKSkge1xuICAgICAgcmV0dXJuIHJvb3RMaW50Q29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIGlmKGNvbmZpZ05hbWUgPT09ICd0c2NvbmZpZy50ZXN0Lmpzb24nKSB7XG4gICAgY29uc3QgcHJvamVjdFRlc3RDb25maWcgPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCAndHNjb25maWcudGVzdC5qc29uJyk7XG4gICAgaWYoZXhpc3RzU3luYyhwcm9qZWN0VGVzdENvbmZpZykpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0VGVzdENvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCByb290VGVzdENvbmZpZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJ3RzY29uZmlnLnRlc3QuanNvbicpO1xuXG4gICAgaWYoZXhpc3RzU3luYyhyb290VGVzdENvbmZpZykpIHtcbiAgICAgIHJldHVybiByb290VGVzdENvbmZpZztcbiAgICB9XG4gIH1cblxuICBjb25zdCBwcm9qZWN0Q29uZmlnUGF0aCA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsIGNvbmZpZ05hbWUpO1xuXG4gIGlmKGV4aXN0c1N5bmMocHJvamVjdENvbmZpZ1BhdGgpKSB7XG4gICAgcmV0dXJuIHByb2plY3RDb25maWdQYXRoO1xuICB9XG5cbiAgY29uc3Qgcm9vdENvbmZpZ1BhdGggPSBwYXRoUmVzb2x2ZShjd2QsIGNvbmZpZ05hbWUpO1xuXG4gIGlmKGV4aXN0c1N5bmMocm9vdENvbmZpZ1BhdGgpKSB7XG4gICAgcmV0dXJuIHJvb3RDb25maWdQYXRoO1xuICB9XG5cbiAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuXG4gIHJldHVybiBwYXRoUmVzb2x2ZShsZXhEaXIsIGNvbmZpZ05hbWUpO1xufTtcblxuZXhwb3J0IGNsYXNzIExleENvbmZpZyB7XG4gIHN0YXRpYyBjb25maWc6IExleENvbmZpZ1R5cGUgPSB7XG4gICAgLi4uZGVmYXVsdENvbmZpZ1ZhbHVlc1xuICB9O1xuXG4gIHN0YXRpYyBzZXQgdXNlVHlwZXNjcmlwdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIExleENvbmZpZy5jb25maWcudXNlVHlwZXNjcmlwdCA9IHZhbHVlO1xuICAgIGNvbnN0IHtlbnRyeUpzLCBzb3VyY2VGdWxsUGF0aCwgdGFyZ2V0RW52aXJvbm1lbnR9ID0gTGV4Q29uZmlnLmNvbmZpZztcblxuICAgIGlmKGVudHJ5SnMgPT09ICdpbmRleC5qcycgJiYgdmFsdWUpIHtcbiAgICAgIGNvbnN0IGluZGV4UGF0aDogc3RyaW5nID0gcGF0aFJlc29sdmUoY3dkLCBzb3VyY2VGdWxsUGF0aCB8fCBjd2QsICdpbmRleC50c3gnKTtcbiAgICAgIGNvbnN0IGhhc0luZGV4VHN4OiBib29sZWFuID0gZXhpc3RzU3luYyhpbmRleFBhdGgpO1xuXG4gICAgICBpZihoYXNJbmRleFRzeCkge1xuICAgICAgICBMZXhDb25maWcuY29uZmlnLmVudHJ5SnMgPSAnaW5kZXgudHN4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIExleENvbmZpZy5jb25maWcuZW50cnlKcyA9ICdpbmRleC50cyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgTGV4Q29uZmlnLmNvbmZpZy5zd2MgPSBMZXhDb25maWcuY29uZmlnLnN3YyB8fCB7Li4uZGVmYXVsdENvbmZpZ1ZhbHVlcy5zd2MhfTtcbiAgICBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MgPSBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MgfHwgey4uLmRlZmF1bHRDb25maWdWYWx1ZXMuc3djIS5qc2MhfTtcbiAgICBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MucGFyc2VyID0ge1xuICAgICAgc3ludGF4OiAndHlwZXNjcmlwdCcsXG4gICAgICB0c3g6IHRydWVcbiAgICB9O1xuXG4gICAgaWYodGFyZ2V0RW52aXJvbm1lbnQgPT09ICd3ZWInKSB7XG4gICAgICBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MudHJhbnNmb3JtID0ge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHJ1bnRpbWU6ICdhdXRvbWF0aWMnXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldExleERpcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBkaXJuYW1lKGdldExleFBhY2thZ2VKc29uUGF0aCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTV0NDb25maWdXaXRoUmVhY3RDb21waWxlcihcbiAgICBzd2NDb25maWc6IFNXQ09wdGlvbnMgfCB1bmRlZmluZWQgPSBMZXhDb25maWcuY29uZmlnLnN3YyxcbiAgICByZWFjdENvbXBpbGVyOiBSZWFjdENvbXBpbGVyQ29uZmlnIHwgdW5kZWZpbmVkID0gTGV4Q29uZmlnLmNvbmZpZy5yZWFjdENvbXBpbGVyXG4gICk6IFNXQ09wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgIGlmKHJlYWN0Q29tcGlsZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHN3Y0NvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U3djQ29uZmlnID0gc3djQ29uZmlnIHx8IGRlZmF1bHRDb25maWdWYWx1ZXMuc3djO1xuICAgIGNvbnN0IGN1cnJlbnRKc2M6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBjdXJyZW50U3djQ29uZmlnPy5qc2MgfHwge307XG4gICAgY29uc3QgY3VycmVudEV4cGVyaW1lbnRhbCA9IGN1cnJlbnRKc2MuZXhwZXJpbWVudGFsIHx8IHt9O1xuICAgIGNvbnN0IHBsdWdpbnMgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRFeHBlcmltZW50YWwucGx1Z2lucylcbiAgICAgID8gY3VycmVudEV4cGVyaW1lbnRhbC5wbHVnaW5zLmZpbHRlcigocGx1Z2luOiB1bmtub3duKSA9PiAhaXNSZWFjdENvbXBpbGVyUGx1Z2luKHBsdWdpbikpXG4gICAgICA6IFtdO1xuXG4gICAgY29uc3QgZXhwZXJpbWVudGFsID0gcmVhY3RDb21waWxlciA9PT0gZmFsc2VcbiAgICAgID8ge1xuICAgICAgICAuLi5jdXJyZW50RXhwZXJpbWVudGFsLFxuICAgICAgICBwbHVnaW5zXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgLi4uY3VycmVudEV4cGVyaW1lbnRhbCxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIC4uLnBsdWdpbnMsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVhY3RDb21waWxlclBsdWdpbk5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgcmVhY3RDb21waWxlciA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4uZGVmYXVsdFJlYWN0Q29tcGlsZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLnJlYWN0Q29tcGlsZXJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IGRlZmF1bHRSZWFjdENvbXBpbGVyT3B0aW9uc1xuICAgICAgICAgIF1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICBjb25zdCBzd2NDb25maWdXaXRoUmVhY3RDb21waWxlcjogU1dDT3B0aW9ucyA9IHtcbiAgICAgIC4uLmN1cnJlbnRTd2NDb25maWcsXG4gICAgICBqc2M6IHtcbiAgICAgICAgLi4uY3VycmVudEpzYyxcbiAgICAgICAgZXhwZXJpbWVudGFsXG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBzd2NDb25maWdXaXRoUmVhY3RDb21waWxlcjtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVDb25maWcodXBkYXRlZENvbmZpZzogTGV4Q29uZmlnVHlwZSk6IExleENvbmZpZ1R5cGUge1xuICAgIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgb3V0cHV0UGF0aCwgc291cmNlUGF0aCwgc291cmNlRnVsbFBhdGgsIHVzZVR5cGVzY3JpcHQsIGFpfSA9IHVwZGF0ZWRDb25maWc7XG4gICAgY29uc3QgcGFja2FnZURpciA9IGdldFBhY2thZ2VEaXIoKTtcblxuICAgIGlmKHVzZVR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgTGV4Q29uZmlnLnVzZVR5cGVzY3JpcHQgPSB1c2VUeXBlc2NyaXB0O1xuICAgIH1cblxuICAgIGlmKG91dHB1dFBhdGggIT09IHVuZGVmaW5lZCAmJiBvdXRwdXRGdWxsUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB1cGRhdGVkQ29uZmlnLm91dHB1dEZ1bGxQYXRoID0gcGF0aFJlc29sdmUocGFja2FnZURpciwgb3V0cHV0UGF0aCk7XG4gICAgfVxuXG4gICAgaWYoc291cmNlUGF0aCAhPT0gdW5kZWZpbmVkICYmIHNvdXJjZUZ1bGxQYXRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHVwZGF0ZWRDb25maWcuc291cmNlRnVsbFBhdGggPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCBzb3VyY2VQYXRoKTtcbiAgICB9XG5cbiAgICBpZihhaSkge1xuICAgICAgTGV4Q29uZmlnLmNvbmZpZy5haSA9IHsuLi5MZXhDb25maWcuY29uZmlnLmFpLCAuLi5haX07XG5cbiAgICAgIGlmKHByb2Nlc3MuZW52LkNVUlNPUl9JREUgPT09ICd0cnVlJyAmJiBMZXhDb25maWcuY29uZmlnLmFpLnByb3ZpZGVyID09PSAnbm9uZScpIHtcbiAgICAgICAgTGV4Q29uZmlnLmNvbmZpZy5haS5wcm92aWRlciA9ICdjdXJzb3InO1xuICAgICAgfVxuICAgIH1cblxuICAgIExleENvbmZpZy5jb25maWcgPSB7Li4uTGV4Q29uZmlnLmNvbmZpZywgLi4udXBkYXRlZENvbmZpZ307XG4gICAgTGV4Q29uZmlnLmNvbmZpZy5zd2MgPSBMZXhDb25maWcuZ2V0U1dDQ29uZmlnV2l0aFJlYWN0Q29tcGlsZXIoKTtcblxuICAgIHJldHVybiBMZXhDb25maWcuY29uZmlnO1xuICB9XG5cbiAgc3RhdGljIGFkZENvbmZpZ1BhcmFtcyhjbWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIHBhcmFtczogTGV4Q29uZmlnVHlwZSkge1xuICAgIGNvbnN0IG5hbWVQcm9wZXJ0eTogc3RyaW5nID0gJ19uYW1lJztcbiAgICBjb25zdCB7ZW52aXJvbm1lbnQsIG91dHB1dFBhdGgsIHNvdXJjZVBhdGgsIHR5cGVzY3JpcHR9ID0gY21kO1xuICAgIGNvbnN0IHBhY2thZ2VEaXIgPSBnZXRQYWNrYWdlRGlyKCk7XG5cbiAgICBpZihvdXRwdXRQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5vdXRwdXRQYXRoID0gb3V0cHV0UGF0aDtcbiAgICAgIHBhcmFtcy5vdXRwdXRGdWxsUGF0aCA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsIG91dHB1dFBhdGgpO1xuICAgIH0gZWxzZSBpZihwYXJhbXMub3V0cHV0UGF0aCAmJiAhcGFyYW1zLm91dHB1dEZ1bGxQYXRoKSB7XG4gICAgICBwYXJhbXMub3V0cHV0RnVsbFBhdGggPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCBwYXJhbXMub3V0cHV0UGF0aCk7XG4gICAgfVxuXG4gICAgaWYoc291cmNlUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG4gICAgICBwYXJhbXMuc291cmNlRnVsbFBhdGggPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCBzb3VyY2VQYXRoKTtcbiAgICB9IGVsc2UgaWYocGFyYW1zLnNvdXJjZVBhdGggJiYgIXBhcmFtcy5zb3VyY2VGdWxsUGF0aCkge1xuICAgICAgcGFyYW1zLnNvdXJjZUZ1bGxQYXRoID0gcGF0aFJlc29sdmUocGFja2FnZURpciwgcGFyYW1zLnNvdXJjZVBhdGgpO1xuICAgIH1cblxuICAgIGlmKHR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zLnVzZVR5cGVzY3JpcHQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKGVudmlyb25tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy50YXJnZXRFbnZpcm9ubWVudCA9IGVudmlyb25tZW50ID09PSAnd2ViJyA/ICd3ZWInIDogJ25vZGUnO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52LkxFWF9DT05GSUcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgLi4uTGV4Q29uZmlnLnVwZGF0ZUNvbmZpZyhwYXJhbXMpLFxuICAgICAgICBjb21tYW5kTmFtZTogY21kW25hbWVQcm9wZXJ0eV0sXG4gICAgICAgIGlzU3RhdGljOiBjbWQuc3RhdGljXG4gICAgICB9LCBudWxsLCAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBwYXJzZUNvbmZpZyhjbWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIGlzUm9vdDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBsZXhDb25maWcsIGxleENvbmZpZ05hbWUsIHF1aWV0LCB0eXBlc2NyaXB0LCBkZWJ1ZyA9IGZhbHNlfSA9IGNtZDtcbiAgICBjb25zdCBjb25maWdGb3JtYXRzID0gWydqcycsICdtanMnLCAnY2pzJywgJ3RzJywgJ2pzb24nXTtcbiAgICBjb25zdCBjb25maWdCYXNlTmFtZTogc3RyaW5nID0gbGV4Q29uZmlnTmFtZSB8fCAnbGV4LmNvbmZpZyc7XG4gICAgbGV0IGNvbmZpZ1BhdGg6IHN0cmluZyA9IGxleENvbmZpZyB8fCAnJztcbiAgICBsZXQgY29uZmlnRXhpc3RzOiBib29sZWFuID0gbGV4Q29uZmlnID8gZXhpc3RzU3luYyhjb25maWdQYXRoKSA6IGZhbHNlO1xuXG4gICAgaWYoIWNvbmZpZ1BhdGggfHwgIWNvbmZpZ0V4aXN0cykge1xuICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgbG9nKGBTZWFyY2hpbmcgZm9yIGNvbmZpZyBmaWxlcyB3aXRoIGJhc2UgbmFtZTogJHtjb25maWdCYXNlTmFtZX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgIH1cblxuICAgICAgZm9yKGNvbnN0IGZvcm1hdCBvZiBjb25maWdGb3JtYXRzKSB7XG4gICAgICAgIGNvbnN0IHBvdGVudGlhbFBhdGggPSBpc1Jvb3RcbiAgICAgICAgICA/IHBhdGhSZXNvbHZlKGN3ZCwgYC4vJHtjb25maWdCYXNlTmFtZX0uJHtmb3JtYXR9YClcbiAgICAgICAgICA6IHJlbGF0aXZlRmlsZVBhdGgoYCR7Y29uZmlnQmFzZU5hbWV9LiR7Zm9ybWF0fWAsIGN3ZCk7XG5cbiAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICBsb2coYENoZWNraW5nIGZvciBjb25maWcgZmlsZTogJHtwb3RlbnRpYWxQYXRofWAsICdpbmZvJywgcXVpZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoZXhpc3RzU3luYyhwb3RlbnRpYWxQYXRoKSkge1xuICAgICAgICAgIGNvbmZpZ1BhdGggPSBwb3RlbnRpYWxQYXRoO1xuICAgICAgICAgIGNvbmZpZ0V4aXN0cyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihjb25maWdFeGlzdHMpIHtcbiAgICAgIGxvZyhgVXNpbmcgJHtjbGlOYW1lfSBjb25maWd1cmF0aW9uIGZpbGU6ICR7Y29uZmlnUGF0aH1gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgIGNvbnN0IGV4dDogc3RyaW5nID0gcGF0aEV4dG5hbWUoY29uZmlnUGF0aCk7XG5cbiAgICAgIGlmKGV4dCA9PT0gJy5qc29uJykge1xuICAgICAgICBjb25zdCBjb25maWdDb250ZW50OiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0ZjgnKTtcblxuICAgICAgICBpZihjb25maWdDb250ZW50KSB7XG4gICAgICAgICAgbGV0IGNvbmZpZ0pzb246IExleENvbmZpZ1R5cGU7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uZmlnSnNvbiA9IEpTT04ucGFyc2UoY29uZmlnQ29udGVudCk/LmRlZmF1bHQgfHwge307XG4gICAgICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBGYWlsZWQgdG8gcGFyc2UgSlNPTiBjb25maWc6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgICBjb25maWdKc29uID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZ0pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ29uZmlnIGZpbGUgbWFsZm9ybWVkLCAke2NvbmZpZ1BhdGh9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYoWycuanMnLCAnLm1qcycsICcuY2pzJywgJy50cyddLmluY2x1ZGVzKGV4dCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgbGV4Q3VzdG9tQ29uZmlnO1xuXG4gICAgICAgICAgaWYoZXh0ID09PSAnLmNqcycpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBuZXcgVVJMKGBmaWxlOi8vLyR7cGF0aFJlc29sdmUoY29uZmlnUGF0aCl9YCkuaHJlZjtcblxuICAgICAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICAgICAgbG9nKGBMb2FkaW5nIENvbW1vbkpTIGNvbmZpZyBmcm9tOiAke2ZpbGVVcmx9YCwgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXhDdXN0b21Db25maWcgPSBhd2FpdCBpbXBvcnQoZmlsZVVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAgIGxvZyhgTG9hZGluZyBFU00vVFMgY29uZmlnIGZyb206ICR7Y29uZmlnUGF0aH1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV4Q3VzdG9tQ29uZmlnID0gYXdhaXQgaW1wb3J0KGNvbmZpZ1BhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxleEN1c3RvbUNvbmZpZy5kZWZhdWx0IHx8IGxleEN1c3RvbUNvbmZpZztcblxuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICBsb2coYExvYWRlZCBjb25maWc6ICR7SlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZighY29uZmlnKSB7XG4gICAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gV2FybmluZzogQ29uZmlnIGZpbGUgbG9hZGVkIGJ1dCBubyBjb25maWd1cmF0aW9uIGZvdW5kYCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZyB8fCB7fSk7XG4gICAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IEZhaWxlZCB0byBsb2FkIGNvbmZpZyBmaWxlOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENvbmZpZyBmaWxlIG11c3QgYmUgYSBKUywgQ0pTLCBNSlMsIFRTLCBvciBKU09OIGZpbGUuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZihkZWJ1Zykge1xuICAgICAgICBsb2coJ05vIGNvbmZpZyBmaWxlIGZvdW5kLiBVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICB9XG5cbiAgICAgIExleENvbmZpZy51c2VUeXBlc2NyaXB0ID0gISF0eXBlc2NyaXB0O1xuICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIExleENvbmZpZy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1R5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgcGFja2FnZURpciA9IGdldFBhY2thZ2VEaXIoKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsICcuL3RzY29uZmlnLmpzb24nKTtcblxuICAgIGlmKCFleGlzdHNTeW5jKHRzY29uZmlnUGF0aCkpIHtcbiAgICAgIGNvbnN0IGxleERpciA9IExleENvbmZpZy5nZXRMZXhEaXIoKTtcbiAgICAgIGNvbnN0IGJhc2VDb25maWdQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcuYmFzZS5qc29uJyk7XG4gICAgICBjb25zdCB0ZW1wbGF0ZUNvbmZpZ1BhdGggPSBwYXRoUmVzb2x2ZShsZXhEaXIsICd0c2NvbmZpZy50ZW1wbGF0ZS5qc29uJyk7XG4gICAgICBjb25zdCBzb3VyY2VQYXRoID0gZXhpc3RzU3luYyhiYXNlQ29uZmlnUGF0aCkgPyBiYXNlQ29uZmlnUGF0aCA6IHRlbXBsYXRlQ29uZmlnUGF0aDtcblxuICAgICAgaWYoZXhpc3RzU3luYyhzb3VyY2VQYXRoKSkge1xuICAgICAgICB3cml0ZUZpbGVTeW5jKHRzY29uZmlnUGF0aCwgcmVhZEZpbGVTeW5jKHNvdXJjZVBhdGgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0VHlwZVNjcmlwdERlY2xhcmF0aW9uRmxhZ3MoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IExleENvbmZpZy5jb25maWcub3V0cHV0UGF0aCB8fCAnLi9saWInO1xuICAgIGNvbnN0IG91dHB1dEZ1bGxQYXRoID0gTGV4Q29uZmlnLmNvbmZpZy5vdXRwdXRGdWxsUGF0aCB8fCBwYXRoUmVzb2x2ZShjd2QsIG91dHB1dFBhdGgpO1xuICAgIGNvbnN0IHNvdXJjZVBhdGggPSBMZXhDb25maWcuY29uZmlnLnNvdXJjZVBhdGggfHwgJy4vc3JjJztcbiAgICBjb25zdCBzb3VyY2VGdWxsUGF0aCA9IExleENvbmZpZy5jb25maWcuc291cmNlRnVsbFBhdGggfHwgcGF0aFJlc29sdmUoY3dkLCBzb3VyY2VQYXRoKTtcbiAgICBjb25zdCByZWxhdGl2ZU91dERpciA9IHBhdGhSZWxhdGl2ZShjd2QsIG91dHB1dEZ1bGxQYXRoKSB8fCAnLi9saWInO1xuICAgIGNvbnN0IHJlbGF0aXZlUm9vdERpciA9IHBhdGhSZWxhdGl2ZShjd2QsIHNvdXJjZUZ1bGxQYXRoKSB8fCAnLi9zcmMnO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICctLWVtaXREZWNsYXJhdGlvbk9ubHknLCAvLyBDUklUSUNBTDogT25seSBlbWl0IC5kLnRzIGZpbGVzLCBubyBKUyBmaWxlc1xuICAgICAgJy0tZGVjbGFyYXRpb24nLCAvLyBHZW5lcmF0ZSBkZWNsYXJhdGlvbiBmaWxlc1xuICAgICAgJy0tZGVjbGFyYXRpb25NYXAnLCAvLyBHZW5lcmF0ZSBzb3VyY2UgbWFwcyBmb3IgZGVjbGFyYXRpb25zXG4gICAgICAnLS1vdXREaXInLCByZWxhdGl2ZU91dERpcixcbiAgICAgICctLXJvb3REaXInLCByZWxhdGl2ZVJvb3REaXIsXG4gICAgICAnLS1za2lwTGliQ2hlY2snLCAvLyBTa2lwIHR5cGUgY2hlY2tpbmcgb2YgZGVjbGFyYXRpb24gZmlsZXMgKGZhc3RlciwgbW9yZSBsZW5pZW50KVxuICAgICAgJy0tZXNNb2R1bGVJbnRlcm9wJyxcbiAgICAgICctLWFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHMnLFxuICAgICAgJy0tbW9kdWxlJywgJ05vZGVOZXh0JyxcbiAgICAgICctLW1vZHVsZVJlc29sdXRpb24nLCAnTm9kZU5leHQnLFxuICAgICAgJy0tdGFyZ2V0JywgJ0VTTmV4dCcsXG4gICAgICAnLS1qc3gnLCAncmVhY3QtanN4JyxcbiAgICAgICctLWlzb2xhdGVkTW9kdWxlcycsXG4gICAgICAnLS1yZXNvbHZlSnNvbk1vZHVsZScsXG4gICAgICAnLS1hbGxvd0pzJyxcbiAgICAgICctLWlnbm9yZUNvbmZpZydcbiAgICAgIC8vIE5vdGU6IC0tbm9VbnVzZWRMb2NhbHMgYW5kIC0tbm9VbnVzZWRQYXJhbWV0ZXJzIGFyZSBub3QgbmVlZGVkIGZvciBkZWNsYXJhdGlvbiBnZW5lcmF0aW9uXG4gICAgICAvLyBhbmQgd291bGQgYWN0dWFsbHkgZW5hYmxlIHN0cmljdCBjaGVja2luZywgd2hpY2ggd2Ugd2FudCB0byBhdm9pZCBmb3IgZmFzdGVyIGRlY2xhcmF0aW9uIGdlbmVyYXRpb25cbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGNoZWNrTGludFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnTGludFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcubGludC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ0xpbnRQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcubGludC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ0xpbnRQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrVGVzdFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnVGVzdFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcudGVzdC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ1Rlc3RQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcudGVzdC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ1Rlc3RQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNXQ09wdGlvbnMgPSBPcHRpb25zO1xuIl0sIm5hbWVzIjpbImZpbmRGaWxlVXAiLCJleGlzdHNTeW5jIiwicmVhZEZpbGVTeW5jIiwid3JpdGVGaWxlU3luYyIsImRpcm5hbWUiLCJleHRuYW1lIiwicGF0aEV4dG5hbWUiLCJyZWxhdGl2ZSIsInBhdGhSZWxhdGl2ZSIsInJlc29sdmUiLCJwYXRoUmVzb2x2ZSIsIlVSTCIsImdldExleFBhY2thZ2VKc29uUGF0aCIsInJlbGF0aXZlRmlsZVBhdGgiLCJsb2ciLCJjd2QiLCJwcm9jZXNzIiwicmVhY3RDb21waWxlclBsdWdpbk5hbWUiLCJkZWZhdWx0UmVhY3RDb21waWxlck9wdGlvbnMiLCJjb21waWxhdGlvbk1vZGUiLCJwYW5pY1RocmVzaG9sZCIsInRhcmdldCIsImlzUmVhY3RDb21waWxlclBsdWdpbiIsInBsdWdpbiIsIkFycmF5IiwiaXNBcnJheSIsImRlZmF1bHRDb25maWdWYWx1ZXMiLCJhaSIsIm1heFRva2VucyIsIm1vZGVsIiwicHJvdmlkZXIiLCJ0ZW1wZXJhdHVyZSIsImNvbmZpZ0ZpbGVzIiwiY29weUZpbGVzIiwiZW50cnlIVE1MIiwiZW50cnlKcyIsImVudiIsImVzbGludCIsIm91dHB1dEZ1bGxQYXRoIiwib3V0cHV0SGFzaCIsIm91dHB1dFBhdGgiLCJwYWNrYWdlTWFuYWdlciIsInByZXNldCIsInNvdXJjZUZ1bGxQYXRoIiwic291cmNlUGF0aCIsInN3YyIsImlubGluZVNvdXJjZXNDb250ZW50IiwiaXNNb2R1bGUiLCJqc2MiLCJleHRlcm5hbEhlbHBlcnMiLCJrZWVwQ2xhc3NOYW1lcyIsImxvb3NlIiwicGFyc2VyIiwiZGVjb3JhdG9ycyIsImR5bmFtaWNJbXBvcnQiLCJzeW50YXgiLCJ0c3giLCJ0cmFuc2Zvcm0iLCJyZWFjdCIsInJ1bnRpbWUiLCJtaW5pZnkiLCJtb2R1bGUiLCJsYXp5Iiwibm9JbnRlcm9wIiwic3RyaWN0Iiwic3RyaWN0TW9kZSIsInR5cGUiLCJzb3VyY2VNYXBzIiwidGFyZ2V0RW52aXJvbm1lbnQiLCJ1c2VHcmFwaFFsIiwidXNlVHlwZXNjcmlwdCIsInZpdGVzdCIsIndlYnBhY2siLCJzdGF0aWNQYXRoIiwiZ2V0UGFja2FnZURpciIsImN1cnJlbnRQa2dQYXRoIiwicGtnIiwiSlNPTiIsInBhcnNlIiwid29ya3NwYWNlcyIsInNlYXJjaERpciIsImkiLCJwa2dQYXRoIiwicGFyZW50IiwiY29uZmlnRm9ybWF0cyIsImZvcm1hdCIsImNvbmZpZ1BhdGgiLCJzeW5jIiwiZ2V0VHlwZVNjcmlwdENvbmZpZ1BhdGgiLCJjb25maWdOYW1lIiwicGFja2FnZURpciIsInByb2plY3RCdWlsZENvbmZpZyIsInJvb3RCdWlsZENvbmZpZyIsInByb2plY3RMaW50Q29uZmlnIiwicm9vdExpbnRDb25maWciLCJwcm9qZWN0VGVzdENvbmZpZyIsInJvb3RUZXN0Q29uZmlnIiwicHJvamVjdENvbmZpZ1BhdGgiLCJyb290Q29uZmlnUGF0aCIsImxleERpciIsIkxleENvbmZpZyIsImdldExleERpciIsInZhbHVlIiwiY29uZmlnIiwiaW5kZXhQYXRoIiwiaGFzSW5kZXhUc3giLCJnZXRTV0NDb25maWdXaXRoUmVhY3RDb21waWxlciIsInN3Y0NvbmZpZyIsInJlYWN0Q29tcGlsZXIiLCJ1bmRlZmluZWQiLCJjdXJyZW50U3djQ29uZmlnIiwiY3VycmVudEpzYyIsImN1cnJlbnRFeHBlcmltZW50YWwiLCJleHBlcmltZW50YWwiLCJwbHVnaW5zIiwiZmlsdGVyIiwic3djQ29uZmlnV2l0aFJlYWN0Q29tcGlsZXIiLCJ1cGRhdGVDb25maWciLCJ1cGRhdGVkQ29uZmlnIiwiQ1VSU09SX0lERSIsImFkZENvbmZpZ1BhcmFtcyIsImNtZCIsInBhcmFtcyIsIm5hbWVQcm9wZXJ0eSIsImVudmlyb25tZW50IiwidHlwZXNjcmlwdCIsIkxFWF9DT05GSUciLCJzdHJpbmdpZnkiLCJjb21tYW5kTmFtZSIsImlzU3RhdGljIiwic3RhdGljIiwicGFyc2VDb25maWciLCJpc1Jvb3QiLCJjbGlOYW1lIiwibGV4Q29uZmlnIiwibGV4Q29uZmlnTmFtZSIsInF1aWV0IiwiZGVidWciLCJjb25maWdCYXNlTmFtZSIsImNvbmZpZ0V4aXN0cyIsInBvdGVudGlhbFBhdGgiLCJleHQiLCJjb25maWdDb250ZW50IiwiY29uZmlnSnNvbiIsImRlZmF1bHQiLCJlcnJvciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsImxleEN1c3RvbUNvbmZpZyIsImZpbGVVcmwiLCJocmVmIiwiY29uc29sZSIsImNoZWNrVHlwZXNjcmlwdENvbmZpZyIsInRzY29uZmlnUGF0aCIsImJhc2VDb25maWdQYXRoIiwidGVtcGxhdGVDb25maWdQYXRoIiwiZ2V0VHlwZVNjcmlwdERlY2xhcmF0aW9uRmxhZ3MiLCJyZWxhdGl2ZU91dERpciIsInJlbGF0aXZlUm9vdERpciIsImNoZWNrTGludFR5cGVzY3JpcHRDb25maWciLCJ0c2NvbmZpZ0xpbnRQYXRoIiwidGVtcGxhdGVQYXRoIiwiY2hlY2tUZXN0VHlwZXNjcmlwdENvbmZpZyIsInRzY29uZmlnVGVzdFBhdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0NBR0MsR0FDRCxPQUFPQSxnQkFBZ0IsZUFBZTtBQUN0QyxTQUFRQyxVQUFVLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxRQUFPLEtBQUs7QUFDM0QsU0FDRUMsT0FBTyxFQUNQQyxXQUFXQyxXQUFXLEVBQ3RCQyxZQUFZQyxZQUFZLEVBQ3hCQyxXQUFXQyxXQUFXLFFBQ2pCLE9BQU87QUFDZCxTQUFRQyxHQUFHLFFBQU8sTUFBTTtBQUV4QixTQUFRQyxxQkFBcUIsRUFBRUMsZ0JBQWdCLFFBQU8sa0JBQWtCO0FBQ3hFLFNBQVFDLEdBQUcsUUFBTyxpQkFBaUI7QUFLbkMsTUFBTUMsTUFBY0MsUUFBUUQsR0FBRztBQW1FL0IsT0FBTyxNQUFNRSwwQkFBMEIsc0JBQXNCO0FBRTdELE9BQU8sTUFBTUMsOEJBQXVEO0lBQ2xFQyxpQkFBaUI7SUFDakJDLGdCQUFnQjtJQUNoQkMsUUFBUTtBQUNWLEVBQUU7QUFFRixNQUFNQyx3QkFBd0IsQ0FBQ0MsU0FDN0JDLE1BQU1DLE9BQU8sQ0FBQ0YsV0FBV0EsTUFBTSxDQUFDLEVBQUUsS0FBS047QUFHekMsT0FBTyxNQUFNUyxzQkFBcUM7SUFDaERDLElBQUk7UUFDRkMsV0FBVztRQUNYQyxPQUFPO1FBQ1BDLFVBQVU7UUFDVkMsYUFBYTtJQUNmO0lBQ0FDLGFBQWEsRUFBRTtJQUNmQyxXQUFXLEVBQUU7SUFDYkMsV0FBVztJQUNYQyxTQUFTO0lBQ1RDLEtBQUs7SUFDTEMsUUFBUSxDQUFDO0lBQ1RDLGdCQUFnQjVCLFlBQVlLLEtBQUs7SUFDakN3QixZQUFZO0lBQ1pDLFlBQVk7SUFDWkMsZ0JBQWdCO0lBQ2hCQyxRQUFRO0lBQ1JDLGdC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
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9MZXhDb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBmaW5kRmlsZVVwIGZyb20gJ2ZpbmQtZmlsZS11cCc7XG5pbXBvcnQge2V4aXN0c1N5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSBhcyBwYXRoRXh0bmFtZSxcbiAgcmVsYXRpdmUgYXMgcGF0aFJlbGF0aXZlLFxuICByZXNvbHZlIGFzIHBhdGhSZXNvbHZlXG59IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtVUkx9IGZyb20gJ3VybCc7XG5cbmltcG9ydCB7Z2V0TGV4UGFja2FnZUpzb25QYXRoLCByZWxhdGl2ZUZpbGVQYXRofSBmcm9tICcuL3V0aWxzL2ZpbGUuanMnO1xuaW1wb3J0IHtsb2d9IGZyb20gJy4vdXRpbHMvbG9nLmpzJztcblxuaW1wb3J0IHR5cGUge09wdGlvbnN9IGZyb20gJ0Bzd2MvY29yZSc7XG5pbXBvcnQgdHlwZSB7TGludGVyfSBmcm9tICdlc2xpbnQnO1xuXG5jb25zdCBjd2Q6IHN0cmluZyA9IHByb2Nlc3MuY3dkKCk7XG5cblxuZXhwb3J0IGludGVyZmFjZSBWaXRlc3RDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnBhY2tDb25maWcge1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICBlbnRyeT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBvdXRwdXQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbW9kdWxlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBsdWdpbnM/OiB1bmtub3duW107XG4gIHN0YXRpY1BhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlDb25maWcge1xuICBwcm92aWRlcj86ICdjdXJzb3InIHwgJ2NvcGlsb3QnIHwgJ29wZW5haScgfCAnYW50aHJvcGljJyB8ICdub25lJztcbiAgYXBpS2V5Pzogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgbWF4VG9rZW5zPzogbnVtYmVyO1xuICB0ZW1wZXJhdHVyZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZDb25maWcge1xuICBwb3J0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVTTGludENvbmZpZyB7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gIGV4dGVuZHM/OiBzdHJpbmdbXTtcbiAgcnVsZXM/OiBMaW50ZXIuUnVsZXNSZWNvcmQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGV4Q29uZmlnVHlwZSB7XG4gIGFpPzogQUlDb25maWc7XG4gIGNvbmZpZ0ZpbGVzPzogc3RyaW5nW107XG4gIGNvcHlGaWxlcz86IHN0cmluZ1tdO1xuICBkZXY/OiBEZXZDb25maWc7XG4gIGVudHJ5SFRNTD86IHN0cmluZztcbiAgZW50cnlKcz86IHN0cmluZztcbiAgZW52Pzogb2JqZWN0IHwgbnVsbDtcbiAgZXNsaW50PzogRVNMaW50Q29uZmlnO1xuICBnaXRVcmw/OiBzdHJpbmc7XG4gIHZpdGVzdD86IFZpdGVzdENvbmZpZztcbiAgbGlicmFyeU5hbWU/OiBzdHJpbmc7XG4gIGxpYnJhcnlUYXJnZXQ/OiBzdHJpbmc7XG4gIG91dHB1dEZpbGU/OiBzdHJpbmc7XG4gIG91dHB1dEZ1bGxQYXRoPzogc3RyaW5nO1xuICBvdXRwdXRIYXNoPzogYm9vbGVhbjtcbiAgb3V0cHV0UGF0aD86IHN0cmluZztcbiAgcGFja2FnZU1hbmFnZXI/OiAnbnBtJyB8ICd5YXJuJztcbiAgcHJlc2V0PzogJ3dlYicgfCAnbm9kZScgfCAnbGFtYmRhJyB8ICdtb2JpbGUnO1xuICByZWFjdENvbXBpbGVyPzogUmVhY3RDb21waWxlckNvbmZpZztcbiAgc291cmNlRnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNvdXJjZVBhdGg/OiBzdHJpbmc7XG4gIHN3Yz86IFNXQ09wdGlvbnM7XG4gIHRhcmdldEVudmlyb25tZW50PzogJ25vZGUnIHwgJ3dlYic7XG4gIHVzZUdyYXBoUWw/OiBib29sZWFuO1xuICB1c2VUeXBlc2NyaXB0PzogYm9vbGVhbjtcbiAgd2VicGFjaz86IFdlYnBhY2tDb25maWc7XG59XG5cbmV4cG9ydCB0eXBlIENvbmZpZyA9IExleENvbmZpZ1R5cGU7XG5cbmV4cG9ydCB0eXBlIFJlYWN0Q29tcGlsZXJDb25maWcgPSBib29sZWFuIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCBjb25zdCByZWFjdENvbXBpbGVyUGx1Z2luTmFtZSA9ICdAc3djL3JlYWN0LWNvbXBpbGVyJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRSZWFjdENvbXBpbGVyT3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gIGNvbXBpbGF0aW9uTW9kZTogJ2luZmVyJyxcbiAgcGFuaWNUaHJlc2hvbGQ6ICdub25lJyxcbiAgdGFyZ2V0OiAnMTknXG59O1xuXG5jb25zdCBpc1JlYWN0Q29tcGlsZXJQbHVnaW4gPSAocGx1Z2luOiB1bmtub3duKTogYm9vbGVhbiA9PiAoXG4gIEFycmF5LmlzQXJyYXkocGx1Z2luKSAmJiBwbHVnaW5bMF0gPT09IHJlYWN0Q29tcGlsZXJQbHVnaW5OYW1lXG4pO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdENvbmZpZ1ZhbHVlczogTGV4Q29uZmlnVHlwZSA9IHtcbiAgYWk6IHtcbiAgICBtYXhUb2tlbnM6IDQwMDAsXG4gICAgbW9kZWw6ICdncHQtNG8nLFxuICAgIHByb3ZpZGVyOiAnbm9uZScsXG4gICAgdGVtcGVyYXR1cmU6IDAuMVxuICB9LFxuICBjb25maWdGaWxlczogW10sXG4gIGNvcHlGaWxlczogW10sXG4gIGVudHJ5SFRNTDogJ2luZGV4Lmh0bWwnLFxuICBlbnRyeUpzOiAnaW5kZXguanMnLFxuICBlbnY6IG51bGwsXG4gIGVzbGludDoge30sXG4gIG91dHB1dEZ1bGxQYXRoOiBwYXRoUmVzb2x2ZShjd2QsICcuL2xpYicpLFxuICBvdXRwdXRIYXNoOiBmYWxzZSxcbiAgb3V0cHV0UGF0aDogJy4vbGliJyxcbiAgcGFja2FnZU1hbmFnZXI6ICducG0nLFxuICBwcmVzZXQ6ICd3ZWInLFxuICBzb3VyY2VGdWxsUGF0aDogcGF0aFJlc29sdmUoY3dkLCAnLi9zcmMnKSxcbiAgc291cmNlUGF0aDogJy4vc3JjJyxcbiAgc3djOiB7XG4gICAgaW5saW5lU291cmNlc0NvbnRlbnQ6IHRydWUsXG4gICAgaXNNb2R1bGU6IHRydWUsXG4gICAganNjOiB7XG4gICAgICBleHRlcm5hbEhlbHBlcnM6IGZhbHNlLFxuICAgICAga2VlcENsYXNzTmFtZXM6IGZhbHNlLFxuICAgICAgbG9vc2U6IGZhbHNlLFxuICAgICAgcGFyc2VyOiB7XG4gICAgICAgIGRlY29yYXRvcnM6IHRydWUsXG4gICAgICAgIGR5bmFtaWNJbXBvcnQ6IHRydWUsXG4gICAgICAgIHN5bnRheDogJ3R5cGVzY3JpcHQnLFxuICAgICAgICB0c3g6IHRydWVcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6ICdlczIwMjMnLFxuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgcnVudGltZTogJ2F1dG9tYXRpYydcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgbWluaWZ5OiBmYWxzZSxcbiAgICBtb2R1bGU6IHtcbiAgICAgIGxhenk6IGZhbHNlLFxuICAgICAgbm9JbnRlcm9wOiBmYWxzZSxcbiAgICAgIHN0cmljdDogZmFsc2UsXG4gICAgICBzdHJpY3RNb2RlOiB0cnVlLFxuICAgICAgdHlwZTogJ2VzNidcbiAgICB9LFxuICAgIHNvdXJjZU1hcHM6ICdpbmxpbmUnXG4gIH0sXG4gIHRhcmdldEVudmlyb25tZW50OiAnd2ViJyxcbiAgdXNlR3JhcGhRbDogZmFsc2UsXG4gIHVzZVR5cGVzY3JpcHQ6IGZhbHNlLFxuICB2aXRlc3Q6IHt9LFxuICB3ZWJwYWNrOiB7XG4gICAgc3RhdGljUGF0aDogJy4vc3JjL3N0YXRpYydcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFBhY2thZ2VEaXIgPSAoKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgY3VycmVudFBrZ1BhdGggPSBwYXRoUmVzb2x2ZShjd2QsICdwYWNrYWdlLmpzb24nKTtcblxuICBpZihleGlzdHNTeW5jKGN1cnJlbnRQa2dQYXRoKSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhjdXJyZW50UGtnUGF0aCwgJ3V0ZjgnKSk7XG4gICAgICBpZighcGtnLndvcmtzcGFjZXMpIHtcbiAgICAgICAgcmV0dXJuIGN3ZDtcbiAgICAgIH1cbiAgICB9IGNhdGNoe1xuICAgICAgcmV0dXJuIGN3ZDtcbiAgICB9XG4gIH1cblxuICBsZXQgc2VhcmNoRGlyID0gY3dkO1xuXG4gIGZvcihsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG4gICAgY29uc3QgcGtnUGF0aCA9IHBhdGhSZXNvbHZlKHNlYXJjaERpciwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocGtnUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGY4JykpO1xuXG4gICAgICAgIGlmKCFwa2cud29ya3NwYWNlcykge1xuICAgICAgICAgIHJldHVybiBzZWFyY2hEaXI7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2h7XG4gICAgICAgIC8vIENvbnRpbnVlIHNlYXJjaGluZ1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoc2VhcmNoRGlyKTtcblxuICAgIGlmKHBhcmVudCA9PT0gc2VhcmNoRGlyKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgc2VhcmNoRGlyID0gcGFyZW50O1xuICB9XG5cbiAgY29uc3QgY29uZmlnRm9ybWF0cyA9IFsnanMnLCAnbWpzJywgJ2NqcycsICd0cycsICdqc29uJ107XG5cbiAgZm9yKGNvbnN0IGZvcm1hdCBvZiBjb25maWdGb3JtYXRzKSB7XG4gICAgY29uc3QgY29uZmlnUGF0aCA9IGZpbmRGaWxlVXAuc3luYyhgbGV4LmNvbmZpZy4ke2Zvcm1hdH1gLCBjd2QsIDUpO1xuXG4gICAgaWYoY29uZmlnUGF0aCkge1xuICAgICAgcmV0dXJuIGRpcm5hbWUoY29uZmlnUGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGN3ZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUeXBlU2NyaXB0Q29uZmlnUGF0aCA9IChjb25maWdOYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBwYWNrYWdlRGlyID0gZ2V0UGFja2FnZURpcigpO1xuICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIGlmKGNvbmZpZ05hbWUgPT09ICd0c2NvbmZpZy5idWlsZC5qc29uJykge1xuICAgIGNvbnN0IHByb2plY3RCdWlsZENvbmZpZyA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsICd0c2NvbmZpZy5idWlsZC5qc29uJyk7XG5cbiAgICBpZihleGlzdHNTeW5jKHByb2plY3RCdWlsZENvbmZpZykpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0QnVpbGRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdEJ1aWxkQ29uZmlnID0gcGF0aFJlc29sdmUoY3dkLCAndHNjb25maWcuYnVpbGQuanNvbicpO1xuICAgIGlmKGV4aXN0c1N5bmMocm9vdEJ1aWxkQ29uZmlnKSkge1xuICAgICAgcmV0dXJuIHJvb3RCdWlsZENvbmZpZztcbiAgICB9XG4gIH1cblxuICBpZihjb25maWdOYW1lID09PSAndHNjb25maWcubGludC5qc29uJykge1xuICAgIGNvbnN0IHByb2plY3RMaW50Q29uZmlnID0gcGF0aFJlc29sdmUocGFja2FnZURpciwgJ3RzY29uZmlnLmVzbGludC5qc29uJyk7XG4gICAgaWYoZXhpc3RzU3luYyhwcm9qZWN0TGludENvbmZpZykpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0TGludENvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCByb290TGludENvbmZpZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJ3RzY29uZmlnLmVzbGludC5qc29uJyk7XG5cbiAgICBpZihleGlzdHNTeW5jKHJvb3RMaW50Q29uZmlnKSkge1xuICAgICAgcmV0dXJuIHJvb3RMaW50Q29uZmlnO1xuICAgIH1cbiAgfVxuXG4gIGlmKGNvbmZpZ05hbWUgPT09ICd0c2NvbmZpZy50ZXN0Lmpzb24nKSB7XG4gICAgY29uc3QgcHJvamVjdFRlc3RDb25maWcgPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCAndHNjb25maWcudGVzdC5qc29uJyk7XG4gICAgaWYoZXhpc3RzU3luYyhwcm9qZWN0VGVzdENvbmZpZykpIHtcbiAgICAgIHJldHVybiBwcm9qZWN0VGVzdENvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCByb290VGVzdENvbmZpZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJ3RzY29uZmlnLnRlc3QuanNvbicpO1xuXG4gICAgaWYoZXhpc3RzU3luYyhyb290VGVzdENvbmZpZykpIHtcbiAgICAgIHJldHVybiByb290VGVzdENvbmZpZztcbiAgICB9XG4gIH1cblxuICBjb25zdCBwcm9qZWN0Q29uZmlnUGF0aCA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsIGNvbmZpZ05hbWUpO1xuXG4gIGlmKGV4aXN0c1N5bmMocHJvamVjdENvbmZpZ1BhdGgpKSB7XG4gICAgcmV0dXJuIHByb2plY3RDb25maWdQYXRoO1xuICB9XG5cbiAgY29uc3Qgcm9vdENvbmZpZ1BhdGggPSBwYXRoUmVzb2x2ZShjd2QsIGNvbmZpZ05hbWUpO1xuXG4gIGlmKGV4aXN0c1N5bmMocm9vdENvbmZpZ1BhdGgpKSB7XG4gICAgcmV0dXJuIHJvb3RDb25maWdQYXRoO1xuICB9XG5cbiAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuXG4gIHJldHVybiBwYXRoUmVzb2x2ZShsZXhEaXIsIGNvbmZpZ05hbWUpO1xufTtcblxuZXhwb3J0IGNsYXNzIExleENvbmZpZyB7XG4gIHN0YXRpYyBjb25maWc6IExleENvbmZpZ1R5cGUgPSB7XG4gICAgLi4uZGVmYXVsdENvbmZpZ1ZhbHVlc1xuICB9O1xuXG4gIHN0YXRpYyBzZXQgdXNlVHlwZXNjcmlwdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIExleENvbmZpZy5jb25maWcudXNlVHlwZXNjcmlwdCA9IHZhbHVlO1xuICAgIGNvbnN0IHtlbnRyeUpzLCBzb3VyY2VGdWxsUGF0aCwgdGFyZ2V0RW52aXJvbm1lbnR9ID0gTGV4Q29uZmlnLmNvbmZpZztcblxuICAgIGlmKGVudHJ5SnMgPT09ICdpbmRleC5qcycgJiYgdmFsdWUpIHtcbiAgICAgIGNvbnN0IGluZGV4UGF0aDogc3RyaW5nID0gcGF0aFJlc29sdmUoY3dkLCBzb3VyY2VGdWxsUGF0aCB8fCBjd2QsICdpbmRleC50c3gnKTtcbiAgICAgIGNvbnN0IGhhc0luZGV4VHN4OiBib29sZWFuID0gZXhpc3RzU3luYyhpbmRleFBhdGgpO1xuXG4gICAgICBpZihoYXNJbmRleFRzeCkge1xuICAgICAgICBMZXhDb25maWcuY29uZmlnLmVudHJ5SnMgPSAnaW5kZXgudHN4JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIExleENvbmZpZy5jb25maWcuZW50cnlKcyA9ICdpbmRleC50cyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgTGV4Q29uZmlnLmNvbmZpZy5zd2MgPSBMZXhDb25maWcuY29uZmlnLnN3YyB8fCB7Li4uZGVmYXVsdENvbmZpZ1ZhbHVlcy5zd2MhfTtcbiAgICBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MgPSBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MgfHwgey4uLmRlZmF1bHRDb25maWdWYWx1ZXMuc3djIS5qc2MhfTtcbiAgICBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MucGFyc2VyID0ge1xuICAgICAgc3ludGF4OiAndHlwZXNjcmlwdCcsXG4gICAgICB0c3g6IHRydWVcbiAgICB9O1xuXG4gICAgaWYodGFyZ2V0RW52aXJvbm1lbnQgPT09ICd3ZWInKSB7XG4gICAgICBMZXhDb25maWcuY29uZmlnLnN3Yy5qc2MudHJhbnNmb3JtID0ge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHJ1bnRpbWU6ICdhdXRvbWF0aWMnXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldExleERpcigpOiBzdHJpbmcge1xuICAgIHJldHVybiBkaXJuYW1lKGdldExleFBhY2thZ2VKc29uUGF0aCgpKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTV0NDb25maWdXaXRoUmVhY3RDb21waWxlcihcbiAgICBzd2NDb25maWc6IFNXQ09wdGlvbnMgfCB1bmRlZmluZWQgPSBMZXhDb25maWcuY29uZmlnLnN3YyxcbiAgICByZWFjdENvbXBpbGVyOiBSZWFjdENvbXBpbGVyQ29uZmlnIHwgdW5kZWZpbmVkID0gTGV4Q29uZmlnLmNvbmZpZy5yZWFjdENvbXBpbGVyXG4gICk6IFNXQ09wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgIGlmKHJlYWN0Q29tcGlsZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHN3Y0NvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U3djQ29uZmlnID0gc3djQ29uZmlnIHx8IGRlZmF1bHRDb25maWdWYWx1ZXMuc3djO1xuICAgIGNvbnN0IGN1cnJlbnRKc2M6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBjdXJyZW50U3djQ29uZmlnPy5qc2MgfHwge307XG4gICAgY29uc3QgY3VycmVudEV4cGVyaW1lbnRhbCA9IGN1cnJlbnRKc2MuZXhwZXJpbWVudGFsIHx8IHt9O1xuICAgIGNvbnN0IHBsdWdpbnMgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRFeHBlcmltZW50YWwucGx1Z2lucylcbiAgICAgID8gY3VycmVudEV4cGVyaW1lbnRhbC5wbHVnaW5zLmZpbHRlcigocGx1Z2luOiB1bmtub3duKSA9PiAhaXNSZWFjdENvbXBpbGVyUGx1Z2luKHBsdWdpbikpXG4gICAgICA6IFtdO1xuXG4gICAgY29uc3QgZXhwZXJpbWVudGFsID0gcmVhY3RDb21waWxlciA9PT0gZmFsc2VcbiAgICAgID8ge1xuICAgICAgICAuLi5jdXJyZW50RXhwZXJpbWVudGFsLFxuICAgICAgICBwbHVnaW5zXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgLi4uY3VycmVudEV4cGVyaW1lbnRhbCxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgIC4uLnBsdWdpbnMsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgcmVhY3RDb21waWxlclBsdWdpbk5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgcmVhY3RDb21waWxlciA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4uZGVmYXVsdFJlYWN0Q29tcGlsZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLnJlYWN0Q29tcGlsZXJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IGRlZmF1bHRSZWFjdENvbXBpbGVyT3B0aW9uc1xuICAgICAgICAgIF1cbiAgICAgICAgXVxuICAgICAgfTtcbiAgICBjb25zdCBzd2NDb25maWdXaXRoUmVhY3RDb21waWxlcjogU1dDT3B0aW9ucyA9IHtcbiAgICAgIC4uLmN1cnJlbnRTd2NDb25maWcsXG4gICAgICBqc2M6IHtcbiAgICAgICAgLi4uY3VycmVudEpzYyxcbiAgICAgICAgZXhwZXJpbWVudGFsXG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBzd2NDb25maWdXaXRoUmVhY3RDb21waWxlcjtcbiAgfVxuXG4gIHN0YXRpYyB1cGRhdGVDb25maWcodXBkYXRlZENvbmZpZzogTGV4Q29uZmlnVHlwZSk6IExleENvbmZpZ1R5cGUge1xuICAgIGNvbnN0IHtvdXRwdXRGdWxsUGF0aCwgb3V0cHV0UGF0aCwgc291cmNlUGF0aCwgc291cmNlRnVsbFBhdGgsIHVzZVR5cGVzY3JpcHQsIGFpfSA9IHVwZGF0ZWRDb25maWc7XG4gICAgY29uc3QgcGFja2FnZURpciA9IGdldFBhY2thZ2VEaXIoKTtcblxuICAgIGlmKHVzZVR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgTGV4Q29uZmlnLnVzZVR5cGVzY3JpcHQgPSB1c2VUeXBlc2NyaXB0O1xuICAgIH1cblxuICAgIGlmKG91dHB1dFBhdGggIT09IHVuZGVmaW5lZCAmJiBvdXRwdXRGdWxsUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB1cGRhdGVkQ29uZmlnLm91dHB1dEZ1bGxQYXRoID0gcGF0aFJlc29sdmUocGFja2FnZURpciwgb3V0cHV0UGF0aCk7XG4gICAgfVxuXG4gICAgaWYoc291cmNlUGF0aCAhPT0gdW5kZWZpbmVkICYmIHNvdXJjZUZ1bGxQYXRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHVwZGF0ZWRDb25maWcuc291cmNlRnVsbFBhdGggPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCBzb3VyY2VQYXRoKTtcbiAgICB9XG5cbiAgICBpZihhaSkge1xuICAgICAgTGV4Q29uZmlnLmNvbmZpZy5haSA9IHsuLi5MZXhDb25maWcuY29uZmlnLmFpLCAuLi5haX07XG5cbiAgICAgIGlmKHByb2Nlc3MuZW52LkNVUlNPUl9JREUgPT09ICd0cnVlJyAmJiBMZXhDb25maWcuY29uZmlnLmFpLnByb3ZpZGVyID09PSAnbm9uZScpIHtcbiAgICAgICAgTGV4Q29uZmlnLmNvbmZpZy5haS5wcm92aWRlciA9ICdjdXJzb3InO1xuICAgICAgfVxuICAgIH1cblxuICAgIExleENvbmZpZy5jb25maWcgPSB7Li4uTGV4Q29uZmlnLmNvbmZpZywgLi4udXBkYXRlZENvbmZpZ307XG4gICAgTGV4Q29uZmlnLmNvbmZpZy5zd2MgPSBMZXhDb25maWcuZ2V0U1dDQ29uZmlnV2l0aFJlYWN0Q29tcGlsZXIoKTtcblxuICAgIHJldHVybiBMZXhDb25maWcuY29uZmlnO1xuICB9XG5cbiAgc3RhdGljIGFkZENvbmZpZ1BhcmFtcyhjbWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIHBhcmFtczogTGV4Q29uZmlnVHlwZSkge1xuICAgIGNvbnN0IG5hbWVQcm9wZXJ0eTogc3RyaW5nID0gJ19uYW1lJztcbiAgICBjb25zdCB7ZW52aXJvbm1lbnQsIG91dHB1dFBhdGgsIHNvdXJjZVBhdGgsIHR5cGVzY3JpcHR9ID0gY21kO1xuICAgIGNvbnN0IHBhY2thZ2VEaXIgPSBnZXRQYWNrYWdlRGlyKCk7XG5cbiAgICBpZihvdXRwdXRQYXRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5vdXRwdXRQYXRoID0gb3V0cHV0UGF0aDtcbiAgICAgIHBhcmFtcy5vdXRwdXRGdWxsUGF0aCA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsIG91dHB1dFBhdGgpO1xuICAgIH0gZWxzZSBpZihwYXJhbXMub3V0cHV0UGF0aCAmJiAhcGFyYW1zLm91dHB1dEZ1bGxQYXRoKSB7XG4gICAgICBwYXJhbXMub3V0cHV0RnVsbFBhdGggPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCBwYXJhbXMub3V0cHV0UGF0aCk7XG4gICAgfVxuXG4gICAgaWYoc291cmNlUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc291cmNlUGF0aCA9IHNvdXJjZVBhdGg7XG4gICAgICBwYXJhbXMuc291cmNlRnVsbFBhdGggPSBwYXRoUmVzb2x2ZShwYWNrYWdlRGlyLCBzb3VyY2VQYXRoKTtcbiAgICB9IGVsc2UgaWYocGFyYW1zLnNvdXJjZVBhdGggJiYgIXBhcmFtcy5zb3VyY2VGdWxsUGF0aCkge1xuICAgICAgcGFyYW1zLnNvdXJjZUZ1bGxQYXRoID0gcGF0aFJlc29sdmUocGFja2FnZURpciwgcGFyYW1zLnNvdXJjZVBhdGgpO1xuICAgIH1cblxuICAgIGlmKHR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGFyYW1zLnVzZVR5cGVzY3JpcHQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKGVudmlyb25tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy50YXJnZXRFbnZpcm9ubWVudCA9IGVudmlyb25tZW50ID09PSAnd2ViJyA/ICd3ZWInIDogJ25vZGUnO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52LkxFWF9DT05GSUcgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgIHtcbiAgICAgICAgLi4uTGV4Q29uZmlnLnVwZGF0ZUNvbmZpZyhwYXJhbXMpLFxuICAgICAgICBjb21tYW5kTmFtZTogY21kW25hbWVQcm9wZXJ0eV0sXG4gICAgICAgIGlzU3RhdGljOiBjbWQuc3RhdGljXG4gICAgICB9LCBudWxsLCAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBwYXJzZUNvbmZpZyhjbWQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIGlzUm9vdDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBsZXhDb25maWcsIGxleENvbmZpZ05hbWUsIHF1aWV0LCB0eXBlc2NyaXB0LCBkZWJ1ZyA9IGZhbHNlfSA9IGNtZDtcbiAgICBjb25zdCBjb25maWdGb3JtYXRzID0gWydqcycsICdtanMnLCAnY2pzJywgJ3RzJywgJ2pzb24nXTtcbiAgICBjb25zdCBjb25maWdCYXNlTmFtZTogc3RyaW5nID0gbGV4Q29uZmlnTmFtZSB8fCAnbGV4LmNvbmZpZyc7XG4gICAgbGV0IGNvbmZpZ1BhdGg6IHN0cmluZyA9IGxleENvbmZpZyB8fCAnJztcbiAgICBsZXQgY29uZmlnRXhpc3RzOiBib29sZWFuID0gbGV4Q29uZmlnID8gZXhpc3RzU3luYyhjb25maWdQYXRoKSA6IGZhbHNlO1xuXG4gICAgaWYoIWNvbmZpZ1BhdGggfHwgIWNvbmZpZ0V4aXN0cykge1xuICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgbG9nKGBTZWFyY2hpbmcgZm9yIGNvbmZpZyBmaWxlcyB3aXRoIGJhc2UgbmFtZTogJHtjb25maWdCYXNlTmFtZX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgIH1cblxuICAgICAgZm9yKGNvbnN0IGZvcm1hdCBvZiBjb25maWdGb3JtYXRzKSB7XG4gICAgICAgIGNvbnN0IHBvdGVudGlhbFBhdGggPSBpc1Jvb3RcbiAgICAgICAgICA/IHBhdGhSZXNvbHZlKGN3ZCwgYC4vJHtjb25maWdCYXNlTmFtZX0uJHtmb3JtYXR9YClcbiAgICAgICAgICA6IHJlbGF0aXZlRmlsZVBhdGgoYCR7Y29uZmlnQmFzZU5hbWV9LiR7Zm9ybWF0fWAsIGN3ZCk7XG5cbiAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICBsb2coYENoZWNraW5nIGZvciBjb25maWcgZmlsZTogJHtwb3RlbnRpYWxQYXRofWAsICdpbmZvJywgcXVpZXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYoZXhpc3RzU3luYyhwb3RlbnRpYWxQYXRoKSkge1xuICAgICAgICAgIGNvbmZpZ1BhdGggPSBwb3RlbnRpYWxQYXRoO1xuICAgICAgICAgIGNvbmZpZ0V4aXN0cyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihjb25maWdFeGlzdHMpIHtcbiAgICAgIGxvZyhgVXNpbmcgJHtjbGlOYW1lfSBjb25maWd1cmF0aW9uIGZpbGU6ICR7Y29uZmlnUGF0aH1gLCAnbm90ZScsIHF1aWV0KTtcbiAgICAgIGNvbnN0IGV4dDogc3RyaW5nID0gcGF0aEV4dG5hbWUoY29uZmlnUGF0aCk7XG5cbiAgICAgIGlmKGV4dCA9PT0gJy5qc29uJykge1xuICAgICAgICBjb25zdCBjb25maWdDb250ZW50OiBzdHJpbmcgPSByZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0ZjgnKTtcblxuICAgICAgICBpZihjb25maWdDb250ZW50KSB7XG4gICAgICAgICAgbGV0IGNvbmZpZ0pzb246IExleENvbmZpZ1R5cGU7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uZmlnSnNvbiA9IEpTT04ucGFyc2UoY29uZmlnQ29udGVudCk/LmRlZmF1bHQgfHwge307XG4gICAgICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBGYWlsZWQgdG8gcGFyc2UgSlNPTiBjb25maWc6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgICAgICBjb25maWdKc29uID0ge307XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZ0pzb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogQ29uZmlnIGZpbGUgbWFsZm9ybWVkLCAke2NvbmZpZ1BhdGh9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYoWycuanMnLCAnLm1qcycsICcuY2pzJywgJy50cyddLmluY2x1ZGVzKGV4dCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgbGV4Q3VzdG9tQ29uZmlnO1xuXG4gICAgICAgICAgaWYoZXh0ID09PSAnLmNqcycpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSBuZXcgVVJMKGBmaWxlOi8vLyR7cGF0aFJlc29sdmUoY29uZmlnUGF0aCl9YCkuaHJlZjtcblxuICAgICAgICAgICAgaWYoZGVidWcpIHtcbiAgICAgICAgICAgICAgbG9nKGBMb2FkaW5nIENvbW1vbkpTIGNvbmZpZyBmcm9tOiAke2ZpbGVVcmx9YCwgJ2luZm8nLCBxdWlldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXhDdXN0b21Db25maWcgPSBhd2FpdCBpbXBvcnQoZmlsZVVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAgIGxvZyhgTG9hZGluZyBFU00vVFMgY29uZmlnIGZyb206ICR7Y29uZmlnUGF0aH1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV4Q3VzdG9tQ29uZmlnID0gYXdhaXQgaW1wb3J0KGNvbmZpZ1BhdGgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGxleEN1c3RvbUNvbmZpZy5kZWZhdWx0IHx8IGxleEN1c3RvbUNvbmZpZztcblxuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICBsb2coYExvYWRlZCBjb25maWc6ICR7SlNPTi5zdHJpbmdpZnkoY29uZmlnLCBudWxsLCAyKX1gLCAnaW5mbycsIHF1aWV0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZighY29uZmlnKSB7XG4gICAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gV2FybmluZzogQ29uZmlnIGZpbGUgbG9hZGVkIGJ1dCBubyBjb25maWd1cmF0aW9uIGZvdW5kYCwgJ3dhcm4nLCBxdWlldCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIGNvbmZpZyB8fCB7fSk7XG4gICAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IEZhaWxlZCB0byBsb2FkIGNvbmZpZyBmaWxlOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgICAgIGlmKGRlYnVnKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IENvbmZpZyBmaWxlIG11c3QgYmUgYSBKUywgQ0pTLCBNSlMsIFRTLCBvciBKU09OIGZpbGUuYCwgJ2Vycm9yJywgcXVpZXQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZihkZWJ1Zykge1xuICAgICAgICBsb2coJ05vIGNvbmZpZyBmaWxlIGZvdW5kLiBVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uJywgJ2luZm8nLCBxdWlldCk7XG4gICAgICB9XG5cbiAgICAgIExleENvbmZpZy51c2VUeXBlc2NyaXB0ID0gISF0eXBlc2NyaXB0O1xuICAgICAgTGV4Q29uZmlnLmFkZENvbmZpZ1BhcmFtcyhjbWQsIExleENvbmZpZy5jb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1R5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgcGFja2FnZURpciA9IGdldFBhY2thZ2VEaXIoKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKHBhY2thZ2VEaXIsICcuL3RzY29uZmlnLmpzb24nKTtcblxuICAgIGlmKCFleGlzdHNTeW5jKHRzY29uZmlnUGF0aCkpIHtcbiAgICAgIGNvbnN0IGxleERpciA9IExleENvbmZpZy5nZXRMZXhEaXIoKTtcbiAgICAgIGNvbnN0IGJhc2VDb25maWdQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcuYmFzZS5qc29uJyk7XG4gICAgICBjb25zdCB0ZW1wbGF0ZUNvbmZpZ1BhdGggPSBwYXRoUmVzb2x2ZShsZXhEaXIsICd0c2NvbmZpZy50ZW1wbGF0ZS5qc29uJyk7XG4gICAgICBjb25zdCBzb3VyY2VQYXRoID0gZXhpc3RzU3luYyhiYXNlQ29uZmlnUGF0aCkgPyBiYXNlQ29uZmlnUGF0aCA6IHRlbXBsYXRlQ29uZmlnUGF0aDtcblxuICAgICAgaWYoZXhpc3RzU3luYyhzb3VyY2VQYXRoKSkge1xuICAgICAgICB3cml0ZUZpbGVTeW5jKHRzY29uZmlnUGF0aCwgcmVhZEZpbGVTeW5jKHNvdXJjZVBhdGgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0VHlwZVNjcmlwdERlY2xhcmF0aW9uRmxhZ3MoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3Qgb3V0cHV0UGF0aCA9IExleENvbmZpZy5jb25maWcub3V0cHV0UGF0aCB8fCAnLi9saWInO1xuICAgIGNvbnN0IG91dHB1dEZ1bGxQYXRoID0gTGV4Q29uZmlnLmNvbmZpZy5vdXRwdXRGdWxsUGF0aCB8fCBwYXRoUmVzb2x2ZShjd2QsIG91dHB1dFBhdGgpO1xuICAgIGNvbnN0IHNvdXJjZVBhdGggPSBMZXhDb25maWcuY29uZmlnLnNvdXJjZVBhdGggfHwgJy4vc3JjJztcbiAgICBjb25zdCBzb3VyY2VGdWxsUGF0aCA9IExleENvbmZpZy5jb25maWcuc291cmNlRnVsbFBhdGggfHwgcGF0aFJlc29sdmUoY3dkLCBzb3VyY2VQYXRoKTtcbiAgICBjb25zdCByZWxhdGl2ZU91dERpciA9IHBhdGhSZWxhdGl2ZShjd2QsIG91dHB1dEZ1bGxQYXRoKSB8fCAnLi9saWInO1xuICAgIGNvbnN0IHJlbGF0aXZlUm9vdERpciA9IHBhdGhSZWxhdGl2ZShjd2QsIHNvdXJjZUZ1bGxQYXRoKSB8fCAnLi9zcmMnO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgICctLWVtaXREZWNsYXJhdGlvbk9ubHknLCAvLyBDUklUSUNBTDogT25seSBlbWl0IC5kLnRzIGZpbGVzLCBubyBKUyBmaWxlc1xuICAgICAgJy0tZGVjbGFyYXRpb24nLCAvLyBHZW5lcmF0ZSBkZWNsYXJhdGlvbiBmaWxlc1xuICAgICAgJy0tZGVjbGFyYXRpb25NYXAnLCAvLyBHZW5lcmF0ZSBzb3VyY2UgbWFwcyBmb3IgZGVjbGFyYXRpb25zXG4gICAgICAnLS1vdXREaXInLCByZWxhdGl2ZU91dERpcixcbiAgICAgICctLXJvb3REaXInLCByZWxhdGl2ZVJvb3REaXIsXG4gICAgICAnLS1za2lwTGliQ2hlY2snLCAvLyBTa2lwIHR5cGUgY2hlY2tpbmcgb2YgZGVjbGFyYXRpb24gZmlsZXMgKGZhc3RlciwgbW9yZSBsZW5pZW50KVxuICAgICAgJy0tZXNNb2R1bGVJbnRlcm9wJyxcbiAgICAgICctLWFsbG93U3ludGhldGljRGVmYXVsdEltcG9ydHMnLFxuICAgICAgJy0tbW9kdWxlJywgJ05vZGVOZXh0JyxcbiAgICAgICctLW1vZHVsZVJlc29sdXRpb24nLCAnTm9kZU5leHQnLFxuICAgICAgJy0tdGFyZ2V0JywgJ0VTTmV4dCcsXG4gICAgICAnLS1qc3gnLCAncmVhY3QtanN4JyxcbiAgICAgICctLWlzb2xhdGVkTW9kdWxlcycsXG4gICAgICAnLS1yZXNvbHZlSnNvbk1vZHVsZScsXG4gICAgICAnLS1hbGxvd0pzJyxcbiAgICAgICctLWlnbm9yZUNvbmZpZydcbiAgICAgIC8vIE5vdGU6IC0tbm9VbnVzZWRMb2NhbHMgYW5kIC0tbm9VbnVzZWRQYXJhbWV0ZXJzIGFyZSBub3QgbmVlZGVkIGZvciBkZWNsYXJhdGlvbiBnZW5lcmF0aW9uXG4gICAgICAvLyBhbmQgd291bGQgYWN0dWFsbHkgZW5hYmxlIHN0cmljdCBjaGVja2luZywgd2hpY2ggd2Ugd2FudCB0byBhdm9pZCBmb3IgZmFzdGVyIGRlY2xhcmF0aW9uIGdlbmVyYXRpb25cbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGNoZWNrTGludFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnTGludFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcubGludC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ0xpbnRQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcubGludC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ0xpbnRQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNoZWNrVGVzdFR5cGVzY3JpcHRDb25maWcoKSB7XG4gICAgY29uc3QgbGV4RGlyID0gTGV4Q29uZmlnLmdldExleERpcigpO1xuICAgIGNvbnN0IHRzY29uZmlnVGVzdFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGxleERpciwgJy4vdHNjb25maWcudGVzdC5qc29uJyk7XG5cbiAgICBpZighZXhpc3RzU3luYyh0c2NvbmZpZ1Rlc3RQYXRoKSkge1xuICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aFJlc29sdmUobGV4RGlyLCAndHNjb25maWcudGVzdC5qc29uJyk7XG4gICAgICBpZihleGlzdHNTeW5jKHRlbXBsYXRlUGF0aCkpIHtcbiAgICAgICAgd3JpdGVGaWxlU3luYyh0c2NvbmZpZ1Rlc3RQYXRoLCByZWFkRmlsZVN5bmModGVtcGxhdGVQYXRoKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFNXQ09wdGlvbnMgPSBPcHRpb25zO1xuIl0sIm5hbWVzIjpbImZpbmRGaWxlVXAiLCJleGlzdHNTeW5jIiwicmVhZEZpbGVTeW5jIiwid3JpdGVGaWxlU3luYyIsImRpcm5hbWUiLCJleHRuYW1lIiwicGF0aEV4dG5hbWUiLCJyZWxhdGl2ZSIsInBhdGhSZWxhdGl2ZSIsInJlc29sdmUiLCJwYXRoUmVzb2x2ZSIsIlVSTCIsImdldExleFBhY2thZ2VKc29uUGF0aCIsInJlbGF0aXZlRmlsZVBhdGgiLCJsb2ciLCJjd2QiLCJwcm9jZXNzIiwicmVhY3RDb21waWxlclBsdWdpbk5hbWUiLCJkZWZhdWx0UmVhY3RDb21waWxlck9wdGlvbnMiLCJjb21waWxhdGlvbk1vZGUiLCJwYW5pY1RocmVzaG9sZCIsInRhcmdldCIsImlzUmVhY3RDb21waWxlclBsdWdpbiIsInBsdWdpbiIsIkFycmF5IiwiaXNBcnJheSIsImRlZmF1bHRDb25maWdWYWx1ZXMiLCJhaSIsIm1heFRva2VucyIsIm1vZGVsIiwicHJvdmlkZXIiLCJ0ZW1wZXJhdHVyZSIsImNvbmZpZ0ZpbGVzIiwiY29weUZpbGVzIiwiZW50cnlIVE1MIiwiZW50cnlKcyIsImVudiIsImVzbGludCIsIm91dHB1dEZ1bGxQYXRoIiwib3V0cHV0SGFzaCIsIm91dHB1dFBhdGgiLCJwYWNrYWdlTWFuYWdlciIsInByZXNldCIsInNvdXJjZUZ1bGxQYXRoIiwic291cmNlUGF0aCIsInN3YyIsImlubGluZVNvdXJjZXNDb250ZW50IiwiaXNNb2R1bGUiLCJqc2MiLCJleHRlcm5hbEhlbHBlcnMiLCJrZWVwQ2xhc3NOYW1lcyIsImxvb3NlIiwicGFyc2VyIiwiZGVjb3JhdG9ycyIsImR5bmFtaWNJbXBvcnQiLCJzeW50YXgiLCJ0c3giLCJ0cmFuc2Zvcm0iLCJyZWFjdCIsInJ1bnRpbWUiLCJtaW5pZnkiLCJtb2R1bGUiLCJsYXp5Iiwibm9JbnRlcm9wIiwic3RyaWN0Iiwic3RyaWN0TW9kZSIsInR5cGUiLCJzb3VyY2VNYXBzIiwidGFyZ2V0RW52aXJvbm1lbnQiLCJ1c2VHcmFwaFFsIiwidXNlVHlwZXNjcmlwdCIsInZpdGVzdCIsIndlYnBhY2siLCJzdGF0aWNQYXRoIiwiZ2V0UGFja2FnZURpciIsImN1cnJlbnRQa2dQYXRoIiwicGtnIiwiSlNPTiIsInBhcnNlIiwid29ya3NwYWNlcyIsInNlYXJjaERpciIsImkiLCJwa2dQYXRoIiwicGFyZW50IiwiY29uZmlnRm9ybWF0cyIsImZvcm1hdCIsImNvbmZpZ1BhdGgiLCJzeW5jIiwiZ2V0VHlwZVNjcmlwdENvbmZpZ1BhdGgiLCJjb25maWdOYW1lIiwicGFja2FnZURpciIsInByb2plY3RCdWlsZENvbmZpZyIsInJvb3RCdWlsZENvbmZpZyIsInByb2plY3RMaW50Q29uZmlnIiwicm9vdExpbnRDb25maWciLCJwcm9qZWN0VGVzdENvbmZpZyIsInJvb3RUZXN0Q29uZmlnIiwicHJvamVjdENvbmZpZ1BhdGgiLCJyb290Q29uZmlnUGF0aCIsImxleERpciIsIkxleENvbmZpZyIsImdldExleERpciIsInZhbHVlIiwiY29uZmlnIiwiaW5kZXhQYXRoIiwiaGFzSW5kZXhUc3giLCJnZXRTV0NDb25maWdXaXRoUmVhY3RDb21waWxlciIsInN3Y0NvbmZpZyIsInJlYWN0Q29tcGlsZXIiLCJ1bmRlZmluZWQiLCJjdXJyZW50U3djQ29uZmlnIiwiY3VycmVudEpzYyIsImN1cnJlbnRFeHBlcmltZW50YWwiLCJleHBlcmltZW50YWwiLCJwbHVnaW5zIiwiZmlsdGVyIiwic3djQ29uZmlnV2l0aFJlYWN0Q29tcGlsZXIiLCJ1cGRhdGVDb25maWciLCJ1cGRhdGVkQ29uZmlnIiwiQ1VSU09SX0lERSIsImFkZENvbmZpZ1BhcmFtcyIsImNtZCIsInBhcmFtcyIsIm5hbWVQcm9wZXJ0eSIsImVudmlyb25tZW50IiwidHlwZXNjcmlwdCIsIkxFWF9DT05GSUciLCJzdHJpbmdpZnkiLCJjb21tYW5kTmFtZSIsImlzU3RhdGljIiwic3RhdGljIiwicGFyc2VDb25maWciLCJpc1Jvb3QiLCJjbGlOYW1lIiwibGV4Q29uZmlnIiwibGV4Q29uZmlnTmFtZSIsInF1aWV0IiwiZGVidWciLCJjb25maWdCYXNlTmFtZSIsImNvbmZpZ0V4aXN0cyIsInBvdGVudGlhbFBhdGgiLCJleHQiLCJjb25maWdDb250ZW50IiwiY29uZmlnSnNvbiIsImRlZmF1bHQiLCJlcnJvciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsImxleEN1c3RvbUNvbmZpZyIsImZpbGVVcmwiLCJocmVmIiwiY29uc29sZSIsImNoZWNrVHlwZXNjcmlwdENvbmZpZyIsInRzY29uZmlnUGF0aCIsImJhc2VDb25maWdQYXRoIiwidGVtcGxhdGVDb25maWdQYXRoIiwiZ2V0VHlwZVNjcmlwdERlY2xhcmF0aW9uRmxhZ3MiLCJyZWxhdGl2ZU91dERpciIsInJlbGF0aXZlUm9vdERpciIsImNoZWNrTGludFR5cGVzY3JpcHRDb25maWciLCJ0c2NvbmZpZ0xpbnRQYXRoIiwidGVtcGxhdGVQYXRoIiwiY2hlY2tUZXN0VHlwZXNjcmlwdENvbmZpZyIsInRzY29uZmlnVGVzdFBhdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7OztDQUdDLEdBQ0QsT0FBT0EsZ0JBQWdCLGVBQWU7QUFDdEMsU0FBUUMsVUFBVSxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsUUFBTyxLQUFLO0FBQzNELFNBQ0VDLE9BQU8sRUFDUEMsV0FBV0MsV0FBVyxFQUN0QkMsWUFBWUMsWUFBWSxFQUN4QkMsV0FBV0MsV0FBVyxRQUNqQixPQUFPO0FBQ2QsU0FBUUMsR0FBRyxRQUFPLE1BQU07QUFFeEIsU0FBUUMscUJBQXFCLEVBQUVDLGdCQUFnQixRQUFPLGtCQUFrQjtBQUN4RSxTQUFRQyxHQUFHLFFBQU8saUJBQWlCO0FBS25DLE1BQU1DLE1BQWNDLFFBQVFELEdBQUc7QUFtRS9CLE9BQU8sTUFBTUUsMEJBQTBCLHNCQUFzQjtBQUU3RCxPQUFPLE1BQU1DLDhCQUF1RDtJQUNsRUMsaUJBQWlCO0lBQ2pCQyxnQkFBZ0I7SUFDaEJDLFFBQVE7QUFDVixFQUFFO0FBRUYsTUFBTUMsd0JBQXdCLENBQUNDLFNBQzdCQyxNQUFNQyxPQUFPLENBQUNGLFdBQVdBLE1BQU0sQ0FBQyxFQUFFLEtBQUtOO0FBR3pDLE9BQU8sTUFBTVMsc0JBQXFDO0lBQ2hEQyxJQUFJO1FBQ0ZDLFdBQVc7UUFDWEMsT0FBTztRQUNQQyxVQUFVO1FBQ1ZDLGFBQWE7SUFDZjtJQUNBQyxhQUFhLEVBQUU7SUFDZkMsV0FBVyxFQUFFO0lBQ2JDLFdBQVc7SUFDWEMsU0FBUztJQUNUQyxLQUFLO0lBQ0xDLFFBQVEsQ0FBQztJQUNUQyxnQkFBZ0I1QixZQUFZSyxLQUFLO0lBQ2pDd0IsWUFBWTtJQUNaQyxZQUFZO0lBQ1pDLGdCQUFnQjtJQUNoQkMsUUFBUTtJQUNSQyxnQkFB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
@@ -3,10 +3,10 @@
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */ import { execa } from 'execa';
5
5
  import { renameSync, writeFileSync } from 'fs';
6
+ import pacote from 'pacote';
6
7
  import { resolve as pathResolve } from 'path';
7
8
  import { LexConfig } from '../../LexConfig.js';
8
9
  import { createSpinner, getPackageJson, setPackageJson } from '../../utils/app.js';
9
- import { getDirName } from '../../utils/file.js';
10
10
  import { log } from '../../utils/log.js';
11
11
  export const init = async (appName, packageName, cmd, callback = ()=>({}))=>{
12
12
  const { cliName = 'Lex', install, packageManager: cmdPackageManager, quiet, typescript } = cmd;
@@ -18,8 +18,6 @@ export const init = async (appName, packageName, cmd, callback = ()=>({}))=>{
18
18
  spinner.start('Downloading app...');
19
19
  const tmpPath = pathResolve(cwd, './.lexTmp');
20
20
  const appPath = pathResolve(cwd, `./${appName}`);
21
- const dirName = getDirName();
22
- const dnpPath = pathResolve(dirName, '../../../node_modules/download-npm-package/bin/cli.js');
23
21
  // Get custom configuration
24
22
  await LexConfig.parseConfig(cmd);
25
23
  const { packageManager: configPackageManager, useTypescript: configTypescript } = LexConfig.config;
@@ -35,10 +33,7 @@ export const init = async (appName, packageName, cmd, callback = ()=>({}))=>{
35
33
  }
36
34
  }
37
35
  try {
38
- await execa(dnpPath, [
39
- appModule,
40
- tmpPath
41
- ], {});
36
+ await pacote.extract(appModule, tmpPath);
42
37
  // Stop spinner and update status
43
38
  spinner.succeed('Successfully downloaded app!');
44
39
  } catch (error) {
@@ -52,7 +47,7 @@ export const init = async (appName, packageName, cmd, callback = ()=>({}))=>{
52
47
  }
53
48
  // Move into configured directory
54
49
  try {
55
- renameSync(`${tmpPath}/${appModule}`, appPath);
50
+ renameSync(tmpPath, appPath);
56
51
  } catch (_error) {
57
52
  log(`\n${cliName} Error: There was an error copying ${appModule} to the current working directory.`, 'error', quiet);
58
53
  callback(1);
@@ -110,4 +105,4 @@ export const init = async (appName, packageName, cmd, callback = ()=>({}))=>{
110
105
  return 0;
111
106
  };
112
107
 
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9pbml0L2luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhlY2F9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCB7cmVuYW1lU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHtyZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXIsIGdldFBhY2thZ2VKc29uLCBzZXRQYWNrYWdlSnNvbn0gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7Z2V0RGlyTmFtZX0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZS5qcyc7XG5pbXBvcnQge2xvZ30gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbml0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IGNsaU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGluc3RhbGw/OiBib29sZWFuO1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcj86IHN0cmluZztcbiAgcmVhZG9ubHkgcXVpZXQ/OiBib29sZWFuO1xuICByZWFkb25seSB0eXBlc2NyaXB0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgSW5pdENhbGxiYWNrID0gKHN0YXR1czogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgY29uc3QgaW5pdCA9IGFzeW5jIChcbiAgYXBwTmFtZTogc3RyaW5nLFxuICBwYWNrYWdlTmFtZTogc3RyaW5nLFxuICBjbWQ6IEluaXRPcHRpb25zLFxuICBjYWxsYmFjazogSW5pdENhbGxiYWNrID0gKCkgPT4gKHt9KVxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3Qge2NsaU5hbWUgPSAnTGV4JywgaW5zdGFsbCwgcGFja2FnZU1hbmFnZXI6IGNtZFBhY2thZ2VNYW5hZ2VyLCBxdWlldCwgdHlwZXNjcmlwdH0gPSBjbWQ7XG4gIGNvbnN0IGN3ZDogc3RyaW5nID0gcHJvY2Vzcy5jd2QoKTtcblxuICAvLyBTcGlubmVyXG4gIGNvbnN0IHNwaW5uZXIgPSBjcmVhdGVTcGlubmVyKHF1aWV0KTtcblxuICAvLyBEb3dubG9hZCBhcHAgbW9kdWxlIGludG8gdGVtcG9yYXJ5IGRpcmVjdG9yeVxuICBsb2coYCR7Y2xpTmFtZX0gaXMgZG93bmxvYWRpbmcgdGhlIGFwcCBtb2R1bGUuLi5gLCAnaW5mbycsIHF1aWV0KTtcbiAgc3Bpbm5lci5zdGFydCgnRG93bmxvYWRpbmcgYXBwLi4uJyk7XG4gIGNvbnN0IHRtcFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGN3ZCwgJy4vLmxleFRtcCcpO1xuICBjb25zdCBhcHBQYXRoOiBzdHJpbmcgPSBwYXRoUmVzb2x2ZShjd2QsIGAuLyR7YXBwTmFtZX1gKTtcbiAgY29uc3QgZGlyTmFtZSA9IGdldERpck5hbWUoKTtcbiAgY29uc3QgZG5wUGF0aDogc3RyaW5nID0gcGF0aFJlc29sdmUoZGlyTmFtZSwgJy4uLy4uLy4uL25vZGVfbW9kdWxlcy9kb3dubG9hZC1ucG0tcGFja2FnZS9iaW4vY2xpLmpzJyk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuICBjb25zdCB7cGFja2FnZU1hbmFnZXI6IGNvbmZpZ1BhY2thZ2VNYW5hZ2VyLCB1c2VUeXBlc2NyaXB0OiBjb25maWdUeXBlc2NyaXB0fSA9IExleENvbmZpZy5jb25maWc7XG4gIGNvbnN0IHBhY2thZ2VNYW5hZ2VyOiBzdHJpbmcgPSBjbWRQYWNrYWdlTWFuYWdlciB8fCBjb25maWdQYWNrYWdlTWFuYWdlciB8fCAnJztcbiAgY29uc3QgdXNlVHlwZXNjcmlwdDogYm9vbGVhbiA9IHR5cGVzY3JpcHQgIT09IHVuZGVmaW5lZCA/IHR5cGVzY3JpcHQgOiBjb25maWdUeXBlc2NyaXB0IHx8IGZhbHNlO1xuXG4gIGxldCBhcHBNb2R1bGU6IHN0cmluZyA9IHBhY2thZ2VOYW1lO1xuXG4gIC8vIFVzZSBiYXNlIGFwcCBtb2R1bGUgYmFzZWQgb24gY29uZmlnXG4gIGlmKCFhcHBNb2R1bGUpIHtcbiAgICBpZih1c2VUeXBlc2NyaXB0KSB7XG4gICAgICBhcHBNb2R1bGUgPSAnQG5sYWJzL2Fya2hhbWpzLWV4YW1wbGUtdHMtcmVhY3QnO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcHBNb2R1bGUgPSAnQG5sYWJzL2Fya2hhbWpzLWV4YW1wbGUtZmxvdy1yZWFjdCc7XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjYShkbnBQYXRoLCBbYXBwTW9kdWxlLCB0bXBQYXRoXSwge30pO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyIGFuZCB1cGRhdGUgc3RhdHVzXG4gICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgZG93bmxvYWRlZCBhcHAhJyk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zb2xlLmxvZygnZXJyb3InLCBlcnJvcik7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBUaGVyZSB3YXMgYW4gZXJyb3IgZG93bmxvYWRpbmcgJHthcHBNb2R1bGV9LiBNYWtlIHN1cmUgdGhlIHBhY2thZ2UgZXhpc3RzIGFuZCB0aGVyZSBpcyBhIG5ldHdvcmsgY29ubmVjdGlvbi5gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXIgYW5kIGtpbGwgcHJvY2Vzc1xuICAgIHNwaW5uZXIuZmFpbCgnRG93bmxvYWRlZCBvZiBhcHAgZmFpbGVkLicpO1xuXG4gICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvLyBNb3ZlIGludG8gY29uZmlndXJlZCBkaXJlY3RvcnlcbiAgdHJ5IHtcbiAgICByZW5hbWVTeW5jKGAke3RtcFBhdGh9LyR7YXBwTW9kdWxlfWAsIGFwcFBhdGgpO1xuICB9IGNhdGNoKF9lcnJvcikge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogVGhlcmUgd2FzIGFuIGVycm9yIGNvcHlpbmcgJHthcHBNb2R1bGV9IHRvIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8vIENvbmZpZ3VyZSBwYWNrYWdlLmpzb25cbiAgY29uc3QgcGFja2FnZVBhdGg6IHN0cmluZyA9IGAke2FwcFBhdGh9L3BhY2thZ2UuanNvbmA7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gZ2V0UGFja2FnZUpzb24ocGFja2FnZVBhdGgpO1xuICBwYWNrYWdlSnNvbi5uYW1lID0gYXBwTmFtZTtcbiAgcGFja2FnZUpzb24uZGVzY3JpcHRpb24gPSBgJHtjbGlOYW1lfSBjcmVhdGVkIGFwcGA7XG4gIHBhY2thZ2VKc29uLnZlcnNpb24gPSAnMC4xLjAnO1xuICBkZWxldGUgcGFja2FnZUpzb24ua2V5d29yZHM7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5hdXRob3I7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5jb250cmlidXRvcnM7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5yZXBvc2l0b3J5O1xuICBkZWxldGUgcGFja2FnZUpzb24uaG9tZXBhZ2U7XG4gIGRlbGV0ZSBwYWNrYWdlSnNvbi5idWdzO1xuXG4gIHRyeSB7XG4gICAgLy8gVXBkYXRlIHBhY2thZ2UuanNvblxuICAgIHNldFBhY2thZ2VKc29uKHBhY2thZ2VKc29uLCBwYWNrYWdlUGF0aCk7XG5cbiAgICAvLyBVcGRhdGUgUkVBRE1FXG4gICAgY29uc3QgcmVhZG1lUGF0aDogc3RyaW5nID0gYCR7YXBwUGF0aH0vUkVBRE1FLm1kYDtcbiAgICB3cml0ZUZpbGVTeW5jKHJlYWRtZVBhdGgsIGAjICR7YXBwTmFtZX1gKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIGlmKGluc3RhbGwpIHtcbiAgICBzcGlubmVyLnN0YXJ0KCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLicpO1xuXG4gICAgLy8gQ2hhbmdlIHRvIHRoZSBhcHAgZGlyZWN0b3J5XG4gICAgcHJvY2Vzcy5jaGRpcihhcHBQYXRoKTtcblxuICAgIC8vIEluc3RhbGwgZGVwZW5kZW5jaWVzXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWNhKHBhY2thZ2VNYW5hZ2VyLCBbJ2luc3RhbGwnXSwge1xuICAgICAgICBlbmNvZGluZzogJ3V0ZjgnLFxuICAgICAgICBzdGRpbzogJ2luaGVyaXQnXG4gICAgICB9KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLnN1Y2NlZWQoJ1N1Y2Nlc3NmdWxseSBpbnN0YWxsZWQgZGVwZW5kZW5jaWVzIScpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIC8vIERpc3BsYXkgZXJyb3IgbWVzc2FnZVxuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiAke2Vycm9yLm1lc3NhZ2V9YCwgJ2Vycm9yJywgcXVpZXQpO1xuXG4gICAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICAgIHNwaW5uZXIuZmFpbCgnRmFpbGVkIHRvIGluc3RhbGwgZGVwZW5kZW5jaWVzLicpO1xuXG4gICAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9XG5cbiAgLy8gS2lsbCBwcm9jZXNzXG4gIGNhbGxiYWNrKDApO1xuICByZXR1cm4gMDtcbn07Il0sIm5hbWVzIjpbImV4ZWNhIiwicmVuYW1lU3luYyIsIndyaXRlRmlsZVN5bmMiLCJyZXNvbHZlIiwicGF0aFJlc29sdmUiLCJMZXhDb25maWciLCJjcmVhdGVTcGlubmVyIiwiZ2V0UGFja2FnZUpzb24iLCJzZXRQYWNrYWdlSnNvbiIsImdldERpck5hbWUiLCJsb2ciLCJpbml0IiwiYXBwTmFtZSIsInBhY2thZ2VOYW1lIiwiY21kIiwiY2FsbGJhY2siLCJjbGlOYW1lIiwiaW5zdGFsbCIsInBhY2thZ2VNYW5hZ2VyIiwiY21kUGFja2FnZU1hbmFnZXIiLCJxdWlldCIsInR5cGVzY3JpcHQiLCJjd2QiLCJwcm9jZXNzIiwic3Bpbm5lciIsInN0YXJ0IiwidG1wUGF0aCIsImFwcFBhdGgiLCJkaXJOYW1lIiwiZG5wUGF0aCIsInBhcnNlQ29uZmlnIiwiY29uZmlnUGFja2FnZU1hbmFnZXIiLCJ1c2VUeXBlc2NyaXB0IiwiY29uZmlnVHlwZXNjcmlwdCIsImNvbmZpZyIsInVuZGVmaW5lZCIsImFwcE1vZHVsZSIsInN1Y2NlZWQiLCJlcnJvciIsImNvbnNvbGUiLCJmYWlsIiwiX2Vycm9yIiwicGFja2FnZVBhdGgiLCJwYWNrYWdlSnNvbiIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInZlcnNpb24iLCJrZXl3b3JkcyIsImF1dGhvciIsImNvbnRyaWJ1dG9ycyIsInJlcG9zaXRvcnkiLCJob21lcGFnZSIsImJ1Z3MiLCJyZWFkbWVQYXRoIiwibWVzc2FnZSIsImNoZGlyIiwiZW5jb2RpbmciLCJzdGRpbyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsS0FBSyxRQUFPLFFBQVE7QUFDNUIsU0FBUUMsVUFBVSxFQUFFQyxhQUFhLFFBQU8sS0FBSztBQUM3QyxTQUFRQyxXQUFXQyxXQUFXLFFBQU8sT0FBTztBQUU1QyxTQUFRQyxTQUFTLFFBQU8scUJBQXFCO0FBQzdDLFNBQVFDLGFBQWEsRUFBRUMsY0FBYyxFQUFF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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9pbml0L2luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhlY2F9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCB7cmVuYW1lU3luYywgd3JpdGVGaWxlU3luY30gZnJvbSAnZnMnO1xuaW1wb3J0IHBhY290ZSBmcm9tICdwYWNvdGUnO1xuaW1wb3J0IHtyZXNvbHZlIGFzIHBhdGhSZXNvbHZlfSBmcm9tICdwYXRoJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXIsIGdldFBhY2thZ2VKc29uLCBzZXRQYWNrYWdlSnNvbn0gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi8uLi91dGlscy9sb2cuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluaXRPcHRpb25zIHtcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgaW5zdGFsbD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHBhY2thZ2VNYW5hZ2VyPzogc3RyaW5nO1xuICByZWFkb25seSBxdWlldD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHR5cGVzY3JpcHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBJbml0Q2FsbGJhY2sgPSAoc3RhdHVzOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBpbml0ID0gYXN5bmMgKFxuICBhcHBOYW1lOiBzdHJpbmcsXG4gIHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4gIGNtZDogSW5pdE9wdGlvbnMsXG4gIGNhbGxiYWNrOiBJbml0Q2FsbGJhY2sgPSAoKSA9PiAoe30pXG4pOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICBjb25zdCB7Y2xpTmFtZSA9ICdMZXgnLCBpbnN0YWxsLCBwYWNrYWdlTWFuYWdlcjogY21kUGFja2FnZU1hbmFnZXIsIHF1aWV0LCB0eXBlc2NyaXB0fSA9IGNtZDtcbiAgY29uc3QgY3dkOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIC8vIFNwaW5uZXJcbiAgY29uc3Qgc3Bpbm5lciA9IGNyZWF0ZVNwaW5uZXIocXVpZXQpO1xuXG4gIC8vIERvd25sb2FkIGFwcCBtb2R1bGUgaW50byB0ZW1wb3JhcnkgZGlyZWN0b3J5XG4gIGxvZyhgJHtjbGlOYW1lfSBpcyBkb3dubG9hZGluZyB0aGUgYXBwIG1vZHVsZS4uLmAsICdpbmZvJywgcXVpZXQpO1xuICBzcGlubmVyLnN0YXJ0KCdEb3dubG9hZGluZyBhcHAuLi4nKTtcbiAgY29uc3QgdG1wUGF0aDogc3RyaW5nID0gcGF0aFJlc29sdmUoY3dkLCAnLi8ubGV4VG1wJyk7XG4gIGNvbnN0IGFwcFBhdGg6IHN0cmluZyA9IHBhdGhSZXNvbHZlKGN3ZCwgYC4vJHthcHBOYW1lfWApO1xuXG4gIC8vIEdldCBjdXN0b20gY29uZmlndXJhdGlvblxuICBhd2FpdCBMZXhDb25maWcucGFyc2VDb25maWcoY21kKTtcbiAgY29uc3Qge3BhY2thZ2VNYW5hZ2VyOiBjb25maWdQYWNrYWdlTWFuYWdlciwgdXNlVHlwZXNjcmlwdDogY29uZmlnVHlwZXNjcmlwdH0gPSBMZXhDb25maWcuY29uZmlnO1xuICBjb25zdCBwYWNrYWdlTWFuYWdlcjogc3RyaW5nID0gY21kUGFja2FnZU1hbmFnZXIgfHwgY29uZmlnUGFja2FnZU1hbmFnZXIgfHwgJyc7XG4gIGNvbnN0IHVzZVR5cGVzY3JpcHQ6IGJvb2xlYW4gPSB0eXBlc2NyaXB0ICE9PSB1bmRlZmluZWQgPyB0eXBlc2NyaXB0IDogY29uZmlnVHlwZXNjcmlwdCB8fCBmYWxzZTtcblxuICBsZXQgYXBwTW9kdWxlOiBzdHJpbmcgPSBwYWNrYWdlTmFtZTtcblxuICAvLyBVc2UgYmFzZSBhcHAgbW9kdWxlIGJhc2VkIG9uIGNvbmZpZ1xuICBpZighYXBwTW9kdWxlKSB7XG4gICAgaWYodXNlVHlwZXNjcmlwdCkge1xuICAgICAgYXBwTW9kdWxlID0gJ0BubGFicy9hcmtoYW1qcy1leGFtcGxlLXRzLXJlYWN0JztcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwTW9kdWxlID0gJ0BubGFicy9hcmtoYW1qcy1leGFtcGxlLWZsb3ctcmVhY3QnO1xuICAgIH1cbiAgfVxuXG4gIHRyeSB7XG4gICAgYXdhaXQgcGFjb3RlLmV4dHJhY3QoYXBwTW9kdWxlLCB0bXBQYXRoKTtcblxuICAgIC8vIFN0b3Agc3Bpbm5lciBhbmQgdXBkYXRlIHN0YXR1c1xuICAgIHNwaW5uZXIuc3VjY2VlZCgnU3VjY2Vzc2Z1bGx5IGRvd25sb2FkZWQgYXBwIScpO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc29sZS5sb2coJ2Vycm9yJywgZXJyb3IpO1xuICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogVGhlcmUgd2FzIGFuIGVycm9yIGRvd25sb2FkaW5nICR7YXBwTW9kdWxlfS4gTWFrZSBzdXJlIHRoZSBwYWNrYWdlIGV4aXN0cyBhbmQgdGhlcmUgaXMgYSBuZXR3b3JrIGNvbm5lY3Rpb24uYCwgJ2Vycm9yJywgcXVpZXQpO1xuXG4gICAgLy8gU3RvcCBzcGlubmVyIGFuZCBraWxsIHByb2Nlc3NcbiAgICBzcGlubmVyLmZhaWwoJ0Rvd25sb2FkZWQgb2YgYXBwIGZhaWxlZC4nKTtcblxuICAgIC8vIEtpbGwgcHJvY2Vzc1xuICAgIGNhbGxiYWNrKDEpO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLy8gTW92ZSBpbnRvIGNvbmZpZ3VyZWQgZGlyZWN0b3J5XG4gIHRyeSB7XG4gICAgcmVuYW1lU3luYyh0bXBQYXRoLCBhcHBQYXRoKTtcbiAgfSBjYXRjaChfZXJyb3IpIHtcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IFRoZXJlIHdhcyBhbiBlcnJvciBjb3B5aW5nICR7YXBwTW9kdWxlfSB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvLyBDb25maWd1cmUgcGFja2FnZS5qc29uXG4gIGNvbnN0IHBhY2thZ2VQYXRoOiBzdHJpbmcgPSBgJHthcHBQYXRofS9wYWNrYWdlLmpzb25gO1xuICBjb25zdCBwYWNrYWdlSnNvbiA9IGdldFBhY2thZ2VKc29uKHBhY2thZ2VQYXRoKTtcbiAgcGFja2FnZUpzb24ubmFtZSA9IGFwcE5hbWU7XG4gIHBhY2thZ2VKc29uLmRlc2NyaXB0aW9uID0gYCR7Y2xpTmFtZX0gY3JlYXRlZCBhcHBgO1xuICBwYWNrYWdlSnNvbi52ZXJzaW9uID0gJzAuMS4wJztcbiAgZGVsZXRlIHBhY2thZ2VKc29uLmtleXdvcmRzO1xuICBkZWxldGUgcGFja2FnZUpzb24uYXV0aG9yO1xuICBkZWxldGUgcGFja2FnZUpzb24uY29udHJpYnV0b3JzO1xuICBkZWxldGUgcGFja2FnZUpzb24ucmVwb3NpdG9yeTtcbiAgZGVsZXRlIHBhY2thZ2VKc29uLmhvbWVwYWdlO1xuICBkZWxldGUgcGFja2FnZUpzb24uYnVncztcblxuICB0cnkge1xuICAgIC8vIFVwZGF0ZSBwYWNrYWdlLmpzb25cbiAgICBzZXRQYWNrYWdlSnNvbihwYWNrYWdlSnNvbiwgcGFja2FnZVBhdGgpO1xuXG4gICAgLy8gVXBkYXRlIFJFQURNRVxuICAgIGNvbnN0IHJlYWRtZVBhdGg6IHN0cmluZyA9IGAke2FwcFBhdGh9L1JFQURNRS5tZGA7XG4gICAgd3JpdGVGaWxlU3luYyhyZWFkbWVQYXRoLCBgIyAke2FwcE5hbWV9YCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICBpZihpbnN0YWxsKSB7XG4gICAgc3Bpbm5lci5zdGFydCgnSW5zdGFsbGluZyBkZXBlbmRlbmNpZXMuLi4nKTtcblxuICAgIC8vIENoYW5nZSB0byB0aGUgYXBwIGRpcmVjdG9yeVxuICAgIHByb2Nlc3MuY2hkaXIoYXBwUGF0aCk7XG5cbiAgICAvLyBJbnN0YWxsIGRlcGVuZGVuY2llc1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBleGVjYShwYWNrYWdlTWFuYWdlciwgWydpbnN0YWxsJ10sIHtcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgICAgc3RkaW86ICdpbmhlcml0J1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFN0b3Agc3Bpbm5lclxuICAgICAgc3Bpbm5lci5zdWNjZWVkKCdTdWNjZXNzZnVsbHkgaW5zdGFsbGVkIGRlcGVuZGVuY2llcyEnKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcblxuICAgICAgLy8gU3RvcCBzcGlubmVyXG4gICAgICBzcGlubmVyLmZhaWwoJ0ZhaWxlZCB0byBpbnN0YWxsIGRlcGVuZGVuY2llcy4nKTtcblxuICAgICAgLy8gS2lsbCBwcm9jZXNzXG4gICAgICBjYWxsYmFjaygxKTtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtpbGwgcHJvY2Vzc1xuICBjYWxsYmFjaygwKTtcbiAgcmV0dXJuIDA7XG59O1xuIl0sIm5hbWVzIjpbImV4ZWNhIiwicmVuYW1lU3luYyIsIndyaXRlRmlsZVN5bmMiLCJwYWNvdGUiLCJyZXNvbHZlIiwicGF0aFJlc29sdmUiLCJMZXhDb25maWciLCJjcmVhdGVTcGlubmVyIiwiZ2V0UGFja2FnZUpzb24iLCJzZXRQYWNrYWdlSnNvbiIsImxvZyIsImluaXQiLCJhcHBOYW1lIiwicGFja2FnZU5hbWUiLCJjbWQiLCJjYWxsYmFjayIsImNsaU5hbWUiLCJpbnN0YWxsIiwicGFja2FnZU1hbmFnZXIiLCJjbWRQYWNrYWdlTWFuYWdlciIsInF1aWV0IiwidHlwZXNjcmlwdCIsImN3ZCIsInByb2Nlc3MiLCJzcGlubmVyIiwic3RhcnQiLCJ0bXBQYXRoIiwiYXBwUGF0aCIsInBhcnNlQ29uZmlnIiwiY29uZmlnUGFja2FnZU1hbmFnZXIiLCJ1c2VUeXBlc2NyaXB0IiwiY29uZmlnVHlwZXNjcmlwdCIsImNvbmZpZyIsInVuZGVmaW5lZCIsImFwcE1vZHVsZSIsImV4dHJhY3QiLCJzdWNjZWVkIiwiZXJyb3IiLCJjb25zb2xlIiwiZmFpbCIsIl9lcnJvciIsInBhY2thZ2VQYXRoIiwicGFja2FnZUpzb24iLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJ2ZXJzaW9uIiwia2V5d29yZHMiLCJhdXRob3IiLCJjb250cmlidXRvcnMiLCJyZXBvc2l0b3J5IiwiaG9tZXBhZ2UiLCJidWdzIiwicmVhZG1lUGF0aCIsIm1lc3NhZ2UiLCJjaGRpciIsImVuY29kaW5nIiwic3RkaW8iXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLEtBQUssUUFBTyxRQUFRO0FBQzVCLFNBQVFDLFVBQVUsRUFBRUMsYUFBYSxRQUFPLEtBQUs7QUFDN0MsT0FBT0MsWUFBWSxTQUFTO0FBQzVCLFNBQVFDLFdBQVdDLFdBQVcsUUFBTyxPQUFPO0FBRTVDLFNBQVFDLFNBQVMsUUFBTyxxQkFBcUI7QUFDN0MsU0FBUUMsYUFBYSxFQUFFQyxjQUFjLEVBQUVDLGNBQWMsUUFBTyxxQkFBcUI7QUFDakYsU0FBUUMsR0FBRyxRQUFPLHFCQUFxQjtBQVl2QyxPQUFPLE1BQU1DLE9BQU8sT0FDbEJDLFNBQ0FDLGFBQ0FDLEtBQ0FDLFdBQXlCLElBQU8sQ0FBQSxDQUFDLENBQUEsQ0FBRTtJQUVuQyxNQUFNLEVBQUNDLFVBQVUsS0FBSyxFQUFFQyxPQUFPLEVBQUVDLGdC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
@@ -38,5 +38,5 @@ export interface LintOptions {
38
38
  }
39
39
  export type LintCallback = typeof process.exit;
40
40
  export declare const lint: (cmd: LintOptions & {
41
- "remove-comments"?: boolean;
41
+ 'remove-comments'?: boolean;
42
42
  }, callback?: LintCallback) => Promise<number>;
@@ -3,7 +3,7 @@ export declare const callCursorAI: (prompt: string, _options: AIConfig) => Promi
3
3
  export declare const callOpenAIAI: (prompt: string, options: AIConfig) => Promise<string>;
4
4
  export declare const callAnthropicAI: (prompt: string, options: AIConfig) => Promise<string>;
5
5
  export declare const callCopilotAI: (prompt: string, _options: AIConfig) => Promise<string>;
6
- export declare const promptForAIProvider: (_quiet?: boolean) => Promise<"cursor" | "copilot" | "openai" | "anthropic" | "none">;
6
+ export declare const promptForAIProvider: (_quiet?: boolean) => Promise<'cursor' | 'copilot' | 'openai' | 'anthropic' | 'none'>;
7
7
  export declare const promptForAPIKey: (provider: string, _quiet?: boolean) => Promise<string>;
8
8
  export declare const getAIService: (provider: string, _options: AIConfig) => (prompt: string, options: AIConfig) => Promise<string>;
9
9
  export declare const callAIService: (prompt: string, quiet?: boolean) => Promise<string>;
@@ -9,11 +9,12 @@ import postcss from 'postcss';
9
9
  interface PostcssForOptions {
10
10
  nested?: boolean;
11
11
  }
12
- declare const postcssFor: {
13
- (opts?: PostcssForOptions): {
14
- Once(root: postcss.Root): void;
15
- postcssPlugin: string;
16
- };
17
- postcss: boolean;
12
+ declare function postcssFor(opts?: PostcssForOptions): {
13
+ Once(root: postcss.Root): void;
14
+ postcssPlugin: string;
18
15
  };
16
+ declare namespace postcssFor {
17
+ var _a: boolean;
18
+ export { _a as postcss };
19
+ }
19
20
  export default postcssFor;
@@ -4,13 +4,14 @@ interface PostcssPercentageOptions {
4
4
  precision?: number;
5
5
  trimTrailingZero?: boolean;
6
6
  }
7
- declare const postcssPercentage: {
8
- (opts?: PostcssPercentageOptions): {
9
- Once(root: postcss.Root, { result }: {
10
- result: postcss.Result;
11
- }): void;
12
- postcssPlugin: string;
13
- };
14
- postcss: boolean;
7
+ declare function postcssPercentage(opts?: PostcssPercentageOptions): {
8
+ Once(root: postcss.Root, { result }: {
9
+ result: postcss.Result;
10
+ }): void;
11
+ postcssPlugin: string;
15
12
  };
13
+ declare namespace postcssPercentage {
14
+ var _a: boolean;
15
+ export { _a as postcss };
16
+ }
16
17
  export default postcssPercentage;
@@ -6,9 +6,7 @@ function _define_property(obj, key, value) {
6
6
  configurable: true,
7
7
  writable: true
8
8
  });
9
- } else {
10
- obj[key] = value;
11
- }
9
+ } else obj[key] = value;
12
10
  return obj;
13
11
  }
14
12
  /**
@@ -254,4 +252,4 @@ export class LexSvgSpritemapPlugin {
254
252
  }
255
253
  export default LexSvgSpritemapPlugin;
256
254
 
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy93ZWJwYWNrL0xleFN2Z1Nwcml0ZW1hcFBsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7c3luYyBhcyBnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgZGlybmFtZSBhcyBwYXRoRGlybmFtZSwgZXh0bmFtZSBhcyBwYXRoRXh0bmFtZSwgcmVzb2x2ZSBhcyBwYXRoUmVzb2x2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQge29wdGltaXplfSBmcm9tICdzdmdvJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuXG50eXBlIElkZW50aWZpZXJQcmVmaXggPSBmYWxzZSB8IHN0cmluZyB8ICgoZmlsZVBhdGg6IHN0cmluZykgPT4gc3RyaW5nKTtcblxuZXhwb3J0IGludGVyZmFjZSBMZXhTdmdTcHJpdGVtYXBQbHVnaW5PcHRpb25zIHtcbiAgcmVhZG9ubHkgYWxsb3dEdXBsaWNhdGVzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wdGltaXplPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHJlZml4PzogSWRlbnRpZmllclByZWZpeDtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZFN2ZyB7XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNwcml0ZVN5bWJvbCB7XG4gIHJlYWRvbmx5IGZpbGVQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZUF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IHN5bWJvbDogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0ZJTEVOQU1FID0gJ2ljb25zL2ljb25zLnN2Zyc7XG5jb25zdCBQTFVHSU5fTkFNRSA9ICdMZXhTdmdTcHJpdGVtYXBQbHVnaW4nO1xuY29uc3QgUk9PVF9FWENMVURFRF9BVFRSSUJVVEVTID0gbmV3IFNldChbXG4gICdoZWlnaHQnLFxuICAnaWQnLFxuICAndmVyc2lvbicsXG4gICd2aWV3Qm94JyxcbiAgJ3dpZHRoJyxcbiAgJ3htbG5zJ1xuXSk7XG5cbmNvbnN0IGVzY2FwZUF0dHJpYnV0ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLnJlcGxhY2VBbGwoJyYnLCAnJmFtcDsnKVxuICAgIC5yZXBsYWNlQWxsKCdcIicsICcmcXVvdDsnKVxuICAgIC5yZXBsYWNlQWxsKCc8JywgJyZsdDsnKVxuICAgIC5yZXBsYWNlQWxsKCc+JywgJyZndDsnKTtcbn07XG5cbmNvbnN0IG5vcm1hbGl6ZUFzc2V0RmlsZW5hbWUgPSAoZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBmaWxlbmFtZS5yZXBsYWNlKC9eWy4vXSsvLCAnJyk7XG59O1xuXG5jb25zdCBwYXJzZUF0dHJpYnV0ZXMgPSAoaW5wdXQ6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICBjb25zdCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGNvbnN0IGF0dHJpYnV0ZVJlZ2V4ID0gLyhbOkBcXHctXSspXFxzKj1cXHMqKFwiKFteXCJdKilcInwnKFteJ10qKScpL2c7XG5cbiAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gYXR0cmlidXRlUmVnZXguZXhlYyhpbnB1dCk7XG4gIHdoaWxlKG1hdGNoKSB7XG4gICAgYXR0cmlidXRlc1ttYXRjaFsxXV0gPSBtYXRjaFszXSA/PyBtYXRjaFs0XSA/PyAnJztcbiAgICBtYXRjaCA9IGF0dHJpYnV0ZVJlZ2V4LmV4ZWMoaW5wdXQpO1xuICB9XG5cbiAgcmV0dXJuIGF0dHJpYnV0ZXM7XG59O1xuXG5jb25zdCBwYXJzZVN2ZyA9IChzb3VyY2U6IHN0cmluZyk6IFBhcnNlZFN2ZyB8IG51bGwgPT4ge1xuICBjb25zdCBzdmdNYXRjaCA9IHNvdXJjZVxuICAgIC5yZXBsYWNlKC88XFw/eG1sW1xcc1xcU10qP1xcPz4vaWcsICcnKVxuICAgIC5yZXBsYWNlKC88IWRvY3R5cGVbXFxzXFxTXSo/Pi9pZywgJycpXG4gICAgLm1hdGNoKC88c3ZnXFxiKFtePl0qKT4oW1xcc1xcU10qPyk8XFwvc3ZnPi9pKTtcblxuICBpZighc3ZnTWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYXR0cmlidXRlczogcGFyc2VBdHRyaWJ1dGVzKHN2Z01hdGNoWzFdIHx8ICcnKSxcbiAgICBjb250ZW50OiBzdmdNYXRjaFsyXT8udHJpbSgpIHx8ICcnXG4gIH07XG59O1xuXG5jb25zdCBidWlsZEF0dHJpYnV0ZVN0cmluZyA9IChhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpXG4gICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gYCR7bmFtZX09XCIke2VzY2FwZUF0dHJpYnV0ZSh2YWx1ZSl9XCJgKVxuICAgIC5qb2luKCcgJyk7XG59O1xuXG5jb25zdCBzYW5pdGl6ZUlkZW50aWZpZXIgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdmFsdWVcbiAgICAudHJpbSgpXG4gICAgLnJlcGxhY2VBbGwoL1xccysvZywgJy0nKVxuICAgIC5yZXBsYWNlQWxsKC9bXkEtWmEtejAtOV8tXS9nLCAnLScpXG4gICAgLnJlcGxhY2VBbGwoLy17Mix9L2csICctJylcbiAgICAucmVwbGFjZUFsbCgvXlstX10rfFstX10rJC9nLCAnJyk7XG5cbiAgY29uc3Qgc2FmZVZhbHVlID0gc2FuaXRpemVkVmFsdWUgfHwgJ2ljb24nO1xuXG4gIHJldHVybiAvXltBLVphLXpfXS8udGVzdChzYWZlVmFsdWUpID8gc2FmZVZhbHVlIDogYGljb24tJHtzYWZlVmFsdWV9YDtcbn07XG5cbmNvbnN0IGdldFByZWZpeCA9IChmaWxlUGF0aDogc3RyaW5nLCBwcmVmaXg6IElkZW50aWZpZXJQcmVmaXgpOiBzdHJpbmcgPT4ge1xuICBpZihwcmVmaXggPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYodHlwZW9mIHByZWZpeCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBwcmVmaXgoZmlsZVBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHByZWZpeCB8fCAnJztcbn07XG5cbmNvbnN0IG9wdGltaXplU3ZnID0gKGNvbnRlbnQ6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIGlmKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gb3B0aW1pemUoY29udGVudCwge1xuICAgIG11bHRpcGFzczogdHJ1ZSxcbiAgICBwbHVnaW5zOiBbe1xuICAgICAgbmFtZTogJ3ByZXNldC1kZWZhdWx0JyxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgICBjbGVhbnVwSWRzOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfV1cbiAgfSkuZGF0YTtcbn07XG5cbmNvbnN0IGNyZWF0ZVNwcml0ZVN5bWJvbCA9IChcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgdXNlZElkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcbiAgcHJlZml4OiBJZGVudGlmaWVyUHJlZml4LFxuICB3YXJuaW5nczogd2VicGFjay5XZWJwYWNrRXJyb3JbXVxuKTogU3ByaXRlU3ltYm9sIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHNvdXJjZSA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgY29uc3QgcGFyc2VkU3ZnID0gcGFyc2VTdmcoc291cmNlKTtcblxuICBpZighcGFyc2VkU3ZnKSB7XG4gICAgd2FybmluZ3MucHVzaChuZXcgd2VicGFjay5XZWJwYWNrRXJyb3IoYEludmFsaWQgU1ZHIGljb246ICR7ZmlsZVBhdGh9YCkpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYoIXBhcnNlZFN2Zy5jb250ZW50KSB7XG4gICAgd2FybmluZ3MucHVzaChuZXcgd2VicGFjay5XZWJwYWNrRXJyb3IoYFNWRyBpY29uIGlzIGVtcHR5OiAke2ZpbGVQYXRofWApKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHJhd0lkZW50aWZpZXIgPSBgJHtnZXRQcmVmaXgoZmlsZVBhdGgsIHByZWZpeCl9JHtwYXRoQmFzZW5hbWUoZmlsZVBhdGgsIHBhdGhFeHRuYW1lKGZpbGVQYXRoKSl9YDtcbiAgY29uc3QgYmFzZUlkZW50aWZpZXIgPSBzYW5pdGl6ZUlkZW50aWZpZXIocmF3SWRlbnRpZmllcik7XG5cbiAgbGV0IGlkZW50aWZpZXIgPSBiYXNlSWRlbnRpZmllcjtcbiAgbGV0IGR1cGxpY2F0ZUluZGV4ID0gMTtcblxuICB3aGlsZSh1c2VkSWRlbnRpZmllcnMuaGFzKGlkZW50aWZpZXIpKSB7XG4gICAgZHVwbGljYXRlSW5kZXggKz0gMTtcbiAgICBpZGVudGlmaWVyID0gYCR7YmFzZUlkZW50aWZpZXJ9LSR7ZHVwbGljYXRlSW5kZXh9YDtcbiAgfVxuXG4gIGlmKGlkZW50aWZpZXIgIT09IGJhc2VJZGVudGlmaWVyKSB7XG4gICAgd2FybmluZ3MucHVzaChuZXcgd2VicGFjay5XZWJwYWNrRXJyb3IoYER1cGxpY2F0ZSBTVkcgaWNvbiBpZCBcIiR7YmFzZUlkZW50aWZpZXJ9XCIgZGV0ZWN0ZWQsIHVzaW5nIFwiJHtpZGVudGlmaWVyfVwiIGZvciAke2ZpbGVQYXRofWApKTtcbiAgfVxuXG4gIHVzZWRJZGVudGlmaWVycy5hZGQoaWRlbnRpZmllcik7XG5cbiAgY29uc3QgbmFtZXNwYWNlQXR0cmlidXRlcyA9IE9iamVjdC5lbnRyaWVzKHBhcnNlZFN2Zy5hdHRyaWJ1dGVzKS5yZWR1Y2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKHJlc3VsdCwgW25hbWUsIHZhbHVlXSkgPT4ge1xuICAgIGlmKG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCd4bWxuczonKSkge1xuICAgICAgcmVzdWx0W25hbWVdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwge30pO1xuXG4gIGNvbnN0IHN5bWJvbEF0dHJpYnV0ZXMgPSBPYmplY3QuZW50cmllcyhwYXJzZWRTdmcuYXR0cmlidXRlcykucmVkdWNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KChyZXN1bHQsIFtuYW1lLCB2YWx1ZV0pID0+IHtcbiAgICBpZihST09UX0VYQ0xVREVEX0FUVFJJQlVURVMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGlmKG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCd4bWxuczonKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXN1bHRbbmFtZV0gPSB2YWx1ZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIHtcbiAgICBpZDogaWRlbnRpZmllclxuICB9KTtcblxuICBpZihwYXJzZWRTdmcuYXR0cmlidXRlcy52aWV3Qm94KSB7XG4gICAgc3ltYm9sQXR0cmlidXRlcy52aWV3Qm94ID0gcGFyc2VkU3ZnLmF0dHJpYnV0ZXMudmlld0JveDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB3aWR0aCA9IE51bWJlci5wYXJzZUZsb2F0KHBhcnNlZFN2Zy5hdHRyaWJ1dGVzLndpZHRoIHx8ICcnKTtcbiAgICBjb25zdCBoZWlnaHQgPSBOdW1iZXIucGFyc2VGbG9hdChwYXJzZWRTdmcuYXR0cmlidXRlcy5oZWlnaHQgfHwgJycpO1xuXG4gICAgaWYoTnVtYmVyLmlzRmluaXRlKHdpZHRoKSAmJiBOdW1iZXIuaXNGaW5pdGUoaGVpZ2h0KSkge1xuICAgICAgc3ltYm9sQXR0cmlidXRlcy52aWV3Qm94ID0gYDAgMCAke3dpZHRofSAke2hlaWdodH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuaW5ncy5wdXNoKG5ldyB3ZWJwYWNrLldlYnBhY2tFcnJvcihgU1ZHIGljb24gaXMgbWlzc2luZyBhIHZpZXdCb3ggYW5kIHJlYWRhYmxlIHdpZHRoL2hlaWdodDogJHtmaWxlUGF0aH1gKSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGVQYXRoLFxuICAgIG5hbWVzcGFjZUF0dHJpYnV0ZXMsXG4gICAgc3ltYm9sOiBgPHN5bWJvbCAke2J1aWxkQXR0cmlidXRlU3RyaW5nKHN5bWJvbEF0dHJpYnV0ZXMpfT4ke3BhcnNlZFN2Zy5jb250ZW50fTwvc3ltYm9sPmBcbiAgfTtcbn07XG5cbmNvbnN0IGNvbGxlY3RGaWxlcyA9IChwYXR0ZXJuczogcmVhZG9ubHkgc3RyaW5nW10sIGFsbG93RHVwbGljYXRlczogYm9vbGVhbik6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZmlsZXMgPSBwYXR0ZXJucy5mbGF0TWFwKChwYXR0ZXJuKSA9PiB7XG4gICAgcmV0dXJuIGdsb2JTeW5jKHBhdHRlcm4sIHtcbiAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgZG90OiBmYWxzZSxcbiAgICAgIG5vZGlyOiB0cnVlXG4gICAgfSkgYXMgc3RyaW5nW107XG4gIH0pLm1hcCgoZmlsZVBhdGgpID0+IHBhdGhSZXNvbHZlKGZpbGVQYXRoKSk7XG5cbiAgaWYoYWxsb3dEdXBsaWNhdGVzKSB7XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5uZXcgU2V0KGZpbGVzKV07XG59O1xuXG5leHBvcnQgY2xhc3MgTGV4U3ZnU3ByaXRlbWFwUGx1Z2luIHtcbiAgcmVhZG9ubHkgcGF0dGVybnM6IHN0cmluZ1tdO1xuICByZWFkb25seSBvcHRpb25zOiBSZXF1aXJlZDxMZXhTdmdTcHJpdGVtYXBQbHVnaW5PcHRpb25zPjtcblxuICBjb25zdHJ1Y3RvcihwYXR0ZXJuczogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IExleFN2Z1Nwcml0ZW1hcFBsdWdpbk9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMucGF0dGVybnMgPSBBcnJheS5pc0FycmF5KHBhdHRlcm5zKSA/IHBhdHRlcm5zIDogW3BhdHRlcm5zXTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBhbGxvd0R1cGxpY2F0ZXM6IG9wdGlvbnMuYWxsb3dEdXBsaWNhdGVzID8/IGZhbHNlLFxuICAgICAgZmlsZW5hbWU6IG5vcm1hbGl6ZUFzc2V0RmlsZW5hbWUob3B0aW9ucy5maWxlbmFtZSB8fCBERUZBVUxUX0ZJTEVOQU1FKSxcbiAgICAgIG9wdGltaXplOiBvcHRpb25zLm9wdGltaXplID8/IHRydWUsXG4gICAgICBwcmVmaXg6IG9wdGlvbnMucHJlZml4ID8/IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGJ1aWxkU3ByaXRlbWFwKCk6IHtjb250ZW50OiBzdHJpbmcgfCBudWxsOyBmaWxlUGF0aHM6IHN0cmluZ1tdOyB3YXJuaW5nczogd2VicGFjay5XZWJwYWNrRXJyb3JbXX0ge1xuICAgIGNvbnN0IHdhcm5pbmdzOiB3ZWJwYWNrLldlYnBhY2tFcnJvcltdID0gW107XG4gICAgY29uc3QgZmlsZVBhdGhzID0gY29sbGVjdEZpbGVzKHRoaXMucGF0dGVybnMsIHRoaXMub3B0aW9ucy5hbGxvd0R1cGxpY2F0ZXMpO1xuXG4gICAgaWYoZmlsZVBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogbnVsbCxcbiAgICAgICAgZmlsZVBhdGhzLFxuICAgICAgICB3YXJuaW5nc1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lc3BhY2VBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgY29uc3QgdXNlZElkZW50aWZpZXJzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3ltYm9scyA9IGZpbGVQYXRocy5tYXAoKGZpbGVQYXRoKSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU3ByaXRlU3ltYm9sKGZpbGVQYXRoLCB1c2VkSWRlbnRpZmllcnMsIHRoaXMub3B0aW9ucy5wcmVmaXgsIHdhcm5pbmdzKTtcbiAgICB9KS5maWx0ZXIoKGVudHJ5KTogZW50cnkgaXMgU3ByaXRlU3ltYm9sID0+IGVudHJ5ICE9PSBudWxsKTtcblxuICAgIGlmKHN5bWJvbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICBmaWxlUGF0aHMsXG4gICAgICAgIHdhcm5pbmdzXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvcihjb25zdCBzeW1ib2wgb2Ygc3ltYm9scykge1xuICAgICAgZm9yKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc3ltYm9sLm5hbWVzcGFjZUF0dHJpYnV0ZXMpKSB7XG4gICAgICAgIG5hbWVzcGFjZUF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByb290QXR0cmlidXRlcyA9IGJ1aWxkQXR0cmlidXRlU3RyaW5nKHtcbiAgICAgIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICAgICAgLi4ubmFtZXNwYWNlQXR0cmlidXRlc1xuICAgIH0pO1xuICAgIGNvbnN0IHNwcml0ZUNvbnRlbnQgPSBgPHN2ZyAke3Jvb3RBdHRyaWJ1dGVzfT4ke3N5bWJvbHMubWFwKChzeW1ib2wpID0+IHN5bWJvbC5zeW1ib2wpLmpvaW4oJycpfTwvc3ZnPmA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogb3B0aW1pemVTdmcoc3ByaXRlQ29udGVudCwgdGhpcy5vcHRpb25zLm9wdGltaXplKSxcbiAgICAgIGZpbGVQYXRocyxcbiAgICAgIHdhcm5pbmdzXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5KGNvbXBpbGVyOiB3ZWJwYWNrLkNvbXBpbGVyKTogdm9pZCB7XG4gICAgY29tcGlsZXIuaG9va3MudGhpc0NvbXBpbGF0aW9uLnRhcChQTFVHSU5fTkFNRSwgKGNvbXBpbGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3RvcmllcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgY29uc3Qgc3ByaXRlbWFwID0gdGhpcy5idWlsZFNwcml0ZW1hcCgpO1xuXG4gICAgICBmb3IoY29uc3QgZmlsZVBhdGggb2Ygc3ByaXRlbWFwLmZpbGVQYXRocykge1xuICAgICAgICBjb21waWxhdGlvbi5maWxlRGVwZW5kZW5jaWVzLmFkZChmaWxlUGF0aCk7XG4gICAgICAgIGRpcmVjdG9yaWVzLmFkZChwYXRoRGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgfVxuXG4gICAgICBmb3IoY29uc3QgcGF0dGVybiBvZiB0aGlzLnBhdHRlcm5zKSB7XG4gICAgICAgIGNvbnN0IGJhc2VEaXJlY3RvcnkgPSBwYXRoUmVzb2x2ZShwYXR0ZXJuLnJlcGxhY2UoL1xcKi4qJC8sICcnKSk7XG4gICAgICAgIGRpcmVjdG9yaWVzLmFkZChiYXNlRGlyZWN0b3J5KTtcbiAgICAgIH1cblxuICAgICAgZm9yKGNvbnN0IGRpcmVjdG9yeSBvZiBkaXJlY3Rvcmllcykge1xuICAgICAgICBjb21waWxhdGlvbi5jb250ZXh0RGVwZW5kZW5jaWVzLmFkZChkaXJlY3RvcnkpO1xuICAgICAgfVxuXG4gICAgICBpZihzcHJpdGVtYXAud2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb21waWxhdGlvbi53YXJuaW5ncy5wdXNoKC4uLnNwcml0ZW1hcC53YXJuaW5ncyk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLnByb2Nlc3NBc3NldHMudGFwKHtcbiAgICAgICAgbmFtZTogUExVR0lOX05BTUUsXG4gICAgICAgIHN0YWdlOiB3ZWJwYWNrLkNvbXBpbGF0aW9uLlBST0NFU1NfQVNTRVRTX1NUQUdFX0FERElUSU9OQUxcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgaWYoIXNwcml0ZW1hcC5jb250ZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXNzZXROYW1lID0gdGhpcy5vcHRpb25zLmZpbGVuYW1lO1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBuZXcgd2VicGFjay5zb3VyY2VzLlJhd1NvdXJjZShzcHJpdGVtYXAuY29udGVudCk7XG5cbiAgICAgICAgaWYoY29tcGlsYXRpb24uZ2V0QXNzZXQoYXNzZXROYW1lKSkge1xuICAgICAgICAgIGNvbXBpbGF0aW9uLnVwZGF0ZUFzc2V0KGFzc2V0TmFtZSwgc291cmNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb21waWxhdGlvbi5lbWl0QXNzZXQoYXNzZXROYW1lLCBzb3VyY2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGV4U3ZnU3ByaXRlbWFwUGx1Z2luO1xuIl0sIm5hbWVzIjpbInJlYWRGaWxlU3luYyIsInN5bmMiLCJnbG9iU3luYyIsImJhc2VuYW1lIiwicGF0aEJhc2VuYW1lIiwiZGlybmFtZSIsInBhdGhEaXJuYW1lIiwiZXh0bmFtZSIsInBhdGhFeHRuYW1lIiwicmVzb2x2ZSIsInBhdGhSZXNvbHZlIiwib3B0aW1pemUiLCJ3ZWJwYWNrIiwiREVGQVVMVF9GSUxFTkFNRSIsIlBMVUdJTl9OQU1FIiwiUk9PVF9FWENMVURFRF9BVFRSSUJVVEVTIiwiU2V0IiwiZXNjYXBlQXR0cmlidXRlIiwidmFsdWUiLCJyZXBsYWNlQWxsIiwibm9ybWFsaXplQXNzZXRGaWxlbmFtZSIsImZpbGVuYW1lIiwicmVwbGFjZSIsInBhcnNlQXR0cmlidXRlcyIsImlucHV0IiwiYXR0cmlidXRlcyIsImF0dHJpYnV0ZVJlZ2V4IiwibWF0Y2giLCJleGVjIiwicGFyc2VTdmciLCJzb3VyY2UiLCJzdmdNYXRjaCIsImNvbnRlbnQiLCJ0cmltIiwiYnVpbGRBdHRyaWJ1dGVTdHJpbmciLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwibmFtZSIsImpvaW4iLCJzYW5pdGl6ZUlkZW50aWZpZXIiLCJzYW5pdGl6ZWRWYWx1ZSIsInNhZmVWYWx1ZSIsInRlc3QiLCJnZXRQcmVmaXgiLCJmaWxlUGF0aCIsInByZWZpeCIsIm9wdGltaXplU3ZnIiwiZW5hYmxlZCIsIm11bHRpcGFzcyIsInBsdWdpbnMiLCJwYXJhbXMiLCJvdmVycmlkZXMiLCJjbGVhbnVwSWRzIiwiZGF0YSIsImNyZWF0ZVNwcml0ZVN5bWJvbCIsInVzZWRJZGVudGlmaWVycyIsIndhcm5pbmdzIiwicGFyc2VkU3ZnIiwicHVzaCIsIldlYnBhY2tFcnJvciIsInJhd0lkZW50aWZpZXIiLCJiYXNlSWRlbnRpZmllciIsImlkZW50aWZpZXIiLCJkdXBsaWNhdGVJbmRleCIsImhhcyIsImFkZCIsIm5hbWVzcGFjZUF0dHJpYnV0ZXMiLCJyZWR1Y2UiLCJyZXN1bHQiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiLCJzeW1ib2xBdHRyaWJ1dGVzIiwiaWQiLCJ2aWV3Qm94Iiwid2lkdGgiLCJOdW1iZXIiLCJwYXJzZUZsb2F0IiwiaGVpZ2h0IiwiaXNGaW5pdGUiLCJzeW1ib2wiLCJjb2xsZWN0RmlsZXMiLCJwYXR0ZXJucyIsImFsbG93RHVwbGljYXRlcyIsImZpbGVzIiwiZmxhdE1hcCIsInBhdHRlcm4iLCJhYnNvbHV0ZSIsImRvdCIsIm5vZGlyIiwiTGV4U3ZnU3ByaXRlbWFwUGx1Z2luIiwiYnVpbGRTcHJpdGVtYXAiLCJmaWxlUGF0aHMiLCJvcHRpb25zIiwibGVuZ3RoIiwic3ltYm9scyIsImZpbHRlciIsImVudHJ5Iiwicm9vdEF0dHJpYnV0ZXMiLCJ4bWxucyIsInNwcml0ZUNvbnRlbnQiLCJhcHBseSIsImNvbXBpbGVyIiwiaG9va3MiLCJ0aGlzQ29tcGlsYXRpb24iLCJ0YXAiLCJjb21waWxhdGlvbiIsImRpcmVjdG9yaWVzIiwic3ByaXRlbWFwIiwiZmlsZURlcGVuZGVuY2llcyIsImJhc2VEaXJlY3RvcnkiLCJkaXJlY3RvcnkiLCJjb250ZXh0RGVwZW5kZW5jaWVzIiwicHJvY2Vzc0Fzc2V0cyIsInN0YWdlIiwiQ29tcGlsYXRpb24iLCJQUk9DRVNTX0FTU0VUU19TVEFHRV9BRERJVElPTkFMIiwiYXNzZXROYW1lIiwic291cmNlcyIsIlJhd1NvdXJjZSIsImdldEFzc2V0IiwidXBkYXRlQXNzZXQiLCJlbWl0QXNzZXQiLCJBcnJheSIsImlzQXJyYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxZQUFZLFFBQU8sS0FBSztBQUNoQyxTQUFRQyxRQUFRQyxRQUFRLFFBQU8sT0FBTztBQUN0QyxTQUFRQyxZQUFZQyxZQUFZLEVBQUVDLFdBQVdDLFdBQVcsRUFBRUMsV0FBV0MsV0FBVyxFQUFFQyxXQUFXQyxXQUFXLFFBQU8sT0FBTztBQUN0SCxTQUFRQyxRQUFRLFFBQU8sT0FBTztBQUM5QixPQUFPQyxhQUFhLFVBQVU7QUFzQjlCLE1BQU1DLG1CQUFtQjtBQUN6QixNQUFNQyxjQUFjO0FBQ3BCLE1BQU1DLDJCQUEyQixJQUFJQyxJQUFJO0lBQ3ZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsTUFBTUMsa0JBQWtCLENBQUNDO0lBQ3ZCLE9BQU9BLE1BQ0pDLFVBQVUsQ0FBQyxLQUFLLFNBQ2hCQSxVQUFVLENBQUMsS0FBSyxVQUNoQkEsVUFBVSxDQUFDLEtBQUssUUFDaEJBLFVBQVUsQ0FBQyxLQUFLO0FBQ3JCO0FBRUEsTUFBTUMseUJBQXlCLENBQUNDO0lBQzlC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
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy93ZWJwYWNrL0xleFN2Z1Nwcml0ZW1hcFBsdWdpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtyZWFkRmlsZVN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7c3luYyBhcyBnbG9iU3luY30gZnJvbSAnZ2xvYic7XG5pbXBvcnQge2Jhc2VuYW1lIGFzIHBhdGhCYXNlbmFtZSwgZGlybmFtZSBhcyBwYXRoRGlybmFtZSwgZXh0bmFtZSBhcyBwYXRoRXh0bmFtZSwgcmVzb2x2ZSBhcyBwYXRoUmVzb2x2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQge29wdGltaXplfSBmcm9tICdzdmdvJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuXG50eXBlIElkZW50aWZpZXJQcmVmaXggPSBmYWxzZSB8IHN0cmluZyB8ICgoZmlsZVBhdGg6IHN0cmluZykgPT4gc3RyaW5nKTtcblxuZXhwb3J0IGludGVyZmFjZSBMZXhTdmdTcHJpdGVtYXBQbHVnaW5PcHRpb25zIHtcbiAgcmVhZG9ubHkgYWxsb3dEdXBsaWNhdGVzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZmlsZW5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9wdGltaXplPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHJlZml4PzogSWRlbnRpZmllclByZWZpeDtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZFN2ZyB7XG4gIHJlYWRvbmx5IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFNwcml0ZVN5bWJvbCB7XG4gIHJlYWRvbmx5IGZpbGVQYXRoOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZUF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlYWRvbmx5IHN5bWJvbDogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0ZJTEVOQU1FID0gJ2ljb25zL2ljb25zLnN2Zyc7XG5jb25zdCBQTFVHSU5fTkFNRSA9ICdMZXhTdmdTcHJpdGVtYXBQbHVnaW4nO1xuY29uc3QgUk9PVF9FWENMVURFRF9BVFRSSUJVVEVTID0gbmV3IFNldChbXG4gICdoZWlnaHQnLFxuICAnaWQnLFxuICAndmVyc2lvbicsXG4gICd2aWV3Qm94JyxcbiAgJ3dpZHRoJyxcbiAgJ3htbG5zJ1xuXSk7XG5cbmNvbnN0IGVzY2FwZUF0dHJpYnV0ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLnJlcGxhY2VBbGwoJyYnLCAnJmFtcDsnKVxuICAgIC5yZXBsYWNlQWxsKCdcIicsICcmcXVvdDsnKVxuICAgIC5yZXBsYWNlQWxsKCc8JywgJyZsdDsnKVxuICAgIC5yZXBsYWNlQWxsKCc+JywgJyZndDsnKTtcbn07XG5cbmNvbnN0IG5vcm1hbGl6ZUFzc2V0RmlsZW5hbWUgPSAoZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBmaWxlbmFtZS5yZXBsYWNlKC9eWy4vXSsvLCAnJyk7XG59O1xuXG5jb25zdCBwYXJzZUF0dHJpYnV0ZXMgPSAoaW5wdXQ6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICBjb25zdCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGNvbnN0IGF0dHJpYnV0ZVJlZ2V4ID0gLyhbOkBcXHctXSspXFxzKj1cXHMqKFwiKFteXCJdKilcInwnKFteJ10qKScpL2c7XG5cbiAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gYXR0cmlidXRlUmVnZXguZXhlYyhpbnB1dCk7XG4gIHdoaWxlKG1hdGNoKSB7XG4gICAgYXR0cmlidXRlc1ttYXRjaFsxXV0gPSBtYXRjaFszXSA/PyBtYXRjaFs0XSA/PyAnJztcbiAgICBtYXRjaCA9IGF0dHJpYnV0ZVJlZ2V4LmV4ZWMoaW5wdXQpO1xuICB9XG5cbiAgcmV0dXJuIGF0dHJpYnV0ZXM7XG59O1xuXG5jb25zdCBwYXJzZVN2ZyA9IChzb3VyY2U6IHN0cmluZyk6IFBhcnNlZFN2ZyB8IG51bGwgPT4ge1xuICBjb25zdCBzdmdNYXRjaCA9IHNvdXJjZVxuICAgIC5yZXBsYWNlKC88XFw/eG1sW1xcc1xcU10qP1xcPz4vaWcsICcnKVxuICAgIC5yZXBsYWNlKC88IWRvY3R5cGVbXFxzXFxTXSo/Pi9pZywgJycpXG4gICAgLm1hdGNoKC88c3ZnXFxiKFtePl0qKT4oW1xcc1xcU10qPyk8XFwvc3ZnPi9pKTtcblxuICBpZighc3ZnTWF0Y2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYXR0cmlidXRlczogcGFyc2VBdHRyaWJ1dGVzKHN2Z01hdGNoWzFdIHx8ICcnKSxcbiAgICBjb250ZW50OiBzdmdNYXRjaFsyXT8udHJpbSgpIHx8ICcnXG4gIH07XG59O1xuXG5jb25zdCBidWlsZEF0dHJpYnV0ZVN0cmluZyA9IChhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGF0dHJpYnV0ZXMpXG4gICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gYCR7bmFtZX09XCIke2VzY2FwZUF0dHJpYnV0ZSh2YWx1ZSl9XCJgKVxuICAgIC5qb2luKCcgJyk7XG59O1xuXG5jb25zdCBzYW5pdGl6ZUlkZW50aWZpZXIgPSAodmFsdWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdmFsdWVcbiAgICAudHJpbSgpXG4gICAgLnJlcGxhY2VBbGwoL1xccysvZywgJy0nKVxuICAgIC5yZXBsYWNlQWxsKC9bXkEtWmEtejAtOV8tXS9nLCAnLScpXG4gICAgLnJlcGxhY2VBbGwoLy17Mix9L2csICctJylcbiAgICAucmVwbGFjZUFsbCgvXlstX10rfFstX10rJC9nLCAnJyk7XG5cbiAgY29uc3Qgc2FmZVZhbHVlID0gc2FuaXRpemVkVmFsdWUgfHwgJ2ljb24nO1xuXG4gIHJldHVybiAvXltBLVphLXpfXS8udGVzdChzYWZlVmFsdWUpID8gc2FmZVZhbHVlIDogYGljb24tJHtzYWZlVmFsdWV9YDtcbn07XG5cbmNvbnN0IGdldFByZWZpeCA9IChmaWxlUGF0aDogc3RyaW5nLCBwcmVmaXg6IElkZW50aWZpZXJQcmVmaXgpOiBzdHJpbmcgPT4ge1xuICBpZihwcmVmaXggPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYodHlwZW9mIHByZWZpeCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBwcmVmaXgoZmlsZVBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHByZWZpeCB8fCAnJztcbn07XG5cbmNvbnN0IG9wdGltaXplU3ZnID0gKGNvbnRlbnQ6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHN0cmluZyA9PiB7XG4gIGlmKCFlbmFibGVkKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gb3B0aW1pemUoY29udGVudCwge1xuICAgIG11bHRpcGFzczogdHJ1ZSxcbiAgICBwbHVnaW5zOiBbe1xuICAgICAgbmFtZTogJ3ByZXNldC1kZWZhdWx0JyxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgICBjbGVhbnVwSWRzOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfV1cbiAgfSkuZGF0YTtcbn07XG5cbmNvbnN0IGNyZWF0ZVNwcml0ZVN5bWJvbCA9IChcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgdXNlZElkZW50aWZpZXJzOiBTZXQ8c3RyaW5nPixcbiAgcHJlZml4OiBJZGVudGlmaWVyUHJlZml4LFxuICB3YXJuaW5nczogd2VicGFjay5XZWJwYWNrRXJyb3JbXVxuKTogU3ByaXRlU3ltYm9sIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHNvdXJjZSA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0ZjgnKTtcbiAgY29uc3QgcGFyc2VkU3ZnID0gcGFyc2VTdmcoc291cmNlKTtcblxuICBpZighcGFyc2VkU3ZnKSB7XG4gICAgd2FybmluZ3MucHVzaChuZXcgd2VicGFjay5XZWJwYWNrRXJyb3IoYEludmFsaWQgU1ZHIGljb246ICR7ZmlsZVBhdGh9YCkpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYoIXBhcnNlZFN2Zy5jb250ZW50KSB7XG4gICAgd2FybmluZ3MucHVzaChuZXcgd2VicGFjay5XZWJwYWNrRXJyb3IoYFNWRyBpY29uIGlzIGVtcHR5OiAke2ZpbGVQYXRofWApKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHJhd0lkZW50aWZpZXIgPSBgJHtnZXRQcmVmaXgoZmlsZVBhdGgsIHByZWZpeCl9JHtwYXRoQmFzZW5hbWUoZmlsZVBhdGgsIHBhdGhFeHRuYW1lKGZpbGVQYXRoKSl9YDtcbiAgY29uc3QgYmFzZUlkZW50aWZpZXIgPSBzYW5pdGl6ZUlkZW50aWZpZXIocmF3SWRlbnRpZmllcik7XG5cbiAgbGV0IGlkZW50aWZpZXIgPSBiYXNlSWRlbnRpZmllcjtcbiAgbGV0IGR1cGxpY2F0ZUluZGV4ID0gMTtcblxuICB3aGlsZSh1c2VkSWRlbnRpZmllcnMuaGFzKGlkZW50aWZpZXIpKSB7XG4gICAgZHVwbGljYXRlSW5kZXggKz0gMTtcbiAgICBpZGVudGlmaWVyID0gYCR7YmFzZUlkZW50aWZpZXJ9LSR7ZHVwbGljYXRlSW5kZXh9YDtcbiAgfVxuXG4gIGlmKGlkZW50aWZpZXIgIT09IGJhc2VJZGVudGlmaWVyKSB7XG4gICAgd2FybmluZ3MucHVzaChuZXcgd2VicGFjay5XZWJwYWNrRXJyb3IoYER1cGxpY2F0ZSBTVkcgaWNvbiBpZCBcIiR7YmFzZUlkZW50aWZpZXJ9XCIgZGV0ZWN0ZWQsIHVzaW5nIFwiJHtpZGVudGlmaWVyfVwiIGZvciAke2ZpbGVQYXRofWApKTtcbiAgfVxuXG4gIHVzZWRJZGVudGlmaWVycy5hZGQoaWRlbnRpZmllcik7XG5cbiAgY29uc3QgbmFtZXNwYWNlQXR0cmlidXRlcyA9IE9iamVjdC5lbnRyaWVzKHBhcnNlZFN2Zy5hdHRyaWJ1dGVzKS5yZWR1Y2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKHJlc3VsdCwgW25hbWUsIHZhbHVlXSkgPT4ge1xuICAgIGlmKG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCd4bWxuczonKSkge1xuICAgICAgcmVzdWx0W25hbWVdID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwge30pO1xuXG4gIGNvbnN0IHN5bWJvbEF0dHJpYnV0ZXMgPSBPYmplY3QuZW50cmllcyhwYXJzZWRTdmcuYXR0cmlidXRlcykucmVkdWNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KChyZXN1bHQsIFtuYW1lLCB2YWx1ZV0pID0+IHtcbiAgICBpZihST09UX0VYQ0xVREVEX0FUVFJJQlVURVMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGlmKG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCd4bWxuczonKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXN1bHRbbmFtZV0gPSB2YWx1ZTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIHtcbiAgICBpZDogaWRlbnRpZmllclxuICB9KTtcblxuICBpZihwYXJzZWRTdmcuYXR0cmlidXRlcy52aWV3Qm94KSB7XG4gICAgc3ltYm9sQXR0cmlidXRlcy52aWV3Qm94ID0gcGFyc2VkU3ZnLmF0dHJpYnV0ZXMudmlld0JveDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB3aWR0aCA9IE51bWJlci5wYXJzZUZsb2F0KHBhcnNlZFN2Zy5hdHRyaWJ1dGVzLndpZHRoIHx8ICcnKTtcbiAgICBjb25zdCBoZWlnaHQgPSBOdW1iZXIucGFyc2VGbG9hdChwYXJzZWRTdmcuYXR0cmlidXRlcy5oZWlnaHQgfHwgJycpO1xuXG4gICAgaWYoTnVtYmVyLmlzRmluaXRlKHdpZHRoKSAmJiBOdW1iZXIuaXNGaW5pdGUoaGVpZ2h0KSkge1xuICAgICAgc3ltYm9sQXR0cmlidXRlcy52aWV3Qm94ID0gYDAgMCAke3dpZHRofSAke2hlaWdodH1gO1xuICAgIH0gZWxzZSB7XG4gICAgICB3YXJuaW5ncy5wdXNoKG5ldyB3ZWJwYWNrLldlYnBhY2tFcnJvcihgU1ZHIGljb24gaXMgbWlzc2luZyBhIHZpZXdCb3ggYW5kIHJlYWRhYmxlIHdpZHRoL2hlaWdodDogJHtmaWxlUGF0aH1gKSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGVQYXRoLFxuICAgIG5hbWVzcGFjZUF0dHJpYnV0ZXMsXG4gICAgc3ltYm9sOiBgPHN5bWJvbCAke2J1aWxkQXR0cmlidXRlU3RyaW5nKHN5bWJvbEF0dHJpYnV0ZXMpfT4ke3BhcnNlZFN2Zy5jb250ZW50fTwvc3ltYm9sPmBcbiAgfTtcbn07XG5cbmNvbnN0IGNvbGxlY3RGaWxlcyA9IChwYXR0ZXJuczogcmVhZG9ubHkgc3RyaW5nW10sIGFsbG93RHVwbGljYXRlczogYm9vbGVhbik6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZmlsZXMgPSBwYXR0ZXJucy5mbGF0TWFwKChwYXR0ZXJuKSA9PiB7XG4gICAgcmV0dXJuIGdsb2JTeW5jKHBhdHRlcm4sIHtcbiAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgZG90OiBmYWxzZSxcbiAgICAgIG5vZGlyOiB0cnVlXG4gICAgfSkgYXMgc3RyaW5nW107XG4gIH0pLm1hcCgoZmlsZVBhdGgpID0+IHBhdGhSZXNvbHZlKGZpbGVQYXRoKSk7XG5cbiAgaWYoYWxsb3dEdXBsaWNhdGVzKSB7XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5uZXcgU2V0KGZpbGVzKV07XG59O1xuXG5leHBvcnQgY2xhc3MgTGV4U3ZnU3ByaXRlbWFwUGx1Z2luIHtcbiAgcmVhZG9ubHkgcGF0dGVybnM6IHN0cmluZ1tdO1xuICByZWFkb25seSBvcHRpb25zOiBSZXF1aXJlZDxMZXhTdmdTcHJpdGVtYXBQbHVnaW5PcHRpb25zPjtcblxuICBjb25zdHJ1Y3RvcihwYXR0ZXJuczogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM6IExleFN2Z1Nwcml0ZW1hcFBsdWdpbk9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMucGF0dGVybnMgPSBBcnJheS5pc0FycmF5KHBhdHRlcm5zKSA/IHBhdHRlcm5zIDogW3BhdHRlcm5zXTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBhbGxvd0R1cGxpY2F0ZXM6IG9wdGlvbnMuYWxsb3dEdXBsaWNhdGVzID8/IGZhbHNlLFxuICAgICAgZmlsZW5hbWU6IG5vcm1hbGl6ZUFzc2V0RmlsZW5hbWUob3B0aW9ucy5maWxlbmFtZSB8fCBERUZBVUxUX0ZJTEVOQU1FKSxcbiAgICAgIG9wdGltaXplOiBvcHRpb25zLm9wdGltaXplID8/IHRydWUsXG4gICAgICBwcmVmaXg6IG9wdGlvbnMucHJlZml4ID8/IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGJ1aWxkU3ByaXRlbWFwKCk6IHtjb250ZW50OiBzdHJpbmcgfCBudWxsOyBmaWxlUGF0aHM6IHN0cmluZ1tdOyB3YXJuaW5nczogd2VicGFjay5XZWJwYWNrRXJyb3JbXX0ge1xuICAgIGNvbnN0IHdhcm5pbmdzOiB3ZWJwYWNrLldlYnBhY2tFcnJvcltdID0gW107XG4gICAgY29uc3QgZmlsZVBhdGhzID0gY29sbGVjdEZpbGVzKHRoaXMucGF0dGVybnMsIHRoaXMub3B0aW9ucy5hbGxvd0R1cGxpY2F0ZXMpO1xuXG4gICAgaWYoZmlsZVBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29udGVudDogbnVsbCxcbiAgICAgICAgZmlsZVBhdGhzLFxuICAgICAgICB3YXJuaW5nc1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lc3BhY2VBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgY29uc3QgdXNlZElkZW50aWZpZXJzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3ltYm9scyA9IGZpbGVQYXRocy5tYXAoKGZpbGVQYXRoKSA9PiB7XG4gICAgICByZXR1cm4gY3JlYXRlU3ByaXRlU3ltYm9sKGZpbGVQYXRoLCB1c2VkSWRlbnRpZmllcnMsIHRoaXMub3B0aW9ucy5wcmVmaXgsIHdhcm5pbmdzKTtcbiAgICB9KS5maWx0ZXIoKGVudHJ5KTogZW50cnkgaXMgU3ByaXRlU3ltYm9sID0+IGVudHJ5ICE9PSBudWxsKTtcblxuICAgIGlmKHN5bWJvbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb250ZW50OiBudWxsLFxuICAgICAgICBmaWxlUGF0aHMsXG4gICAgICAgIHdhcm5pbmdzXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvcihjb25zdCBzeW1ib2wgb2Ygc3ltYm9scykge1xuICAgICAgZm9yKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc3ltYm9sLm5hbWVzcGFjZUF0dHJpYnV0ZXMpKSB7XG4gICAgICAgIG5hbWVzcGFjZUF0dHJpYnV0ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByb290QXR0cmlidXRlcyA9IGJ1aWxkQXR0cmlidXRlU3RyaW5nKHtcbiAgICAgIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICAgICAgLi4ubmFtZXNwYWNlQXR0cmlidXRlc1xuICAgIH0pO1xuICAgIGNvbnN0IHNwcml0ZUNvbnRlbnQgPSBgPHN2ZyAke3Jvb3RBdHRyaWJ1dGVzfT4ke3N5bWJvbHMubWFwKChzeW1ib2wpID0+IHN5bWJvbC5zeW1ib2wpLmpvaW4oJycpfTwvc3ZnPmA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogb3B0aW1pemVTdmcoc3ByaXRlQ29udGVudCwgdGhpcy5vcHRpb25zLm9wdGltaXplKSxcbiAgICAgIGZpbGVQYXRocyxcbiAgICAgIHdhcm5pbmdzXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5KGNvbXBpbGVyOiB3ZWJwYWNrLkNvbXBpbGVyKTogdm9pZCB7XG4gICAgY29tcGlsZXIuaG9va3MudGhpc0NvbXBpbGF0aW9uLnRhcChQTFVHSU5fTkFNRSwgKGNvbXBpbGF0aW9uKSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3RvcmllcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgY29uc3Qgc3ByaXRlbWFwID0gdGhpcy5idWlsZFNwcml0ZW1hcCgpO1xuXG4gICAgICBmb3IoY29uc3QgZmlsZVBhdGggb2Ygc3ByaXRlbWFwLmZpbGVQYXRocykge1xuICAgICAgICBjb21waWxhdGlvbi5maWxlRGVwZW5kZW5jaWVzLmFkZChmaWxlUGF0aCk7XG4gICAgICAgIGRpcmVjdG9yaWVzLmFkZChwYXRoRGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgfVxuXG4gICAgICBmb3IoY29uc3QgcGF0dGVybiBvZiB0aGlzLnBhdHRlcm5zKSB7XG4gICAgICAgIGNvbnN0IGJhc2VEaXJlY3RvcnkgPSBwYXRoUmVzb2x2ZShwYXR0ZXJuLnJlcGxhY2UoL1xcKi4qJC8sICcnKSk7XG4gICAgICAgIGRpcmVjdG9yaWVzLmFkZChiYXNlRGlyZWN0b3J5KTtcbiAgICAgIH1cblxuICAgICAgZm9yKGNvbnN0IGRpcmVjdG9yeSBvZiBkaXJlY3Rvcmllcykge1xuICAgICAgICBjb21waWxhdGlvbi5jb250ZXh0RGVwZW5kZW5jaWVzLmFkZChkaXJlY3RvcnkpO1xuICAgICAgfVxuXG4gICAgICBpZihzcHJpdGVtYXAud2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb21waWxhdGlvbi53YXJuaW5ncy5wdXNoKC4uLnNwcml0ZW1hcC53YXJuaW5ncyk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBpbGF0aW9uLmhvb2tzLnByb2Nlc3NBc3NldHMudGFwKHtcbiAgICAgICAgbmFtZTogUExVR0lOX05BTUUsXG4gICAgICAgIHN0YWdlOiB3ZWJwYWNrLkNvbXBpbGF0aW9uLlBST0NFU1NfQVNTRVRTX1NUQUdFX0FERElUSU9OQUxcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgaWYoIXNwcml0ZW1hcC5jb250ZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXNzZXROYW1lID0gdGhpcy5vcHRpb25zLmZpbGVuYW1lO1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBuZXcgd2VicGFjay5zb3VyY2VzLlJhd1NvdXJjZShzcHJpdGVtYXAuY29udGVudCk7XG5cbiAgICAgICAgaWYoY29tcGlsYXRpb24uZ2V0QXNzZXQoYXNzZXROYW1lKSkge1xuICAgICAgICAgIGNvbXBpbGF0aW9uLnVwZGF0ZUFzc2V0KGFzc2V0TmFtZSwgc291cmNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb21waWxhdGlvbi5lbWl0QXNzZXQoYXNzZXROYW1lLCBzb3VyY2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGV4U3ZnU3ByaXRlbWFwUGx1Z2luO1xuIl0sIm5hbWVzIjpbInJlYWRGaWxlU3luYyIsInN5bmMiLCJnbG9iU3luYyIsImJhc2VuYW1lIiwicGF0aEJhc2VuYW1lIiwiZGlybmFtZSIsInBhdGhEaXJuYW1lIiwiZXh0bmFtZSIsInBhdGhFeHRuYW1lIiwicmVzb2x2ZSIsInBhdGhSZXNvbHZlIiwib3B0aW1pemUiLCJ3ZWJwYWNrIiwiREVGQVVMVF9GSUxFTkFNRSIsIlBMVUdJTl9OQU1FIiwiUk9PVF9FWENMVURFRF9BVFRSSUJVVEVTIiwiU2V0IiwiZXNjYXBlQXR0cmlidXRlIiwidmFsdWUiLCJyZXBsYWNlQWxsIiwibm9ybWFsaXplQXNzZXRGaWxlbmFtZSIsImZpbGVuYW1lIiwicmVwbGFjZSIsInBhcnNlQXR0cmlidXRlcyIsImlucHV0IiwiYXR0cmlidXRlcyIsImF0dHJpYnV0ZVJlZ2V4IiwibWF0Y2giLCJleGVjIiwicGFyc2VTdmciLCJzb3VyY2UiLCJzdmdNYXRjaCIsImNvbnRlbnQiLCJ0cmltIiwiYnVpbGRBdHRyaWJ1dGVTdHJpbmciLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwibmFtZSIsImpvaW4iLCJzYW5pdGl6ZUlkZW50aWZpZXIiLCJzYW5pdGl6ZWRWYWx1ZSIsInNhZmVWYWx1ZSIsInRlc3QiLCJnZXRQcmVmaXgiLCJmaWxlUGF0aCIsInByZWZpeCIsIm9wdGltaXplU3ZnIiwiZW5hYmxlZCIsIm11bHRpcGFzcyIsInBsdWdpbnMiLCJwYXJhbXMiLCJvdmVycmlkZXMiLCJjbGVhbnVwSWRzIiwiZGF0YSIsImNyZWF0ZVNwcml0ZVN5bWJvbCIsInVzZWRJZGVudGlmaWVycyIsIndhcm5pbmdzIiwicGFyc2VkU3ZnIiwicHVzaCIsIldlYnBhY2tFcnJvciIsInJhd0lkZW50aWZpZXIiLCJiYXNlSWRlbnRpZmllciIsImlkZW50aWZpZXIiLCJkdXBsaWNhdGVJbmRleCIsImhhcyIsImFkZCIsIm5hbWVzcGFjZUF0dHJpYnV0ZXMiLCJyZWR1Y2UiLCJyZXN1bHQiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiLCJzeW1ib2xBdHRyaWJ1dGVzIiwiaWQiLCJ2aWV3Qm94Iiwid2lkdGgiLCJOdW1iZXIiLCJwYXJzZUZsb2F0IiwiaGVpZ2h0IiwiaXNGaW5pdGUiLCJzeW1ib2wiLCJjb2xsZWN0RmlsZXMiLCJwYXR0ZXJucyIsImFsbG93RHVwbGljYXRlcyIsImZpbGVzIiwiZmxhdE1hcCIsInBhdHRlcm4iLCJhYnNvbHV0ZSIsImRvdCIsIm5vZGlyIiwiTGV4U3ZnU3ByaXRlbWFwUGx1Z2luIiwiYnVpbGRTcHJpdGVtYXAiLCJmaWxlUGF0aHMiLCJvcHRpb25zIiwibGVuZ3RoIiwic3ltYm9scyIsImZpbHRlciIsImVudHJ5Iiwicm9vdEF0dHJpYnV0ZXMiLCJ4bWxucyIsInNwcml0ZUNvbnRlbnQiLCJhcHBseSIsImNvbXBpbGVyIiwiaG9va3MiLCJ0aGlzQ29tcGlsYXRpb24iLCJ0YXAiLCJjb21waWxhdGlvbiIsImRpcmVjdG9yaWVzIiwic3ByaXRlbWFwIiwiZmlsZURlcGVuZGVuY2llcyIsImJhc2VEaXJlY3RvcnkiLCJkaXJlY3RvcnkiLCJjb250ZXh0RGVwZW5kZW5jaWVzIiwicHJvY2Vzc0Fzc2V0cyIsInN0YWdlIiwiQ29tcGlsYXRpb24iLCJQUk9DRVNTX0FTU0VUU19TVEFHRV9BRERJVElPTkFMIiwiYXNzZXROYW1lIiwic291cmNlcyIsIlJhd1NvdXJjZSIsImdldEFzc2V0IiwidXBkYXRlQXNzZXQiLCJlbWl0QXNzZXQiLCJBcnJheSIsImlzQXJyYXkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7OztDQUdDLEdBQ0QsU0FBUUEsWUFBWSxRQUFPLEtBQUs7QUFDaEMsU0FBUUMsUUFBUUMsUUFBUSxRQUFPLE9BQU87QUFDdEMsU0FBUUMsWUFBWUMsWUFBWSxFQUFFQyxXQUFXQyxXQUFXLEVBQUVDLFdBQVdDLFdBQVcsRUFBRUMsV0FBV0MsV0FBVyxRQUFPLE9BQU87QUFDdEgsU0FBUUMsUUFBUSxRQUFPLE9BQU87QUFDOUIsT0FBT0MsYUFBYSxVQUFVO0FBc0I5QixNQUFNQyxtQkFBbUI7QUFDekIsTUFBTUMsY0FBYztBQUNwQixNQUFNQywyQkFBMkIsSUFBSUMsSUFBSTtJQUN2QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVELE1BQU1DLGtCQUFrQixDQUFDQztJQUN2QixPQUFPQSxNQUNKQyxVQUFVLENBQUMsS0FBSyxTQUNoQkEsVUFBVSxDQUFDLEtBQUssVUFDaEJBLFVBQVUsQ0FBQyxLQUFLLFFBQ2hCQSxVQUFVLENBQUMsS0FBSztBQUNyQjtBQUVBLE1BQU1DLHlCQUF5QixDQUFDQztJQUM5QixPQUFPQSxTQUFTQyxPQUFPLENBQUMsVUFBVTtBQUNwQztBQUVBLE1BQU1DLGtCQUFrQixDQUFDQztJQUN2QixNQUFNQyxhQUFxQyxDQUFDO0lBQzVDLE1BQU1DLGlCQUFpQjtJQUV2QixJQUFJQyxRQUFnQ0QsZUFBZUUsSUFBSSxDQUFDSjtJQUN4RCxNQUFNRyxNQUFPO1FBQ1hGLFVBQVUsQ0FBQ0UsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHQSxLQUFLLENBQUMsRUFBRSxJQUFJQSxLQUFLLENBQUMsRUFBRSxJQUFJO1FBQy9DQSxRQUFRRCxlQUFlRSxJQUFJLENBQUNKO0lBQzlCO0lBRUEsT0FBT0M7QUFDVDtBQUVBLE1BQU1JLFdBQVcsQ0FBQ0M7SUFDaEIsTUFBTUMsV0FBV0QsT0FDZFIsT0FBTyxDQUFDLHVCQUF1QixJQUMvQkEsT0FBTyxDQUFDLHdCQUF3QixJQUNoQ0ssS0FBSyxDQUFDO0lBRVQsSUFBRyxDQUFDSSxVQUFVO1FBQ1osT0FBTztJQUNUO0lBRUEsT0FBTztRQUNMTixZQUFZRixnQkFBZ0JRLFFBQVEsQ0FBQyxFQUFFLElBQUk7UUFDM0NDLFNBQVNELFFBQVEsQ0FBQyxFQUFFLEVBQUVFLFVBQVU7SUFDbEM7QUFDRjtBQUVBLE1BQU1DLHVCQUF1QixDQUFDVDtJQUM1QixPQUFPVSxPQUFPQyxPQUFPLENBQUNYLFlBQ25CWSxHQUFHLENBQUMsQ0FBQyxDQUFDQyxNQUFNcEIsTUFBTSxHQUFLLEdBQUdvQixLQUFLLEVBQUUsRUFBRXJCLGdCQUFnQkMsT0FBTyxDQUFDLENBQUMsRUFDNURxQixJQUFJLENBQUM7QUFDVjtBQUVBLE1BQU1DLHFCQUFxQixDQUFDdEI7SUFDMUIsTUFBTXVCLGlCQUFpQnZCLE1BQ3BCZSxJQUFJLEdBQ0pkLFVBQVUsQ0FBQyxRQUFRLEtBQ25CQSxVQUFVLENBQUMsbUJBQW1CLEtBQzlCQSxVQUFVLENBQUMsVUFBVSxLQUNyQkEsVUFBVSxDQUFDLGtCQUFrQjtJQUVoQyxNQUFNdUIsWUFBWUQsa0JBQWtCO0lBRXBDLE9BQU8sYUFBYUUsSUFBSSxDQUFDRCxhQUFhQSxZQUFZLENBQUMsS0FBSyxFQUFFQSxXQUFXO0FBQ3ZFO0FBRUEsTUFBTUUsWUFBWSxDQUFDQyxVQUFrQkM7SUFDbkMsSUFBR0EsV0FBVyxPQUFPO1FBQ25CLE9BQU87SUFDVDtJQUVBLElBQUcsT0FBT0EsV0FBVyxZQUFZO1FBQy9CLE9BQU9BLE9BQU9EO0lBQ2hCO0lBRUEsT0FBT0MsVUFBVTtBQUNuQjtBQUVBLE1BQU1DLGNBQWMsQ0FBQ2YsU0FBaUJnQjtJQUNwQyxJQUFHLENBQUNBLFNBQVM7UUFDWCxPQUFPaEI7SUFDVDtJQUVBLE9BQU9yQixTQUFTcUIsU0FBUztRQUN2QmlCLFdBQVc7UUFDWEMsU0FBUztZQUFDO2dCQUNSWixNQUFNO2dCQUNOYSxRQUFRO29CQUNOQyxXQUFXO3dCQUNUQyxZQUFZO29CQUNkO2dCQUNGO1lBQ0Y7U0FBRTtJQUNKLEdBQUdDLElBQUk7QUFDVDtBQUVBLE1BQU1DLHFCQUFxQixDQUN6QlYsVUFDQVcsaUJBQ0FWLFFBQ0FXO0lBRUEsTUFBTTNCLFNBQVM5QixhQUFhNkMsVUFBVTtJQUN0QyxNQUFNYSxZQUFZN0IsU0FBU0M7SUFFM0IsSUFBRyxDQUFDNEIsV0FBVztRQUNiRCxTQUFTRSxJQUFJLENBQUMsSUFBSS9DLFFBQVFnRCxZQUFZLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWYsVUFBVTtRQUN0RSxPQUFPO0lBQ1Q7SUFFQSxJQUFHLENBQUNhLFVBQVUxQixPQUFPLEVBQUU7UUFDckJ5QixTQUFTRSxJQUFJLENBQUMsSUFBSS9DLFFBQVFnRCxZQUFZLENBQUMsQ0FBQyxtQkFBbUIsRUFBRWYsVUFBVTtRQUN2RSxPQUFPO0lBQ1Q7SUFFQSxNQUFNZ0IsZ0JBQWdCLEdBQUdqQixVQUFVQyxVQUFVQyxVQUFVMUMsYUFBYXlDLFVBQVVyQyxZQUFZcUMsWUFBWTtJQUN0RyxNQUFNaUIsaUJBQWlCdEIsbUJBQW1CcUI7SUFFMUMsSUFBSUUsYUFBYUQ7SUFDakIsSUFBSUUsaUJBQWlCO0lBRXJCLE1BQU1SLGdCQUFnQlMsR0FBRyxDQUFDRixZQUFhO1FBQ3JDQyxrQkFBa0I7UUFDbEJELGFBQWEsR0FBR0QsZUFBZSxDQUFDLEVBQUVFLGdCQUFnQjtJQUNwRDtJQUVBLElBQUdELGVBQWVELGdCQUFnQjtRQUNoQ0wsU0FBU0UsSUFBSSxDQUFDLElBQUkvQyxRQUFRZ0QsWUFBWSxDQUFDLENBQUMsdUJBQXVCLEVBQUVFLGVBQWUsbUJBQW1CLEVBQUVDLFdBQVcsTUFBTSxFQUFFbEIsVUFBVTtJQUNwSTtJQUVBVyxnQkFBZ0JVLEdBQUcsQ0FBQ0g7SUFFcEIsTUFBTUksc0JBQXNCaEMsT0FBT0MsT0FBTyxDQUFDc0IsVUFBVWpDLFVBQVUsRUFBRTJDLE1BQU0sQ0FBeUIsQ0FBQ0MsUUFBUSxDQUFDL0IsTUFBTXBCLE1BQU07UUFDcEgsSUFBR29CLEtBQUtnQyxXQUFXLEdBQUdDLFVBQVUsQ0FBQyxXQUFXO1lBQzFDRixNQUFNLENBQUMvQixLQUFLLEdBQUdwQjtRQUNqQjtRQUVBLE9BQU9tRDtJQUNULEdBQUcsQ0FBQztJQUVKLE1BQU1HLG1CQUFtQnJDLE9BQU9DLE9BQU8sQ0FBQ3NCLFVBQVVqQyxVQUFVLEVBQUUyQyxNQUFNLENBQXlCLENBQUNDLFFBQVEsQ0FBQy9CLE1BQU1wQixNQUFNO1FBQ2pILElBQUdILHlCQUF5QmtELEdBQUcsQ0FBQzNCLE9BQU87WUFDckMsT0FBTytCO1FBQ1Q7UUFFQSxJQUFHL0IsS0FBS2dDLFdBQVcsR0FBR0MsVUFBVSxDQUFDLFdBQVc7WUFDMUMsT0FBT0Y7UUFDVDtRQUVBQSxNQUFNLENBQUMvQixLQUFLLEdBQUdwQjtRQUVmLE9BQU9tRDtJQUNULEdBQUc7UUFDREksSUFBSVY7SUFDTjtJQUVBLElBQUdMLFVBQVVqQyxVQUFVLENBQUNpRCxPQUFPLEVBQUU7UUFDL0JGLGlCQUFpQkUsT0FBTyxHQUFHaEIsVUFBVWpDLFVBQVUsQ0FBQ2lELE9BQU87SUFDekQsT0FBTztRQUNMLE1BQU1DLFFBQVFDLE9BQU9DLFVBQVUsQ0FBQ25CLFVBQVVqQyxVQUFVLENBQUNrRCxLQUFLLElBQUk7UUFDOUQsTUFBTUcsU0FBU0YsT0FBT0MsVUFBVSxDQUFDbkIsVUFBVWpDLFVBQVUsQ0FBQ3FELE1BQU0sSUFBSTtRQUVoRSxJQUFHRixPQUFPRyxRQUFRLENBQUNKLFVBQVVDLE9BQU9HLFFBQVEsQ0FBQ0QsU0FBUztZQUNwRE4saUJBQWlCRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUVDLE1BQU0sQ0FBQyxFQUFFRyxRQUFRO1FBQ3JELE9BQU87WUFDTHJCLFNBQVNFLElBQUksQ0FBQyxJQUFJL0MsUUFBUWdELFlBQVksQ0FBQyxDQUFDLHlEQUF5RCxFQUFFZixVQUFVO1lBQzdHLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBTztRQUNMQTtRQUNBc0I7UUFDQWEsUUFBUSxDQUFDLFFBQVEsRUFBRTlDLHFCQUFxQnNDLGtCQUFrQixDQUFDLEVBQUVkLFVBQVUxQixPQUFPLENBQUMsU0FBUyxDQUFDO0lBQzNGO0FBQ0Y7QUFFQSxNQUFNaUQsZUFBZSxDQUFDQyxVQUE2QkM7SUFDakQsTUFBTUMsUUFBUUYsU0FBU0csT0FBTyxDQUFDLENBQUNDO1FBQzlCLE9BQU9wRixTQUFTb0YsU0FBUztZQUN2QkMsVUFBVTtZQUNWQyxLQUFLO1lBQ0xDLE9BQU87UUFDVDtJQUNGLEdBQUdwRCxHQUFHLENBQUMsQ0FBQ1EsV0FBYW5DLFlBQVltQztJQUVqQyxJQUFHc0MsaUJBQWlCO1FBQ2xCLE9BQU9DO0lBQ1Q7SUFFQSxPQUFPO1dBQUksSUFBSXBFLElBQUlvRTtLQUFPO0FBQzVCO0FBRUEsT0FBTyxNQUFNTTtJQWNYQyxpQkFBa0c7UUFDaEcsTUFBTWxDLFdBQW1DLEVBQUU7UUFDM0MsTUFBTW1DLFlBQVlYLGFBQWEsSUFBSSxDQUFDQyxRQUFRLEVBQUUsSUFBSSxDQUFDVyxPQUFPLENBQUNWLGVBQWU7UUFFMUUsSUFBR1MsVUFBVUUsTUFBTSxLQUFLLEdBQUc7WUFDekIsT0FBTztnQkFDTDlELFNBQVM7Z0JBQ1Q0RDtnQkFDQW5DO1lBQ0Y7UUFDRjtRQUVBLE1BQU1VLHNCQUE4QyxDQUFDO1FBQ3JELE1BQU1YLGtCQUFrQixJQUFJeEM7UUFDNUIsTUFBTStFLFVBQVVILFVBQVV2RCxHQUFHLENBQUMsQ0FBQ1E7WUFDN0IsT0FBT1UsbUJBQW1CVixVQUFVVyxpQkFBaUIsSUFBSSxDQUFDcUMsT0FBTyxDQUFDL0MsTUFBTSxFQUFFVztRQUM1RSxHQUFHdUMsTUFBTSxDQUFDLENBQUNDLFFBQWlDQSxVQUFVO1FBRXRELElBQUdGLFFBQVFELE1BQU0sS0FBSyxHQUFHO1lBQ3ZCLE9BQU87Z0JBQ0w5RCxTQUFTO2dCQUNUNEQ7Z0JBQ0FuQztZQUNGO1FBQ0Y7UUFFQSxLQUFJLE1BQU11QixVQUFVZSxRQUFTO1lBQzNCLEtBQUksTUFBTSxDQUFDekQsTUFBTXBCLE1BQU0sSUFBSWlCLE9BQU9DLE9BQU8sQ0FBQzRDLE9BQU9iLG1CQUFtQixFQUFHO2dCQUNyRUEsbUJBQW1CLENBQUM3QixLQUFLLEdBQUdwQjtZQUM5QjtRQUNGO1FBRUEsTUFBTWdGLGlCQUFpQmhFLHFCQUFxQjtZQUMxQ2lFLE9BQU87WUFDUCxHQUFHaEMsbUJBQW1CO1FBQ3hCO1FBQ0EsTUFBTWlDLGdCQUFnQixDQUFDLEtBQUssRUFBRUYsZUFBZSxDQUFDLEVBQUVILFFBQVExRCxHQUFHLENBQUMsQ0FBQzJDLFNBQVdBLE9BQU9BLE1BQU0sRUFBRXpDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUV2RyxPQUFPO1lBQ0xQLFNBQVNlLFlBQVlxRCxlQUFlLElBQUksQ0FBQ1AsT0FBTyxDQUFDbEYsUUFBUTtZQUN6RGlGO1lBQ0FuQztRQUNGO0lBQ0Y7SUFFQTRDLE1BQU1DLFFBQTBCLEVBQVE7UUFDdENBLFNBQVNDLEtBQUssQ0FBQ0MsZUFBZSxDQUFDQyxHQUFHLENBQUMzRixhQUFhLENBQUM0RjtZQUMvQyxNQUFNQyxjQUFjLElBQUkzRjtZQUN4QixNQUFNNEYsWUFBWSxJQUFJLENBQUNqQixjQUFjO1lBRXJDLEtBQUksTUFBTTlDLFlBQVkrRCxVQUFVaEIsU0FBUyxDQUFFO2dCQUN6Q2MsWUFBWUcsZ0JBQWdCLENBQUMzQyxHQUFHLENBQUNyQjtnQkFDakM4RCxZQUFZekMsR0FBRyxDQUFDNUQsWUFBWXVDO1lBQzlCO1lBRUEsS0FBSSxNQUFNeUMsV0FBVyxJQUFJLENBQUNKLFFBQVEsQ0FBRTtnQkFDbEMsTUFBTTRCLGdCQUFnQnBHLFlBQVk0RSxRQUFRaEUsT0FBTyxDQUFDLFNBQVM7Z0JBQzNEcUYsWUFBWXpDLEdBQUcsQ0FBQzRDO1lBQ2xCO1lBRUEsS0FBSSxNQUFNQyxhQUFhSixZQUFhO2dCQUNsQ0QsWUFBWU0sbUJBQW1CLENBQUM5QyxHQUFHLENBQUM2QztZQUN0QztZQUVBLElBQUdILFVBQVVuRCxRQUFRLENBQUNxQyxNQUFNLEdBQUcsR0FBRztnQkFDaENZLFlBQVlqRCxRQUFRLENBQUNFLElBQUksSUFBSWlELFVBQVVuRCxRQUFRO1lBQ2pEO1lBRUFpRCxZQUFZSCxLQUFLLENBQUNVLGFBQWEsQ0FBQ1IsR0FBRyxDQUFDO2dCQUNsQ25FLE1BQU14QjtnQkFDTm9HLE9BQU90RyxRQUFRdUcsV0FBVyxDQUFDQywrQkFBK0I7WUFDNUQsR0FBRztnQkFDRCxJQUFHLENBQUNSLFVBQVU1RSxPQUFPLEVBQUU7b0JBQ3JCO2dCQUNGO2dCQUVBLE1BQU1xRixZQUFZLElBQUksQ0FBQ3hCLE9BQU8sQ0FBQ3hFLFFBQVE7Z0JBQ3ZDLE1BQU1TLFNBQVMsSUFBSWxCLFFBQVEwRyxPQUFPLENBQUNDLFNBQVMsQ0FBQ1gsVUFBVTVFLE9BQU87Z0JBRTlELElBQUcwRSxZQUFZYyxRQUFRLENBQUNILFlBQVk7b0JBQ2xDWCxZQUFZZSxXQUFXLENBQUNKLFdBQVd2RjtvQkFDbkM7Z0JBQ0Y7Z0JBRUE0RSxZQUFZZ0IsU0FBUyxDQUFDTCxXQUFXdkY7WUFDbkM7UUFDRjtJQUNGO0lBakdBLFlBQVlvRCxRQUEyQixFQUFFVyxVQUF3QyxDQUFDLENBQUMsQ0FBRTtRQUhyRix1QkFBU1gsWUFBVCxLQUFBO1FBQ0EsdUJBQVNXLFdBQVQsS0FBQTtRQUdFLElBQUksQ0FBQ1gsUUFBUSxHQUFHeUMsTUFBTUMsT0FBTyxDQUFDMUMsWUFBWUEsV0FBVztZQUFDQTtTQUFTO1FBQy9ELElBQUksQ0FBQ1csT0FBTyxHQUFHO1lBQ2JWLGlCQUFpQlUsUUFBUVYsZUFBZSxJQUFJO1lBQzVDOUQsVUFBVUQsdUJBQXVCeUUsUUFBUXhFLFFBQVEsSUFBSVI7WUFDckRGLFVBQVVrRixRQUFRbEYsUUFBUSxJQUFJO1lBQzlCbUMsUUFBUStDLFFBQVEvQyxNQUFNLElBQUk7UUFDNUI7SUFDRjtBQTBGRjtBQUVBLGVBQWU0QyxzQkFBc0IifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlabs/lex",
3
- "version": "1.59.3",
3
+ "version": "1.59.5",
4
4
  "description": "Lex",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -87,46 +87,45 @@
87
87
  "dependencies": {
88
88
  "@mdx-js/loader": "^3.1.1",
89
89
  "@nlabs/webpack-plugin-static-site": "*",
90
- "@playwright/test": "^1.61.1",
91
- "@storybook/addon-docs": "^10.4.6",
92
- "@storybook/addon-links": "^10.4.6",
90
+ "@playwright/test": "^1.62.1",
91
+ "@storybook/addon-docs": "^10.5.8",
92
+ "@storybook/addon-links": "^10.5.8",
93
93
  "@storybook/addon-styling-webpack": "^3.0.2",
94
- "@storybook/addon-themes": "^10.4.6",
95
- "@storybook/cli": "^10.4.6",
96
- "@storybook/react": "^10.4.6",
97
- "@storybook/react-webpack5": "^10.4.6",
94
+ "@storybook/addon-themes": "^10.5.8",
95
+ "@storybook/cli": "^10.5.8",
96
+ "@storybook/react": "^10.5.8",
97
+ "@storybook/react-webpack5": "^10.5.8",
98
98
  "@swc/cli": "^0.8.1",
99
- "@swc/core": "^1.15.43",
100
- "@swc/react-compiler": "^1.15.43",
99
+ "@swc/core": "^1.15.47",
100
+ "@swc/react-compiler": "^1.15.47",
101
101
  "@tailwindcss/forms": "^0.5.11",
102
102
  "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
103
- "@tailwindcss/postcss": "4.3.2",
104
- "@testing-library/jest-dom": "^6.9.1",
103
+ "@tailwindcss/postcss": "4.3.3",
104
+ "@testing-library/jest-dom": "^7.0.1",
105
105
  "@testing-library/react": "^16.3.2",
106
106
  "@vitest/coverage-v8": "^4.1.10",
107
107
  "assert": "^2.1.0",
108
- "autoprefixer": "^10.5.2",
108
+ "autoprefixer": "^10.5.4",
109
109
  "boxen": "8.0.1",
110
110
  "buffer": "^6.0.3",
111
- "caniuse-lite": "1.0.30001803",
112
- "chalk": "^5.6.2",
111
+ "caniuse-lite": "1.0.30001809",
112
+ "chalk": "^6.0.0",
113
113
  "commander": "^15.0.0",
114
114
  "compare-versions": "^6.1.1",
115
115
  "compression-webpack-plugin": "^12.0.0",
116
116
  "copy-webpack-plugin": "^14.0.0",
117
- "core-js": "^3.49.0",
118
- "crypto-js": "^4.2.0",
117
+ "core-js": "^3.50.0",
119
118
  "css-loader": "^7.1.4",
120
119
  "css-minimizer-webpack-plugin": "^8.0.0",
121
- "cssnano": "^8.0.2",
120
+ "cssnano": "^8.0.5",
122
121
  "dotenv-webpack": "^9.0.0",
123
- "download-npm-package": "^3.1.12",
124
- "esbuild": "^0.28.1",
125
- "eslint": "^10.6.0",
126
- "eslint-config-styleguidejs": "^5.0.4",
127
- "execa": "9.6.1",
122
+ "esbuild": "^0.28.2",
123
+ "eslint": "^10.8.1",
124
+ "eslint-config-styleguidejs": "^5.0.6",
125
+ "execa": "10.0.1",
128
126
  "expect": "^30.4.1",
129
127
  "express": "^5.2.1",
128
+ "favicons": "^7.3.1",
130
129
  "favicons-webpack-plugin": "^6.0.1",
131
130
  "find-file-up": "^2.0.1",
132
131
  "glob": "^13.0.6",
@@ -134,86 +133,97 @@
134
133
  "graphql": "^17.0.2",
135
134
  "graphql-tag": "^2.12.7",
136
135
  "html-loader": "^5.1.0",
137
- "html-webpack-plugin": "^5.6.7",
136
+ "html-webpack-plugin": "^5.6.8",
138
137
  "https-browserify": "^1.0.0",
139
138
  "image-minimizer-webpack-plugin": "^5.0.0",
140
- "jsdom": "^29.1.1",
139
+ "jsdom": "^30.0.1",
141
140
  "latest-version": "9.0.0",
142
141
  "lodash": "^4.18.1",
143
142
  "luxon": "^3.7.2",
144
143
  "math-expression-evaluator": "^2.0.7",
145
144
  "mini-css-extract-plugin": "^2.10.2",
146
- "npm-check-updates": "^22.2.9",
147
- "openai": "^6.45.0",
145
+ "npm-check-updates": "^23.0.2",
146
+ "openai": "^7.4.0",
148
147
  "ora": "9.4.1",
149
148
  "os-browserify": "^0.3.0",
149
+ "pacote": "^21.5.1",
150
150
  "path-browserify": "^1.0.1",
151
- "postcss": "^8.5.16",
151
+ "postcss": "^8.5.26",
152
152
  "postcss-browser-reporter": "^0.7.0",
153
153
  "postcss-cli": "^11.0.1",
154
154
  "postcss-custom-properties": "^15.0.1",
155
155
  "postcss-flexbugs-fixes": "^5.0.2",
156
156
  "postcss-hash": "^3.0.0",
157
- "postcss-import": "16.1.1",
157
+ "postcss-import": "16.2.0",
158
158
  "postcss-loader": "^8.2.1",
159
- "postcss-nesting": "^14.0.0",
159
+ "postcss-nesting": "^14.0.1",
160
160
  "postcss-preset-env": "^11.3.2",
161
161
  "postcss-simple-vars": "^7.0.1",
162
- "postcss-svgo": "8.0.1",
162
+ "postcss-svgo": "8.0.4",
163
163
  "postcss-url": "10.1.4",
164
164
  "postcss-value-parser": "^4.2.0",
165
165
  "process": "^0.11.10",
166
166
  "randombytes": "^2.1.0",
167
- "react": "^19.2.7",
168
- "react-dom": "^19.2.7",
167
+ "react": "^19.2.8",
168
+ "react-dom": "^19.2.8",
169
169
  "regenerator-runtime": "^0.14.1",
170
170
  "resolve": "^1.22.12",
171
171
  "rimraf": "^6.1.3",
172
172
  "semver": "^7.8.5",
173
173
  "sharp": "^0.35.3",
174
174
  "source-map-loader": "^5.0.0",
175
- "storybook": "^10.4.6",
175
+ "storybook": "^10.5.8",
176
176
  "stream-browserify": "^3.0.0",
177
177
  "stream-http": "^3.2.0",
178
178
  "style-loader": "^4.0.0",
179
- "svgo": "4.0.1",
179
+ "svgo": "4.0.2",
180
180
  "swc-loader": "^0.2.7",
181
- "tailwindcss": "^4.3.2",
181
+ "tailwindcss": "^4.3.3",
182
182
  "ts-node": "^10.9.2",
183
183
  "tsconfig-paths-webpack-plugin": "^4.2.0",
184
- "typescript": "^6.0.3",
184
+ "typescript": "^7.0.2",
185
185
  "util": "^0.12.5",
186
186
  "vitest": "^4.1.10",
187
187
  "vm-browserify": "^1.1.2",
188
- "webpack": "5.108.4",
189
- "webpack-bundle-analyzer": "^5.3.0",
190
- "webpack-cli": "^7.2.1",
188
+ "webpack": "5.109.2",
189
+ "webpack-bundle-analyzer": "^5.3.1",
190
+ "webpack-cli": "^7.2.2",
191
191
  "webpack-merge": "^6.0.1",
192
192
  "webpack-plugin-serve": "^1.6.0",
193
- "ws": "^8.21.0"
193
+ "ws": "^8.21.3"
194
194
  },
195
195
  "devDependencies": {
196
196
  "@types/express": "^5.0.6",
197
- "@types/luxon": "^3.7.2",
198
- "@types/node": "^26.1.0",
199
- "@types/ora": "^3.2.0",
200
- "@types/react": "^19.2.17",
197
+ "@types/luxon": "^3.7.4",
198
+ "@types/node": "^26.2.0",
199
+ "@types/react": "^19.2.18",
201
200
  "@types/webpack": "^5.28.5"
202
201
  },
203
202
  "overrides": {
204
203
  "@babel/core": "^7.29.7",
205
204
  "@xhmikosr/decompress": "^11.1.3",
206
- "brace-expansion": "^5.0.7",
205
+ "body-parser": "^2.3.0",
206
+ "brace-expansion": "^5.0.9",
207
207
  "cross-spawn": "^7.0.6",
208
+ "encoding-sniffer": "^1.0.2",
208
209
  "fast-xml-parser": "^5.8.0",
210
+ "fast-uri": "^4.1.2",
211
+ "flat-cache": "^6.1.23",
212
+ "favicons": {
213
+ "sharp": "^0.35.3"
214
+ },
215
+ "glob": "^13.0.6",
209
216
  "got": "^14.6.6",
210
217
  "http-proxy-middleware": "^3.0.7",
211
- "js-yaml": "^4.3.0",
218
+ "jscodeshift": "^17.4.0",
219
+ "js-yaml": "^5.3.0",
220
+ "pacote": "^21.5.1",
212
221
  "piscina": "^4.9.3",
213
222
  "qs": "^6.15.3",
223
+ "rimraf": "^6.1.3",
214
224
  "semver-regex": "^4.0.5",
215
225
  "tmp": "^0.2.7",
216
- "undici": "^7.28.0",
226
+ "undici": "^8.10.0",
217
227
  "webpack-plugin-serve": {
218
228
  "ws": "^7.5.11"
219
229
  }
package/webpack.config.js CHANGED
@@ -666,7 +666,7 @@ export default (webpackEnv, webpackOptions) => {
666
666
  fallback: {
667
667
  assert: relativeNodePath('assert', dirName),
668
668
  buffer: relativeNodePath('buffer', dirName),
669
- crypto: relativeNodePath('crypto-js', dirName),
669
+ crypto: false,
670
670
  http: relativeNodePath('stream-http', dirName),
671
671
  https: relativeNodePath('https-browserify', dirName),
672
672
  os: relativeNodePath('os-browserify/browser.js', dirName),