@dollhousemcp/mcp-server 2.0.11 → 2.0.12-rc.2

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.
Files changed (93) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/config/ConfigManager.d.ts +34 -0
  3. package/dist/config/ConfigManager.d.ts.map +1 -1
  4. package/dist/config/ConfigManager.js +46 -1
  5. package/dist/config/env.d.ts +18 -0
  6. package/dist/config/env.d.ts.map +1 -1
  7. package/dist/config/env.js +89 -2
  8. package/dist/di/Container.d.ts +1 -0
  9. package/dist/di/Container.d.ts.map +1 -1
  10. package/dist/di/Container.js +38 -2
  11. package/dist/elements/agents/AgentManager.js +2 -2
  12. package/dist/generated/version.d.ts +2 -2
  13. package/dist/generated/version.d.ts.map +1 -1
  14. package/dist/generated/version.js +3 -3
  15. package/dist/handlers/mcp-aql/GatekeeperSession.d.ts.map +1 -1
  16. package/dist/handlers/mcp-aql/GatekeeperSession.js +3 -2
  17. package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
  18. package/dist/handlers/mcp-aql/MCPAQLHandler.js +11 -3
  19. package/dist/handlers/mcp-aql/OperationSchema.d.ts.map +1 -1
  20. package/dist/handlers/mcp-aql/OperationSchema.js +11 -6
  21. package/dist/handlers/mcp-aql/policies/ToolClassification.d.ts.map +1 -1
  22. package/dist/handlers/mcp-aql/policies/ToolClassification.js +8 -1
  23. package/dist/index.js +53 -3
  24. package/dist/security/InputNormalizer.d.ts +4 -6
  25. package/dist/security/InputNormalizer.d.ts.map +1 -1
  26. package/dist/security/InputNormalizer.js +10 -16
  27. package/dist/security/audit/config/suppressions.d.ts.map +1 -1
  28. package/dist/security/audit/config/suppressions.js +26 -1
  29. package/dist/security/constants.d.ts +7 -0
  30. package/dist/security/constants.d.ts.map +1 -1
  31. package/dist/security/constants.js +10 -1
  32. package/dist/security/contentValidator.d.ts.map +1 -1
  33. package/dist/security/contentValidator.js +14 -6
  34. package/dist/security/encryption/PatternEncryptor.d.ts.map +1 -1
  35. package/dist/security/encryption/PatternEncryptor.js +18 -10
  36. package/dist/security/securityMonitor.d.ts +1 -1
  37. package/dist/security/securityMonitor.d.ts.map +1 -1
  38. package/dist/security/securityMonitor.js +1 -1
  39. package/dist/security/tokenManager.d.ts +18 -2
  40. package/dist/security/tokenManager.d.ts.map +1 -1
  41. package/dist/security/tokenManager.js +47 -15
  42. package/dist/security/validators/unicodeValidator.d.ts +4 -5
  43. package/dist/security/validators/unicodeValidator.d.ts.map +1 -1
  44. package/dist/security/validators/unicodeValidator.js +19 -20
  45. package/dist/services/VerificationNotifier.d.ts.map +1 -1
  46. package/dist/services/VerificationNotifier.js +15 -13
  47. package/dist/services/validation/GenericElementValidator.js +5 -5
  48. package/dist/web/console/IngestRoutes.d.ts +14 -2
  49. package/dist/web/console/IngestRoutes.d.ts.map +1 -1
  50. package/dist/web/console/IngestRoutes.js +69 -5
  51. package/dist/web/console/LeaderElection.d.ts +37 -3
  52. package/dist/web/console/LeaderElection.d.ts.map +1 -1
  53. package/dist/web/console/LeaderElection.js +67 -7
  54. package/dist/web/console/LeaderForwardingSink.d.ts +19 -3
  55. package/dist/web/console/LeaderForwardingSink.d.ts.map +1 -1
  56. package/dist/web/console/LeaderForwardingSink.js +44 -9
  57. package/dist/web/console/PromotionManager.d.ts +29 -0
  58. package/dist/web/console/PromotionManager.d.ts.map +1 -0
  59. package/dist/web/console/PromotionManager.js +94 -0
  60. package/dist/web/console/SessionNames.d.ts +7 -0
  61. package/dist/web/console/SessionNames.d.ts.map +1 -1
  62. package/dist/web/console/SessionNames.js +10 -1
  63. package/dist/web/console/UnifiedConsole.d.ts +26 -1
  64. package/dist/web/console/UnifiedConsole.d.ts.map +1 -1
  65. package/dist/web/console/UnifiedConsole.js +143 -20
  66. package/dist/web/portDiscovery.d.ts +4 -3
  67. package/dist/web/portDiscovery.d.ts.map +1 -1
  68. package/dist/web/portDiscovery.js +7 -5
  69. package/dist/web/public/app.js +35 -18
  70. package/dist/web/public/consoleAuth.js +152 -0
  71. package/dist/web/public/index.html +243 -9
  72. package/dist/web/public/logs.js +1 -1
  73. package/dist/web/public/metrics.js +3 -3
  74. package/dist/web/public/permissions.js +1 -1
  75. package/dist/web/public/security.css +396 -0
  76. package/dist/web/public/security.js +393 -0
  77. package/dist/web/public/sessions.css +54 -4
  78. package/dist/web/public/sessions.js +46 -6
  79. package/dist/web/public/setup.css +439 -0
  80. package/dist/web/public/setup.js +490 -18
  81. package/dist/web/public/styles.css +10 -0
  82. package/dist/web/routes/permissionRoutes.d.ts.map +1 -1
  83. package/dist/web/routes/permissionRoutes.js +8 -3
  84. package/dist/web/routes/setupRoutes.d.ts +4 -0
  85. package/dist/web/routes/setupRoutes.d.ts.map +1 -1
  86. package/dist/web/routes/setupRoutes.js +418 -7
  87. package/dist/web/routes.d.ts.map +1 -1
  88. package/dist/web/routes.js +9 -5
  89. package/dist/web/server.d.ts +49 -3
  90. package/dist/web/server.d.ts.map +1 -1
  91. package/dist/web/server.js +282 -82
  92. package/package.json +11 -2
  93. package/server.json +2 -2
@@ -2,8 +2,8 @@
2
2
  * Auto-generated file - DO NOT EDIT
3
3
  * Generated at build time by scripts/generate-version.js
4
4
  */
5
- export declare const PACKAGE_VERSION = "2.0.11";
6
- export declare const BUILD_TIMESTAMP = "2026-04-08T17:34:09.248Z";
5
+ export declare const PACKAGE_VERSION = "2.0.12-rc.2";
6
+ export declare const BUILD_TIMESTAMP = "2026-04-08T21:04:11.080Z";
7
7
  export declare const BUILD_TYPE: 'npm' | 'git';
8
8
  export declare const PACKAGE_NAME = "@dollhousemcp/mcp-server";
9
9
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/generated/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe,WAAW,CAAC;AACxC,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,UAAU,EAAE,KAAK,GAAG,KAAa,CAAC;AAC/C,eAAO,MAAM,YAAY,6BAA6B,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/generated/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,UAAU,EAAE,KAAK,GAAG,KAAa,CAAC;AAC/C,eAAO,MAAM,YAAY,6BAA6B,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * Auto-generated file - DO NOT EDIT
3
3
  * Generated at build time by scripts/generate-version.js
4
4
  */
5
- export const PACKAGE_VERSION = '2.0.11';
6
- export const BUILD_TIMESTAMP = '2026-04-08T17:34:09.248Z';
5
+ export const PACKAGE_VERSION = '2.0.12-rc.2';
6
+ export const BUILD_TIMESTAMP = '2026-04-08T21:04:11.080Z';
7
7
  export const BUILD_TYPE = 'npm';
8
8
  export const PACKAGE_NAME = '@dollhousemcp/mcp-server';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEtBQUssQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dG8tZ2VuZXJhdGVkIGZpbGUgLSBETyBOT1QgRURJVFxuICogR2VuZXJhdGVkIGF0IGJ1aWxkIHRpbWUgYnkgc2NyaXB0cy9nZW5lcmF0ZS12ZXJzaW9uLmpzXG4gKi9cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9ICcyLjAuMTEnO1xuZXhwb3J0IGNvbnN0IEJVSUxEX1RJTUVTVEFNUCA9ICcyMDI2LTA0LTA4VDE3OjM0OjA5LjI0OFonO1xuZXhwb3J0IGNvbnN0IEJVSUxEX1RZUEU6ICducG0nIHwgJ2dpdCcgPSAnbnBtJztcbmV4cG9ydCBjb25zdCBQQUNLQUdFX05BTUUgPSAnQGRvbGxob3VzZW1jcC9tY3Atc2VydmVyJztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEtBQUssQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dG8tZ2VuZXJhdGVkIGZpbGUgLSBETyBOT1QgRURJVFxuICogR2VuZXJhdGVkIGF0IGJ1aWxkIHRpbWUgYnkgc2NyaXB0cy9nZW5lcmF0ZS12ZXJzaW9uLmpzXG4gKi9cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9ICcyLjAuMTItcmMuMic7XG5leHBvcnQgY29uc3QgQlVJTERfVElNRVNUQU1QID0gJzIwMjYtMDQtMDhUMjE6MDQ6MTEuMDgwWic7XG5leHBvcnQgY29uc3QgQlVJTERfVFlQRTogJ25wbScgfCAnZ2l0JyA9ICducG0nO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdAZG9sbGhvdXNlbWNwL21jcC1zZXJ2ZXInO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"GatekeeperSession.d.ts","sourceRoot":"","sources":["../../../src/handlers/mcp-aql/GatekeeperSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GatekeeperSession.d.ts","sourceRoot":"","sources":["../../../src/handlers/mcp-aql/GatekeeperSession.ts"],"names":[],"mappings":"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"}
@@ -326,7 +326,8 @@ export class GatekeeperSession {
326
326
  for (const [key, record] of this.state.cliApprovals) {
327
327
  const ttl = record.ttlMs ?? DEFAULT_APPROVAL_TTL_MS;
328
328
  const age = now - new Date(record.requestedAt).getTime();
329
- if (age > ttl && !record.approvedAt) {
329
+ // Evict stale pending requests AND consumed single-use approvals (#1782)
330
+ if (age > ttl && (!record.approvedAt || record.consumed)) {
330
331
  this.state.cliApprovals.delete(key);
331
332
  }
332
333
  }
@@ -354,4 +355,4 @@ export class GatekeeperSession {
354
355
  return elementType ? `${operation}:${elementType}` : operation;
355
356
  }
356
357
  }
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2F0ZWtlZXBlclNlc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlcnMvbWNwLWFxbC9HYXRla2VlcGVyU2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBb0MxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gseUVBQXlFO0FBQ3pFLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0FBRWpFLHVEQUF1RDtBQUN2RCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztBQUVsRSxzREFBc0Q7QUFDdEQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7QUFFbEMsc0RBQXNEO0FBQ3RELE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBRXZDLHVEQUF1RDtBQUN2RCxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQztBQUV4QyxNQUFNLE9BQU8saUJBQWlCO0lBQ1gsS0FBSyxDQUF5QjtJQUM5QixnQkFBZ0IsQ0FBUztJQUN6QixlQUFlLENBQVM7SUFDakMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUU1QixZQUFZLFVBQXVCLEVBQUUsbUJBQTJCLEdBQUcsRUFBRSxrQkFBMEIseUJBQXlCO1FBQ3RILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsU0FBUyxFQUFFLFVBQVUsRUFBRTtZQUN2QixVQUFVO1lBQ1YsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ25DLFlBQVksRUFBRSxJQUFJLElBQUksRUFB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LEVBQUUsV0FBb0I7UUFDaEUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHYXRla2VlcGVyIFNlc3Npb24gTWFuYWdlbWVudFxuICpcbiAqIE1hbmFnZXMgcGVyLWNvbm5lY3Rpb24gc2Vzc2lvbiBzdGF0ZSBmb3IgdGhlIEdhdGVrZWVwZXIgUG9saWN5IEVuZ2luZS5cbiAqIEVhY2ggTUNQIGNsaWVudCBjb25uZWN0aW9uIGdldHMgYSBzZXBhcmF0ZSBzZXNzaW9uIHdpdGggaXNvbGF0ZWQgc3RhdGUuXG4gKlxuICogQ1JJVElDQUw6IFNlc3Npb24gc3RhdGUgaXMgSU4tTUVNT1JZIG9ubHkuXG4gKiAtIENvbmZpcm1hdGlvbnMgYXJlIE5PVCBwZXJzaXN0ZWQgdG8gZGlza1xuICogLSBFYWNoIENsYXVkZSBDb2RlIC8gQ2xhdWRlIERlc2t0b3AgLyBldGMuID0gc2VwYXJhdGUgc2Vzc2lvblxuICogLSBObyBjcm9zcy1zZXNzaW9uIHBvbGljeSBsZWFrYWdlXG4gKiAtIENyYXNoID0gZnJlc2ggc2Vzc2lvbiAoc2VjdXJpdHktZmlyc3QgZGVjaXNpb24pXG4gKi9cblxuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgdHlwZSB7IENvbmZpcm1hdGlvblJlY29yZCwgUGVybWlzc2lvbkxldmVsLCBDbGlBcHByb3ZhbFJlY29yZCwgQ2xpQXBwcm92YWxTY29wZSB9IGZyb20gJy4vR2F0ZWtlZXBlclR5cGVzLmpzJztcbmltcG9ydCB7IGVudiB9IGZyb20gJy4uLy4uL2NvbmZpZy9lbnYuanMnO1xuXG4vKipcbiAqIENsaWVudCBpbmZvcm1hdGlvbiBmcm9tIE1DUCBjYXBhYmlsaXRpZXMuXG4gKiBJZGVudGlmaWVzIHdoaWNoIE1DUCBjbGllbnQgaXMgbWFraW5nIHJlcXVlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudEluZm8ge1xuICAvKiogQ2xpZW50IG5hbWUgKGUuZy4sIFwiY2xhdWRlLWNvZGVcIiwgXCJjbGF1ZGUtZGVza3RvcFwiKSAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBDbGllbnQgdmVyc2lvbiAqL1xuICB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2Vzc2lvbiBzdGF0ZSBmb3IgYSBzaW5nbGUgTUNQIGNvbm5lY3Rpb24uXG4gKiBUcmFja3MgY29uZmlybWF0aW9ucyBhbmQgYWN0aXZpdHkgZm9yIHRoaXMgc2Vzc2lvbiBvbmx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGVrZWVwZXJTZXNzaW9uU3RhdGUge1xuICAvKiogVW5pcXVlIHNlc3Npb24gaWRlbnRpZmllciAqL1xuICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgLyoqIENsaWVudCBpbmZvcm1hdGlvbiBmcm9tIE1DUCBjYXBhYmlsaXRpZXMgKi9cbiAgY2xpZW50SW5mbz86IENsaWVudEluZm87XG4gIC8qKiBXaGVuIHRoZSBzZXNzaW9uIHdhcyBjcmVhdGVkICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICAvKiogTGFzdCBhY3Rpdml0eSB0aW1lc3RhbXAgKi9cbiAgbGFzdEFjdGl2aXR5OiBzdHJpbmc7XG4gIC8qKiBNYXAgb2Ygb3BlcmF0aW9uIC0+IGNvbmZpcm1hdGlvbiByZWNvcmQgKi9cbiAgY29uZmlybWF0aW9uczogTWFwPHN0cmluZywgQ29uZmlybWF0aW9uUmVjb3JkPjtcbiAgLyoqIE1hcCBvZiByZXF1ZXN0SWQgLT4gQ0xJIGFwcHJvdmFsIHJlY29yZCAoSXNzdWUgIzYyNSBQaGFzZSAzKSAqL1xuICBjbGlBcHByb3ZhbHM6IE1hcDxzdHJpbmcsIENsaUFwcHJvdmFsUmVjb3JkPjtcbiAgLyoqIE1hcCBvZiB0b29sTmFtZSAtPiBzZXNzaW9uLXNjb3BlZCBDTEkgYXBwcm92YWwgKElzc3VlICM2MjUgUGhhc2UgMykgKi9cbiAgY2xpU2Vzc2lvbkFwcHJvdmFsczogTWFwPHN0cmluZywgQ2xpQXBwcm92YWxSZWNvcmQ+O1xuICAvKiogV2hldGhlciBwZXJtaXNzaW9uX3Byb21wdCBoYXMgYmVlbiBjYWxsZWQgYXQgbGVhc3Qgb25jZSB0aGlzIHNlc3Npb24gKElzc3VlICM2MjUgUGhhc2UgNCkgKi9cbiAgcGVybWlzc2lvblByb21wdEFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHYXRla2VlcGVyIFNlc3Npb24gTWFuYWdlci5cbiAqIE1hbmFnZXMgcGVyLWNvbm5lY3Rpb24gc2Vzc2lvbiBzdGF0ZSB3aXRoIGlzb2xhdGVkIGNvbmZpcm1hdGlvbiB0cmFja2luZy5cbiAqXG4gKiBERVNJR04gTk9URVM6XG4gKiAtIFNlc3Npb24gSUQgaXMgZ2VuZXJhdGVkIG9uIE1DUCBjb25uZWN0aW9uIGluaXRpYWxpemF0aW9uXG4gKiAtIFRpZWQgdG8gdGhlIHNwZWNpZmljIHRyYW5zcG9ydC9jb25uZWN0aW9uXG4gKiAtIE5PVCBzaGFyZWQgdmlhIGZpbGVzeXN0ZW0gKGluLW1lbW9yeSBwZXIgc2VydmVyIGluc3RhbmNlKVxuICogLSBFYWNoIGBjbGF1ZGVgIENMSSBpbnZvY2F0aW9uIHNwYXducyBzZXBhcmF0ZSBNQ1Agc2VydmVyIHByb2Nlc3MgPSBzZXBhcmF0ZSBzZXNzaW9uXG4gKlxuICogUFJPQ0VTUyBJU09MQVRJT046XG4gKiBFYWNoIENsYXVkZSBDb2RlIHNlc3Npb24gPSBzZXBhcmF0ZSBub2RlIHByb2Nlc3MgKHZlcmlmaWVkKVxuICogTUNQIHN0ZGlvIHRyYW5zcG9ydCA9IGNoaWxkIHByb2Nlc3MgcGVyIGNsaWVudC4gTm8gc2hhcmluZyBwb3NzaWJsZS5cbiAqXG4gKiBIVFRQL0hUVFBTIFRSQU5TUE9SVCBDT05TSURFUkFUSU9OUyAoZm9yIGZ1dHVyZSBpbXBsZW1lbnRlcnMpOlxuICogSWYgaW1wbGVtZW50aW5nIEhUVFAvSFRUUFMgdHJhbnNwb3J0IGluc3RlYWQgb2Ygc3RkaW86XG4gKiAtIFNlc3Npb24gc3RhdGUgbXVzdCBiZSB0aWVkIHRvIGF1dGhlbnRpY2F0ZWQgY2xpZW50IGlkZW50aXR5IChBUEkga2V5LCB0b2tlbilcbiAqIC0gTXVsdGlwbGUgTExNIGNsaWVudHMgY291bGQgY29ubmVjdCB0byBhIHNoYXJlZCBzZXJ2ZXIgKHVubGlrZSBzdGRpbydzIDE6MSlcbiAqIC0gQ29uc2lkZXIgc2lnbmVkIHNlc3Npb24gdG9rZW5zIChKV1QpIGZvciBzdGF0ZWxlc3MgZGVwbG95bWVudHNcbiAqIC0gSW1wbGVtZW50IHNlc3Npb24gZXhwaXJhdGlvbiBhbmQgcmVuZXdhbCBtZWNoYW5pc21zXG4gKiAtIEZvciBsb2FkLWJhbGFuY2VkIGRlcGxveW1lbnRzLCB1c2UgUmVkaXMgb3Igc2ltaWxhciBmb3Igc2hhcmVkIHNlc3Npb24gc3RhdGVcbiAqL1xuLyoqIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgQ0xJIGFwcHJvdmFsIHJlY29yZHMgYmVmb3JlIExSVSBldmljdGlvbiAqL1xuY29uc3QgREVGQVVMVF9NQVhfQ0xJX0FQUFJPVkFMUyA9IGVudi5ET0xMSE9VU0VfQ0xJX0FQUFJPVkFMX01BWDtcblxuLyoqIERlZmF1bHQgVFRMIGZvciBDTEkgYXBwcm92YWwgcmVjb3JkcyAoNSBtaW51dGVzKSAqL1xuY29uc3QgREVGQVVMVF9BUFBST1ZBTF9UVExfTVMgPSBlbnYuRE9MTEhPVVNFX0NMSV9BUFBST1ZBTF9UVExfTVM7XG5cbi8qKiBNaW5pbXVtIFRUTCBmb3IgQ0xJIGFwcHJvdmFsIHJlY29yZHMgKDEgc2Vjb25kKSAqL1xuY29uc3QgTUlOX0FQUFJPVkFMX1RUTF9NUyA9IDFfMDAwO1xuXG4vKiogTWF4aW11bSBUVEwgZm9yIENMSSBhcHByb3ZhbCByZWNvcmRzICgyNCBob3VycykgKi9cbmNvbnN0IE1BWF9BUFBST1ZBTF9UVExfTVMgPSA4Nl80MDBfMDAwO1xuXG4vKiogVGhyb3R0bGUgaW50ZXJ2YWwgZm9yIGV4cGlyeSBzd2VlcHMgKDEwIHNlY29uZHMpICovXG5jb25zdCBFWFBJUllfU1dFRVBfSU5URVJWQUxfTVMgPSAxMF8wMDA7XG5cbmV4cG9ydCBjbGFzcyBHYXRla2VlcGVyU2Vzc2lvbiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdGU6IEdhdGVrZWVwZXJTZXNzaW9uU3RhdGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4Q29uZmlybWF0aW9uczogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IG1heENsaUFwcHJvdmFsczogbnVtYmVyO1xuICBwcml2YXRlIGxhc3RFeHBpcnlTd2VlcCA9IDA7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50SW5mbz86IENsaWVudEluZm8sIG1heENvbmZpcm1hdGlvbnM6IG51bWJlciA9IDEwMCwgbWF4Q2xpQXBwcm92YWxzOiBudW1iZXIgPSBERUZBVUxUX01BWF9DTElfQVBQUk9WQUxTKSB7XG4gICAgdGhpcy5tYXhDb25maXJtYXRpb25zID0gbWF4Q29uZmlybWF0aW9ucztcbiAgICB0aGlzLm1heENsaUFwcHJvdmFscyA9IG1heENsaUFwcHJvdmFscztcbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgc2Vzc2lvbklkOiByYW5kb21VVUlEKCksXG4gICAgICBjbGllbnRJbmZvLFxuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBsYXN0QWN0aXZpdHk6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGNvbmZpcm1hdGlvbnM6IG5ldyBNYXAoKSxcbiAgICAgIGNsaUFwcHJvdmFsczogbmV3IE1hcCgpLFxuICAgICAgY2xpU2Vzc2lvbkFwcHJvdmFsczogbmV3IE1hcCgpLFxuICAgICAgcGVybWlzc2lvblByb21wdEFjdGl2ZTogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVuaXF1ZSBzZXNzaW9uIGlkZW50aWZpZXIuXG4gICAqL1xuICBnZXQgc2Vzc2lvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2Vzc2lvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY2xpZW50IGluZm9ybWF0aW9uLlxuICAgKi9cbiAgZ2V0IGNsaWVudEluZm8oKTogQ2xpZW50SW5mbyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuY2xpZW50SW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNlc3Npb24gY3JlYXRpb24gdGltZXN0YW1wLlxuICAgKi9cbiAgZ2V0IGNyZWF0ZWRBdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNyZWF0ZWRBdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxhc3QgYWN0aXZpdHkgdGltZXN0YW1wLlxuICAgKi9cbiAgZ2V0IGxhc3RBY3Rpdml0eSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmxhc3RBY3Rpdml0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHBlcm1pc3Npb25fcHJvbXB0IGhhcyBiZWVuIGludm9rZWQgYXQgbGVhc3Qgb25jZSB0aGlzIHNlc3Npb24uXG4gICAqIFVzZWQgZm9yIGZhaWwtc2FmZSBkZXRlY3Rpb24gKElzc3VlICM2MjUgUGhhc2UgNCkuXG4gICAqL1xuICBnZXQgaXNQZXJtaXNzaW9uUHJvbXB0QWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnBlcm1pc3Npb25Qcm9tcHRBY3RpdmU7XG4gIH1cblxuICAvKipcbiAgICogTWFyayB0aGF0IHBlcm1pc3Npb25fcHJvbXB0IGhhcyBiZWVuIGludm9rZWQuXG4gICAqIENhbGxlZCBvbiBmaXJzdCBpbnZvY2F0aW9uIHRvIHRyYWNrIHRoYXQgdGhlIENMSSBjbGllbnQgc3VwcG9ydHMgaXQuXG4gICAqL1xuICBtYXJrUGVybWlzc2lvblByb21wdEFjdGl2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnBlcm1pc3Npb25Qcm9tcHRBY3RpdmUgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbGFzdCBhY3Rpdml0eSB0aW1lc3RhbXAuXG4gICAqL1xuICB0b3VjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLmxhc3RBY3Rpdml0eSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvcmQgYSBjb25maXJtYXRpb24gZm9yIGFuIG9wZXJhdGlvbi5cbiAgICogQ29uZmlybWF0aW9ucyBhcmUgc2NvcGVkIHRvIHRoaXMgc2Vzc2lvbiBvbmx5LlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gVGhlIG9wZXJhdGlvbiBiZWluZyBjb25maXJtZWRcbiAgICogQHBhcmFtIHBlcm1pc3Npb25MZXZlbCAtIFRoZSBwZXJtaXNzaW9uIGxldmVsIGJlaW5nIGNvbmZpcm1lZFxuICAgKiBAcGFyYW0gZWxlbWVudFR5cGUgLSBPcHRpb25hbCBlbGVtZW50IHR5cGUgc2NvcGVcbiAgICovXG4gIHJlY29yZENvbmZpcm1hdGlvbihcbiAgICBvcGVyYXRpb246IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uTGV2ZWw6IFBlcm1pc3Npb25MZXZlbC5DT05GSVJNX1NFU1NJT04gfCBQZXJtaXNzaW9uTGV2ZWwuQ09ORklSTV9TSU5HTEVfVVNFLFxuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMudG91Y2goKTtcblxuICAgIC8vIEVuZm9yY2UgbWF4IGNvbmZpcm1hdGlvbnMgKExSVSBldmljdGlvbilcbiAgICBpZiAodGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLnNpemUgPj0gdGhpcy5tYXhDb25maXJtYXRpb25zKSB7XG4gICAgICAvLyBSZW1vdmUgb2xkZXN0IGNvbmZpcm1hdGlvblxuICAgICAgY29uc3Qgb2xkZXN0S2V5ID0gdGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLmtleXMoKS5uZXh0KCkudmFsdWU7XG4gICAgICBpZiAob2xkZXN0S2V5KSB7XG4gICAgICAgIHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5kZWxldGUob2xkZXN0S2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldENvbmZpcm1hdGlvbktleShvcGVyYXRpb24sIGVsZW1lbnRUeXBlKTtcbiAgICB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuc2V0KGtleSwge1xuICAgICAgb3BlcmF0aW9uLFxuICAgICAgY29uZmlybWVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHBlcm1pc3Npb25MZXZlbCxcbiAgICAgIHVzZUNvdW50OiAwLFxuICAgICAgZWxlbWVudFR5cGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gb3BlcmF0aW9uIGhhcyBhIHZhbGlkIHNlc3Npb24gY29uZmlybWF0aW9uLlxuICAgKiBGb3IgQ09ORklSTV9TSU5HTEVfVVNFLCB0aGlzIGludmFsaWRhdGVzIHRoZSBjb25maXJtYXRpb24gYWZ0ZXIgY2hlY2tpbmcuXG4gICAqXG4gICAqIFJBQ0UgQ09ORElUSU9OIE5PVEU6XG4gICAqIFRoZSBjaGVjay10aGVuLWRlbGV0ZSBmb3IgQ09ORklSTV9TSU5HTEVfVVNFIGlzIHNhZmUgYmVjYXVzZTpcbiAgICogMS4gTm9kZS5qcyBpcyBzaW5nbGUtdGhyZWFkZWQgLSBubyBjb25jdXJyZW50IGFjY2VzcyB0byBNYXBcbiAgICogMi4gTUNQIHJlcXVlc3RzIGFyZSBwcm9jZXNzZWQgc2VxdWVudGlhbGx5IHBlciBjb25uZWN0aW9uXG4gICAqIDMuIEVhY2ggc2Vzc2lvbiBpbnN0YW5jZSBpcyB0aWVkIHRvIGEgc2luZ2xlIGNsaWVudCBjb25uZWN0aW9uXG4gICAqIElmIHRoaXMgY29kZSBpcyBldmVyIHVzZWQgaW4gYSBtdWx0aS10aHJlYWRlZCBjb250ZXh0IG9yIHdpdGggc2hhcmVkXG4gICAqIHN0YXRlIGFjcm9zcyBwcm9jZXNzZXMsIGF0b21pYyBvcGVyYXRpb25zIHdvdWxkIGJlIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gVGhlIG9wZXJhdGlvbiB0byBjaGVja1xuICAgKiBAcGFyYW0gZWxlbWVudFR5cGUgLSBPcHRpb25hbCBlbGVtZW50IHR5cGUgc2NvcGVcbiAgICogQHJldHVybnMgVGhlIGNvbmZpcm1hdGlvbiByZWNvcmQgaWYgdmFsaWQsIHVuZGVmaW5lZCBvdGhlcndpc2VcbiAgICovXG4gIGNoZWNrQ29uZmlybWF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBlbGVtZW50VHlwZT86IHN0cmluZyk6IENvbmZpcm1hdGlvblJlY29yZCB8IHVuZGVmaW5lZCB7XG4gICAgdGhpcy50b3VjaCgpO1xuXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRDb25maXJtYXRpb25LZXkob3BlcmF0aW9uLCBlbGVtZW50VHlwZSk7XG4gICAgbGV0IGNvbmZpcm1hdGlvbiA9IHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5nZXQoa2V5KTtcblxuICAgIC8vIEZhbGwgYmFjayB0byB1bnNjb3BlZCBjb25maXJtYXRpb24gd2hlbiBlbGVtZW50LXR5cGUtc2NvcGVkIGtleSBub3QgZm91bmQuXG4gICAgLy8gQSBzZXNzaW9uLXdpZGUgY29uZmlybWF0aW9uIGZvciBcImNyZWF0ZV9lbGVtZW50XCIgY292ZXJzIFwiY3JlYXRlX2VsZW1lbnQ6c2tpbGxcIiBldGMuXG4gICAgaWYgKCFjb25maXJtYXRpb24gJiYgZWxlbWVudFR5cGUpIHtcbiAgICAgIGNvbmZpcm1hdGlvbiA9IHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5nZXQob3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpcm1hdGlvbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBJbmNyZW1lbnQgdXNlIGNvdW50XG4gICAgY29uZmlybWF0aW9uLnVzZUNvdW50Kys7XG5cbiAgICAvLyBGb3IgQ09ORklSTV9TSU5HTEVfVVNFLCBpbnZhbGlkYXRlIGFmdGVyIGZpcnN0IHVzZVxuICAgIGlmIChjb25maXJtYXRpb24ucGVybWlzc2lvbkxldmVsID09PSAnQ09ORklSTV9TSU5HTEVfVVNFJykge1xuICAgICAgLy8gRGVsZXRlIHdoaWNoZXZlciBrZXkgbWF0Y2hlZCAoc2NvcGVkIG9yIHVuc2NvcGVkKVxuICAgICAgaWYgKHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5oYXMoa2V5KSkge1xuICAgICAgICB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZGVsZXRlKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZGVsZXRlKG9wZXJhdGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpcm1hdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBvcGVyYXRpb24gaGFzIGEgc2Vzc2lvbiBjb25maXJtYXRpb24gV0lUSE9VVCBjb25zdW1pbmcgaXQuXG4gICAqIFVzZSB0aGlzIHRvIGNoZWNrIHN0YXR1cyB3aXRob3V0IGFmZmVjdGluZyB0aGUgY29uZmlybWF0aW9uIHN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gVGhlIG9wZXJhdGlvbiB0byBjaGVja1xuICAgKiBAcGFyYW0gZWxlbWVudFR5cGUgLSBPcHRpb25hbCBlbGVtZW50IHR5cGUgc2NvcGVcbiAgICogQHJldHVybnMgVGhlIGNvbmZpcm1hdGlvbiByZWNvcmQgaWYgZXhpc3RzLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gICAqL1xuICBwZWVrQ29uZmlybWF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBlbGVtZW50VHlwZT86IHN0cmluZyk6IENvbmZpcm1hdGlvblJlY29yZCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRDb25maXJtYXRpb25LZXkob3BlcmF0aW9uLCBlbGVtZW50VHlwZSk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZva2UgYSBjb25maXJtYXRpb24gZm9yIGFuIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIG9wZXJhdGlvbiAtIFRoZSBvcGVyYXRpb24gdG8gcmV2b2tlXG4gICAqIEBwYXJhbSBlbGVtZW50VHlwZSAtIE9wdGlvbmFsIGVsZW1lbnQgdHlwZSBzY29wZVxuICAgKiBAcmV0dXJucyB0cnVlIGlmIGEgY29uZmlybWF0aW9uIHdhcyByZXZva2VkXG4gICAqL1xuICByZXZva2VDb25maXJtYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIGVsZW1lbnRUeXBlPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhpcy50b3VjaCgpO1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0Q29uZmlybWF0aW9uS2V5KG9wZXJhdGlvbiwgZWxlbWVudFR5cGUpO1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZGVsZXRlKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogUmV2b2tlIGFsbCBjb25maXJtYXRpb25zIGZvciB0aGlzIHNlc3Npb24uXG4gICAqIFVzZWZ1bCB3aGVuIHNlY3VyaXR5LXNlbnNpdGl2ZSBjaGFuZ2VzIG9jY3VyLlxuICAgKi9cbiAgcmV2b2tlQWxsQ29uZmlybWF0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoKCk7XG4gICAgdGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBhY3RpdmUgY29uZmlybWF0aW9ucyBmb3IgdGhpcyBzZXNzaW9uLlxuICAgKiBVc2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgYXVkaXQgbG9nZ2luZy5cbiAgICovXG4gIGdldEFjdGl2ZUNvbmZpcm1hdGlvbnMoKTogQ29uZmlybWF0aW9uUmVjb3JkW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy52YWx1ZXMoKSk7XG4gIH1cblxuICAvLyDilIDilIAgQ0xJIEFwcHJvdmFsIFN0b3JlIChJc3N1ZSAjNjI1IFBoYXNlIDMpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDTEkgYXBwcm92YWwgcmVxdWVzdC5cbiAgICogUmV0dXJucyBhIHVuaXF1ZSByZXF1ZXN0IElEIChmb3JtYXQ6IGNsaS08VVVJRHY0PikuXG4gICAqL1xuICBjcmVhdGVDbGlBcHByb3ZhbFJlcXVlc3QoXG4gICAgdG9vbE5hbWU6IHN0cmluZyxcbiAgICB0b29sSW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHJpc2tMZXZlbDogc3RyaW5nLFxuICAgIHJpc2tTY29yZTogbnVtYmVyLFxuICAgIGlycmV2ZXJzaWJsZTogYm9vbGVhbixcbiAgICBkZW55UmVhc29uOiBzdHJpbmcsXG4gICAgcG9saWN5U291cmNlPzogc3RyaW5nLFxuICAgIHR0bE1zPzogbnVtYmVyLFxuICApOiBzdHJpbmcge1xuICAgIHRoaXMudG91Y2goKTtcbiAgICB0aGlzLmV4cGlyZVN0YWxlQXBwcm92YWxzKHRydWUpOyAvLyBGb3JjZSBzd2VlcCBvbiB3cml0ZSBwYXRoIHRvIGVuc3VyZSBjYXBhY2l0eVxuXG4gICAgLy8gTFJVIGV2aWN0aW9uIGF0IG1heCBjYXBhY2l0eVxuICAgIGlmICh0aGlzLnN0YXRlLmNsaUFwcHJvdmFscy5zaXplID49IHRoaXMubWF4Q2xpQXBwcm92YWxzKSB7XG4gICAgICBjb25zdCBvbGRlc3RLZXkgPSB0aGlzLnN0YXRlLmNsaUFwcHJvdmFscy5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgaWYgKG9sZGVzdEtleSkge1xuICAgICAgICB0aGlzLnN0YXRlLmNsaUFwcHJvdmFscy5kZWxldGUob2xkZXN0S2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0SWQgPSBgY2xpLSR7cmFuZG9tVVVJRCgpfWA7XG4gICAgLy8gQ2xhbXAgdHRsTXMgdG8gdmFsaWQgYm91bmRzICgxcy0yNGgpIGlmIHByb3ZpZGVkXG4gICAgY29uc3QgY2xhbXBlZFR0bCA9IHR0bE1zICE9IG51bGxcbiAgICAgID8gTWF0aC5tYXgoTUlOX0FQUFJPVkFMX1RUTF9NUywgTWF0aC5taW4oTUFYX0FQUFJPVkFMX1RUTF9NUywgdHRsTXMpKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVjb3JkOiBDbGlBcHByb3ZhbFJlY29yZCA9IHtcbiAgICAgIHJlcXVlc3RJZCxcbiAgICAgIHRvb2xOYW1lLFxuICAgICAgdG9vbElucHV0LFxuICAgICAgcmlza0xldmVsLFxuICAgICAgcmlza1Njb3JlLFxuICAgICAgaXJyZXZlcnNpYmxlLFxuICAgICAgcmVxdWVzdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGNvbnN1bWVkOiBmYWxzZSxcbiAgICAgIHNjb3BlOiAnc2luZ2xlJyxcbiAgICAgIGRlbnlSZWFzb24sXG4gICAgICBwb2xpY3lTb3VyY2UsXG4gICAgICB0dGxNczogY2xhbXBlZFR0bCxcbiAgICB9O1xuICAgIHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzLnNldChyZXF1ZXN0SWQsIHJlY29yZCk7XG4gICAgcmV0dXJuIHJlcXVlc3RJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHByb3ZlIGEgcGVuZGluZyBDTEkgYXBwcm92YWwgcmVxdWVzdC5cbiAgICogU2V0cyBhcHByb3ZlZEF0LCBhbmQgcHJvbW90ZXMgdG8gc2Vzc2lvbiBhcHByb3ZhbHMgaWYgdG9vbF9zZXNzaW9uIHNjb3BlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgYXBwcm92ZWQgcmVjb3JkLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqL1xuICBhcHByb3ZlQ2xpUmVxdWVzdChyZXF1ZXN0SWQ6IHN0cmluZywgc2NvcGU6IENsaUFwcHJvdmFsU2NvcGUgPSAnc2luZ2xlJyk6IENsaUFwcHJvdmFsUmVjb3JkIHwgdW5kZWZpbmVkIHtcbiAgICB0aGlzLnRvdWNoKCk7XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMuZ2V0KHJlcXVlc3RJZCk7XG4gICAgaWYgKCFyZWNvcmQgfHwgcmVjb3JkLmFwcHJvdmVkQXQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmVjb3JkLmFwcHJvdmVkQXQgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgcmVjb3JkLnNjb3BlID0gc2NvcGU7XG5cbiAgICAvLyBQcm9tb3RlIHRvIHNlc3Npb24gYXBwcm92YWxzIGlmIHRvb2xfc2Vzc2lvbiBzY29wZVxuICAgIGlmIChzY29wZSA9PT0gJ3Rvb2xfc2Vzc2lvbicpIHtcbiAgICAgIHRoaXMuc3RhdGUuY2xpU2Vzc2lvbkFwcHJvdmFscy5zZXQocmVjb3JkLnRvb2xOYW1lLCByZWNvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiByZWNvcmQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSBDTEkgdG9vbCBjYWxsIGhhcyBhIHZhbGlkIGFwcHJvdmFsLlxuICAgKiBDaGVja3Mgc2Vzc2lvbiBhcHByb3ZhbHMgZmlyc3QgKGZhc3QgcGF0aCksIHRoZW4gaW5kaXZpZHVhbCBhcHByb3ZhbHMuXG4gICAqIENvbnN1bWVzIHNpbmdsZS1zY29wZSBhcHByb3ZhbHMgb24gdXNlLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgYXBwcm92YWwgcmVjb3JkLCBvciB1bmRlZmluZWRcbiAgICovXG4gIGNoZWNrQ2xpQXBwcm92YWwodG9vbE5hbWU6IHN0cmluZywgX3Rvb2xJbnB1dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBDbGlBcHByb3ZhbFJlY29yZCB8IHVuZGVmaW5lZCB7XG4gICAgdGhpcy50b3VjaCgpO1xuICAgIHRoaXMuZXhwaXJlU3RhbGVBcHByb3ZhbHMoKTtcblxuICAgIC8vIEZhc3QgcGF0aDogY2hlY2sgc2Vzc2lvbi1zY29wZWQgYXBwcm92YWxzIGJ5IHRvb2wgbmFtZVxuICAgIGNvbnN0IHNlc3Npb25BcHByb3ZhbCA9IHRoaXMuc3RhdGUuY2xpU2Vzc2lvbkFwcHJvdmFscy5nZXQodG9vbE5hbWUpO1xuICAgIGlmIChzZXNzaW9uQXBwcm92YWwpIHtcbiAgICAgIHJldHVybiBzZXNzaW9uQXBwcm92YWw7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaW5kaXZpZHVhbCBhcHByb3ZhbHNcbiAgICBmb3IgKGNvbnN0IFssIHJlY29yZF0gb2YgdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMpIHtcbiAgICAgIGlmIChyZWNvcmQudG9vbE5hbWUgPT09IHRvb2xOYW1lICYmIHJlY29yZC5hcHByb3ZlZEF0ICYmICFyZWNvcmQuY29uc3VtZWQpIHtcbiAgICAgICAgaWYgKHJlY29yZC5zY29wZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICByZWNvcmQuY29uc3VtZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHBlbmRpbmcgKHVuYXBwcm92ZWQpIENMSSBhcHByb3ZhbCByZXF1ZXN0cy5cbiAgICogRm9yY2VzIGV4cGlyeSBzd2VlcCB0byBlbnN1cmUgYWNjdXJhdGUgdXNlci1mYWNpbmcgcmVzdWx0cy5cbiAgICovXG4gIGdldFBlbmRpbmdDbGlBcHByb3ZhbHMoKTogQ2xpQXBwcm92YWxSZWNvcmRbXSB7XG4gICAgdGhpcy5leHBpcmVTdGFsZUFwcHJvdmFscyh0cnVlKTtcbiAgICBjb25zdCBwZW5kaW5nOiBDbGlBcHByb3ZhbFJlY29yZFtdID0gW107XG4gICAgZm9yIChjb25zdCBbLCByZWNvcmRdIG9mIHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzKSB7XG4gICAgICBpZiAoIXJlY29yZC5hcHByb3ZlZEF0KSB7XG4gICAgICAgIHBlbmRpbmcucHVzaChyZWNvcmQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGVuZGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBpcmUgc3RhbGUgYXBwcm92YWwgcmVxdWVzdHMuXG4gICAqIFVzZXMgcGVyLXJlY29yZCB0dGxNcyBpZiBzZXQsIG90aGVyd2lzZSBERUZBVUxUX0FQUFJPVkFMX1RUTF9NUyAoNSBtaW51dGVzKS5cbiAgICpcbiAgICogQHBhcmFtIGZvcmNlIC0gU2tpcCB0aHJvdHRsZSBjaGVjayAodXNlZCBieSB3cml0ZSBwYXRocyB0aGF0IG11c3QgZW5zdXJlIGNhcGFjaXR5KVxuICAgKi9cbiAgcHJpdmF0ZSBleHBpcmVTdGFsZUFwcHJvdmFscyhmb3JjZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBpZiAoIWZvcmNlICYmIG5vdyAtIHRoaXMubGFzdEV4cGlyeVN3ZWVwIDwgRVhQSVJZX1NXRUVQX0lOVEVSVkFMX01TKSByZXR1cm47XG4gICAgdGhpcy5sYXN0RXhwaXJ5U3dlZXAgPSBub3c7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHJlY29yZF0gb2YgdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMpIHtcbiAgICAgIGNvbnN0IHR0bCA9IHJlY29yZC50dGxNcyA/PyBERUZBVUxUX0FQUFJPVkFMX1RUTF9NUztcbiAgICAgIGNvbnN0IGFnZSA9IG5vdyAtIG5ldyBEYXRlKHJlY29yZC5yZXF1ZXN0ZWRBdCkuZ2V0VGltZSgpO1xuICAgICAgaWYgKGFnZSA+IHR0bCAmJiAhcmVjb3JkLmFwcHJvdmVkQXQpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMuZGVsZXRlKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIHN1bW1hcnkgb2YgdGhlIHNlc3Npb24gc3RhdGUuXG4gICAqIFNhZmUgdG8gZXhwb3NlIGZvciBkZWJ1Z2dpbmcgd2l0aG91dCByZXZlYWxpbmcgc2Vuc2l0aXZlIGRhdGEuXG4gICAqL1xuICBnZXRTdW1tYXJ5KCk6IHtcbiAgICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgICBjbGllbnRJbmZvPzogQ2xpZW50SW5mbztcbiAgICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgICBsYXN0QWN0aXZpdHk6IHN0cmluZztcbiAgICBjb25maXJtYXRpb25Db3VudDogbnVtYmVyO1xuICAgIGNsaUFwcHJvdmFsQ291bnQ6IG51bWJlcjtcbiAgICBwZXJtaXNzaW9uUHJvbXB0QWN0aXZlOiBib29sZWFuO1xuICB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2Vzc2lvbklkOiB0aGlzLnN0YXRlLnNlc3Npb25JZCxcbiAgICAgIGNsaWVudEluZm86IHRoaXMuc3RhdGUuY2xpZW50SW5mbyxcbiAgICAgIGNyZWF0ZWRBdDogdGhpcy5zdGF0ZS5jcmVhdGVkQXQsXG4gICAgICBsYXN0QWN0aXZpdHk6IHRoaXMuc3RhdGUubGFzdEFjdGl2aXR5LFxuICAgICAgY29uZmlybWF0aW9uQ291bnQ6IHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5zaXplLFxuICAgICAgY2xpQXBwcm92YWxDb3VudDogdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMuc2l6ZSxcbiAgICAgIHBlcm1pc3Npb25Qcm9tcHRBY3RpdmU6IHRoaXMuc3RhdGUucGVybWlzc2lvblByb21wdEFjdGl2ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgdW5pcXVlIGtleSBmb3IgY29uZmlybWF0aW9uIGxvb2t1cHMuXG4gICAqIENvbWJpbmVzIG9wZXJhdGlvbiBhbmQgb3B0aW9uYWwgZWxlbWVudCB0eXBlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb25maXJtYXRpb25LZXkob3BlcmF0aW9uOiBzdHJpbmcsIGVsZW1lbnRUeXBlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZWxlbWVudFR5cGUgPyBgJHtvcGVyYXRpb259OiR7ZWxlbWVudFR5cGV9YCA6IG9wZXJhdGlvbjtcbiAgfVxufVxuIl19
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2F0ZWtlZXBlclNlc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlcnMvbWNwLWFxbC9HYXRla2VlcGVyU2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBb0MxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gseUVBQXlFO0FBQ3pFLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0FBRWpFLHVEQUF1RDtBQUN2RCxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQztBQUVsRSxzREFBc0Q7QUFDdEQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7QUFFbEMsc0RBQXNEO0FBQ3RELE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBRXZDLHVEQUF1RDtBQUN2RCxNQUFNLHdCQUF3QixHQUFHLE1BQU0sQ0FBQztBQUV4QyxNQUFNLE9BQU8saUJBQWlCO0lBQ1gsS0FBSyxDQUF5QjtJQUM5QixnQkFBZ0IsQ0FBUztJQUN6QixlQUFlLENBQVM7SUFDakMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUU1QixZQUFZLFVBQXVCLEVBQUUsbUJBQTJCLEdBQUcsRUFBRSxrQkFBMEIseUJBQXlCO1FBQ3RILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsU0FBUyxFQUFFLFVBQVUsRUFBRTtZQUN2QixVQUFVO1lBQ1YsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ25DLFlBQVksRUFBRSxJQUFJLElBQUksRUFB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QUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLFdBQW9CO1FBQ2hFLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2F0ZWtlZXBlciBTZXNzaW9uIE1hbmFnZW1lbnRcbiAqXG4gKiBNYW5hZ2VzIHBlci1jb25uZWN0aW9uIHNlc3Npb24gc3RhdGUgZm9yIHRoZSBHYXRla2VlcGVyIFBvbGljeSBFbmdpbmUuXG4gKiBFYWNoIE1DUCBjbGllbnQgY29ubmVjdGlvbiBnZXRzIGEgc2VwYXJhdGUgc2Vzc2lvbiB3aXRoIGlzb2xhdGVkIHN0YXRlLlxuICpcbiAqIENSSVRJQ0FMOiBTZXNzaW9uIHN0YXRlIGlzIElOLU1FTU9SWSBvbmx5LlxuICogLSBDb25maXJtYXRpb25zIGFyZSBOT1QgcGVyc2lzdGVkIHRvIGRpc2tcbiAqIC0gRWFjaCBDbGF1ZGUgQ29kZSAvIENsYXVkZSBEZXNrdG9wIC8gZXRjLiA9IHNlcGFyYXRlIHNlc3Npb25cbiAqIC0gTm8gY3Jvc3Mtc2Vzc2lvbiBwb2xpY3kgbGVha2FnZVxuICogLSBDcmFzaCA9IGZyZXNoIHNlc3Npb24gKHNlY3VyaXR5LWZpcnN0IGRlY2lzaW9uKVxuICovXG5cbmltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHR5cGUgeyBDb25maXJtYXRpb25SZWNvcmQsIFBlcm1pc3Npb25MZXZlbCwgQ2xpQXBwcm92YWxSZWNvcmQsIENsaUFwcHJvdmFsU2NvcGUgfSBmcm9tICcuL0dhdGVrZWVwZXJUeXBlcy5qcyc7XG5pbXBvcnQgeyBlbnYgfSBmcm9tICcuLi8uLi9jb25maWcvZW52LmpzJztcblxuLyoqXG4gKiBDbGllbnQgaW5mb3JtYXRpb24gZnJvbSBNQ1AgY2FwYWJpbGl0aWVzLlxuICogSWRlbnRpZmllcyB3aGljaCBNQ1AgY2xpZW50IGlzIG1ha2luZyByZXF1ZXN0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGllbnRJbmZvIHtcbiAgLyoqIENsaWVudCBuYW1lIChlLmcuLCBcImNsYXVkZS1jb2RlXCIsIFwiY2xhdWRlLWRlc2t0b3BcIikgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQ2xpZW50IHZlcnNpb24gKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlc3Npb24gc3RhdGUgZm9yIGEgc2luZ2xlIE1DUCBjb25uZWN0aW9uLlxuICogVHJhY2tzIGNvbmZpcm1hdGlvbnMgYW5kIGFjdGl2aXR5IGZvciB0aGlzIHNlc3Npb24gb25seS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRla2VlcGVyU2Vzc2lvblN0YXRlIHtcbiAgLyoqIFVuaXF1ZSBzZXNzaW9uIGlkZW50aWZpZXIgKi9cbiAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gIC8qKiBDbGllbnQgaW5mb3JtYXRpb24gZnJvbSBNQ1AgY2FwYWJpbGl0aWVzICovXG4gIGNsaWVudEluZm8/OiBDbGllbnRJbmZvO1xuICAvKiogV2hlbiB0aGUgc2Vzc2lvbiB3YXMgY3JlYXRlZCAqL1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgLyoqIExhc3QgYWN0aXZpdHkgdGltZXN0YW1wICovXG4gIGxhc3RBY3Rpdml0eTogc3RyaW5nO1xuICAvKiogTWFwIG9mIG9wZXJhdGlvbiAtPiBjb25maXJtYXRpb24gcmVjb3JkICovXG4gIGNvbmZpcm1hdGlvbnM6IE1hcDxzdHJpbmcsIENvbmZpcm1hdGlvblJlY29yZD47XG4gIC8qKiBNYXAgb2YgcmVxdWVzdElkIC0+IENMSSBhcHByb3ZhbCByZWNvcmQgKElzc3VlICM2MjUgUGhhc2UgMykgKi9cbiAgY2xpQXBwcm92YWxzOiBNYXA8c3RyaW5nLCBDbGlBcHByb3ZhbFJlY29yZD47XG4gIC8qKiBNYXAgb2YgdG9vbE5hbWUgLT4gc2Vzc2lvbi1zY29wZWQgQ0xJIGFwcHJvdmFsIChJc3N1ZSAjNjI1IFBoYXNlIDMpICovXG4gIGNsaVNlc3Npb25BcHByb3ZhbHM6IE1hcDxzdHJpbmcsIENsaUFwcHJvdmFsUmVjb3JkPjtcbiAgLyoqIFdoZXRoZXIgcGVybWlzc2lvbl9wcm9tcHQgaGFzIGJlZW4gY2FsbGVkIGF0IGxlYXN0IG9uY2UgdGhpcyBzZXNzaW9uIChJc3N1ZSAjNjI1IFBoYXNlIDQpICovXG4gIHBlcm1pc3Npb25Qcm9tcHRBY3RpdmU6IGJvb2xlYW47XG59XG5cbi8qKlxuICogR2F0ZWtlZXBlciBTZXNzaW9uIE1hbmFnZXIuXG4gKiBNYW5hZ2VzIHBlci1jb25uZWN0aW9uIHNlc3Npb24gc3RhdGUgd2l0aCBpc29sYXRlZCBjb25maXJtYXRpb24gdHJhY2tpbmcuXG4gKlxuICogREVTSUdOIE5PVEVTOlxuICogLSBTZXNzaW9uIElEIGlzIGdlbmVyYXRlZCBvbiBNQ1AgY29ubmVjdGlvbiBpbml0aWFsaXphdGlvblxuICogLSBUaWVkIHRvIHRoZSBzcGVjaWZpYyB0cmFuc3BvcnQvY29ubmVjdGlvblxuICogLSBOT1Qgc2hhcmVkIHZpYSBmaWxlc3lzdGVtIChpbi1tZW1vcnkgcGVyIHNlcnZlciBpbnN0YW5jZSlcbiAqIC0gRWFjaCBgY2xhdWRlYCBDTEkgaW52b2NhdGlvbiBzcGF3bnMgc2VwYXJhdGUgTUNQIHNlcnZlciBwcm9jZXNzID0gc2VwYXJhdGUgc2Vzc2lvblxuICpcbiAqIFBST0NFU1MgSVNPTEFUSU9OOlxuICogRWFjaCBDbGF1ZGUgQ29kZSBzZXNzaW9uID0gc2VwYXJhdGUgbm9kZSBwcm9jZXNzICh2ZXJpZmllZClcbiAqIE1DUCBzdGRpbyB0cmFuc3BvcnQgPSBjaGlsZCBwcm9jZXNzIHBlciBjbGllbnQuIE5vIHNoYXJpbmcgcG9zc2libGUuXG4gKlxuICogSFRUUC9IVFRQUyBUUkFOU1BPUlQgQ09OU0lERVJBVElPTlMgKGZvciBmdXR1cmUgaW1wbGVtZW50ZXJzKTpcbiAqIElmIGltcGxlbWVudGluZyBIVFRQL0hUVFBTIHRyYW5zcG9ydCBpbnN0ZWFkIG9mIHN0ZGlvOlxuICogLSBTZXNzaW9uIHN0YXRlIG11c3QgYmUgdGllZCB0byBhdXRoZW50aWNhdGVkIGNsaWVudCBpZGVudGl0eSAoQVBJIGtleSwgdG9rZW4pXG4gKiAtIE11bHRpcGxlIExMTSBjbGllbnRzIGNvdWxkIGNvbm5lY3QgdG8gYSBzaGFyZWQgc2VydmVyICh1bmxpa2Ugc3RkaW8ncyAxOjEpXG4gKiAtIENvbnNpZGVyIHNpZ25lZCBzZXNzaW9uIHRva2VucyAoSldUKSBmb3Igc3RhdGVsZXNzIGRlcGxveW1lbnRzXG4gKiAtIEltcGxlbWVudCBzZXNzaW9uIGV4cGlyYXRpb24gYW5kIHJlbmV3YWwgbWVjaGFuaXNtc1xuICogLSBGb3IgbG9hZC1iYWxhbmNlZCBkZXBsb3ltZW50cywgdXNlIFJlZGlzIG9yIHNpbWlsYXIgZm9yIHNoYXJlZCBzZXNzaW9uIHN0YXRlXG4gKi9cbi8qKiBEZWZhdWx0IG1heGltdW0gbnVtYmVyIG9mIENMSSBhcHByb3ZhbCByZWNvcmRzIGJlZm9yZSBMUlUgZXZpY3Rpb24gKi9cbmNvbnN0IERFRkFVTFRfTUFYX0NMSV9BUFBST1ZBTFMgPSBlbnYuRE9MTEhPVVNFX0NMSV9BUFBST1ZBTF9NQVg7XG5cbi8qKiBEZWZhdWx0IFRUTCBmb3IgQ0xJIGFwcHJvdmFsIHJlY29yZHMgKDUgbWludXRlcykgKi9cbmNvbnN0IERFRkFVTFRfQVBQUk9WQUxfVFRMX01TID0gZW52LkRPTExIT1VTRV9DTElfQVBQUk9WQUxfVFRMX01TO1xuXG4vKiogTWluaW11bSBUVEwgZm9yIENMSSBhcHByb3ZhbCByZWNvcmRzICgxIHNlY29uZCkgKi9cbmNvbnN0IE1JTl9BUFBST1ZBTF9UVExfTVMgPSAxXzAwMDtcblxuLyoqIE1heGltdW0gVFRMIGZvciBDTEkgYXBwcm92YWwgcmVjb3JkcyAoMjQgaG91cnMpICovXG5jb25zdCBNQVhfQVBQUk9WQUxfVFRMX01TID0gODZfNDAwXzAwMDtcblxuLyoqIFRocm90dGxlIGludGVydmFsIGZvciBleHBpcnkgc3dlZXBzICgxMCBzZWNvbmRzKSAqL1xuY29uc3QgRVhQSVJZX1NXRUVQX0lOVEVSVkFMX01TID0gMTBfMDAwO1xuXG5leHBvcnQgY2xhc3MgR2F0ZWtlZXBlclNlc3Npb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlOiBHYXRla2VlcGVyU2Vzc2lvblN0YXRlO1xuICBwcml2YXRlIHJlYWRvbmx5IG1heENvbmZpcm1hdGlvbnM6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXhDbGlBcHByb3ZhbHM6IG51bWJlcjtcbiAgcHJpdmF0ZSBsYXN0RXhwaXJ5U3dlZXAgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudEluZm8/OiBDbGllbnRJbmZvLCBtYXhDb25maXJtYXRpb25zOiBudW1iZXIgPSAxMDAsIG1heENsaUFwcHJvdmFsczogbnVtYmVyID0gREVGQVVMVF9NQVhfQ0xJX0FQUFJPVkFMUykge1xuICAgIHRoaXMubWF4Q29uZmlybWF0aW9ucyA9IG1heENvbmZpcm1hdGlvbnM7XG4gICAgdGhpcy5tYXhDbGlBcHByb3ZhbHMgPSBtYXhDbGlBcHByb3ZhbHM7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHNlc3Npb25JZDogcmFuZG9tVVVJRCgpLFxuICAgICAgY2xpZW50SW5mbyxcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgbGFzdEFjdGl2aXR5OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBjb25maXJtYXRpb25zOiBuZXcgTWFwKCksXG4gICAgICBjbGlBcHByb3ZhbHM6IG5ldyBNYXAoKSxcbiAgICAgIGNsaVNlc3Npb25BcHByb3ZhbHM6IG5ldyBNYXAoKSxcbiAgICAgIHBlcm1pc3Npb25Qcm9tcHRBY3RpdmU6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmlxdWUgc2Vzc2lvbiBpZGVudGlmaWVyLlxuICAgKi9cbiAgZ2V0IHNlc3Npb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlc3Npb25JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNsaWVudCBpbmZvcm1hdGlvbi5cbiAgICovXG4gIGdldCBjbGllbnRJbmZvKCk6IENsaWVudEluZm8gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNsaWVudEluZm87XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzZXNzaW9uIGNyZWF0aW9uIHRpbWVzdGFtcC5cbiAgICovXG4gIGdldCBjcmVhdGVkQXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5jcmVhdGVkQXQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsYXN0IGFjdGl2aXR5IHRpbWVzdGFtcC5cbiAgICovXG4gIGdldCBsYXN0QWN0aXZpdHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5sYXN0QWN0aXZpdHk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBwZXJtaXNzaW9uX3Byb21wdCBoYXMgYmVlbiBpbnZva2VkIGF0IGxlYXN0IG9uY2UgdGhpcyBzZXNzaW9uLlxuICAgKiBVc2VkIGZvciBmYWlsLXNhZmUgZGV0ZWN0aW9uIChJc3N1ZSAjNjI1IFBoYXNlIDQpLlxuICAgKi9cbiAgZ2V0IGlzUGVybWlzc2lvblByb21wdEFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5wZXJtaXNzaW9uUHJvbXB0QWN0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgdGhhdCBwZXJtaXNzaW9uX3Byb21wdCBoYXMgYmVlbiBpbnZva2VkLlxuICAgKiBDYWxsZWQgb24gZmlyc3QgaW52b2NhdGlvbiB0byB0cmFjayB0aGF0IHRoZSBDTEkgY2xpZW50IHN1cHBvcnRzIGl0LlxuICAgKi9cbiAgbWFya1Blcm1pc3Npb25Qcm9tcHRBY3RpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5wZXJtaXNzaW9uUHJvbXB0QWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGxhc3QgYWN0aXZpdHkgdGltZXN0YW1wLlxuICAgKi9cbiAgdG91Y2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5sYXN0QWN0aXZpdHkgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVjb3JkIGEgY29uZmlybWF0aW9uIGZvciBhbiBvcGVyYXRpb24uXG4gICAqIENvbmZpcm1hdGlvbnMgYXJlIHNjb3BlZCB0byB0aGlzIHNlc3Npb24gb25seS5cbiAgICpcbiAgICogQHBhcmFtIG9wZXJhdGlvbiAtIFRoZSBvcGVyYXRpb24gYmVpbmcgY29uZmlybWVkXG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uTGV2ZWwgLSBUaGUgcGVybWlzc2lvbiBsZXZlbCBiZWluZyBjb25maXJtZWRcbiAgICogQHBhcmFtIGVsZW1lbnRUeXBlIC0gT3B0aW9uYWwgZWxlbWVudCB0eXBlIHNjb3BlXG4gICAqL1xuICByZWNvcmRDb25maXJtYXRpb24oXG4gICAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbkxldmVsOiBQZXJtaXNzaW9uTGV2ZWwuQ09ORklSTV9TRVNTSU9OIHwgUGVybWlzc2lvbkxldmVsLkNPTkZJUk1fU0lOR0xFX1VTRSxcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLnRvdWNoKCk7XG5cbiAgICAvLyBFbmZvcmNlIG1heCBjb25maXJtYXRpb25zIChMUlUgZXZpY3Rpb24pXG4gICAgaWYgKHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5zaXplID49IHRoaXMubWF4Q29uZmlybWF0aW9ucykge1xuICAgICAgLy8gUmVtb3ZlIG9sZGVzdCBjb25maXJtYXRpb25cbiAgICAgIGNvbnN0IG9sZGVzdEtleSA9IHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgaWYgKG9sZGVzdEtleSkge1xuICAgICAgICB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZGVsZXRlKG9sZGVzdEtleSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gdGhpcy5nZXRDb25maXJtYXRpb25LZXkob3BlcmF0aW9uLCBlbGVtZW50VHlwZSk7XG4gICAgdGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLnNldChrZXksIHtcbiAgICAgIG9wZXJhdGlvbixcbiAgICAgIGNvbmZpcm1lZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwZXJtaXNzaW9uTGV2ZWwsXG4gICAgICB1c2VDb3VudDogMCxcbiAgICAgIGVsZW1lbnRUeXBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIG9wZXJhdGlvbiBoYXMgYSB2YWxpZCBzZXNzaW9uIGNvbmZpcm1hdGlvbi5cbiAgICogRm9yIENPTkZJUk1fU0lOR0xFX1VTRSwgdGhpcyBpbnZhbGlkYXRlcyB0aGUgY29uZmlybWF0aW9uIGFmdGVyIGNoZWNraW5nLlxuICAgKlxuICAgKiBSQUNFIENPTkRJVElPTiBOT1RFOlxuICAgKiBUaGUgY2hlY2stdGhlbi1kZWxldGUgZm9yIENPTkZJUk1fU0lOR0xFX1VTRSBpcyBzYWZlIGJlY2F1c2U6XG4gICAqIDEuIE5vZGUuanMgaXMgc2luZ2xlLXRocmVhZGVkIC0gbm8gY29uY3VycmVudCBhY2Nlc3MgdG8gTWFwXG4gICAqIDIuIE1DUCByZXF1ZXN0cyBhcmUgcHJvY2Vzc2VkIHNlcXVlbnRpYWxseSBwZXIgY29ubmVjdGlvblxuICAgKiAzLiBFYWNoIHNlc3Npb24gaW5zdGFuY2UgaXMgdGllZCB0byBhIHNpbmdsZSBjbGllbnQgY29ubmVjdGlvblxuICAgKiBJZiB0aGlzIGNvZGUgaXMgZXZlciB1c2VkIGluIGEgbXVsdGktdGhyZWFkZWQgY29udGV4dCBvciB3aXRoIHNoYXJlZFxuICAgKiBzdGF0ZSBhY3Jvc3MgcHJvY2Vzc2VzLCBhdG9taWMgb3BlcmF0aW9ucyB3b3VsZCBiZSByZXF1aXJlZC5cbiAgICpcbiAgICogQHBhcmFtIG9wZXJhdGlvbiAtIFRoZSBvcGVyYXRpb24gdG8gY2hlY2tcbiAgICogQHBhcmFtIGVsZW1lbnRUeXBlIC0gT3B0aW9uYWwgZWxlbWVudCB0eXBlIHNjb3BlXG4gICAqIEByZXR1cm5zIFRoZSBjb25maXJtYXRpb24gcmVjb3JkIGlmIHZhbGlkLCB1bmRlZmluZWQgb3RoZXJ3aXNlXG4gICAqL1xuICBjaGVja0NvbmZpcm1hdGlvbihvcGVyYXRpb246IHN0cmluZywgZWxlbWVudFR5cGU/OiBzdHJpbmcpOiBDb25maXJtYXRpb25SZWNvcmQgfCB1bmRlZmluZWQge1xuICAgIHRoaXMudG91Y2goKTtcblxuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0Q29uZmlybWF0aW9uS2V5KG9wZXJhdGlvbiwgZWxlbWVudFR5cGUpO1xuICAgIGxldCBjb25maXJtYXRpb24gPSB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZ2V0KGtleSk7XG5cbiAgICAvLyBGYWxsIGJhY2sgdG8gdW5zY29wZWQgY29uZmlybWF0aW9uIHdoZW4gZWxlbWVudC10eXBlLXNjb3BlZCBrZXkgbm90IGZvdW5kLlxuICAgIC8vIEEgc2Vzc2lvbi13aWRlIGNvbmZpcm1hdGlvbiBmb3IgXCJjcmVhdGVfZWxlbWVudFwiIGNvdmVycyBcImNyZWF0ZV9lbGVtZW50OnNraWxsXCIgZXRjLlxuICAgIGlmICghY29uZmlybWF0aW9uICYmIGVsZW1lbnRUeXBlKSB7XG4gICAgICBjb25maXJtYXRpb24gPSB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZ2V0KG9wZXJhdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKCFjb25maXJtYXRpb24pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gSW5jcmVtZW50IHVzZSBjb3VudFxuICAgIGNvbmZpcm1hdGlvbi51c2VDb3VudCsrO1xuXG4gICAgLy8gRm9yIENPTkZJUk1fU0lOR0xFX1VTRSwgaW52YWxpZGF0ZSBhZnRlciBmaXJzdCB1c2VcbiAgICBpZiAoY29uZmlybWF0aW9uLnBlcm1pc3Npb25MZXZlbCA9PT0gJ0NPTkZJUk1fU0lOR0xFX1VTRScpIHtcbiAgICAgIC8vIERlbGV0ZSB3aGljaGV2ZXIga2V5IG1hdGNoZWQgKHNjb3BlZCBvciB1bnNjb3BlZClcbiAgICAgIGlmICh0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuaGFzKGtleSkpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLmRlbGV0ZShrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLmRlbGV0ZShvcGVyYXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb25maXJtYXRpb247XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gb3BlcmF0aW9uIGhhcyBhIHNlc3Npb24gY29uZmlybWF0aW9uIFdJVEhPVVQgY29uc3VtaW5nIGl0LlxuICAgKiBVc2UgdGhpcyB0byBjaGVjayBzdGF0dXMgd2l0aG91dCBhZmZlY3RpbmcgdGhlIGNvbmZpcm1hdGlvbiBzdGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIG9wZXJhdGlvbiAtIFRoZSBvcGVyYXRpb24gdG8gY2hlY2tcbiAgICogQHBhcmFtIGVsZW1lbnRUeXBlIC0gT3B0aW9uYWwgZWxlbWVudCB0eXBlIHNjb3BlXG4gICAqIEByZXR1cm5zIFRoZSBjb25maXJtYXRpb24gcmVjb3JkIGlmIGV4aXN0cywgdW5kZWZpbmVkIG90aGVyd2lzZVxuICAgKi9cbiAgcGVla0NvbmZpcm1hdGlvbihvcGVyYXRpb246IHN0cmluZywgZWxlbWVudFR5cGU/OiBzdHJpbmcpOiBDb25maXJtYXRpb25SZWNvcmQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0Q29uZmlybWF0aW9uS2V5KG9wZXJhdGlvbiwgZWxlbWVudFR5cGUpO1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuZ2V0KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogUmV2b2tlIGEgY29uZmlybWF0aW9uIGZvciBhbiBvcGVyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gLSBUaGUgb3BlcmF0aW9uIHRvIHJldm9rZVxuICAgKiBAcGFyYW0gZWxlbWVudFR5cGUgLSBPcHRpb25hbCBlbGVtZW50IHR5cGUgc2NvcGVcbiAgICogQHJldHVybnMgdHJ1ZSBpZiBhIGNvbmZpcm1hdGlvbiB3YXMgcmV2b2tlZFxuICAgKi9cbiAgcmV2b2tlQ29uZmlybWF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBlbGVtZW50VHlwZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRoaXMudG91Y2goKTtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmdldENvbmZpcm1hdGlvbktleShvcGVyYXRpb24sIGVsZW1lbnRUeXBlKTtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5jb25maXJtYXRpb25zLmRlbGV0ZShrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldm9rZSBhbGwgY29uZmlybWF0aW9ucyBmb3IgdGhpcyBzZXNzaW9uLlxuICAgKiBVc2VmdWwgd2hlbiBzZWN1cml0eS1zZW5zaXRpdmUgY2hhbmdlcyBvY2N1ci5cbiAgICovXG4gIHJldm9rZUFsbENvbmZpcm1hdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy50b3VjaCgpO1xuICAgIHRoaXMuc3RhdGUuY29uZmlybWF0aW9ucy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgYWN0aXZlIGNvbmZpcm1hdGlvbnMgZm9yIHRoaXMgc2Vzc2lvbi5cbiAgICogVXNlZnVsIGZvciBkZWJ1Z2dpbmcgYW5kIGF1ZGl0IGxvZ2dpbmcuXG4gICAqL1xuICBnZXRBY3RpdmVDb25maXJtYXRpb25zKCk6IENvbmZpcm1hdGlvblJlY29yZFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMudmFsdWVzKCkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIENMSSBBcHByb3ZhbCBTdG9yZSAoSXNzdWUgIzYyNSBQaGFzZSAzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ0xJIGFwcHJvdmFsIHJlcXVlc3QuXG4gICAqIFJldHVybnMgYSB1bmlxdWUgcmVxdWVzdCBJRCAoZm9ybWF0OiBjbGktPFVVSUR2ND4pLlxuICAgKi9cbiAgY3JlYXRlQ2xpQXBwcm92YWxSZXF1ZXN0KFxuICAgIHRvb2xOYW1lOiBzdHJpbmcsXG4gICAgdG9vbElucHV0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICByaXNrTGV2ZWw6IHN0cmluZyxcbiAgICByaXNrU2NvcmU6IG51bWJlcixcbiAgICBpcnJldmVyc2libGU6IGJvb2xlYW4sXG4gICAgZGVueVJlYXNvbjogc3RyaW5nLFxuICAgIHBvbGljeVNvdXJjZT86IHN0cmluZyxcbiAgICB0dGxNcz86IG51bWJlcixcbiAgKTogc3RyaW5nIHtcbiAgICB0aGlzLnRvdWNoKCk7XG4gICAgdGhpcy5leHBpcmVTdGFsZUFwcHJvdmFscyh0cnVlKTsgLy8gRm9yY2Ugc3dlZXAgb24gd3JpdGUgcGF0aCB0byBlbnN1cmUgY2FwYWNpdHlcblxuICAgIC8vIExSVSBldmljdGlvbiBhdCBtYXggY2FwYWNpdHlcbiAgICBpZiAodGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMuc2l6ZSA+PSB0aGlzLm1heENsaUFwcHJvdmFscykge1xuICAgICAgY29uc3Qgb2xkZXN0S2V5ID0gdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMua2V5cygpLm5leHQoKS52YWx1ZTtcbiAgICAgIGlmIChvbGRlc3RLZXkpIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5jbGlBcHByb3ZhbHMuZGVsZXRlKG9sZGVzdEtleSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdElkID0gYGNsaS0ke3JhbmRvbVVVSUQoKX1gO1xuICAgIC8vIENsYW1wIHR0bE1zIHRvIHZhbGlkIGJvdW5kcyAoMXMtMjRoKSBpZiBwcm92aWRlZFxuICAgIGNvbnN0IGNsYW1wZWRUdGwgPSB0dGxNcyAhPSBudWxsXG4gICAgICA/IE1hdGgubWF4KE1JTl9BUFBST1ZBTF9UVExfTVMsIE1hdGgubWluKE1BWF9BUFBST1ZBTF9UVExfTVMsIHR0bE1zKSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlY29yZDogQ2xpQXBwcm92YWxSZWNvcmQgPSB7XG4gICAgICByZXF1ZXN0SWQsXG4gICAgICB0b29sTmFtZSxcbiAgICAgIHRvb2xJbnB1dCxcbiAgICAgIHJpc2tMZXZlbCxcbiAgICAgIHJpc2tTY29yZSxcbiAgICAgIGlycmV2ZXJzaWJsZSxcbiAgICAgIHJlcXVlc3RlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBjb25zdW1lZDogZmFsc2UsXG4gICAgICBzY29wZTogJ3NpbmdsZScsXG4gICAgICBkZW55UmVhc29uLFxuICAgICAgcG9saWN5U291cmNlLFxuICAgICAgdHRsTXM6IGNsYW1wZWRUdGwsXG4gICAgfTtcbiAgICB0aGlzLnN0YXRlLmNsaUFwcHJvdmFscy5zZXQocmVxdWVzdElkLCByZWNvcmQpO1xuICAgIHJldHVybiByZXF1ZXN0SWQ7XG4gIH1cblxuICAvKipcbiAgICogQXBwcm92ZSBhIHBlbmRpbmcgQ0xJIGFwcHJvdmFsIHJlcXVlc3QuXG4gICAqIFNldHMgYXBwcm92ZWRBdCwgYW5kIHByb21vdGVzIHRvIHNlc3Npb24gYXBwcm92YWxzIGlmIHRvb2xfc2Vzc2lvbiBzY29wZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFwcHJvdmVkIHJlY29yZCwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgYXBwcm92ZUNsaVJlcXVlc3QocmVxdWVzdElkOiBzdHJpbmcsIHNjb3BlOiBDbGlBcHByb3ZhbFNjb3BlID0gJ3NpbmdsZScpOiBDbGlBcHByb3ZhbFJlY29yZCB8IHVuZGVmaW5lZCB7XG4gICAgdGhpcy50b3VjaCgpO1xuICAgIGNvbnN0IHJlY29yZCA9IHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzLmdldChyZXF1ZXN0SWQpO1xuICAgIGlmICghcmVjb3JkIHx8IHJlY29yZC5hcHByb3ZlZEF0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJlY29yZC5hcHByb3ZlZEF0ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgIHJlY29yZC5zY29wZSA9IHNjb3BlO1xuXG4gICAgLy8gUHJvbW90ZSB0byBzZXNzaW9uIGFwcHJvdmFscyBpZiB0b29sX3Nlc3Npb24gc2NvcGVcbiAgICBpZiAoc2NvcGUgPT09ICd0b29sX3Nlc3Npb24nKSB7XG4gICAgICB0aGlzLnN0YXRlLmNsaVNlc3Npb25BcHByb3ZhbHMuc2V0KHJlY29yZC50b29sTmFtZSwgcmVjb3JkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVjb3JkO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgQ0xJIHRvb2wgY2FsbCBoYXMgYSB2YWxpZCBhcHByb3ZhbC5cbiAgICogQ2hlY2tzIHNlc3Npb24gYXBwcm92YWxzIGZpcnN0IChmYXN0IHBhdGgpLCB0aGVuIGluZGl2aWR1YWwgYXBwcm92YWxzLlxuICAgKiBDb25zdW1lcyBzaW5nbGUtc2NvcGUgYXBwcm92YWxzIG9uIHVzZS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIG1hdGNoaW5nIGFwcHJvdmFsIHJlY29yZCwgb3IgdW5kZWZpbmVkXG4gICAqL1xuICBjaGVja0NsaUFwcHJvdmFsKHRvb2xOYW1lOiBzdHJpbmcsIF90b29sSW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogQ2xpQXBwcm92YWxSZWNvcmQgfCB1bmRlZmluZWQge1xuICAgIHRoaXMudG91Y2goKTtcbiAgICB0aGlzLmV4cGlyZVN0YWxlQXBwcm92YWxzKCk7XG5cbiAgICAvLyBGYXN0IHBhdGg6IGNoZWNrIHNlc3Npb24tc2NvcGVkIGFwcHJvdmFscyBieSB0b29sIG5hbWVcbiAgICBjb25zdCBzZXNzaW9uQXBwcm92YWwgPSB0aGlzLnN0YXRlLmNsaVNlc3Npb25BcHByb3ZhbHMuZ2V0KHRvb2xOYW1lKTtcbiAgICBpZiAoc2Vzc2lvbkFwcHJvdmFsKSB7XG4gICAgICByZXR1cm4gc2Vzc2lvbkFwcHJvdmFsO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGluZGl2aWR1YWwgYXBwcm92YWxzXG4gICAgZm9yIChjb25zdCBbLCByZWNvcmRdIG9mIHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzKSB7XG4gICAgICBpZiAocmVjb3JkLnRvb2xOYW1lID09PSB0b29sTmFtZSAmJiByZWNvcmQuYXBwcm92ZWRBdCAmJiAhcmVjb3JkLmNvbnN1bWVkKSB7XG4gICAgICAgIGlmIChyZWNvcmQuc2NvcGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgcmVjb3JkLmNvbnN1bWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVjb3JkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBwZW5kaW5nICh1bmFwcHJvdmVkKSBDTEkgYXBwcm92YWwgcmVxdWVzdHMuXG4gICAqIEZvcmNlcyBleHBpcnkgc3dlZXAgdG8gZW5zdXJlIGFjY3VyYXRlIHVzZXItZmFjaW5nIHJlc3VsdHMuXG4gICAqL1xuICBnZXRQZW5kaW5nQ2xpQXBwcm92YWxzKCk6IENsaUFwcHJvdmFsUmVjb3JkW10ge1xuICAgIHRoaXMuZXhwaXJlU3RhbGVBcHByb3ZhbHModHJ1ZSk7XG4gICAgY29uc3QgcGVuZGluZzogQ2xpQXBwcm92YWxSZWNvcmRbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgWywgcmVjb3JkXSBvZiB0aGlzLnN0YXRlLmNsaUFwcHJvdmFscykge1xuICAgICAgaWYgKCFyZWNvcmQuYXBwcm92ZWRBdCkge1xuICAgICAgICBwZW5kaW5nLnB1c2gocmVjb3JkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBlbmRpbmc7XG4gIH1cblxuICAvKipcbiAgICogRXhwaXJlIHN0YWxlIGFwcHJvdmFsIHJlcXVlc3RzLlxuICAgKiBVc2VzIHBlci1yZWNvcmQgdHRsTXMgaWYgc2V0LCBvdGhlcndpc2UgREVGQVVMVF9BUFBST1ZBTF9UVExfTVMgKDUgbWludXRlcykuXG4gICAqXG4gICAqIEBwYXJhbSBmb3JjZSAtIFNraXAgdGhyb3R0bGUgY2hlY2sgKHVzZWQgYnkgd3JpdGUgcGF0aHMgdGhhdCBtdXN0IGVuc3VyZSBjYXBhY2l0eSlcbiAgICovXG4gIHByaXZhdGUgZXhwaXJlU3RhbGVBcHByb3ZhbHMoZm9yY2UgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKCFmb3JjZSAmJiBub3cgLSB0aGlzLmxhc3RFeHBpcnlTd2VlcCA8IEVYUElSWV9TV0VFUF9JTlRFUlZBTF9NUykgcmV0dXJuO1xuICAgIHRoaXMubGFzdEV4cGlyeVN3ZWVwID0gbm93O1xuXG4gICAgZm9yIChjb25zdCBba2V5LCByZWNvcmRdIG9mIHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzKSB7XG4gICAgICBjb25zdCB0dGwgPSByZWNvcmQudHRsTXMgPz8gREVGQVVMVF9BUFBST1ZBTF9UVExfTVM7XG4gICAgICBjb25zdCBhZ2UgPSBub3cgLSBuZXcgRGF0ZShyZWNvcmQucmVxdWVzdGVkQXQpLmdldFRpbWUoKTtcbiAgICAgIC8vIEV2aWN0IHN0YWxlIHBlbmRpbmcgcmVxdWVzdHMgQU5EIGNvbnN1bWVkIHNpbmdsZS11c2UgYXBwcm92YWxzICgjMTc4MilcbiAgICAgIGlmIChhZ2UgPiB0dGwgJiYgKCFyZWNvcmQuYXBwcm92ZWRBdCB8fCByZWNvcmQuY29uc3VtZWQpKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzLmRlbGV0ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzdW1tYXJ5IG9mIHRoZSBzZXNzaW9uIHN0YXRlLlxuICAgKiBTYWZlIHRvIGV4cG9zZSBmb3IgZGVidWdnaW5nIHdpdGhvdXQgcmV2ZWFsaW5nIHNlbnNpdGl2ZSBkYXRhLlxuICAgKi9cbiAgZ2V0U3VtbWFyeSgpOiB7XG4gICAgc2Vzc2lvbklkOiBzdHJpbmc7XG4gICAgY2xpZW50SW5mbz86IENsaWVudEluZm87XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gICAgbGFzdEFjdGl2aXR5OiBzdHJpbmc7XG4gICAgY29uZmlybWF0aW9uQ291bnQ6IG51bWJlcjtcbiAgICBjbGlBcHByb3ZhbENvdW50OiBudW1iZXI7XG4gICAgcGVybWlzc2lvblByb21wdEFjdGl2ZTogYm9vbGVhbjtcbiAgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlc3Npb25JZDogdGhpcy5zdGF0ZS5zZXNzaW9uSWQsXG4gICAgICBjbGllbnRJbmZvOiB0aGlzLnN0YXRlLmNsaWVudEluZm8sXG4gICAgICBjcmVhdGVkQXQ6IHRoaXMuc3RhdGUuY3JlYXRlZEF0LFxuICAgICAgbGFzdEFjdGl2aXR5OiB0aGlzLnN0YXRlLmxhc3RBY3Rpdml0eSxcbiAgICAgIGNvbmZpcm1hdGlvbkNvdW50OiB0aGlzLnN0YXRlLmNvbmZpcm1hdGlvbnMuc2l6ZSxcbiAgICAgIGNsaUFwcHJvdmFsQ291bnQ6IHRoaXMuc3RhdGUuY2xpQXBwcm92YWxzLnNpemUsXG4gICAgICBwZXJtaXNzaW9uUHJvbXB0QWN0aXZlOiB0aGlzLnN0YXRlLnBlcm1pc3Npb25Qcm9tcHRBY3RpdmUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIHVuaXF1ZSBrZXkgZm9yIGNvbmZpcm1hdGlvbiBsb29rdXBzLlxuICAgKiBDb21iaW5lcyBvcGVyYXRpb24gYW5kIG9wdGlvbmFsIGVsZW1lbnQgdHlwZS5cbiAgICovXG4gIHByaXZhdGUgZ2V0Q29uZmlybWF0aW9uS2V5KG9wZXJhdGlvbjogc3RyaW5nLCBlbGVtZW50VHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVsZW1lbnRUeXBlID8gYCR7b3BlcmF0aW9ufToke2VsZW1lbnRUeXBlfWAgOiBvcGVyYXRpb247XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"MCPAQLHandler.d.ts","sourceRoot":"","sources":["../../../src/handlers/mcp-aql/MCPAQLHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MCPAQLHandler.d.ts","sourceRoot":"","sources":["../../../src/handlers/mcp-aql/MCPAQLHandler.ts"],"names":[],"mappings":"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"}