@cdktn/provider-schema 0.23.0-pre.41 → 0.23.0-pre.45

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.
@@ -55,16 +55,16 @@ const TRANSIENT_INIT_ERROR_PATTERNS = [
55
55
  * @param options - spawn options forwarded to `exec` (`cwd` is required so
56
56
  * `terraform init` runs inside the temp dir holding `main.tf.json`)
57
57
  * @param maxAttempts - total attempts including the initial call; the number
58
- * of retries is `maxAttempts - 1`. Defaults to 3 (1 initial + 2 retries)
58
+ * of retries is `maxAttempts - 1`. Defaults to 5 (1 initial + 4 retries)
59
59
  * @param baseDelayMs - delay before the first retry. Tests pass `0` to skip
60
- * waits. Defaults to 1000ms
60
+ * waits. Defaults to 5000ms
61
61
  * @param backoffMultiplier - factor applied to the delay on each subsequent
62
62
  * retry (so retries wait `baseDelayMs * multiplier^(attempt-1)`). Defaults
63
63
  * to 2 (1s → 2s → 4s …)
64
64
  * @returns stdout from the successful `terraform init` invocation
65
65
  * @internal exposed for testing
66
66
  */
67
- async function terraformInitWithRetry(options, maxAttempts = 3, baseDelayMs = 1000, backoffMultiplier = 2) {
67
+ async function terraformInitWithRetry(options, maxAttempts = 5, baseDelayMs = 5000, backoffMultiplier = 2) {
68
68
  var _a;
69
69
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
70
70
  try {
@@ -77,7 +77,7 @@ async function terraformInitWithRetry(options, maxAttempts = 3, baseDelayMs = 10
77
77
  throw error;
78
78
  }
79
79
  const delayMs = baseDelayMs * backoffMultiplier ** (attempt - 1);
80
- console.error(`terraform init failed with a transient error, retrying in ${delayMs}ms (attempt ${attempt}/${maxAttempts - 1})`);
80
+ console.log(`terraform init failed with a transient error, retrying in ${delayMs}ms (attempt ${attempt}/${maxAttempts - 1})`);
81
81
  await new Promise((resolve) => setTimeout(resolve, delayMs));
82
82
  }
83
83
  }
@@ -275,4 +275,4 @@ async function readModuleSchema(target) {
275
275
  return moduleSchema;
276
276
  }
277
277
  exports.readModuleSchema = readModuleSchema;
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3ZpZGVyLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUU3Qiw4Q0FBK0M7QUFDL0MsNENBZXdCO0FBRXhCLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7QUFFN0UsbUVBQW1FO0FBQ25FLHFFQUFxRTtBQUNyRSxzRUFBc0U7QUFDdEUsTUFBTSw2QkFBNkIsR0FBRztJQUNwQyxhQUFhO0lBQ2IsY0FBYztJQUNkLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLFlBQVk7SUFDWixZQUFZO0lBQ1osaUJBQWlCO0NBQ2xCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBd0IsRUFDeEIsV0FBVyxHQUFHLENBQUMsRUFDZixXQUFXLEdBQUcsSUFBSSxFQUNsQixpQkFBaUIsR0FBRyxDQUFDOztJQUVyQixLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUEsY0FBSSxFQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxNQUFNLEdBQVcsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxtQ0FBSSxFQUFFLENBQUM7WUFDM0MsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxD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Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNvbnZlcnRGaWxlcyB9IGZyb20gXCJAY2RrdG4vaGNsMmpzb25cIjtcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQXR0cmlidXRlVHlwZSxcbiAgQmxvY2ssXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4gIElucHV0LFxuICBNb2R1bGVJbmRleCxcbiAgTW9kdWxlU2NoZW1hLFxuICBQcm92aWRlclNjaGVtYSxcbiAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCxcbiAgVmVyc2lvblNjaGVtYSxcbiAgZXhlYyxcbiAgaXNOZXN0ZWRUeXBlQXR0cmlidXRlLFxuICB3aXRoVGVtcERpcixcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmNvbnN0IHRlcnJhZm9ybUJpbmFyeU5hbWUgPSBwcm9jZXNzLmVudi5URVJSQUZPUk1fQklOQVJZX05BTUUgfHwgXCJ0ZXJyYWZvcm1cIjtcblxuLy8gUHJvdmlkZXIgYmluYXJpZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIgcmVsZWFzZSBDRE5zIGR1cmluZ1xuLy8gYHRlcnJhZm9ybSBpbml0YCwgd2hpY2ggaW50ZXJtaXR0ZW50bHkgcmV0dXJucyA1eHguIFJldHJ5IG9uIHRob3NlXG4vLyBzaWduYXR1cmVzIG9ubHkg4oCUIHJlYWwgY29uZmlnL3NjaGVtYSBlcnJvcnMgc2hvdWxkIHN0aWxsIGZhaWwgZmFzdC5cbmNvbnN0IFRSQU5TSUVOVF9JTklUX0VSUk9SX1BBVFRFUk5TID0gW1xuICAvXFxiNTBbMjM0XVxcYi8sXG4gIC9CYWQgR2F0ZXdheS9pLFxuICAvU2VydmljZSBVbmF2YWlsYWJsZS9pLFxuICAvR2F0ZXdheSBUaW1lb3V0L2ksXG4gIC9FQ09OTlJFU0VUL2ksXG4gIC9FVElNRURPVVQvaSxcbiAgL0VBSV9BR0FJTi9pLFxuICAvdW5leHBlY3RlZCBFT0YvaSxcbl07XG5cbi8qKlxuICogUnVucyBgdGVycmFmb3JtIGluaXRgIGFuZCByZXRyaWVzIG9uIHRyYW5zaWVudCBIVFRQL25ldHdvcmsgZmFpbHVyZXMuXG4gKlxuICogUHJvdmlkZXIgYmluYXJpZXMgYXJlIHB1bGxlZCBmcm9tIEdpdEh1YidzIHJlbGVhc2UgQ0ROLCB3aGljaFxuICogaW50ZXJtaXR0ZW50bHkgcmV0dXJucyA1eHguIFRoZSByZXRyeSBvbmx5IGZpcmVzIHdoZW4gc3RkZXJyIG1hdGNoZXMgYVxuICoga25vd24gdHJhbnNpZW50IHBhdHRlcm4g4oCUIHJlYWwgZXJyb3JzIChiYWQgdmVyc2lvbiwgc2NoZW1hIHBhcnNlLCBldGMuKVxuICogc3RpbGwgZmFpbCBvbiB0aGUgZmlyc3QgYXR0ZW1wdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIHNwYXduIG9wdGlvbnMgZm9yd2FyZGVkIHRvIGBleGVjYCAoYGN3ZGAgaXMgcmVxdWlyZWQgc29cbiAqICAgYHRlcnJhZm9ybSBpbml0YCBydW5zIGluc2lkZSB0aGUgdGVtcCBkaXIgaG9sZGluZyBgbWFpbi50Zi5qc29uYClcbiAqIEBwYXJhbSBtYXhBdHRlbXB0cyAtIHRvdGFsIGF0dGVtcHRzIGluY2x1ZGluZyB0aGUgaW5pdGlhbCBjYWxsOyB0aGUgbnVtYmVyXG4gKiAgIG9mIHJldHJpZXMgaXMgYG1heEF0dGVtcHRzIC0gMWAuIERlZmF1bHRzIHRvIDMgKDEgaW5pdGlhbCArIDIgcmV0cmllcylcbiAqIEBwYXJhbSBiYXNlRGVsYXlNcyAtIGRlbGF5IGJlZm9yZSB0aGUgZmlyc3QgcmV0cnkuIFRlc3RzIHBhc3MgYDBgIHRvIHNraXBcbiAqICAgd2FpdHMuIERlZmF1bHRzIHRvIDEwMDBtc1xuICogQHBhcmFtIGJhY2tvZmZNdWx0aXBsaWVyIC0gZmFjdG9yIGFwcGxpZWQgdG8gdGhlIGRlbGF5IG9uIGVhY2ggc3Vic2VxdWVudFxuICogICByZXRyeSAoc28gcmV0cmllcyB3YWl0IGBiYXNlRGVsYXlNcyAqIG11bHRpcGxpZXJeKGF0dGVtcHQtMSlgKS4gRGVmYXVsdHNcbiAqICAgdG8gMiAoMXMg4oaSIDJzIOKGkiA0cyDigKYpXG4gKiBAcmV0dXJucyBzdGRvdXQgZnJvbSB0aGUgc3VjY2Vzc2Z1bCBgdGVycmFmb3JtIGluaXRgIGludm9jYXRpb25cbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KFxuICBvcHRpb25zOiB7IGN3ZDogc3RyaW5nIH0sXG4gIG1heEF0dGVtcHRzID0gMyxcbiAgYmFzZURlbGF5TXMgPSAxMDAwLFxuICBiYWNrb2ZmTXVsdGlwbGllciA9IDIsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSBtYXhBdHRlbXB0czsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcImluaXRcIl0sIG9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnN0IHN0ZGVycjogc3RyaW5nID0gZXJyb3I/LnN0ZGVyciA/PyBcIlwiO1xuICAgICAgY29uc3QgdHJhbnNpZW50ID0gVFJBTlNJRU5UX0lOSVRfRVJST1JfUEFUVEVSTlMuc29tZSgocCkgPT5cbiAgICAgICAgcC50ZXN0KHN0ZGVyciksXG4gICAgICApO1xuICAgICAgaWYgKCF0cmFuc2llbnQgfHwgYXR0ZW1wdCA9PT0gbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjb25zdCBkZWxheU1zID0gYmFzZURlbGF5TXMgKiBiYWNrb2ZmTXVsdGlwbGllciAqKiAoYXR0ZW1wdCAtIDEpO1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYHRlcnJhZm9ybSBpbml0IGZhaWxlZCB3aXRoIGEgdHJhbnNpZW50IGVycm9yLCByZXRyeWluZyBpbiAke2RlbGF5TXN9bXMgKGF0dGVtcHQgJHthdHRlbXB0fS8ke21heEF0dGVtcHRzIC0gMX0pYCxcbiAgICAgICk7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheU1zKSk7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihcInVucmVhY2hhYmxlXCIpO1xufVxuXG4vKipcbiAqIEZ1bGx5IFF1YWxpZmllZCBwcm92aWRlciBuYW1lIGluIHRoZSBmb3JtYXQ6XG4gKiBsaWtlIGUuZy4gcmVnaXN0cnkudGVycmFmb3JtLmlvL2hhc2hpY29ycC9hd3NcbiAqL1xuZXhwb3J0IHR5cGUgRlFQTiA9IHN0cmluZyAmIHsgX190eXBlOiBcIkZ1bGx5UXVhbGlmaWVkUHJvdmlkZXJOYW1lXCIgfTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVySG9zdG5hbWUgPSBzdHJpbmcgJiB7IF9fdHlwZTogXCJQcm92aWRlckhvc3RuYW1lXCIgfTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyTmFtZXNwYWNlID0gc3RyaW5nICYgeyBfX3R5cGU6IFwiUHJvdmlkZXJOYW1lc3BhY2VcIiB9O1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJOYW1lID0gc3RyaW5nICYgeyBfX3R5cGU6IFwiUHJvdmlkZXJOYW1lXCIgfTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRlFQTiA9IChmOiBGUVBOKSA9PiB7XG4gIGNvbnN0IFtob3N0bmFtZSwgbmFtZXNwYWNlLCBuYW1lXSA9IGYuc3BsaXQoXCIvXCIpO1xuICBpZiAoIW5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbid0IGhhbmRsZSAke2Z9YCk7XG4gIH1cbiAgcmV0dXJuIHsgaG9zdG5hbWUsIG5hbWVzcGFjZSwgbmFtZSB9IGFzIHtcbiAgICBob3N0bmFtZTogUHJvdmlkZXJIb3N0bmFtZTtcbiAgICBuYW1lc3BhY2U6IFByb3ZpZGVyTmFtZXNwYWNlO1xuICAgIG5hbWU6IFByb3ZpZGVyTmFtZTtcbiAgfTtcbn07XG5cbmNvbnN0IHVud3JhcElmQXJyYXkgPSA8VD4oaXRlbTogVCB8IFRbXSk6IFQgPT5cbiAgQXJyYXkuaXNBcnJheShpdGVtKSA/IGl0ZW1bMF0gOiBpdGVtO1xuXG5jb25zdCB0cmFuc2Zvcm1WYXJpYWJsZXMgPSAodmFyaWFibGVzOiBhbnkpID0+IHtcbiAgY29uc3QgcmVzdWx0OiBJbnB1dFtdID0gW107XG5cbiAgaWYgKCF2YXJpYWJsZXMpIHJldHVybiByZXN1bHQ7XG5cbiAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKHZhcmlhYmxlcykpIHtcbiAgICBjb25zdCB2YXJpYWJsZSA9IHVud3JhcElmQXJyYXkodmFyaWFibGVzW25hbWVdKTtcbiAgICBsZXQgdmFyaWFibGVUeXBlOiBzdHJpbmc7XG5cbiAgICBpZiAoXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICB2YXJpYWJsZS5oYXNPd25Qcm9wZXJ0eShcInR5cGVcIikgPT0gZmFsc2UgJiZcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgICAgIHZhcmlhYmxlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKSA9PSB0cnVlXG4gICAgKSB7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2YXJpYWJsZVtcImRlZmF1bHRcIl0pIHtcbiAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICB2YXJpYWJsZVR5cGUgPSBcImJvb2xcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IFwibnVtYmVyXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gXCJhbnlcIjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcmF3VmFyaWFibGVUeXBlID0gdmFyaWFibGVbXCJ0eXBlXCJdO1xuICAgICAgaWYgKFxuICAgICAgICB0eXBlb2YgcmF3VmFyaWFibGVUeXBlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIHJhd1ZhcmlhYmxlVHlwZS5zdGFydHNXaXRoKFwiJHtcIikgJiZcbiAgICAgICAgcmF3VmFyaWFibGVUeXBlLmVuZHNXaXRoKFwifVwiKSAmJlxuICAgICAgICAhcmF3VmFyaWFibGVUeXBlLmluY2x1ZGVzKFwiXFxuXCIpXG4gICAgICApIHtcbiAgICAgICAgdmFyaWFibGVUeXBlID0gcmF3VmFyaWFibGVUeXBlLnNsaWNlKDIsIC0xKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhcmlhYmxlVHlwZSA9IFwiYW55XCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbTogSW5wdXQgPSB7XG4gICAgICBuYW1lLFxuICAgICAgdHlwZTogdmFyaWFibGVUeXBlLFxuICAgICAgZGVzY3JpcHRpb246IHZhcmlhYmxlW1wiZGVzY3JpcHRpb25cIl0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICByZXF1aXJlZDogdmFyaWFibGUuaGFzT3duUHJvcGVydHkoXCJkZWZhdWx0XCIpID09IGZhbHNlLFxuICAgIH07XG5cbiAgICBpZiAoIWl0ZW0ucmVxdWlyZWQpIHtcbiAgICAgIGl0ZW1bXCJkZWZhdWx0XCJdID0gdmFyaWFibGVbXCJkZWZhdWx0XCJdO1xuICAgIH1cblxuICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmNvbnN0IHRyYW5zZm9ybU91dHB1dHMgPSAob3V0cHV0czogYW55KSA9PiB7XG4gIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gIGlmIChvdXRwdXRzKSB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKG91dHB1dHMpKSB7XG4gICAgICBjb25zdCBvdXRwdXQgPSB1bndyYXBJZkFycmF5KG91dHB1dHNbbmFtZV0pO1xuXG4gICAgICBjb25zdCBpdGVtOiBhbnkgPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvdXRwdXRbXCJkZXNjcmlwdGlvblwiXSxcbiAgICAgIH07XG5cbiAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5jb25zdCBoYXJ2ZXN0TW9kdWxlU2NoZW1hID0gYXN5bmMgKFxuICB3b3JraW5nRGlyZWN0b3J5OiBzdHJpbmcsXG4gIG1vZHVsZXM6IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9PiB7XG4gIGNvbnN0IGZpbGVOYW1lID0gcGF0aC5qb2luKFxuICAgIHdvcmtpbmdEaXJlY3RvcnksXG4gICAgXCIudGVycmFmb3JtXCIsXG4gICAgXCJtb2R1bGVzXCIsXG4gICAgXCJtb2R1bGVzLmpzb25cIixcbiAgKTtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVOYW1lKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNb2R1bGVzIHdlcmUgbm90IGdlbmVyYXRlZCBwcm9wZXJseSAtIGNvdWxkbid0IGZpbmQgJHtmaWxlTmFtZX1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtb2R1bGVJbmRleCA9IEpTT04ucGFyc2UoXG4gICAgZnMucmVhZEZpbGVTeW5jKGZpbGVOYW1lLCBcInV0Zi04XCIpLFxuICApIGFzIE1vZHVsZUluZGV4O1xuXG4gIGZvciAoY29uc3QgbW9kIG9mIG1vZHVsZXMpIHtcbiAgICBjb25zdCBtID0gbW9kdWxlSW5kZXguTW9kdWxlcy5maW5kKChvdGhlcikgPT4gbW9kID09PSBvdGhlci5LZXkpO1xuXG4gICAgaWYgKCFtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IGZpbmQgJHttfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZCA9IGF3YWl0IGNvbnZlcnRGaWxlcyhwYXRoLmpvaW4od29ya2luZ0RpcmVjdG9yeSwgbS5EaXIpKTtcblxuICAgIGlmICghcGFyc2VkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBNb2R1bGVzIHdlcmUgbm90IGdlbmVyYXRlZCBwcm9wZXJseSAtIGNvdWxkbid0IHBhcnNlICR7bS5EaXJ9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hOiBNb2R1bGVTY2hlbWEgPSB7XG4gICAgICBpbnB1dHM6IHRyYW5zZm9ybVZhcmlhYmxlcyhwYXJzZWQudmFyaWFibGUpLFxuICAgICAgb3V0cHV0czogdHJhbnNmb3JtT3V0cHV0cyhwYXJzZWQub3V0cHV0KSxcbiAgICAgIG5hbWU6IG1vZCxcbiAgICB9O1xuXG4gICAgcmVzdWx0W21vZF0gPSBzY2hlbWE7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1Db25maWcge1xuICBwcm92aWRlcj86IHsgW25hbWU6IHN0cmluZ106IFJlY29yZDxzdHJpbmcsIGFueT4gfTtcbiAgdGVycmFmb3JtOiB7XG4gICAgcmVxdWlyZWRfcHJvdmlkZXJzPzoge1xuICAgICAgW25hbWU6IHN0cmluZ106IHsgc291cmNlPzogc3RyaW5nOyB2ZXJzaW9uPzogc3RyaW5nIH07XG4gICAgfTtcbiAgfTtcbiAgbW9kdWxlPzogeyBbbmFtZTogc3RyaW5nXTogeyBzb3VyY2U6IHN0cmluZzsgdmVyc2lvbj86IHN0cmluZyB9IH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUHJvdmlkZXJTY2hlbWEoXG4gIHRhcmdldDogQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4pIHtcbiAgY29uc3QgY29uZmlnOiBUZXJyYWZvcm1Db25maWcgPSB7XG4gICAgcHJvdmlkZXI6IHt9LFxuICAgIHRlcnJhZm9ybToge1xuICAgICAgcmVxdWlyZWRfcHJvdmlkZXJzOiB7fSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbmZpZy5wcm92aWRlciFbdGFyZ2V0Lm5hbWVdID0ge307XG4gIGNvbmZpZy50ZXJyYWZvcm0ucmVxdWlyZWRfcHJvdmlkZXJzIVt0YXJnZXQubmFtZV0gPSB7XG4gICAgdmVyc2lvbjogdGFyZ2V0LnZlcnNpb24sXG4gICAgc291cmNlOiB0YXJnZXQuc291cmNlLFxuICB9O1xuXG4gIGxldCBwcm92aWRlclNjaGVtYTogUHJvdmlkZXJTY2hlbWEgPSB7IGZvcm1hdF92ZXJzaW9uOiBcIjAuMVwiIH07XG5cbiAgYXdhaXQgd2l0aFRlbXBEaXIoXCJmZXRjaFByb3ZpZGVyU2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvdXRkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKG91dGRpciwgXCJtYWluLnRmLmpzb25cIik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcblxuICAgIGF3YWl0IHRlcnJhZm9ybUluaXRXaXRoUmV0cnkoeyBjd2Q6IG91dGRpciB9KTtcbiAgICBwcm92aWRlclNjaGVtYSA9IEpTT04ucGFyc2UoXG4gICAgICBhd2FpdCBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcInByb3ZpZGVyc1wiLCBcInNjaGVtYVwiLCBcIi1qc29uXCJdLCB7XG4gICAgICAgIGN3ZDogb3V0ZGlyLFxuICAgICAgfSksXG4gICAgKSBhcyBQcm92aWRlclNjaGVtYTtcblxuICAgIGNvbnN0IHZlcnNpb25TY2hlbWEgPSBKU09OLnBhcnNlKFxuICAgICAgYXdhaXQgZXhlYyh0ZXJyYWZvcm1CaW5hcnlOYW1lLCBbXCJ2ZXJzaW9uXCIsIFwiLWpzb25cIl0sIHtcbiAgICAgICAgY3dkOiBvdXRkaXIsXG4gICAgICB9KSxcbiAgICApIGFzIFZlcnNpb25TY2hlbWE7XG5cbiAgICBwcm92aWRlclNjaGVtYS5wcm92aWRlcl92ZXJzaW9ucyA9IHZlcnNpb25TY2hlbWEucHJvdmlkZXJfc2VsZWN0aW9ucztcbiAgfSk7XG5cbiAgcmV0dXJuIHNhbml0aXplUHJvdmlkZXJTY2hlbWEocHJvdmlkZXJTY2hlbWEpO1xufVxuXG4vLyBUaGUgcHJvdmlkZXJzIGhhdmUgc29tZSBwb3RlbnRpYWwgYnVncyB0aGF0IHdlIHdhbnQgdG8gcHJvLWFjdGl2ZWx5XG4vLyBmaXggaGVyZSBzbyB0aGF0IHRoZSByZXN0IG9mIHRoZSBjb2RlIGNhbiBhc3N1bWUgYSBjb25zaXN0ZW50IHNjaGVtYS5cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hKHNjaGVtYTogUHJvdmlkZXJTY2hlbWEpOiBQcm92aWRlclNjaGVtYSB7XG4gIC8vIE1haW5seSBzb21lIGF0dHJpYnV0ZXMgYXJlIFwiZG91YmxlZFwiLCBlLmcuIFtcImxpc3RcIiwgXCJzdHJpbmdcIiwgXCJsaXN0XCIsIFwic3RyaW5nXCJdXG4gIC8vIGluc3RlYWQgb2YgW1wibGlzdFwiLCBcInN0cmluZ1wiXVxuICBmdW5jdGlvbiBhdHRyaWJ1dGVEb3VibGluZ0ZpeChhdHRyaWJ1dGU6IEF0dHJpYnV0ZSk6IEF0dHJpYnV0ZSB7XG4gICAgaWYgKGlzTmVzdGVkVHlwZUF0dHJpYnV0ZShhdHRyaWJ1dGUpIHx8ICFBcnJheS5pc0FycmF5KGF0dHJpYnV0ZS50eXBlKSkge1xuICAgICAgcmV0dXJuIGF0dHJpYnV0ZTtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlID1cbiAgICAgIGF0dHJpYnV0ZS50eXBlLmxlbmd0aCA9PT0gMlxuICAgICAgICA/IGF0dHJpYnV0ZS50eXBlXG4gICAgICAgIDogKGF0dHJpYnV0ZS50eXBlIGFzIHN0cmluZ1tdKS5zbGljZSgwLCAyKTsgLy8gVGhlIHR5cGVzIHRlbGwgdXMgdGhpcyBjYW4ndCBoYXBwZW4sIHJlYWxpdHkgYmVncyB0byBkaWZmZXJcblxuICAgIGF0dHJpYnV0ZS50eXBlID0gdHlwZSBhcyBBdHRyaWJ1dGVUeXBlO1xuICAgIHJldHVybiBhdHRyaWJ1dGU7XG4gIH1cblxuICAvLyBNdXRhdGVzIGJsb2NrIHdpdGggdGhlIGZpeFxuICBmdW5jdGlvbiBzYW5pdGl6ZUJsb2NrKGJsb2NrOiBCbG9jaykge1xuICAgIE9iamVjdC52YWx1ZXMoYmxvY2suYXR0cmlidXRlcyB8fCB7fSkuZm9yRWFjaChhdHRyaWJ1dGVEb3VibGluZ0ZpeCk7XG4gICAgT2JqZWN0LnZhbHVlcyhibG9jay5ibG9ja190eXBlcyB8fCB7fSkuZm9yRWFjaCgoYmxvY2tUeXBlKSA9PiB7XG4gICAgICBzYW5pdGl6ZUJsb2NrKGJsb2NrVHlwZS5ibG9jayk7XG4gICAgfSk7XG4gIH1cblxuICBPYmplY3QudmFsdWVzKHNjaGVtYS5wcm92aWRlcl9zY2hlbWFzIHx8IHt9KS5mb3JFYWNoKChwcm92aWRlcikgPT4ge1xuICAgIGNvbnN0IGVudGl0aWVzID0gW1xuICAgICAgcHJvdmlkZXIucHJvdmlkZXIsXG4gICAgICAuLi5PYmplY3QudmFsdWVzKHByb3ZpZGVyLnJlc291cmNlX3NjaGVtYXMgfHwge30pLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhwcm92aWRlci5kYXRhX3NvdXJjZV9zY2hlbWFzIHx8IHt9KSxcbiAgICBdO1xuXG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5KSA9PiB7XG4gICAgICBzYW5pdGl6ZUJsb2NrKGVudGl0eS5ibG9jayk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBzY2hlbWE7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkTW9kdWxlU2NoZW1hKHRhcmdldDogQ29uc3RydWN0c01ha2VyTW9kdWxlVGFyZ2V0KSB7XG4gIGxldCBtb2R1bGVTY2hlbWE6IFJlY29yZDxzdHJpbmcsIE1vZHVsZVNjaGVtYT4gPSB7fTtcblxuICBhd2FpdCB3aXRoVGVtcERpcihcImZldGNoU2NoZW1hXCIsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBjb25maWc6IFRlcnJhZm9ybUNvbmZpZyA9IHtcbiAgICAgIHRlcnJhZm9ybToge30sXG4gICAgfTtcblxuICAgIGlmICghY29uZmlnLm1vZHVsZSkgY29uZmlnLm1vZHVsZSA9IHt9O1xuICAgIGxldCBzb3VyY2U6IHN0cmluZyA9IHRhcmdldC5zb3VyY2U7XG5cbiAgICBjb25zdCBsb2NhbFNvdXJjZSA9ICh0YXJnZXQuY29uc3RyYWludCBhcyBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50KVxuICAgICAgLmxvY2FsU291cmNlQWJzb2x1dGVQYXRoO1xuICAgIGlmIChsb2NhbFNvdXJjZSkge1xuICAgICAgLy8gY3JlYXRlIHJlbGF0aXZlIHBhdGggdG8gbW9kdWxlIGluIHRoZSB1c2VyIHByb2plY3RcbiAgICAgIHNvdXJjZSA9IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgbG9jYWxTb3VyY2UpO1xuICAgIH1cblxuICAgIGNvbmZpZy5tb2R1bGVbdGFyZ2V0Lm1vZHVsZUtleV0gPSB7IHNvdXJjZTogc291cmNlIH07XG4gICAgaWYgKHRhcmdldC52ZXJzaW9uKSB7XG4gICAgICBjb25maWcubW9kdWxlW3RhcmdldC5tb2R1bGVLZXldW1widmVyc2lvblwiXSA9IHRhcmdldC52ZXJzaW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG91dGRpciA9IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4ob3V0ZGlyLCBcIm1haW4udGYuanNvblwiKTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xuXG4gICAgYXdhaXQgZXhlYyh0ZXJyYWZvcm1CaW5hcnlOYW1lLCBbXCJnZXRcIl0sIHsgY3dkOiBvdXRkaXIgfSk7XG4gICAgaWYgKGNvbmZpZy5tb2R1bGUpIHtcbiAgICAgIG1vZHVsZVNjaGVtYSA9IGF3YWl0IGhhcnZlc3RNb2R1bGVTY2hlbWEoXG4gICAgICAgIG91dGRpcixcbiAgICAgICAgT2JqZWN0LmtleXMoY29uZmlnLm1vZHVsZSksXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIG1vZHVsZVNjaGVtYTtcbn1cbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb3ZpZGVyLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUU3Qiw4Q0FBK0M7QUFDL0MsNENBZXdCO0FBRXhCLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxXQUFXLENBQUM7QUFFN0UsbUVBQW1FO0FBQ25FLHFFQUFxRTtBQUNyRSxzRUFBc0U7QUFDdEUsTUFBTSw2QkFBNkIsR0FBRztJQUNwQyxhQUFhO0lBQ2IsY0FBYztJQUNkLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLFlBQVk7SUFDWixZQUFZO0lBQ1osaUJBQWlCO0NBQ2xCLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBd0IsRUFDeEIsV0FBVyxHQUFHLENBQUMsRUFDZixXQUFXLEdBQUcsSUFBSSxFQUNsQixpQkFBaUIsR0FBRyxDQUFDOztJQUVyQixLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUEsY0FBSSxFQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxNQUFNLEdBQVcsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxtQ0FBSSxFQUFFLENBQUM7WUFDM0MsTUFBTSxTQUFTLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxD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Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNvbnZlcnRGaWxlcyB9IGZyb20gXCJAY2RrdG4vaGNsMmpzb25cIjtcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgQXR0cmlidXRlVHlwZSxcbiAgQmxvY2ssXG4gIENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCxcbiAgQ29uc3RydWN0c01ha2VyUHJvdmlkZXJUYXJnZXQsXG4gIElucHV0LFxuICBNb2R1bGVJbmRleCxcbiAgTW9kdWxlU2NoZW1hLFxuICBQcm92aWRlclNjaGVtYSxcbiAgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludCxcbiAgVmVyc2lvblNjaGVtYSxcbiAgZXhlYyxcbiAgaXNOZXN0ZWRUeXBlQXR0cmlidXRlLFxuICB3aXRoVGVtcERpcixcbn0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmNvbnN0IHRlcnJhZm9ybUJpbmFyeU5hbWUgPSBwcm9jZXNzLmVudi5URVJSQUZPUk1fQklOQVJZX05BTUUgfHwgXCJ0ZXJyYWZvcm1cIjtcblxuLy8gUHJvdmlkZXIgYmluYXJpZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBHaXRIdWIgcmVsZWFzZSBDRE5zIGR1cmluZ1xuLy8gYHRlcnJhZm9ybSBpbml0YCwgd2hpY2ggaW50ZXJtaXR0ZW50bHkgcmV0dXJucyA1eHguIFJldHJ5IG9uIHRob3NlXG4vLyBzaWduYXR1cmVzIG9ubHkg4oCUIHJlYWwgY29uZmlnL3NjaGVtYSBlcnJvcnMgc2hvdWxkIHN0aWxsIGZhaWwgZmFzdC5cbmNvbnN0IFRSQU5TSUVOVF9JTklUX0VSUk9SX1BBVFRFUk5TID0gW1xuICAvXFxiNTBbMjM0XVxcYi8sXG4gIC9CYWQgR2F0ZXdheS9pLFxuICAvU2VydmljZSBVbmF2YWlsYWJsZS9pLFxuICAvR2F0ZXdheSBUaW1lb3V0L2ksXG4gIC9FQ09OTlJFU0VUL2ksXG4gIC9FVElNRURPVVQvaSxcbiAgL0VBSV9BR0FJTi9pLFxuICAvdW5leHBlY3RlZCBFT0YvaSxcbl07XG5cbi8qKlxuICogUnVucyBgdGVycmFmb3JtIGluaXRgIGFuZCByZXRyaWVzIG9uIHRyYW5zaWVudCBIVFRQL25ldHdvcmsgZmFpbHVyZXMuXG4gKlxuICogUHJvdmlkZXIgYmluYXJpZXMgYXJlIHB1bGxlZCBmcm9tIEdpdEh1YidzIHJlbGVhc2UgQ0ROLCB3aGljaFxuICogaW50ZXJtaXR0ZW50bHkgcmV0dXJucyA1eHguIFRoZSByZXRyeSBvbmx5IGZpcmVzIHdoZW4gc3RkZXJyIG1hdGNoZXMgYVxuICoga25vd24gdHJhbnNpZW50IHBhdHRlcm4g4oCUIHJlYWwgZXJyb3JzIChiYWQgdmVyc2lvbiwgc2NoZW1hIHBhcnNlLCBldGMuKVxuICogc3RpbGwgZmFpbCBvbiB0aGUgZmlyc3QgYXR0ZW1wdC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIHNwYXduIG9wdGlvbnMgZm9yd2FyZGVkIHRvIGBleGVjYCAoYGN3ZGAgaXMgcmVxdWlyZWQgc29cbiAqICAgYHRlcnJhZm9ybSBpbml0YCBydW5zIGluc2lkZSB0aGUgdGVtcCBkaXIgaG9sZGluZyBgbWFpbi50Zi5qc29uYClcbiAqIEBwYXJhbSBtYXhBdHRlbXB0cyAtIHRvdGFsIGF0dGVtcHRzIGluY2x1ZGluZyB0aGUgaW5pdGlhbCBjYWxsOyB0aGUgbnVtYmVyXG4gKiAgIG9mIHJldHJpZXMgaXMgYG1heEF0dGVtcHRzIC0gMWAuIERlZmF1bHRzIHRvIDUgKDEgaW5pdGlhbCArIDQgcmV0cmllcylcbiAqIEBwYXJhbSBiYXNlRGVsYXlNcyAtIGRlbGF5IGJlZm9yZSB0aGUgZmlyc3QgcmV0cnkuIFRlc3RzIHBhc3MgYDBgIHRvIHNraXBcbiAqICAgd2FpdHMuIERlZmF1bHRzIHRvIDUwMDBtc1xuICogQHBhcmFtIGJhY2tvZmZNdWx0aXBsaWVyIC0gZmFjdG9yIGFwcGxpZWQgdG8gdGhlIGRlbGF5IG9uIGVhY2ggc3Vic2VxdWVudFxuICogICByZXRyeSAoc28gcmV0cmllcyB3YWl0IGBiYXNlRGVsYXlNcyAqIG11bHRpcGxpZXJeKGF0dGVtcHQtMSlgKS4gRGVmYXVsdHNcbiAqICAgdG8gMiAoMXMg4oaSIDJzIOKGkiA0cyDigKYpXG4gKiBAcmV0dXJucyBzdGRvdXQgZnJvbSB0aGUgc3VjY2Vzc2Z1bCBgdGVycmFmb3JtIGluaXRgIGludm9jYXRpb25cbiAqIEBpbnRlcm5hbCBleHBvc2VkIGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KFxuICBvcHRpb25zOiB7IGN3ZDogc3RyaW5nIH0sXG4gIG1heEF0dGVtcHRzID0gNSxcbiAgYmFzZURlbGF5TXMgPSA1MDAwLFxuICBiYWNrb2ZmTXVsdGlwbGllciA9IDIsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSBtYXhBdHRlbXB0czsgYXR0ZW1wdCsrKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBleGVjKHRlcnJhZm9ybUJpbmFyeU5hbWUsIFtcImluaXRcIl0sIG9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnN0IHN0ZGVycjogc3RyaW5nID0gZXJyb3I/LnN0ZGVyciA/PyBcIlwiO1xuICAgICAgY29uc3QgdHJhbnNpZW50ID0gVFJBTlNJRU5UX0lOSVRfRVJST1JfUEFUVEVSTlMuc29tZSgocCkgPT5cbiAgICAgICAgcC50ZXN0KHN0ZGVyciksXG4gICAgICApO1xuICAgICAgaWYgKCF0cmFuc2llbnQgfHwgYXR0ZW1wdCA9PT0gbWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjb25zdCBkZWxheU1zID0gYmFzZURlbGF5TXMgKiBiYWNrb2ZmTXVsdGlwbGllciAqKiAoYXR0ZW1wdCAtIDEpO1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGB0ZXJyYWZvcm0gaW5pdCBmYWlsZWQgd2l0aCBhIHRyYW5zaWVudCBlcnJvciwgcmV0cnlpbmcgaW4gJHtkZWxheU1zfW1zIChhdHRlbXB0ICR7YXR0ZW1wdH0vJHttYXhBdHRlbXB0cyAtIDF9KWAsXG4gICAgICApO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXlNcykpO1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXCJ1bnJlYWNoYWJsZVwiKTtcbn1cblxuLyoqXG4gKiBGdWxseSBRdWFsaWZpZWQgcHJvdmlkZXIgbmFtZSBpbiB0aGUgZm9ybWF0OlxuICogbGlrZSBlLmcuIHJlZ2lzdHJ5LnRlcnJhZm9ybS5pby9oYXNoaWNvcnAvYXdzXG4gKi9cbmV4cG9ydCB0eXBlIEZRUE4gPSBzdHJpbmcgJiB7IF9fdHlwZTogXCJGdWxseVF1YWxpZmllZFByb3ZpZGVyTmFtZVwiIH07XG5leHBvcnQgdHlwZSBQcm92aWRlckhvc3RuYW1lID0gc3RyaW5nICYgeyBfX3R5cGU6IFwiUHJvdmlkZXJIb3N0bmFtZVwiIH07XG5leHBvcnQgdHlwZSBQcm92aWRlck5hbWVzcGFjZSA9IHN0cmluZyAmIHsgX190eXBlOiBcIlByb3ZpZGVyTmFtZXNwYWNlXCIgfTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyTmFtZSA9IHN0cmluZyAmIHsgX190eXBlOiBcIlByb3ZpZGVyTmFtZVwiIH07XG5cbmV4cG9ydCBjb25zdCBwYXJzZUZRUE4gPSAoZjogRlFQTikgPT4ge1xuICBjb25zdCBbaG9zdG5hbWUsIG5hbWVzcGFjZSwgbmFtZV0gPSBmLnNwbGl0KFwiL1wiKTtcbiAgaWYgKCFuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjYW4ndCBoYW5kbGUgJHtmfWApO1xuICB9XG4gIHJldHVybiB7IGhvc3RuYW1lLCBuYW1lc3BhY2UsIG5hbWUgfSBhcyB7XG4gICAgaG9zdG5hbWU6IFByb3ZpZGVySG9zdG5hbWU7XG4gICAgbmFtZXNwYWNlOiBQcm92aWRlck5hbWVzcGFjZTtcbiAgICBuYW1lOiBQcm92aWRlck5hbWU7XG4gIH07XG59O1xuXG5jb25zdCB1bndyYXBJZkFycmF5ID0gPFQ+KGl0ZW06IFQgfCBUW10pOiBUID0+XG4gIEFycmF5LmlzQXJyYXkoaXRlbSkgPyBpdGVtWzBdIDogaXRlbTtcblxuY29uc3QgdHJhbnNmb3JtVmFyaWFibGVzID0gKHZhcmlhYmxlczogYW55KSA9PiB7XG4gIGNvbnN0IHJlc3VsdDogSW5wdXRbXSA9IFtdO1xuXG4gIGlmICghdmFyaWFibGVzKSByZXR1cm4gcmVzdWx0O1xuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyh2YXJpYWJsZXMpKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB1bndyYXBJZkFycmF5KHZhcmlhYmxlc1tuYW1lXSk7XG4gICAgbGV0IHZhcmlhYmxlVHlwZTogc3RyaW5nO1xuXG4gICAgaWYgKFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgdmFyaWFibGUuaGFzT3duUHJvcGVydHkoXCJ0eXBlXCIpID09IGZhbHNlICYmXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gICAgICB2YXJpYWJsZS5oYXNPd25Qcm9wZXJ0eShcImRlZmF1bHRcIikgPT0gdHJ1ZVxuICAgICkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFyaWFibGVbXCJkZWZhdWx0XCJdKSB7XG4gICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgdmFyaWFibGVUeXBlID0gXCJib29sXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICB2YXJpYWJsZVR5cGUgPSBcIm51bWJlclwiO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHZhcmlhYmxlVHlwZSA9IFwiYW55XCI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJhd1ZhcmlhYmxlVHlwZSA9IHZhcmlhYmxlW1widHlwZVwiXTtcbiAgICAgIGlmIChcbiAgICAgICAgdHlwZW9mIHJhd1ZhcmlhYmxlVHlwZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICByYXdWYXJpYWJsZVR5cGUuc3RhcnRzV2l0aChcIiR7XCIpICYmXG4gICAgICAgIHJhd1ZhcmlhYmxlVHlwZS5lbmRzV2l0aChcIn1cIikgJiZcbiAgICAgICAgIXJhd1ZhcmlhYmxlVHlwZS5pbmNsdWRlcyhcIlxcblwiKVxuICAgICAgKSB7XG4gICAgICAgIHZhcmlhYmxlVHlwZSA9IHJhd1ZhcmlhYmxlVHlwZS5zbGljZSgyLCAtMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXJpYWJsZVR5cGUgPSBcImFueVwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGl0ZW06IElucHV0ID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHR5cGU6IHZhcmlhYmxlVHlwZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB2YXJpYWJsZVtcImRlc2NyaXB0aW9uXCJdLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGluc1xuICAgICAgcmVxdWlyZWQ6IHZhcmlhYmxlLmhhc093blByb3BlcnR5KFwiZGVmYXVsdFwiKSA9PSBmYWxzZSxcbiAgICB9O1xuXG4gICAgaWYgKCFpdGVtLnJlcXVpcmVkKSB7XG4gICAgICBpdGVtW1wiZGVmYXVsdFwiXSA9IHZhcmlhYmxlW1wiZGVmYXVsdFwiXTtcbiAgICB9XG5cbiAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5jb25zdCB0cmFuc2Zvcm1PdXRwdXRzID0gKG91dHB1dHM6IGFueSkgPT4ge1xuICBjb25zdCByZXN1bHQgPSBbXTtcblxuICBpZiAob3V0cHV0cykge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhvdXRwdXRzKSkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gdW53cmFwSWZBcnJheShvdXRwdXRzW25hbWVdKTtcblxuICAgICAgY29uc3QgaXRlbTogYW55ID0ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogb3V0cHV0W1wiZGVzY3JpcHRpb25cIl0sXG4gICAgICB9O1xuXG4gICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuY29uc3QgaGFydmVzdE1vZHVsZVNjaGVtYSA9IGFzeW5jIChcbiAgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nLFxuICBtb2R1bGVzOiBzdHJpbmdbXSxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4gPT4ge1xuICBjb25zdCBmaWxlTmFtZSA9IHBhdGguam9pbihcbiAgICB3b3JraW5nRGlyZWN0b3J5LFxuICAgIFwiLnRlcnJhZm9ybVwiLFxuICAgIFwibW9kdWxlc1wiLFxuICAgIFwibW9kdWxlcy5qc29uXCIsXG4gICk7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGlmICghZnMuZXhpc3RzU3luYyhmaWxlTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTW9kdWxlcyB3ZXJlIG5vdCBnZW5lcmF0ZWQgcHJvcGVybHkgLSBjb3VsZG4ndCBmaW5kICR7ZmlsZU5hbWV9YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbW9kdWxlSW5kZXggPSBKU09OLnBhcnNlKFxuICAgIGZzLnJlYWRGaWxlU3luYyhmaWxlTmFtZSwgXCJ1dGYtOFwiKSxcbiAgKSBhcyBNb2R1bGVJbmRleDtcblxuICBmb3IgKGNvbnN0IG1vZCBvZiBtb2R1bGVzKSB7XG4gICAgY29uc3QgbSA9IG1vZHVsZUluZGV4Lk1vZHVsZXMuZmluZCgob3RoZXIpID0+IG1vZCA9PT0gb3RoZXIuS2V5KTtcblxuICAgIGlmICghbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBmaW5kICR7bX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCBjb252ZXJ0RmlsZXMocGF0aC5qb2luKHdvcmtpbmdEaXJlY3RvcnksIG0uRGlyKSk7XG5cbiAgICBpZiAoIXBhcnNlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTW9kdWxlcyB3ZXJlIG5vdCBnZW5lcmF0ZWQgcHJvcGVybHkgLSBjb3VsZG4ndCBwYXJzZSAke20uRGlyfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYTogTW9kdWxlU2NoZW1hID0ge1xuICAgICAgaW5wdXRzOiB0cmFuc2Zvcm1WYXJpYWJsZXMocGFyc2VkLnZhcmlhYmxlKSxcbiAgICAgIG91dHB1dHM6IHRyYW5zZm9ybU91dHB1dHMocGFyc2VkLm91dHB1dCksXG4gICAgICBuYW1lOiBtb2QsXG4gICAgfTtcblxuICAgIHJlc3VsdFttb2RdID0gc2NoZW1hO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVycmFmb3JtQ29uZmlnIHtcbiAgcHJvdmlkZXI/OiB7IFtuYW1lOiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH07XG4gIHRlcnJhZm9ybToge1xuICAgIHJlcXVpcmVkX3Byb3ZpZGVycz86IHtcbiAgICAgIFtuYW1lOiBzdHJpbmddOiB7IHNvdXJjZT86IHN0cmluZzsgdmVyc2lvbj86IHN0cmluZyB9O1xuICAgIH07XG4gIH07XG4gIG1vZHVsZT86IHsgW25hbWU6IHN0cmluZ106IHsgc291cmNlOiBzdHJpbmc7IHZlcnNpb24/OiBzdHJpbmcgfSB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFByb3ZpZGVyU2NoZW1hKFxuICB0YXJnZXQ6IENvbnN0cnVjdHNNYWtlclByb3ZpZGVyVGFyZ2V0LFxuKSB7XG4gIGNvbnN0IGNvbmZpZzogVGVycmFmb3JtQ29uZmlnID0ge1xuICAgIHByb3ZpZGVyOiB7fSxcbiAgICB0ZXJyYWZvcm06IHtcbiAgICAgIHJlcXVpcmVkX3Byb3ZpZGVyczoge30sXG4gICAgfSxcbiAgfTtcblxuICBjb25maWcucHJvdmlkZXIhW3RhcmdldC5uYW1lXSA9IHt9O1xuICBjb25maWcudGVycmFmb3JtLnJlcXVpcmVkX3Byb3ZpZGVycyFbdGFyZ2V0Lm5hbWVdID0ge1xuICAgIHZlcnNpb246IHRhcmdldC52ZXJzaW9uLFxuICAgIHNvdXJjZTogdGFyZ2V0LnNvdXJjZSxcbiAgfTtcblxuICBsZXQgcHJvdmlkZXJTY2hlbWE6IFByb3ZpZGVyU2NoZW1hID0geyBmb3JtYXRfdmVyc2lvbjogXCIwLjFcIiB9O1xuXG4gIGF3YWl0IHdpdGhUZW1wRGlyKFwiZmV0Y2hQcm92aWRlclNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0ZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihvdXRkaXIsIFwibWFpbi50Zi5qc29uXCIpO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG5cbiAgICBhd2FpdCB0ZXJyYWZvcm1Jbml0V2l0aFJldHJ5KHsgY3dkOiBvdXRkaXIgfSk7XG4gICAgcHJvdmlkZXJTY2hlbWEgPSBKU09OLnBhcnNlKFxuICAgICAgYXdhaXQgZXhlYyh0ZXJyYWZvcm1CaW5hcnlOYW1lLCBbXCJwcm92aWRlcnNcIiwgXCJzY2hlbWFcIiwgXCItanNvblwiXSwge1xuICAgICAgICBjd2Q6IG91dGRpcixcbiAgICAgIH0pLFxuICAgICkgYXMgUHJvdmlkZXJTY2hlbWE7XG5cbiAgICBjb25zdCB2ZXJzaW9uU2NoZW1hID0gSlNPTi5wYXJzZShcbiAgICAgIGF3YWl0IGV4ZWModGVycmFmb3JtQmluYXJ5TmFtZSwgW1widmVyc2lvblwiLCBcIi1qc29uXCJdLCB7XG4gICAgICAgIGN3ZDogb3V0ZGlyLFxuICAgICAgfSksXG4gICAgKSBhcyBWZXJzaW9uU2NoZW1hO1xuXG4gICAgcHJvdmlkZXJTY2hlbWEucHJvdmlkZXJfdmVyc2lvbnMgPSB2ZXJzaW9uU2NoZW1hLnByb3ZpZGVyX3NlbGVjdGlvbnM7XG4gIH0pO1xuXG4gIHJldHVybiBzYW5pdGl6ZVByb3ZpZGVyU2NoZW1hKHByb3ZpZGVyU2NoZW1hKTtcbn1cblxuLy8gVGhlIHByb3ZpZGVycyBoYXZlIHNvbWUgcG90ZW50aWFsIGJ1Z3MgdGhhdCB3ZSB3YW50IHRvIHByby1hY3RpdmVseVxuLy8gZml4IGhlcmUgc28gdGhhdCB0aGUgcmVzdCBvZiB0aGUgY29kZSBjYW4gYXNzdW1lIGEgY29uc2lzdGVudCBzY2hlbWEuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVQcm92aWRlclNjaGVtYShzY2hlbWE6IFByb3ZpZGVyU2NoZW1hKTogUHJvdmlkZXJTY2hlbWEge1xuICAvLyBNYWlubHkgc29tZSBhdHRyaWJ1dGVzIGFyZSBcImRvdWJsZWRcIiwgZS5nLiBbXCJsaXN0XCIsIFwic3RyaW5nXCIsIFwibGlzdFwiLCBcInN0cmluZ1wiXVxuICAvLyBpbnN0ZWFkIG9mIFtcImxpc3RcIiwgXCJzdHJpbmdcIl1cbiAgZnVuY3Rpb24gYXR0cmlidXRlRG91YmxpbmdGaXgoYXR0cmlidXRlOiBBdHRyaWJ1dGUpOiBBdHRyaWJ1dGUge1xuICAgIGlmIChpc05lc3RlZFR5cGVBdHRyaWJ1dGUoYXR0cmlidXRlKSB8fCAhQXJyYXkuaXNBcnJheShhdHRyaWJ1dGUudHlwZSkpIHtcbiAgICAgIHJldHVybiBhdHRyaWJ1dGU7XG4gICAgfVxuXG4gICAgY29uc3QgdHlwZSA9XG4gICAgICBhdHRyaWJ1dGUudHlwZS5sZW5ndGggPT09IDJcbiAgICAgICAgPyBhdHRyaWJ1dGUudHlwZVxuICAgICAgICA6IChhdHRyaWJ1dGUudHlwZSBhcyBzdHJpbmdbXSkuc2xpY2UoMCwgMik7IC8vIFRoZSB0eXBlcyB0ZWxsIHVzIHRoaXMgY2FuJ3QgaGFwcGVuLCByZWFsaXR5IGJlZ3MgdG8gZGlmZmVyXG5cbiAgICBhdHRyaWJ1dGUudHlwZSA9IHR5cGUgYXMgQXR0cmlidXRlVHlwZTtcbiAgICByZXR1cm4gYXR0cmlidXRlO1xuICB9XG5cbiAgLy8gTXV0YXRlcyBibG9jayB3aXRoIHRoZSBmaXhcbiAgZnVuY3Rpb24gc2FuaXRpemVCbG9jayhibG9jazogQmxvY2spIHtcbiAgICBPYmplY3QudmFsdWVzKGJsb2NrLmF0dHJpYnV0ZXMgfHwge30pLmZvckVhY2goYXR0cmlidXRlRG91YmxpbmdGaXgpO1xuICAgIE9iamVjdC52YWx1ZXMoYmxvY2suYmxvY2tfdHlwZXMgfHwge30pLmZvckVhY2goKGJsb2NrVHlwZSkgPT4ge1xuICAgICAgc2FuaXRpemVCbG9jayhibG9ja1R5cGUuYmxvY2spO1xuICAgIH0pO1xuICB9XG5cbiAgT2JqZWN0LnZhbHVlcyhzY2hlbWEucHJvdmlkZXJfc2NoZW1hcyB8fCB7fSkuZm9yRWFjaCgocHJvdmlkZXIpID0+IHtcbiAgICBjb25zdCBlbnRpdGllcyA9IFtcbiAgICAgIHByb3ZpZGVyLnByb3ZpZGVyLFxuICAgICAgLi4uT2JqZWN0LnZhbHVlcyhwcm92aWRlci5yZXNvdXJjZV9zY2hlbWFzIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC52YWx1ZXMocHJvdmlkZXIuZGF0YV9zb3VyY2Vfc2NoZW1hcyB8fCB7fSksXG4gICAgXTtcblxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eSkgPT4ge1xuICAgICAgc2FuaXRpemVCbG9jayhlbnRpdHkuYmxvY2spO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gc2NoZW1hO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE1vZHVsZVNjaGVtYSh0YXJnZXQ6IENvbnN0cnVjdHNNYWtlck1vZHVsZVRhcmdldCkge1xuICBsZXQgbW9kdWxlU2NoZW1hOiBSZWNvcmQ8c3RyaW5nLCBNb2R1bGVTY2hlbWE+ID0ge307XG5cbiAgYXdhaXQgd2l0aFRlbXBEaXIoXCJmZXRjaFNjaGVtYVwiLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnOiBUZXJyYWZvcm1Db25maWcgPSB7XG4gICAgICB0ZXJyYWZvcm06IHt9LFxuICAgIH07XG5cbiAgICBpZiAoIWNvbmZpZy5tb2R1bGUpIGNvbmZpZy5tb2R1bGUgPSB7fTtcbiAgICBsZXQgc291cmNlOiBzdHJpbmcgPSB0YXJnZXQuc291cmNlO1xuXG4gICAgY29uc3QgbG9jYWxTb3VyY2UgPSAodGFyZ2V0LmNvbnN0cmFpbnQgYXMgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludClcbiAgICAgIC5sb2NhbFNvdXJjZUFic29sdXRlUGF0aDtcbiAgICBpZiAobG9jYWxTb3VyY2UpIHtcbiAgICAgIC8vIGNyZWF0ZSByZWxhdGl2ZSBwYXRoIHRvIG1vZHVsZSBpbiB0aGUgdXNlciBwcm9qZWN0XG4gICAgICBzb3VyY2UgPSBwYXRoLnJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGxvY2FsU291cmNlKTtcbiAgICB9XG5cbiAgICBjb25maWcubW9kdWxlW3RhcmdldC5tb2R1bGVLZXldID0geyBzb3VyY2U6IHNvdXJjZSB9O1xuICAgIGlmICh0YXJnZXQudmVyc2lvbikge1xuICAgICAgY29uZmlnLm1vZHVsZVt0YXJnZXQubW9kdWxlS2V5XVtcInZlcnNpb25cIl0gPSB0YXJnZXQudmVyc2lvbjtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKG91dGRpciwgXCJtYWluLnRmLmpzb25cIik7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcblxuICAgIGF3YWl0IGV4ZWModGVycmFmb3JtQmluYXJ5TmFtZSwgW1wiZ2V0XCJdLCB7IGN3ZDogb3V0ZGlyIH0pO1xuICAgIGlmIChjb25maWcubW9kdWxlKSB7XG4gICAgICBtb2R1bGVTY2hlbWEgPSBhd2FpdCBoYXJ2ZXN0TW9kdWxlU2NoZW1hKFxuICAgICAgICBvdXRkaXIsXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbmZpZy5tb2R1bGUpLFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBtb2R1bGVTY2hlbWE7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdktn/provider-schema",
3
- "version": "0.23.0-pre.41",
3
+ "version": "0.23.0-pre.45",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -40,19 +40,16 @@
40
40
  ],
41
41
  "license": "MPL-2.0",
42
42
  "dependencies": {
43
- "@cdktn/commons": "0.23.0-pre.41",
44
- "@cdktn/hcl2json": "0.23.0-pre.41",
43
+ "@cdktn/commons": "0.23.0-pre.45",
44
+ "@cdktn/hcl2json": "0.23.0-pre.45",
45
45
  "deepmerge": "4.3.1",
46
46
  "fs-extra": "11.3.4"
47
47
  },
48
48
  "devDependencies": {
49
- "@types/follow-redirects": "1.14.4",
50
49
  "@types/fs-extra": "11.0.4",
51
50
  "@types/json-stable-stringify": "1.2.0",
52
- "@types/uuid": "9.0.8",
53
51
  "jest": "^30.3.0",
54
52
  "json-stable-stringify": "1.3.0",
55
- "lint-staged": "^15.5.2",
56
53
  "ts-jest": "29.4.9",
57
54
  "tsc-files": "1.1.4",
58
55
  "typescript": "5.4.5"