@mecanizou/telemetry-hub 1.3.3 → 1.3.4

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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.3.4](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.3.3...v1.3.4) (2026-01-21)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * ajust pass params to logger ([89fb843](https://github.com/mecanizou-eco/telemetry-hub/commit/89fb843cae8371686e3b64741afe71a74e789754))
7
+
1
8
  ## [1.3.3](https://github.com/mecanizou-eco/telemetry-hub/compare/v1.3.2...v1.3.3) (2026-01-21)
2
9
 
3
10
 
@@ -26,6 +26,8 @@ class StandardLogger {
26
26
  'span.id': this.spanContext.spanContext().spanId,
27
27
  'function.name': (scopeAttributes === null || scopeAttributes === void 0 ? void 0 : scopeAttributes['function.name']) || 'unknown-function',
28
28
  'function.invocation_id': (scopeAttributes === null || scopeAttributes === void 0 ? void 0 : scopeAttributes['function.invocation_id']) || 'unknown-invocation-id',
29
+ 'request.id': (scopeAttributes === null || scopeAttributes === void 0 ? void 0 : scopeAttributes['request.id']) || 'unknown-request-id',
30
+ 'route.key': (scopeAttributes === null || scopeAttributes === void 0 ? void 0 : scopeAttributes['route.key']) || 'unknown-route-key',
29
31
  };
30
32
  this.environment = (0, environment_1.getEnvironmentStage)();
31
33
  }
@@ -124,6 +126,12 @@ class StandardLogger {
124
126
  attributes['origin'] = data.execution.origin;
125
127
  if (data.execution.routeKey)
126
128
  attributes['route.key'] = data.execution.routeKey;
129
+ if (data.execution.loggedUser) {
130
+ if (data.execution.loggedUser.uid)
131
+ attributes['logged_user.uid'] = data.execution.loggedUser.uid;
132
+ if (data.execution.loggedUser.email)
133
+ attributes['logged_user.email'] = data.execution.loggedUser.email;
134
+ }
127
135
  }
128
136
  if (data.performance) {
129
137
  if (data.performance.durationMs)
@@ -138,4 +146,4 @@ class StandardLogger {
138
146
  }
139
147
  }
140
148
  exports.StandardLogger = StandardLogger;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFpRTtBQUlqRSwrQ0FBb0Q7QUFZcEQsTUFBYSxjQUFjO0lBUXpCLFlBQ0UsTUFBYyxFQUNkLE1BQXVCLEVBQ3ZCLGVBQTRCO1FBUmIsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQVUzRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVk7WUFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWTtZQUMxQixDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFFdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU87WUFDbEQsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTTtZQUNoRCxlQUFlLEVBQUUsQ0FBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUcsZUFBZSxDQUFDLEtBQUksa0JBQWtCO1lBQ3pFLHdCQUF3QixFQUN0QixDQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRyx3QkFBd0IsQ0FBQyxLQUFJLHVCQUF1QjtTQUN6RSxDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFBLGlDQUFtQixHQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVLLFFBQVEsQ0FBQyxJQUFlOztZQUM1QixN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LCBMb2dnZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGktbG9ncyc7XG5pbXBvcnQgeyBJU3RhbmRhcmRMb2dnZXIsIFN0YW5kYXJkTG9nRGF0YSB9IGZyb20gJy4vbG9nZ2VyLXR5cGVzJztcbmltcG9ydCB7IElTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4vdHJhY2VyLXR5cGVzJztcbmltcG9ydCB7IEF0dHJpYnV0ZXMsIFNwYW4gfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuaW1wb3J0IHsgZ2V0RW52aXJvbm1lbnRTdGFnZSB9IGZyb20gJy4vZW52aXJvbm1lbnQnO1xuXG5pbnRlcmZhY2UgTG9nUGFyYW1zIGV4dGVuZHMgT21pdDxcbiAgU3RhbmRhcmRMb2dEYXRhLFxuICAnc2V2ZXJpdHknIHwgJ3RpbWVzdGFtcCcgfCAnc2VydmljZU5hbWUnIHwgJ2Vudmlyb25tZW50J1xuPiB7XG4gIGVudmlyb25tZW50PzogU3RhbmRhcmRMb2dEYXRhWydlbnZpcm9ubWVudCddO1xufVxuLyoqXG4gKiBMb2dnZXIgY29yZSBxdWUgaW1wbGVtZW50YSBvIHBhZHLDo28gZGUgbG9ncyBlc3RydXR1cmFkb3MuXG4gKiBSZWNlYmUgdW0gTG9nZ2VyUHJvdmlkZXIgZG8gT3BlblRlbGVtZXRyeSBwYXJhIGVtaXRpciBvcyBsb2dzLlxuICovXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRMb2dnZXIgaW1wbGVtZW50cyBJU3RhbmRhcmRMb2dnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYWNlcjogSVN0YW5kYXJkVHJhY2VyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgc3BhbkNvbnRleHQ6IFNwYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBkZWZhdWx0U2VydmljZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBsb2dnZXI6IExvZ2dlcixcbiAgICB0cmFjZXI6IElTdGFuZGFyZFRyYWNlcixcbiAgICBzY29wZUF0dHJpYnV0ZXM/OiBBdHRyaWJ1dGVzXG4gICkge1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMudHJhY2VyID0gdHJhY2VyO1xuICAgIHRoaXMuc3BhbkNvbnRleHQgPSB0aGlzLnRyYWNlci5nZXRUcmFjZXIoKS5zdGFydFNwYW4oJ2luaXQtbG9nZ2VyJyk7XG4gICAgdGhpcy5kZWZhdWx0U2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUVcbiAgICAgID8gcHJvY2Vzcy5lbnYuU0VSVklDRV9OQU1FXG4gICAgICA6ICd1bmtub3duLXNlcnZpY2UnO1xuXG4gICAgdGhpcy5kZWZhdWx0QXR0cmlidXRlcyA9IHtcbiAgICAgICd0cmFjZS5pZCc6IHRoaXMuc3BhbkNvbnRleHQuc3BhbkNvbnRleHQoKS50cmFjZUlkLFxuICAgICAgJ3NwYW4uaWQnOiB0aGlzLnNwYW5Db250ZXh0LnNwYW5Db250ZXh0KCkuc3BhbklkLFxuICAgICAgJ2Z1bmN0aW9uLm5hbWUnOiBzY29wZUF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duLWZ1bmN0aW9uJyxcbiAgICAgICdmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJzpcbiAgICAgICAgc2NvcGVBdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXSB8fCAndW5rbm93bi1pbnZvY2F0aW9uLWlkJyxcbiAgICB9O1xuXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGdldEVudmlyb25tZW50U3RhZ2UoKTtcbiAgfVxuXG4gIGFzeW5jIGxvZ0Vycm9yKGRhdGE6IExvZ1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nKHtcbiAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LFxuICAgICAgLi4uZGF0YSxcbiAgICAgIHNldmVyaXR5OiAnRVJST1InLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9nSW5mbyhkYXRhOiBMb2dQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgIC4uLmRhdGEsXG4gICAgICBzZXZlcml0eTogJ0lORk8nLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9nV2FybihkYXRhOiBMb2dQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgIC4uLmRhdGEsXG4gICAgICBzZXZlcml0eTogJ1dBUk4nLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9nRGVidWcoZGF0YTogTG9nUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coe1xuICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnQsXG4gICAgICAuLi5kYXRhLFxuICAgICAgc2V2ZXJpdHk6ICdERUJVRycsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvZyhcbiAgICBkYXRhOiBPbWl0PFN0YW5kYXJkTG9nRGF0YSwgJ3RpbWVzdGFtcCc+ICYge1xuICAgICAgc2V2ZXJpdHk6IFN0YW5kYXJkTG9nRGF0YVsnc2V2ZXJpdHknXTtcbiAgICB9XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZ1bGxEYXRhOiBTdGFuZGFyZExvZ0RhdGEgPSB7XG4gICAgICAuLi5kYXRhLFxuICAgICAgc2VydmljZU5hbWU6IGRhdGEuc2VydmljZU5hbWUgfHwgdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2V2ZXJpdHlNYXAgPSB7XG4gICAgICBFUlJPUjogU2V2ZXJpdHlOdW1iZXIuRVJST1IsXG4gICAgICBXQVJOOiBTZXZlcml0eU51bWJlci5XQVJOLFxuICAgICAgSU5GTzogU2V2ZXJpdHlOdW1iZXIuSU5GTyxcbiAgICAgIERFQlVHOiBTZXZlcml0eU51bWJlci5ERUJVRyxcbiAgICB9O1xuXG4gICAgY29uc3QgbG9nUmVjb3JkID0ge1xuICAgICAgc2V2ZXJpdHlOdW1iZXI6IHNldmVyaXR5TWFwW2Z1bGxEYXRhLnNldmVyaXR5XSxcbiAgICAgIHNldmVyaXR5VGV4dDogZnVsbERhdGEuc2V2ZXJpdHksXG4gICAgICBib2R5OiBmdWxsRGF0YS5tZXNzYWdlLFxuICAgICAgYXR0cmlidXRlczogdGhpcy5idWlsZEF0dHJpYnV0ZXMoZnVsbERhdGEpLFxuICAgIH07XG5cbiAgICB0aGlzLmxvZ2dlci5lbWl0KGxvZ1JlY29yZCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQXR0cmlidXRlcyhkYXRhOiBTdGFuZGFyZExvZ0RhdGEpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge1xuICAgICAgdGltZXN0YW1wOiBkYXRhLnRpbWVzdGFtcCxcbiAgICAgICdzZXJ2aWNlLm5hbWUnOiBkYXRhLnNlcnZpY2VOYW1lLFxuICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IGRhdGEuZW52aXJvbm1lbnQsXG4gICAgfTtcblxuICAgIC8vIEluZm9ybWHDp8O1ZXMgZG8gZXJyb1xuICAgIGlmIChkYXRhLmVycm9yKSB7XG4gICAgICBhdHRyaWJ1dGVzWydlcnJvci50eXBlJ10gPSBkYXRhLmVycm9yLm5hbWU7XG4gICAgICBhdHRyaWJ1dGVzWydlcnJvci5tZXNzYWdlJ10gPSBkYXRhLmVycm9yLm1lc3NhZ2U7XG4gICAgICBhdHRyaWJ1dGVzWydlcnJvci5zdGFjayddID0gZGF0YS5lcnJvci5zdGFjayB8fCAnJztcbiAgICB9XG5cbiAgICAvLyBIVFRQXG4gICAgaWYgKGRhdGEuaHR0cCkge1xuICAgICAgaWYgKGRhdGEuaHR0cC5tZXRob2QpIGF0dHJpYnV0ZXNbJ2h0dHAubWV0aG9kJ10gPSBkYXRhLmh0dHAubWV0aG9kO1xuICAgICAgaWYgKGRhdGEuaHR0cC51cmwpIGF0dHJpYnV0ZXNbJ2h0dHAudXJsJ10gPSBkYXRhLmh0dHAudXJsO1xuICAgICAgaWYgKGRhdGEuaHR0cC5lbmRwb2ludCkgYXR0cmlidXRlc1snaHR0cC5lbmRwb2ludCddID0gZGF0YS5odHRwLmVuZHBvaW50O1xuICAgICAgaWYgKGRhdGEuaHR0cC5zdGF0dXNDb2RlKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLnN0YXR1c19jb2RlJ10gPSBkYXRhLmh0dHAuc3RhdHVzQ29kZTtcbiAgICAgIGlmIChkYXRhLmh0dHAuaGVhZGVycylcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5oZWFkZXJzJ10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAuaGVhZGVycyk7XG4gICAgICBpZiAoZGF0YS5odHRwLmJvZHkpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuYm9keSddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLmJvZHkpO1xuICAgICAgaWYgKGRhdGEuaHR0cC5wYXJhbXMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAucGFyYW1zJ10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAucGFyYW1zKTtcbiAgICAgIGlmIChkYXRhLmh0dHAucXVlcnkpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAucXVlcnknXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5xdWVyeSk7XG4gICAgICBpZiAoZGF0YS5odHRwLmFnZW50KSBhdHRyaWJ1dGVzWydodHRwLnVzZXJfYWdlbnQnXSA9IGRhdGEuaHR0cC5hZ2VudDtcbiAgICB9XG5cbiAgICAvLyBVc3XDoXJpb1xuICAgIGlmIChkYXRhLnVzZXIpIHtcbiAgICAgIGlmIChkYXRhLnVzZXIudWlkKSBhdHRyaWJ1dGVzWyd1c2VyLnVpZCddID0gZGF0YS51c2VyLnVpZDtcbiAgICAgIGlmIChkYXRhLnVzZXIuZW1haWwpIGF0dHJpYnV0ZXNbJ3VzZXIuZW1haWwnXSA9IGRhdGEudXNlci5lbWFpbDtcbiAgICB9XG5cbiAgICAvLyBFeGVjdcOnw6NvXG4gICAgaWYgKGRhdGEuZXhlY3V0aW9uKSB7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24ucmVxdWVzdElkKVxuICAgICAgICBhdHRyaWJ1dGVzWydyZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uYXdzUmVxdWVzdElkKVxuICAgICAgICBhdHRyaWJ1dGVzWydhd3MucmVxdWVzdC5pZCddID0gZGF0YS5leGVjdXRpb24uYXdzUmVxdWVzdElkO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmZ1bmN0aW9uTmFtZSlcbiAgICAgICAgYXR0cmlidXRlc1snZnVuY3Rpb24ubmFtZSddID0gZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lO1xuICAgICAgdGhpcy5kZWZhdWx0QXR0cmlidXRlc1snZnVuY3Rpb24ubmFtZSddID0gZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmludm9jYXRpb25JZClcbiAgICAgICAgYXR0cmlidXRlc1snZnVuY3Rpb24uaW52b2NhdGlvbl9pZCddID0gZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkO1xuICAgICAgdGhpcy5kZWZhdWx0QXR0cmlidXRlc1snZnVuY3Rpb24uaW52b2NhdGlvbl9pZCddID1cbiAgICAgICAgZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXIpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubmFtZSddID0gZGF0YS5leGVjdXRpb24uY29udHJvbGxlcjtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kKVxuICAgICAgICBhdHRyaWJ1dGVzWydjb250cm9sbGVyLm1ldGhvZCddID0gZGF0YS5leGVjdXRpb24uY29udHJvbGxlck1ldGhvZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5vcmlnaW4pIGF0dHJpYnV0ZXNbJ29yaWdpbiddID0gZGF0YS5leGVjdXRpb24ub3JpZ2luO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLnJvdXRlS2V5KVxuICAgICAgICBhdHRyaWJ1dGVzWydyb3V0ZS5rZXknXSA9IGRhdGEuZXhlY3V0aW9uLnJvdXRlS2V5O1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1hbmNlXG4gICAgaWYgKGRhdGEucGVyZm9ybWFuY2UpIHtcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLmR1cmF0aW9uTXMpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2R1cmF0aW9uLm1zJ10gPSBkYXRhLnBlcmZvcm1hbmNlLmR1cmF0aW9uTXM7XG4gICAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZS5zdWNjZXNzICE9PSB1bmRlZmluZWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2V4ZWN1dGlvbi5zdWNjZXNzJ10gPSBkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgLy8gQ29udGV4dG8gYWRpY2lvbmFsXG4gICAgaWYgKGRhdGEuY29udGV4dCkge1xuICAgICAgYXR0cmlidXRlc1snY29udGV4dCddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5jb250ZXh0KTtcbiAgICB9XG5cbiAgICAvLyBGaWx0cmFyIHZhbG9yZXMgdW5kZWZpbmVkL251bGxcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoeyAuLi50aGlzLmRlZmF1bHRBdHRyaWJ1dGVzLCAuLi5hdHRyaWJ1dGVzIH0pLmZpbHRlcihcbiAgICAgICAgKFssIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbFxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFpRTtBQUlqRSwrQ0FBb0Q7QUFZcEQsTUFBYSxjQUFjO0lBUXpCLFlBQ0UsTUFBYyxFQUNkLE1BQXVCLEVBQ3ZCLGVBQTRCO1FBUmIsc0JBQWlCLEdBQXdCLEVBQUUsQ0FBQztRQVUzRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVk7WUFDaEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWTtZQUMxQixDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFFdEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU87WUFDbEQsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTTtZQUNoRCxlQUFlLEVBQUUsQ0FBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUcsZUFBZSxDQUFDLEtBQUksa0JBQWtCO1lBQ3pFLHdCQUF3QixFQUN0QixDQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRyx3QkFBd0IsQ0FBQyxLQUFJLHVCQUF1QjtZQUN4RSxZQUFZLEVBQUUsQ0FBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUcsWUFBWSxDQUFDLEtBQUksb0JBQW9CO1lBQ3JFLFdBQVcsRUFBRSxDQUFBLGVB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QUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDL0QsQ0FBQztRQUdELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBR0QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxpQ0FBTSxJQUFJLENBQUMsaUJBQWlCLEdBQUssVUFBVSxFQUFHLENBQUMsTUFBTSxDQUNqRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUNyRCxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2TEQsd0NBdUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V2ZXJpdHlOdW1iZXIsIExvZ2dlciB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaS1sb2dzJztcbmltcG9ydCB7IElTdGFuZGFyZExvZ2dlciwgU3RhbmRhcmRMb2dEYXRhIH0gZnJvbSAnLi9sb2dnZXItdHlwZXMnO1xuaW1wb3J0IHsgSVN0YW5kYXJkVHJhY2VyIH0gZnJvbSAnLi90cmFjZXItdHlwZXMnO1xuaW1wb3J0IHsgQXR0cmlidXRlcywgU3BhbiB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2FwaSc7XG5pbXBvcnQgeyBnZXRFbnZpcm9ubWVudFN0YWdlIH0gZnJvbSAnLi9lbnZpcm9ubWVudCc7XG5cbmludGVyZmFjZSBMb2dQYXJhbXMgZXh0ZW5kcyBPbWl0PFxuICBTdGFuZGFyZExvZ0RhdGEsXG4gICdzZXZlcml0eScgfCAndGltZXN0YW1wJyB8ICdzZXJ2aWNlTmFtZScgfCAnZW52aXJvbm1lbnQnXG4+IHtcbiAgZW52aXJvbm1lbnQ/OiBTdGFuZGFyZExvZ0RhdGFbJ2Vudmlyb25tZW50J107XG59XG4vKipcbiAqIExvZ2dlciBjb3JlIHF1ZSBpbXBsZW1lbnRhIG8gcGFkcsOjbyBkZSBsb2dzIGVzdHJ1dHVyYWRvcy5cbiAqIFJlY2ViZSB1bSBMb2dnZXJQcm92aWRlciBkbyBPcGVuVGVsZW1ldHJ5IHBhcmEgZW1pdGlyIG9zIGxvZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZExvZ2dlciBpbXBsZW1lbnRzIElTdGFuZGFyZExvZ2dlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhY2VyOiBJU3RhbmRhcmRUcmFjZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBzcGFuQ29udGV4dDogU3BhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBwcml2YXRlIGRlZmF1bHRTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGxvZ2dlcjogTG9nZ2VyLFxuICAgIHRyYWNlcjogSVN0YW5kYXJkVHJhY2VyLFxuICAgIHNjb3BlQXR0cmlidXRlcz86IEF0dHJpYnV0ZXNcbiAgKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gICAgdGhpcy50cmFjZXIgPSB0cmFjZXI7XG4gICAgdGhpcy5zcGFuQ29udGV4dCA9IHRoaXMudHJhY2VyLmdldFRyYWNlcigpLnN0YXJ0U3BhbignaW5pdC1sb2dnZXInKTtcbiAgICB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSA9IHByb2Nlc3MuZW52LlNFUlZJQ0VfTkFNRVxuICAgICAgPyBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUVcbiAgICAgIDogJ3Vua25vd24tc2VydmljZSc7XG5cbiAgICB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzID0ge1xuICAgICAgJ3RyYWNlLmlkJzogdGhpcy5zcGFuQ29udGV4dC5zcGFuQ29udGV4dCgpLnRyYWNlSWQsXG4gICAgICAnc3Bhbi5pZCc6IHRoaXMuc3BhbkNvbnRleHQuc3BhbkNvbnRleHQoKS5zcGFuSWQsXG4gICAgICAnZnVuY3Rpb24ubmFtZSc6IHNjb3BlQXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gfHwgJ3Vua25vd24tZnVuY3Rpb24nLFxuICAgICAgJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnOlxuICAgICAgICBzY29wZUF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCddIHx8ICd1bmtub3duLWludm9jYXRpb24taWQnLFxuICAgICAgJ3JlcXVlc3QuaWQnOiBzY29wZUF0dHJpYnV0ZXM/LlsncmVxdWVzdC5pZCddIHx8ICd1bmtub3duLXJlcXVlc3QtaWQnLFxuICAgICAgJ3JvdXRlLmtleSc6IHNjb3BlQXR0cmlidXRlcz8uWydyb3V0ZS5rZXknXSB8fCAndW5rbm93bi1yb3V0ZS1rZXknLFxuICAgIH07XG5cbiAgICB0aGlzLmVudmlyb25tZW50ID0gZ2V0RW52aXJvbm1lbnRTdGFnZSgpO1xuICB9XG5cbiAgYXN5bmMgbG9nRXJyb3IoZGF0YTogTG9nUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2coe1xuICAgICAgc2VydmljZU5hbWU6IHRoaXMuZGVmYXVsdFNlcnZpY2VOYW1lLFxuICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnQsXG4gICAgICAuLi5kYXRhLFxuICAgICAgc2V2ZXJpdHk6ICdFUlJPUicsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsb2dJbmZvKGRhdGE6IExvZ1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nKHtcbiAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LFxuICAgICAgLi4uZGF0YSxcbiAgICAgIHNldmVyaXR5OiAnSU5GTycsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsb2dXYXJuKGRhdGE6IExvZ1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9nKHtcbiAgICAgIHNlcnZpY2VOYW1lOiB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSxcbiAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50LFxuICAgICAgLi4uZGF0YSxcbiAgICAgIHNldmVyaXR5OiAnV0FSTicsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsb2dEZWJ1ZyhkYXRhOiBMb2dQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvZyh7XG4gICAgICBzZXJ2aWNlTmFtZTogdGhpcy5kZWZhdWx0U2VydmljZU5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudCxcbiAgICAgIC4uLmRhdGEsXG4gICAgICBzZXZlcml0eTogJ0RFQlVHJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9nKFxuICAgIGRhdGE6IE9taXQ8U3RhbmRhcmRMb2dEYXRhLCAndGltZXN0YW1wJz4gJiB7XG4gICAgICBzZXZlcml0eTogU3RhbmRhcmRMb2dEYXRhWydzZXZlcml0eSddO1xuICAgIH1cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZnVsbERhdGE6IFN0YW5kYXJkTG9nRGF0YSA9IHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICBzZXJ2aWNlTmFtZTogZGF0YS5zZXJ2aWNlTmFtZSB8fCB0aGlzLmRlZmF1bHRTZXJ2aWNlTmFtZSxcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBjb25zdCBzZXZlcml0eU1hcCA9IHtcbiAgICAgIEVSUk9SOiBTZXZlcml0eU51bWJlci5FUlJPUixcbiAgICAgIFdBUk46IFNldmVyaXR5TnVtYmVyLldBUk4sXG4gICAgICBJTkZPOiBTZXZlcml0eU51bWJlci5JTkZPLFxuICAgICAgREVCVUc6IFNldmVyaXR5TnVtYmVyLkRFQlVHLFxuICAgIH07XG5cbiAgICBjb25zdCBsb2dSZWNvcmQgPSB7XG4gICAgICBzZXZlcml0eU51bWJlcjogc2V2ZXJpdHlNYXBbZnVsbERhdGEuc2V2ZXJpdHldLFxuICAgICAgc2V2ZXJpdHlUZXh0OiBmdWxsRGF0YS5zZXZlcml0eSxcbiAgICAgIGJvZHk6IGZ1bGxEYXRhLm1lc3NhZ2UsXG4gICAgICBhdHRyaWJ1dGVzOiB0aGlzLmJ1aWxkQXR0cmlidXRlcyhmdWxsRGF0YSksXG4gICAgfTtcblxuICAgIHRoaXMubG9nZ2VyLmVtaXQobG9nUmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdHRyaWJ1dGVzKGRhdGE6IFN0YW5kYXJkTG9nRGF0YSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICB0aW1lc3RhbXA6IGRhdGEudGltZXN0YW1wLFxuICAgICAgJ3NlcnZpY2UubmFtZSc6IGRhdGEuc2VydmljZU5hbWUsXG4gICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZGF0YS5lbnZpcm9ubWVudCxcbiAgICB9O1xuXG4gICAgLy8gSW5mb3JtYcOnw7VlcyBkbyBlcnJvXG4gICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgIGF0dHJpYnV0ZXNbJ2Vycm9yLnR5cGUnXSA9IGRhdGEuZXJyb3IubmFtZTtcbiAgICAgIGF0dHJpYnV0ZXNbJ2Vycm9yLm1lc3NhZ2UnXSA9IGRhdGEuZXJyb3IubWVzc2FnZTtcbiAgICAgIGF0dHJpYnV0ZXNbJ2Vycm9yLnN0YWNrJ10gPSBkYXRhLmVycm9yLnN0YWNrIHx8ICcnO1xuICAgIH1cblxuICAgIC8vIEhUVFBcbiAgICBpZiAoZGF0YS5odHRwKSB7XG4gICAgICBpZiAoZGF0YS5odHRwLm1ldGhvZCkgYXR0cmlidXRlc1snaHR0cC5tZXRob2QnXSA9IGRhdGEuaHR0cC5tZXRob2Q7XG4gICAgICBpZiAoZGF0YS5odHRwLnVybCkgYXR0cmlidXRlc1snaHR0cC51cmwnXSA9IGRhdGEuaHR0cC51cmw7XG4gICAgICBpZiAoZGF0YS5odHRwLmVuZHBvaW50KSBhdHRyaWJ1dGVzWydodHRwLmVuZHBvaW50J10gPSBkYXRhLmh0dHAuZW5kcG9pbnQ7XG4gICAgICBpZiAoZGF0YS5odHRwLnN0YXR1c0NvZGUpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2h0dHAuc3RhdHVzX2NvZGUnXSA9IGRhdGEuaHR0cC5zdGF0dXNDb2RlO1xuICAgICAgaWYgKGRhdGEuaHR0cC5oZWFkZXJzKVxuICAgICAgICBhdHRyaWJ1dGVzWydodHRwLmhlYWRlcnMnXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5oZWFkZXJzKTtcbiAgICAgIGlmIChkYXRhLmh0dHAuYm9keSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5ib2R5J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmh0dHAuYm9keSk7XG4gICAgICBpZiAoZGF0YS5odHRwLnBhcmFtcylcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5wYXJhbXMnXSA9IEpTT04uc3RyaW5naWZ5KGRhdGEuaHR0cC5wYXJhbXMpO1xuICAgICAgaWYgKGRhdGEuaHR0cC5xdWVyeSlcbiAgICAgICAgYXR0cmlidXRlc1snaHR0cC5xdWVyeSddID0gSlNPTi5zdHJpbmdpZnkoZGF0YS5odHRwLnF1ZXJ5KTtcbiAgICAgIGlmIChkYXRhLmh0dHAuYWdlbnQpIGF0dHJpYnV0ZXNbJ2h0dHAudXNlcl9hZ2VudCddID0gZGF0YS5odHRwLmFnZW50O1xuICAgIH1cblxuICAgIC8vIFVzdcOhcmlvXG4gICAgaWYgKGRhdGEudXNlcikge1xuICAgICAgaWYgKGRhdGEudXNlci51aWQpIGF0dHJpYnV0ZXNbJ3VzZXIudWlkJ10gPSBkYXRhLnVzZXIudWlkO1xuICAgICAgaWYgKGRhdGEudXNlci5lbWFpbCkgYXR0cmlidXRlc1sndXNlci5lbWFpbCddID0gZGF0YS51c2VyLmVtYWlsO1xuICAgIH1cblxuICAgIC8vIEV4ZWN1w6fDo29cbiAgICBpZiAoZGF0YS5leGVjdXRpb24pIHtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5yZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ3JlcXVlc3QuaWQnXSA9IGRhdGEuZXhlY3V0aW9uLnJlcXVlc3RJZDtcbiAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2F3cy5yZXF1ZXN0LmlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5hd3NSZXF1ZXN0SWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uZnVuY3Rpb25OYW1lKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzWydmdW5jdGlvbi5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5mdW5jdGlvbk5hbWU7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uaW52b2NhdGlvbklkKVxuICAgICAgICBhdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPSBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICB0aGlzLmRlZmF1bHRBdHRyaWJ1dGVzWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gPVxuICAgICAgICBkYXRhLmV4ZWN1dGlvbi5pbnZvY2F0aW9uSWQ7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24uY29udHJvbGxlcilcbiAgICAgICAgYXR0cmlidXRlc1snY29udHJvbGxlci5uYW1lJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmNvbnRyb2xsZXJNZXRob2QpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ2NvbnRyb2xsZXIubWV0aG9kJ10gPSBkYXRhLmV4ZWN1dGlvbi5jb250cm9sbGVyTWV0aG9kO1xuICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLm9yaWdpbikgYXR0cmlidXRlc1snb3JpZ2luJ10gPSBkYXRhLmV4ZWN1dGlvbi5vcmlnaW47XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24ucm91dGVLZXkpXG4gICAgICAgIGF0dHJpYnV0ZXNbJ3JvdXRlLmtleSddID0gZGF0YS5leGVjdXRpb24ucm91dGVLZXk7XG4gICAgICBpZiAoZGF0YS5leGVjdXRpb24ubG9nZ2VkVXNlcikge1xuICAgICAgICBpZiAoZGF0YS5leGVjdXRpb24ubG9nZ2VkVXNlci51aWQpXG4gICAgICAgICAgYXR0cmlidXRlc1snbG9nZ2VkX3VzZXIudWlkJ10gPSBkYXRhLmV4ZWN1dGlvbi5sb2dnZWRVc2VyLnVpZDtcbiAgICAgICAgaWYgKGRhdGEuZXhlY3V0aW9uLmxvZ2dlZFVzZXIuZW1haWwpXG4gICAgICAgICAgYXR0cmlidXRlc1snbG9nZ2VkX3VzZXIuZW1haWwnXSA9IGRhdGEuZXhlY3V0aW9uLmxvZ2dlZFVzZXIuZW1haWw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybWFuY2VcbiAgICBpZiAoZGF0YS5wZXJmb3JtYW5jZSkge1xuICAgICAgaWYgKGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcylcbiAgICAgICAgYXR0cmlidXRlc1snZHVyYXRpb24ubXMnXSA9IGRhdGEucGVyZm9ybWFuY2UuZHVyYXRpb25NcztcbiAgICAgIGlmIChkYXRhLnBlcmZvcm1hbmNlLnN1Y2Nlc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cmlidXRlc1snZXhlY3V0aW9uLnN1Y2Nlc3MnXSA9IGRhdGEucGVyZm9ybWFuY2Uuc3VjY2VzcztcbiAgICB9XG5cbiAgICAvLyBDb250ZXh0byBhZGljaW9uYWxcbiAgICBpZiAoZGF0YS5jb250ZXh0KSB7XG4gICAgICBhdHRyaWJ1dGVzWydjb250ZXh0J10gPSBKU09OLnN0cmluZ2lmeShkYXRhLmNvbnRleHQpO1xuICAgIH1cblxuICAgIC8vIEZpbHRyYXIgdmFsb3JlcyB1bmRlZmluZWQvbnVsbFxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh7IC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMsIC4uLmF0dHJpYnV0ZXMgfSkuZmlsdGVyKFxuICAgICAgICAoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -132,20 +132,26 @@ const middyTelemetryMiddleware = (options) => ({
132
132
  }
133
133
  }),
134
134
  after: (request) => __awaiter(void 0, void 0, void 0, function* () {
135
- var _a, _b, _c, _d, _e, _f;
135
+ var _a, _b, _c, _d, _e, _f, _g, _h;
136
136
  try {
137
137
  const otelData = request.context.otel;
138
138
  if (!otelData)
139
139
  return;
140
140
  const event = request.event;
141
- const queryStringParameters = (event === null || event === void 0 ? void 0 : event.queryStringParameters) || {};
142
- const origin = queryStringParameters.origin || 'unknown';
143
- const loggedUser = extractLoggedUser(event);
141
+ const attributes = extractDefaultAttributes(event);
144
142
  const { spanResult, successCounter, executionTimeHistogram, startTime, serviceName, environment, } = otelData;
145
143
  spanResult.setSuccess(true);
144
+ const functionName = ((_a = spanResult.span.attributes) === null || _a === void 0 ? void 0 : _a['function.name']) ||
145
+ attributes.functionName;
146
+ const routeKey = ((_b = spanResult.span.attributes) === null || _b === void 0 ? void 0 : _b['route.key']) ||
147
+ attributes.routeKey;
148
+ const requestId = ((_c = spanResult.span.attributes) === null || _c === void 0 ? void 0 : _c['request.id']) ||
149
+ attributes.requestId;
146
150
  successCounter.add(1, {
147
151
  origin,
148
- 'function.name': ((_a = spanResult.span.attributes) === null || _a === void 0 ? void 0 : _a['function.name']) || 'unknown',
152
+ 'function.name': functionName,
153
+ 'request.id': requestId,
154
+ 'route.key': routeKey,
149
155
  'service.name': serviceName,
150
156
  'deployment.environment.name': environment,
151
157
  });
@@ -153,7 +159,9 @@ const middyTelemetryMiddleware = (options) => ({
153
159
  executionTimeHistogram.record(durationMs, {
154
160
  origin,
155
161
  status: 'success',
156
- 'function.name': ((_b = spanResult.span.attributes) === null || _b === void 0 ? void 0 : _b['function.name']) || 'unknown',
162
+ 'function.name': functionName,
163
+ 'request.id': requestId,
164
+ 'route.key': routeKey,
157
165
  'service.name': serviceName,
158
166
  'deployment.environment.name': environment,
159
167
  });
@@ -162,12 +170,18 @@ const middyTelemetryMiddleware = (options) => ({
162
170
  message: 'Request completed successfully',
163
171
  environment,
164
172
  execution: {
165
- functionName: (_c = spanResult.span.attributes) === null || _c === void 0 ? void 0 : _c['function.name'],
166
- invocationId: (_d = spanResult.span.attributes) === null || _d === void 0 ? void 0 : _d['function.invocation_id'],
173
+ functionName: functionName,
174
+ invocationId: ((_d = spanResult.span.attributes) === null || _d === void 0 ? void 0 : _d['function.invocation_id']) ||
175
+ attributes.invocationId,
167
176
  origin,
168
- routeKey: (_e = spanResult.span.attributes) === null || _e === void 0 ? void 0 : _e['routeKey'],
169
- requestId: (_f = spanResult.span.attributes) === null || _f === void 0 ? void 0 : _f['request.id'],
170
- loggedUser,
177
+ routeKey: routeKey,
178
+ requestId: requestId,
179
+ loggedUser: {
180
+ uid: (((_e = spanResult.span.attributes) === null || _e === void 0 ? void 0 : _e['logged_user.uid']) ||
181
+ ((_f = attributes.loggedUser) === null || _f === void 0 ? void 0 : _f.uid)),
182
+ email: (((_g = spanResult.span.attributes) === null || _g === void 0 ? void 0 : _g['logged_user.email']) ||
183
+ ((_h = attributes.loggedUser) === null || _h === void 0 ? void 0 : _h.email)),
184
+ },
171
185
  },
172
186
  performance: {
173
187
  durationMs,
@@ -187,15 +201,27 @@ const middyTelemetryMiddleware = (options) => ({
187
201
  const otelData = request.context.otel;
188
202
  if (!otelData)
189
203
  return;
204
+ const attributes = extractDefaultAttributes(request.event);
190
205
  const { spanResult, failureCounter, executionTimeHistogram, startTime, serviceName, environment, origin, } = otelData;
191
206
  const error = request.error;
192
207
  if (error) {
193
208
  spanResult.setError(error);
194
209
  }
210
+ const functionName = ((_a = spanResult.span.attributes) === null || _a === void 0 ? void 0 : _a['function.name']) ||
211
+ attributes.functionName ||
212
+ 'unknown';
213
+ const requestId = ((_b = spanResult.span.attributes) === null || _b === void 0 ? void 0 : _b['request.id']) ||
214
+ attributes.requestId ||
215
+ 'unknown';
216
+ const routeKey = ((_c = spanResult.span.attributes) === null || _c === void 0 ? void 0 : _c['route.key']) ||
217
+ attributes.routeKey ||
218
+ 'unknown';
195
219
  failureCounter.add(1, {
196
220
  origin,
197
- error_type: ((_a = error === null || error === void 0 ? void 0 : error.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'UnknownError',
198
- 'function.name': ((_b = spanResult.span.attributes) === null || _b === void 0 ? void 0 : _b['function.name']) || 'unknown',
221
+ error_type: ((_d = error === null || error === void 0 ? void 0 : error.constructor) === null || _d === void 0 ? void 0 : _d.name) || 'UnknownError',
222
+ 'function.name': functionName,
223
+ 'request.id': requestId,
224
+ 'route.key': routeKey,
199
225
  'service.name': serviceName,
200
226
  'deployment.environment.name': environment,
201
227
  });
@@ -203,7 +229,9 @@ const middyTelemetryMiddleware = (options) => ({
203
229
  executionTimeHistogram.record(durationMs, {
204
230
  origin,
205
231
  status: 'error',
206
- 'function.name': ((_c = spanResult.span.attributes) === null || _c === void 0 ? void 0 : _c['function.name']) || 'unknown',
232
+ 'function.name': functionName,
233
+ 'request.id': requestId,
234
+ 'route.key': routeKey,
207
235
  'service.name': serviceName,
208
236
  'deployment.environment.name': environment,
209
237
  });
@@ -213,10 +241,13 @@ const middyTelemetryMiddleware = (options) => ({
213
241
  error: error || undefined,
214
242
  environment,
215
243
  execution: {
216
- functionName: (_d = spanResult.span.attributes) === null || _d === void 0 ? void 0 : _d['function.name'],
217
- invocationId: (_e = spanResult.span.attributes) === null || _e === void 0 ? void 0 : _e['function.invocation_id'],
218
- awsRequestId: (_f = spanResult.span.attributes) === null || _f === void 0 ? void 0 : _f['function.invocation_id'],
244
+ functionName: functionName,
245
+ invocationId: ((_e = spanResult.span.attributes) === null || _e === void 0 ? void 0 : _e['function.invocation_id']) ||
246
+ attributes.invocationId,
247
+ awsRequestId: (_f = spanResult.span.attributes) === null || _f === void 0 ? void 0 : _f['function.aws_request_id'],
219
248
  origin,
249
+ routeKey: routeKey,
250
+ requestId: requestId,
220
251
  },
221
252
  performance: {
222
253
  durationMs,
@@ -235,4 +266,4 @@ const middyTelemetryMiddleware = (options) => ({
235
266
  }),
236
267
  });
237
268
  exports.middyTelemetryMiddleware = middyTelemetryMiddleware;
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zc3QvbWlkZHkvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUE4QkEsOENBcUJDO0FBbERELDRDQUF3RDtBQUN4RCw0Q0FBZ0Y7QUFDaEYsMkNBQXlDO0FBQ3pDLHFDQUFpRDtBQUlqRCxTQUFTLHFCQUFxQixDQUFDLEtBQVU7O0lBQ3ZDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQU87WUFDTCxNQUFNLEVBQUUsQ0FBQSxNQUFBLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSwwQ0FBRSxNQUFNLEtBQUksU0FBUztZQUN0RCxHQUFHLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEtBQUksTUFBQSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksMENBQUUsSUFBSSxDQUFBO1lBQ3ZFLEtBQUssRUFBRSxDQUFBLE1BQUEsS0FBSyxDQUFDLE9BQU8sMENBQUcsWUFBWSxDQUFDLEtBQUksU0FBUztZQUNqRCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsSUFBSSxFQUFFO1lBQzFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxFQUFFO1lBQ3hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksU0FBUztRQUNyQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTO1FBQzVCLEtBQUssRUFBRSxDQUFBLE1BQUEsS0FBSyxDQUFDLE9BQU8sMENBQUcsWUFBWSxDQUFDLEtBQUksU0FBUztRQUNqRCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQzFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxFQUFFO1FBQ3hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsS0FBVTs7SUFFVixJQUFJLFVBQVUsR0FBRyxNQUFBLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsY0FBYywwQ0FBRSxVQUFVLDBDQUFFLE1BQU0sMENBQUUsVUFBVSxDQUFDO0lBRXZFLElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixVQUFVO1lBQ1IsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDdkUsSUFDRSxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxJQUFJO2FBQ2hCLE1BQUEsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLElBQUksMENBQUUsWUFBWSxDQUFBO2FBQzlCLE1BQUEsTUFBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsSUFBSSwwQ0FBRSxZQUFZLDBDQUFFLE9BQU8sQ0FBQSxFQUN2QyxDQUFDO1lBQ0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUM1QixHQUFHLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUc7YUFDOUMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsT0FBWTs7SUFDNUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDM0MsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUNoRCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBQ2hELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLGFBQWEsQ0FBQztJQUM5RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBWSxDQUFDO0lBQ25DLE1BQU0scUJBQXFCLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUscUJBQXFCLEtBQUksRUFBRSxDQUFDO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7SUFDekQsTUFBTSxRQUFRLEdBQ1osQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsUUFBUSxNQUFJLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsMENBQUUsUUFBUSxDQUFBLElBQUksU0FBUyxDQUFDO0lBQ2xFLE1BQU0sU0FBUyxHQUNiLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsTUFBSSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxjQUFjLDBDQUFFLFNBQVMsQ0FBQSxJQUFJLFNBQVMsQ0FBQztJQUNwRSxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFBLDBCQUFtQixHQUFFLENBQUM7SUFFcEMsT0FBTztRQUNMLFlBQVk7UUFDWixZQUFZO1FBQ1osV0FBVztRQUNYLElBQUk7UUFDSixNQUFNO1FBQ04sUUFBUTtRQUNSLFNBQVM7UUFDVCxVQUFVO1FBQ1YsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBRU0sTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxPQUFnQyxFQUNYLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sRUFBRSxDQUFPLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLHdCQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFFcEMsTUFBTSxFQUNKLFlBQVksRUFDWixZQUFZLEVBQ1osV0FBVyxFQUNYLElBQUksRUFDSixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxHQUNOLEdBQUcsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFHdEMsTUFBTSxjQUFjLEdBQUcsSUFBQSw2QkFBaUIsR0FBRSxDQUFDO1lBQzNDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBQzFDLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXO2dCQUNYLFdBQVcsRUFBRSxLQUFLO2dCQUNsQixJQUFJO2dCQUNKLFNBQVMsRUFBRTtvQkFDVCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osWUFBWSxFQUFFLFlBQVk7b0JBQzFCLE1BQU07b0JBQ04sUUFBUTtvQkFDUixTQUFTO29CQUNULFVBQVU7aUJBQ1g7YUFDRixDQUFDLENBQUM7WUFFSCxNQUFNLEtBQUssR0FBRyxhQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXZDLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FDbEQsMkJBQTJCLEVBQzNCO2dCQUNFLFdBQVcsRUFBRSx5Q0FBeUM7Z0JBQ3RELElBQUksRUFBRSxJQUFJO2dCQUNWLFNBQVMsRUFBRSxlQUFTLENBQUMsTUFBTTthQUM1QixDQUNGLENBQUM7WUFDRixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLDRCQUE0QixFQUFFO2dCQUN2RSxXQUFXLEVBQUUsZ0NBQWdDO2FBQzlDLENBQUMsQ0FBQztZQUNILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsd0JBQXdCLEVBQUU7Z0JBQ25FLFdBQVcsRUFBRSw0QkFBNEI7YUFDMUMsQ0FBQyxDQUFDO1lBRUYsT0FBTyxDQUFDLE9BQWUsQ0FBQyxJQUFJLEdBQUc7Z0JBQzlCLFVBQVU7Z0JBQ1YsS0FBSztnQkFDTCxzQkFBc0I7Z0JBQ3RCLGNBQWM7Z0JBQ2QsY0FBYztnQkFDZCxTQUFTO2dCQUNULFdBQVc7Z0JBQ1gsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLE1BQU07Z0JBQ04sUUFBUTtnQkFDUixTQUFTO2dCQUNULFVBQVU7YUFDWCxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDLENBQUE7SUFFRCxLQUFLLEVBQUUsQ0FBTyxPQUFPLEVBQUUsRUFBRTs7UUFDdkIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUksT0FBTyxDQUFDLE9BQWUsQ0FBQyxJQUFJLENBQUM7WUFDL0MsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUN0QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBWSxDQUFDO1lBRW5DLE1BQU0scUJBQXFCLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUscUJBQXFCLEtBQUksRUFBRSxDQUFDO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUM7WUFDekQsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFNUMsTUFBTSxFQUNKLFVBQVUsRUFDVixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxHQUNaLEdBQUcsUUFBUSxDQUFDO1lBR2IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUc1QixjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDcEIsTUFBTTtnQkFDTixlQUFlLEVBQ2IsQ0FBQSxNQUFBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRyxlQUFlLENBQUMsS0FBSSxTQUFTO2dCQUM1RCxjQUFjLEVBQUUsV0FBVztnQkFDM0IsNkJBQTZCLEVBQUUsV0FBVzthQUMzQyxDQUFDLENBQUM7WUFFSCxNQUFNLFVBQVUsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUVqRCxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUN4QyxNQUFNO2dCQUNOLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixlQUFlLEVBQ2IsQ0FBQSxNQUFBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRyxlQUFlLENBQUMsS0FBSSxTQUFTO2dCQUM1RCxjQUFjLEVBQUUsV0FBVztnQkFDM0IsNkJBQTZCLEVBQUUsV0FBVzthQUMzQyxDQUFDLENBQUM7WUFHSCxNQUFNLGNBQWMsR0FBRyxJQUFBLDZCQUFpQixFQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckUsTUFBTSxjQUFjLENBQUMsT0FBTyxDQUFDO2dCQUMzQixPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxXQUFXO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxZQUFZLEVBQUUsTUFBQSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsMENBQUcsZUFBZSxDQUFXO29CQUNyRSxZQUFZLEVBQUUsTUFBQSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsMENBQ3RDLHdCQUF3QixDQUNmO29CQUNYLE1BQU07b0JBQ04sUUFBUSxFQUFFLE1BQUEsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLDBDQUFHLFVBQVUsQ0FBVztvQkFDNUQsU0FBUyxFQUFFLE1BQUEsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLDBDQUFHLFlBQVksQ0FBVztvQkFDL0QsVUFBVTtpQkFDWDtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsVUFBVTtvQkFDVixPQUFPLEVBQUUsSUFBSTtpQkFDZDthQUNGLENBQUMsQ0FBQztZQUdILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUEsc0JBQVUsR0FBRSxDQUFDO1FBQ3JCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsT0FBTyxFQUFFLENBQU8sT0FBTyxFQUFFLEVBQUU7O1FBQ3pCLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFJLE9BQU8sQ0FBQyxPQUFlLENBQUMsSUFBSSxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFdEIsTUFBTSxFQUNKLFVBQVUsRUFDVixjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxFQUNYLE1BQU0sR0FDUCxHQUFHLFFBQVEsQ0FBQztZQUNiLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFHNUIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFHRCxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDcEIsTUFBTTtnQkFDTixVQUFVLEVBQUUsQ0FBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxXQUFXLDBDQUFFLElBQUksS0FBSSxjQUFjO2dCQUN0RCxlQUFlLEVBQ2IsQ0FBQSxNQUFBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRyxlQUFlLENBQUMsS0FBSSxTQUFTO2dCQUM1RCxjQUFjLEVBQUUsV0FBVztnQkFDM0IsNkJBQTZCLEVBQUUsV0FBVzthQUMzQyxDQUFDLENBQUM7WUFFSCxNQUFNLFVBQVUsR0FBRyx3QkFBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUVqRCxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUN4QyxNQUFNO2dCQUNOLE1BQU0sRUFBRSxPQUFPO2dCQUNmLGVBQWUsRUFDYixDQUFBLE1BQUEsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLDBDQUFHLGVBQWUsQ0FBQyxLQUFJLFNBQVM7Z0JBQzVELGNBQWMsRUFBRSxXQUFXO2dCQUMzQiw2QkFBNkIsRUFBRSxXQUFXO2FBQzNDLENBQUMsQ0FBQztZQUdILE1BQU0sY0FBYyxHQUFHLElBQUEsNkJBQWlCLEVBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVyRSxNQUFNLGNBQWMsQ0FBQyxRQUFRLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLEtBQUksd0JBQXdCO2dCQUNuRCxLQUFLLEVBQUUsS0FBSyxJQUFJLFNBQVM7Z0JBQ3pCLFdBQVc7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULFlBQVksRUFBRSxNQUFBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRyxlQUFlLENBQVc7b0JBQ3JFLFlBQVksRUFBRSxNQUFBLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FDdEMsd0JBQXdCLENBQ2Y7b0JBQ1gsWUFBWSxFQUFFLE1BQUEsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLDBDQUN0Qyx3QkFBd0IsQ0FDZjtvQkFDWCxNQUFNO2lCQUNQO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVO29CQUNWLE9BQU8sRUFBRSxLQUFLO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsV0FBVywwQ0FBRSxJQUFJO2lCQUNwQzthQUNGLENBQUMsQ0FBQztZQUdILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUEsc0JBQVUsR0FBRSxDQUFDO1FBQ3JCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDO0FBNU5VLFFBQUEsd0JBQXdCLDRCQTRObEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWlkZHkgZnJvbSAnQG1pZGR5L2NvcmUnO1xuaW1wb3J0IHsgbWV0cmljcywgVmFsdWVUeXBlIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IGZvcmNlRmx1c2gsIGdldFN0YW5kYXJkTG9nZ2VyLCBnZXRTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL3RlbGVtZXRyeSc7XG5pbXBvcnQgeyBwZXJmb3JtYW5jZSB9IGZyb20gJ3BlcmZfaG9va3MnO1xuaW1wb3J0IHsgZ2V0RW52aXJvbm1lbnRTdGFnZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuXG5pbnRlcmZhY2UgTWlkZHlNaWRkbGV3YXJlT3B0aW9ucyB7fVxuXG5mdW5jdGlvbiBleHRyYWN0SHR0cEF0dHJpYnV0ZXMoZXZlbnQ6IGFueSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAoZXZlbnQucmVxdWVzdENvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0aG9kOiBldmVudC5yZXF1ZXN0Q29udGV4dC5odHRwPy5tZXRob2QgfHwgJ3Vua25vd24nLFxuICAgICAgdXJsOiBldmVudC5yZXF1ZXN0Q29udGV4dC5kb21haW5OYW1lICYmIGV2ZW50LnJlcXVlc3RDb250ZXh0Lmh0dHA/LnBhdGgsXG4gICAgICBhZ2VudDogZXZlbnQuaGVhZGVycz8uWyd1c2VyLWFnZW50J10gfHwgJ3Vua25vd24nLFxuICAgICAgcGF0aFBhcmFtZXRlcnM6IGV2ZW50LnBhdGhQYXJhbWV0ZXJzIHx8IHt9LFxuICAgICAgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzOiBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnMgfHwge30sXG4gICAgICBib2R5OiBldmVudC5ib2R5IHx8IHt9LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1ldGhvZDogZXZlbnQuaHR0cE1ldGhvZCB8fCAndW5rbm93bicsXG4gICAgdXJsOiBldmVudC5wYXRoIHx8ICd1bmtub3duJyxcbiAgICBhZ2VudDogZXZlbnQuaGVhZGVycz8uWydVc2VyLUFnZW50J10gfHwgJ3Vua25vd24nLFxuICAgIHBhdGhQYXJhbWV0ZXJzOiBldmVudC5wYXRoUGFyYW1ldGVycyB8fCB7fSxcbiAgICBxdWVyeVN0cmluZ1BhcmFtZXRlcnM6IGV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fSxcbiAgICBib2R5OiBldmVudC5ib2R5IHx8IHt9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdExvZ2dlZFVzZXIoXG4gIGV2ZW50OiBhbnlcbik6IHsgZW1haWw/OiBzdHJpbmc7IHVpZD86IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgbGV0IGxvZ2dlZFVzZXIgPSBldmVudD8ucmVxdWVzdENvbnRleHQ/LmF1dGhvcml6ZXI/LmxhbWJkYT8ubG9nZ2VyVXNlcjtcblxuICBpZiAobG9nZ2VkVXNlcikge1xuICAgIGxvZ2dlZFVzZXIgPVxuICAgICAgdHlwZW9mIGxvZ2dlZFVzZXIgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShsb2dnZWRVc2VyKSA6IGxvZ2dlZFVzZXI7XG4gICAgaWYgKFxuICAgICAgbG9nZ2VkVXNlcj8udXNlciAmJlxuICAgICAgbG9nZ2VkVXNlcj8udXNlcj8uYWNjb3VudF91c2VyICYmXG4gICAgICBsb2dnZWRVc2VyPy51c2VyPy5hY2NvdW50X3VzZXI/LmFjY291bnRcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVtYWlsOiBsb2dnZWRVc2VyLnVzZXIuZW1haWwsXG4gICAgICAgIHVpZDogbG9nZ2VkVXNlci51c2VyLmFjY291bnRfdXNlci5hY2NvdW50LnVpZCxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdERlZmF1bHRBdHRyaWJ1dGVzKHJlcXVlc3Q6IGFueSkge1xuICBjb25zdCB7IGNvbnRleHQ6IGxhbWJkYUNvbnRleHQgfSA9IHJlcXVlc3Q7XG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGxhbWJkYUNvbnRleHQuZnVuY3Rpb25OYW1lO1xuICBjb25zdCBpbnZvY2F0aW9uSWQgPSBsYW1iZGFDb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3NzdC1zZXJ2aWNlJztcbiAgY29uc3QgZXZlbnQgPSByZXF1ZXN0LmV2ZW50IGFzIGFueTtcbiAgY29uc3QgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzID0gZXZlbnQ/LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fTtcbiAgY29uc3QgaHR0cCA9IGV4dHJhY3RIdHRwQXR0cmlidXRlcyhldmVudCk7XG4gIGNvbnN0IG9yaWdpbiA9IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycy5vcmlnaW4gfHwgJ3Vua25vd24nO1xuICBjb25zdCByb3V0ZUtleSA9XG4gICAgZXZlbnQ/LnJvdXRlS2V5IHx8IGV2ZW50Py5yZXF1ZXN0Q29udGV4dD8ucm91dGVLZXkgfHwgJ3Vua25vd24nO1xuICBjb25zdCByZXF1ZXN0SWQgPVxuICAgIGV2ZW50Py5yZXF1ZXN0SWQgfHwgZXZlbnQ/LnJlcXVlc3RDb250ZXh0Py5yZXF1ZXN0SWQgfHwgJ3Vua25vd24nO1xuICBjb25zdCBsb2dnZWRVc2VyID0gZXh0cmFjdExvZ2dlZFVzZXIoZXZlbnQpO1xuICBjb25zdCBzdGFnZSA9IGdldEVudmlyb25tZW50U3RhZ2UoKTtcblxuICByZXR1cm4ge1xuICAgIGZ1bmN0aW9uTmFtZSxcbiAgICBpbnZvY2F0aW9uSWQsXG4gICAgc2VydmljZU5hbWUsXG4gICAgaHR0cCxcbiAgICBvcmlnaW4sXG4gICAgcm91dGVLZXksXG4gICAgcmVxdWVzdElkLFxuICAgIGxvZ2dlZFVzZXIsXG4gICAgc3RhZ2UsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBtaWRkeVRlbGVtZXRyeU1pZGRsZXdhcmUgPSAoXG4gIG9wdGlvbnM/OiBNaWRkeU1pZGRsZXdhcmVPcHRpb25zXG4pOiBtaWRkeS5NaWRkbGV3YXJlT2JqID0+ICh7XG4gIGJlZm9yZTogYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZnVuY3Rpb25OYW1lLFxuICAgICAgICBpbnZvY2F0aW9uSWQsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBodHRwLFxuICAgICAgICBvcmlnaW4sXG4gICAgICAgIHJvdXRlS2V5LFxuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIGxvZ2dlZFVzZXIsXG4gICAgICAgIHN0YWdlLFxuICAgICAgfSA9IGV4dHJhY3REZWZhdWx0QXR0cmlidXRlcyhyZXF1ZXN0KTtcblxuICAgICAgLy8gVXNhciBTdGFuZGFyZFRyYWNlciBwYXJhIGNyaWFyIHNwYW4gY29tIGF0cmlidXRvcyBwYWRyb25pemFkb3NcbiAgICAgIGNvbnN0IHN0YW5kYXJkVHJhY2VyID0gZ2V0U3RhbmRhcmRUcmFjZXIoKTtcbiAgICAgIGNvbnN0IHNwYW5SZXN1bHQgPSBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLFxuICAgICAgICBodHRwLFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgaW52b2NhdGlvbklkLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogaW52b2NhdGlvbklkLFxuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICByb3V0ZUtleSxcbiAgICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgICAgbG9nZ2VkVXNlcixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBtZXRlciA9IG1ldHJpY3MuZ2V0TWV0ZXIob3JpZ2luKTtcblxuICAgICAgY29uc3QgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSA9IG1ldGVyLmNyZWF0ZUhpc3RvZ3JhbShcbiAgICAgICAgJ2xhbWJkYV9leGVjdXRpb25fZHVyYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUZW1wbyB0b3RhbCBkZSBleGVjdcOnw6NvIGRvIExhbWJkYSBlbSBtcycsXG4gICAgICAgICAgdW5pdDogJ21zJyxcbiAgICAgICAgICB2YWx1ZVR5cGU6IFZhbHVlVHlwZS5ET1VCTEUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjb25zdCBzdWNjZXNzQ291bnRlciA9IG1ldGVyLmNyZWF0ZUNvdW50ZXIoJ3RvdGFsX3N1Y2Nlc3NmdWxfcHVyY2hhc2VzJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RvdGFsIGRlIGNvbXByYXMgYmVtLXN1Y2VkaWRhcycsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZhaWx1cmVDb3VudGVyID0gbWV0ZXIuY3JlYXRlQ291bnRlcigndG90YWxfZmFpbGVkX3B1cmNoYXNlcycsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUb3RhbCBkZSBjb21wcmFzIGNvbSBmYWxoYScsXG4gICAgICB9KTtcblxuICAgICAgKHJlcXVlc3QuY29udGV4dCBhcyBhbnkpLm90ZWwgPSB7XG4gICAgICAgIHNwYW5SZXN1bHQsXG4gICAgICAgIG1ldGVyLFxuICAgICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLFxuICAgICAgICBzdWNjZXNzQ291bnRlcixcbiAgICAgICAgZmFpbHVyZUNvdW50ZXIsXG4gICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgIGVudmlyb25tZW50OiBzdGFnZSxcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICByb3V0ZUtleSxcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICBsb2dnZWRVc2VyLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gbWlkZHlUZWxlbWV0cnlNaWRkbGV3YXJlIGJlZm9yZSBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG5cbiAgYWZ0ZXI6IGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG90ZWxEYXRhID0gKHJlcXVlc3QuY29udGV4dCBhcyBhbnkpLm90ZWw7XG4gICAgICBpZiAoIW90ZWxEYXRhKSByZXR1cm47XG4gICAgICBjb25zdCBldmVudCA9IHJlcXVlc3QuZXZlbnQgYXMgYW55O1xuXG4gICAgICBjb25zdCBxdWVyeVN0cmluZ1BhcmFtZXRlcnMgPSBldmVudD8ucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8IHt9O1xuICAgICAgY29uc3Qgb3JpZ2luID0gcXVlcnlTdHJpbmdQYXJhbWV0ZXJzLm9yaWdpbiB8fCAndW5rbm93bic7XG4gICAgICBjb25zdCBsb2dnZWRVc2VyID0gZXh0cmFjdExvZ2dlZFVzZXIoZXZlbnQpO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHNwYW5SZXN1bHQsXG4gICAgICAgIHN1Y2Nlc3NDb3VudGVyLFxuICAgICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLFxuICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBlbnZpcm9ubWVudCxcbiAgICAgIH0gPSBvdGVsRGF0YTtcblxuICAgICAgLy8gTWFyY2FyIHNwYW4gY29tbyBzdWNlc3NvIHVzYW5kbyBTdGFuZGFyZFRyYWNlclxuICAgICAgc3BhblJlc3VsdC5zZXRTdWNjZXNzKHRydWUpO1xuXG4gICAgICAvLyBNw6l0cmljYXNcbiAgICAgIHN1Y2Nlc3NDb3VudGVyLmFkZCgxLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgJ2Z1bmN0aW9uLm5hbWUnOlxuICAgICAgICAgIHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLm5hbWUnXSB8fCAndW5rbm93bicsXG4gICAgICAgICdzZXJ2aWNlLm5hbWUnOiBzZXJ2aWNlTmFtZSxcbiAgICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IGVudmlyb25tZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGR1cmF0aW9uTXMgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcblxuICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbS5yZWNvcmQoZHVyYXRpb25Ncywge1xuICAgICAgICBvcmlnaW4sXG4gICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6XG4gICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duJyxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgLy8gTG9nIGVzdHJ1dHVyYWRvIGRlIHN1Y2Vzc29cbiAgICAgIGNvbnN0IHN0YW5kYXJkTG9nZ2VyID0gZ2V0U3RhbmRhcmRMb2dnZXIoc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXMpO1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKHtcbiAgICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bJ2Z1bmN0aW9uLm5hbWUnXSBhcyBzdHJpbmcsXG4gICAgICAgICAgaW52b2NhdGlvbklkOiBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uW1xuICAgICAgICAgICAgJ2Z1bmN0aW9uLmludm9jYXRpb25faWQnXG4gICAgICAgICAgXSBhcyBzdHJpbmcsXG4gICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgIHJvdXRlS2V5OiBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydyb3V0ZUtleSddIGFzIHN0cmluZyxcbiAgICAgICAgICByZXF1ZXN0SWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bJ3JlcXVlc3QuaWQnXSBhcyBzdHJpbmcsXG4gICAgICAgICAgbG9nZ2VkVXNlcixcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gRmluYWxpemFyIHNwYW5cbiAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG4gICAgICBhd2FpdCBmb3JjZUZsdXNoKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG1pZGR5VGVsZW1ldHJ5TWlkZGxld2FyZSBhZnRlciBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG5cbiAgb25FcnJvcjogYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3RlbERhdGEgPSAocmVxdWVzdC5jb250ZXh0IGFzIGFueSkub3RlbDtcbiAgICAgIGlmICghb3RlbERhdGEpIHJldHVybjtcblxuICAgICAgY29uc3Qge1xuICAgICAgICBzcGFuUmVzdWx0LFxuICAgICAgICBmYWlsdXJlQ291bnRlcixcbiAgICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSxcbiAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIG9yaWdpbixcbiAgICAgIH0gPSBvdGVsRGF0YTtcbiAgICAgIGNvbnN0IGVycm9yID0gcmVxdWVzdC5lcnJvcjtcblxuICAgICAgLy8gTWFyY2FyIHNwYW4gY29tbyBlcnJvIHVzYW5kbyBTdGFuZGFyZFRyYWNlclxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICAvLyBNw6l0cmljYXNcbiAgICAgIGZhaWx1cmVDb3VudGVyLmFkZCgxLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgZXJyb3JfdHlwZTogZXJyb3I/LmNvbnN0cnVjdG9yPy5uYW1lIHx8ICdVbmtub3duRXJyb3InLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6XG4gICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duJyxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgZHVyYXRpb25NcyA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLnJlY29yZChkdXJhdGlvbk1zLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6XG4gICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8ICd1bmtub3duJyxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgLy8gTG9nIGVzdHJ1dHVyYWRvIGRlIGVycm9cbiAgICAgIGNvbnN0IHN0YW5kYXJkTG9nZ2VyID0gZ2V0U3RhbmRhcmRMb2dnZXIoc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXMpO1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dFcnJvcih7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yPy5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yIG9jY3VycmVkJyxcbiAgICAgICAgZXJyb3I6IGVycm9yIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIGV4ZWN1dGlvbjoge1xuICAgICAgICAgIGZ1bmN0aW9uTmFtZTogc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIGFzIHN0cmluZyxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCdcbiAgICAgICAgICBdIGFzIHN0cmluZyxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCdcbiAgICAgICAgICBdIGFzIHN0cmluZyxcbiAgICAgICAgICBvcmlnaW4sXG4gICAgICAgIH0sXG4gICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgZHVyYXRpb25NcyxcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgIGVycm9yVHlwZTogZXJyb3I/LmNvbnN0cnVjdG9yPy5uYW1lLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEZpbmFsaXphciBzcGFuXG4gICAgICBzcGFuUmVzdWx0LmVuZCgpO1xuICAgICAgYXdhaXQgZm9yY2VGbHVzaCgpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBtaWRkeVRlbGVtZXRyeU1pZGRsZXdhcmUgb25FcnJvciBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG59KTtcbiJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zc3QvbWlkZHkvbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUE4QkEsOENBcUJDO0FBbERELDRDQUF3RDtBQUN4RCw0Q0FBZ0Y7QUFDaEYsMkNBQXlDO0FBQ3pDLHFDQUFpRDtBQUlqRCxTQUFTLHFCQUFxQixDQUFDLEtBQVU7O0lBQ3ZDLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQU87WUFDTCxNQUFNLEVBQUUsQ0FBQSxNQUFBLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSwwQ0FBRSxNQUFNLEtBQUksU0FBUztZQUN0RCxHQUFHLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEtBQUksTUFBQSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksMENBQUUsSUFBSSxDQUFBO1lBQ3ZFLEtBQUssRUFBRSxDQUFBLE1BQUEsS0FBSyxDQUFDLE9BQU8sMENBQUcsWUFBWSxDQUFDLEtBQUksU0FBUztZQUNqRCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsSUFBSSxFQUFFO1lBQzFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxFQUFFO1lBQ3hELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksU0FBUztRQUNyQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxTQUFTO1FBQzVCLEtBQUssRUFBRSxDQUFBLE1BQUEsS0FBSyxDQUFDLE9BQU8sMENBQUcsWUFBWSxDQUFDLEtBQUksU0FBUztRQUNqRCxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsSUFBSSxFQUFFO1FBQzFDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxFQUFF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O2dCQUN6QixXQUFXO2dCQUNYLFNBQVMsRUFBRTtvQkFDVCxZQUFZLEVBQUUsWUFBWTtvQkFDMUIsWUFBWSxFQUNWLENBQUEsTUFBQSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsMENBQUcsd0JBQXdCLENBQUM7d0JBQ3JELFVBQVUsQ0FBQyxZQUF1QjtvQkFDckMsWUFBWSxFQUFFLE1BQUEsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLDBDQUN0Qyx5QkFBeUIsQ0FDaEI7b0JBQ1gsTUFBTTtvQkFDTixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsU0FBUyxFQUFFLFNBQVM7aUJBQ3JCO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVO29CQUNWLE9BQU8sRUFBRSxLQUFLO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsV0FBVywwQ0FBRSxJQUFJO2lCQUNwQzthQUNGLENBQUMsQ0FBQztZQUdILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUEsc0JBQVUsR0FBRSxDQUFDO1FBQ3JCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxRSxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0NBQ0YsQ0FBQyxDQUFDO0FBOVBVLFFBQUEsd0JBQXdCLDRCQThQbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWlkZHkgZnJvbSAnQG1pZGR5L2NvcmUnO1xuaW1wb3J0IHsgbWV0cmljcywgVmFsdWVUeXBlIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IGZvcmNlRmx1c2gsIGdldFN0YW5kYXJkTG9nZ2VyLCBnZXRTdGFuZGFyZFRyYWNlciB9IGZyb20gJy4uL3RlbGVtZXRyeSc7XG5pbXBvcnQgeyBwZXJmb3JtYW5jZSB9IGZyb20gJ3BlcmZfaG9va3MnO1xuaW1wb3J0IHsgZ2V0RW52aXJvbm1lbnRTdGFnZSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuXG5pbnRlcmZhY2UgTWlkZHlNaWRkbGV3YXJlT3B0aW9ucyB7fVxuXG5mdW5jdGlvbiBleHRyYWN0SHR0cEF0dHJpYnV0ZXMoZXZlbnQ6IGFueSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAoZXZlbnQucmVxdWVzdENvbnRleHQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWV0aG9kOiBldmVudC5yZXF1ZXN0Q29udGV4dC5odHRwPy5tZXRob2QgfHwgJ3Vua25vd24nLFxuICAgICAgdXJsOiBldmVudC5yZXF1ZXN0Q29udGV4dC5kb21haW5OYW1lICYmIGV2ZW50LnJlcXVlc3RDb250ZXh0Lmh0dHA/LnBhdGgsXG4gICAgICBhZ2VudDogZXZlbnQuaGVhZGVycz8uWyd1c2VyLWFnZW50J10gfHwgJ3Vua25vd24nLFxuICAgICAgcGF0aFBhcmFtZXRlcnM6IGV2ZW50LnBhdGhQYXJhbWV0ZXJzIHx8IHt9LFxuICAgICAgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzOiBldmVudC5xdWVyeVN0cmluZ1BhcmFtZXRlcnMgfHwge30sXG4gICAgICBib2R5OiBldmVudC5ib2R5IHx8IHt9LFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1ldGhvZDogZXZlbnQuaHR0cE1ldGhvZCB8fCAndW5rbm93bicsXG4gICAgdXJsOiBldmVudC5wYXRoIHx8ICd1bmtub3duJyxcbiAgICBhZ2VudDogZXZlbnQuaGVhZGVycz8uWydVc2VyLUFnZW50J10gfHwgJ3Vua25vd24nLFxuICAgIHBhdGhQYXJhbWV0ZXJzOiBldmVudC5wYXRoUGFyYW1ldGVycyB8fCB7fSxcbiAgICBxdWVyeVN0cmluZ1BhcmFtZXRlcnM6IGV2ZW50LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fSxcbiAgICBib2R5OiBldmVudC5ib2R5IHx8IHt9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdExvZ2dlZFVzZXIoXG4gIGV2ZW50OiBhbnlcbik6IHsgZW1haWw/OiBzdHJpbmc7IHVpZD86IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgbGV0IGxvZ2dlZFVzZXIgPSBldmVudD8ucmVxdWVzdENvbnRleHQ/LmF1dGhvcml6ZXI/LmxhbWJkYT8ubG9nZ2VyVXNlcjtcblxuICBpZiAobG9nZ2VkVXNlcikge1xuICAgIGxvZ2dlZFVzZXIgPVxuICAgICAgdHlwZW9mIGxvZ2dlZFVzZXIgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShsb2dnZWRVc2VyKSA6IGxvZ2dlZFVzZXI7XG4gICAgaWYgKFxuICAgICAgbG9nZ2VkVXNlcj8udXNlciAmJlxuICAgICAgbG9nZ2VkVXNlcj8udXNlcj8uYWNjb3VudF91c2VyICYmXG4gICAgICBsb2dnZWRVc2VyPy51c2VyPy5hY2NvdW50X3VzZXI/LmFjY291bnRcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVtYWlsOiBsb2dnZWRVc2VyLnVzZXIuZW1haWwsXG4gICAgICAgIHVpZDogbG9nZ2VkVXNlci51c2VyLmFjY291bnRfdXNlci5hY2NvdW50LnVpZCxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdERlZmF1bHRBdHRyaWJ1dGVzKHJlcXVlc3Q6IGFueSkge1xuICBjb25zdCB7IGNvbnRleHQ6IGxhbWJkYUNvbnRleHQgfSA9IHJlcXVlc3Q7XG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGxhbWJkYUNvbnRleHQuZnVuY3Rpb25OYW1lO1xuICBjb25zdCBpbnZvY2F0aW9uSWQgPSBsYW1iZGFDb250ZXh0LmF3c1JlcXVlc3RJZDtcbiAgY29uc3Qgc2VydmljZU5hbWUgPSBwcm9jZXNzLmVudi5TRVJWSUNFX05BTUUgfHwgJ3NzdC1zZXJ2aWNlJztcbiAgY29uc3QgZXZlbnQgPSByZXF1ZXN0LmV2ZW50IGFzIGFueTtcbiAgY29uc3QgcXVlcnlTdHJpbmdQYXJhbWV0ZXJzID0gZXZlbnQ/LnF1ZXJ5U3RyaW5nUGFyYW1ldGVycyB8fCB7fTtcbiAgY29uc3QgaHR0cCA9IGV4dHJhY3RIdHRwQXR0cmlidXRlcyhldmVudCk7XG4gIGNvbnN0IG9yaWdpbiA9IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycy5vcmlnaW4gfHwgJ3Vua25vd24nO1xuICBjb25zdCByb3V0ZUtleSA9XG4gICAgZXZlbnQ/LnJvdXRlS2V5IHx8IGV2ZW50Py5yZXF1ZXN0Q29udGV4dD8ucm91dGVLZXkgfHwgJ3Vua25vd24nO1xuICBjb25zdCByZXF1ZXN0SWQgPVxuICAgIGV2ZW50Py5yZXF1ZXN0SWQgfHwgZXZlbnQ/LnJlcXVlc3RDb250ZXh0Py5yZXF1ZXN0SWQgfHwgJ3Vua25vd24nO1xuICBjb25zdCBsb2dnZWRVc2VyID0gZXh0cmFjdExvZ2dlZFVzZXIoZXZlbnQpO1xuICBjb25zdCBzdGFnZSA9IGdldEVudmlyb25tZW50U3RhZ2UoKTtcblxuICByZXR1cm4ge1xuICAgIGZ1bmN0aW9uTmFtZSxcbiAgICBpbnZvY2F0aW9uSWQsXG4gICAgc2VydmljZU5hbWUsXG4gICAgaHR0cCxcbiAgICBvcmlnaW4sXG4gICAgcm91dGVLZXksXG4gICAgcmVxdWVzdElkLFxuICAgIGxvZ2dlZFVzZXIsXG4gICAgc3RhZ2UsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBtaWRkeVRlbGVtZXRyeU1pZGRsZXdhcmUgPSAoXG4gIG9wdGlvbnM/OiBNaWRkeU1pZGRsZXdhcmVPcHRpb25zXG4pOiBtaWRkeS5NaWRkbGV3YXJlT2JqID0+ICh7XG4gIGJlZm9yZTogYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgZnVuY3Rpb25OYW1lLFxuICAgICAgICBpbnZvY2F0aW9uSWQsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBodHRwLFxuICAgICAgICBvcmlnaW4sXG4gICAgICAgIHJvdXRlS2V5LFxuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgIGxvZ2dlZFVzZXIsXG4gICAgICAgIHN0YWdlLFxuICAgICAgfSA9IGV4dHJhY3REZWZhdWx0QXR0cmlidXRlcyhyZXF1ZXN0KTtcblxuICAgICAgLy8gVXNhciBTdGFuZGFyZFRyYWNlciBwYXJhIGNyaWFyIHNwYW4gY29tIGF0cmlidXRvcyBwYWRyb25pemFkb3NcbiAgICAgIGNvbnN0IHN0YW5kYXJkVHJhY2VyID0gZ2V0U3RhbmRhcmRUcmFjZXIoKTtcbiAgICAgIGNvbnN0IHNwYW5SZXN1bHQgPSBzdGFuZGFyZFRyYWNlci5zdGFydFNwYW4oe1xuICAgICAgICBzcGFuTmFtZTogZnVuY3Rpb25OYW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWdlLFxuICAgICAgICBodHRwLFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgaW52b2NhdGlvbklkLFxuICAgICAgICAgIGF3c1JlcXVlc3RJZDogaW52b2NhdGlvbklkLFxuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICByb3V0ZUtleSxcbiAgICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgICAgbG9nZ2VkVXNlcixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBtZXRlciA9IG1ldHJpY3MuZ2V0TWV0ZXIob3JpZ2luKTtcblxuICAgICAgY29uc3QgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSA9IG1ldGVyLmNyZWF0ZUhpc3RvZ3JhbShcbiAgICAgICAgJ2xhbWJkYV9leGVjdXRpb25fZHVyYXRpb24nLFxuICAgICAgICB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUZW1wbyB0b3RhbCBkZSBleGVjdcOnw6NvIGRvIExhbWJkYSBlbSBtcycsXG4gICAgICAgICAgdW5pdDogJ21zJyxcbiAgICAgICAgICB2YWx1ZVR5cGU6IFZhbHVlVHlwZS5ET1VCTEUsXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjb25zdCBzdWNjZXNzQ291bnRlciA9IG1ldGVyLmNyZWF0ZUNvdW50ZXIoJ3RvdGFsX3N1Y2Nlc3NmdWxfcHVyY2hhc2VzJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1RvdGFsIGRlIGNvbXByYXMgYmVtLXN1Y2VkaWRhcycsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZhaWx1cmVDb3VudGVyID0gbWV0ZXIuY3JlYXRlQ291bnRlcigndG90YWxfZmFpbGVkX3B1cmNoYXNlcycsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdUb3RhbCBkZSBjb21wcmFzIGNvbSBmYWxoYScsXG4gICAgICB9KTtcblxuICAgICAgKHJlcXVlc3QuY29udGV4dCBhcyBhbnkpLm90ZWwgPSB7XG4gICAgICAgIHNwYW5SZXN1bHQsXG4gICAgICAgIG1ldGVyLFxuICAgICAgICBleGVjdXRpb25UaW1lSGlzdG9ncmFtLFxuICAgICAgICBzdWNjZXNzQ291bnRlcixcbiAgICAgICAgZmFpbHVyZUNvdW50ZXIsXG4gICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgIGVudmlyb25tZW50OiBzdGFnZSxcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICByb3V0ZUtleSxcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICBsb2dnZWRVc2VyLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gbWlkZHlUZWxlbWV0cnlNaWRkbGV3YXJlIGJlZm9yZSBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG5cbiAgYWZ0ZXI6IGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG90ZWxEYXRhID0gKHJlcXVlc3QuY29udGV4dCBhcyBhbnkpLm90ZWw7XG4gICAgICBpZiAoIW90ZWxEYXRhKSByZXR1cm47XG4gICAgICBjb25zdCBldmVudCA9IHJlcXVlc3QuZXZlbnQgYXMgYW55O1xuXG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gZXh0cmFjdERlZmF1bHRBdHRyaWJ1dGVzKGV2ZW50KTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICBzcGFuUmVzdWx0LFxuICAgICAgICBzdWNjZXNzQ291bnRlcixcbiAgICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSxcbiAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICB9ID0gb3RlbERhdGE7XG5cbiAgICAgIC8vIE1hcmNhciBzcGFuIGNvbW8gc3VjZXNzbyB1c2FuZG8gU3RhbmRhcmRUcmFjZXJcbiAgICAgIHNwYW5SZXN1bHQuc2V0U3VjY2Vzcyh0cnVlKTtcblxuICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID1cbiAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24ubmFtZSddIHx8XG4gICAgICAgIChhdHRyaWJ1dGVzLmZ1bmN0aW9uTmFtZSBhcyBzdHJpbmcpO1xuICAgICAgY29uc3Qgcm91dGVLZXkgPVxuICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydyb3V0ZS5rZXknXSB8fFxuICAgICAgICAoYXR0cmlidXRlcy5yb3V0ZUtleSBhcyBzdHJpbmcpO1xuICAgICAgY29uc3QgcmVxdWVzdElkID1cbiAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsncmVxdWVzdC5pZCddIHx8XG4gICAgICAgIChhdHRyaWJ1dGVzLnJlcXVlc3RJZCBhcyBzdHJpbmcpO1xuXG4gICAgICAvLyBNw6l0cmljYXNcbiAgICAgIHN1Y2Nlc3NDb3VudGVyLmFkZCgxLCB7XG4gICAgICAgIG9yaWdpbixcbiAgICAgICAgJ2Z1bmN0aW9uLm5hbWUnOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICdyZXF1ZXN0LmlkJzogcmVxdWVzdElkLFxuICAgICAgICAncm91dGUua2V5Jzogcm91dGVLZXksXG4gICAgICAgICdzZXJ2aWNlLm5hbWUnOiBzZXJ2aWNlTmFtZSxcbiAgICAgICAgJ2RlcGxveW1lbnQuZW52aXJvbm1lbnQubmFtZSc6IGVudmlyb25tZW50LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGR1cmF0aW9uTXMgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcblxuICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbS5yZWNvcmQoZHVyYXRpb25Ncywge1xuICAgICAgICBvcmlnaW4sXG4gICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICAnZnVuY3Rpb24ubmFtZSc6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgJ3JlcXVlc3QuaWQnOiByZXF1ZXN0SWQsXG4gICAgICAgICdyb3V0ZS5rZXknOiByb3V0ZUtleSxcbiAgICAgICAgJ3NlcnZpY2UubmFtZSc6IHNlcnZpY2VOYW1lLFxuICAgICAgICAnZGVwbG95bWVudC5lbnZpcm9ubWVudC5uYW1lJzogZW52aXJvbm1lbnQsXG4gICAgICB9KTtcblxuICAgICAgLy8gTG9nIGVzdHJ1dHVyYWRvIGRlIHN1Y2Vzc29cbiAgICAgIGNvbnN0IHN0YW5kYXJkTG9nZ2VyID0gZ2V0U3RhbmRhcmRMb2dnZXIoc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXMpO1xuXG4gICAgICBhd2FpdCBzdGFuZGFyZExvZ2dlci5sb2dJbmZvKHtcbiAgICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScsXG4gICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICBleGVjdXRpb246IHtcbiAgICAgICAgICBmdW5jdGlvbk5hbWU6IGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICBpbnZvY2F0aW9uSWQ6XG4gICAgICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5pbnZvY2F0aW9uX2lkJ10gfHxcbiAgICAgICAgICAgIChhdHRyaWJ1dGVzLmludm9jYXRpb25JZCBhcyBzdHJpbmcpLFxuICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICByb3V0ZUtleTogcm91dGVLZXksXG4gICAgICAgICAgcmVxdWVzdElkOiByZXF1ZXN0SWQsXG4gICAgICAgICAgbG9nZ2VkVXNlcjoge1xuICAgICAgICAgICAgdWlkOiAoc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnbG9nZ2VkX3VzZXIudWlkJ10gfHxcbiAgICAgICAgICAgICAgYXR0cmlidXRlcy5sb2dnZWRVc2VyPy51aWQpIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGVtYWlsOiAoc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnbG9nZ2VkX3VzZXIuZW1haWwnXSB8fFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVzLmxvZ2dlZFVzZXI/LmVtYWlsKSBhcyBzdHJpbmcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zLFxuICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gRmluYWxpemFyIHNwYW5cbiAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG4gICAgICBhd2FpdCBmb3JjZUZsdXNoKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG1pZGR5VGVsZW1ldHJ5TWlkZGxld2FyZSBhZnRlciBob29rOicsIGVycm9yKTtcbiAgICB9XG4gIH0sXG5cbiAgb25FcnJvcjogYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3RlbERhdGEgPSAocmVxdWVzdC5jb250ZXh0IGFzIGFueSkub3RlbDtcbiAgICAgIGlmICghb3RlbERhdGEpIHJldHVybjtcblxuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IGV4dHJhY3REZWZhdWx0QXR0cmlidXRlcyhyZXF1ZXN0LmV2ZW50KTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICBzcGFuUmVzdWx0LFxuICAgICAgICBmYWlsdXJlQ291bnRlcixcbiAgICAgICAgZXhlY3V0aW9uVGltZUhpc3RvZ3JhbSxcbiAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQsXG4gICAgICAgIG9yaWdpbixcbiAgICAgIH0gPSBvdGVsRGF0YTtcbiAgICAgIGNvbnN0IGVycm9yID0gcmVxdWVzdC5lcnJvcjtcblxuICAgICAgLy8gTWFyY2FyIHNwYW4gY29tbyBlcnJvIHVzYW5kbyBTdGFuZGFyZFRyYWNlclxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHNwYW5SZXN1bHQuc2V0RXJyb3IoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmdW5jdGlvbk5hbWUgPVxuICAgICAgICBzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcz8uWydmdW5jdGlvbi5uYW1lJ10gfHxcbiAgICAgICAgYXR0cmlidXRlcy5mdW5jdGlvbk5hbWUgfHxcbiAgICAgICAgJ3Vua25vd24nO1xuICAgICAgY29uc3QgcmVxdWVzdElkID1cbiAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsncmVxdWVzdC5pZCddIHx8XG4gICAgICAgIGF0dHJpYnV0ZXMucmVxdWVzdElkIHx8XG4gICAgICAgICd1bmtub3duJztcbiAgICAgIGNvbnN0IHJvdXRlS2V5ID1cbiAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/Llsncm91dGUua2V5J10gfHxcbiAgICAgICAgYXR0cmlidXRlcy5yb3V0ZUtleSB8fFxuICAgICAgICAndW5rbm93bic7XG5cbiAgICAgIC8vIE3DqXRyaWNhc1xuICAgICAgZmFpbHVyZUNvdW50ZXIuYWRkKDEsIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBlcnJvcl90eXBlOiBlcnJvcj8uY29uc3RydWN0b3I/Lm5hbWUgfHwgJ1Vua25vd25FcnJvcicsXG4gICAgICAgICdmdW5jdGlvbi5uYW1lJzogZnVuY3Rpb25OYW1lLFxuICAgICAgICAncmVxdWVzdC5pZCc6IHJlcXVlc3RJZCxcbiAgICAgICAgJ3JvdXRlLmtleSc6IHJvdXRlS2V5LFxuICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXG4gICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBlbnZpcm9ubWVudCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBkdXJhdGlvbk1zID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgIGV4ZWN1dGlvblRpbWVIaXN0b2dyYW0ucmVjb3JkKGR1cmF0aW9uTXMsIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICdmdW5jdGlvbi5uYW1lJzogZnVuY3Rpb25OYW1lLFxuICAgICAgICAncmVxdWVzdC5pZCc6IHJlcXVlc3RJZCxcbiAgICAgICAgJ3JvdXRlLmtleSc6IHJvdXRlS2V5LFxuICAgICAgICAnc2VydmljZS5uYW1lJzogc2VydmljZU5hbWUsXG4gICAgICAgICdkZXBsb3ltZW50LmVudmlyb25tZW50Lm5hbWUnOiBlbnZpcm9ubWVudCxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBMb2cgZXN0cnV0dXJhZG8gZGUgZXJyb1xuICAgICAgY29uc3Qgc3RhbmRhcmRMb2dnZXIgPSBnZXRTdGFuZGFyZExvZ2dlcihzcGFuUmVzdWx0LnNwYW4uYXR0cmlidXRlcyk7XG5cbiAgICAgIGF3YWl0IHN0YW5kYXJkTG9nZ2VyLmxvZ0Vycm9yKHtcbiAgICAgICAgbWVzc2FnZTogZXJyb3I/Lm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgICBlcnJvcjogZXJyb3IgfHwgdW5kZWZpbmVkLFxuICAgICAgICBlbnZpcm9ubWVudCxcbiAgICAgICAgZXhlY3V0aW9uOiB7XG4gICAgICAgICAgZnVuY3Rpb25OYW1lOiBmdW5jdGlvbk5hbWUsXG4gICAgICAgICAgaW52b2NhdGlvbklkOlxuICAgICAgICAgICAgc3BhblJlc3VsdC5zcGFuLmF0dHJpYnV0ZXM/LlsnZnVuY3Rpb24uaW52b2NhdGlvbl9pZCddIHx8XG4gICAgICAgICAgICAoYXR0cmlidXRlcy5pbnZvY2F0aW9uSWQgYXMgc3RyaW5nKSxcbiAgICAgICAgICBhd3NSZXF1ZXN0SWQ6IHNwYW5SZXN1bHQuc3Bhbi5hdHRyaWJ1dGVzPy5bXG4gICAgICAgICAgICAnZnVuY3Rpb24uYXdzX3JlcXVlc3RfaWQnXG4gICAgICAgICAgXSBhcyBzdHJpbmcsXG4gICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgIHJvdXRlS2V5OiByb3V0ZUtleSxcbiAgICAgICAgICByZXF1ZXN0SWQ6IHJlcXVlc3RJZCxcbiAgICAgICAgfSxcbiAgICAgICAgcGVyZm9ybWFuY2U6IHtcbiAgICAgICAgICBkdXJhdGlvbk1zLFxuICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXJyb3JUeXBlOiBlcnJvcj8uY29uc3RydWN0b3I/Lm5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgLy8gRmluYWxpemFyIHNwYW5cbiAgICAgIHNwYW5SZXN1bHQuZW5kKCk7XG4gICAgICBhd2FpdCBmb3JjZUZsdXNoKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG1pZGR5VGVsZW1ldHJ5TWlkZGxld2FyZSBvbkVycm9yIGhvb2s6JywgZXJyb3IpO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mecanizou/telemetry-hub",
3
- "version": "1.3.3",
3
+ "version": "1.3.4",
4
4
  "description": "Mecanizou telemetry lib",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",