pkg-pr-new 0.0.59 → 0.0.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +11 -3
  2. package/index.ts +10 -2
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -3107,7 +3107,7 @@ import { writePackageJSON } from "pkg-types";
3107
3107
  // package.json
3108
3108
  var package_default = {
3109
3109
  name: "pkg-pr-new",
3110
- version: "0.0.59",
3110
+ version: "0.0.60",
3111
3111
  description: "",
3112
3112
  main: "index.js",
3113
3113
  type: "module",
@@ -3230,6 +3230,10 @@ var main = defineCommand({
3230
3230
  type: "boolean",
3231
3231
  description: "use `yarn pack` instead of `npm pack --json`"
3232
3232
  },
3233
+ bun: {
3234
+ type: "boolean",
3235
+ description: "use `bun pm pack` instead of `npm pack --json`"
3236
+ },
3233
3237
  template: {
3234
3238
  type: "string",
3235
3239
  description: "generate stackblitz templates out of directories in the current repo with the new built packages"
@@ -3278,6 +3282,8 @@ var main = defineCommand({
3278
3282
  packMethod = "pnpm";
3279
3283
  } else if (args.yarn) {
3280
3284
  packMethod = "yarn";
3285
+ } else if (args.bun) {
3286
+ packMethod = "bun";
3281
3287
  }
3282
3288
  const isPeerDepsEnabled = !!args.peerDeps;
3283
3289
  const isOnlyTemplates = !!args["only-templates"];
@@ -3645,13 +3651,15 @@ async function resolveTarball(pm, p3, pJson) {
3645
3651
  let filename = `${pJson.name.replace("/", "-")}-${pJson.version}.tgz`;
3646
3652
  if (pm === "yarn") {
3647
3653
  cmd += ` --filename ${filename}`;
3654
+ } else if (pm === "bun") {
3655
+ cmd = `bun pm pack --filename ${filename}`;
3648
3656
  }
3649
3657
  const { stdout: stdout2 } = await ezSpawn.async(cmd, {
3650
3658
  stdio: "overlapped",
3651
3659
  cwd: p3
3652
3660
  });
3653
3661
  const lines = stdout2.split("\n").filter(Boolean);
3654
- if (pm !== "yarn") {
3662
+ if (pm !== "yarn" && pm !== "bun") {
3655
3663
  filename = lines[lines.length - 1].trim();
3656
3664
  }
3657
3665
  const shasum = createHash("sha1").update(await fs.readFile(path.resolve(p3, filename))).digest("hex");
@@ -3736,4 +3744,4 @@ function parsePackageJson(contents) {
3736
3744
  return null;
3737
3745
  }
3738
3746
  }
3739
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNzNUZkdEhELm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNCaTZObTlzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMy4xL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzIiwgIi4uL2luZGV4LnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9vaGFzaEAxLjEuNC9ub2RlX21vZHVsZXMvb2hhc2gvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC91dGlscy5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NpdHR5QDAuMS42L25vZGVfbW9kdWxlcy9jaXR0eS9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QkMSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gIGlmIChwcm90b3R5cGUgIT09IG51bGwgJiYgcHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChTeW1ib2wuaXRlcmF0b3IgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgTW9kdWxlXVwiO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzUGxhaW5PYmplY3QkMShkZWZhdWx0cykpIHtcbiAgICByZXR1cm4gX2RlZnUoYmFzZU9iamVjdCwge30sIG5hbWVzcGFjZSwgbWVyZ2VyKTtcbiAgfVxuICBjb25zdCBvYmplY3QgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cyk7XG4gIGZvciAoY29uc3Qga2V5IGluIGJhc2VPYmplY3QpIHtcbiAgICBpZiAoa2V5ID09PSBcIl9fcHJvdG9fX1wiIHx8IGtleSA9PT0gXCJjb25zdHJ1Y3RvclwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBiYXNlT2JqZWN0W2tleV07XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAobWVyZ2VyICYmIG1lcmdlcihvYmplY3QsIGtleSwgdmFsdWUsIG5hbWVzcGFjZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gWy4uLnZhbHVlLCAuLi5vYmplY3Rba2V5XV07XG4gICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0JDEodmFsdWUpICYmIGlzUGxhaW5PYmplY3QkMShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIG9wdGlvbnM7XG4gIF9sYXN0TG9nO1xuICBfbW9ja0ZuO1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb25zb2xhIHdpdGggc3BlY2lmaWVkIG9wdGlvbnMgb3IgZGVmYXVsdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IFtvcHRpb25zPXt9XSAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0eXBlcyA9IG9wdGlvbnMudHlwZXMgfHwgTG9nVHlwZXM7XG4gICAgdGhpcy5vcHRpb25zID0gZGVmdShcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgZGVmYXVsdHM6IHsgLi4ub3B0aW9ucy5kZWZhdWx0cyB9LFxuICAgICAgICBsZXZlbDogX25vcm1hbGl6ZUxvZ0xldmVsKG9wdGlvbnMubGV2ZWwsIHR5cGVzKSxcbiAgICAgICAgcmVwb3J0ZXJzOiBbLi4ub3B0aW9ucy5yZXBvcnRlcnMgfHwgW11dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlczogTG9nVHlwZXMsXG4gICAgICAgIHRocm90dGxlOiAxZTMsXG4gICAgICAgIHRocm90dGxlTWluOiA1LFxuICAgICAgICBmb3JtYXRPcHRpb25zOiB7XG4gICAgICAgICAgZGF0ZTogdHJ1ZSxcbiAgICAgICAgICBjb2xvcnM6IGZhbHNlLFxuICAgICAgICAgIGNvbXBhY3Q6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHR5cGVzKSB7XG4gICAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi50eXBlc1t0eXBlXVxuICAgICAgfTtcbiAgICAgIHRoaXNbdHlwZV0gPSB0aGlzLl93cmFwTG9nRm4oZGVmYXVsdHMpO1xuICAgICAgdGhpc1t0eXBlXS5yYXcgPSB0aGlzLl93cmFwTG9nRm4oXG4gICAgICAgIGRlZmF1bHRzLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLm1vY2tGbikge1xuICAgICAgdGhpcy5tb2NrVHlwZXMoKTtcbiAgICB9XG4gICAgdGhpcy5fbGFzdExvZyA9IHt9O1xuICB9XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGxvZyBsZXZlbCBvZiB0aGUgQ29uc29sYSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGN1cnJlbnQgbG9nIGxldmVsLlxuICAgKi9cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1pbmltdW0gbG9nIGxldmVsIHRoYXQgd2lsbCBiZSBvdXRwdXQgYnkgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWwgLSBUaGUgbmV3IGxvZyBsZXZlbCB0byBzZXQuXG4gICAqL1xuICBzZXQgbGV2ZWwobGV2ZWwpIHtcbiAgICB0aGlzLm9wdGlvbnMubGV2ZWwgPSBfbm9ybWFsaXplTG9nTGV2ZWwoXG4gICAgICBsZXZlbCxcbiAgICAgIHRoaXMub3B0aW9ucy50eXBlcyxcbiAgICAgIHRoaXMub3B0aW9ucy5sZXZlbFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcHJvbXB0IHRvIHRoZSB1c2VyIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS5cbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgYHByb21wdGAgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIHByb21wdC5cbiAgICogQHBhcmFtIHtUfSBbb3B0c10gLSBPcHRpb25hbCBvcHRpb25zIGZvciB0aGUgcHJvbXB0LiBTZWUge0BsaW5rIFByb21wdE9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7cHJvbWlzZTxUPn0gQSBwcm9taXNlIHRoYXQgaW5mZXIgd2l0aCB0aGUgcHJvbXB0IG9wdGlvbnMuIFNlZSB7QGxpbmsgUHJvbXB0T3B0aW9uc30uXG4gICAqL1xuICBwcm9tcHQobWVzc2FnZSwgb3B0cykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnByb21wdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwicHJvbXB0IGlzIG5vdCBzdXBwb3J0ZWQhXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnByb21wdChtZXNzYWdlLCBvcHRzKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBDb25zb2xhLCBpbmhlcml0aW5nIG9wdGlvbnMgZnJvbSB0aGUgY3VycmVudCBpbnN0YW5jZSwgd2l0aCBwb3NzaWJsZSBvdmVycmlkZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IG9wdGlvbnMgLSBPcHRpb25hbCBvdmVycmlkZXMgZm9yIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICBjcmVhdGUob3B0aW9ucykge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENvbnNvbGEoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLl9tb2NrRm4pIHtcbiAgICAgIGluc3RhbmNlLm1vY2tUeXBlcyh0aGlzLl9tb2NrRm4pO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ29uc29sYSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZGVmYXVsdCBsb2cgb2JqZWN0IHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7SW5wdXRMb2dPYmplY3R9IGRlZmF1bHRzIC0gRGVmYXVsdCBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW55IGxvZyBmcm9tIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgSW5wdXRMb2dPYmplY3R9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENvbnNvbGEgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCB0YWcsIHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgaW4gZXZlcnkgbG9nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGhlIHRhZyB0byBpbmNsdWRlIGluIGVhY2ggbG9nIG9mIHRoZSBuZXcgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHtDb25zb2xhSW5zdGFuY2V9IEEgbmV3IENvbnNvbGEgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYUluc3RhbmNlfS5cbiAgICovXG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9tIHJlcG9ydGVyIHRvIHRoZSBDb25zb2xhIGluc3RhbmNlLlxuICAgKiBSZXBvcnRlcnMgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbG9nIG1lc3NhZ2UsIGRlcGVuZGluZyBvbiB0aGVpciBpbXBsZW1lbnRhdGlvbiBhbmQgbG9nIGxldmVsLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnNvbGFSZXBvcnRlcn0gcmVwb3J0ZXIgLSBUaGUgcmVwb3J0ZXIgdG8gYWRkLiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgYWRkUmVwb3J0ZXIocmVwb3J0ZXIpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnB1c2gocmVwb3J0ZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY3VzdG9tIHJlcG9ydGVyIGZyb20gdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqIElmIG5vIHJlcG9ydGVyIGlzIHNwZWNpZmllZCwgYWxsIHJlcG9ydGVycyB3aWxsIGJlIHJlbW92ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc29sYVJlcG9ydGVyfSByZXBvcnRlciAtIFRoZSByZXBvcnRlciB0byByZW1vdmUuIFNlZSB7QGxpbmsgQ29uc29sYVJlcG9ydGVyfS5cbiAgICogQHJldHVybnMge0NvbnNvbGF9IFRoZSBjdXJyZW50IENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZSgwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCByZXBvcnRlcnMgb2YgdGhlIENvbnNvbGEgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGFycmF5IG9mIHJlcG9ydGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhUmVwb3J0ZXJbXX0gcmVwb3J0ZXJzIC0gVGhlIG5ldyByZXBvcnRlcnMgdG8gc2V0LiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgc2V0UmVwb3J0ZXJzKHJlcG9ydGVycykge1xuICAgIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMgPSBBcnJheS5pc0FycmF5KHJlcG9ydGVycykgPyByZXBvcnRlcnMgOiBbcmVwb3J0ZXJzXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB3cmFwQWxsKCkge1xuICAgIHRoaXMud3JhcENvbnNvbGUoKTtcbiAgICB0aGlzLndyYXBTdGQoKTtcbiAgfVxuICByZXN0b3JlQWxsKCkge1xuICAgIHRoaXMucmVzdG9yZUNvbnNvbGUoKTtcbiAgICB0aGlzLnJlc3RvcmVTdGQoKTtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIGNvbnNvbGUgbWV0aG9kcyB3aXRoIENvbnNvbGEgbG9nZ2luZyBtZXRob2RzIGZvciBjb25zaXN0ZW50IGxvZ2dpbmcuXG4gICAqL1xuICB3cmFwQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoIWNvbnNvbGVbXCJfX1wiICsgdHlwZV0pIHtcbiAgICAgICAgY29uc29sZVtcIl9fXCIgKyB0eXBlXSA9IGNvbnNvbGVbdHlwZV07XG4gICAgICB9XG4gICAgICBjb25zb2xlW3R5cGVdID0gdGhpc1t0eXBlXS5yYXc7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgb3JpZ2luYWwgY29uc29sZSBtZXRob2RzLCByZW1vdmluZyBDb25zb2xhIG92ZXJyaWRlcy5cbiAgICovXG4gIHJlc3RvcmVDb25zb2xlKCkge1xuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIGlmIChjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbdHlwZV0gPSBjb25zb2xlW1wiX19cIiArIHR5cGVdO1xuICAgICAgICBkZWxldGUgY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMgdG8gcmVkaXJlY3QgdGhlbSB0aHJvdWdoIENvbnNvbGEuXG4gICAqL1xuICB3cmFwU3RkKCkge1xuICAgIHRoaXMuX3dyYXBTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCwgXCJsb2dcIik7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyLCBcImxvZ1wiKTtcbiAgfVxuICBfd3JhcFN0cmVhbShzdHJlYW0sIHR5cGUpIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0uX193cml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICB9XG4gICAgc3RyZWFtLndyaXRlID0gKGRhdGEpID0+IHtcbiAgICAgIHRoaXNbdHlwZV0ucmF3KFN0cmluZyhkYXRhKS50cmltKCkpO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMsIHJlbW92aW5nIHRoZSBDb25zb2xhIHJlZGlyZWN0aW9uLlxuICAgKi9cbiAgcmVzdG9yZVN0ZCgpIHtcbiAgICB0aGlzLl9yZXN0b3JlU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRvdXQpO1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZGVycik7XG4gIH1cbiAgX3Jlc3RvcmVTdHJlYW0oc3RyZWFtKSB7XG4gICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0ud3JpdGUgPSBzdHJlYW0uX193cml0ZTtcbiAgICAgIGRlbGV0ZSBzdHJlYW0uX193cml0ZTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFBhdXNlcyBsb2dnaW5nLCBxdWV1ZXMgaW5jb21pbmcgbG9ncyB1bnRpbCByZXN1bWVkLlxuICAgKi9cbiAgcGF1c2VMb2dzKCkge1xuICAgIHBhdXNlZCA9IHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIFJlc3VtZXMgbG9nZ2luZywgcHJvY2Vzc2luZyBhbnkgcXVldWVkIGxvZ3MuXG4gICAqL1xuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGxvZ2dpbmcgbWV0aG9kcyB3aXRoIG1vY2tzIGlmIGEgbW9jayBmdW5jdGlvbiBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhT3B0aW9uc1tcIm1vY2tGblwiXX0gbW9ja0ZuIC0gVGhlIGZ1bmN0aW9uIHRvIHVzZSBmb3IgbW9ja2luZyBsb2dnaW5nIG1ldGhvZHMuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnNbXCJtb2NrRm5cIl19LlxuICAgKi9cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBpbmRlbnQgKyBwYXJzZVN0YWNrKHN0YWNrKS5qb2luKGBcbiR7aW5kZW50fWApO1xuICB9XG4gIGZvcm1hdEVycm9yKGVyciwgb3B0cykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSA/PyBmb3JtYXRXaXRoT3B0aW9ucyhvcHRzLCBlcnIpO1xuICAgIGNvbnN0IHN0YWNrID0gZXJyLnN0YWNrID8gdGhpcy5mb3JtYXRTdGFjayhlcnIuc3RhY2ssIG9wdHMpIDogXCJcIjtcbiAgICBjb25zdCBsZXZlbCA9IG9wdHM/LmVycm9yTGV2ZWwgfHwgMDtcbiAgICBjb25zdCBjYXVzZWRQcmVmaXggPSBsZXZlbCA+IDAgPyBgJHtcIiAgXCIucmVwZWF0KGxldmVsKX1bY2F1c2VdOiBgIDogXCJcIjtcbiAgICBjb25zdCBjYXVzZWRFcnJvciA9IGVyci5jYXVzZSA/IFwiXFxuXFxuXCIgKyB0aGlzLmZvcm1hdEVycm9yKGVyci5jYXVzZSwgeyAuLi5vcHRzLCBlcnJvckxldmVsOiBsZXZlbCArIDEgfSkgOiBcIlwiO1xuICAgIHJldHVybiBjYXVzZWRQcmVmaXggKyBtZXNzYWdlICsgXCJcXG5cIiArIHN0YWNrICsgY2F1c2VkRXJyb3I7XG4gIH1cbiAgZm9ybWF0QXJncyhhcmdzLCBvcHRzKSB7XG4gICAgY29uc3QgX2FyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcuc3RhY2sgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RXJyb3IoYXJnLCBvcHRzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcmc7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1hdFdpdGhPcHRpb25zKG9wdHMsIC4uLl9hcmdzKTtcbiAgfVxuICBmb3JtYXREYXRlKGRhdGUsIG9wdHMpIHtcbiAgICByZXR1cm4gb3B0cy5kYXRlID8gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6IFwiXCI7XG4gIH1cbiAgZmlsdGVyQW5kSm9pbihhcnIpIHtcbiAgICByZXR1cm4gYXJyLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZm9ybWF0QXJncyhsb2dPYmouYXJncywgb3B0cyk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcImJveFwiKSB7XG4gICAgICByZXR1cm4gXCJcXG5cIiArIFtcbiAgICAgICAgYnJhY2tldChsb2dPYmoudGFnKSxcbiAgICAgICAgbG9nT2JqLnRpdGxlICYmIGxvZ09iai50aXRsZSxcbiAgICAgICAgLi4ubWVzc2FnZS5zcGxpdChcIlxcblwiKVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbikubWFwKChsKSA9PiBcIiA+IFwiICsgbCkuam9pbihcIlxcblwiKSArIFwiXFxuXCI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlckFuZEpvaW4oW1xuICAgICAgYnJhY2tldChsb2dPYmoudHlwZSksXG4gICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgbWVzc2FnZVxuICAgIF0pO1xuICB9XG4gIGxvZyhsb2dPYmosIGN0eCkge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmZvcm1hdExvZ09iaihsb2dPYmosIHtcbiAgICAgIGNvbHVtbnM6IGN0eC5vcHRpb25zLnN0ZG91dC5jb2x1bW5zIHx8IDAsXG4gICAgICAuLi5jdHgub3B0aW9ucy5mb3JtYXRPcHRpb25zXG4gICAgfSk7XG4gICAgcmV0dXJuIHdyaXRlU3RyZWFtKFxuICAgICAgbGluZSArIFwiXFxuXCIsXG4gICAgICBsb2dPYmoubGV2ZWwgPCAyID8gY3R4Lm9wdGlvbnMuc3RkZXJyIHx8IHByb2Nlc3Muc3RkZXJyIDogY3R4Lm9wdGlvbnMuc3Rkb3V0IHx8IHByb2Nlc3Muc3Rkb3V0XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBCYXNpY1JlcG9ydGVyIGFzIEIsIHBhcnNlU3RhY2sgYXMgcCB9O1xuIiwgImltcG9ydCAqIGFzIHR0eSBmcm9tICdub2RlOnR0eSc7XG5cbmNvbnN0IHtcbiAgZW52ID0ge30sXG4gIGFyZ3YgPSBbXSxcbiAgcGxhdGZvcm0gPSBcIlwiXG59ID0gdHlwZW9mIHByb2Nlc3MgPT09IFwidW5kZWZpbmVkXCIgPyB7fSA6IHByb2Nlc3M7XG5jb25zdCBpc0Rpc2FibGVkID0gXCJOT19DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKTtcbmNvbnN0IGlzRm9yY2VkID0gXCJGT1JDRV9DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1jb2xvclwiKTtcbmNvbnN0IGlzV2luZG93cyA9IHBsYXRmb3JtID09PSBcIndpbjMyXCI7XG5jb25zdCBpc0R1bWJUZXJtaW5hbCA9IGVudi5URVJNID09PSBcImR1bWJcIjtcbmNvbnN0IGlzQ29tcGF0aWJsZVRlcm1pbmFsID0gdHR5ICYmIHR0eS5pc2F0dHkgJiYgdHR5LmlzYXR0eSgxKSAmJiBlbnYuVEVSTSAmJiAhaXNEdW1iVGVybWluYWw7XG5jb25zdCBpc0NJID0gXCJDSVwiIGluIGVudiAmJiAoXCJHSVRIVUJfQUNUSU9OU1wiIGluIGVudiB8fCBcIkdJVExBQl9DSVwiIGluIGVudiB8fCBcIkNJUkNMRUNJXCIgaW4gZW52KTtcbmNvbnN0IGlzQ29sb3JTdXBwb3J0ZWQgPSAhaXNEaXNhYmxlZCAmJiAoaXNGb3JjZWQgfHwgaXNXaW5kb3dzICYmICFpc0R1bWJUZXJtaW5hbCB8fCBpc0NvbXBhdGlibGVUZXJtaW5hbCB8fCBpc0NJKTtcbmZ1bmN0aW9uIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaGVhZCA9IHN0cmluZy5zbGljZSgwLCBNYXRoLm1heCgwLCBpbmRleCkpICsgcmVwbGFjZSwgdGFpbCA9IHN0cmluZy5zbGljZShNYXRoLm1heCgwLCBpbmRleCArIGNsb3NlLmxlbmd0aCkpLCBuZXh0ID0gdGFpbC5pbmRleE9mKGNsb3NlKSkge1xuICByZXR1cm4gaGVhZCArIChuZXh0IDwgMCA/IHRhaWwgOiByZXBsYWNlQ2xvc2UobmV4dCwgdGFpbCwgY2xvc2UsIHJlcGxhY2UpKTtcbn1cbmZ1bmN0aW9uIGNsZWFyQmxlZWQoaW5kZXgsIHN0cmluZywgb3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG9wZW4gKyBzdHJpbmcgKyBjbG9zZSA6IG9wZW4gKyByZXBsYWNlQ2xvc2UoaW5kZXgsIHN0cmluZywgY2xvc2UsIHJlcGxhY2UpICsgY2xvc2U7XG59XG5mdW5jdGlvbiBmaWx0ZXJFbXB0eShvcGVuLCBjbG9zZSwgcmVwbGFjZSA9IG9wZW4sIGF0ID0gb3Blbi5sZW5ndGggKyAxKSB7XG4gIHJldHVybiAoc3RyaW5nKSA9PiBzdHJpbmcgfHwgIShzdHJpbmcgPT09IFwiXCIgfHwgc3RyaW5nID09PSB2b2lkIDApID8gY2xlYXJCbGVlZChcbiAgICAoXCJcIiArIHN0cmluZykuaW5kZXhPZihjbG9zZSwgYXQpLFxuICAgIHN0cmluZyxcbiAgICBvcGVuLFxuICAgIGNsb3NlLFxuICAgIHJlcGxhY2VcbiAgKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBpbml0KG9wZW4sIGNsb3NlLCByZXBsYWNlKSB7XG4gIHJldHVybiBmaWx0ZXJFbXB0eShgXFx4MUJbJHtvcGVufW1gLCBgXFx4MUJbJHtjbG9zZX1tYCwgcmVwbGFjZSk7XG59XG5jb25zdCBjb2xvckRlZnMgPSB7XG4gIHJlc2V0OiBpbml0KDAsIDApLFxuICBib2xkOiBpbml0KDEsIDIyLCBcIlxceDFCWzIybVxceDFCWzFtXCIpLFxuICBkaW06IGluaXQoMiwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMm1cIiksXG4gIGl0YWxpYzogaW5pdCgzLCAyMyksXG4gIHVuZGVybGluZTogaW5pdCg0LCAyNCksXG4gIGludmVyc2U6IGluaXQoNywgMjcpLFxuICBoaWRkZW46IGluaXQoOCwgMjgpLFxuICBzdHJpa2V0aHJvdWdoOiBpbml0KDksIDI5KSxcbiAgYmxhY2s6IGluaXQoMzAsIDM5KSxcbiAgcmVkOiBpbml0KDMxLCAzOSksXG4gIGdyZWVuOiBpbml0KDMyLCAzOSksXG4gIHllbGxvdzogaW5pdCgzMywgMzkpLFxuICBibHVlOiBpbml0KDM0LCAzOSksXG4gIG1hZ2VudGE6IGluaXQoMzUsIDM5KSxcbiAgY3lhbjogaW5pdCgzNiwgMzkpLFxuICB3aGl0ZTogaW5pdCgzNywgMzkpLFxuICBncmF5OiBpbml0KDkwLCAzOSksXG4gIGJnQmxhY2s6IGluaXQoNDAsIDQ5KSxcbiAgYmdSZWQ6IGluaXQoNDEsIDQ5KSxcbiAgYmdHcmVlbjogaW5pdCg0MiwgNDkpLFxuICBiZ1llbGxvdzogaW5pdCg0MywgNDkpLFxuICBiZ0JsdWU6IGluaXQoNDQsIDQ5KSxcbiAgYmdNYWdlbnRhOiBpbml0KDQ1LCA0OSksXG4gIGJnQ3lhbjogaW5pdCg0NiwgNDkpLFxuICBiZ1doaXRlOiBpbml0KDQ3LCA0OSksXG4gIGJsYWNrQnJpZ2h0OiBpbml0KDkwLCAzOSksXG4gIHJlZEJyaWdodDogaW5pdCg5MSwgMzkpLFxuICBncmVlbkJyaWdodDogaW5pdCg5MiwgMzkpLFxuICB5ZWxsb3dCcmlnaHQ6IGluaXQoOTMsIDM5KSxcbiAgYmx1ZUJyaWdodDogaW5pdCg5NCwgMzkpLFxuICBtYWdlbnRhQnJpZ2h0OiBpbml0KDk1LCAzOSksXG4gIGN5YW5CcmlnaHQ6IGluaXQoOTYsIDM5KSxcbiAgd2hpdGVCcmlnaHQ6IGluaXQoOTcsIDM5KSxcbiAgYmdCbGFja0JyaWdodDogaW5pdCgxMDAsIDQ5KSxcbiAgYmdSZWRCcmlnaHQ6IGluaXQoMTAxLCA0OSksXG4gIGJnR3JlZW5CcmlnaHQ6IGluaXQoMTAyLCA0OSksXG4gIGJnWWVsbG93QnJpZ2h0OiBpbml0KDEwMywgNDkpLFxuICBiZ0JsdWVCcmlnaHQ6IGluaXQoMTA0LCA0OSksXG4gIGJnTWFnZW50YUJyaWdodDogaW5pdCgxMDUsIDQ5KSxcbiAgYmdDeWFuQnJpZ2h0OiBpbml0KDEwNiwgNDkpLFxuICBiZ1doaXRlQnJpZ2h0OiBpbml0KDEwNywgNDkpXG59O1xuZnVuY3Rpb24gY3JlYXRlQ29sb3JzKHVzZUNvbG9yID0gaXNDb2xvclN1cHBvcnRlZCkge1xuICByZXR1cm4gdXNlQ29sb3IgPyBjb2xvckRlZnMgOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXMoY29sb3JEZWZzKS5tYXAoKGtleSkgPT4gW2tleSwgU3RyaW5nXSkpO1xufVxuY29uc3QgY29sb3JzID0gY3JlYXRlQ29sb3JzKCk7XG5mdW5jdGlvbiBnZXRDb2xvcihjb2xvciwgZmFsbGJhY2sgPSBcInJlc2V0XCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzW2ZhbGxiYWNrXTtcbn1cbmZ1bmN0aW9uIGNvbG9yaXplKGNvbG9yLCB0ZXh0KSB7XG4gIHJldHVybiBnZXRDb2xvcihjb2xvcikodGV4dCk7XG59XG5cbmNvbnN0IGFuc2lSZWdleCA9IFtcbiAgU3RyaW5nLnJhd2BbXFx1MDAxQlxcdTAwOUJdW1tcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcZF0rKD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10qKSopP1xcdTAwMDcpYCxcbiAgU3RyaW5nLnJhd2AoPzooPzpcXGR7MSw0fSg/OjtcXGR7MCw0fSkqKT9bXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKWBcbl0uam9pbihcInxcIik7XG5mdW5jdGlvbiBzdHJpcEFuc2kodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoYW5zaVJlZ2V4LCBcImdcIiksIFwiXCIpO1xufVxuZnVuY3Rpb24gY2VudGVyQWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGNvbnN0IGZyZWVMZWZ0ID0gTWF0aC5mbG9vcihmcmVlIC8gMik7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWVMZWZ0IHx8IGkgPj0gZnJlZUxlZnQgKyBzdHIubGVuZ3RoID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVMZWZ0XTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIHJpZ2h0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWUgPyBzcGFjZSA6IHN0cltpIC0gZnJlZV07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgbGV0IF9zdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgX3N0ciArPSBpIDwgc3RyLmxlbmd0aCA/IHN0cltpXSA6IHNwYWNlO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gYWxpZ24oYWxpZ25tZW50LCBzdHIsIGxlbiwgc3BhY2UgPSBcIiBcIikge1xuICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgIGNhc2UgXCJsZWZ0XCI6IHtcbiAgICAgIHJldHVybiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlKTtcbiAgICB9XG4gICAgY2FzZSBcInJpZ2h0XCI6IHtcbiAgICAgIHJldHVybiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJjZW50ZXJcIjoge1xuICAgICAgcmV0dXJuIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGJveFN0eWxlUHJlc2V0cyA9IHtcbiAgc29saWQ6IHtcbiAgICB0bDogXCJcXHUyNTBDXCIsXG4gICAgdHI6IFwiXFx1MjUxMFwiLFxuICAgIGJsOiBcIlxcdTI1MTRcIixcbiAgICBicjogXCJcXHUyNTE4XCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgZG91YmxlOiB7XG4gICAgdGw6IFwiXFx1MjU1NFwiLFxuICAgIHRyOiBcIlxcdTI1NTdcIixcbiAgICBibDogXCJcXHUyNTVBXCIsXG4gICAgYnI6IFwiXFx1MjU1RFwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIGRvdWJsZVNpbmdsZToge1xuICAgIHRsOiBcIlxcdTI1NTNcIixcbiAgICB0cjogXCJcXHUyNTU2XCIsXG4gICAgYmw6IFwiXFx1MjU1OVwiLFxuICAgIGJyOiBcIlxcdTI1NUNcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIHNpbmdsZVRoaWNrOiB7XG4gICAgdGw6IFwiXFx1MjUwRlwiLFxuICAgIHRyOiBcIlxcdTI1MTNcIixcbiAgICBibDogXCJcXHUyNTE3XCIsXG4gICAgYnI6IFwiXFx1MjUxQlwiLFxuICAgIGg6IFwiXFx1MjUwMVwiLFxuICAgIHY6IFwiXFx1MjUwM1wiXG4gIH0sXG4gIHNpbmdsZURvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTJcIixcbiAgICB0cjogXCJcXHUyNTU1XCIsXG4gICAgYmw6IFwiXFx1MjU1OFwiLFxuICAgIGJyOiBcIlxcdTI1NUJcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICBzaW5nbGVEb3VibGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIHJvdW5kZWQ6IHtcbiAgICB0bDogXCJcXHUyNTZEXCIsXG4gICAgdHI6IFwiXFx1MjU2RVwiLFxuICAgIGJsOiBcIlxcdTI1NzBcIixcbiAgICBicjogXCJcXHUyNTZGXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfVxufTtcbmNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAgYm9yZGVyQ29sb3I6IFwid2hpdGVcIixcbiAgYm9yZGVyU3R5bGU6IFwicm91bmRlZFwiLFxuICB2YWxpZ246IFwiY2VudGVyXCIsXG4gIHBhZGRpbmc6IDIsXG4gIG1hcmdpbkxlZnQ6IDEsXG4gIG1hcmdpblRvcDogMSxcbiAgbWFyZ2luQm90dG9tOiAxXG59O1xuZnVuY3Rpb24gYm94KHRleHQsIF9vcHRzID0ge30pIHtcbiAgY29uc3Qgb3B0cyA9IHtcbiAgICAuLi5fb3B0cyxcbiAgICBzdHlsZToge1xuICAgICAgLi4uZGVmYXVsdFN0eWxlLFxuICAgICAgLi4uX29wdHMuc3R5bGVcbiAgICB9XG4gIH07XG4gIGNvbnN0IHRleHRMaW5lcyA9IHRleHQuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IGJveExpbmVzID0gW107XG4gIGNvbnN0IF9jb2xvciA9IGdldENvbG9yKG9wdHMuc3R5bGUuYm9yZGVyQ29sb3IpO1xuICBjb25zdCBib3JkZXJTdHlsZSA9IHtcbiAgICAuLi50eXBlb2Ygb3B0cy5zdHlsZS5ib3JkZXJTdHlsZSA9PT0gXCJzdHJpbmdcIiA/IGJveFN0eWxlUHJlc2V0c1tvcHRzLnN0eWxlLmJvcmRlclN0eWxlXSB8fCBib3hTdHlsZVByZXNldHMuc29saWQgOiBvcHRzLnN0eWxlLmJvcmRlclN0eWxlXG4gIH07XG4gIGlmIChfY29sb3IpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBib3JkZXJTdHlsZSkge1xuICAgICAgYm9yZGVyU3R5bGVba2V5XSA9IF9jb2xvcihcbiAgICAgICAgYm9yZGVyU3R5bGVba2V5XVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFkZGluZ09mZnNldCA9IG9wdHMuc3R5bGUucGFkZGluZyAlIDIgPT09IDAgPyBvcHRzLnN0eWxlLnBhZGRpbmcgOiBvcHRzLnN0eWxlLnBhZGRpbmcgKyAxO1xuICBjb25zdCBoZWlnaHQgPSB0ZXh0TGluZXMubGVuZ3RoICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGggPSBNYXRoLm1heCguLi50ZXh0TGluZXMubWFwKChsaW5lKSA9PiBsaW5lLmxlbmd0aCkpICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGhPZmZzZXQgPSB3aWR0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IGxlZnRTcGFjZSA9IG9wdHMuc3R5bGUubWFyZ2luTGVmdCA+IDAgPyBcIiBcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5MZWZ0KSA6IFwiXCI7XG4gIGlmIChvcHRzLnN0eWxlLm1hcmdpblRvcCA+IDApIHtcbiAgICBib3hMaW5lcy5wdXNoKFwiXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luVG9wKSk7XG4gIH1cbiAgaWYgKG9wdHMudGl0bGUpIHtcbiAgICBjb25zdCB0aXRsZSA9IF9jb2xvciA/IF9jb2xvcihvcHRzLnRpdGxlKSA6IG9wdHMudGl0bGU7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHt0aXRsZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgYm94TGluZXMucHVzaChcbiAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnRsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH1cbiAgY29uc3QgdmFsaWduT2Zmc2V0ID0gb3B0cy5zdHlsZS52YWxpZ24gPT09IFwiY2VudGVyXCIgPyBNYXRoLmZsb29yKChoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoKSAvIDIpIDogb3B0cy5zdHlsZS52YWxpZ24gPT09IFwidG9wXCIgPyBoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoIC0gcGFkZGluZ09mZnNldCA6IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGVpZ2h0OyBpKyspIHtcbiAgICBpZiAoaSA8IHZhbGlnbk9mZnNldCB8fCBpID49IHZhbGlnbk9mZnNldCArIHRleHRMaW5lcy5sZW5ndGgpIHtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtcIiBcIi5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaW5lID0gdGV4dExpbmVzW2kgLSB2YWxpZ25PZmZzZXRdO1xuICAgICAgY29uc3QgbGVmdCA9IFwiIFwiLnJlcGVhdChwYWRkaW5nT2Zmc2V0KTtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gXCIgXCIucmVwZWF0KHdpZHRoIC0gc3RyaXBBbnNpKGxpbmUpLmxlbmd0aCk7XG4gICAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS52fSR7bGVmdH0ke2xpbmV9JHtyaWdodH0ke2JvcmRlclN0eWxlLnZ9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgYm94TGluZXMucHVzaChcbiAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS5ibH0ke2JvcmRlclN0eWxlLmgucmVwZWF0KHdpZHRoT2Zmc2V0KX0ke2JvcmRlclN0eWxlLmJyfWBcbiAgKTtcbiAgaWYgKG9wdHMuc3R5bGUubWFyZ2luQm90dG9tID4gMCkge1xuICAgIGJveExpbmVzLnB1c2goXCJcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20pKTtcbiAgfVxuICByZXR1cm4gYm94TGluZXMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IHsgYWxpZ24gYXMgYSwgYm94IGFzIGIsIGNlbnRlckFsaWduIGFzIGMsIGNvbG9ycyBhcyBkLCBjb2xvcml6ZSBhcyBlLCBnZXRDb2xvciBhcyBnLCBsZWZ0QWxpZ24gYXMgbCwgcmlnaHRBbGlnbiBhcyByLCBzdHJpcEFuc2kgYXMgcyB9O1xuIiwgImltcG9ydCB7IHN0ZGluLCBzdGRvdXQgfSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IGcgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBXcml0ZVN0cmVhbSB9IGZyb20gJ25vZGU6dHR5JztcbmltcG9ydCB7IGkgYXMgaXNVbmljb2RlU3VwcG9ydGVkIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnLi4vY29yZS5tanMnO1xuaW1wb3J0ICcuLi9zaGFyZWQvY29uc29sYS5DczVGZHRIRC5tanMnO1xuaW1wb3J0ICdub2RlOnV0aWwnO1xuaW1wb3J0ICdub2RlOnBhdGgnO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcyAoeCkge1xuXHRyZXR1cm4geCAmJiB4Ll9fZXNNb2R1bGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHgsICdkZWZhdWx0JykgPyB4WydkZWZhdWx0J10gOiB4O1xufVxuXG52YXIgc3JjO1xudmFyIGhhc1JlcXVpcmVkU3JjO1xuXG5mdW5jdGlvbiByZXF1aXJlU3JjICgpIHtcblx0aWYgKGhhc1JlcXVpcmVkU3JjKSByZXR1cm4gc3JjO1xuXHRoYXNSZXF1aXJlZFNyYyA9IDE7XG5cblx0Y29uc3QgRVNDID0gJ1xceDFCJztcblx0Y29uc3QgQ1NJID0gYCR7RVNDfVtgO1xuXHRjb25zdCBiZWVwID0gJ1xcdTAwMDcnO1xuXG5cdGNvbnN0IGN1cnNvciA9IHtcblx0ICB0byh4LCB5KSB7XG5cdCAgICBpZiAoIXkpIHJldHVybiBgJHtDU0l9JHt4ICsgMX1HYDtcblx0ICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcblx0ICB9LFxuXHQgIG1vdmUoeCwgeSkge1xuXHQgICAgbGV0IHJldCA9ICcnO1xuXG5cdCAgICBpZiAoeCA8IDApIHJldCArPSBgJHtDU0l9JHsteH1EYDtcblx0ICAgIGVsc2UgaWYgKHggPiAwKSByZXQgKz0gYCR7Q1NJfSR7eH1DYDtcblxuXHQgICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG5cdCAgICBlbHNlIGlmICh5ID4gMCkgcmV0ICs9IGAke0NTSX0ke3l9QmA7XG5cblx0ICAgIHJldHVybiByZXQ7XG5cdCAgfSxcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QWAsXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QmAsXG5cdCAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG5cdCAgYmFja3dhcmQ6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fURgLFxuXHQgIG5leHRMaW5lOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9RWAucmVwZWF0KGNvdW50KSxcblx0ICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG5cdCAgbGVmdDogYCR7Q1NJfUdgLFxuXHQgIGhpZGU6IGAke0NTSX0/MjVsYCxcblx0ICBzaG93OiBgJHtDU0l9PzI1aGAsXG5cdCAgc2F2ZTogYCR7RVNDfTdgLFxuXHQgIHJlc3RvcmU6IGAke0VTQ304YFxuXHR9O1xuXG5cdGNvbnN0IHNjcm9sbCA9IHtcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVNgLnJlcGVhdChjb3VudCksXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcblx0fTtcblxuXHRjb25zdCBlcmFzZSA9IHtcblx0ICBzY3JlZW46IGAke0NTSX0ySmAsXG5cdCAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0xSmAucmVwZWF0KGNvdW50KSxcblx0ICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9SmAucmVwZWF0KGNvdW50KSxcblx0ICBsaW5lOiBgJHtDU0l9MktgLFxuXHQgIGxpbmVFbmQ6IGAke0NTSX1LYCxcblx0ICBsaW5lU3RhcnQ6IGAke0NTSX0xS2AsXG5cdCAgbGluZXMoY291bnQpIHtcblx0ICAgIGxldCBjbGVhciA9ICcnO1xuXHQgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKVxuXHQgICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuXHQgICAgaWYgKGNvdW50KVxuXHQgICAgICBjbGVhciArPSBjdXJzb3IubGVmdDtcblx0ICAgIHJldHVybiBjbGVhcjtcblx0ICB9XG5cdH07XG5cblx0c3JjID0geyBjdXJzb3IsIHNjcm9sbCwgZXJhc2UsIGJlZXAgfTtcblx0cmV0dXJuIHNyYztcbn1cblxudmFyIHNyY0V4cG9ydHMgPSByZXF1aXJlU3JjKCk7XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxudmFyIGhhc1JlcXVpcmVkUGljb2NvbG9ycztcblxuZnVuY3Rpb24gcmVxdWlyZVBpY29jb2xvcnMgKCkge1xuXHRpZiAoaGFzUmVxdWlyZWRQaWNvY29sb3JzKSByZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xuXHRoYXNSZXF1aXJlZFBpY29jb2xvcnMgPSAxO1xuXHRsZXQgcCA9IHByb2Nlc3MgfHwge30sIGFyZ3YgPSBwLmFyZ3YgfHwgW10sIGVudiA9IHAuZW52IHx8IHt9O1xuXHRsZXQgaXNDb2xvclN1cHBvcnRlZCA9XG5cdFx0ISghIWVudi5OT19DT0xPUiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0XHQoISFlbnYuRk9SQ0VfQ09MT1IgfHwgYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHwgcC5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiIHx8ICgocC5zdGRvdXQgfHwge30pLmlzVFRZICYmIGVudi5URVJNICE9PSBcImR1bWJcIikgfHwgISFlbnYuQ0kpO1xuXG5cdGxldCBmb3JtYXR0ZXIgPSAob3BlbiwgY2xvc2UsIHJlcGxhY2UgPSBvcGVuKSA9PlxuXHRcdGlucHV0ID0+IHtcblx0XHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQsIGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRcdHJldHVybiB+aW5kZXggPyBvcGVuICsgcmVwbGFjZUNsb3NlKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSArIGNsb3NlIDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdFx0fTtcblxuXHRsZXQgcmVwbGFjZUNsb3NlID0gKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSA9PiB7XG5cdFx0bGV0IHJlc3VsdCA9IFwiXCIsIGN1cnNvciA9IDA7XG5cdFx0ZG8ge1xuXHRcdFx0cmVzdWx0ICs9IHN0cmluZy5zdWJzdHJpbmcoY3Vyc29yLCBpbmRleCkgKyByZXBsYWNlO1xuXHRcdFx0Y3Vyc29yID0gaW5kZXggKyBjbG9zZS5sZW5ndGg7XG5cdFx0XHRpbmRleCA9IHN0cmluZy5pbmRleE9mKGNsb3NlLCBjdXJzb3IpO1xuXHRcdH0gd2hpbGUgKH5pbmRleClcblx0XHRyZXR1cm4gcmVzdWx0ICsgc3RyaW5nLnN1YnN0cmluZyhjdXJzb3IpXG5cdH07XG5cblx0bGV0IGNyZWF0ZUNvbG9ycyA9IChlbmFibGVkID0gaXNDb2xvclN1cHBvcnRlZCkgPT4ge1xuXHRcdGxldCBmID0gZW5hYmxlZCA/IGZvcm1hdHRlciA6ICgpID0+IFN0cmluZztcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNDb2xvclN1cHBvcnRlZDogZW5hYmxlZCxcblx0XHRcdHJlc2V0OiBmKFwiXFx4MWJbMG1cIiwgXCJcXHgxYlswbVwiKSxcblx0XHRcdGJvbGQ6IGYoXCJcXHgxYlsxbVwiLCBcIlxceDFiWzIybVwiLCBcIlxceDFiWzIybVxceDFiWzFtXCIpLFxuXHRcdFx0ZGltOiBmKFwiXFx4MWJbMm1cIiwgXCJcXHgxYlsyMm1cIiwgXCJcXHgxYlsyMm1cXHgxYlsybVwiKSxcblx0XHRcdGl0YWxpYzogZihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpLFxuXHRcdFx0dW5kZXJsaW5lOiBmKFwiXFx4MWJbNG1cIiwgXCJcXHgxYlsyNG1cIiksXG5cdFx0XHRpbnZlcnNlOiBmKFwiXFx4MWJbN21cIiwgXCJcXHgxYlsyN21cIiksXG5cdFx0XHRoaWRkZW46IGYoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSxcblx0XHRcdHN0cmlrZXRocm91Z2g6IGYoXCJcXHgxYls5bVwiLCBcIlxceDFiWzI5bVwiKSxcblxuXHRcdFx0YmxhY2s6IGYoXCJcXHgxYlszMG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWQ6IGYoXCJcXHgxYlszMW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbjogZihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvdzogZihcIlxceDFiWzMzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWU6IGYoXCJcXHgxYlszNG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhOiBmKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbjogZihcIlxceDFiWzM2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlOiBmKFwiXFx4MWJbMzdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Z3JheTogZihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSxcblxuXHRcdFx0YmdCbGFjazogZihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkOiBmKFwiXFx4MWJbNDFtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdHcmVlbjogZihcIlxceDFiWzQybVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnWWVsbG93OiBmKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlOiBmKFwiXFx4MWJbNDRtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdNYWdlbnRhOiBmKFwiXFx4MWJbNDVtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdDeWFuOiBmKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZTogZihcIlxceDFiWzQ3bVwiLCBcIlxceDFiWzQ5bVwiKSxcblxuXHRcdFx0YmxhY2tCcmlnaHQ6IGYoXCJcXHgxYls5MG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWRCcmlnaHQ6IGYoXCJcXHgxYls5MW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbkJyaWdodDogZihcIlxceDFiWzkybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvd0JyaWdodDogZihcIlxceDFiWzkzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWVCcmlnaHQ6IGYoXCJcXHgxYls5NG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhQnJpZ2h0OiBmKFwiXFx4MWJbOTVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbkJyaWdodDogZihcIlxceDFiWzk2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlQnJpZ2h0OiBmKFwiXFx4MWJbOTdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXG5cdFx0XHRiZ0JsYWNrQnJpZ2h0OiBmKFwiXFx4MWJbMTAwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkQnJpZ2h0OiBmKFwiXFx4MWJbMTAxbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnR3JlZW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDJtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdZZWxsb3dCcmlnaHQ6IGYoXCJcXHgxYlsxMDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlQnJpZ2h0OiBmKFwiXFx4MWJbMTA0bVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnTWFnZW50YUJyaWdodDogZihcIlxceDFiWzEwNW1cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0XHRiZ0N5YW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZUJyaWdodDogZihcIlxceDFiWzEwN21cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0fVxuXHR9O1xuXG5cdHBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xuXHRwaWNvY29sb3JzLmV4cG9ydHMuY3JlYXRlQ29sb3JzID0gY3JlYXRlQ29sb3JzO1xuXHRyZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xufVxuXG52YXIgcGljb2NvbG9yc0V4cG9ydHMgPSAvKkBfX1BVUkVfXyovIHJlcXVpcmVQaWNvY29sb3JzKCk7XG5jb25zdCBjID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKHBpY29jb2xvcnNFeHBvcnRzKTtcblxuZnVuY3Rpb24gSih7b25seUZpcnN0OmU9ITF9PXt9KXtjb25zdCBGPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopPyg/OlxcXFx1MDAwN3xcXFxcdTAwMUJcXFxcdTAwNUN8XFxcXHUwMDlDKSlcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnEtdXk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKEYsZT92b2lkIDA6XCJnXCIpfWNvbnN0IFE9SigpO2Z1bmN0aW9uIFQoZSl7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBlfVxcYGApO3JldHVybiBlLnJlcGxhY2UoUSxcIlwiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZX12YXIgUD17ZXhwb3J0czp7fX07KGZ1bmN0aW9uKGUpe3ZhciB1PXt9O2UuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24odCl7dmFyIHM9dC5jaGFyQ29kZUF0KDApLGk9dC5sZW5ndGg9PTI/dC5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1pJiZpPD01NzM0MyYmKHMmPTEwMjMsaSY9MTAyMyxEPXM8PDEwfGksRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbih0KXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKHQpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcz1GKHQpLGk9MCxEPTA7RDxzLmxlbmd0aDtEKyspaT1pK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBpfSx1LnNsaWNlPWZ1bmN0aW9uKHQscyxpKXt0ZXh0TGVuPXUubGVuZ3RoKHQpLHM9c3x8MCxpPWl8fDEsczwwJiYocz10ZXh0TGVuK3MpLGk8MCYmKGk9dGV4dExlbitpKTtmb3IodmFyIEQ9XCJcIixDPTAsbz1GKHQpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKEM+PXMtKG49PTI/MTowKSlpZihDK248PWkpRCs9YTtlbHNlIGJyZWFrO0MrPW47fXJldHVybiBEfTt9KShQKTt2YXIgWD1QLmV4cG9ydHM7Y29uc3QgREQ9TyhYKTt2YXIgdUQ9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3M3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3KVxcdURCNDBcXHVEQzdGfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkVcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKXwoPzpcXHVEODNFXFx1REREMVxcdUQ4M0NcXHVERkZEXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSkpKD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQ1xcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxfFxcdUQ4M0RcXHVEQzY5XFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKSg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkJcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkIoPzpcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSl8XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKT98KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXwoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pXFx1RkUwRnxcXHUyMDBEKD86KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkMpP3woPzpcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKXxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSkpfFxcdUQ4M0RcXHVEQzY5KD86XFx1MjAwRCg/OlxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0VcXHVEREQxKD86XFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZGXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pfFxcdUQ4M0RcXHVERTM2XFx1MjAwRFxcdUQ4M0NcXHVERjJCfFxcdUQ4M0NcXHVERkYzXFx1RkUwRlxcdTIwMERcXHUyNkE3fFxcdUQ4M0RcXHVEQzNCXFx1MjAwRFxcdTI3NDR8KD86KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKVxcdTIwMERbXFx1MjY0MFxcdTI2NDJdfFxcdUQ4M0NcXHVERkY0XFx1MjAwRFxcdTI2MjB8KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkIwXFx1MjZCMVxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkU5XFx1MjZGMFxcdTI2RjFcXHUyNkY0XFx1MjZGN1xcdTI2RjhcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldfFxcdUQ4M0NbXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddfFxcdUQ4M0RbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRjNcXHVGRTBGXFx1MjAwRFxcdUQ4M0NcXHVERjA4fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVERTM1XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCfFxcdUQ4M0RcXHVERTJFXFx1MjAwRFxcdUQ4M0RcXHVEQ0E4fFxcdUQ4M0RcXHVEQzE1XFx1MjAwRFxcdUQ4M0VcXHVEREJBfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkN8XFx1RDgzQ1xcdURGRkIpP3xcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGfFxcdUQ4M0NcXHVERkZFfFxcdUQ4M0NcXHVERkZEfFxcdUQ4M0NcXHVERkZDfFxcdUQ4M0NcXHVERkZCKT98XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdUQ4M0NcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RDgzRFxcdURDMDhcXHUyMDBEXFx1MkIxQnxcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSl8XFx1RDgzRFxcdURDNDFcXHVGRTBGfFxcdUQ4M0NcXHVERkYzXFx1RkUwRnxcXHVEODNDXFx1RERGRig/OlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXSl8XFx1RDgzQ1xcdURERkUoPzpcXHVEODNDW1xcdURERUFcXHVEREY5XSl8XFx1RDgzQ1xcdURERkMoPzpcXHVEODNDW1xcdURERUJcXHVEREY4XSl8XFx1RDgzQ1xcdURERkIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY4KD86XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjcoPzpcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREYzKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdKXxcXHVEODNDXFx1RERGMig/OlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYxKD86XFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdKXxcXHVEODNDXFx1RERGMCg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRCg/OlxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXSl8XFx1RDgzQ1xcdURERUMoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERUEoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXSl8XFx1RDgzQ1xcdURERTkoPzpcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdKXxcXHVEODNDXFx1RERFOCg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU3KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFsjXFwqMC05XVxcdUZFMEZcXHUyMEUzfFxcdTI3NjRcXHVGRTBGfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1REZGNHwoPzpbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OltcXHUyNjFEXFx1MjcwQ1xcdTI3MERdfFxcdUQ4M0RbXFx1REQ3NFxcdUREOTBdKSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDMDhcXHVEQzE1XFx1REMzQlxcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFMkVcXHVERTM1XFx1REUzNlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XXxcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XXxcXHVEODNFW1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXXxbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDFEXFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzhcXHVERDdBLVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQlxcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFNzRcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODZcXHVERTkwLVxcdURFQThcXHVERUIwLVxcdURFQjZcXHVERUMwLVxcdURFQzJcXHVERUQwLVxcdURFRDZdfCg/OltcXHUyMzFBXFx1MjMxQlxcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI1RkVcXHUyNjE0XFx1MjYxNVxcdTI2NDgtXFx1MjY1M1xcdTI2N0ZcXHUyNjkzXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RjJcXHUyNkYzXFx1MjZGNVxcdTI2RkFcXHUyNkZEXFx1MjcwNVxcdTI3MEFcXHUyNzBCXFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkIxQlxcdTJCMUNcXHUyQjUwXFx1MkI1NV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY5M1xcdURGQTAtXFx1REZDQVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjRcXHVERkY4LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQzNFXFx1REM0MFxcdURDNDItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREN0FcXHVERDk1XFx1REQ5NlxcdUREQTRcXHVEREZCLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNDXFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSl8KD86WyNcXCowLTlcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRTktXFx1MjNGM1xcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQi1cXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjFEXFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5Mi1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTFcXHUyNkE3XFx1MjZBQVxcdTI2QUJcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkM4XFx1MjZDRVxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RDRcXHUyNkU5XFx1MjZFQVxcdTI2RjAtXFx1MjZGNVxcdTI2RjctXFx1MjZGQVxcdTI2RkRcXHUyNzAyXFx1MjcwNVxcdTI3MDgtXFx1MjcwRFxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MjhcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc2M1xcdTI3NjRcXHUyNzk1LVxcdTI3OTdcXHUyN0ExXFx1MjdCMFxcdTI3QkZcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUwMlxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjFcXHVERjI0LVxcdURGOTNcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUUtXFx1REZGMFxcdURGRjMtXFx1REZGNVxcdURGRjctXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDRkRcXHVEQ0ZGLVxcdUREM0RcXHVERDQ5LVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDZGXFx1REQ3MFxcdURENzMtXFx1REQ3QVxcdUREODdcXHVERDhBLVxcdUREOERcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkEtXFx1REU0RlxcdURFODAtXFx1REVDNVxcdURFQ0ItXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUVCXFx1REVFQ1xcdURFRjBcXHVERUYzLVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSlcXHVGRTBGfCg/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307Y29uc3QgRkQ9Tyh1RCk7ZnVuY3Rpb24gcChlLHU9e30pe2lmKHR5cGVvZiBlIT1cInN0cmluZ1wifHxlLmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSxlPVQoZSksZS5sZW5ndGg9PT0wKSlyZXR1cm4gMDtlPWUucmVwbGFjZShGRCgpLFwiICBcIik7Y29uc3QgRj11LmFtYmlndW91c0lzTmFycm93PzE6MjtsZXQgdD0wO2Zvcihjb25zdCBzIG9mIGUpe2NvbnN0IGk9cy5jb2RlUG9pbnRBdCgwKTtpZihpPD0zMXx8aT49MTI3JiZpPD0xNTl8fGk+PTc2OCYmaTw9ODc5KWNvbnRpbnVlO3N3aXRjaChERC5lYXN0QXNpYW5XaWR0aChzKSl7Y2FzZVwiRlwiOmNhc2VcIldcIjp0Kz0yO2JyZWFrO2Nhc2VcIkFcIjp0Kz1GO2JyZWFrO2RlZmF1bHQ6dCs9MTt9fXJldHVybiB0fWNvbnN0IG09MTAsTD0oZT0wKT0+dT0+YFxceDFCWyR7dStlfW1gLFc9KGU9MCk9PnU9PmBcXHgxQlskezM4K2V9OzU7JHt1fW1gLE49KGU9MCk9Pih1LEYsdCk9PmBcXHgxQlskezM4K2V9OzI7JHt1fTske0Z9OyR7dH1tYCxyPXttb2RpZmllcjp7cmVzZXQ6WzAsMF0sYm9sZDpbMSwyMl0sZGltOlsyLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0sb3ZlcmxpbmU6WzUzLDU1XSxpbnZlcnNlOls3LDI3XSxoaWRkZW46WzgsMjhdLHN0cmlrZXRocm91Z2g6WzksMjldfSxjb2xvcjp7YmxhY2s6WzMwLDM5XSxyZWQ6WzMxLDM5XSxncmVlbjpbMzIsMzldLHllbGxvdzpbMzMsMzldLGJsdWU6WzM0LDM5XSxtYWdlbnRhOlszNSwzOV0sY3lhbjpbMzYsMzldLHdoaXRlOlszNywzOV0sYmxhY2tCcmlnaHQ6WzkwLDM5XSxncmF5Ols5MCwzOV0sZ3JleTpbOTAsMzldLHJlZEJyaWdodDpbOTEsMzldLGdyZWVuQnJpZ2h0Ols5MiwzOV0seWVsbG93QnJpZ2h0Ols5MywzOV0sYmx1ZUJyaWdodDpbOTQsMzldLG1hZ2VudGFCcmlnaHQ6Wzk1LDM5XSxjeWFuQnJpZ2h0Ols5NiwzOV0sd2hpdGVCcmlnaHQ6Wzk3LDM5XX0sYmdDb2xvcjp7YmdCbGFjazpbNDAsNDldLGJnUmVkOls0MSw0OV0sYmdHcmVlbjpbNDIsNDldLGJnWWVsbG93Ols0Myw0OV0sYmdCbHVlOls0NCw0OV0sYmdNYWdlbnRhOls0NSw0OV0sYmdDeWFuOls0Niw0OV0sYmdXaGl0ZTpbNDcsNDldLGJnQmxhY2tCcmlnaHQ6WzEwMCw0OV0sYmdHcmF5OlsxMDAsNDldLGJnR3JleTpbMTAwLDQ5XSxiZ1JlZEJyaWdodDpbMTAxLDQ5XSxiZ0dyZWVuQnJpZ2h0OlsxMDIsNDldLGJnWWVsbG93QnJpZ2h0OlsxMDMsNDldLGJnQmx1ZUJyaWdodDpbMTA0LDQ5XSxiZ01hZ2VudGFCcmlnaHQ6WzEwNSw0OV0sYmdDeWFuQnJpZ2h0OlsxMDYsNDldLGJnV2hpdGVCcmlnaHQ6WzEwNyw0OV19fTtPYmplY3Qua2V5cyhyLm1vZGlmaWVyKTtjb25zdCBlRD1PYmplY3Qua2V5cyhyLmNvbG9yKSx0RD1PYmplY3Qua2V5cyhyLmJnQ29sb3IpO1suLi5lRCwuLi50RF07ZnVuY3Rpb24gc0QoKXtjb25zdCBlPW5ldyBNYXA7Zm9yKGNvbnN0W3UsRl1vZiBPYmplY3QuZW50cmllcyhyKSl7Zm9yKGNvbnN0W3Qsc11vZiBPYmplY3QuZW50cmllcyhGKSlyW3RdPXtvcGVuOmBcXHgxQlske3NbMF19bWAsY2xvc2U6YFxceDFCWyR7c1sxXX1tYH0sRlt0XT1yW3RdLGUuc2V0KHNbMF0sc1sxXSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdSx7dmFsdWU6RixlbnVtZXJhYmxlOiExfSk7fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocixcImNvZGVzXCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMX0pLHIuY29sb3IuY2xvc2U9XCJcXHgxQlszOW1cIixyLmJnQ29sb3IuY2xvc2U9XCJcXHgxQls0OW1cIixyLmNvbG9yLmFuc2k9TCgpLHIuY29sb3IuYW5zaTI1Nj1XKCksci5jb2xvci5hbnNpMTZtPU4oKSxyLmJnQ29sb3IuYW5zaT1MKG0pLHIuYmdDb2xvci5hbnNpMjU2PVcobSksci5iZ0NvbG9yLmFuc2kxNm09TihtKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLHtyZ2JUb0Fuc2kyNTY6e3ZhbHVlOih1LEYsdCk9PnU9PT1GJiZGPT09dD91PDg/MTY6dT4yNDg/MjMxOk1hdGgucm91bmQoKHUtOCkvMjQ3KjI0KSsyMzI6MTYrMzYqTWF0aC5yb3VuZCh1LzI1NSo1KSs2Kk1hdGgucm91bmQoRi8yNTUqNSkrTWF0aC5yb3VuZCh0LzI1NSo1KSxlbnVtZXJhYmxlOiExfSxoZXhUb1JnYjp7dmFsdWU6dT0+e2NvbnN0IEY9L1thLWZcXGRdezZ9fFthLWZcXGRdezN9L2kuZXhlYyh1LnRvU3RyaW5nKDE2KSk7aWYoIUYpcmV0dXJuIFswLDAsMF07bGV0W3RdPUY7dC5sZW5ndGg9PT0zJiYodD1bLi4udF0ubWFwKGk9PmkraSkuam9pbihcIlwiKSk7Y29uc3Qgcz1OdW1iZXIucGFyc2VJbnQodCwxNik7cmV0dXJuIFtzPj4xNiYyNTUscz4+OCYyNTUscyYyNTVdfSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2kyNTY6e3ZhbHVlOnU9PnIucmdiVG9BbnNpMjU2KC4uLnIuaGV4VG9SZ2IodSkpLGVudW1lcmFibGU6ITF9LGFuc2kyNTZUb0Fuc2k6e3ZhbHVlOnU9PntpZih1PDgpcmV0dXJuIDMwK3U7aWYodTwxNilyZXR1cm4gOTArKHUtOCk7bGV0IEYsdCxzO2lmKHU+PTIzMilGPSgodS0yMzIpKjEwKzgpLzI1NSx0PUYscz1GO2Vsc2Uge3UtPTE2O2NvbnN0IEM9dSUzNjtGPU1hdGguZmxvb3IodS8zNikvNSx0PU1hdGguZmxvb3IoQy82KS81LHM9QyU2LzU7fWNvbnN0IGk9TWF0aC5tYXgoRix0LHMpKjI7aWYoaT09PTApcmV0dXJuIDMwO2xldCBEPTMwKyhNYXRoLnJvdW5kKHMpPDwyfE1hdGgucm91bmQodCk8PDF8TWF0aC5yb3VuZChGKSk7cmV0dXJuIGk9PT0yJiYoRCs9NjApLER9LGVudW1lcmFibGU6ITF9LHJnYlRvQW5zaTp7dmFsdWU6KHUsRix0KT0+ci5hbnNpMjU2VG9BbnNpKHIucmdiVG9BbnNpMjU2KHUsRix0KSksZW51bWVyYWJsZTohMX0saGV4VG9BbnNpOnt2YWx1ZTp1PT5yLmFuc2kyNTZUb0Fuc2koci5oZXhUb0Fuc2kyNTYodSkpLGVudW1lcmFibGU6ITF9fSkscn1jb25zdCBpRD1zRCgpLHY9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLENEPTM5LHc9XCJcXHgwN1wiLEk9XCJbXCIsckQ9XCJdXCIsUj1cIm1cIix5PWAke3JEfTg7O2AsVj1lPT5gJHt2LnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke0l9JHtlfSR7Un1gLHo9ZT0+YCR7di52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt5fSR7ZX0ke3d9YCxFRD1lPT5lLnNwbGl0KFwiIFwiKS5tYXAodT0+cCh1KSksXz0oZSx1LEYpPT57Y29uc3QgdD1bLi4udV07bGV0IHM9ITEsaT0hMSxEPXAoVChlW2UubGVuZ3RoLTFdKSk7Zm9yKGNvbnN0W0Msb11vZiB0LmVudHJpZXMoKSl7Y29uc3QgRT1wKG8pO2lmKEQrRTw9Rj9lW2UubGVuZ3RoLTFdKz1vOihlLnB1c2gobyksRD0wKSx2LmhhcyhvKSYmKHM9ITAsaT10LnNsaWNlKEMrMSkuam9pbihcIlwiKS5zdGFydHNXaXRoKHkpKSxzKXtpP289PT13JiYocz0hMSxpPSExKTpvPT09UiYmKHM9ITEpO2NvbnRpbnVlfUQrPUUsRD09PUYmJkM8dC5sZW5ndGgtMSYmKGUucHVzaChcIlwiKSxEPTApO30hRCYmZVtlLmxlbmd0aC0xXS5sZW5ndGg+MCYmZS5sZW5ndGg+MSYmKGVbZS5sZW5ndGgtMl0rPWUucG9wKCkpO30sbkQ9ZT0+e2NvbnN0IHU9ZS5zcGxpdChcIiBcIik7bGV0IEY9dS5sZW5ndGg7Zm9yKDtGPjAmJiEocCh1W0YtMV0pPjApOylGLS07cmV0dXJuIEY9PT11Lmxlbmd0aD9lOnUuc2xpY2UoMCxGKS5qb2luKFwiIFwiKSt1LnNsaWNlKEYpLmpvaW4oXCJcIil9LG9EPShlLHUsRj17fSk9PntpZihGLnRyaW0hPT0hMSYmZS50cmltKCk9PT1cIlwiKXJldHVybiBcIlwiO2xldCB0PVwiXCIscyxpO2NvbnN0IEQ9RUQoZSk7bGV0IEM9W1wiXCJdO2Zvcihjb25zdFtFLGFdb2YgZS5zcGxpdChcIiBcIikuZW50cmllcygpKXtGLnRyaW0hPT0hMSYmKENbQy5sZW5ndGgtMV09Q1tDLmxlbmd0aC0xXS50cmltU3RhcnQoKSk7bGV0IG49cChDW0MubGVuZ3RoLTFdKTtpZihFIT09MCYmKG4+PXUmJihGLndvcmRXcmFwPT09ITF8fEYudHJpbT09PSExKSYmKEMucHVzaChcIlwiKSxuPTApLChuPjB8fEYudHJpbT09PSExKSYmKENbQy5sZW5ndGgtMV0rPVwiIFwiLG4rKykpLEYuaGFyZCYmRFtFXT51KXtjb25zdCBCPXUtbixmPTErTWF0aC5mbG9vcigoRFtFXS1CLTEpL3UpO01hdGguZmxvb3IoKERbRV0tMSkvdSk8ZiYmQy5wdXNoKFwiXCIpLF8oQyxhLHUpO2NvbnRpbnVlfWlmKG4rRFtFXT51JiZuPjAmJkRbRV0+MCl7aWYoRi53b3JkV3JhcD09PSExJiZuPHUpe18oQyxhLHUpO2NvbnRpbnVlfUMucHVzaChcIlwiKTt9aWYobitEW0VdPnUmJkYud29yZFdyYXA9PT0hMSl7XyhDLGEsdSk7Y29udGludWV9Q1tDLmxlbmd0aC0xXSs9YTt9Ri50cmltIT09ITEmJihDPUMubWFwKEU9Pm5EKEUpKSk7Y29uc3Qgbz1bLi4uQy5qb2luKGBcbmApXTtmb3IoY29uc3RbRSxhXW9mIG8uZW50cmllcygpKXtpZih0Kz1hLHYuaGFzKGEpKXtjb25zdHtncm91cHM6Qn09bmV3IFJlZ0V4cChgKD86XFxcXCR7SX0oPzxjb2RlPlxcXFxkKyltfFxcXFwke3l9KD88dXJpPi4qKSR7d30pYCkuZXhlYyhvLnNsaWNlKEUpLmpvaW4oXCJcIikpfHx7Z3JvdXBzOnt9fTtpZihCLmNvZGUhPT12b2lkIDApe2NvbnN0IGY9TnVtYmVyLnBhcnNlRmxvYXQoQi5jb2RlKTtzPWY9PT1DRD92b2lkIDA6Zjt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKGk9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPWlELmNvZGVzLmdldChOdW1iZXIocykpO29bRSsxXT09PWBcbmA/KGkmJih0Kz16KFwiXCIpKSxzJiZuJiYodCs9VihuKSkpOmE9PT1gXG5gJiYocyYmbiYmKHQrPVYocykpLGkmJih0Kz16KGkpKSk7fXJldHVybiB0fTtmdW5jdGlvbiBHKGUsdSxGKXtyZXR1cm4gU3RyaW5nKGUpLm5vcm1hbGl6ZSgpLnJlcGxhY2UoL1xcclxcbi9nLGBcbmApLnNwbGl0KGBcbmApLm1hcCh0PT5vRCh0LHUsRikpLmpvaW4oYFxuYCl9Y29uc3QgYUQ9W1widXBcIixcImRvd25cIixcImxlZnRcIixcInJpZ2h0XCIsXCJzcGFjZVwiLFwiZW50ZXJcIixcImNhbmNlbFwiXSxBPXthY3Rpb25zOm5ldyBTZXQoYUQpLGFsaWFzZXM6bmV3IE1hcChbW1wia1wiLFwidXBcIl0sW1wialwiLFwiZG93blwiXSxbXCJoXCIsXCJsZWZ0XCJdLFtcImxcIixcInJpZ2h0XCJdLFtcIlx1MDAwM1wiLFwiY2FuY2VsXCJdLFtcImVzY2FwZVwiLFwiY2FuY2VsXCJdXSl9O2Z1bmN0aW9uIGsoZSx1KXtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4gQS5hbGlhc2VzLmdldChlKT09PXU7Zm9yKGNvbnN0IEYgb2YgZSlpZihGIT09dm9pZCAwJiZrKEYsdSkpcmV0dXJuICEwO3JldHVybiAhMX1mdW5jdGlvbiBoRChlLHUpe2lmKGU9PT11KXJldHVybjtjb25zdCBGPWUuc3BsaXQoYFxuYCksdD11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBpPTA7aTxNYXRoLm1heChGLmxlbmd0aCx0Lmxlbmd0aCk7aSsrKUZbaV0hPT10W2ldJiZzLnB1c2goaSk7cmV0dXJuIHN9Z2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtLnN0YXJ0c1dpdGgoXCJ3aW5cIik7Y29uc3QgJD1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZChlLHUpe2NvbnN0IEY9ZTtGLmlzVFRZJiZGLnNldFJhd01vZGUodSk7fXZhciBBRD1PYmplY3QuZGVmaW5lUHJvcGVydHkscEQ9KGUsdSxGKT0+dSBpbiBlP0FEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixsPShlLHUsRik9PihwRChlLHR5cGVvZiB1IT1cInN5bWJvbFwiP3UrXCJcIjp1LEYpLEYpO2NsYXNzIHh7Y29uc3RydWN0b3IodSxGPSEwKXtsKHRoaXMsXCJpbnB1dFwiKSxsKHRoaXMsXCJvdXRwdXRcIiksbCh0aGlzLFwiX2Fib3J0U2lnbmFsXCIpLGwodGhpcyxcInJsXCIpLGwodGhpcyxcIm9wdHNcIiksbCh0aGlzLFwiX3JlbmRlclwiKSxsKHRoaXMsXCJfdHJhY2tcIiwhMSksbCh0aGlzLFwiX3ByZXZGcmFtZVwiLFwiXCIpLGwodGhpcyxcIl9zdWJzY3JpYmVyc1wiLG5ldyBNYXApLGwodGhpcyxcIl9jdXJzb3JcIiwwKSxsKHRoaXMsXCJzdGF0ZVwiLFwiaW5pdGlhbFwiKSxsKHRoaXMsXCJlcnJvclwiLFwiXCIpLGwodGhpcyxcInZhbHVlXCIpO2NvbnN0e2lucHV0OnQ9c3RkaW4sb3V0cHV0OnM9c3Rkb3V0LHJlbmRlcjppLHNpZ25hbDpELC4uLkN9PXU7dGhpcy5vcHRzPUMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPWkuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1GLHRoaXMuX2Fib3J0U2lnbmFsPUQsdGhpcy5pbnB1dD10LHRoaXMub3V0cHV0PXM7fXVuc3Vic2NyaWJlKCl7dGhpcy5fc3Vic2NyaWJlcnMuY2xlYXIoKTt9c2V0U3Vic2NyaWJlcih1LEYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXTt0LnB1c2goRiksdGhpcy5fc3Vic2NyaWJlcnMuc2V0KHUsdCk7fW9uKHUsRil7dGhpcy5zZXRTdWJzY3JpYmVyKHUse2NiOkZ9KTt9b25jZSh1LEYpe3RoaXMuc2V0U3Vic2NyaWJlcih1LHtjYjpGLG9uY2U6ITB9KTt9ZW1pdCh1LC4uLkYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXSxzPVtdO2Zvcihjb25zdCBpIG9mIHQpaS5jYiguLi5GKSxpLm9uY2UmJnMucHVzaCgoKT0+dC5zcGxpY2UodC5pbmRleE9mKGkpLDEpKTtmb3IoY29uc3QgaSBvZiBzKWkoKTt9cHJvbXB0KCl7cmV0dXJuIG5ldyBQcm9taXNlKCh1LEYpPT57aWYodGhpcy5fYWJvcnRTaWduYWwpe2lmKHRoaXMuX2Fib3J0U2lnbmFsLmFib3J0ZWQpcmV0dXJuIHRoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCksdSgkKTt0aGlzLl9hYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwoKT0+e3RoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCk7fSx7b25jZTohMH0pO31jb25zdCB0PW5ldyBXcml0ZVN0cmVhbSgwKTt0Ll93cml0ZT0ocyxpLEQpPT57dGhpcy5fdHJhY2smJih0aGlzLnZhbHVlPXRoaXMucmw/LmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmw/LmN1cnNvcj8/MCx0aGlzLmVtaXQoXCJ2YWx1ZVwiLHRoaXMudmFsdWUpKSxEKCk7fSx0aGlzLmlucHV0LnBpcGUodCksdGhpcy5ybD1nLmNyZWF0ZUludGVyZmFjZSh7aW5wdXQ6dGhpcy5pbnB1dCxvdXRwdXQ6dCx0YWJTaXplOjIscHJvbXB0OlwiXCIsZXNjYXBlQ29kZVRpbWVvdXQ6NTB9KSxnLmVtaXRLZXlwcmVzc0V2ZW50cyh0aGlzLmlucHV0LHRoaXMucmwpLHRoaXMucmwucHJvbXB0KCksdGhpcy5vcHRzLmluaXRpYWxWYWx1ZSE9PXZvaWQgMCYmdGhpcy5fdHJhY2smJnRoaXMucmwud3JpdGUodGhpcy5vcHRzLmluaXRpYWxWYWx1ZSksdGhpcy5pbnB1dC5vbihcImtleXByZXNzXCIsdGhpcy5vbktleXByZXNzKSxkKHRoaXMuaW5wdXQsITApLHRoaXMub3V0cHV0Lm9uKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLHRoaXMucmVuZGVyKCksdGhpcy5vbmNlKFwic3VibWl0XCIsKCk9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZCh0aGlzLmlucHV0LCExKSx1KHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3Iuc2hvdyksdGhpcy5vdXRwdXQub2ZmKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLGQodGhpcy5pbnB1dCwhMSksdSgkKTt9KTt9KX1vbktleXByZXNzKHUsRil7aWYodGhpcy5zdGF0ZT09PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksRj8ubmFtZSYmKCF0aGlzLl90cmFjayYmQS5hbGlhc2VzLmhhcyhGLm5hbWUpJiZ0aGlzLmVtaXQoXCJjdXJzb3JcIixBLmFsaWFzZXMuZ2V0KEYubmFtZSkpLEEuYWN0aW9ucy5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsRi5uYW1lKSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdT09PVwiXHRcIiYmdGhpcy5vcHRzLnBsYWNlaG9sZGVyJiYodGhpcy52YWx1ZXx8KHRoaXMucmw/LndyaXRlKHRoaXMub3B0cy5wbGFjZWhvbGRlciksdGhpcy5lbWl0KFwidmFsdWVcIix0aGlzLm9wdHMucGxhY2Vob2xkZXIpKSksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCB0PXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTt0JiYodGhpcy5lcnJvcj10LHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmw/LndyaXRlKHRoaXMudmFsdWUpKTt9dGhpcy5zdGF0ZSE9PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJzdWJtaXRcIik7fWsoW3UsRj8ubmFtZSxGPy5zZXF1ZW5jZV0sXCJjYW5jZWxcIikmJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGQodGhpcy5pbnB1dCwhMSksdGhpcy5ybD8uY2xvc2UoKSx0aGlzLnJsPXZvaWQgMCx0aGlzLmVtaXQoYCR7dGhpcy5zdGF0ZX1gLHRoaXMudmFsdWUpLHRoaXMudW5zdWJzY3JpYmUoKTt9cmVzdG9yZUN1cnNvcigpe2NvbnN0IHU9Ryh0aGlzLl9wcmV2RnJhbWUscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pLnNwbGl0KGBcbmApLmxlbmd0aC0xO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoLTk5OSx1Ki0xKSk7fXJlbmRlcigpe2NvbnN0IHU9Ryh0aGlzLl9yZW5kZXIodGhpcyk/P1wiXCIscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pO2lmKHUhPT10aGlzLl9wcmV2RnJhbWUpe2lmKHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIil0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPWhEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCB0PUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHQpKSx0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmxpbmVzKDEpKTtjb25zdCBzPXUuc3BsaXQoYFxuYCk7dGhpcy5vdXRwdXQud3JpdGUoc1t0XSksdGhpcy5fcHJldkZyYW1lPXUsdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLXQtMSkpO3JldHVybn1pZihGJiZGPy5sZW5ndGg+MSl7Y29uc3QgdD1GWzBdO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoMCx0KSksdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5lcmFzZS5kb3duKCkpO2NvbnN0IHM9dS5zcGxpdChgXG5gKS5zbGljZSh0KTt0aGlzLm91dHB1dC53cml0ZShzLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmRvd24oKSk7fXRoaXMub3V0cHV0LndyaXRlKHUpLHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksdGhpcy5fcHJldkZyYW1lPXU7fX19Y2xhc3MgZkQgZXh0ZW5kcyB4e2dldCBjdXJzb3IoKXtyZXR1cm4gdGhpcy52YWx1ZT8wOjF9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLmN1cnNvcj09PTB9Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSksdGhpcy52YWx1ZT0hIXUuaW5pdGlhbFZhbHVlLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57dGhpcy52YWx1ZT10aGlzLl92YWx1ZTt9KSx0aGlzLm9uKFwiY29uZmlybVwiLEY9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5tb3ZlKDAsLTEpKSx0aGlzLnZhbHVlPUYsdGhpcy5zdGF0ZT1cInN1Ym1pdFwiLHRoaXMuY2xvc2UoKTt9KSx0aGlzLm9uKFwiY3Vyc29yXCIsKCk9Pnt0aGlzLnZhbHVlPSF0aGlzLnZhbHVlO30pO319dmFyIGJEPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxtRD0oZSx1LEYpPT51IGluIGU/YkQoZSx1LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSk6ZVt1XT1GLFk9KGUsdSxGKT0+KG1EKGUsdHlwZW9mIHUhPVwic3ltYm9sXCI/dStcIlwiOnUsRiksRik7bGV0IHdEPWNsYXNzIGV4dGVuZHMgeHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSxZKHRoaXMsXCJvcHRpb25zXCIpLFkodGhpcyxcImN1cnNvclwiLDApLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fTt2YXIgJEQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LFNEPShlLHUsRik9PnUgaW4gZT8kRChlLHUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KTplW3VdPUYscT0oZSx1LEYpPT4oU0QoZSx0eXBlb2YgdSE9XCJzeW1ib2xcIj91K1wiXCI6dSxGKSxGKTtjbGFzcyBqRCBleHRlbmRzIHh7Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSkscSh0aGlzLFwib3B0aW9uc1wiKSxxKHRoaXMsXCJjdXJzb3JcIiwwKSx0aGlzLm9wdGlvbnM9dS5vcHRpb25zLHRoaXMuY3Vyc29yPXRoaXMub3B0aW9ucy5maW5kSW5kZXgoKHt2YWx1ZTpGfSk9PkY9PT11LmluaXRpYWxWYWx1ZSksdGhpcy5jdXJzb3I9PT0tMSYmKHRoaXMuY3Vyc29yPTApLHRoaXMuY2hhbmdlVmFsdWUoKSx0aGlzLm9uKFwiY3Vyc29yXCIsRj0+e3N3aXRjaChGKXtjYXNlXCJsZWZ0XCI6Y2FzZVwidXBcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PTA/dGhpcy5vcHRpb25zLmxlbmd0aC0xOnRoaXMuY3Vyc29yLTE7YnJlYWs7Y2FzZVwiZG93blwiOmNhc2VcInJpZ2h0XCI6dGhpcy5jdXJzb3I9dGhpcy5jdXJzb3I9PT10aGlzLm9wdGlvbnMubGVuZ3RoLTE/MDp0aGlzLmN1cnNvcisxO2JyZWFrfXRoaXMuY2hhbmdlVmFsdWUoKTt9KTt9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdfWNoYW5nZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLl92YWx1ZS52YWx1ZTt9fXZhciBQRD1PYmplY3QuZGVmaW5lUHJvcGVydHksTEQ9KGUsdSxGKT0+dSBpbiBlP1BEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixXRD0oZSx1LEYpPT4oTEQoZSx1K1wiXCIsRiksRik7Y2xhc3MgTkQgZXh0ZW5kcyB4e2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLFdEKHRoaXMsXCJ2YWx1ZVdpdGhDdXJzb3JcIixcIlwiKSx0aGlzLm9uKFwiZmluYWxpemVcIiwoKT0+e3RoaXMudmFsdWV8fCh0aGlzLnZhbHVlPXUuZGVmYXVsdFZhbHVlKSx0aGlzLnZhbHVlV2l0aEN1cnNvcj10aGlzLnZhbHVlO30pLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57aWYodGhpcy5jdXJzb3I+PXRoaXMudmFsdWUubGVuZ3RoKXRoaXMudmFsdWVXaXRoQ3Vyc29yPWAke3RoaXMudmFsdWV9JHtjLmludmVyc2UoYy5oaWRkZW4oXCJfXCIpKX1gO2Vsc2Uge2NvbnN0IEY9dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuY3Vyc29yKSx0PXRoaXMudmFsdWUuc2xpY2UodGhpcy5jdXJzb3IpO3RoaXMudmFsdWVXaXRoQ3Vyc29yPWAke0Z9JHtjLmludmVyc2UodFswXSl9JHt0LnNsaWNlKDEpfWA7fX0pO31nZXQgY3Vyc29yKCl7cmV0dXJuIHRoaXMuX2N1cnNvcn19XG5cbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBTX1NURVBfQUNUSVZFID0gcyhcIlxcdTI3NkZcIiwgXCI+XCIpO1xuY29uc3QgU19TVEVQX0NBTkNFTCA9IHMoXCJcXHUyNUEwXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9FUlJPUiA9IHMoXCJcXHUyNUIyXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9TVUJNSVQgPSBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIik7XG5jb25zdCBTX0JBUiA9IFwiXCI7XG5jb25zdCBTX0JBUl9FTkQgPSBcIlwiO1xuY29uc3QgU19SQURJT19BQ1RJVkUgPSBzKFwiXFx1MjVDRlwiLCBcIj5cIik7XG5jb25zdCBTX1JBRElPX0lOQUNUSVZFID0gcyhcIlxcdTI1Q0JcIiwgXCIgXCIpO1xuY29uc3QgU19DSEVDS0JPWF9BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIltcXHUyMDIyXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfU0VMRUNURUQgPSBzKFwiXFx1MjVGQ1wiLCBcIlsrXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfSU5BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIlsgXVwiKTtcbmNvbnN0IHN5bWJvbCA9IChzdGF0ZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSBcImluaXRpYWxcIjpcbiAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuY3lhbihTX1NURVBfQUNUSVZFKTtcbiAgICB9XG4gICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnJlZChTX1NURVBfQ0FOQ0VMKTtcbiAgICB9XG4gICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMueWVsbG93KFNfU1RFUF9FUlJPUik7XG4gICAgfVxuICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5ncmVlbihTX1NURVBfU1VCTUlUKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCB0ZXh0ID0gKG9wdHMpID0+IHtcbiAgcmV0dXJuIG5ldyBORCh7XG4gICAgdmFsaWRhdGU6IG9wdHMudmFsaWRhdGUsXG4gICAgcGxhY2Vob2xkZXI6IG9wdHMucGxhY2Vob2xkZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHRWYWx1ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gb3B0cy5wbGFjZWhvbGRlciA/IGNvbG9ycy5pbnZlcnNlKG9wdHMucGxhY2Vob2xkZXJbMF0pICsgY29sb3JzLmRpbShvcHRzLnBsYWNlaG9sZGVyLnNsaWNlKDEpKSA6IGNvbG9ycy5pbnZlcnNlKGNvbG9ycy5oaWRkZW4oXCJfXCIpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWVXaXRoQ3Vyc29yIDogcGxhY2Vob2xkZXI7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGUudHJpbSgpfVxuJHtjb2xvcnMueWVsbG93KFxuICAgICAgICAgICAgU19CQVJcbiAgICAgICAgICApfSAke3ZhbHVlfVxuJHtjb2xvcnMueWVsbG93KFNfQkFSX0VORCl9ICR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIHRoaXMuZXJyb3JcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbShcbiAgICAgICAgICAgIHRoaXMudmFsdWUgfHwgb3B0cy5wbGFjZWhvbGRlclxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHRoaXMudmFsdWUgPz8gXCJcIilcbiAgICAgICAgICApfSR7dGhpcy52YWx1ZT8udHJpbSgpID8gXCJcXG5cIiArIGNvbG9ycy5ncmF5KFNfQkFSKSA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3ZhbHVlfVxuJHtjb2xvcnMuY3lhbihcbiAgICAgICAgICAgIFNfQkFSX0VORFxuICAgICAgICAgICl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBjb25maXJtID0gKG9wdHMpID0+IHtcbiAgY29uc3QgYWN0aXZlID0gb3B0cy5hY3RpdmUgPz8gXCJZZXNcIjtcbiAgY29uc3QgaW5hY3RpdmUgPSBvcHRzLmluYWN0aXZlID8/IFwiTm9cIjtcbiAgcmV0dXJuIG5ldyBmRCh7XG4gICAgYWN0aXZlLFxuICAgIGluYWN0aXZlLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUgPz8gdHJ1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyBhY3RpdmUgOiBpbmFjdGl2ZTtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbSh2YWx1ZSl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHZhbHVlKVxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy52YWx1ZSA/IGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7YWN0aXZlfWAgOiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oYWN0aXZlKX1gfSAke2NvbG9ycy5kaW0oXCIvXCIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oaW5hY3RpdmUpfWAgOiBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2luYWN0aXZlfWB9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBzZWxlY3QgPSAob3B0cykgPT4ge1xuICBjb25zdCBvcHQgPSAob3B0aW9uLCBzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uLmxhYmVsID8/IFN0cmluZyhvcHRpb24udmFsdWUpO1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgXCJhY3RpdmVcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZGltKGxhYmVsKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNhbmNlbGxlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuc3RyaWtldGhyb3VnaChjb2xvcnMuZGltKGxhYmVsKSl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19SQURJT19JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyBqRCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJzZWxlY3RlZFwiXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJjYW5jZWxsZWRcIlxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy5vcHRpb25zLm1hcChcbiAgICAgICAgICAgIChvcHRpb24sIGkpID0+IG9wdChvcHRpb24sIGkgPT09IHRoaXMuY3Vyc29yID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIilcbiAgICAgICAgICApLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcbmNvbnN0IG11bHRpc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5jeWFuKFNfQ0hFQ0tCT1hfQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiYWN0aXZlLXNlbGVjdGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX0NIRUNLQk9YX1NFTEVDVEVEKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzdWJtaXR0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19DSEVDS0JPWF9JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyB3RCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFZhbHVlcyxcbiAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCA/PyB0cnVlLFxuICAgIGN1cnNvckF0OiBvcHRzLmN1cnNvckF0LFxuICAgIHZhbGlkYXRlKHNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiBzZWxlY3RlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGBQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBvcHRpb24uXG4ke2NvbG9ycy5yZXNldChcbiAgICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgICAgYFByZXNzICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIHNwYWNlIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHNlbGVjdCwgJHtjb2xvcnMuZ3JheShcbiAgICAgICAgICAgICAgY29sb3JzLmJnV2hpdGUoY29sb3JzLmludmVyc2UoXCIgZW50ZXIgXCIpKVxuICAgICAgICAgICAgKX0gdG8gc3VibWl0YFxuICAgICAgICAgIClcbiAgICAgICAgKX1gO1xuICAgICAgfVxuICAgIH0sXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHRoaXMudmFsdWUuaW5jbHVkZXModmFsdWUpKS5tYXAoKG9wdGlvbikgPT4gb3B0KG9wdGlvbiwgXCJzdWJtaXR0ZWRcIikpLmpvaW4oY29sb3JzLmRpbShcIiwgXCIpKSB8fCBjb2xvcnMuZGltKFwibm9uZVwiKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwiY2FuY2VsbGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSk7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2xhYmVsLnRyaW0oKSA/IGAke2xhYmVsfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YCA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiZXJyb3JcIjoge1xuICAgICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZXJyb3Iuc3BsaXQoXCJcXG5cIikubWFwKFxuICAgICAgICAgICAgKGxuLCBpKSA9PiBpID09PSAwID8gYCR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3cobG4pfWAgOiBgICAgJHtsbn1gXG4gICAgICAgICAgKS5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgIHJldHVybiB0aXRsZSArIGNvbG9ycy55ZWxsb3coU19CQVIpICsgXCIgIFwiICsgdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGkgPT09IHRoaXMuY3Vyc29yO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZSAmJiBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJhY3RpdmUtc2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgYWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIik7XG4gICAgICAgICAgfSkuam9pbihgXG4ke2NvbG9ycy55ZWxsb3coU19CQVIpfSAgYCkgKyBcIlxcblwiICsgZm9vdGVyICsgXCJcXG5cIjtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcblxuY29uc3Qga0NhbmNlbCA9IFN5bWJvbC5mb3IoXCJjYW5jZWxcIik7XG5hc3luYyBmdW5jdGlvbiBwcm9tcHQobWVzc2FnZSwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3ltYm9sXCIgfHwgdmFsdWUudG9TdHJpbmcoKSAhPT0gXCJTeW1ib2woY2xhY2s6Y2FuY2VsKVwiKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN3aXRjaCAob3B0cy5jYW5jZWwpIHtcbiAgICAgIGNhc2UgXCJyZWplY3RcIjoge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcIlByb21wdCBjYW5jZWxsZWQuXCIpO1xuICAgICAgICBlcnJvci5uYW1lID0gXCJDb25zb2xhUHJvbXB0Q2FuY2VsbGVkRXJyb3JcIjtcbiAgICAgICAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIHByb21wdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjYXNlIFwidW5kZWZpbmVkXCI6IHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJudWxsXCI6IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3ltYm9sXCI6IHtcbiAgICAgICAgcmV0dXJuIGtDYW5jZWw7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBcImRlZmF1bHRcIjoge1xuICAgICAgICByZXR1cm4gb3B0cy5kZWZhdWx0ID8/IG9wdHMuaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGlmICghb3B0cy50eXBlIHx8IG9wdHMudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgdGV4dCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHQsXG4gICAgICBwbGFjZWhvbGRlcjogb3B0cy5wbGFjZWhvbGRlcixcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwiY29uZmlybVwiKSB7XG4gICAgcmV0dXJuIGF3YWl0IGNvbmZpcm0oe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCxcbiAgICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFxuICAgIH0pLnRoZW4oaGFuZGxlQ2FuY2VsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvbXB0IHR5cGU6ICR7b3B0cy50eXBlfWApO1xufVxuXG5leHBvcnQgeyBrQ2FuY2VsLCBwcm9tcHQgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVDb25zb2xhIGFzIGNyZWF0ZUNvbnNvbGEkMSwgTG9nTGV2ZWxzIH0gZnJvbSAnLi4vY29yZS5tanMnO1xuaW1wb3J0IHsgQiBhcyBCYXNpY1JlcG9ydGVyLCBwIGFzIHBhcnNlU3RhY2sgfSBmcm9tICcuL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCBwcm9jZXNzJDEgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzLCBiIGFzIGJveCwgcyBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4vY29uc29sYS5DQmk2Tm05cy5tanMnO1xuXG5jb25zdCByPU9iamVjdC5jcmVhdGUobnVsbCksaT1lPT5nbG9iYWxUaGlzLnByb2Nlc3M/LmVudnx8aW1wb3J0Lm1ldGEuZW52fHxnbG9iYWxUaGlzLkRlbm8/LmVudi50b09iamVjdCgpfHxnbG9iYWxUaGlzLl9fZW52X198fChlP3I6Z2xvYmFsVGhpcykscyQxPW5ldyBQcm94eShyLHtnZXQoZSxvKXtyZXR1cm4gaSgpW29dPz9yW29dfSxoYXMoZSxvKXtjb25zdCBFPWkoKTtyZXR1cm4gbyBpbiBFfHxvIGluIHJ9LHNldChlLG8sRSl7Y29uc3QgYj1pKCEwKTtyZXR1cm4gYltvXT1FLCEwfSxkZWxldGVQcm9wZXJ0eShlLG8pe2lmKCFvKXJldHVybiAhMTtjb25zdCBFPWkoITApO3JldHVybiBkZWxldGUgRVtvXSwhMH0sb3duS2V5cygpe2NvbnN0IGU9aSghMCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpfX0pLHQ9dHlwZW9mIHByb2Nlc3M8XCJ1XCImJnByb2Nlc3MuZW52JiZwcm9jZXNzLmVudi5OT0RFX0VOVnx8XCJcIixCPVtbXCJBUFBWRVlPUlwiXSxbXCJBV1NfQU1QTElGWVwiLFwiQVdTX0FQUF9JRFwiLHtjaTohMH1dLFtcIkFaVVJFX1BJUEVMSU5FU1wiLFwiU1lTVEVNX1RFQU1GT1VOREFUSU9OQ09MTEVDVElPTlVSSVwiXSxbXCJBWlVSRV9TVEFUSUNcIixcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sW1wiQVBQQ0lSQ0xFXCIsXCJBQ19BUFBDSVJDTEVcIl0sW1wiQkFNQk9PXCIsXCJiYW1ib29fcGxhbktleVwiXSxbXCJCSVRCVUNLRVRcIixcIkJJVEJVQ0tFVF9DT01NSVRcIl0sW1wiQklUUklTRVwiLFwiQklUUklTRV9JT1wiXSxbXCJCVUREWVwiLFwiQlVERFlfV09SS1NQQUNFX0lEXCJdLFtcIkJVSUxES0lURVwiXSxbXCJDSVJDTEVcIixcIkNJUkNMRUNJXCJdLFtcIkNJUlJVU1wiLFwiQ0lSUlVTX0NJXCJdLFtcIkNMT1VERkxBUkVfUEFHRVNcIixcIkNGX1BBR0VTXCIse2NpOiEwfV0sW1wiQ09ERUJVSUxEXCIsXCJDT0RFQlVJTERfQlVJTERfQVJOXCJdLFtcIkNPREVGUkVTSFwiLFwiQ0ZfQlVJTERfSURcIl0sW1wiRFJPTkVcIl0sW1wiRFJPTkVcIixcIkRST05FX0JVSUxEX0VWRU5UXCJdLFtcIkRTQVJJXCJdLFtcIkdJVEhVQl9BQ1RJT05TXCJdLFtcIkdJVExBQlwiLFwiR0lUTEFCX0NJXCJdLFtcIkdJVExBQlwiLFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxbXCJHT0NEXCIsXCJHT19QSVBFTElORV9MQUJFTFwiXSxbXCJMQVlFUkNJXCJdLFtcIkhVRFNPTlwiLFwiSFVEU09OX1VSTFwiXSxbXCJKRU5LSU5TXCIsXCJKRU5LSU5TX1VSTFwiXSxbXCJNQUdOVU1cIl0sW1wiTkVUTElGWVwiXSxbXCJORVRMSUZZXCIsXCJORVRMSUZZX0xPQ0FMXCIse2NpOiExfV0sW1wiTkVWRVJDT0RFXCJdLFtcIlJFTkRFUlwiXSxbXCJTQUlMXCIsXCJTQUlMQ0lcIl0sW1wiU0VNQVBIT1JFXCJdLFtcIlNDUkVXRFJJVkVSXCJdLFtcIlNISVBQQUJMRVwiXSxbXCJTT0xBTk9cIixcIlRERElVTVwiXSxbXCJTVFJJREVSXCJdLFtcIlRFQU1DSVRZXCIsXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFtcIlRSQVZJU1wiXSxbXCJWRVJDRUxcIixcIk5PV19CVUlMREVSXCJdLFtcIlZFUkNFTFwiLFwiVkVSQ0VMXCIse2NpOiExfV0sW1wiVkVSQ0VMXCIsXCJWRVJDRUxfRU5WXCIse2NpOiExfV0sW1wiQVBQQ0VOVEVSXCIsXCJBUFBDRU5URVJfQlVJTERfSURcIl0sW1wiQ09ERVNBTkRCT1hcIixcIkNPREVTQU5EQk9YX1NTRVwiLHtjaTohMX1dLFtcIlNUQUNLQkxJVFpcIl0sW1wiU1RPUk1LSVRcIl0sW1wiQ0xFQVZSXCJdLFtcIlpFQUJVUlwiXSxbXCJDT0RFU1BIRVJFXCIsXCJDT0RFU1BIRVJFX0FQUF9JRFwiLHtjaTohMH1dLFtcIlJBSUxXQVlcIixcIlJBSUxXQVlfUFJPSkVDVF9JRFwiXSxbXCJSQUlMV0FZXCIsXCJSQUlMV0FZX1NFUlZJQ0VfSURcIl0sW1wiREVOTy1ERVBMT1lcIixcIkRFTk9fREVQTE9ZTUVOVF9JRFwiXSxbXCJGSVJFQkFTRV9BUFBfSE9TVElOR1wiLFwiRklSRUJBU0VfQVBQX0hPU1RJTkdcIix7Y2k6ITB9XV07ZnVuY3Rpb24gcCgpe2lmKGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52KWZvcihjb25zdCBlIG9mIEIpe2NvbnN0IG89ZVsxXXx8ZVswXTtpZihnbG9iYWxUaGlzLnByb2Nlc3M/LmVudltvXSlyZXR1cm4ge25hbWU6ZVswXS50b0xvd2VyQ2FzZSgpLC4uLmVbMl19fXJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3M/LmVudj8uU0hFTEw9PT1cIi9iaW4vanNoXCImJmdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LndlYmNvbnRhaW5lcj97bmFtZTpcInN0YWNrYmxpdHpcIixjaTohMX06e25hbWU6XCJcIixjaTohMX19Y29uc3QgbD1wKCk7bC5uYW1lO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGU/ZSE9PVwiZmFsc2VcIjohMX1jb25zdCBJPWdsb2JhbFRoaXMucHJvY2Vzcz8ucGxhdGZvcm18fFwiXCIsVD1uKHMkMS5DSSl8fGwuY2khPT0hMSxSPW4oZ2xvYmFsVGhpcy5wcm9jZXNzPy5zdGRvdXQmJmdsb2JhbFRoaXMucHJvY2Vzcz8uc3Rkb3V0LmlzVFRZKSxVPW4ocyQxLkRFQlVHKSxBPXQ9PT1cInRlc3RcInx8bihzJDEuVEVTVCk7bihzJDEuTUlOSU1BTCl8fFR8fEF8fCFSO2NvbnN0IF89L153aW4vaS50ZXN0KEkpOyFuKHMkMS5OT19DT0xPUikmJihuKHMkMS5GT1JDRV9DT0xPUil8fChSfHxfKSYmcyQxLlRFUk0hPT1cImR1bWJcInx8VCk7Y29uc3QgQz0oZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZXx8XCJcIikucmVwbGFjZSgvXnYvLFwiXCIpfHxudWxsO051bWJlcihDPy5zcGxpdChcIi5cIilbMF0pfHxudWxsO2NvbnN0IHk9Z2xvYmFsVGhpcy5wcm9jZXNzfHxPYmplY3QuY3JlYXRlKG51bGwpLGM9e3ZlcnNpb25zOnt9fTtuZXcgUHJveHkoeSx7Z2V0KGUsbyl7aWYobz09PVwiZW52XCIpcmV0dXJuIHMkMTtpZihvIGluIGUpcmV0dXJuIGVbb107aWYobyBpbiBjKXJldHVybiBjW29dfX0pO2NvbnN0IEw9Z2xvYmFsVGhpcy5wcm9jZXNzPy5yZWxlYXNlPy5uYW1lPT09XCJub2RlXCIsYT0hIWdsb2JhbFRoaXMuQnVufHwhIWdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LmJ1bixEPSEhZ2xvYmFsVGhpcy5EZW5vLE89ISFnbG9iYWxUaGlzLmZhc3RseSxTPSEhZ2xvYmFsVGhpcy5OZXRsaWZ5LE49ISFnbG9iYWxUaGlzLkVkZ2VSdW50aW1lLFA9Z2xvYmFsVGhpcy5uYXZpZ2F0b3I/LnVzZXJBZ2VudD09PVwiQ2xvdWRmbGFyZS1Xb3JrZXJzXCIsRj1bW1MsXCJuZXRsaWZ5XCJdLFtOLFwiZWRnZS1saWdodFwiXSxbUCxcIndvcmtlcmRcIl0sW08sXCJmYXN0bHlcIl0sW0QsXCJkZW5vXCJdLFthLFwiYnVuXCJdLFtMLFwibm9kZVwiXV07ZnVuY3Rpb24gRygpe2NvbnN0IGU9Ri5maW5kKG89Pm9bMF0pO2lmKGUpcmV0dXJuIHtuYW1lOmVbMV19fWNvbnN0IHU9RygpO3U/Lm5hbWV8fFwiXCI7XG5cbmZ1bmN0aW9uIGFuc2lSZWdleCh7b25seUZpcnN0ID0gZmFsc2V9ID0ge30pIHtcblx0Ly8gVmFsaWQgc3RyaW5nIHRlcm1pbmF0b3Igc2VxdWVuY2VzIGFyZSBCRUwsIEVTQ1xcLCBhbmQgMHg5Y1xuXHRjb25zdCBTVCA9ICcoPzpcXFxcdTAwMDd8XFxcXHUwMDFCXFxcXHUwMDVDfFxcXFx1MDA5QyknO1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHRcdGBbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT8ke1NUfSlgLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKScsXG5cdF0uam9pbignfCcpO1xuXG5cdHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIG9ubHlGaXJzdCA/IHVuZGVmaW5lZCA6ICdnJyk7XG59XG5cbmNvbnN0IHJlZ2V4ID0gYW5zaVJlZ2V4KCk7XG5cbmZ1bmN0aW9uIHN0cmlwQW5zaShzdHJpbmcpIHtcblx0aWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBzdHJpbmd9XFxgYCk7XG5cdH1cblxuXHQvLyBFdmVuIHRob3VnaCB0aGUgcmVnZXggaXMgZ2xvYmFsLCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoZSBgLmxhc3RJbmRleGBcblx0Ly8gYmVjYXVzZSB1bmxpa2UgYC5leGVjKClgIGFuZCBgLnRlc3QoKWAsIGAucmVwbGFjZSgpYCBkb2VzIGl0IGF1dG9tYXRpY2FsbHlcblx0Ly8gYW5kIGRvaW5nIGl0IG1hbnVhbGx5IGhhcyBhIHBlcmZvcm1hbmNlIHBlbmFsdHkuXG5cdHJldHVybiBzdHJpbmcucmVwbGFjZShyZWdleCwgJycpO1xufVxuXG4vLyBHZW5lcmF0ZWQgY29kZS5cblxuZnVuY3Rpb24gaXNBbWJpZ3VvdXMoeCkge1xuXHRyZXR1cm4geCA9PT0gMHhBMVxuXHRcdHx8IHggPT09IDB4QTRcblx0XHR8fCB4ID09PSAweEE3XG5cdFx0fHwgeCA9PT0gMHhBOFxuXHRcdHx8IHggPT09IDB4QUFcblx0XHR8fCB4ID09PSAweEFEXG5cdFx0fHwgeCA9PT0gMHhBRVxuXHRcdHx8IHggPj0gMHhCMCAmJiB4IDw9IDB4QjRcblx0XHR8fCB4ID49IDB4QjYgJiYgeCA8PSAweEJBXG5cdFx0fHwgeCA+PSAweEJDICYmIHggPD0gMHhCRlxuXHRcdHx8IHggPT09IDB4QzZcblx0XHR8fCB4ID09PSAweEQwXG5cdFx0fHwgeCA9PT0gMHhEN1xuXHRcdHx8IHggPT09IDB4RDhcblx0XHR8fCB4ID49IDB4REUgJiYgeCA8PSAweEUxXG5cdFx0fHwgeCA9PT0gMHhFNlxuXHRcdHx8IHggPj0gMHhFOCAmJiB4IDw9IDB4RUFcblx0XHR8fCB4ID09PSAweEVDXG5cdFx0fHwgeCA9PT0gMHhFRFxuXHRcdHx8IHggPT09IDB4RjBcblx0XHR8fCB4ID09PSAweEYyXG5cdFx0fHwgeCA9PT0gMHhGM1xuXHRcdHx8IHggPj0gMHhGNyAmJiB4IDw9IDB4RkFcblx0XHR8fCB4ID09PSAweEZDXG5cdFx0fHwgeCA9PT0gMHhGRVxuXHRcdHx8IHggPT09IDB4MTAxXG5cdFx0fHwgeCA9PT0gMHgxMTFcblx0XHR8fCB4ID09PSAweDExM1xuXHRcdHx8IHggPT09IDB4MTFCXG5cdFx0fHwgeCA9PT0gMHgxMjZcblx0XHR8fCB4ID09PSAweDEyN1xuXHRcdHx8IHggPT09IDB4MTJCXG5cdFx0fHwgeCA+PSAweDEzMSAmJiB4IDw9IDB4MTMzXG5cdFx0fHwgeCA9PT0gMHgxMzhcblx0XHR8fCB4ID49IDB4MTNGICYmIHggPD0gMHgxNDJcblx0XHR8fCB4ID09PSAweDE0NFxuXHRcdHx8IHggPj0gMHgxNDggJiYgeCA8PSAweDE0QlxuXHRcdHx8IHggPT09IDB4MTREXG5cdFx0fHwgeCA9PT0gMHgxNTJcblx0XHR8fCB4ID09PSAweDE1M1xuXHRcdHx8IHggPT09IDB4MTY2XG5cdFx0fHwgeCA9PT0gMHgxNjdcblx0XHR8fCB4ID09PSAweDE2QlxuXHRcdHx8IHggPT09IDB4MUNFXG5cdFx0fHwgeCA9PT0gMHgxRDBcblx0XHR8fCB4ID09PSAweDFEMlxuXHRcdHx8IHggPT09IDB4MUQ0XG5cdFx0fHwgeCA9PT0gMHgxRDZcblx0XHR8fCB4ID09PSAweDFEOFxuXHRcdHx8IHggPT09IDB4MURBXG5cdFx0fHwgeCA9PT0gMHgxRENcblx0XHR8fCB4ID09PSAweDI1MVxuXHRcdHx8IHggPT09IDB4MjYxXG5cdFx0fHwgeCA9PT0gMHgyQzRcblx0XHR8fCB4ID09PSAweDJDN1xuXHRcdHx8IHggPj0gMHgyQzkgJiYgeCA8PSAweDJDQlxuXHRcdHx8IHggPT09IDB4MkNEXG5cdFx0fHwgeCA9PT0gMHgyRDBcblx0XHR8fCB4ID49IDB4MkQ4ICYmIHggPD0gMHgyREJcblx0XHR8fCB4ID09PSAweDJERFxuXHRcdHx8IHggPT09IDB4MkRGXG5cdFx0fHwgeCA+PSAweDMwMCAmJiB4IDw9IDB4MzZGXG5cdFx0fHwgeCA+PSAweDM5MSAmJiB4IDw9IDB4M0ExXG5cdFx0fHwgeCA+PSAweDNBMyAmJiB4IDw9IDB4M0E5XG5cdFx0fHwgeCA+PSAweDNCMSAmJiB4IDw9IDB4M0MxXG5cdFx0fHwgeCA+PSAweDNDMyAmJiB4IDw9IDB4M0M5XG5cdFx0fHwgeCA9PT0gMHg0MDFcblx0XHR8fCB4ID49IDB4NDEwICYmIHggPD0gMHg0NEZcblx0XHR8fCB4ID09PSAweDQ1MVxuXHRcdHx8IHggPT09IDB4MjAxMFxuXHRcdHx8IHggPj0gMHgyMDEzICYmIHggPD0gMHgyMDE2XG5cdFx0fHwgeCA9PT0gMHgyMDE4XG5cdFx0fHwgeCA9PT0gMHgyMDE5XG5cdFx0fHwgeCA9PT0gMHgyMDFDXG5cdFx0fHwgeCA9PT0gMHgyMDFEXG5cdFx0fHwgeCA+PSAweDIwMjAgJiYgeCA8PSAweDIwMjJcblx0XHR8fCB4ID49IDB4MjAyNCAmJiB4IDw9IDB4MjAyN1xuXHRcdHx8IHggPT09IDB4MjAzMFxuXHRcdHx8IHggPT09IDB4MjAzMlxuXHRcdHx8IHggPT09IDB4MjAzM1xuXHRcdHx8IHggPT09IDB4MjAzNVxuXHRcdHx8IHggPT09IDB4MjAzQlxuXHRcdHx8IHggPT09IDB4MjAzRVxuXHRcdHx8IHggPT09IDB4MjA3NFxuXHRcdHx8IHggPT09IDB4MjA3RlxuXHRcdHx8IHggPj0gMHgyMDgxICYmIHggPD0gMHgyMDg0XG5cdFx0fHwgeCA9PT0gMHgyMEFDXG5cdFx0fHwgeCA9PT0gMHgyMTAzXG5cdFx0fHwgeCA9PT0gMHgyMTA1XG5cdFx0fHwgeCA9PT0gMHgyMTA5XG5cdFx0fHwgeCA9PT0gMHgyMTEzXG5cdFx0fHwgeCA9PT0gMHgyMTE2XG5cdFx0fHwgeCA9PT0gMHgyMTIxXG5cdFx0fHwgeCA9PT0gMHgyMTIyXG5cdFx0fHwgeCA9PT0gMHgyMTI2XG5cdFx0fHwgeCA9PT0gMHgyMTJCXG5cdFx0fHwgeCA9PT0gMHgyMTUzXG5cdFx0fHwgeCA9PT0gMHgyMTU0XG5cdFx0fHwgeCA+PSAweDIxNUIgJiYgeCA8PSAweDIxNUVcblx0XHR8fCB4ID49IDB4MjE2MCAmJiB4IDw9IDB4MjE2QlxuXHRcdHx8IHggPj0gMHgyMTcwICYmIHggPD0gMHgyMTc5XG5cdFx0fHwgeCA9PT0gMHgyMTg5XG5cdFx0fHwgeCA+PSAweDIxOTAgJiYgeCA8PSAweDIxOTlcblx0XHR8fCB4ID09PSAweDIxQjhcblx0XHR8fCB4ID09PSAweDIxQjlcblx0XHR8fCB4ID09PSAweDIxRDJcblx0XHR8fCB4ID09PSAweDIxRDRcblx0XHR8fCB4ID09PSAweDIxRTdcblx0XHR8fCB4ID09PSAweDIyMDBcblx0XHR8fCB4ID09PSAweDIyMDJcblx0XHR8fCB4ID09PSAweDIyMDNcblx0XHR8fCB4ID09PSAweDIyMDdcblx0XHR8fCB4ID09PSAweDIyMDhcblx0XHR8fCB4ID09PSAweDIyMEJcblx0XHR8fCB4ID09PSAweDIyMEZcblx0XHR8fCB4ID09PSAweDIyMTFcblx0XHR8fCB4ID09PSAweDIyMTVcblx0XHR8fCB4ID09PSAweDIyMUFcblx0XHR8fCB4ID49IDB4MjIxRCAmJiB4IDw9IDB4MjIyMFxuXHRcdHx8IHggPT09IDB4MjIyM1xuXHRcdHx8IHggPT09IDB4MjIyNVxuXHRcdHx8IHggPj0gMHgyMjI3ICYmIHggPD0gMHgyMjJDXG5cdFx0fHwgeCA9PT0gMHgyMjJFXG5cdFx0fHwgeCA+PSAweDIyMzQgJiYgeCA8PSAweDIyMzdcblx0XHR8fCB4ID09PSAweDIyM0Ncblx0XHR8fCB4ID09PSAweDIyM0Rcblx0XHR8fCB4ID09PSAweDIyNDhcblx0XHR8fCB4ID09PSAweDIyNENcblx0XHR8fCB4ID09PSAweDIyNTJcblx0XHR8fCB4ID09PSAweDIyNjBcblx0XHR8fCB4ID09PSAweDIyNjFcblx0XHR8fCB4ID49IDB4MjI2NCAmJiB4IDw9IDB4MjI2N1xuXHRcdHx8IHggPT09IDB4MjI2QVxuXHRcdHx8IHggPT09IDB4MjI2QlxuXHRcdHx8IHggPT09IDB4MjI2RVxuXHRcdHx8IHggPT09IDB4MjI2RlxuXHRcdHx8IHggPT09IDB4MjI4MlxuXHRcdHx8IHggPT09IDB4MjI4M1xuXHRcdHx8IHggPT09IDB4MjI4NlxuXHRcdHx8IHggPT09IDB4MjI4N1xuXHRcdHx8IHggPT09IDB4MjI5NVxuXHRcdHx8IHggPT09IDB4MjI5OVxuXHRcdHx8IHggPT09IDB4MjJBNVxuXHRcdHx8IHggPT09IDB4MjJCRlxuXHRcdHx8IHggPT09IDB4MjMxMlxuXHRcdHx8IHggPj0gMHgyNDYwICYmIHggPD0gMHgyNEU5XG5cdFx0fHwgeCA+PSAweDI0RUIgJiYgeCA8PSAweDI1NEJcblx0XHR8fCB4ID49IDB4MjU1MCAmJiB4IDw9IDB4MjU3M1xuXHRcdHx8IHggPj0gMHgyNTgwICYmIHggPD0gMHgyNThGXG5cdFx0fHwgeCA+PSAweDI1OTIgJiYgeCA8PSAweDI1OTVcblx0XHR8fCB4ID09PSAweDI1QTBcblx0XHR8fCB4ID09PSAweDI1QTFcblx0XHR8fCB4ID49IDB4MjVBMyAmJiB4IDw9IDB4MjVBOVxuXHRcdHx8IHggPT09IDB4MjVCMlxuXHRcdHx8IHggPT09IDB4MjVCM1xuXHRcdHx8IHggPT09IDB4MjVCNlxuXHRcdHx8IHggPT09IDB4MjVCN1xuXHRcdHx8IHggPT09IDB4MjVCQ1xuXHRcdHx8IHggPT09IDB4MjVCRFxuXHRcdHx8IHggPT09IDB4MjVDMFxuXHRcdHx8IHggPT09IDB4MjVDMVxuXHRcdHx8IHggPj0gMHgyNUM2ICYmIHggPD0gMHgyNUM4XG5cdFx0fHwgeCA9PT0gMHgyNUNCXG5cdFx0fHwgeCA+PSAweDI1Q0UgJiYgeCA8PSAweDI1RDFcblx0XHR8fCB4ID49IDB4MjVFMiAmJiB4IDw9IDB4MjVFNVxuXHRcdHx8IHggPT09IDB4MjVFRlxuXHRcdHx8IHggPT09IDB4MjYwNVxuXHRcdHx8IHggPT09IDB4MjYwNlxuXHRcdHx8IHggPT09IDB4MjYwOVxuXHRcdHx8IHggPT09IDB4MjYwRVxuXHRcdHx8IHggPT09IDB4MjYwRlxuXHRcdHx8IHggPT09IDB4MjYxQ1xuXHRcdHx8IHggPT09IDB4MjYxRVxuXHRcdHx8IHggPT09IDB4MjY0MFxuXHRcdHx8IHggPT09IDB4MjY0MlxuXHRcdHx8IHggPT09IDB4MjY2MFxuXHRcdHx8IHggPT09IDB4MjY2MVxuXHRcdHx8IHggPj0gMHgyNjYzICYmIHggPD0gMHgyNjY1XG5cdFx0fHwgeCA+PSAweDI2NjcgJiYgeCA8PSAweDI2NkFcblx0XHR8fCB4ID09PSAweDI2NkNcblx0XHR8fCB4ID09PSAweDI2NkRcblx0XHR8fCB4ID09PSAweDI2NkZcblx0XHR8fCB4ID09PSAweDI2OUVcblx0XHR8fCB4ID09PSAweDI2OUZcblx0XHR8fCB4ID09PSAweDI2QkZcblx0XHR8fCB4ID49IDB4MjZDNiAmJiB4IDw9IDB4MjZDRFxuXHRcdHx8IHggPj0gMHgyNkNGICYmIHggPD0gMHgyNkQzXG5cdFx0fHwgeCA+PSAweDI2RDUgJiYgeCA8PSAweDI2RTFcblx0XHR8fCB4ID09PSAweDI2RTNcblx0XHR8fCB4ID09PSAweDI2RThcblx0XHR8fCB4ID09PSAweDI2RTlcblx0XHR8fCB4ID49IDB4MjZFQiAmJiB4IDw9IDB4MjZGMVxuXHRcdHx8IHggPT09IDB4MjZGNFxuXHRcdHx8IHggPj0gMHgyNkY2ICYmIHggPD0gMHgyNkY5XG5cdFx0fHwgeCA9PT0gMHgyNkZCXG5cdFx0fHwgeCA9PT0gMHgyNkZDXG5cdFx0fHwgeCA9PT0gMHgyNkZFXG5cdFx0fHwgeCA9PT0gMHgyNkZGXG5cdFx0fHwgeCA9PT0gMHgyNzNEXG5cdFx0fHwgeCA+PSAweDI3NzYgJiYgeCA8PSAweDI3N0Zcblx0XHR8fCB4ID49IDB4MkI1NiAmJiB4IDw9IDB4MkI1OVxuXHRcdHx8IHggPj0gMHgzMjQ4ICYmIHggPD0gMHgzMjRGXG5cdFx0fHwgeCA+PSAweEUwMDAgJiYgeCA8PSAweEY4RkZcblx0XHR8fCB4ID49IDB4RkUwMCAmJiB4IDw9IDB4RkUwRlxuXHRcdHx8IHggPT09IDB4RkZGRFxuXHRcdHx8IHggPj0gMHgxRjEwMCAmJiB4IDw9IDB4MUYxMEFcblx0XHR8fCB4ID49IDB4MUYxMTAgJiYgeCA8PSAweDFGMTJEXG5cdFx0fHwgeCA+PSAweDFGMTMwICYmIHggPD0gMHgxRjE2OVxuXHRcdHx8IHggPj0gMHgxRjE3MCAmJiB4IDw9IDB4MUYxOERcblx0XHR8fCB4ID09PSAweDFGMThGXG5cdFx0fHwgeCA9PT0gMHgxRjE5MFxuXHRcdHx8IHggPj0gMHgxRjE5QiAmJiB4IDw9IDB4MUYxQUNcblx0XHR8fCB4ID49IDB4RTAxMDAgJiYgeCA8PSAweEUwMUVGXG5cdFx0fHwgeCA+PSAweEYwMDAwICYmIHggPD0gMHhGRkZGRFxuXHRcdHx8IHggPj0gMHgxMDAwMDAgJiYgeCA8PSAweDEwRkZGRDtcbn1cblxuZnVuY3Rpb24gaXNGdWxsV2lkdGgoeCkge1xuXHRyZXR1cm4geCA9PT0gMHgzMDAwXG5cdFx0fHwgeCA+PSAweEZGMDEgJiYgeCA8PSAweEZGNjBcblx0XHR8fCB4ID49IDB4RkZFMCAmJiB4IDw9IDB4RkZFNjtcbn1cblxuZnVuY3Rpb24gaXNXaWRlKHgpIHtcblx0cmV0dXJuIHggPj0gMHgxMTAwICYmIHggPD0gMHgxMTVGXG5cdFx0fHwgeCA9PT0gMHgyMzFBXG5cdFx0fHwgeCA9PT0gMHgyMzFCXG5cdFx0fHwgeCA9PT0gMHgyMzI5XG5cdFx0fHwgeCA9PT0gMHgyMzJBXG5cdFx0fHwgeCA+PSAweDIzRTkgJiYgeCA8PSAweDIzRUNcblx0XHR8fCB4ID09PSAweDIzRjBcblx0XHR8fCB4ID09PSAweDIzRjNcblx0XHR8fCB4ID09PSAweDI1RkRcblx0XHR8fCB4ID09PSAweDI1RkVcblx0XHR8fCB4ID09PSAweDI2MTRcblx0XHR8fCB4ID09PSAweDI2MTVcblx0XHR8fCB4ID49IDB4MjYzMCAmJiB4IDw9IDB4MjYzN1xuXHRcdHx8IHggPj0gMHgyNjQ4ICYmIHggPD0gMHgyNjUzXG5cdFx0fHwgeCA9PT0gMHgyNjdGXG5cdFx0fHwgeCA+PSAweDI2OEEgJiYgeCA8PSAweDI2OEZcblx0XHR8fCB4ID09PSAweDI2OTNcblx0XHR8fCB4ID09PSAweDI2QTFcblx0XHR8fCB4ID09PSAweDI2QUFcblx0XHR8fCB4ID09PSAweDI2QUJcblx0XHR8fCB4ID09PSAweDI2QkRcblx0XHR8fCB4ID09PSAweDI2QkVcblx0XHR8fCB4ID09PSAweDI2QzRcblx0XHR8fCB4ID09PSAweDI2QzVcblx0XHR8fCB4ID09PSAweDI2Q0Vcblx0XHR8fCB4ID09PSAweDI2RDRcblx0XHR8fCB4ID09PSAweDI2RUFcblx0XHR8fCB4ID09PSAweDI2RjJcblx0XHR8fCB4ID09PSAweDI2RjNcblx0XHR8fCB4ID09PSAweDI2RjVcblx0XHR8fCB4ID09PSAweDI2RkFcblx0XHR8fCB4ID09PSAweDI2RkRcblx0XHR8fCB4ID09PSAweDI3MDVcblx0XHR8fCB4ID09PSAweDI3MEFcblx0XHR8fCB4ID09PSAweDI3MEJcblx0XHR8fCB4ID09PSAweDI3Mjhcblx0XHR8fCB4ID09PSAweDI3NENcblx0XHR8fCB4ID09PSAweDI3NEVcblx0XHR8fCB4ID49IDB4Mjc1MyAmJiB4IDw9IDB4Mjc1NVxuXHRcdHx8IHggPT09IDB4Mjc1N1xuXHRcdHx8IHggPj0gMHgyNzk1ICYmIHggPD0gMHgyNzk3XG5cdFx0fHwgeCA9PT0gMHgyN0IwXG5cdFx0fHwgeCA9PT0gMHgyN0JGXG5cdFx0fHwgeCA9PT0gMHgyQjFCXG5cdFx0fHwgeCA9PT0gMHgyQjFDXG5cdFx0fHwgeCA9PT0gMHgyQjUwXG5cdFx0fHwgeCA9PT0gMHgyQjU1XG5cdFx0fHwgeCA+PSAweDJFODAgJiYgeCA8PSAweDJFOTlcblx0XHR8fCB4ID49IDB4MkU5QiAmJiB4IDw9IDB4MkVGM1xuXHRcdHx8IHggPj0gMHgyRjAwICYmIHggPD0gMHgyRkQ1XG5cdFx0fHwgeCA+PSAweDJGRjAgJiYgeCA8PSAweDJGRkZcblx0XHR8fCB4ID49IDB4MzAwMSAmJiB4IDw9IDB4MzAzRVxuXHRcdHx8IHggPj0gMHgzMDQxICYmIHggPD0gMHgzMDk2XG5cdFx0fHwgeCA+PSAweDMwOTkgJiYgeCA8PSAweDMwRkZcblx0XHR8fCB4ID49IDB4MzEwNSAmJiB4IDw9IDB4MzEyRlxuXHRcdHx8IHggPj0gMHgzMTMxICYmIHggPD0gMHgzMThFXG5cdFx0fHwgeCA+PSAweDMxOTAgJiYgeCA8PSAweDMxRTVcblx0XHR8fCB4ID49IDB4MzFFRiAmJiB4IDw9IDB4MzIxRVxuXHRcdHx8IHggPj0gMHgzMjIwICYmIHggPD0gMHgzMjQ3XG5cdFx0fHwgeCA+PSAweDMyNTAgJiYgeCA8PSAweEE0OENcblx0XHR8fCB4ID49IDB4QTQ5MCAmJiB4IDw9IDB4QTRDNlxuXHRcdHx8IHggPj0gMHhBOTYwICYmIHggPD0gMHhBOTdDXG5cdFx0fHwgeCA+PSAweEFDMDAgJiYgeCA8PSAweEQ3QTNcblx0XHR8fCB4ID49IDB4RjkwMCAmJiB4IDw9IDB4RkFGRlxuXHRcdHx8IHggPj0gMHhGRTEwICYmIHggPD0gMHhGRTE5XG5cdFx0fHwgeCA+PSAweEZFMzAgJiYgeCA8PSAweEZFNTJcblx0XHR8fCB4ID49IDB4RkU1NCAmJiB4IDw9IDB4RkU2NlxuXHRcdHx8IHggPj0gMHhGRTY4ICYmIHggPD0gMHhGRTZCXG5cdFx0fHwgeCA+PSAweDE2RkUwICYmIHggPD0gMHgxNkZFNFxuXHRcdHx8IHggPT09IDB4MTZGRjBcblx0XHR8fCB4ID09PSAweDE2RkYxXG5cdFx0fHwgeCA+PSAweDE3MDAwICYmIHggPD0gMHgxODdGN1xuXHRcdHx8IHggPj0gMHgxODgwMCAmJiB4IDw9IDB4MThDRDVcblx0XHR8fCB4ID49IDB4MThDRkYgJiYgeCA8PSAweDE4RDA4XG5cdFx0fHwgeCA+PSAweDFBRkYwICYmIHggPD0gMHgxQUZGM1xuXHRcdHx8IHggPj0gMHgxQUZGNSAmJiB4IDw9IDB4MUFGRkJcblx0XHR8fCB4ID09PSAweDFBRkZEXG5cdFx0fHwgeCA9PT0gMHgxQUZGRVxuXHRcdHx8IHggPj0gMHgxQjAwMCAmJiB4IDw9IDB4MUIxMjJcblx0XHR8fCB4ID09PSAweDFCMTMyXG5cdFx0fHwgeCA+PSAweDFCMTUwICYmIHggPD0gMHgxQjE1MlxuXHRcdHx8IHggPT09IDB4MUIxNTVcblx0XHR8fCB4ID49IDB4MUIxNjQgJiYgeCA8PSAweDFCMTY3XG5cdFx0fHwgeCA+PSAweDFCMTcwICYmIHggPD0gMHgxQjJGQlxuXHRcdHx8IHggPj0gMHgxRDMwMCAmJiB4IDw9IDB4MUQzNTZcblx0XHR8fCB4ID49IDB4MUQzNjAgJiYgeCA8PSAweDFEMzc2XG5cdFx0fHwgeCA9PT0gMHgxRjAwNFxuXHRcdHx8IHggPT09IDB4MUYwQ0Zcblx0XHR8fCB4ID09PSAweDFGMThFXG5cdFx0fHwgeCA+PSAweDFGMTkxICYmIHggPD0gMHgxRjE5QVxuXHRcdHx8IHggPj0gMHgxRjIwMCAmJiB4IDw9IDB4MUYyMDJcblx0XHR8fCB4ID49IDB4MUYyMTAgJiYgeCA8PSAweDFGMjNCXG5cdFx0fHwgeCA+PSAweDFGMjQwICYmIHggPD0gMHgxRjI0OFxuXHRcdHx8IHggPT09IDB4MUYyNTBcblx0XHR8fCB4ID09PSAweDFGMjUxXG5cdFx0fHwgeCA+PSAweDFGMjYwICYmIHggPD0gMHgxRjI2NVxuXHRcdHx8IHggPj0gMHgxRjMwMCAmJiB4IDw9IDB4MUYzMjBcblx0XHR8fCB4ID49IDB4MUYzMkQgJiYgeCA8PSAweDFGMzM1XG5cdFx0fHwgeCA+PSAweDFGMzM3ICYmIHggPD0gMHgxRjM3Q1xuXHRcdHx8IHggPj0gMHgxRjM3RSAmJiB4IDw9IDB4MUYzOTNcblx0XHR8fCB4ID49IDB4MUYzQTAgJiYgeCA8PSAweDFGM0NBXG5cdFx0fHwgeCA+PSAweDFGM0NGICYmIHggPD0gMHgxRjNEM1xuXHRcdHx8IHggPj0gMHgxRjNFMCAmJiB4IDw9IDB4MUYzRjBcblx0XHR8fCB4ID09PSAweDFGM0Y0XG5cdFx0fHwgeCA+PSAweDFGM0Y4ICYmIHggPD0gMHgxRjQzRVxuXHRcdHx8IHggPT09IDB4MUY0NDBcblx0XHR8fCB4ID49IDB4MUY0NDIgJiYgeCA8PSAweDFGNEZDXG5cdFx0fHwgeCA+PSAweDFGNEZGICYmIHggPD0gMHgxRjUzRFxuXHRcdHx8IHggPj0gMHgxRjU0QiAmJiB4IDw9IDB4MUY1NEVcblx0XHR8fCB4ID49IDB4MUY1NTAgJiYgeCA8PSAweDFGNTY3XG5cdFx0fHwgeCA9PT0gMHgxRjU3QVxuXHRcdHx8IHggPT09IDB4MUY1OTVcblx0XHR8fCB4ID09PSAweDFGNTk2XG5cdFx0fHwgeCA9PT0gMHgxRjVBNFxuXHRcdHx8IHggPj0gMHgxRjVGQiAmJiB4IDw9IDB4MUY2NEZcblx0XHR8fCB4ID49IDB4MUY2ODAgJiYgeCA8PSAweDFGNkM1XG5cdFx0fHwgeCA9PT0gMHgxRjZDQ1xuXHRcdHx8IHggPj0gMHgxRjZEMCAmJiB4IDw9IDB4MUY2RDJcblx0XHR8fCB4ID49IDB4MUY2RDUgJiYgeCA8PSAweDFGNkQ3XG5cdFx0fHwgeCA+PSAweDFGNkRDICYmIHggPD0gMHgxRjZERlxuXHRcdHx8IHggPT09IDB4MUY2RUJcblx0XHR8fCB4ID09PSAweDFGNkVDXG5cdFx0fHwgeCA+PSAweDFGNkY0ICYmIHggPD0gMHgxRjZGQ1xuXHRcdHx8IHggPj0gMHgxRjdFMCAmJiB4IDw9IDB4MUY3RUJcblx0XHR8fCB4ID09PSAweDFGN0YwXG5cdFx0fHwgeCA+PSAweDFGOTBDICYmIHggPD0gMHgxRjkzQVxuXHRcdHx8IHggPj0gMHgxRjkzQyAmJiB4IDw9IDB4MUY5NDVcblx0XHR8fCB4ID49IDB4MUY5NDcgJiYgeCA8PSAweDFGOUZGXG5cdFx0fHwgeCA+PSAweDFGQTcwICYmIHggPD0gMHgxRkE3Q1xuXHRcdHx8IHggPj0gMHgxRkE4MCAmJiB4IDw9IDB4MUZBODlcblx0XHR8fCB4ID49IDB4MUZBOEYgJiYgeCA8PSAweDFGQUM2XG5cdFx0fHwgeCA+PSAweDFGQUNFICYmIHggPD0gMHgxRkFEQ1xuXHRcdHx8IHggPj0gMHgxRkFERiAmJiB4IDw9IDB4MUZBRTlcblx0XHR8fCB4ID49IDB4MUZBRjAgJiYgeCA8PSAweDFGQUY4XG5cdFx0fHwgeCA+PSAweDIwMDAwICYmIHggPD0gMHgyRkZGRFxuXHRcdHx8IHggPj0gMHgzMDAwMCAmJiB4IDw9IDB4M0ZGRkQ7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKGNvZGVQb2ludCkge1xuXHRpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvZGVQb2ludCkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIGNvZGUgcG9pbnQsIGdvdCBcXGAke3R5cGVvZiBjb2RlUG9pbnR9XFxgLmApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGVhc3RBc2lhbldpZHRoKGNvZGVQb2ludCwge2FtYmlndW91c0FzV2lkZSA9IGZhbHNlfSA9IHt9KSB7XG5cdHZhbGlkYXRlKGNvZGVQb2ludCk7XG5cblx0aWYgKFxuXHRcdGlzRnVsbFdpZHRoKGNvZGVQb2ludClcblx0XHR8fCBpc1dpZGUoY29kZVBvaW50KVxuXHRcdHx8IChhbWJpZ3VvdXNBc1dpZGUgJiYgaXNBbWJpZ3VvdXMoY29kZVBvaW50KSlcblx0KSB7XG5cdFx0cmV0dXJuIDI7XG5cdH1cblxuXHRyZXR1cm4gMTtcbn1cblxuY29uc3QgZW1vamlSZWdleCA9ICgpID0+IHtcblx0Ly8gaHR0cHM6Ly9tdGhzLmJlL2Vtb2ppXG5cdHJldHVybiAvWyMqMC05XVxcdUZFMEY/XFx1MjBFM3xbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMUFcXHUyMzFCXFx1MjMyOFxcdTIzQ0ZcXHUyM0VELVxcdTIzRUZcXHUyM0YxXFx1MjNGMlxcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQlxcdTI1RkNcXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkFBXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM4XFx1MjZDRlxcdTI2RDFcXHUyNkU5XFx1MjZGMC1cXHUyNkY1XFx1MjZGN1xcdTI2RjhcXHUyNkZBXFx1MjcwMlxcdTI3MDhcXHUyNzA5XFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NTdcXHUyNzYzXFx1MjdBMVxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV1cXHVGRTBGP3xbXFx1MjYxRFxcdTI3MENcXHUyNzBEXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT98W1xcdTI3MEFcXHUyNzBCXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNjkzXFx1MjZBMVxcdTI2QUJcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCNTBdfFxcdTI2RDNcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RENBNSk/fFxcdTI2RjkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdTI3NjRcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSkpP3xcXHVEODNDKD86W1xcdURDMDRcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REUwMlxcdURFMzdcXHVERjIxXFx1REYyNC1cXHVERjJDXFx1REYzNlxcdURGN0RcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUVcXHVERjlGXFx1REZDRFxcdURGQ0VcXHVERkQ0LVxcdURGREZcXHVERkY1XFx1REZGN11cXHVGRTBGP3xbXFx1REY4NVxcdURGQzJcXHVERkM3XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY0M1xcdURGNDUtXFx1REY0QVxcdURGNEMtXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY3XFx1RERGQS1cXHVEREZGXXxcXHVEREU5XFx1RDgzQ1tcXHVEREVBXFx1RERFQ1xcdURERUZcXHVEREYwXFx1RERGMlxcdURERjRcXHVEREZGXXxcXHVEREVBXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV18XFx1RERFQlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XXxcXHVEREVDXFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXXxcXHVEREVEXFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdfFxcdURERUVcXHVEODNDW1xcdURERTgtXFx1RERFQVxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOV18XFx1RERFRlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV18XFx1RERGMFxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERjFcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV18XFx1RERGMlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl18XFx1RERGM1xcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBLVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjRcXHVEREY1XFx1RERGN1xcdURERkFcXHVEREZGXXxcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RERGNVxcdUQ4M0NbXFx1RERFNlxcdURERUEtXFx1RERFRFxcdURERjAtXFx1RERGM1xcdURERjctXFx1RERGOVxcdURERkNcXHVEREZFXXxcXHVEREY2XFx1RDgzQ1xcdURERTZ8XFx1RERGN1xcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdfFxcdURERjhcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdfFxcdURERjlcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRFxcdURERUYtXFx1RERGNFxcdURERjdcXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZGXXxcXHVEREZBXFx1RDgzQ1tcXHVEREU2XFx1RERFQ1xcdURERjJcXHVEREYzXFx1RERGOFxcdURERkVcXHVEREZGXXxcXHVEREZCXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXXxcXHVEREZDXFx1RDgzQ1tcXHVEREVCXFx1RERGOF18XFx1RERGRFxcdUQ4M0NcXHVEREYwfFxcdURERkVcXHVEODNDW1xcdURERUFcXHVEREY5XXxcXHVEREZGXFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdfFxcdURGNDQoPzpcXHUyMDBEXFx1RDgzRFxcdURGRUIpP3xcXHVERjRCKD86XFx1MjAwRFxcdUQ4M0RcXHVERkU5KT98XFx1REZDMyg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REZGM1xcdUZFMEY/KD86XFx1MjAwRCg/OlxcdTI2QTdcXHVGRTBGP3xcXHVEODNDXFx1REYwOCkpP3xcXHVERkY0KD86XFx1MjAwRFxcdTI2MjBcXHVGRTBGP3xcXHVEQjQwXFx1REM2N1xcdURCNDBcXHVEQzYyXFx1REI0MCg/OlxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3fFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGKT8pfFxcdUQ4M0QoPzpbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdXFx1RkUwRj98W1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0XFx1REVCNV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0MVxcdURFNDNcXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVEQy1cXHVERURGXFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJcXHVERkYwXXxcXHVEQzA4KD86XFx1MjAwRFxcdTJCMUIpP3xcXHVEQzE1KD86XFx1MjAwRFxcdUQ4M0VcXHVEREJBKT98XFx1REMyNig/OlxcdTIwMEQoPzpcXHUyQjFCfFxcdUQ4M0RcXHVERDI1KSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzY5KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1tcXHVEQzY4XFx1REM2OV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT98XFx1REM2OVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPykpfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNkYoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REQ3NSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REUyRSg/OlxcdTIwMERcXHVEODNEXFx1RENBOCk/fFxcdURFMzUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQUIpP3xcXHVERTM2KD86XFx1MjAwRFxcdUQ4M0NcXHVERjJCXFx1RkUwRj8pP3xcXHVERTQyKD86XFx1MjAwRFtcXHUyMTk0XFx1MjE5NV1cXHVGRTBGPyk/fFxcdURFQjYoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/KXxcXHVEODNFKD86W1xcdUREMENcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQzMC1cXHVERDM0XFx1REQzNlxcdURENzdcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyXFx1REREM1xcdURERDVcXHVERUMzLVxcdURFQzVcXHVERUYwXFx1REVGMi1cXHVERUY4XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENEXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg5XFx1REU4Ri1cXHVERUMyXFx1REVDNlxcdURFQ0UtXFx1REVEQ1xcdURFREYtXFx1REVFOV18XFx1REQzQyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj98XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98XFx1RERDRSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REREMSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1REREMVxcdTIwMERcXHVEODNFXFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/fFxcdURERDIoPzpcXHUyMDBEXFx1RDgzRVxcdURERDIpPykpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkMtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmNvbnN0IHNlZ21lbnRlciA9IG5ldyBJbnRsLlNlZ21lbnRlcigpO1xuXG5jb25zdCBkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXggPSAvXlxccHtEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50fSQvdTtcblxuZnVuY3Rpb24gc3RyaW5nV2lkdGgkMShzdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Y29uc3Qge1xuXHRcdGFtYmlndW91c0lzTmFycm93ID0gdHJ1ZSxcblx0XHRjb3VudEFuc2lFc2NhcGVDb2RlcyA9IGZhbHNlLFxuXHR9ID0gb3B0aW9ucztcblxuXHRpZiAoIWNvdW50QW5zaUVzY2FwZUNvZGVzKSB7XG5cdFx0c3RyaW5nID0gc3RyaXBBbnNpKHN0cmluZyk7XG5cdH1cblxuXHRpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0bGV0IHdpZHRoID0gMDtcblx0Y29uc3QgZWFzdEFzaWFuV2lkdGhPcHRpb25zID0ge2FtYmlndW91c0FzV2lkZTogIWFtYmlndW91c0lzTmFycm93fTtcblxuXHRmb3IgKGNvbnN0IHtzZWdtZW50OiBjaGFyYWN0ZXJ9IG9mIHNlZ21lbnRlci5zZWdtZW50KHN0cmluZykpIHtcblx0XHRjb25zdCBjb2RlUG9pbnQgPSBjaGFyYWN0ZXIuY29kZVBvaW50QXQoMCk7XG5cblx0XHQvLyBJZ25vcmUgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGVQb2ludCA8PSAweDFGIHx8IChjb2RlUG9pbnQgPj0gMHg3RiAmJiBjb2RlUG9pbnQgPD0gMHg5RikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIElnbm9yZSB6ZXJvLXdpZHRoIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4MjBfMEIgJiYgY29kZVBvaW50IDw9IDB4MjBfMEYpIC8vIFplcm8td2lkdGggc3BhY2UsIG5vbi1qb2luZXIsIGpvaW5lciwgbGVmdC10by1yaWdodCBtYXJrLCByaWdodC10by1sZWZ0IG1hcmtcblx0XHRcdHx8IGNvZGVQb2ludCA9PT0gMHhGRV9GRiAvLyBaZXJvLXdpZHRoIG5vLWJyZWFrIHNwYWNlXG5cdFx0KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSAvLyBDb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3Ncblx0XHRcdHx8IChjb2RlUG9pbnQgPj0gMHgxQV9CMCAmJiBjb2RlUG9pbnQgPD0gMHgxQV9GRikgLy8gQ29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGV4dGVuZGVkXG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MURfQzAgJiYgY29kZVBvaW50IDw9IDB4MURfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBzdXBwbGVtZW50XG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MjBfRDAgJiYgY29kZVBvaW50IDw9IDB4MjBfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBmb3Igc3ltYm9sc1xuXHRcdFx0fHwgKGNvZGVQb2ludCA+PSAweEZFXzIwICYmIGNvZGVQb2ludCA8PSAweEZFXzJGKSAvLyBDb21iaW5pbmcgaGFsZiBtYXJrc1xuXHRcdCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHN1cnJvZ2F0ZSBwYWlyc1xuXHRcdGlmIChjb2RlUG9pbnQgPj0gMHhEOF8wMCAmJiBjb2RlUG9pbnQgPD0gMHhERl9GRikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHZhcmlhdGlvbiBzZWxlY3RvcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4RkVfMDAgJiYgY29kZVBvaW50IDw9IDB4RkVfMEYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIFRoaXMgY292ZXJzIHNvbWUgb2YgdGhlIGFib3ZlIGNhc2VzLCBidXQgd2Ugc3RpbGwga2VlcCB0aGVtIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuXHRcdGlmIChkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXgudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBUT0RPOiBVc2UgYC9cXHB7UkdJX0Vtb2ppfS92YCB3aGVuIHRhcmdldGluZyBOb2RlLmpzIDIwLlxuXHRcdGlmIChlbW9qaVJlZ2V4KCkudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0d2lkdGggKz0gZWFzdEFzaWFuV2lkdGgoY29kZVBvaW50LCBlYXN0QXNpYW5XaWR0aE9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGNvbnN0IHtlbnZ9ID0gcHJvY2VzcyQxO1xuXHRjb25zdCB7VEVSTSwgVEVSTV9QUk9HUkFNfSA9IGVudjtcblxuXHRpZiAocHJvY2VzcyQxLnBsYXRmb3JtICE9PSAnd2luMzInKSB7XG5cdFx0cmV0dXJuIFRFUk0gIT09ICdsaW51eCc7IC8vIExpbnV4IGNvbnNvbGUgKGtlcm5lbClcblx0fVxuXG5cdHJldHVybiBCb29sZWFuKGVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihlbnYuVEVSTUlOVVNfU1VCTElNRSkgLy8gVGVybWludXMgKDwwLjIuMjcpXG5cdFx0fHwgZW52LkNvbkVtdVRhc2sgPT09ICd7Y21kOjpDbWRlcn0nIC8vIENvbkVtdSBhbmQgY21kZXJcblx0XHR8fCBURVJNX1BST0dSQU0gPT09ICdUZXJtaW51cy1TdWJsaW1lJ1xuXHRcdHx8IFRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBURVJNID09PSAneHRlcm0tMjU2Y29sb3InXG5cdFx0fHwgVEVSTSA9PT0gJ2FsYWNyaXR0eSdcblx0XHR8fCBURVJNID09PSAncnh2dC11bmljb2RlJ1xuXHRcdHx8IFRFUk0gPT09ICdyeHZ0LXVuaWNvZGUtMjU2Y29sb3InXG5cdFx0fHwgZW52LlRFUk1JTkFMX0VNVUxBVE9SID09PSAnSmV0QnJhaW5zLUplZGlUZXJtJztcbn1cblxuY29uc3QgVFlQRV9DT0xPUl9NQVAgPSB7XG4gIGluZm86IFwiY3lhblwiLFxuICBmYWlsOiBcInJlZFwiLFxuICBzdWNjZXNzOiBcImdyZWVuXCIsXG4gIHJlYWR5OiBcImdyZWVuXCIsXG4gIHN0YXJ0OiBcIm1hZ2VudGFcIlxufTtcbmNvbnN0IExFVkVMX0NPTE9SX01BUCA9IHtcbiAgMDogXCJyZWRcIixcbiAgMTogXCJ5ZWxsb3dcIlxufTtcbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBUWVBFX0lDT05TID0ge1xuICBlcnJvcjogcyhcIlxcdTI3MTZcIiwgXCJcXHhEN1wiKSxcbiAgZmF0YWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHJlYWR5OiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIHdhcm46IHMoXCJcXHUyNkEwXCIsIFwiXFx1MjAzQ1wiKSxcbiAgaW5mbzogcyhcIlxcdTIxMzlcIiwgXCJpXCIpLFxuICBzdWNjZXNzOiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIGRlYnVnOiBzKFwiXFx1MjY5OVwiLCBcIkRcIiksXG4gIHRyYWNlOiBzKFwiXFx1MjE5MlwiLCBcIlxcdTIxOTJcIiksXG4gIGZhaWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHN0YXJ0OiBzKFwiXFx1MjVEMFwiLCBcIm9cIiksXG4gIGxvZzogXCJcIlxufTtcbmZ1bmN0aW9uIHN0cmluZ1dpZHRoKHN0cikge1xuICBjb25zdCBoYXNJQ1UgPSB0eXBlb2YgSW50bCA9PT0gXCJvYmplY3RcIjtcbiAgaWYgKCFoYXNJQ1UgfHwgIUludGwuU2VnbWVudGVyKSB7XG4gICAgcmV0dXJuIHN0cmlwQW5zaSQxKHN0cikubGVuZ3RoO1xuICB9XG4gIHJldHVybiBzdHJpbmdXaWR0aCQxKHN0cik7XG59XG5jbGFzcyBGYW5jeVJlcG9ydGVyIGV4dGVuZHMgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBgXG4ke2luZGVudH1gICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihgXG4ke2luZGVudH1gKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShUIHx8IEEpID8gbmV3IEZhbmN5UmVwb3J0ZXIoKSA6IG5ldyBCYXNpY1JlcG9ydGVyKClcbiAgICBdLFxuICAgIC4uLm9wdGlvbnNcbiAgfSk7XG4gIHJldHVybiBjb25zb2xhMjtcbn1cbmZ1bmN0aW9uIF9nZXREZWZhdWx0TG9nTGV2ZWwoKSB7XG4gIGlmIChVKSB7XG4gICAgcmV0dXJuIExvZ0xldmVscy5kZWJ1ZztcbiAgfVxuICBpZiAoQSkge1xuICAgIHJldHVybiBMb2dMZXZlbHMud2FybjtcbiAgfVxuICByZXR1cm4gTG9nTGV2ZWxzLmluZm87XG59XG5jb25zdCBjb25zb2xhID0gY3JlYXRlQ29uc29sYSgpO1xuXG5leHBvcnQgeyBjb25zb2xhIGFzIGEsIGNyZWF0ZUNvbnNvbGEgYXMgYywgaXNVbmljb2RlU3VwcG9ydGVkIGFzIGkgfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSB1bmljb3JuL25vLXByb2Nlc3MtZXhpdCAqL1xuaW1wb3J0IGFzc2VydCBmcm9tIFwibm9kZTphc3NlcnRcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCBmc1N5bmMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBmcyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJvaGFzaFwiO1xuaW1wb3J0IGV6U3Bhd24gZnJvbSBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI7XG5pbXBvcnQgeyBkZWZpbmVDb21tYW5kLCBydW5NYWluIH0gZnJvbSBcImNpdHR5XCI7XG5pbXBvcnQgeyBnZXRQYWNrYWdlTWFuaWZlc3QsIHR5cGUgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tIFwiQHBrZy1wci1uZXcvdXRpbHNcIjtcbmltcG9ydCB7XG4gIGFiYnJldmlhdGVDb21taXRIYXNoLFxuICBleHRyYWN0T3duZXJBbmRSZXBvLFxuICBleHRyYWN0UmVwb3NpdG9yeSxcbn0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQgeyBnbG9iIH0gZnJvbSBcInRpbnlnbG9iYnlcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IFwiLi9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7IGlzQmluYXJ5RmlsZSB9IGZyb20gXCJpc2JpbmFyeWZpbGVcIjtcbmltcG9ydCB7IHdyaXRlUGFja2FnZUpTT04sIHR5cGUgUGFja2FnZUpzb24gfSBmcm9tIFwicGtnLXR5cGVzXCI7XG5pbXBvcnQgcGtnIGZyb20gXCIuL3BhY2thZ2UuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9O1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRlbXBsYXRlIH0gZnJvbSBcIi4vdGVtcGxhdGVcIjtcbmltcG9ydCAqIGFzIGNvcmUgZnJvbSBcIkBhY3Rpb25zL2NvcmVcIjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBjb25zdCBBUElfVVJMOiBzdHJpbmc7XG59XG5cbnR5cGUgT3V0cHV0TWV0YWRhdGEgPSB7XG4gIHBhY2thZ2VzOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHNoYXN1bTogc3RyaW5nO1xuICB9W107XG4gIHRlbXBsYXRlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfVtdO1xufTtcblxuY29uc3QgYXBpVXJsID0gcHJvY2Vzcy5lbnYuQVBJX1VSTCA/PyBBUElfVVJMO1xuY29uc3QgcHVibGlzaFVybCA9IG5ldyBVUkwoXCIvcHVibGlzaFwiLCBhcGlVcmwpO1xuY29uc3QgY3JlYXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY3JlYXRlXCIsIGFwaVVybCk7XG5jb25zdCB1cGxvYWRNdWx0aXBhcnQgPSBuZXcgVVJMKFwiL211bHRpcGFydC91cGxvYWRcIiwgYXBpVXJsKTtcbmNvbnN0IGNvbXBsZXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY29tcGxldGVcIiwgYXBpVXJsKTtcblxuY29uc3QgbWFpbiA9IGRlZmluZUNvbW1hbmQoe1xuICBtZXRhOiB7XG4gICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgbmFtZTogXCJzdGFja2JsaXR6XCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBDTEkgZm9yIHBrZy5wci5uZXcgKENvbnRpbnVvdXMgUmVsZWFzZXMpXCIsXG4gIH0sXG4gIHN1YkNvbW1hbmRzOiB7XG4gICAgcHVibGlzaDogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGNvbXBhY3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiY29tcGFjdCB1cmxzLiBUaGUgc2hvcnRlc3QgZm9ybSBvZiB1cmxzIGxpa2UgcGtnLnByLm5ldy90aW55YmVuY2hAYTgzMmE1NSlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBlZXJEZXBzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImhhbmRsZSBwZWVyRGVwZW5kZW5jaWVzIGJ5IHNldHRpbmcgdGhlIHdvcmtzcGFjZSB2ZXJzaW9uIGluc3RlYWQgb2Ygd2hhdCBoYXMgYmVlbiBzZXQgaW4gdGhlIHBlZXJEZXBzIGl0c2VsZi4gLS1wZWVyRGVwcyBub3QgYmVpbmcgdHJ1ZSB3b3VsZCBsZWF2ZSBwZWVyRGVwZW5kZW5jaWVzIHRvIHRoZSBwYWNrYWdlIG1hbmFnZXIgaXRzZWxmIChucG0sIHBucG0pXCIsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBucG06IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGBwbnBtIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHlhcm46IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGB5YXJuIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiZ2VuZXJhdGUgc3RhY2tibGl0eiB0ZW1wbGF0ZXMgb3V0IG9mIGRpcmVjdG9yaWVzIGluIHRoZSBjdXJyZW50IHJlcG8gd2l0aCB0aGUgbmV3IGJ1aWx0IHBhY2thZ2VzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21tZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLCAvLyBcIm9mZlwiLCBcImNyZWF0ZVwiLCBcInVwZGF0ZVwiIChkZWZhdWx0KVxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcIm9mZlwiIGZvciBubyBjb21tZW50cyAoc2lsZW50IG1vZGUpLiBcImNyZWF0ZVwiIGZvciBjb21tZW50IG9uIGVhY2ggcHVibGlzaC4gXCJ1cGRhdGVcIiBmb3Igb25lIGNvbW1lbnQgYWNyb3NzIHRoZSBwdWxsIHJlcXVlc3Qgd2l0aCBlZGl0cyBvbiBlYWNoIHB1Ymxpc2ggKGRlZmF1bHQpYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwidXBkYXRlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIm9ubHktdGVtcGxhdGVzXCI6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBnZW5lcmF0ZSBvbmx5IHN0YWNrYmxpdHogdGVtcGxhdGVzYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAganNvbjoge1xuICAgICAgICAgICAgdHlwZTogXCJtaXhlZFwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBTYXZlIG1ldGFkYXRhIHRvIGEgSlNPTiBmaWxlLiBJZiB0cnVlLCBsb2cgdGhlIG91dHB1dCBmb3IgcGlwaW5nLiBJZiBhIHN0cmluZywgc2F2ZSB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgZmlsZSBwYXRoLmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYWNrYWdlTWFuYWdlcjoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlNwZWNpZnkgdGhlIHBhY2thZ2UgbWFuYWdlciB0byB1c2UgKG5wbSwgYnVuLCBwbnBtLCB5YXJuKVwiLFxuICAgICAgICAgICAgZW51bTogW1wibnBtXCIsIFwiYnVuXCIsIFwicG5wbVwiLCBcInlhcm5cIl0sXG4gICAgICAgICAgICBkZWZhdWx0OiBcIm5wbVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYmluOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlNldCB0byB0cnVlIGlmIHlvdXIgcGFja2FnZSBpcyBhIGJpbmFyeSBhcHBsaWNhdGlvbiBhbmQgeW91IHdvdWxkIGxpa2UgdG8gc2hvdyBhbiBleGVjdXRlIGNvbW1hbmQgaW5zdGVhZCBvZiBhbiBpbnN0YWxsIGNvbW1hbmQuXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBhc3luYyAoeyBhcmdzIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRocyA9XG4gICAgICAgICAgICBhcmdzLl8ubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IGF3YWl0IGdsb2IoYXJncy5fLCB7XG4gICAgICAgICAgICAgICAgICBleHBhbmREaXJlY3RvcmllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICBvbmx5RGlyZWN0b3JpZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgICBhYnNvbHV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IFtwcm9jZXNzLmN3ZCgpXTtcblxuICAgICAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGdsb2IoYXJncy50ZW1wbGF0ZSB8fCBbXSwge1xuICAgICAgICAgICAgZXhwYW5kRGlyZWN0b3JpZXM6IGZhbHNlLFxuICAgICAgICAgICAgb25seURpcmVjdG9yaWVzOiB0cnVlLFxuICAgICAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgY29uc3QgaXNDb21wYWN0ID0gISFhcmdzLmNvbXBhY3Q7XG4gICAgICAgICAgbGV0IHBhY2tNZXRob2Q6IFBhY2tNZXRob2QgPSBcIm5wbVwiO1xuXG4gICAgICAgICAgaWYgKGFyZ3MucG5wbSkge1xuICAgICAgICAgICAgcGFja01ldGhvZCA9IFwicG5wbVwiO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy55YXJuKSB7XG4gICAgICAgICAgICBwYWNrTWV0aG9kID0gXCJ5YXJuXCI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNQZWVyRGVwc0VuYWJsZWQgPSAhIWFyZ3MucGVlckRlcHM7XG4gICAgICAgICAgY29uc3QgaXNPbmx5VGVtcGxhdGVzID0gISFhcmdzW1wib25seS10ZW1wbGF0ZXNcIl07XG4gICAgICAgICAgY29uc3QgaXNCaW5hcnlBcHBsaWNhdGlvbiA9ICEhYXJncy5iaW47XG4gICAgICAgICAgY29uc3QgY29tbWVudDogQ29tbWVudCA9IGFyZ3MuY29tbWVudCBhcyBDb21tZW50O1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFja2FnZU1hbmFnZXIgPSBhcmdzLnBhY2thZ2VNYW5hZ2VyIGFzXG4gICAgICAgICAgICB8IFwibnBtXCJcbiAgICAgICAgICAgIHwgXCJidW5cIlxuICAgICAgICAgICAgfCBcInBucG1cIlxuICAgICAgICAgICAgfCBcInlhcm5cIjtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFbXCJucG1cIiwgXCJidW5cIiwgXCJwbnBtXCIsIFwieWFyblwiXS5pbmNsdWRlcyhzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYFVuc3VwcG9ydGVkIHBhY2thZ2UgbWFuYWdlcjogJHtzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyfS4gU3VwcG9ydGVkIG1hbmFnZXJzIGFyZSBucG0sIGJ1biwgcG5wbSwgeWFybi5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXByb2Nlc3MuZW52LlRFU1QgJiYgcHJvY2Vzcy5lbnYuR0lUSFVCX0FDVElPTlMgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNvbnRpbnVvdXMgUmVsZWFzZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIEdpdEh1YiBBY3Rpb25zLlwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSxcbiAgICAgICAgICAgIEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0FUVEVNUFQsXG4gICAgICAgICAgICBHSVRIVUJfQUNUT1JfSUQsXG4gICAgICAgICAgICBHSVRIVUJfT1VUUFVULFxuICAgICAgICAgIH0gPSBwcm9jZXNzLmVudjtcblxuICAgICAgICAgIGNvbnN0IFtvd25lciwgcmVwb10gPSBHSVRIVUJfUkVQT1NJVE9SWS5zcGxpdChcIi9cIik7XG5cbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIG93bmVyLFxuICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgIHJ1bjogTnVtYmVyKEdJVEhVQl9SVU5fSUQpLFxuICAgICAgICAgICAgYXR0ZW1wdDogTnVtYmVyKEdJVEhVQl9SVU5fQVRURU1QVCksXG4gICAgICAgICAgICBhY3RvcjogTnVtYmVyKEdJVEhVQl9BQ1RPUl9JRCksXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IGtleSA9IGhhc2gobWV0YWRhdGEpO1xuXG4gICAgICAgICAgY29uc3QgY2hlY2tSZXNwb25zZSA9IGF3YWl0IGZldGNoKG5ldyBVUkwoXCIvY2hlY2tcIiwgYXBpVXJsKSwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICAgIHJlcG8sXG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCFjaGVja1Jlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGF3YWl0IGNoZWNrUmVzcG9uc2UudGV4dCgpKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IHNoYSB9ID0gYXdhaXQgY2hlY2tSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkU2hhID0gaXNDb21wYWN0ID8gYWJicmV2aWF0ZUNvbW1pdEhhc2goc2hhKSA6IHNoYTtcblxuICAgICAgICAgIGNvbnN0IGRlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwKCk7IC8vIHBrZy5wci5uZXcgdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2VcbiAgICAgICAgICBjb25zdCByZWFsRGVwczogTWFwPHN0cmluZywgc3RyaW5nPiB8IG51bGwgPSBpc1BlZXJEZXBzRW5hYmxlZFxuICAgICAgICAgICAgPyBuZXcgTWFwKClcbiAgICAgICAgICAgIDogbnVsbDsgLy8gcmVhbCB2ZXJzaW9ucyBvZiB0aGUgcGFja2FnZSwgdXNlZnVsIGZvciBwZWVyRGVwZW5kZW5jaWVzXG5cbiAgICAgICAgICBjb25zdCBwcmludEpzb24gPSB0eXBlb2YgYXJncy5qc29uID09PSBcImJvb2xlYW5cIjtcbiAgICAgICAgICBjb25zdCBzYXZlSnNvbiA9IHR5cGVvZiBhcmdzLmpzb24gPT09IFwic3RyaW5nXCI7XG4gICAgICAgICAgY29uc3QganNvbkZpbGVQYXRoID0gc2F2ZUpzb24gPyBhcmdzLmpzb24gOiBcIlwiO1xuICAgICAgICAgIGNvbnN0IG91dHB1dE1ldGFkYXRhOiBPdXRwdXRNZXRhZGF0YSA9IHtcbiAgICAgICAgICAgIHBhY2thZ2VzOiBbXSxcbiAgICAgICAgICAgIHRlbXBsYXRlczogW10sXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbikge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzQ29tcGFjdCkge1xuICAgICAgICAgICAgICBhd2FpdCB2ZXJpZnlDb21wYWN0TW9kZShwSnNvbi5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxvbmdEZXBVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICBgLyR7b3duZXJ9LyR7cmVwb30vJHtwSnNvbi5uYW1lfUAke2Zvcm1hdHRlZFNoYX1gLFxuICAgICAgICAgICAgICBhcGlVcmwsXG4gICAgICAgICAgICApLmhyZWY7XG4gICAgICAgICAgICBkZXBzLnNldChwSnNvbi5uYW1lLCBsb25nRGVwVXJsKTtcbiAgICAgICAgICAgIHJlYWxEZXBzPy5zZXQocEpzb24ubmFtZSwgcEpzb24udmVyc2lvbiA/PyBsb25nRGVwVXJsKTtcblxuICAgICAgICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgZmV0Y2gobG9uZ0RlcFVybCwge1xuICAgICAgICAgICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAocmVzb3VyY2Uub2spIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGAke3BKc29uLm5hbWV9QCR7Zm9ybWF0dGVkU2hhfSB3YXMgYWxyZWFkeSBwdWJsaXNoZWQgb24gJHtsb25nRGVwVXJsfWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250cm9sbGVyLmFib3J0KCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGpzb25VcmwgPSBpc0NvbXBhY3RcbiAgICAgICAgICAgICAgPyBuZXcgVVJMKGAvJHtwSnNvbi5uYW1lfUAke2Zvcm1hdHRlZFNoYX1gLCBhcGlVcmwpLmhyZWZcbiAgICAgICAgICAgICAgOiBsb25nRGVwVXJsO1xuXG4gICAgICAgICAgICAvLyBDb2xsZWN0IHBhY2thZ2UgbWV0YWRhdGFcbiAgICAgICAgICAgIG91dHB1dE1ldGFkYXRhLnBhY2thZ2VzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBwSnNvbi5uYW1lLFxuICAgICAgICAgICAgICB1cmw6IGpzb25VcmwsXG4gICAgICAgICAgICAgIHNoYXN1bTogXCJcIiwgLy8gd2lsbCBiZSBmaWxsZWQgbGF0ZXJcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3QgdGVtcGxhdGVEaXIgb2YgdGVtcGxhdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUodGVtcGxhdGVEaXIsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb25Db250ZW50cyA9IGF3YWl0IHRyeVJlYWRGaWxlKHBKc29uUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IHBKc29uQ29udGVudHNcbiAgICAgICAgICAgICAgPyBwYXJzZVBhY2thZ2VKc29uKHBKc29uQ29udGVudHMpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbiB8fCAhcEpzb25Db250ZW50cykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYHNraXBwaW5nICR7dGVtcGxhdGVEaXJ9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcIm5hbWVcIiBmaWVsZCBpbiAke3BKc29uUGF0aH0gc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc29sZS53YXJuKFwicHJlcGFyaW5nIHRlbXBsYXRlOlwiLCBwSnNvbi5uYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzdG9yZSA9IGF3YWl0IHdyaXRlRGVwcyhcbiAgICAgICAgICAgICAgdGVtcGxhdGVEaXIsXG4gICAgICAgICAgICAgIHBKc29uQ29udGVudHMsXG4gICAgICAgICAgICAgIHBKc29uLFxuICAgICAgICAgICAgICBkZXBzLFxuICAgICAgICAgICAgICByZWFsRGVwcyxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBwYXRoLmpvaW4odGVtcGxhdGVEaXIsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlnID0gaWdub3JlKCkuYWRkKFwibm9kZV9tb2R1bGVzXCIpLmFkZChcIi5naXRcIik7XG5cbiAgICAgICAgICAgIGlmIChmc1N5bmMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVDb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUoZ2l0aWdub3JlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICBpZy5hZGQoZ2l0aWdub3JlQ29udGVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZ2xvYihbXCIqKi8qXCJdLCB7XG4gICAgICAgICAgICAgIGN3ZDogdGVtcGxhdGVEaXIsXG4gICAgICAgICAgICAgIGRvdDogdHJ1ZSxcbiAgICAgICAgICAgICAgb25seUZpbGVzOiB0cnVlLFxuICAgICAgICAgICAgICBpZ25vcmU6IFtcIioqL25vZGVfbW9kdWxlc1wiLCBcIi5naXRcIl0sIC8vIGFsd2F5cyBpZ25vcmUgbm9kZV9tb2R1bGVzIGFuZCAuZ2l0XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRGaWxlcyA9IGZpbGVzLmZpbHRlcigoZmlsZSkgPT4gIWlnLmlnbm9yZXMoZmlsZSkpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIGZpbHRlcmVkRmlsZXMpIHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgZmlsZVBhdGgpKTtcbiAgICAgICAgICAgICAgY29uc3QgaXNCaW5hcnkgPSBhd2FpdCBpc0JpbmFyeUZpbGUoZmlsZSk7XG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZS5idWZmZXJdLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICBgdGVtcGxhdGU6JHtwSnNvbi5uYW1lfToke2VuY29kZVVSSUNvbXBvbmVudChmaWxlUGF0aCl9YCxcbiAgICAgICAgICAgICAgICBpc0JpbmFyeSA/IGJsb2IgOiBhd2FpdCBibG9iLnRleHQoKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHJlc3RvcmUoKTtcblxuICAgICAgICAgICAgLy8gQ29sbGVjdCB0ZW1wbGF0ZSBtZXRhZGF0YVxuICAgICAgICAgICAgY29uc3QgdGVtcGxhdGVVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICBgLyR7b3duZXJ9LyR7cmVwb30vdGVtcGxhdGUvJHtwSnNvbi5uYW1lfWAsXG4gICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICkuaHJlZjtcbiAgICAgICAgICAgIG91dHB1dE1ldGFkYXRhLnRlbXBsYXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogcEpzb24ubmFtZSxcbiAgICAgICAgICAgICAgdXJsOiB0ZW1wbGF0ZVVybCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5vRGVmYXVsdFRlbXBsYXRlID0gYXJncy50ZW1wbGF0ZSA9PT0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAoIW5vRGVmYXVsdFRlbXBsYXRlICYmIHRlbXBsYXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2plY3QgPSBjcmVhdGVEZWZhdWx0VGVtcGxhdGUoXG4gICAgICAgICAgICAgIE9iamVjdC5mcm9tRW50cmllcyhkZXBzLmVudHJpZXMoKSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIE9iamVjdC5rZXlzKHByb2plY3QpKSB7XG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICBgdGVtcGxhdGU6ZGVmYXVsdDoke2VuY29kZVVSSUNvbXBvbmVudChmaWxlUGF0aCl9YCxcbiAgICAgICAgICAgICAgICBwcm9qZWN0W2ZpbGVQYXRoXSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXN0b3JlTWFwID0gbmV3IE1hcDxcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2Ygd3JpdGVEZXBzPj5cbiAgICAgICAgICA+KCk7XG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUocCwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICBjb25zdCBwSnNvbkNvbnRlbnRzID0gYXdhaXQgdHJ5UmVhZEZpbGUocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uID0gcEpzb25Db250ZW50c1xuICAgICAgICAgICAgICA/IHBhcnNlUGFja2FnZUpzb24ocEpzb25Db250ZW50cylcbiAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICBpZiAoIXBKc29uIHx8ICFwSnNvbkNvbnRlbnRzKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVzdG9yZU1hcC5zZXQoXG4gICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgIGF3YWl0IHdyaXRlRGVwcyhwLCBwSnNvbkNvbnRlbnRzLCBwSnNvbiwgZGVwcywgcmVhbERlcHMpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzaGFzdW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICAgICAgZm9yIChjb25zdCBwIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUocCwgXCJwYWNrYWdlLmpzb25cIik7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbihwSnNvblBhdGgpO1xuICAgICAgICAgICAgaWYgKCFwSnNvbikge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgYHNraXBwaW5nICR7cH0gYmVjYXVzZSB0aGVyZSdzIG5vIHBhY2thZ2UuanNvbiBmaWxlYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmICghcEpzb24ubmFtZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIGBcIm5hbWVcIiBmaWVsZCBpbiAke3BKc29uUGF0aH0gc2hvdWxkIGJlIGRlZmluZWRgLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYHNraXBwaW5nICR7cH0gYmVjYXVzZSB0aGUgcGFja2FnZSBpcyBwcml2YXRlYCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCB7IGZpbGVuYW1lLCBzaGFzdW0gfSA9IGF3YWl0IHJlc29sdmVUYXJiYWxsKFxuICAgICAgICAgICAgICAgIHBhY2tNZXRob2QsXG4gICAgICAgICAgICAgICAgcCxcbiAgICAgICAgICAgICAgICBwSnNvbixcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzaGFzdW1zW3BKc29uLm5hbWVdID0gc2hhc3VtO1xuXG4gICAgICAgICAgICAgIGNvbnN0IG91dHB1dFBrZyA9IG91dHB1dE1ldGFkYXRhLnBhY2thZ2VzLmZpbmQoXG4gICAgICAgICAgICAgICAgKHApID0+IHAubmFtZSA9PT0gcEpzb24ubmFtZSxcbiAgICAgICAgICAgICAgKSE7XG4gICAgICAgICAgICAgIG91dHB1dFBrZy5zaGFzdW0gPSBzaGFzdW07XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUocCwgZmlsZW5hbWUpO1xuICAgICAgICAgICAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlUGF0aCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChgcGFja2FnZToke3BKc29uLm5hbWV9YCwgYmxvYiwgZmlsZW5hbWUpO1xuXG4gICAgICAgICAgICAgIGF3YWl0IGZzLnJtKGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGF3YWl0IHJlc3RvcmVNYXAuZ2V0KHApPy4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YVBhY2thZ2VzU2l6ZSA9IFsuLi5mb3JtRGF0YS5lbnRyaWVzKCldLnJlZHVjZShcbiAgICAgICAgICAgIChwcmV2LCBbXywgZW50cnldKSA9PiBwcmV2ICsgZ2V0Rm9ybUVudHJ5U2l6ZShlbnRyeSksXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBtdWx0aXBhcnQgdXBsb2FkaW5nXG4gICAgICAgICAgaWYgKGZvcm1EYXRhUGFja2FnZXNTaXplID4gMTAyNCAqIDEwMjQgKiA5OSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgZW50cnldIG9mIGZvcm1EYXRhKSB7XG4gICAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoXCJwYWNrYWdlOlwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBlbnRyeSBhcyBGaWxlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IDEwMjQgKiAxMDI0ICogNTtcbiAgICAgICAgICAgICAgICBpZiAoZmlsZS5zaXplIDw9IGNodW5rU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsQ2h1bmtzID0gTWF0aC5jZWlsKGZpbGUuc2l6ZSAvIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY3JlYXRlTXVsdGlwYXJ0UmVzID0gYXdhaXQgZmV0Y2goY3JlYXRlTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcInNiLWtleVwiOiBrZXksXG4gICAgICAgICAgICAgICAgICAgIFwic2ItbmFtZVwiOiBuYW1lLnNsaWNlKFwicGFja2FnZTpcIi5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNyZWF0ZU11bHRpcGFydFJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihhd2FpdCBjcmVhdGVNdWx0aXBhcnRSZXMudGV4dCgpKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB7IGtleTogdXBsb2FkS2V5LCBpZDogdXBsb2FkSWQgfSA9XG4gICAgICAgICAgICAgICAgICBhd2FpdCBjcmVhdGVNdWx0aXBhcnRSZXMuanNvbigpO1xuXG4gICAgICAgICAgICAgICAgaW50ZXJmYWNlIFIyVXBsb2FkZWRQYXJ0IHtcbiAgICAgICAgICAgICAgICAgIHBhcnROdW1iZXI6IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgIGV0YWc6IHN0cmluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgdXBsb2FkZWRQYXJ0czogUjJVcGxvYWRlZFBhcnRbXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0b3RhbENodW5rczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IGkgKiBjaHVua1NpemU7XG4gICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSBNYXRoLm1pbihmaWxlLnNpemUsIHN0YXJ0ICsgY2h1bmtTaXplKTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rID0gZmlsZS5zbGljZShzdGFydCwgZW5kKTtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgdXBsb2FkTXVsdGlwYXJ0UmVzID0gYXdhaXQgZmV0Y2godXBsb2FkTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQVVRcIixcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogdXBsb2FkS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIGlkOiB1cGxvYWRJZCxcbiAgICAgICAgICAgICAgICAgICAgICBcInBhcnQtbnVtYmVyXCI6IGAke2kgKyAxfWAsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGNodW5rLFxuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgIGlmICghdXBsb2FkTXVsdGlwYXJ0UmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgYEVycm9yIHVwbG9hZGluZyBwYXJ0ICR7aSArIDF9OiAke2F3YWl0IHVwbG9hZE11bHRpcGFydFJlcy50ZXh0KCl9YCxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb25zdCB7IHBhcnQgfSA9IGF3YWl0IHVwbG9hZE11bHRpcGFydFJlcy5qc29uKCk7XG4gICAgICAgICAgICAgICAgICB1cGxvYWRlZFBhcnRzLnB1c2gocGFydCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlTXVsdGlwYXJ0UmVzID0gYXdhaXQgZmV0Y2goY29tcGxldGVNdWx0aXBhcnQsIHtcbiAgICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogdXBsb2FkS2V5LFxuICAgICAgICAgICAgICAgICAgICBpZDogdXBsb2FkSWQsXG4gICAgICAgICAgICAgICAgICAgIFwidXBsb2FkZWQtcGFydHNcIjogSlNPTi5zdHJpbmdpZnkodXBsb2FkZWRQYXJ0cyksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghY29tcGxldGVNdWx0aXBhcnRSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBFcnJvciBjb21wbGV0aW5nICR7a2V5fTogJHthd2FpdCBjb21wbGV0ZU11bHRpcGFydFJlcy50ZXh0KCl9YCxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IGNvbXBsZXRpb25LZXkgfSA9XG4gICAgICAgICAgICAgICAgICBhd2FpdCBjb21wbGV0ZU11bHRpcGFydFJlcy5qc29uKCk7XG5cbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5zZXQobmFtZSwgYG9iamVjdDoke2NvbXBsZXRpb25LZXl9YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChwdWJsaXNoVXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICBcInNiLWNvbW1lbnRcIjogY29tbWVudCxcbiAgICAgICAgICAgICAgXCJzYi1jb21wYWN0XCI6IGAke2lzQ29tcGFjdH1gLFxuICAgICAgICAgICAgICBcInNiLWtleVwiOiBrZXksXG4gICAgICAgICAgICAgIFwic2Itc2hhc3Vtc1wiOiBKU09OLnN0cmluZ2lmeShzaGFzdW1zKSxcbiAgICAgICAgICAgICAgXCJzYi1ydW4taWRcIjogR0lUSFVCX1JVTl9JRCxcbiAgICAgICAgICAgICAgXCJzYi1iaW5cIjogYCR7aXNCaW5hcnlBcHBsaWNhdGlvbn1gLFxuICAgICAgICAgICAgICBcInNiLXBhY2thZ2UtbWFuYWdlclwiOiBzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyLFxuICAgICAgICAgICAgICBcInNiLW9ubHktdGVtcGxhdGVzXCI6IGAke2lzT25seVRlbXBsYXRlc31gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGxhdGVyUmVzID0gYXdhaXQgcmVzLmNsb25lKCkuanNvbigpO1xuICAgICAgICAgIGFzc2VydC5lcXVhbChcbiAgICAgICAgICAgIHJlcy5zdGF0dXMsXG4gICAgICAgICAgICAyMDAsXG4gICAgICAgICAgICBgcHVibGlzaGluZyBmYWlsZWQ6ICR7YXdhaXQgcmVzLnRleHQoKX1gLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBkZWJ1ZyA9IGxhdGVyUmVzLmRlYnVnO1xuXG4gICAgICAgICAgY29yZS5zdGFydEdyb3VwKFwiXHVEODNEXHVERDBEIEluZm9cIik7XG4gICAgICAgICAgY29yZS5ub3RpY2UoSlNPTi5zdHJpbmdpZnkoZGVidWcsIG51bGwsIDIpKTtcbiAgICAgICAgICBjb3JlLmVuZEdyb3VwKCk7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4oXCJcXG5cIik7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiXHUyNkExXHVGRTBGIFlvdXIgbnBtIHBhY2thZ2VzIGFyZSBwdWJsaXNoZWQuXFxuXCIpO1xuXG4gICAgICAgICAgY29uc3QgcGFja2FnZUxvZ3MgPSBbLi4uZm9ybURhdGEua2V5cygpXVxuICAgICAgICAgICAgLmZpbHRlcigoaykgPT4gay5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpXG4gICAgICAgICAgICAubWFwKChuYW1lLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gbmFtZS5zbGljZShcInBhY2thZ2U6XCIubGVuZ3RoKTtcbiAgICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChsYXRlclJlcy51cmxzW2ldKTtcbiAgICAgICAgICAgICAgY29uc3QgcHVibGludFVybCA9IG5ldyBVUkwoXG4gICAgICAgICAgICAgICAgYC9wa2cucHIubmV3JHt1cmwucGF0aG5hbWV9YCxcbiAgICAgICAgICAgICAgICBcImh0dHBzOi8vcHVibGludC5kZXZcIixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGAke3BhY2thZ2VOYW1lfTpcbi0gc2hhOiAke3NoYXN1bXNbcGFja2FnZU5hbWVdfVxuLSBwdWJsaW50OiAke3B1YmxpbnRVcmx9XG4tIG5wbTogbnBtIGkgJHt1cmx9YDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuam9pbihcIlxcblxcblwiKTtcblxuICAgICAgICAgIGNvbnNvbGUud2FybihwYWNrYWdlTG9ncyk7XG5cbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBKU09OLnN0cmluZ2lmeShvdXRwdXRNZXRhZGF0YSwgbnVsbCwgMik7XG4gICAgICAgICAgaWYgKHByaW50SnNvbikge1xuICAgICAgICAgICAgY29uc29sZS5sb2cob3V0cHV0KTsgLy8gTG9nIG91dHB1dCBmb3IgcGlwaW5nXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzYXZlSnNvbikge1xuICAgICAgICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKGpzb25GaWxlUGF0aCwgb3V0cHV0KTtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgbWV0YWRhdGEgd3JpdHRlbiB0byAke2pzb25GaWxlUGF0aH1gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBmcy5hcHBlbmRGaWxlKEdJVEhVQl9PVVRQVVQsIGBzaGE9JHtmb3JtYXR0ZWRTaGF9XFxuYCwgXCJ1dGY4XCIpO1xuICAgICAgICAgIGF3YWl0IGZzLmFwcGVuZEZpbGUoXG4gICAgICAgICAgICBHSVRIVUJfT1VUUFVULFxuICAgICAgICAgICAgYHVybHM9JHtvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5tYXAoKHBrZykgPT4gcGtnLnVybCkuam9pbihcIiBcIil9XFxuYCxcbiAgICAgICAgICAgIFwidXRmOFwiLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYXdhaXQgZnMuYXBwZW5kRmlsZShcbiAgICAgICAgICAgIEdJVEhVQl9PVVRQVVQsXG4gICAgICAgICAgICBgcGFja2FnZXM9JHtvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5tYXAoKHBrZykgPT4gYCR7cGtnLm5hbWV9QCR7cGtnLnVybH1gKS5qb2luKFwiIFwiKX1cXG5gLFxuICAgICAgICAgICAgXCJ1dGY4XCIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBsaW5rOiAoKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZXRhOiB7fSxcbiAgICAgICAgcnVuOiAoKSA9PiB7XG4gICAgICAgICAgLy8gbm9vcFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxufSk7XG5cbnJ1bk1haW4obWFpbilcbiAgLnRoZW4oKCkgPT4gcHJvY2Vzcy5leGl0KDApKVxuICAuY2F0Y2goKCkgPT4gcHJvY2Vzcy5leGl0KDEpKTtcblxudHlwZSBQYWNrTWV0aG9kID0gXCJucG1cIiB8IFwicG5wbVwiIHwgXCJ5YXJuXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVUYXJiYWxsKHBtOiBQYWNrTWV0aG9kLCBwOiBzdHJpbmcsIHBKc29uOiBQYWNrYWdlSnNvbikge1xuICBsZXQgY21kID0gYCR7cG19IHBhY2tgO1xuICBsZXQgZmlsZW5hbWUgPSBgJHtwSnNvbi5uYW1lIS5yZXBsYWNlKFwiL1wiLCBcIi1cIil9LSR7cEpzb24udmVyc2lvbn0udGd6YDtcbiAgaWYgKHBtID09PSBcInlhcm5cIikge1xuICAgIGNtZCArPSBgIC0tZmlsZW5hbWUgJHtmaWxlbmFtZX1gO1xuICB9XG4gIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBlelNwYXduLmFzeW5jKGNtZCwge1xuICAgIHN0ZGlvOiBcIm92ZXJsYXBwZWRcIixcbiAgICBjd2Q6IHAsXG4gIH0pO1xuICBjb25zdCBsaW5lcyA9IHN0ZG91dC5zcGxpdChcIlxcblwiKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgaWYgKHBtICE9PSBcInlhcm5cIikge1xuICAgIGZpbGVuYW1lID0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0udHJpbSgpO1xuICB9XG5cbiAgY29uc3Qgc2hhc3VtID0gY3JlYXRlSGFzaChcInNoYTFcIilcbiAgICAudXBkYXRlKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGgucmVzb2x2ZShwLCBmaWxlbmFtZSkpKVxuICAgIC5kaWdlc3QoXCJoZXhcIik7XG5cbiAgcmV0dXJuIHsgZmlsZW5hbWUsIHNoYXN1bSB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZURlcHMoXG4gIHA6IHN0cmluZyxcbiAgcEpzb25Db250ZW50czogc3RyaW5nLFxuICBwSnNvbjogUGFja2FnZUpzb24sXG4gIGRlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gIHJlYWxEZXBzOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCxcbikge1xuICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUocCwgXCJwYWNrYWdlLmpzb25cIik7XG5cbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5kZXBlbmRlbmNpZXMpO1xuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRldkRlcGVuZGVuY2llcyk7XG4gIGhpamFja0RlcHMoZGVwcywgcEpzb24ub3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuXG4gIGlmIChyZWFsRGVwcykge1xuICAgIGhpamFja0RlcHMocmVhbERlcHMsIHBKc29uLnBlZXJEZXBlbmRlbmNpZXMpO1xuICB9XG5cbiAgYXdhaXQgd3JpdGVQYWNrYWdlSlNPTihwSnNvblBhdGgsIHBKc29uKTtcblxuICByZXR1cm4gKCkgPT4gZnMud3JpdGVGaWxlKHBKc29uUGF0aCwgcEpzb25Db250ZW50cyk7XG59XG5cbmZ1bmN0aW9uIGhpamFja0RlcHMoXG4gIG5ld0RlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gIG9sZERlcHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKSB7XG4gIGlmICghb2xkRGVwcykge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGNvbnN0IFtuZXdEZXAsIHVybF0gb2YgbmV3RGVwcykge1xuICAgIGlmIChuZXdEZXAgaW4gb2xkRGVwcykge1xuICAgICAgb2xkRGVwc1tuZXdEZXBdID0gdXJsO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRGb3JtRW50cnlTaXplKGVudHJ5OiBGb3JtRGF0YUVudHJ5VmFsdWUpIHtcbiAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBlbnRyeS5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIGVudHJ5LnNpemU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeUNvbXBhY3RNb2RlKHBhY2thZ2VOYW1lOiBzdHJpbmcpIHtcbiAgbGV0IG1hbmlmZXN0OiBQYWNrYWdlTWFuaWZlc3Q7XG5cbiAgdHJ5IHtcbiAgICBtYW5pZmVzdCA9IGF3YWl0IGdldFBhY2thZ2VNYW5pZmVzdChwYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBwa2ctcHItbmV3IGNhbm5vdCByZXNvbHZlICR7cGFja2FnZU5hbWV9IGZyb20gbnBtLiAtLWNvbXBhY3QgZmxhZyBkZXBlbmRzIG9uIHRoZSBwYWNrYWdlIGJlaW5nIGF2YWlsYWJsZSBpbiBucG0uXG5NYWtlIHN1cmUgdG8gaGF2ZSB5b3VyIHBhY2thZ2Ugb24gbnBtIGZpcnN0LmAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGluc3RydWN0aW9uID0gYE1ha2Ugc3VyZSB0byBjb25maWd1cmUgdGhlICdyZXBvc2l0b3J5JyAvICdyZXBvc2l0b3J5LnVybCcgZmllbGQgaW4gaXRzIHBhY2thZ2UuanNvbiBwcm9wZXJseS5cblNlZSBodHRwczovL2RvY3MubnBtanMuY29tL2NsaS92MTAvY29uZmlndXJpbmctbnBtL3BhY2thZ2UtanNvbiNyZXBvc2l0b3J5IGZvciBkZXRhaWxzLmA7XG5cbiAgY29uc3QgcmVwb3NpdG9yeSA9IGV4dHJhY3RSZXBvc2l0b3J5KG1hbmlmZXN0KTtcbiAgaWYgKCFyZXBvc2l0b3J5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IGV4dHJhY3QgdGhlIHJlcG9zaXRvcnkgbGluayBmcm9tIHRoZSAke3BhY2thZ2VOYW1lfSBtYW5pZmVzdC4gLS1jb21wYWN0IGZsYWcgcmVxdWlyZXMgdGhlIGxpbmsgdG8gYmUgcHJlc2VudC5cbiR7aW5zdHJ1Y3Rpb259YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbWF0Y2ggPSBleHRyYWN0T3duZXJBbmRSZXBvKHJlcG9zaXRvcnkpO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IGV4dHJhY3QgdGhlIG93bmVyIGFuZCByZXBvIG5hbWVzIGZyb20gdGhlICR7cGFja2FnZU5hbWV9IHJlcG9zaXRvcnkgbGluazogJHtyZXBvc2l0b3J5fS4gLS1jb21wYWN0IGZsYWcgcmVxdWlyZXMgdGhlc2UgbmFtZXMuXG4ke2luc3RydWN0aW9ufWAsXG4gICAgKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB0cnlSZWFkRmlsZShwOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZnMucmVhZEZpbGUocCwgXCJ1dGY4XCIpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkUGFja2FnZUpzb24ocDogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgdHJ5UmVhZEZpbGUocCk7XG4gIGlmIChjb250ZW50cyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlUGFja2FnZUpzb24oY29udGVudHMpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZVBhY2thZ2VKc29uKGNvbnRlbnRzOiBzdHJpbmcpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShjb250ZW50cykgYXMgUGFja2FnZUpzb247XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iLCAiY29uc3QgZGVmYXVsdHMgPSBPYmplY3QuZnJlZXplKHtcbiAgaWdub3JlVW5rbm93bjogZmFsc2UsXG4gIHJlc3BlY3RUeXBlOiBmYWxzZSxcbiAgcmVzcGVjdEZ1bmN0aW9uTmFtZXM6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25Qcm9wZXJ0aWVzOiBmYWxzZSxcbiAgdW5vcmRlcmVkT2JqZWN0czogdHJ1ZSxcbiAgdW5vcmRlcmVkQXJyYXlzOiBmYWxzZSxcbiAgdW5vcmRlcmVkU2V0czogZmFsc2UsXG4gIGV4Y2x1ZGVLZXlzOiB2b2lkIDAsXG4gIGV4Y2x1ZGVWYWx1ZXM6IHZvaWQgMCxcbiAgcmVwbGFjZXI6IHZvaWQgMFxufSk7XG5mdW5jdGlvbiBvYmplY3RIYXNoKG9iamVjdCwgb3B0aW9ucykge1xuICBpZiAob3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7IC4uLmRlZmF1bHRzLCAuLi5vcHRpb25zIH07XG4gIH0gZWxzZSB7XG4gICAgb3B0aW9ucyA9IGRlZmF1bHRzO1xuICB9XG4gIGNvbnN0IGhhc2hlciA9IGNyZWF0ZUhhc2hlcihvcHRpb25zKTtcbiAgaGFzaGVyLmRpc3BhdGNoKG9iamVjdCk7XG4gIHJldHVybiBoYXNoZXIudG9TdHJpbmcoKTtcbn1cbmNvbnN0IGRlZmF1bHRQcm90b3R5cGVzS2V5cyA9IE9iamVjdC5mcmVlemUoW1xuICBcInByb3RvdHlwZVwiLFxuICBcIl9fcHJvdG9fX1wiLFxuICBcImNvbnN0cnVjdG9yXCJcbl0pO1xuZnVuY3Rpb24gY3JlYXRlSGFzaGVyKG9wdGlvbnMpIHtcbiAgbGV0IGJ1ZmYgPSBcIlwiO1xuICBsZXQgY29udGV4dCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGNvbnN0IHdyaXRlID0gKHN0cikgPT4ge1xuICAgIGJ1ZmYgKz0gc3RyO1xuICB9O1xuICByZXR1cm4ge1xuICAgIHRvU3RyaW5nKCkge1xuICAgICAgcmV0dXJuIGJ1ZmY7XG4gICAgfSxcbiAgICBnZXRDb250ZXh0KCkge1xuICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfSxcbiAgICBkaXNwYXRjaCh2YWx1ZSkge1xuICAgICAgaWYgKG9wdGlvbnMucmVwbGFjZXIpIHtcbiAgICAgICAgdmFsdWUgPSBvcHRpb25zLnJlcGxhY2VyKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHR5cGUgPSB2YWx1ZSA9PT0gbnVsbCA/IFwibnVsbFwiIDogdHlwZW9mIHZhbHVlO1xuICAgICAgcmV0dXJuIHRoaXNbdHlwZV0odmFsdWUpO1xuICAgIH0sXG4gICAgb2JqZWN0KG9iamVjdCkge1xuICAgICAgaWYgKG9iamVjdCAmJiB0eXBlb2Ygb2JqZWN0LnRvSlNPTiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9iamVjdChvYmplY3QudG9KU09OKCkpO1xuICAgICAgfVxuICAgICAgY29uc3Qgb2JqU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCk7XG4gICAgICBsZXQgb2JqVHlwZSA9IFwiXCI7XG4gICAgICBjb25zdCBvYmplY3RMZW5ndGggPSBvYmpTdHJpbmcubGVuZ3RoO1xuICAgICAgaWYgKG9iamVjdExlbmd0aCA8IDEwKSB7XG4gICAgICAgIG9ialR5cGUgPSBcInVua25vd246W1wiICsgb2JqU3RyaW5nICsgXCJdXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYmpUeXBlID0gb2JqU3RyaW5nLnNsaWNlKDgsIG9iamVjdExlbmd0aCAtIDEpO1xuICAgICAgfVxuICAgICAgb2JqVHlwZSA9IG9ialR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGxldCBvYmplY3ROdW1iZXIgPSBudWxsO1xuICAgICAgaWYgKChvYmplY3ROdW1iZXIgPSBjb250ZXh0LmdldChvYmplY3QpKSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIGNvbnRleHQuc2V0KG9iamVjdCwgY29udGV4dC5zaXplKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKFwiW0NJUkNVTEFSOlwiICsgb2JqZWN0TnVtYmVyICsgXCJdXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBCdWZmZXIgIT09IFwidW5kZWZpbmVkXCIgJiYgQnVmZmVyLmlzQnVmZmVyICYmIEJ1ZmZlci5pc0J1ZmZlcihvYmplY3QpKSB7XG4gICAgICAgIHdyaXRlKFwiYnVmZmVyOlwiKTtcbiAgICAgICAgcmV0dXJuIHdyaXRlKG9iamVjdC50b1N0cmluZyhcInV0ZjhcIikpO1xuICAgICAgfVxuICAgICAgaWYgKG9ialR5cGUgIT09IFwib2JqZWN0XCIgJiYgb2JqVHlwZSAhPT0gXCJmdW5jdGlvblwiICYmIG9ialR5cGUgIT09IFwiYXN5bmNmdW5jdGlvblwiKSB7XG4gICAgICAgIGlmICh0aGlzW29ialR5cGVdKSB7XG4gICAgICAgICAgdGhpc1tvYmpUeXBlXShvYmplY3QpO1xuICAgICAgICB9IGVsc2UgaWYgKCFvcHRpb25zLmlnbm9yZVVua25vd24pIHtcbiAgICAgICAgICB0aGlzLnVua293bihvYmplY3QsIG9ialR5cGUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKG9iamVjdCk7XG4gICAgICAgIGlmIChvcHRpb25zLnVub3JkZXJlZE9iamVjdHMpIHtcbiAgICAgICAgICBrZXlzID0ga2V5cy5zb3J0KCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGV4dHJhS2V5cyA9IFtdO1xuICAgICAgICBpZiAob3B0aW9ucy5yZXNwZWN0VHlwZSAhPT0gZmFsc2UgJiYgIWlzTmF0aXZlRnVuY3Rpb24ob2JqZWN0KSkge1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGRlZmF1bHRQcm90b3R5cGVzS2V5cztcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5leGNsdWRlS2V5cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gIW9wdGlvbnMuZXhjbHVkZUtleXMoa2V5KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBleHRyYUtleXMgPSBleHRyYUtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHdyaXRlKFwib2JqZWN0OlwiICsgKGtleXMubGVuZ3RoICsgZXh0cmFLZXlzLmxlbmd0aCkgKyBcIjpcIik7XG4gICAgICAgIGNvbnN0IGRpc3BhdGNoRm9yS2V5ID0gKGtleSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2goa2V5KTtcbiAgICAgICAgICB3cml0ZShcIjpcIik7XG4gICAgICAgICAgaWYgKCFvcHRpb25zLmV4Y2x1ZGVWYWx1ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2gob2JqZWN0W2tleV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3cml0ZShcIixcIik7XG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICBkaXNwYXRjaEZvcktleShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGV4dHJhS2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGFycmF5KGFyciwgdW5vcmRlcmVkKSB7XG4gICAgICB1bm9yZGVyZWQgPSB1bm9yZGVyZWQgPT09IHZvaWQgMCA/IG9wdGlvbnMudW5vcmRlcmVkQXJyYXlzICE9PSBmYWxzZSA6IHVub3JkZXJlZDtcbiAgICAgIHdyaXRlKFwiYXJyYXk6XCIgKyBhcnIubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgaWYgKCF1bm9yZGVyZWQgfHwgYXJyLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgYXJyKSB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udGV4dEFkZGl0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gICAgICBjb25zdCBlbnRyaWVzID0gYXJyLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICAgICAgICBoYXNoZXIuZGlzcGF0Y2goZW50cnkpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBoYXNoZXIuZ2V0Q29udGV4dCgpKSB7XG4gICAgICAgICAgY29udGV4dEFkZGl0aW9ucy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xuICAgICAgfSk7XG4gICAgICBjb250ZXh0ID0gY29udGV4dEFkZGl0aW9ucztcbiAgICAgIGVudHJpZXMuc29ydCgpO1xuICAgICAgcmV0dXJuIHRoaXMuYXJyYXkoZW50cmllcywgZmFsc2UpO1xuICAgIH0sXG4gICAgZGF0ZShkYXRlKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJkYXRlOlwiICsgZGF0ZS50b0pTT04oKSk7XG4gICAgfSxcbiAgICBzeW1ib2woc3ltKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzeW1ib2w6XCIgKyBzeW0udG9TdHJpbmcoKSk7XG4gICAgfSxcbiAgICB1bmtvd24odmFsdWUsIHR5cGUpIHtcbiAgICAgIHdyaXRlKHR5cGUpO1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB3cml0ZShcIjpcIik7XG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlLmVudHJpZXMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gdGhpcy5hcnJheShcbiAgICAgICAgICBBcnJheS5mcm9tKHZhbHVlLmVudHJpZXMoKSksXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICAgIC8qIG9yZGVyZWQgKi9cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGVycm9yKGVycikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZXJyb3I6XCIgKyBlcnIudG9TdHJpbmcoKSk7XG4gICAgfSxcbiAgICBib29sZWFuKGJvb2wpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImJvb2w6XCIgKyBib29sKTtcbiAgICB9LFxuICAgIHN0cmluZyhzdHJpbmcpIHtcbiAgICAgIHdyaXRlKFwic3RyaW5nOlwiICsgc3RyaW5nLmxlbmd0aCArIFwiOlwiKTtcbiAgICAgIHdyaXRlKHN0cmluZyk7XG4gICAgfSxcbiAgICBmdW5jdGlvbihmbikge1xuICAgICAgd3JpdGUoXCJmbjpcIik7XG4gICAgICBpZiAoaXNOYXRpdmVGdW5jdGlvbihmbikpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaChcIltuYXRpdmVdXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaChmbi50b1N0cmluZygpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvbk5hbWVzICE9PSBmYWxzZSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiZnVuY3Rpb24tbmFtZTpcIiArIFN0cmluZyhmbi5uYW1lKSk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5yZXNwZWN0RnVuY3Rpb25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgIHRoaXMub2JqZWN0KGZuKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIG51bWJlcihudW1iZXIpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm51bWJlcjpcIiArIG51bWJlcik7XG4gICAgfSxcbiAgICB4bWwoeG1sKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ4bWw6XCIgKyB4bWwudG9TdHJpbmcoKSk7XG4gICAgfSxcbiAgICBudWxsKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiTnVsbFwiKTtcbiAgICB9LFxuICAgIHVuZGVmaW5lZCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIlVuZGVmaW5lZFwiKTtcbiAgICB9LFxuICAgIHJlZ2V4cChyZWdleCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwicmVnZXg6XCIgKyByZWdleC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVpbnQ4YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQ4YXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICB1aW50OGNsYW1wZWRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhjbGFtcGVkYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBpbnQ4YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQxNmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDE2YXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICB1aW50MzJhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJpbnQzMmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgZmxvYXQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJmbG9hdDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDY0YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0NjRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGFycmF5YnVmZmVyKGFycikge1xuICAgICAgd3JpdGUoXCJhcnJheWJ1ZmZlcjpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChuZXcgVWludDhBcnJheShhcnIpKTtcbiAgICB9LFxuICAgIHVybCh1cmwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInVybDpcIiArIHVybC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG1hcChtYXApIHtcbiAgICAgIHdyaXRlKFwibWFwOlwiKTtcbiAgICAgIGNvbnN0IGFyciA9IFsuLi5tYXBdO1xuICAgICAgcmV0dXJuIHRoaXMuYXJyYXkoYXJyLCBvcHRpb25zLnVub3JkZXJlZFNldHMgIT09IGZhbHNlKTtcbiAgICB9LFxuICAgIHNldChzZXQpIHtcbiAgICAgIHdyaXRlKFwic2V0OlwiKTtcbiAgICAgIGNvbnN0IGFyciA9IFsuLi5zZXRdO1xuICAgICAgcmV0dXJuIHRoaXMuYXJyYXkoYXJyLCBvcHRpb25zLnVub3JkZXJlZFNldHMgIT09IGZhbHNlKTtcbiAgICB9LFxuICAgIGZpbGUoZmlsZSkge1xuICAgICAgd3JpdGUoXCJmaWxlOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKFtmaWxlLm5hbWUsIGZpbGUuc2l6ZSwgZmlsZS50eXBlLCBmaWxlLmxhc3RNb2RmaWVkXSk7XG4gICAgfSxcbiAgICBibG9iKCkge1xuICAgICAgaWYgKG9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICByZXR1cm4gd3JpdGUoXCJbYmxvYl1cIik7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdIYXNoaW5nIEJsb2Igb2JqZWN0cyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZFxcblVzZSBcIm9wdGlvbnMucmVwbGFjZXJcIiBvciBcIm9wdGlvbnMuaWdub3JlVW5rbm93blwiXFxuJ1xuICAgICAgKTtcbiAgICB9LFxuICAgIGRvbXdpbmRvdygpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRvbXdpbmRvd1wiKTtcbiAgICB9LFxuICAgIGJpZ2ludChudW1iZXIpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImJpZ2ludDpcIiArIG51bWJlci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIC8qIE5vZGUuanMgc3RhbmRhcmQgbmF0aXZlIG9iamVjdHMgKi9cbiAgICBwcm9jZXNzKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwicHJvY2Vzc1wiKTtcbiAgICB9LFxuICAgIHRpbWVyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGltZXJcIik7XG4gICAgfSxcbiAgICBwaXBlKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwicGlwZVwiKTtcbiAgICB9LFxuICAgIHRjcCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInRjcFwiKTtcbiAgICB9LFxuICAgIHVkcCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInVkcFwiKTtcbiAgICB9LFxuICAgIHR0eSgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInR0eVwiKTtcbiAgICB9LFxuICAgIHN0YXR3YXRjaGVyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwic3RhdHdhdGNoZXJcIik7XG4gICAgfSxcbiAgICBzZWN1cmVjb250ZXh0KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwic2VjdXJlY29udGV4dFwiKTtcbiAgICB9LFxuICAgIGNvbm5lY3Rpb24oKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb25uZWN0aW9uXCIpO1xuICAgIH0sXG4gICAgemxpYigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInpsaWJcIik7XG4gICAgfSxcbiAgICBjb250ZXh0KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiY29udGV4dFwiKTtcbiAgICB9LFxuICAgIG5vZGVzY3JpcHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJub2Rlc2NyaXB0XCIpO1xuICAgIH0sXG4gICAgaHR0cHBhcnNlcigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImh0dHBwYXJzZXJcIik7XG4gICAgfSxcbiAgICBkYXRhdmlldygpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGF2aWV3XCIpO1xuICAgIH0sXG4gICAgc2lnbmFsKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwic2lnbmFsXCIpO1xuICAgIH0sXG4gICAgZnNldmVudCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImZzZXZlbnRcIik7XG4gICAgfSxcbiAgICB0bHN3cmFwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGxzd3JhcFwiKTtcbiAgICB9XG4gIH07XG59XG5jb25zdCBuYXRpdmVGdW5jID0gXCJbbmF0aXZlIGNvZGVdIH1cIjtcbmNvbnN0IG5hdGl2ZUZ1bmNMZW5ndGggPSBuYXRpdmVGdW5jLmxlbmd0aDtcbmZ1bmN0aW9uIGlzTmF0aXZlRnVuY3Rpb24oZikge1xuICBpZiAodHlwZW9mIGYgIT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZikuc2xpY2UoLW5hdGl2ZUZ1bmNMZW5ndGgpID09PSBuYXRpdmVGdW5jO1xufVxuXG52YXIgX19kZWZQcm9wJDEgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19kZWZOb3JtYWxQcm9wJDEgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wJDEob2JqLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWUgfSkgOiBvYmpba2V5XSA9IHZhbHVlO1xudmFyIF9fcHVibGljRmllbGQkMSA9IChvYmosIGtleSwgdmFsdWUpID0+IHtcbiAgX19kZWZOb3JtYWxQcm9wJDEob2JqLCB0eXBlb2Yga2V5ICE9PSBcInN5bWJvbFwiID8ga2V5ICsgXCJcIiA6IGtleSwgdmFsdWUpO1xuICByZXR1cm4gdmFsdWU7XG59O1xuY2xhc3MgV29yZEFycmF5IHtcbiAgY29uc3RydWN0b3Iod29yZHMsIHNpZ0J5dGVzKSB7XG4gICAgX19wdWJsaWNGaWVsZCQxKHRoaXMsIFwid29yZHNcIik7XG4gICAgX19wdWJsaWNGaWVsZCQxKHRoaXMsIFwic2lnQnl0ZXNcIik7XG4gICAgd29yZHMgPSB0aGlzLndvcmRzID0gd29yZHMgfHwgW107XG4gICAgdGhpcy5zaWdCeXRlcyA9IHNpZ0J5dGVzID09PSB2b2lkIDAgPyB3b3Jkcy5sZW5ndGggKiA0IDogc2lnQnl0ZXM7XG4gIH1cbiAgdG9TdHJpbmcoZW5jb2Rlcikge1xuICAgIHJldHVybiAoZW5jb2RlciB8fCBIZXgpLnN0cmluZ2lmeSh0aGlzKTtcbiAgfVxuICBjb25jYXQod29yZEFycmF5KSB7XG4gICAgdGhpcy5jbGFtcCgpO1xuICAgIGlmICh0aGlzLnNpZ0J5dGVzICUgNCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGkrKykge1xuICAgICAgICBjb25zdCB0aGF0Qnl0ZSA9IHdvcmRBcnJheS53b3Jkc1tpID4+PiAyXSA+Pj4gMjQgLSBpICUgNCAqIDggJiAyNTU7XG4gICAgICAgIHRoaXMud29yZHNbdGhpcy5zaWdCeXRlcyArIGkgPj4+IDJdIHw9IHRoYXRCeXRlIDw8IDI0IC0gKHRoaXMuc2lnQnl0ZXMgKyBpKSAlIDQgKiA4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRBcnJheS5zaWdCeXRlczsgaiArPSA0KSB7XG4gICAgICAgIHRoaXMud29yZHNbdGhpcy5zaWdCeXRlcyArIGogPj4+IDJdID0gd29yZEFycmF5LndvcmRzW2ogPj4+IDJdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNpZ0J5dGVzICs9IHdvcmRBcnJheS5zaWdCeXRlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBjbGFtcCgpIHtcbiAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgPj4+IDJdICY9IDQyOTQ5NjcyOTUgPDwgMzIgLSB0aGlzLnNpZ0J5dGVzICUgNCAqIDg7XG4gICAgdGhpcy53b3Jkcy5sZW5ndGggPSBNYXRoLmNlaWwodGhpcy5zaWdCeXRlcyAvIDQpO1xuICB9XG4gIGNsb25lKCkge1xuICAgIHJldHVybiBuZXcgV29yZEFycmF5KFsuLi50aGlzLndvcmRzXSk7XG4gIH1cbn1cbmNvbnN0IEhleCA9IHtcbiAgc3RyaW5naWZ5KHdvcmRBcnJheSkge1xuICAgIGNvbnN0IGhleENoYXJzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGkrKykge1xuICAgICAgY29uc3QgYml0ZSA9IHdvcmRBcnJheS53b3Jkc1tpID4+PiAyXSA+Pj4gMjQgLSBpICUgNCAqIDggJiAyNTU7XG4gICAgICBoZXhDaGFycy5wdXNoKChiaXRlID4+PiA0KS50b1N0cmluZygxNiksIChiaXRlICYgMTUpLnRvU3RyaW5nKDE2KSk7XG4gICAgfVxuICAgIHJldHVybiBoZXhDaGFycy5qb2luKFwiXCIpO1xuICB9XG59O1xuY29uc3QgQmFzZTY0ID0ge1xuICBzdHJpbmdpZnkod29yZEFycmF5KSB7XG4gICAgY29uc3Qga2V5U3RyID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OVwiO1xuICAgIGNvbnN0IGJhc2U2NENoYXJzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGkgKz0gMykge1xuICAgICAgY29uc3QgYnl0ZTEgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgYnl0ZTIgPSB3b3JkQXJyYXkud29yZHNbaSArIDEgPj4+IDJdID4+PiAyNCAtIChpICsgMSkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IGJ5dGUzID0gd29yZEFycmF5LndvcmRzW2kgKyAyID4+PiAyXSA+Pj4gMjQgLSAoaSArIDIpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCB0cmlwbGV0ID0gYnl0ZTEgPDwgMTYgfCBieXRlMiA8PCA4IHwgYnl0ZTM7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDQgJiYgaSAqIDggKyBqICogNiA8IHdvcmRBcnJheS5zaWdCeXRlcyAqIDg7IGorKykge1xuICAgICAgICBiYXNlNjRDaGFycy5wdXNoKGtleVN0ci5jaGFyQXQodHJpcGxldCA+Pj4gNiAqICgzIC0gaikgJiA2MykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYmFzZTY0Q2hhcnMuam9pbihcIlwiKTtcbiAgfVxufTtcbmNvbnN0IExhdGluMSA9IHtcbiAgcGFyc2UobGF0aW4xU3RyKSB7XG4gICAgY29uc3QgbGF0aW4xU3RyTGVuZ3RoID0gbGF0aW4xU3RyLmxlbmd0aDtcbiAgICBjb25zdCB3b3JkcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGF0aW4xU3RyTGVuZ3RoOyBpKyspIHtcbiAgICAgIHdvcmRzW2kgPj4+IDJdIHw9IChsYXRpbjFTdHIuY2hhckNvZGVBdChpKSAmIDI1NSkgPDwgMjQgLSBpICUgNCAqIDg7XG4gICAgfVxuICAgIHJldHVybiBuZXcgV29yZEFycmF5KHdvcmRzLCBsYXRpbjFTdHJMZW5ndGgpO1xuICB9XG59O1xuY29uc3QgVXRmOCA9IHtcbiAgcGFyc2UodXRmOFN0cikge1xuICAgIHJldHVybiBMYXRpbjEucGFyc2UodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHV0ZjhTdHIpKSk7XG4gIH1cbn07XG5jbGFzcyBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgX19wdWJsaWNGaWVsZCQxKHRoaXMsIFwiX2RhdGFcIiwgbmV3IFdvcmRBcnJheSgpKTtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJfbkRhdGFCeXRlc1wiLCAwKTtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJfbWluQnVmZmVyU2l6ZVwiLCAwKTtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJibG9ja1NpemVcIiwgNTEyIC8gMzIpO1xuICB9XG4gIHJlc2V0KCkge1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgV29yZEFycmF5KCk7XG4gICAgdGhpcy5fbkRhdGFCeXRlcyA9IDA7XG4gIH1cbiAgX2FwcGVuZChkYXRhKSB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBkYXRhID0gVXRmOC5wYXJzZShkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5fZGF0YS5jb25jYXQoZGF0YSk7XG4gICAgdGhpcy5fbkRhdGFCeXRlcyArPSBkYXRhLnNpZ0J5dGVzO1xuICB9XG4gIF9kb1Byb2Nlc3NCbG9jayhfZGF0YVdvcmRzLCBfb2Zmc2V0KSB7XG4gIH1cbiAgX3Byb2Nlc3MoZG9GbHVzaCkge1xuICAgIGxldCBwcm9jZXNzZWRXb3JkcztcbiAgICBsZXQgbkJsb2Nrc1JlYWR5ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAvICh0aGlzLmJsb2NrU2l6ZSAqIDQpO1xuICAgIGlmIChkb0ZsdXNoKSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLmNlaWwobkJsb2Nrc1JlYWR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5tYXgoKG5CbG9ja3NSZWFkeSB8IDApIC0gdGhpcy5fbWluQnVmZmVyU2l6ZSwgMCk7XG4gICAgfVxuICAgIGNvbnN0IG5Xb3Jkc1JlYWR5ID0gbkJsb2Nrc1JlYWR5ICogdGhpcy5ibG9ja1NpemU7XG4gICAgY29uc3QgbkJ5dGVzUmVhZHkgPSBNYXRoLm1pbihuV29yZHNSZWFkeSAqIDQsIHRoaXMuX2RhdGEuc2lnQnl0ZXMpO1xuICAgIGlmIChuV29yZHNSZWFkeSkge1xuICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbldvcmRzUmVhZHk7IG9mZnNldCArPSB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICB0aGlzLl9kb1Byb2Nlc3NCbG9jayh0aGlzLl9kYXRhLndvcmRzLCBvZmZzZXQpO1xuICAgICAgfVxuICAgICAgcHJvY2Vzc2VkV29yZHMgPSB0aGlzLl9kYXRhLndvcmRzLnNwbGljZSgwLCBuV29yZHNSZWFkeSk7XG4gICAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzIC09IG5CeXRlc1JlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShwcm9jZXNzZWRXb3JkcywgbkJ5dGVzUmVhZHkpO1xuICB9XG59XG5jbGFzcyBIYXNoZXIgZXh0ZW5kcyBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtIHtcbiAgdXBkYXRlKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgdGhpcy5fcHJvY2VzcygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBpZiAobWVzc2FnZVVwZGF0ZSkge1xuICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZGVmTm9ybWFsUHJvcCA9IChvYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3Aob2JqLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWUgfSkgOiBvYmpba2V5XSA9IHZhbHVlO1xudmFyIF9fcHVibGljRmllbGQgPSAob2JqLCBrZXksIHZhbHVlKSA9PiB7XG4gIF9fZGVmTm9ybWFsUHJvcChvYmosIHR5cGVvZiBrZXkgIT09IFwic3ltYm9sXCIgPyBrZXkgKyBcIlwiIDoga2V5LCB2YWx1ZSk7XG4gIHJldHVybiB2YWx1ZTtcbn07XG5jb25zdCBIID0gW1xuICAxNzc5MDMzNzAzLFxuICAtMTE1MDgzMzAxOSxcbiAgMTAxMzkwNDI0MixcbiAgLTE1MjE0ODY1MzQsXG4gIDEzNTk4OTMxMTksXG4gIC0xNjk0MTQ0MzcyLFxuICA1Mjg3MzQ2MzUsXG4gIDE1NDE0NTkyMjVcbl07XG5jb25zdCBLID0gW1xuICAxMTE2MzUyNDA4LFxuICAxODk5NDQ3NDQxLFxuICAtMTI0NTY0MzgyNSxcbiAgLTM3Mzk1NzcyMyxcbiAgOTYxOTg3MTYzLFxuICAxNTA4OTcwOTkzLFxuICAtMTg0MTMzMTU0OCxcbiAgLTE0MjQyMDQwNzUsXG4gIC02NzA1ODYyMTYsXG4gIDMxMDU5ODQwMSxcbiAgNjA3MjI1Mjc4LFxuICAxNDI2ODgxOTg3LFxuICAxOTI1MDc4Mzg4LFxuICAtMjEzMjg4OTA5MCxcbiAgLTE2ODAwNzkxOTMsXG4gIC0xMDQ2NzQ0NzE2LFxuICAtNDU5NTc2ODk1LFxuICAtMjcyNzQyNTIyLFxuICAyNjQzNDcwNzgsXG4gIDYwNDgwNzYyOCxcbiAgNzcwMjU1OTgzLFxuICAxMjQ5MTUwMTIyLFxuICAxNTU1MDgxNjkyLFxuICAxOTk2MDY0OTg2LFxuICAtMTc0MDc0NjQxNCxcbiAgLTE0NzMxMzI5NDcsXG4gIC0xMzQxOTcwNDg4LFxuICAtMTA4NDY1MzYyNSxcbiAgLTk1ODM5NTQwNSxcbiAgLTcxMDQzODU4NSxcbiAgMTEzOTI2OTkzLFxuICAzMzgyNDE4OTUsXG4gIDY2NjMwNzIwNSxcbiAgNzczNTI5OTEyLFxuICAxMjk0NzU3MzcyLFxuICAxMzk2MTgyMjkxLFxuICAxNjk1MTgzNzAwLFxuICAxOTg2NjYxMDUxLFxuICAtMjExNzk0MDk0NixcbiAgLTE4MzgwMTEyNTksXG4gIC0xNTY0NDgxMzc1LFxuICAtMTQ3NDY2NDg4NSxcbiAgLTEwMzUyMzY0OTYsXG4gIC05NDkyMDI1MjUsXG4gIC03Nzg5MDE0NzksXG4gIC02OTQ2MTQ0OTIsXG4gIC0yMDAzOTUzODcsXG4gIDI3NTQyMzM0NCxcbiAgNDMwMjI3NzM0LFxuICA1MDY5NDg2MTYsXG4gIDY1OTA2MDU1NixcbiAgODgzOTk3ODc3LFxuICA5NTgxMzk1NzEsXG4gIDEzMjI4MjIyMTgsXG4gIDE1MzcwMDIwNjMsXG4gIDE3NDc4NzM3NzksXG4gIDE5NTU1NjIyMjIsXG4gIDIwMjQxMDQ4MTUsXG4gIC0yMDY3MjM2ODQ0LFxuICAtMTkzMzExNDg3MixcbiAgLTE4NjY1MzA4MjIsXG4gIC0xNTM4MjMzMTA5LFxuICAtMTA5MDkzNTgxNyxcbiAgLTk2NTY0MTk5OFxuXTtcbmNvbnN0IFcgPSBbXTtcbmNsYXNzIFNIQTI1NiBleHRlbmRzIEhhc2hlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIl9oYXNoXCIsIG5ldyBXb3JkQXJyYXkoWy4uLkhdKSk7XG4gIH1cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIGhhc2ggb2JqZWN0IHRvIGluaXRpYWwgdmFsdWVzLlxuICAgKi9cbiAgcmVzZXQoKSB7XG4gICAgc3VwZXIucmVzZXQoKTtcbiAgICB0aGlzLl9oYXNoID0gbmV3IFdvcmRBcnJheShbLi4uSF0pO1xuICB9XG4gIF9kb1Byb2Nlc3NCbG9jayhNLCBvZmZzZXQpIHtcbiAgICBjb25zdCBIMiA9IHRoaXMuX2hhc2gud29yZHM7XG4gICAgbGV0IGEgPSBIMlswXTtcbiAgICBsZXQgYiA9IEgyWzFdO1xuICAgIGxldCBjID0gSDJbMl07XG4gICAgbGV0IGQgPSBIMlszXTtcbiAgICBsZXQgZSA9IEgyWzRdO1xuICAgIGxldCBmID0gSDJbNV07XG4gICAgbGV0IGcgPSBIMls2XTtcbiAgICBsZXQgaCA9IEgyWzddO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjQ7IGkrKykge1xuICAgICAgaWYgKGkgPCAxNikge1xuICAgICAgICBXW2ldID0gTVtvZmZzZXQgKyBpXSB8IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBnYW1tYTB4ID0gV1tpIC0gMTVdO1xuICAgICAgICBjb25zdCBnYW1tYTAgPSAoZ2FtbWEweCA8PCAyNSB8IGdhbW1hMHggPj4+IDcpIF4gKGdhbW1hMHggPDwgMTQgfCBnYW1tYTB4ID4+PiAxOCkgXiBnYW1tYTB4ID4+PiAzO1xuICAgICAgICBjb25zdCBnYW1tYTF4ID0gV1tpIC0gMl07XG4gICAgICAgIGNvbnN0IGdhbW1hMSA9IChnYW1tYTF4IDw8IDE1IHwgZ2FtbWExeCA+Pj4gMTcpIF4gKGdhbW1hMXggPDwgMTMgfCBnYW1tYTF4ID4+PiAxOSkgXiBnYW1tYTF4ID4+PiAxMDtcbiAgICAgICAgV1tpXSA9IGdhbW1hMCArIFdbaSAtIDddICsgZ2FtbWExICsgV1tpIC0gMTZdO1xuICAgICAgfVxuICAgICAgY29uc3QgY2ggPSBlICYgZiBeIH5lICYgZztcbiAgICAgIGNvbnN0IG1haiA9IGEgJiBiIF4gYSAmIGMgXiBiICYgYztcbiAgICAgIGNvbnN0IHNpZ21hMCA9IChhIDw8IDMwIHwgYSA+Pj4gMikgXiAoYSA8PCAxOSB8IGEgPj4+IDEzKSBeIChhIDw8IDEwIHwgYSA+Pj4gMjIpO1xuICAgICAgY29uc3Qgc2lnbWExID0gKGUgPDwgMjYgfCBlID4+PiA2KSBeIChlIDw8IDIxIHwgZSA+Pj4gMTEpIF4gKGUgPDwgNyB8IGUgPj4+IDI1KTtcbiAgICAgIGNvbnN0IHQxID0gaCArIHNpZ21hMSArIGNoICsgS1tpXSArIFdbaV07XG4gICAgICBjb25zdCB0MiA9IHNpZ21hMCArIG1hajtcbiAgICAgIGggPSBnO1xuICAgICAgZyA9IGY7XG4gICAgICBmID0gZTtcbiAgICAgIGUgPSBkICsgdDEgfCAwO1xuICAgICAgZCA9IGM7XG4gICAgICBjID0gYjtcbiAgICAgIGIgPSBhO1xuICAgICAgYSA9IHQxICsgdDIgfCAwO1xuICAgIH1cbiAgICBIMlswXSA9IEgyWzBdICsgYSB8IDA7XG4gICAgSDJbMV0gPSBIMlsxXSArIGIgfCAwO1xuICAgIEgyWzJdID0gSDJbMl0gKyBjIHwgMDtcbiAgICBIMlszXSA9IEgyWzNdICsgZCB8IDA7XG4gICAgSDJbNF0gPSBIMls0XSArIGUgfCAwO1xuICAgIEgyWzVdID0gSDJbNV0gKyBmIHwgMDtcbiAgICBIMls2XSA9IEgyWzZdICsgZyB8IDA7XG4gICAgSDJbN10gPSBIMls3XSArIGggfCAwO1xuICB9XG4gIC8qKlxuICAgKiBGaW5pc2hlcyB0aGUgaGFzaCBjYWxjdWxhdGlvbiBhbmQgcmV0dXJucyB0aGUgaGFzaCBhcyBhIFdvcmRBcnJheS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VVcGRhdGUgLSBBZGRpdGlvbmFsIG1lc3NhZ2UgY29udGVudCB0byBpbmNsdWRlIGluIHRoZSBoYXNoLlxuICAgKiBAcmV0dXJucyB7V29yZEFycmF5fSBUaGUgZmluYWxpc2VkIGhhc2ggYXMgYSBXb3JkQXJyYXkuXG4gICAqL1xuICBmaW5hbGl6ZShtZXNzYWdlVXBkYXRlKSB7XG4gICAgc3VwZXIuZmluYWxpemUobWVzc2FnZVVwZGF0ZSk7XG4gICAgY29uc3QgbkJpdHNUb3RhbCA9IHRoaXMuX25EYXRhQnl0ZXMgKiA4O1xuICAgIGNvbnN0IG5CaXRzTGVmdCA9IHRoaXMuX2RhdGEuc2lnQnl0ZXMgKiA4O1xuICAgIHRoaXMuX2RhdGEud29yZHNbbkJpdHNMZWZ0ID4+PiA1XSB8PSAxMjggPDwgMjQgLSBuQml0c0xlZnQgJSAzMjtcbiAgICB0aGlzLl9kYXRhLndvcmRzWyhuQml0c0xlZnQgKyA2NCA+Pj4gOSA8PCA0KSArIDE0XSA9IE1hdGguZmxvb3IoXG4gICAgICBuQml0c1RvdGFsIC8gNDI5NDk2NzI5NlxuICAgICk7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1sobkJpdHNMZWZ0ICsgNjQgPj4+IDkgPDwgNCkgKyAxNV0gPSBuQml0c1RvdGFsO1xuICAgIHRoaXMuX2RhdGEuc2lnQnl0ZXMgPSB0aGlzLl9kYXRhLndvcmRzLmxlbmd0aCAqIDQ7XG4gICAgdGhpcy5fcHJvY2VzcygpO1xuICAgIHJldHVybiB0aGlzLl9oYXNoO1xuICB9XG59XG5mdW5jdGlvbiBzaGEyNTYobWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFNIQTI1NigpLmZpbmFsaXplKG1lc3NhZ2UpLnRvU3RyaW5nKCk7XG59XG5mdW5jdGlvbiBzaGEyNTZiYXNlNjQobWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFNIQTI1NigpLmZpbmFsaXplKG1lc3NhZ2UpLnRvU3RyaW5nKEJhc2U2NCk7XG59XG5cbmZ1bmN0aW9uIGhhc2gob2JqZWN0LCBvcHRpb25zID0ge30pIHtcbiAgY29uc3QgaGFzaGVkID0gdHlwZW9mIG9iamVjdCA9PT0gXCJzdHJpbmdcIiA/IG9iamVjdCA6IG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIHNoYTI1NmJhc2U2NChoYXNoZWQpLnNsaWNlKDAsIDEwKTtcbn1cblxuZnVuY3Rpb24gbXVybXVySGFzaChrZXksIHNlZWQgPSAwKSB7XG4gIGlmICh0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiKSB7XG4gICAga2V5ID0gY3JlYXRlQnVmZmVyKGtleSk7XG4gIH1cbiAgbGV0IGkgPSAwO1xuICBsZXQgaDEgPSBzZWVkO1xuICBsZXQgazE7XG4gIGxldCBoMWI7XG4gIGNvbnN0IHJlbWFpbmRlciA9IGtleS5sZW5ndGggJiAzO1xuICBjb25zdCBieXRlcyA9IGtleS5sZW5ndGggLSByZW1haW5kZXI7XG4gIGNvbnN0IGMxID0gMzQzMjkxODM1MztcbiAgY29uc3QgYzIgPSA0NjE4NDU5MDc7XG4gIHdoaWxlIChpIDwgYnl0ZXMpIHtcbiAgICBrMSA9IGtleVtpXSAmIDI1NSB8IChrZXlbKytpXSAmIDI1NSkgPDwgOCB8IChrZXlbKytpXSAmIDI1NSkgPDwgMTYgfCAoa2V5WysraV0gJiAyNTUpIDw8IDI0O1xuICAgICsraTtcbiAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMxICsgKCgoazEgPj4+IDE2KSAqIGMxICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgazEgPSBrMSA8PCAxNSB8IGsxID4+PiAxNztcbiAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgaDEgXj0gazE7XG4gICAgaDEgPSBoMSA8PCAxMyB8IGgxID4+PiAxOTtcbiAgICBoMWIgPSAoaDEgJiA2NTUzNSkgKiA1ICsgKCgoaDEgPj4+IDE2KSAqIDUgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBoMSA9IChoMWIgJiA2NTUzNSkgKyAyNzQ5MiArICgoKGgxYiA+Pj4gMTYpICsgNTg5NjQgJiA2NTUzNSkgPDwgMTYpO1xuICB9XG4gIGsxID0gMDtcbiAgc3dpdGNoIChyZW1haW5kZXIpIHtcbiAgICBjYXNlIDM6IHtcbiAgICAgIGsxIF49IChrZXlbaSArIDJdICYgMjU1KSA8PCAxNjtcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAxXSAmIDI1NSkgPDwgODtcbiAgICB9XG4gICAgY2FzZSAxOiB7XG4gICAgICBrMSBePSBrZXlbaV0gJiAyNTU7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMxICsgKCgoazEgPj4+IDE2KSAqIGMxICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBrMSA9IGsxIDw8IDE1IHwgazEgPj4+IDE3O1xuICAgICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMiArICgoKGsxID4+PiAxNikgKiBjMiAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgICAgaDEgXj0gazE7XG4gICAgfVxuICB9XG4gIGgxIF49IGtleS5sZW5ndGg7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgaDEgPSAoaDEgJiA2NTUzNSkgKiAyMjQ2ODIyNTA3ICsgKCgoaDEgPj4+IDE2KSAqIDIyNDY4MjI1MDcgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgaDEgXj0gaDEgPj4+IDEzO1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDMyNjY0ODk5MDkgKyAoKChoMSA+Pj4gMTYpICogMzI2NjQ4OTkwOSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTY7XG4gIHJldHVybiBoMSA+Pj4gMDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlcih2YWwpIHtcbiAgcmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh2YWwpO1xufVxuXG5mdW5jdGlvbiBpc0VxdWFsKG9iamVjdDEsIG9iamVjdDIsIGhhc2hPcHRpb25zID0ge30pIHtcbiAgaWYgKG9iamVjdDEgPT09IG9iamVjdDIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAob2JqZWN0SGFzaChvYmplY3QxLCBoYXNoT3B0aW9ucykgPT09IG9iamVjdEhhc2gob2JqZWN0MiwgaGFzaE9wdGlvbnMpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBkaWZmKG9iajEsIG9iajIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBoMSA9IF90b0hhc2hlZE9iamVjdChvYmoxLCBvcHRzKTtcbiAgY29uc3QgaDIgPSBfdG9IYXNoZWRPYmplY3Qob2JqMiwgb3B0cyk7XG4gIHJldHVybiBfZGlmZihoMSwgaDIsIG9wdHMpO1xufVxuZnVuY3Rpb24gX2RpZmYoaDEsIGgyLCBvcHRzID0ge30pIHtcbiAgY29uc3QgZGlmZnMgPSBbXTtcbiAgY29uc3QgYWxsUHJvcHMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbXG4gICAgLi4uT2JqZWN0LmtleXMoaDEucHJvcHMgfHwge30pLFxuICAgIC4uLk9iamVjdC5rZXlzKGgyLnByb3BzIHx8IHt9KVxuICBdKTtcbiAgaWYgKGgxLnByb3BzICYmIGgyLnByb3BzKSB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIGFsbFByb3BzKSB7XG4gICAgICBjb25zdCBwMSA9IGgxLnByb3BzW3Byb3BdO1xuICAgICAgY29uc3QgcDIgPSBoMi5wcm9wc1twcm9wXTtcbiAgICAgIGlmIChwMSAmJiBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKC4uLl9kaWZmKGgxLnByb3BzPy5bcHJvcF0sIGgyLnByb3BzPy5bcHJvcF0sIG9wdHMpKTtcbiAgICAgIH0gZWxzZSBpZiAocDEgfHwgcDIpIHtcbiAgICAgICAgZGlmZnMucHVzaChcbiAgICAgICAgICBuZXcgRGlmZkVudHJ5KChwMiB8fCBwMSkua2V5LCBwMSA/IFwicmVtb3ZlZFwiIDogXCJhZGRlZFwiLCBwMiwgcDEpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChhbGxQcm9wcy5zaXplID09PSAwICYmIGgxLmhhc2ggIT09IGgyLmhhc2gpIHtcbiAgICBkaWZmcy5wdXNoKG5ldyBEaWZmRW50cnkoKGgyIHx8IGgxKS5rZXksIFwiY2hhbmdlZFwiLCBoMiwgaDEpKTtcbiAgfVxuICByZXR1cm4gZGlmZnM7XG59XG5mdW5jdGlvbiBfdG9IYXNoZWRPYmplY3Qob2JqLCBvcHRzLCBrZXkgPSBcIlwiKSB7XG4gIGlmIChvYmogJiYgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgb2JqZWN0SGFzaChvYmosIG9wdHMpKTtcbiAgfVxuICBjb25zdCBwcm9wcyA9IHt9O1xuICBjb25zdCBoYXNoZXMgPSBbXTtcbiAgZm9yIChjb25zdCBfa2V5IGluIG9iaikge1xuICAgIHByb3BzW19rZXldID0gX3RvSGFzaGVkT2JqZWN0KFxuICAgICAgb2JqW19rZXldLFxuICAgICAgb3B0cyxcbiAgICAgIGtleSA/IGAke2tleX0uJHtfa2V5fWAgOiBfa2V5XG4gICAgKTtcbiAgICBoYXNoZXMucHVzaChwcm9wc1tfa2V5XS5oYXNoKTtcbiAgfVxuICByZXR1cm4gbmV3IERpZmZIYXNoZWRPYmplY3Qoa2V5LCBvYmosIGB7JHtoYXNoZXMuam9pbihcIjpcIil9fWAsIHByb3BzKTtcbn1cbmNsYXNzIERpZmZFbnRyeSB7XG4gIGNvbnN0cnVjdG9yKGtleSwgdHlwZSwgbmV3VmFsdWUsIG9sZFZhbHVlKSB7XG4gICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgdGhpcy5vbGRWYWx1ZSA9IG9sZFZhbHVlO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnRvSlNPTigpO1xuICB9XG4gIHRvSlNPTigpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSBcImFkZGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGBBZGRlZCAgIFxcYCR7dGhpcy5rZXl9XFxgYDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJyZW1vdmVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGBSZW1vdmVkIFxcYCR7dGhpcy5rZXl9XFxgYDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjaGFuZ2VkXCI6IHtcbiAgICAgICAgcmV0dXJuIGBDaGFuZ2VkIFxcYCR7dGhpcy5rZXl9XFxgIGZyb20gXFxgJHt0aGlzLm9sZFZhbHVlPy50b1N0cmluZygpIHx8IFwiLVwifVxcYCB0byBcXGAke3RoaXMubmV3VmFsdWUudG9TdHJpbmcoKX1cXGBgO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuY2xhc3MgRGlmZkhhc2hlZE9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKGtleSwgdmFsdWUsIGhhc2gsIHByb3BzKSB7XG4gICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuaGFzaCA9IGhhc2g7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG4gIHRvU3RyaW5nKCkge1xuICAgIGlmICh0aGlzLnByb3BzKSB7XG4gICAgICByZXR1cm4gYHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBrID0gdGhpcy5rZXkgfHwgXCIuXCI7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgJHtrfSh7JHtPYmplY3Qua2V5cyh0aGlzLnByb3BzKS5qb2luKFwiLFwiKX19KWA7XG4gICAgfVxuICAgIHJldHVybiBgJHtrfSgke3RoaXMudmFsdWV9KWA7XG4gIH1cbn1cblxuZXhwb3J0IHsgZGlmZiwgaGFzaCwgaXNFcXVhbCwgbXVybXVySGFzaCwgb2JqZWN0SGFzaCwgc2hhMjU2LCBzaGEyNTZiYXNlNjQgfTtcbiIsICJleHBvcnQgeyBhIGFzIGNvbnNvbGEsIGMgYXMgY3JlYXRlQ29uc29sYSwgYSBhcyBkZWZhdWx0IH0gZnJvbSAnLi9zaGFyZWQvY29uc29sYS5ENEpLM1JDSy5tanMnO1xuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcyB9IGZyb20gJy4vY29yZS5tanMnO1xuaW1wb3J0ICcuL3NoYXJlZC9jb25zb2xhLkNzNUZkdEhELm1qcyc7XG5pbXBvcnQgJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgJy4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnbm9kZTp0dHknO1xuaW1wb3J0ICdub2RlOnV0aWwnO1xuaW1wb3J0ICdub2RlOnBhdGgnO1xuIiwgImV4cG9ydCB7IGEgYXMgYWxpZ24sIGIgYXMgYm94LCBjIGFzIGNlbnRlckFsaWduLCBlIGFzIGNvbG9yaXplLCBkIGFzIGNvbG9ycywgZyBhcyBnZXRDb2xvciwgbCBhcyBsZWZ0QWxpZ24sIHIgYXMgcmlnaHRBbGlnbiwgcyBhcyBzdHJpcEFuc2kgfSBmcm9tICcuL3NoYXJlZC9jb25zb2xhLkNCaTZObTlzLm1qcyc7XG5pbXBvcnQgJ25vZGU6dHR5JztcbiIsICJpbXBvcnQgY29uc29sYSBmcm9tICdjb25zb2xhJztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ2NvbnNvbGEvdXRpbHMnO1xuXG5mdW5jdGlvbiB0b0FycmF5KHZhbCkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICByZXR1cm4gdmFsID09PSB2b2lkIDAgPyBbXSA6IFt2YWxdO1xufVxuZnVuY3Rpb24gZm9ybWF0TGluZUNvbHVtbnMobGluZXMsIGxpbmVQcmVmaXggPSBcIlwiKSB7XG4gIGNvbnN0IG1heExlbmdoID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGZvciAoY29uc3QgW2ksIGVsZW1lbnRdIG9mIGxpbmUuZW50cmllcygpKSB7XG4gICAgICBtYXhMZW5naFtpXSA9IE1hdGgubWF4KG1heExlbmdoW2ldIHx8IDAsIGVsZW1lbnQubGVuZ3RoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGxpbmVzLm1hcChcbiAgICAobCkgPT4gbC5tYXAoXG4gICAgICAoYywgaSkgPT4gbGluZVByZWZpeCArIGNbaSA9PT0gMCA/IFwicGFkU3RhcnRcIiA6IFwicGFkRW5kXCJdKG1heExlbmdoW2ldKVxuICAgICkuam9pbihcIiAgXCIpXG4gICkuam9pbihcIlxcblwiKTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVWYWx1ZShpbnB1dCkge1xuICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSBcImZ1bmN0aW9uXCIgPyBpbnB1dCgpIDogaW5wdXQ7XG59XG5jbGFzcyBDTElFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSwgY29kZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgdGhpcy5uYW1lID0gXCJDTElFcnJvclwiO1xuICB9XG59XG5cbmNvbnN0IE5VTUJFUl9DSEFSX1JFID0gL1xcZC87XG5jb25zdCBTVFJfU1BMSVRURVJTID0gW1wiLVwiLCBcIl9cIiwgXCIvXCIsIFwiLlwiXTtcbmZ1bmN0aW9uIGlzVXBwZXJjYXNlKGNoYXIgPSBcIlwiKSB7XG4gIGlmIChOVU1CRVJfQ0hBUl9SRS50ZXN0KGNoYXIpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICByZXR1cm4gY2hhciAhPT0gY2hhci50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gc3BsaXRCeUNhc2Uoc3RyLCBzZXBhcmF0b3JzKSB7XG4gIGNvbnN0IHNwbGl0dGVycyA9IHNlcGFyYXRvcnMgPz8gU1RSX1NQTElUVEVSUztcbiAgY29uc3QgcGFydHMgPSBbXTtcbiAgaWYgKCFzdHIgfHwgdHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBwYXJ0cztcbiAgfVxuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBwcmV2aW91c1VwcGVyO1xuICBsZXQgcHJldmlvdXNTcGxpdHRlcjtcbiAgZm9yIChjb25zdCBjaGFyIG9mIHN0cikge1xuICAgIGNvbnN0IGlzU3BsaXR0ZXIgPSBzcGxpdHRlcnMuaW5jbHVkZXMoY2hhcik7XG4gICAgaWYgKGlzU3BsaXR0ZXIgPT09IHRydWUpIHtcbiAgICAgIHBhcnRzLnB1c2goYnVmZik7XG4gICAgICBidWZmID0gXCJcIjtcbiAgICAgIHByZXZpb3VzVXBwZXIgPSB2b2lkIDA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNVcHBlciA9IGlzVXBwZXJjYXNlKGNoYXIpO1xuICAgIGlmIChwcmV2aW91c1NwbGl0dGVyID09PSBmYWxzZSkge1xuICAgICAgaWYgKHByZXZpb3VzVXBwZXIgPT09IGZhbHNlICYmIGlzVXBwZXIgPT09IHRydWUpIHtcbiAgICAgICAgcGFydHMucHVzaChidWZmKTtcbiAgICAgICAgYnVmZiA9IGNoYXI7XG4gICAgICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcmV2aW91c1VwcGVyID09PSB0cnVlICYmIGlzVXBwZXIgPT09IGZhbHNlICYmIGJ1ZmYubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBsYXN0Q2hhciA9IGJ1ZmYuYXQoLTEpO1xuICAgICAgICBwYXJ0cy5wdXNoKGJ1ZmYuc2xpY2UoMCwgTWF0aC5tYXgoMCwgYnVmZi5sZW5ndGggLSAxKSkpO1xuICAgICAgICBidWZmID0gbGFzdENoYXIgKyBjaGFyO1xuICAgICAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGJ1ZmYgKz0gY2hhcjtcbiAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICBwcmV2aW91c1NwbGl0dGVyID0gaXNTcGxpdHRlcjtcbiAgfVxuICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICByZXR1cm4gcGFydHM7XG59XG5mdW5jdGlvbiB1cHBlckZpcnN0KHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBcIlwiO1xufVxuZnVuY3Rpb24gbG93ZXJGaXJzdChzdHIpIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b0xvd2VyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2Uoc3RyLCBvcHRzKSB7XG4gIHJldHVybiBzdHIgPyAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyIDogc3BsaXRCeUNhc2Uoc3RyKSkubWFwKChwKSA9PiB1cHBlckZpcnN0KG9wdHM/Lm5vcm1hbGl6ZSA/IHAudG9Mb3dlckNhc2UoKSA6IHApKS5qb2luKFwiXCIpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGNhbWVsQ2FzZShzdHIsIG9wdHMpIHtcbiAgcmV0dXJuIGxvd2VyRmlyc3QocGFzY2FsQ2FzZShzdHIgfHwgXCJcIiwgb3B0cykpO1xufVxuZnVuY3Rpb24ga2ViYWJDYXNlKHN0ciwgam9pbmVyKSB7XG4gIHJldHVybiBzdHIgPyAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyIDogc3BsaXRCeUNhc2Uoc3RyKSkubWFwKChwKSA9PiBwLnRvTG93ZXJDYXNlKCkpLmpvaW4oam9pbmVyID8/IFwiLVwiKSA6IFwiXCI7XG59XG5cbmZ1bmN0aW9uIHRvQXJyKGFueSkge1xuICByZXR1cm4gYW55ID09IHZvaWQgMCA/IFtdIDogQXJyYXkuaXNBcnJheShhbnkpID8gYW55IDogW2FueV07XG59XG5mdW5jdGlvbiB0b1ZhbChvdXQsIGtleSwgdmFsLCBvcHRzKSB7XG4gIGxldCB4O1xuICBjb25zdCBvbGQgPSBvdXRba2V5XTtcbiAgY29uc3Qgbnh0ID0gfm9wdHMuc3RyaW5nLmluZGV4T2Yoa2V5KSA/IHZhbCA9PSB2b2lkIDAgfHwgdmFsID09PSB0cnVlID8gXCJcIiA6IFN0cmluZyh2YWwpIDogdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIgPyB2YWwgOiB+b3B0cy5ib29sZWFuLmluZGV4T2Yoa2V5KSA/IHZhbCA9PT0gXCJmYWxzZVwiID8gZmFsc2UgOiB2YWwgPT09IFwidHJ1ZVwiIHx8IChvdXQuXy5wdXNoKCh4ID0gK3ZhbCwgeCAqIDAgPT09IDApID8geCA6IHZhbCksICEhdmFsKSA6ICh4ID0gK3ZhbCwgeCAqIDAgPT09IDApID8geCA6IHZhbDtcbiAgb3V0W2tleV0gPSBvbGQgPT0gdm9pZCAwID8gbnh0IDogQXJyYXkuaXNBcnJheShvbGQpID8gb2xkLmNvbmNhdChueHQpIDogW29sZCwgbnh0XTtcbn1cbmZ1bmN0aW9uIHBhcnNlUmF3QXJncyhhcmdzID0gW10sIG9wdHMgPSB7fSkge1xuICBsZXQgaztcbiAgbGV0IGFycjtcbiAgbGV0IGFyZztcbiAgbGV0IG5hbWU7XG4gIGxldCB2YWw7XG4gIGNvbnN0IG91dCA9IHsgXzogW10gfTtcbiAgbGV0IGkgPSAwO1xuICBsZXQgaiA9IDA7XG4gIGxldCBpZHggPSAwO1xuICBjb25zdCBsZW4gPSBhcmdzLmxlbmd0aDtcbiAgY29uc3QgYWxpYmkgPSBvcHRzLmFsaWFzICE9PSB2b2lkIDA7XG4gIGNvbnN0IHN0cmljdCA9IG9wdHMudW5rbm93biAhPT0gdm9pZCAwO1xuICBjb25zdCBkZWZhdWx0cyA9IG9wdHMuZGVmYXVsdCAhPT0gdm9pZCAwO1xuICBvcHRzLmFsaWFzID0gb3B0cy5hbGlhcyB8fCB7fTtcbiAgb3B0cy5zdHJpbmcgPSB0b0FycihvcHRzLnN0cmluZyk7XG4gIG9wdHMuYm9vbGVhbiA9IHRvQXJyKG9wdHMuYm9vbGVhbik7XG4gIGlmIChhbGliaSkge1xuICAgIGZvciAoayBpbiBvcHRzLmFsaWFzKSB7XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdID0gdG9BcnIob3B0cy5hbGlhc1trXSk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIChvcHRzLmFsaWFzW2FycltpXV0gPSBhcnIuY29uY2F0KGspKS5zcGxpY2UoaSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZvciAoaSA9IG9wdHMuYm9vbGVhbi5sZW5ndGg7IGktLSA+IDA7ICkge1xuICAgIGFyciA9IG9wdHMuYWxpYXNbb3B0cy5ib29sZWFuW2ldXSB8fCBbXTtcbiAgICBmb3IgKGogPSBhcnIubGVuZ3RoOyBqLS0gPiAwOyApIHtcbiAgICAgIG9wdHMuYm9vbGVhbi5wdXNoKGFycltqXSk7XG4gICAgfVxuICB9XG4gIGZvciAoaSA9IG9wdHMuc3RyaW5nLmxlbmd0aDsgaS0tID4gMDsgKSB7XG4gICAgYXJyID0gb3B0cy5hbGlhc1tvcHRzLnN0cmluZ1tpXV0gfHwgW107XG4gICAgZm9yIChqID0gYXJyLmxlbmd0aDsgai0tID4gMDsgKSB7XG4gICAgICBvcHRzLnN0cmluZy5wdXNoKGFycltqXSk7XG4gICAgfVxuICB9XG4gIGlmIChkZWZhdWx0cykge1xuICAgIGZvciAoayBpbiBvcHRzLmRlZmF1bHQpIHtcbiAgICAgIG5hbWUgPSB0eXBlb2Ygb3B0cy5kZWZhdWx0W2tdO1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSA9IG9wdHMuYWxpYXNba10gfHwgW107XG4gICAgICBpZiAob3B0c1tuYW1lXSAhPT0gdm9pZCAwKSB7XG4gICAgICAgIG9wdHNbbmFtZV0ucHVzaChrKTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIG9wdHNbbmFtZV0ucHVzaChhcnJbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IGtleXMgPSBzdHJpY3QgPyBPYmplY3Qua2V5cyhvcHRzLmFsaWFzKSA6IFtdO1xuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcmcgPSBhcmdzW2ldO1xuICAgIGlmIChhcmcgPT09IFwiLS1cIikge1xuICAgICAgb3V0Ll8gPSBvdXQuXy5jb25jYXQoYXJncy5zbGljZSgrK2kpKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBmb3IgKGogPSAwOyBqIDwgYXJnLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAoYXJnLmNoYXJDb2RlQXQoaikgIT09IDQ1KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaiA9PT0gMCkge1xuICAgICAgb3V0Ll8ucHVzaChhcmcpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnN1YnN0cmluZyhqLCBqICsgMykgPT09IFwibm8tXCIpIHtcbiAgICAgIG5hbWUgPSBhcmcuc2xpY2UoTWF0aC5tYXgoMCwgaiArIDMpKTtcbiAgICAgIGlmIChzdHJpY3QgJiYgIX5rZXlzLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIG9wdHMudW5rbm93bihhcmcpO1xuICAgICAgfVxuICAgICAgb3V0W25hbWVdID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoaWR4ID0gaiArIDE7IGlkeCA8IGFyZy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIGlmIChhcmcuY2hhckNvZGVBdChpZHgpID09PSA2MSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBuYW1lID0gYXJnLnN1YnN0cmluZyhqLCBpZHgpO1xuICAgICAgdmFsID0gYXJnLnNsaWNlKE1hdGgubWF4KDAsICsraWR4KSkgfHwgaSArIDEgPT09IGxlbiB8fCAoXCJcIiArIGFyZ3NbaSArIDFdKS5jaGFyQ29kZUF0KDApID09PSA0NSB8fCBhcmdzWysraV07XG4gICAgICBhcnIgPSBqID09PSAyID8gW25hbWVdIDogbmFtZTtcbiAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgYXJyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgbmFtZSA9IGFycltpZHhdO1xuICAgICAgICBpZiAoc3RyaWN0ICYmICF+a2V5cy5pbmRleE9mKG5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIG9wdHMudW5rbm93bihcIi1cIi5yZXBlYXQoaikgKyBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICB0b1ZhbChvdXQsIG5hbWUsIGlkeCArIDEgPCBhcnIubGVuZ3RoIHx8IHZhbCwgb3B0cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChkZWZhdWx0cykge1xuICAgIGZvciAoayBpbiBvcHRzLmRlZmF1bHQpIHtcbiAgICAgIGlmIChvdXRba10gPT09IHZvaWQgMCkge1xuICAgICAgICBvdXRba10gPSBvcHRzLmRlZmF1bHRba107XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChhbGliaSkge1xuICAgIGZvciAoayBpbiBvdXQpIHtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gfHwgW107XG4gICAgICB3aGlsZSAoYXJyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3V0W2Fyci5zaGlmdCgpXSA9IG91dFtrXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gcGFyc2VBcmdzKHJhd0FyZ3MsIGFyZ3NEZWYpIHtcbiAgY29uc3QgcGFyc2VPcHRpb25zID0ge1xuICAgIGJvb2xlYW46IFtdLFxuICAgIHN0cmluZzogW10sXG4gICAgbWl4ZWQ6IFtdLFxuICAgIGFsaWFzOiB7fSxcbiAgICBkZWZhdWx0OiB7fVxuICB9O1xuICBjb25zdCBhcmdzID0gcmVzb2x2ZUFyZ3MoYXJnc0RlZik7XG4gIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGFyZy50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuc3RyaW5nLnB1c2goYXJnLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnR5cGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuYm9vbGVhbi5wdXNoKGFyZy5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGFyZy5kZWZhdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5kZWZhdWx0W2FyZy5uYW1lXSA9IGFyZy5kZWZhdWx0O1xuICAgIH1cbiAgICBpZiAoYXJnLmFsaWFzKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuYWxpYXNbYXJnLm5hbWVdID0gYXJnLmFsaWFzO1xuICAgIH1cbiAgfVxuICBjb25zdCBwYXJzZWQgPSBwYXJzZVJhd0FyZ3MocmF3QXJncywgcGFyc2VPcHRpb25zKTtcbiAgY29uc3QgWy4uLnBvc2l0aW9uYWxBcmd1bWVudHNdID0gcGFyc2VkLl87XG4gIGNvbnN0IHBhcnNlZEFyZ3NQcm94eSA9IG5ldyBQcm94eShwYXJzZWQsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0W3Byb3BdID8/IHRhcmdldFtjYW1lbENhc2UocHJvcCldID8/IHRhcmdldFtrZWJhYkNhc2UocHJvcCldO1xuICAgIH1cbiAgfSk7XG4gIGZvciAoY29uc3QgWywgYXJnXSBvZiBhcmdzLmVudHJpZXMoKSkge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnN0IG5leHRQb3NpdGlvbmFsQXJndW1lbnQgPSBwb3NpdGlvbmFsQXJndW1lbnRzLnNoaWZ0KCk7XG4gICAgICBpZiAobmV4dFBvc2l0aW9uYWxBcmd1bWVudCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPSBuZXh0UG9zaXRpb25hbEFyZ3VtZW50O1xuICAgICAgfSBlbHNlIGlmIChhcmcuZGVmYXVsdCA9PT0gdm9pZCAwICYmIGFyZy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFxuICAgICAgICAgIGBNaXNzaW5nIHJlcXVpcmVkIHBvc2l0aW9uYWwgYXJndW1lbnQ6ICR7YXJnLm5hbWUudG9VcHBlckNhc2UoKX1gLFxuICAgICAgICAgIFwiRUFSR1wiXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID0gYXJnLmRlZmF1bHQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhcmcucmVxdWlyZWQgJiYgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQ6IC0tJHthcmcubmFtZX1gLCBcIkVBUkdcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJzZWRBcmdzUHJveHk7XG59XG5mdW5jdGlvbiByZXNvbHZlQXJncyhhcmdzRGVmKSB7XG4gIGNvbnN0IGFyZ3MgPSBbXTtcbiAgZm9yIChjb25zdCBbbmFtZSwgYXJnRGVmXSBvZiBPYmplY3QuZW50cmllcyhhcmdzRGVmIHx8IHt9KSkge1xuICAgIGFyZ3MucHVzaCh7XG4gICAgICAuLi5hcmdEZWYsXG4gICAgICBuYW1lLFxuICAgICAgYWxpYXM6IHRvQXJyYXkoYXJnRGVmLmFsaWFzKVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhcmdzO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVDb21tYW5kKGRlZikge1xuICByZXR1cm4gZGVmO1xufVxuYXN5bmMgZnVuY3Rpb24gcnVuQ29tbWFuZChjbWQsIG9wdHMpIHtcbiAgY29uc3QgY21kQXJncyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuYXJncyB8fCB7fSk7XG4gIGNvbnN0IHBhcnNlZEFyZ3MgPSBwYXJzZUFyZ3Mob3B0cy5yYXdBcmdzLCBjbWRBcmdzKTtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICByYXdBcmdzOiBvcHRzLnJhd0FyZ3MsXG4gICAgYXJnczogcGFyc2VkQXJncyxcbiAgICBkYXRhOiBvcHRzLmRhdGEsXG4gICAgY21kXG4gIH07XG4gIGlmICh0eXBlb2YgY21kLnNldHVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhd2FpdCBjbWQuc2V0dXAoY29udGV4dCk7XG4gIH1cbiAgbGV0IHJlc3VsdDtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICAgIGlmIChzdWJDb21tYW5kcyAmJiBPYmplY3Qua2V5cyhzdWJDb21tYW5kcykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3ViQ29tbWFuZEFyZ0luZGV4ID0gb3B0cy5yYXdBcmdzLmZpbmRJbmRleChcbiAgICAgICAgKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLVwiKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHN1YkNvbW1hbmROYW1lID0gb3B0cy5yYXdBcmdzW3N1YkNvbW1hbmRBcmdJbmRleF07XG4gICAgICBpZiAoc3ViQ29tbWFuZE5hbWUpIHtcbiAgICAgICAgaWYgKCFzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXG4gICAgICAgICAgICBgVW5rbm93biBjb21tYW5kIFxcYCR7c3ViQ29tbWFuZE5hbWV9XFxgYCxcbiAgICAgICAgICAgIFwiRV9VTktOT1dOX0NPTU1BTkRcIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3ViQ29tbWFuZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pO1xuICAgICAgICBpZiAoc3ViQ29tbWFuZCkge1xuICAgICAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoc3ViQ29tbWFuZCwge1xuICAgICAgICAgICAgcmF3QXJnczogb3B0cy5yYXdBcmdzLnNsaWNlKHN1YkNvbW1hbmRBcmdJbmRleCArIDEpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWNtZC5ydW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKGBObyBjb21tYW5kIHNwZWNpZmllZC5gLCBcIkVfTk9fQ09NTUFORFwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbWQucnVuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNtZC5ydW4oY29udGV4dCk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGlmICh0eXBlb2YgY21kLmNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgYXdhaXQgY21kLmNsZWFudXAoY29udGV4dCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHJlc3VsdCB9O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzLCBwYXJlbnQpIHtcbiAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgaWYgKHN1YkNvbW1hbmRzICYmIE9iamVjdC5rZXlzKHN1YkNvbW1hbmRzKS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc3ViQ29tbWFuZEFyZ0luZGV4ID0gcmF3QXJncy5maW5kSW5kZXgoKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLVwiKSk7XG4gICAgY29uc3Qgc3ViQ29tbWFuZE5hbWUgPSByYXdBcmdzW3N1YkNvbW1hbmRBcmdJbmRleF07XG4gICAgY29uc3Qgc3ViQ29tbWFuZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pO1xuICAgIGlmIChzdWJDb21tYW5kKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVN1YkNvbW1hbmQoXG4gICAgICAgIHN1YkNvbW1hbmQsXG4gICAgICAgIHJhd0FyZ3Muc2xpY2Uoc3ViQ29tbWFuZEFyZ0luZGV4ICsgMSksXG4gICAgICAgIGNtZFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtjbWQsIHBhcmVudF07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNob3dVc2FnZShjbWQsIHBhcmVudCkge1xuICB0cnkge1xuICAgIGNvbnNvbGEubG9nKGF3YWl0IHJlbmRlclVzYWdlKGNtZCwgcGFyZW50KSArIFwiXFxuXCIpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IpO1xuICB9XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJVc2FnZShjbWQsIHBhcmVudCkge1xuICBjb25zdCBjbWRNZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5tZXRhIHx8IHt9KTtcbiAgY29uc3QgY21kQXJncyA9IHJlc29sdmVBcmdzKGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuYXJncyB8fCB7fSkpO1xuICBjb25zdCBwYXJlbnRNZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHBhcmVudD8ubWV0YSB8fCB7fSk7XG4gIGNvbnN0IGNvbW1hbmROYW1lID0gYCR7cGFyZW50TWV0YS5uYW1lID8gYCR7cGFyZW50TWV0YS5uYW1lfSBgIDogXCJcIn1gICsgKGNtZE1ldGEubmFtZSB8fCBwcm9jZXNzLmFyZ3ZbMV0pO1xuICBjb25zdCBhcmdMaW5lcyA9IFtdO1xuICBjb25zdCBwb3NMaW5lcyA9IFtdO1xuICBjb25zdCBjb21tYW5kc0xpbmVzID0gW107XG4gIGNvbnN0IHVzYWdlTGluZSA9IFtdO1xuICBmb3IgKGNvbnN0IGFyZyBvZiBjbWRBcmdzKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29uc3QgbmFtZSA9IGFyZy5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gYXJnLnJlcXVpcmVkICE9PSBmYWxzZSAmJiBhcmcuZGVmYXVsdCA9PT0gdm9pZCAwO1xuICAgICAgY29uc3QgZGVmYXVsdEhpbnQgPSBhcmcuZGVmYXVsdCA/IGA9XCIke2FyZy5kZWZhdWx0fVwiYCA6IFwiXCI7XG4gICAgICBwb3NMaW5lcy5wdXNoKFtcbiAgICAgICAgXCJgXCIgKyBuYW1lICsgZGVmYXVsdEhpbnQgKyBcImBcIixcbiAgICAgICAgYXJnLmRlc2NyaXB0aW9uIHx8IFwiXCIsXG4gICAgICAgIGFyZy52YWx1ZUhpbnQgPyBgPCR7YXJnLnZhbHVlSGludH0+YCA6IFwiXCJcbiAgICAgIF0pO1xuICAgICAgdXNhZ2VMaW5lLnB1c2goaXNSZXF1aXJlZCA/IGA8JHtuYW1lfT5gIDogYFske25hbWV9XWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gYXJnLnJlcXVpcmVkID09PSB0cnVlICYmIGFyZy5kZWZhdWx0ID09PSB2b2lkIDA7XG4gICAgICBjb25zdCBhcmdTdHIgPSAoYXJnLnR5cGUgPT09IFwiYm9vbGVhblwiICYmIGFyZy5kZWZhdWx0ID09PSB0cnVlID8gW1xuICAgICAgICAuLi4oYXJnLmFsaWFzIHx8IFtdKS5tYXAoKGEpID0+IGAtLW5vLSR7YX1gKSxcbiAgICAgICAgYC0tbm8tJHthcmcubmFtZX1gXG4gICAgICBdLmpvaW4oXCIsIFwiKSA6IFsuLi4oYXJnLmFsaWFzIHx8IFtdKS5tYXAoKGEpID0+IGAtJHthfWApLCBgLS0ke2FyZy5uYW1lfWBdLmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKSkgKyAoYXJnLnR5cGUgPT09IFwic3RyaW5nXCIgJiYgKGFyZy52YWx1ZUhpbnQgfHwgYXJnLmRlZmF1bHQpID8gYD0ke2FyZy52YWx1ZUhpbnQgPyBgPCR7YXJnLnZhbHVlSGludH0+YCA6IGBcIiR7YXJnLmRlZmF1bHQgfHwgXCJcIn1cImB9YCA6IFwiXCIpO1xuICAgICAgYXJnTGluZXMucHVzaChbXG4gICAgICAgIFwiYFwiICsgYXJnU3RyICsgKGlzUmVxdWlyZWQgPyBcIiAocmVxdWlyZWQpXCIgOiBcIlwiKSArIFwiYFwiLFxuICAgICAgICBhcmcuZGVzY3JpcHRpb24gfHwgXCJcIlxuICAgICAgXSk7XG4gICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICB1c2FnZUxpbmUucHVzaChhcmdTdHIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoY21kLnN1YkNvbW1hbmRzKSB7XG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gW107XG4gICAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBzdWJdIG9mIE9iamVjdC5lbnRyaWVzKHN1YkNvbW1hbmRzKSkge1xuICAgICAgY29uc3Qgc3ViQ21kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1Yik7XG4gICAgICBjb25zdCBtZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNtZD8ubWV0YSk7XG4gICAgICBjb21tYW5kc0xpbmVzLnB1c2goW2BcXGAke25hbWV9XFxgYCwgbWV0YT8uZGVzY3JpcHRpb24gfHwgXCJcIl0pO1xuICAgICAgY29tbWFuZE5hbWVzLnB1c2gobmFtZSk7XG4gICAgfVxuICAgIHVzYWdlTGluZS5wdXNoKGNvbW1hbmROYW1lcy5qb2luKFwifFwiKSk7XG4gIH1cbiAgY29uc3QgdXNhZ2VMaW5lcyA9IFtdO1xuICBjb25zdCB2ZXJzaW9uID0gY21kTWV0YS52ZXJzaW9uIHx8IHBhcmVudE1ldGEudmVyc2lvbjtcbiAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgIGNvbG9ycy5ncmF5KFxuICAgICAgYCR7Y21kTWV0YS5kZXNjcmlwdGlvbn0gKCR7Y29tbWFuZE5hbWUgKyAodmVyc2lvbiA/IGAgdiR7dmVyc2lvbn1gIDogXCJcIil9KWBcbiAgICApLFxuICAgIFwiXCJcbiAgKTtcbiAgY29uc3QgaGFzT3B0aW9ucyA9IGFyZ0xpbmVzLmxlbmd0aCA+IDAgfHwgcG9zTGluZXMubGVuZ3RoID4gMDtcbiAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgIGAke2NvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJVU0FHRVwiKSl9IFxcYCR7Y29tbWFuZE5hbWV9JHtoYXNPcHRpb25zID8gXCIgW09QVElPTlNdXCIgOiBcIlwifSAke3VzYWdlTGluZS5qb2luKFwiIFwiKX1cXGBgLFxuICAgIFwiXCJcbiAgKTtcbiAgaWYgKHBvc0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIkFSR1VNRU5UU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhwb3NMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFwiXCIpO1xuICB9XG4gIGlmIChhcmdMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJPUFRJT05TXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKGFyZ0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXCJcIik7XG4gIH1cbiAgaWYgKGNvbW1hbmRzTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiQ09NTUFORFNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMoY29tbWFuZHNMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgICAgXCJcIixcbiAgICAgIGBVc2UgXFxgJHtjb21tYW5kTmFtZX0gPGNvbW1hbmQ+IC0taGVscFxcYCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVzYWdlTGluZXMuZmlsdGVyKChsKSA9PiB0eXBlb2YgbCA9PT0gXCJzdHJpbmdcIikuam9pbihcIlxcblwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuTWFpbihjbWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCByYXdBcmdzID0gb3B0cy5yYXdBcmdzIHx8IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcbiAgY29uc3Qgc2hvd1VzYWdlJDEgPSBvcHRzLnNob3dVc2FnZSB8fCBzaG93VXNhZ2U7XG4gIHRyeSB7XG4gICAgaWYgKHJhd0FyZ3MuaW5jbHVkZXMoXCItLWhlbHBcIikgfHwgcmF3QXJncy5pbmNsdWRlcyhcIi1oXCIpKSB7XG4gICAgICBhd2FpdCBzaG93VXNhZ2UkMSguLi5hd2FpdCByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MpKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9IGVsc2UgaWYgKHJhd0FyZ3MubGVuZ3RoID09PSAxICYmIHJhd0FyZ3NbMF0gPT09IFwiLS12ZXJzaW9uXCIpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSB0eXBlb2YgY21kLm1ldGEgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGNtZC5tZXRhKCkgOiBhd2FpdCBjbWQubWV0YTtcbiAgICAgIGlmICghbWV0YT8udmVyc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXCJObyB2ZXJzaW9uIHNwZWNpZmllZFwiLCBcIkVfTk9fVkVSU0lPTlwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGEubG9nKG1ldGEudmVyc2lvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoY21kLCB7IHJhd0FyZ3MgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IGlzQ0xJRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIENMSUVycm9yO1xuICAgIGlmICghaXNDTElFcnJvcikge1xuICAgICAgY29uc29sYS5lcnJvcihlcnJvciwgXCJcXG5cIik7XG4gICAgfVxuICAgIGlmIChpc0NMSUVycm9yKSB7XG4gICAgICBhd2FpdCBzaG93VXNhZ2UkMSguLi5hd2FpdCByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MpKTtcbiAgICB9XG4gICAgY29uc29sYS5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZU1haW4oY21kKSB7XG4gIHJldHVybiAob3B0cyA9IHt9KSA9PiBydW5NYWluKGNtZCwgb3B0cyk7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZU1haW4sIGRlZmluZUNvbW1hbmQsIHBhcnNlQXJncywgcmVuZGVyVXNhZ2UsIHJ1bkNvbW1hbmQsIHJ1bk1haW4sIHNob3dVc2FnZSB9O1xuIiwgImltcG9ydCB0eXBlIHsgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5cbmNvbnN0IGdpdGh1YlVybFJlZ2V4ID1cbiAgL14oPzpnaXRcXCspP2h0dHBzPzpcXC9cXC9naXRodWJcXC5jb21cXC8oW14vXSspXFwvKFteL10rKVxcLmdpdCQvO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE93bmVyQW5kUmVwbyhcbiAgcmVwb3NpdG9yeVVybDogc3RyaW5nLFxuKTogW3N0cmluZywgc3RyaW5nXSB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IHJlcG9zaXRvcnlVcmwubWF0Y2goZ2l0aHViVXJsUmVnZXgpO1xuXG4gIGlmIChtYXRjaCkge1xuICAgIHJldHVybiBbbWF0Y2hbMV0sIG1hdGNoWzJdXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdCkge1xuICByZXR1cm4gdHlwZW9mIG1hbmlmZXN0LnJlcG9zaXRvcnkgPT09IFwic3RyaW5nXCJcbiAgICA/IG1hbmlmZXN0LnJlcG9zaXRvcnlcbiAgICA6IG1hbmlmZXN0LnJlcG9zaXRvcnk/LnVybDtcbn1cblxuY29uc3QgY29tbWl0TGVuZ3RoID0gNztcblxuLypcbiAqIFwiMDllZmQwNTUzMzc0ZmY3ZDNlNjJiNzkzNzhlMzE4NGY1ZWI1NzU3MVwiID0+IFwiMDllZmQwNVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYmJyZXZpYXRlQ29tbWl0SGFzaChmdWxsSGFzaDogc3RyaW5nKSB7XG4gIHJldHVybiBmdWxsSGFzaC5zdWJzdHJpbmcoMCwgY29tbWl0TGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHVsbFJlcXVlc3QocmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuICFOdW1iZXIuaXNOYU4oTnVtYmVyKHJlZikpO1xufVxuXG5leHBvcnQgdHlwZSBDb21tZW50ID0gXCJvZmZcIiB8IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiO1xuZXhwb3J0IHR5cGUgUGFja2FnZU1hbmFnZXIgPSBcIm5wbVwiIHwgXCJwbnBtXCIgfCBcInlhcm5cIiB8IFwiYnVuXCI7XG5cbmNvbnN0IHdoaXRlbGlzdCA9XG4gIFwiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N0YWNrYmxpdHotbGFicy9wa2cucHIubmV3L21haW4vLndoaXRlbGlzdFwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNXaGl0ZWxpc3RlZChvd25lcjogc3RyaW5nLCByZXBvOiBzdHJpbmcpIHtcbiAgY29uc3QgY29tYmluYXRpb24gPSBgJHtvd25lcn0vJHtyZXBvfWA7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHdoaXRlbGlzdCk7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcblxuICAgIHJldHVybiBjb250ZW50LmluY2x1ZGVzKGNvbWJpbmF0aW9uKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iLCAie1xuICBcIm5hbWVcIjogXCJwa2ctcHItbmV3XCIsXG4gIFwidmVyc2lvblwiOiBcIjAuMC41OVwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gIFwibWFpblwiOiBcImluZGV4LmpzXCIsXG4gIFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuICBcImJpblwiOiB7XG4gICAgXCJwa2ctcHItbmV3XCI6IFwiYmluL2NsaS5qc1wiXG4gIH0sXG4gIFwicmVwb3NpdG9yeVwiOiB7XG4gICAgXCJ0eXBlXCI6IFwiZ2l0XCIsXG4gICAgXCJ1cmxcIjogXCJodHRwczovL2dpdGh1Yi5jb20vc3RhY2tibGl0ei1sYWJzL3BrZy5wci5uZXdcIixcbiAgICBcImRpcmVjdG9yeVwiOiBcInBhY2thZ2VzL2NsaVwiXG4gIH0sXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJkZXZcIjogXCJ0c3VwIC0td2F0Y2hcIixcbiAgICBcImJ1aWxkXCI6IFwidHN1cFwiLFxuICAgIFwiYnVpbGQ6cHVibGlzaFwiOiBcIkFQSV9VUkw9aHR0cHM6Ly9wa2cucHIubmV3LyB0c3VwXCJcbiAgfSxcbiAgXCJrZXl3b3Jkc1wiOiBbXSxcbiAgXCJhdXRob3JcIjogXCJcIixcbiAgXCJsaWNlbnNlXCI6IFwiTUlUXCIsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhY3Rpb25zL2NvcmVcIjogXCJeMS4xMS4xXCIsXG4gICAgXCJAanNkZXZ0b29scy9lei1zcGF3blwiOiBcIl4zLjAuNFwiLFxuICAgIFwiQG9jdG9raXQvYWN0aW9uXCI6IFwiXjYuMS4wXCIsXG4gICAgXCJpZ25vcmVcIjogXCJeNS4zLjFcIixcbiAgICBcImlzYmluYXJ5ZmlsZVwiOiBcIl41LjAuMlwiLFxuICAgIFwicGtnLXR5cGVzXCI6IFwiXjEuMS4xXCIsXG4gICAgXCJxdWVyeS1yZWdpc3RyeVwiOiBcIl4zLjAuMVwiLFxuICAgIFwidGlueWdsb2JieVwiOiBcIl4wLjIuOVwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBwa2ctcHItbmV3L3V0aWxzXCI6IFwid29ya3NwYWNlOl5cIixcbiAgICBcImNpdHR5XCI6IFwiXjAuMS42XCIsXG4gICAgXCJ0c3VwXCI6IFwiXjguMC4yXCJcbiAgfVxufVxuIiwgImV4cG9ydCBjb25zdCBjcmVhdGVEZWZhdWx0VGVtcGxhdGUgPSAoXG4gIGRlcGVuZGVuY2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbikgPT4gKHtcbiAgXCJpbmRleC5qc1wiOiBcIlwiLFxuICBcIlJFQURNRS5tZFwiOiBgXG4jIERlZmF1bHQgVGVtcGxhdGVcblxuVGhpcyBpcyBhIHRlbXBsYXRlIHRoYXQgbGV2ZXJhZ2VzIHRoZSBleHBlcmltZW50YWwgdGVtcGxhdGVzIGZlYXR1cmUgaW4gdGhlIFxcYHBrZy5wci5uZXdcXGAgdG9vbC5cblxuIyMgT3ZlcnZpZXdcblxuVGVtcGxhdGVzIGFyZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBjcmVhdGluZyBsaXZlLCBpbnRlcmFjdGl2ZSBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2VzLCB3aGljaCBjYW4gYmUgdmVyeSBiZW5lZmljaWFsIGZvciBib3RoIGRldmVsb3BtZW50IGFuZCBkb2N1bWVudGF0aW9uIHB1cnBvc2VzLlxuXG5BcyBhIHVzZXIsIHlvdSBjYW4gY2hlY2sgdGhlIHBhY2thZ2UuanNvbiBmaWxlIGFuZCBzZWUgdGhlIG5ldyBnZW5lcmF0ZWQgcGFja2FnZXMhIFlvdSBjYW4ganVzdCBjb3B5IHRob3NlIGFuZCBwdXQgdGhlbSBpbiB5b3VyIHBhY2thZ2UuanNvbiBvciBpbnN0YWxsIHRoZW0gd2l0aCB5b3VyIGZhdm9yaXRlIHBhY2thZ2UgbWFuYWdlci5cblxuJHtPYmplY3QudmFsdWVzKGRlcGVuZGVuY2llcylcbiAgLm1hcChcbiAgICAodXJsKSA9PiBgXG5cXGBcXGBcXGBzaFxubnBtIGkgJHt1cmx9XG5cXGBcXGBcXGBcbmAsXG4gIClcbiAgLmpvaW4oXCJcIil9XG5cbiMjIFVzYWdlXG5cblRvIHVzZSB0aGlzIGZlYXR1cmUgYXMgYSBtYWludGFpbmVyLCB5b3UgY2FuIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6XG5cblxcYFxcYFxcYHNoXG5ucHggcGtnLXByLW5ldyBwdWJsaXNoICcuL3BhY2thZ2VzL0EnIC0tdGVtcGxhdGUgJy4vZXhhbXBsZXMvKidcblxcYFxcYFxcYFxuXG4jIyBCZW5lZml0c1xuXG4tIEludGVyYWN0aXZlIERlbW9zOiBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBsaXZlIGRlbW9zIHRoYXQgdXNlcnMgY2FuIGludGVyYWN0IHdpdGggZGlyZWN0bHkgaW4gdGhlaXIgYnJvd3Nlci5cbi0gRW5oYW5jZWQgVGVzdGluZzogUXVpY2tseSBzcGluIHVwIGVudmlyb25tZW50cyB0byB0ZXN0IHlvdXIgcGFja2FnZSBpbiBkaWZmZXJlbnQgc2NlbmFyaW9zLlxuLSBJbXByb3ZlZCBTaGFyaW5nOiBFYXNpbHkgc2hhcmUgd29ya2luZyBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2Ugd2l0aCBjb2xsYWJvcmF0b3JzIG9yIHVzZXJzIHdpdGhvdXQgbmVlZGluZyB0aGVtIHRvIHNldCB1cCB0aGVpciBlbnZpcm9ubWVudC5cbmAsXG4gIFwicGFja2FnZS5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiZ2VuZXJhdGVkIGJ5IHBrZy5wci5uZXdcIixcbiAgICAgIG1haW46IFwiaW5kZXguanNcIixcbiAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgIGtleXdvcmRzOiBbXSxcbiAgICAgIGF1dGhvcjogXCJwa2cucHIubmV3XCIsXG4gICAgICBsaWNlbnNlOiBcIklTQ1wiLFxuICAgIH0sXG4gICAgbnVsbCxcbiAgICAyLFxuICApLFxufSk7XG4i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TUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsU0FBTyxNQUFJLE1BQUlBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxRQUFNLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxTQUFPQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBT0EsTUFBRyxTQUFPLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxXQUFTLFdBQVNBLE1BQUdBLE1BQUcsVUFBUSxNQUFJO0FBQUEsTUFBRyxHQUFFTCxHQUFFLGtCQUFnQixTQUFTQyxJQUFFO0FBQUMsWUFBSUMsS0FBRSxLQUFLLGVBQWVELEVBQUM7QUFBRSxlQUFPQyxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxNQUFJLElBQUU7QUFBQSxNQUFDO0FBQUUsZUFBU0gsR0FBRUUsSUFBRTtBQUFDLGVBQU9BLEdBQUUsTUFBTSxrREFBa0QsS0FBRyxDQUFDO0FBQUEsTUFBQztBQUFDLE1BQUFELEdBQUUsU0FBTyxTQUFTQyxJQUFFO0FBQUMsaUJBQVFDLEtBQUVILEdBQUVFLEVBQUMsR0FBRVQsS0FBRSxHQUFFYSxLQUFFLEdBQUVBLEtBQUVILEdBQUUsUUFBT0csS0FBSSxDQUFBYixLQUFFQSxLQUFFLEtBQUssZ0JBQWdCVSxHQUFFRyxFQUFDLENBQUM7QUFBRSxlQUFPYjtBQUFBLE1BQUMsR0FBRVEsR0FBRSxRQUFNLFNBQVNDLElBQUVDLElBQUVWLElBQUU7QUFBQyxrQkFBUVEsR0FBRSxPQUFPQyxFQUFDLEdBQUVDLEtBQUVBLE1BQUcsR0FBRVYsS0FBRUEsTUFBRyxHQUFFVSxLQUFFLE1BQUlBLEtBQUUsVUFBUUEsS0FBR1YsS0FBRSxNQUFJQSxLQUFFLFVBQVFBO0FBQUcsaUJBQVFhLEtBQUUsSUFBR0QsS0FBRSxHQUFFLElBQUVMLEdBQUVFLEVBQUMsR0FBRSxJQUFFLEdBQUUsSUFBRSxFQUFFLFFBQU8sS0FBSTtBQUFDLGNBQUlLLEtBQUUsRUFBRSxDQUFDLEdBQUVDLEtBQUVQLEdBQUUsT0FBT00sRUFBQztBQUFFLGNBQUdGLE1BQUdGLE1BQUdLLE1BQUcsSUFBRSxJQUFFLEdBQUcsS0FBR0gsS0FBRUcsTUFBR2YsR0FBRSxDQUFBYSxNQUFHQztBQUFBLGNBQU87QUFBTSxVQUFBRixNQUFHRztBQUFBLFFBQUU7QUFBQyxlQUFPRjtBQUFBLE1BQUM7QUFBQSxJQUFFLEdBQUcsQ0FBQztBQUFFLElBQUksSUFBRSxFQUFFO0FBQVEsSUFBTSxLQUFHLEVBQUUsQ0FBQztBQUFFLElBQUksS0FBRyxXQUFVO0FBQUMsYUFBTztBQUFBLElBQWd5ZTtBQUFFLElBQU0sS0FBRyxFQUFFLEVBQUU7QUFBc1gsSUFBTSxJQUFFO0FBQVIsSUFBVyxJQUFFLENBQUMsSUFBRSxNQUFJLENBQUFMLE9BQUcsUUFBUUEsS0FBRSxDQUFDO0FBQWxDLElBQXNDRyxLQUFFLENBQUMsSUFBRSxNQUFJLENBQUFILE9BQUcsUUFBUSxLQUFHLENBQUMsTUFBTUEsRUFBQztBQUFyRSxJQUF5RSxJQUFFLENBQUMsSUFBRSxNQUFJLENBQUNBLElBQUVELElBQUVFLE9BQUksUUFBUSxLQUFHLENBQUMsTUFBTUQsRUFBQyxJQUFJRCxFQUFDLElBQUlFLEVBQUM7QUFBeEgsSUFBNEgsSUFBRSxFQUFDLFVBQVMsRUFBQyxPQUFNLENBQUMsR0FBRSxDQUFDLEdBQUUsTUFBSyxDQUFDLEdBQUUsRUFBRSxHQUFFLEtBQUksQ0FBQyxHQUFFLEVBQUUsR0FBRSxRQUFPLENBQUMsR0FBRSxFQUFFLEdBQUUsV0FBVSxDQUFDLEdBQUUsRUFBRSxHQUFFLFVBQVMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsR0FBRSxFQUFFLEdBQUUsUUFBTyxDQUFDLEdBQUUsRUFBRSxHQUFFLGVBQWMsQ0FBQyxHQUFFLEVBQUUsRUFBQyxHQUFFLE9BQU0sRUFBQyxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsS0FBSSxDQUFDLElBQUcsRUFBRSxHQUFFLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxRQUFPLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLGFBQVksQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsTUFBSyxDQUFDLElBQUcsRUFBRSxHQUFFLFdBQVUsQ0FBQyxJQUFHLEVBQUUsR0FBRSxhQUFZLENBQUMsSUFBRyxFQUFFLEdBQUUsY0FBYSxDQUFDLElBQUcsRUFBRSxHQUFFLFlBQVcsQ0FBQyxJQUFHLEVBQUUsR0FBRSxlQUFjLENBQUMsSUFBRyxFQUFFLEdBQUUsWUFBVyxDQUFDLElBQUcsRUFBRSxHQUFFLGFBQVksQ0FBQyxJQUFHLEVBQUUsRUFBQyxHQUFFLFNBQVEsRUFBQyxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxVQUFTLENBQUMsSUFBRyxFQUFFLEdBQUUsUUFBTyxDQUFDLElBQUcsRUFBRSxHQUFFLFdBQVUsQ0FBQyxJQUFHLEVBQUUsR0FBRSxRQUFPLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLGVBQWMsQ0FBQyxLQUFJLEVBQUUsR0FBRSxRQUFPLENBQUMsS0FBSSxFQUFFLEdBQUUsUUFBTyxDQUFDLEtBQUksRUFBRSxHQUFFLGFBQVksQ0FBQyxLQUFJLEVBQUUsR0FBRSxlQUFjLENBQUMsS0FBSSxFQUFFLEdBQUUsZ0JBQWUsQ0FBQyxLQUFJLEVBQUUsR0FBRSxjQUFhLENBQUMsS0FBSSxFQUFFLEdBQUUsaUJBQWdCLENBQUMsS0FBSSxFQUFFLEdBQUUsY0FBYSxDQUFDLEtBQUksRUFBRSxHQUFFLGVBQWMsQ0FBQyxLQUFJLEVBQUUsRUFBQyxFQUFDO0FBQUUsV0FBTyxLQUFLLEVBQUUsUUFBUTtBQUFFLElBQU0sS0FBRyxPQUFPLEtBQUssRUFBRSxLQUFL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QUEsUUFBRSxDQUFDO0FBQUEsTUFBQztBQUFBLE1BQUMsV0FBV0EsSUFBRUQsSUFBRTtBQUFDLFlBQUcsS0FBSyxVQUFRLFlBQVUsS0FBSyxRQUFNLFdBQVVBLElBQUcsU0FBTyxDQUFDLEtBQUssVUFBUSxFQUFFLFFBQVEsSUFBSUEsR0FBRSxJQUFJLEtBQUcsS0FBSyxLQUFLLFVBQVMsRUFBRSxRQUFRLElBQUlBLEdBQUUsSUFBSSxDQUFDLEdBQUUsRUFBRSxRQUFRLElBQUlBLEdBQUUsSUFBSSxLQUFHLEtBQUssS0FBSyxVQUFTQSxHQUFFLElBQUksSUFBR0MsT0FBSUEsR0FBRSxZQUFZLE1BQUksT0FBS0EsR0FBRSxZQUFZLE1BQUksUUFBTSxLQUFLLEtBQUssV0FBVUEsR0FBRSxZQUFZLE1BQUksR0FBRyxHQUFFQSxPQUFJLE9BQUssS0FBSyxLQUFLLGdCQUFjLEtBQUssVUFBUSxLQUFLLElBQUksTUFBTSxLQUFLLEtBQUssV0FBVyxHQUFFLEtBQUssS0FBSyxTQUFRLEtBQUssS0FBSyxXQUFXLEtBQUlBLE1BQUcsS0FBSyxLQUFLLE9BQU1BLEdBQUUsWUFBWSxDQUFDLEdBQUVELElBQUcsU0FBTyxVQUFTO0FBQUMsY0FBRyxLQUFLLEtBQUssVUFBUztBQUFDLGtCQUFNRSxLQUFFLEtBQUssS0FBSyxTQUFTLEtBQUssS0FBSztBQUFFLFlBQUFBLE9BQUksS0FBSyxRQUFNQSxJQUFFLEtBQUssUUFBTSxTQUFRLEtBQUssSUFBSSxNQUFNLEtBQUssS0FBSztBQUFBLFVBQUc7QUFBQyxlQUFLLFVBQVEsWUFBVSxLQUFLLFFBQU07QUFBQSxRQUFVO0FBQUMsVUFBRSxDQUFDRCxJQUFFRCxJQUFHLE1BQUtBLElBQUcsUUFBUSxHQUFFLFFBQVEsTUFBSSxLQUFLLFFBQU0sWUFBVyxLQUFLLFVBQVEsWUFBVSxLQUFLLFVBQVEsYUFBVyxLQUFLLEtBQUssVUFBVSxHQUFFLEtBQUssT0FBTyxJQUFHLEtBQUssVUFBUSxZQUFVLEtBQUssVUFBUSxhQUFXLEtBQUssTUFBTTtBQUFBLE1BQUU7QUFBQSxNQUFD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QUFJLE9BQU8sV0FBVyxVQUFVO0FBQy9CLFVBQU0sSUFBSSxVQUFVLGdDQUFnQyxPQUFPLE1BQU0sSUFBSTtBQUFBLEVBQ3RFO0FBS0EsU0FBTyxPQUFPLFFBQVEsT0FBTyxFQUFFO0FBQ2hDO0FBSUEsU0FBUyxZQUFZQyxJQUFHO0FBQ3ZCLFNBQU9BLE9BQU0sT0FDVEEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFRQSxNQUFLLE9BQ2xCQSxNQUFLLE9BQVFBLE1BQUssT0FDbEJBLE1BQUssT0FBUUEsTUFBSyxPQUNsQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxNQUFLLE9BQVFBLE1BQUssT0FDbEJBLE9BQU0sT0FDTkEsTUFBSyxPQUFRQSxNQUFLLE9BQ2xCQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFRQSxNQUFLLE9BQ2xCQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLE9BQ05BLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sUUFDTkEsTUFBSyxRQUFTQSxNQUFLLFFBQ25CQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sU0FDTkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE9BQU0sU0FDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxXQUNyQkEsTUFBSyxXQUFZQSxNQUFLO0FBQzNCO0FBRUEsU0FBUyxZQUFZQSxJQUFHO0FBQ3ZCLFNBQU9BLE9BQU0sU0FDVEEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUs7QUFDekI7QUFFQSxTQUFTLE9BQU9BLElBQUc7QUFDbEIsU0FBT0EsTUFBSyxRQUFVQSxNQUFLLFFBQ3ZCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsT0FBTSxTQUNOQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBV0EsTUFBSyxTQUNyQkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE1BQUssU0FBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxP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LEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFDQSxJQUFNLElBQUk7QUFBQSxFQUNSO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFDQSxJQUFNLElBQUksQ0FBQztBQUNYLElBQU0sU0FBTixjQUFxQixPQUFPO0FBQUEsRUFDMUIsY0FBYztBQUNaLFVBQU0sR0FBRyxTQUFTO0FBQ2xCLGtCQUFjLE1BQU0sU0FBUyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQUEsRUFDcEQ7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlBLFFBQVE7QUFDTixVQUFN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QkFBbUIsV0FBVztBQUFBLEVBQ2pELFFBQVE7QUFDTixVQUFNLElBQUk7QUFBQSxNQUNSLDZCQUE2QixXQUFXO0FBQUE7QUFBQSxJQUUxQztBQUFBLEVBQ0Y7QUFFQSxRQUFNLGNBQWM7QUFBQTtBQUdwQixRQUFNLGFBQWEsa0JBQWtCLFFBQVE7QUFDN0MsTUFBSSxDQUFDLFlBQVk7QUFDZixVQUFNLElBQUk7QUFBQSxNQUNSLDBEQUEwRCxXQUFXO0FBQUEsRUFDekUsV0FBVztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsUUFBTSxRQUFRLG9CQUFvQixVQUFVO0FBQzVDLE1BQUksQ0FBQyxPQUFPO0FBQ1YsVUFBTSxJQUFJO0FBQUEsTUFDUiwrREFBK0QsV0FBVyxxQkFBcUIsVUFBVTtBQUFBLEVBQzdHLFdBQVc7QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGO0FBRUEsZUFBZSxZQUFZQSxJQUFXO0FBQ3BDLE1BQUk7QUFDRixXQUFPLE1BQU0sR0FBRyxTQUFTQSxJQUFHLE1BQU07QUFBQSxFQUNwQyxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLGVBQWUsZ0JBQWdCQSxJQUFXO0FBQ3hDLFFBQU0sV0FBVyxNQUFNLFlBQVlBLEVBQUM7QUFDcEMsTUFBSSxhQUFhLE1BQU07QUFDckIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJO0FBQ0YsV0FBTyxpQkFBaUIsUUFBUTtBQUFBLEVBQ2xDLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsU0FBUyxpQkFBaUIsVUFBa0I7QUFDMUMsTUFBSTtBQUNGLFdBQU8sS0FBSyxNQUFNLFFBQVE7QUFBQSxFQUM1QixRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFsiZGVmYXVsdHMiLCAicCIsICJjIiwgImkiLCAibCIsICJ4IiwgInRleHQiLCAiaSIsICJ4IiwgInkiLCAiaSIsICJwIiwgImFyZ3YiLCAiZW52IiwgImlzQ29sb3JTdXBwb3J0ZWQiLCAicmVwbGFjZUNsb3NlIiwgImNyZWF0ZUNvbG9ycyIsICJGIiwgInUiLCAidCIsICJzIiwgIlciLCAiQyIsICJEIiwgImEiLCAibiIsICJCIiwgImMiLCAicCIsICJHIiwgImFuc2lSZWdleCIsICJzdHJpcEFuc2kiLCAieCIsICJlbnYiLCAiXyIsICJtIiwgImdldENvbG9yIiwgImNyZWF0ZUNvbnNvbGEiLCAiVCIsICJBIiwgInIiLCAibCIsICJJIiwgIlIiLCAieSIsICJjIiwgIkwiLCAiTyIsICJOIiwgIlAiLCAidW5pY29kZSIsICJzIiwgInJlZ2V4IiwgImkiLCAiX19kZWZQcm9wIiwgImEiLCAiYyIsICJkIiwgImciLCAiaSIsICJsIiwgImMiLCAicCIsICJ4IiwgImsiLCAiZGVmYXVsdHMiLCAiYSIsICJwIiwgIl8iLCAiaSIsICJrIiwgInN0ZG91dCJdCn0K
3747
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNzNUZkdEhELm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLkNCaTZObTlzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjMuMS9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMy4xL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzIiwgIi4uL2luZGV4LnRzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9vaGFzaEAxLjEuNC9ub2RlX21vZHVsZXMvb2hhc2gvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9pbmRleC5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4zLjEvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC91dGlscy5tanMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NpdHR5QDAuMS42L25vZGVfbW9kdWxlcy9jaXR0eS9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QkMSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gIGlmIChwcm90b3R5cGUgIT09IG51bGwgJiYgcHJvdG90eXBlICE9PSBPYmplY3QucHJvdG90eXBlICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90b3R5cGUpICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChTeW1ib2wuaXRlcmF0b3IgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKFN5bWJvbC50b1N0cmluZ1RhZyBpbiB2YWx1ZSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgTW9kdWxlXVwiO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzUGxhaW5PYmplY3QkMShkZWZhdWx0cykpIHtcbiAgICByZXR1cm4gX2RlZnUoYmFzZU9iamVjdCwge30sIG5hbWVzcGFjZSwgbWVyZ2VyKTtcbiAgfVxuICBjb25zdCBvYmplY3QgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cyk7XG4gIGZvciAoY29uc3Qga2V5IGluIGJhc2VPYmplY3QpIHtcbiAgICBpZiAoa2V5ID09PSBcIl9fcHJvdG9fX1wiIHx8IGtleSA9PT0gXCJjb25zdHJ1Y3RvclwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBiYXNlT2JqZWN0W2tleV07XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAobWVyZ2VyICYmIG1lcmdlcihvYmplY3QsIGtleSwgdmFsdWUsIG5hbWVzcGFjZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gWy4uLnZhbHVlLCAuLi5vYmplY3Rba2V5XV07XG4gICAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0JDEodmFsdWUpICYmIGlzUGxhaW5PYmplY3QkMShvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIG9wdGlvbnM7XG4gIF9sYXN0TG9nO1xuICBfbW9ja0ZuO1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb25zb2xhIHdpdGggc3BlY2lmaWVkIG9wdGlvbnMgb3IgZGVmYXVsdHMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IFtvcHRpb25zPXt9XSAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCB0eXBlcyA9IG9wdGlvbnMudHlwZXMgfHwgTG9nVHlwZXM7XG4gICAgdGhpcy5vcHRpb25zID0gZGVmdShcbiAgICAgIHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgZGVmYXVsdHM6IHsgLi4ub3B0aW9ucy5kZWZhdWx0cyB9LFxuICAgICAgICBsZXZlbDogX25vcm1hbGl6ZUxvZ0xldmVsKG9wdGlvbnMubGV2ZWwsIHR5cGVzKSxcbiAgICAgICAgcmVwb3J0ZXJzOiBbLi4ub3B0aW9ucy5yZXBvcnRlcnMgfHwgW11dXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlczogTG9nVHlwZXMsXG4gICAgICAgIHRocm90dGxlOiAxZTMsXG4gICAgICAgIHRocm90dGxlTWluOiA1LFxuICAgICAgICBmb3JtYXRPcHRpb25zOiB7XG4gICAgICAgICAgZGF0ZTogdHJ1ZSxcbiAgICAgICAgICBjb2xvcnM6IGZhbHNlLFxuICAgICAgICAgIGNvbXBhY3Q6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHR5cGVzKSB7XG4gICAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi50eXBlc1t0eXBlXVxuICAgICAgfTtcbiAgICAgIHRoaXNbdHlwZV0gPSB0aGlzLl93cmFwTG9nRm4oZGVmYXVsdHMpO1xuICAgICAgdGhpc1t0eXBlXS5yYXcgPSB0aGlzLl93cmFwTG9nRm4oXG4gICAgICAgIGRlZmF1bHRzLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcHRpb25zLm1vY2tGbikge1xuICAgICAgdGhpcy5tb2NrVHlwZXMoKTtcbiAgICB9XG4gICAgdGhpcy5fbGFzdExvZyA9IHt9O1xuICB9XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IGxvZyBsZXZlbCBvZiB0aGUgQ29uc29sYSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGN1cnJlbnQgbG9nIGxldmVsLlxuICAgKi9cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1pbmltdW0gbG9nIGxldmVsIHRoYXQgd2lsbCBiZSBvdXRwdXQgYnkgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWwgLSBUaGUgbmV3IGxvZyBsZXZlbCB0byBzZXQuXG4gICAqL1xuICBzZXQgbGV2ZWwobGV2ZWwpIHtcbiAgICB0aGlzLm9wdGlvbnMubGV2ZWwgPSBfbm9ybWFsaXplTG9nTGV2ZWwoXG4gICAgICBsZXZlbCxcbiAgICAgIHRoaXMub3B0aW9ucy50eXBlcyxcbiAgICAgIHRoaXMub3B0aW9ucy5sZXZlbFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgcHJvbXB0IHRvIHRoZSB1c2VyIGFuZCByZXR1cm5zIHRoZSByZXNwb25zZS5cbiAgICogVGhyb3cgYW4gZXJyb3IgaWYgYHByb21wdGAgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAdGVtcGxhdGUgVFxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGRpc3BsYXkgaW4gdGhlIHByb21wdC5cbiAgICogQHBhcmFtIHtUfSBbb3B0c10gLSBPcHRpb25hbCBvcHRpb25zIGZvciB0aGUgcHJvbXB0LiBTZWUge0BsaW5rIFByb21wdE9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7cHJvbWlzZTxUPn0gQSBwcm9taXNlIHRoYXQgaW5mZXIgd2l0aCB0aGUgcHJvbXB0IG9wdGlvbnMuIFNlZSB7QGxpbmsgUHJvbXB0T3B0aW9uc30uXG4gICAqL1xuICBwcm9tcHQobWVzc2FnZSwgb3B0cykge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnByb21wdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwicHJvbXB0IGlzIG5vdCBzdXBwb3J0ZWQhXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnByb21wdChtZXNzYWdlLCBvcHRzKTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBDb25zb2xhLCBpbmhlcml0aW5nIG9wdGlvbnMgZnJvbSB0aGUgY3VycmVudCBpbnN0YW5jZSwgd2l0aCBwb3NzaWJsZSBvdmVycmlkZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xhT3B0aW9ucz59IG9wdGlvbnMgLSBPcHRpb25hbCBvdmVycmlkZXMgZm9yIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICBjcmVhdGUob3B0aW9ucykge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IENvbnNvbGEoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH0pO1xuICAgIGlmICh0aGlzLl9tb2NrRm4pIHtcbiAgICAgIGluc3RhbmNlLm1vY2tUeXBlcyh0aGlzLl9tb2NrRm4pO1xuICAgIH1cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQ29uc29sYSBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZGVmYXVsdCBsb2cgb2JqZWN0IHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7SW5wdXRMb2dPYmplY3R9IGRlZmF1bHRzIC0gRGVmYXVsdCBwcm9wZXJ0aWVzIHRvIGluY2x1ZGUgaW4gYW55IGxvZyBmcm9tIHRoZSBuZXcgaW5zdGFuY2UuIFNlZSB7QGxpbmsgSW5wdXRMb2dPYmplY3R9LlxuICAgKiBAcmV0dXJucyB7Q29uc29sYUluc3RhbmNlfSBBIG5ldyBDb25zb2xhIGluc3RhbmNlLiBTZWUge0BsaW5rIENvbnNvbGFJbnN0YW5jZX0uXG4gICAqL1xuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IENvbnNvbGEgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCB0YWcsIHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgaW4gZXZlcnkgbG9nLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFnIC0gVGhlIHRhZyB0byBpbmNsdWRlIGluIGVhY2ggbG9nIG9mIHRoZSBuZXcgaW5zdGFuY2UuXG4gICAqIEByZXR1cm5zIHtDb25zb2xhSW5zdGFuY2V9IEEgbmV3IENvbnNvbGEgaW5zdGFuY2UuIFNlZSB7QGxpbmsgQ29uc29sYUluc3RhbmNlfS5cbiAgICovXG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBBZGRzIGEgY3VzdG9tIHJlcG9ydGVyIHRvIHRoZSBDb25zb2xhIGluc3RhbmNlLlxuICAgKiBSZXBvcnRlcnMgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbG9nIG1lc3NhZ2UsIGRlcGVuZGluZyBvbiB0aGVpciBpbXBsZW1lbnRhdGlvbiBhbmQgbG9nIGxldmVsLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbnNvbGFSZXBvcnRlcn0gcmVwb3J0ZXIgLSBUaGUgcmVwb3J0ZXIgdG8gYWRkLiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgYWRkUmVwb3J0ZXIocmVwb3J0ZXIpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnB1c2gocmVwb3J0ZXIpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY3VzdG9tIHJlcG9ydGVyIGZyb20gdGhlIENvbnNvbGEgaW5zdGFuY2UuXG4gICAqIElmIG5vIHJlcG9ydGVyIGlzIHNwZWNpZmllZCwgYWxsIHJlcG9ydGVycyB3aWxsIGJlIHJlbW92ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc29sYVJlcG9ydGVyfSByZXBvcnRlciAtIFRoZSByZXBvcnRlciB0byByZW1vdmUuIFNlZSB7QGxpbmsgQ29uc29sYVJlcG9ydGVyfS5cbiAgICogQHJldHVybnMge0NvbnNvbGF9IFRoZSBjdXJyZW50IENvbnNvbGEgaW5zdGFuY2UuXG4gICAqL1xuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuc3BsaWNlKGksIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZSgwKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFsbCByZXBvcnRlcnMgb2YgdGhlIENvbnNvbGEgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGFycmF5IG9mIHJlcG9ydGVycy5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhUmVwb3J0ZXJbXX0gcmVwb3J0ZXJzIC0gVGhlIG5ldyByZXBvcnRlcnMgdG8gc2V0LiBTZWUge0BsaW5rIENvbnNvbGFSZXBvcnRlcn0uXG4gICAqIEByZXR1cm5zIHtDb25zb2xhfSBUaGUgY3VycmVudCBDb25zb2xhIGluc3RhbmNlLlxuICAgKi9cbiAgc2V0UmVwb3J0ZXJzKHJlcG9ydGVycykge1xuICAgIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMgPSBBcnJheS5pc0FycmF5KHJlcG9ydGVycykgPyByZXBvcnRlcnMgOiBbcmVwb3J0ZXJzXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB3cmFwQWxsKCkge1xuICAgIHRoaXMud3JhcENvbnNvbGUoKTtcbiAgICB0aGlzLndyYXBTdGQoKTtcbiAgfVxuICByZXN0b3JlQWxsKCkge1xuICAgIHRoaXMucmVzdG9yZUNvbnNvbGUoKTtcbiAgICB0aGlzLnJlc3RvcmVTdGQoKTtcbiAgfVxuICAvKipcbiAgICogT3ZlcnJpZGVzIGNvbnNvbGUgbWV0aG9kcyB3aXRoIENvbnNvbGEgbG9nZ2luZyBtZXRob2RzIGZvciBjb25zaXN0ZW50IGxvZ2dpbmcuXG4gICAqL1xuICB3cmFwQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoIWNvbnNvbGVbXCJfX1wiICsgdHlwZV0pIHtcbiAgICAgICAgY29uc29sZVtcIl9fXCIgKyB0eXBlXSA9IGNvbnNvbGVbdHlwZV07XG4gICAgICB9XG4gICAgICBjb25zb2xlW3R5cGVdID0gdGhpc1t0eXBlXS5yYXc7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBSZXN0b3JlcyB0aGUgb3JpZ2luYWwgY29uc29sZSBtZXRob2RzLCByZW1vdmluZyBDb25zb2xhIG92ZXJyaWRlcy5cbiAgICovXG4gIHJlc3RvcmVDb25zb2xlKCkge1xuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIGlmIChjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbdHlwZV0gPSBjb25zb2xlW1wiX19cIiArIHR5cGVdO1xuICAgICAgICBkZWxldGUgY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMgdG8gcmVkaXJlY3QgdGhlbSB0aHJvdWdoIENvbnNvbGEuXG4gICAqL1xuICB3cmFwU3RkKCkge1xuICAgIHRoaXMuX3dyYXBTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCwgXCJsb2dcIik7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyLCBcImxvZ1wiKTtcbiAgfVxuICBfd3JhcFN0cmVhbShzdHJlYW0sIHR5cGUpIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0uX193cml0ZSA9IHN0cmVhbS53cml0ZTtcbiAgICB9XG4gICAgc3RyZWFtLndyaXRlID0gKGRhdGEpID0+IHtcbiAgICAgIHRoaXNbdHlwZV0ucmF3KFN0cmluZyhkYXRhKS50cmltKCkpO1xuICAgIH07XG4gIH1cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSBvcmlnaW5hbCBzdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIHN0cmVhbXMsIHJlbW92aW5nIHRoZSBDb25zb2xhIHJlZGlyZWN0aW9uLlxuICAgKi9cbiAgcmVzdG9yZVN0ZCgpIHtcbiAgICB0aGlzLl9yZXN0b3JlU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRvdXQpO1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZGVycik7XG4gIH1cbiAgX3Jlc3RvcmVTdHJlYW0oc3RyZWFtKSB7XG4gICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHN0cmVhbS5fX3dyaXRlKSB7XG4gICAgICBzdHJlYW0ud3JpdGUgPSBzdHJlYW0uX193cml0ZTtcbiAgICAgIGRlbGV0ZSBzdHJlYW0uX193cml0ZTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFBhdXNlcyBsb2dnaW5nLCBxdWV1ZXMgaW5jb21pbmcgbG9ncyB1bnRpbCByZXN1bWVkLlxuICAgKi9cbiAgcGF1c2VMb2dzKCkge1xuICAgIHBhdXNlZCA9IHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIFJlc3VtZXMgbG9nZ2luZywgcHJvY2Vzc2luZyBhbnkgcXVldWVkIGxvZ3MuXG4gICAqL1xuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGxvZ2dpbmcgbWV0aG9kcyB3aXRoIG1vY2tzIGlmIGEgbW9jayBmdW5jdGlvbiBpcyBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtDb25zb2xhT3B0aW9uc1tcIm1vY2tGblwiXX0gbW9ja0ZuIC0gVGhlIGZ1bmN0aW9uIHRvIHVzZSBmb3IgbW9ja2luZyBsb2dnaW5nIG1ldGhvZHMuIFNlZSB7QGxpbmsgQ29uc29sYU9wdGlvbnNbXCJtb2NrRm5cIl19LlxuICAgKi9cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBpbmRlbnQgKyBwYXJzZVN0YWNrKHN0YWNrKS5qb2luKGBcbiR7aW5kZW50fWApO1xuICB9XG4gIGZvcm1hdEVycm9yKGVyciwgb3B0cykge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnIubWVzc2FnZSA/PyBmb3JtYXRXaXRoT3B0aW9ucyhvcHRzLCBlcnIpO1xuICAgIGNvbnN0IHN0YWNrID0gZXJyLnN0YWNrID8gdGhpcy5mb3JtYXRTdGFjayhlcnIuc3RhY2ssIG9wdHMpIDogXCJcIjtcbiAgICBjb25zdCBsZXZlbCA9IG9wdHM/LmVycm9yTGV2ZWwgfHwgMDtcbiAgICBjb25zdCBjYXVzZWRQcmVmaXggPSBsZXZlbCA+IDAgPyBgJHtcIiAgXCIucmVwZWF0KGxldmVsKX1bY2F1c2VdOiBgIDogXCJcIjtcbiAgICBjb25zdCBjYXVzZWRFcnJvciA9IGVyci5jYXVzZSA/IFwiXFxuXFxuXCIgKyB0aGlzLmZvcm1hdEVycm9yKGVyci5jYXVzZSwgeyAuLi5vcHRzLCBlcnJvckxldmVsOiBsZXZlbCArIDEgfSkgOiBcIlwiO1xuICAgIHJldHVybiBjYXVzZWRQcmVmaXggKyBtZXNzYWdlICsgXCJcXG5cIiArIHN0YWNrICsgY2F1c2VkRXJyb3I7XG4gIH1cbiAgZm9ybWF0QXJncyhhcmdzLCBvcHRzKSB7XG4gICAgY29uc3QgX2FyZ3MgPSBhcmdzLm1hcCgoYXJnKSA9PiB7XG4gICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcuc3RhY2sgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0RXJyb3IoYXJnLCBvcHRzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcmc7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1hdFdpdGhPcHRpb25zKG9wdHMsIC4uLl9hcmdzKTtcbiAgfVxuICBmb3JtYXREYXRlKGRhdGUsIG9wdHMpIHtcbiAgICByZXR1cm4gb3B0cy5kYXRlID8gZGF0ZS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6IFwiXCI7XG4gIH1cbiAgZmlsdGVyQW5kSm9pbihhcnIpIHtcbiAgICByZXR1cm4gYXJyLmZpbHRlcihCb29sZWFuKS5qb2luKFwiIFwiKTtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZm9ybWF0QXJncyhsb2dPYmouYXJncywgb3B0cyk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcImJveFwiKSB7XG4gICAgICByZXR1cm4gXCJcXG5cIiArIFtcbiAgICAgICAgYnJhY2tldChsb2dPYmoudGFnKSxcbiAgICAgICAgbG9nT2JqLnRpdGxlICYmIGxvZ09iai50aXRsZSxcbiAgICAgICAgLi4ubWVzc2FnZS5zcGxpdChcIlxcblwiKVxuICAgICAgXS5maWx0ZXIoQm9vbGVhbikubWFwKChsKSA9PiBcIiA+IFwiICsgbCkuam9pbihcIlxcblwiKSArIFwiXFxuXCI7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpbHRlckFuZEpvaW4oW1xuICAgICAgYnJhY2tldChsb2dPYmoudHlwZSksXG4gICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgbWVzc2FnZVxuICAgIF0pO1xuICB9XG4gIGxvZyhsb2dPYmosIGN0eCkge1xuICAgIGNvbnN0IGxpbmUgPSB0aGlzLmZvcm1hdExvZ09iaihsb2dPYmosIHtcbiAgICAgIGNvbHVtbnM6IGN0eC5vcHRpb25zLnN0ZG91dC5jb2x1bW5zIHx8IDAsXG4gICAgICAuLi5jdHgub3B0aW9ucy5mb3JtYXRPcHRpb25zXG4gICAgfSk7XG4gICAgcmV0dXJuIHdyaXRlU3RyZWFtKFxuICAgICAgbGluZSArIFwiXFxuXCIsXG4gICAgICBsb2dPYmoubGV2ZWwgPCAyID8gY3R4Lm9wdGlvbnMuc3RkZXJyIHx8IHByb2Nlc3Muc3RkZXJyIDogY3R4Lm9wdGlvbnMuc3Rkb3V0IHx8IHByb2Nlc3Muc3Rkb3V0XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgeyBCYXNpY1JlcG9ydGVyIGFzIEIsIHBhcnNlU3RhY2sgYXMgcCB9O1xuIiwgImltcG9ydCAqIGFzIHR0eSBmcm9tICdub2RlOnR0eSc7XG5cbmNvbnN0IHtcbiAgZW52ID0ge30sXG4gIGFyZ3YgPSBbXSxcbiAgcGxhdGZvcm0gPSBcIlwiXG59ID0gdHlwZW9mIHByb2Nlc3MgPT09IFwidW5kZWZpbmVkXCIgPyB7fSA6IHByb2Nlc3M7XG5jb25zdCBpc0Rpc2FibGVkID0gXCJOT19DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKTtcbmNvbnN0IGlzRm9yY2VkID0gXCJGT1JDRV9DT0xPUlwiIGluIGVudiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1jb2xvclwiKTtcbmNvbnN0IGlzV2luZG93cyA9IHBsYXRmb3JtID09PSBcIndpbjMyXCI7XG5jb25zdCBpc0R1bWJUZXJtaW5hbCA9IGVudi5URVJNID09PSBcImR1bWJcIjtcbmNvbnN0IGlzQ29tcGF0aWJsZVRlcm1pbmFsID0gdHR5ICYmIHR0eS5pc2F0dHkgJiYgdHR5LmlzYXR0eSgxKSAmJiBlbnYuVEVSTSAmJiAhaXNEdW1iVGVybWluYWw7XG5jb25zdCBpc0NJID0gXCJDSVwiIGluIGVudiAmJiAoXCJHSVRIVUJfQUNUSU9OU1wiIGluIGVudiB8fCBcIkdJVExBQl9DSVwiIGluIGVudiB8fCBcIkNJUkNMRUNJXCIgaW4gZW52KTtcbmNvbnN0IGlzQ29sb3JTdXBwb3J0ZWQgPSAhaXNEaXNhYmxlZCAmJiAoaXNGb3JjZWQgfHwgaXNXaW5kb3dzICYmICFpc0R1bWJUZXJtaW5hbCB8fCBpc0NvbXBhdGlibGVUZXJtaW5hbCB8fCBpc0NJKTtcbmZ1bmN0aW9uIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaGVhZCA9IHN0cmluZy5zbGljZSgwLCBNYXRoLm1heCgwLCBpbmRleCkpICsgcmVwbGFjZSwgdGFpbCA9IHN0cmluZy5zbGljZShNYXRoLm1heCgwLCBpbmRleCArIGNsb3NlLmxlbmd0aCkpLCBuZXh0ID0gdGFpbC5pbmRleE9mKGNsb3NlKSkge1xuICByZXR1cm4gaGVhZCArIChuZXh0IDwgMCA/IHRhaWwgOiByZXBsYWNlQ2xvc2UobmV4dCwgdGFpbCwgY2xvc2UsIHJlcGxhY2UpKTtcbn1cbmZ1bmN0aW9uIGNsZWFyQmxlZWQoaW5kZXgsIHN0cmluZywgb3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGluZGV4IDwgMCA/IG9wZW4gKyBzdHJpbmcgKyBjbG9zZSA6IG9wZW4gKyByZXBsYWNlQ2xvc2UoaW5kZXgsIHN0cmluZywgY2xvc2UsIHJlcGxhY2UpICsgY2xvc2U7XG59XG5mdW5jdGlvbiBmaWx0ZXJFbXB0eShvcGVuLCBjbG9zZSwgcmVwbGFjZSA9IG9wZW4sIGF0ID0gb3Blbi5sZW5ndGggKyAxKSB7XG4gIHJldHVybiAoc3RyaW5nKSA9PiBzdHJpbmcgfHwgIShzdHJpbmcgPT09IFwiXCIgfHwgc3RyaW5nID09PSB2b2lkIDApID8gY2xlYXJCbGVlZChcbiAgICAoXCJcIiArIHN0cmluZykuaW5kZXhPZihjbG9zZSwgYXQpLFxuICAgIHN0cmluZyxcbiAgICBvcGVuLFxuICAgIGNsb3NlLFxuICAgIHJlcGxhY2VcbiAgKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBpbml0KG9wZW4sIGNsb3NlLCByZXBsYWNlKSB7XG4gIHJldHVybiBmaWx0ZXJFbXB0eShgXFx4MUJbJHtvcGVufW1gLCBgXFx4MUJbJHtjbG9zZX1tYCwgcmVwbGFjZSk7XG59XG5jb25zdCBjb2xvckRlZnMgPSB7XG4gIHJlc2V0OiBpbml0KDAsIDApLFxuICBib2xkOiBpbml0KDEsIDIyLCBcIlxceDFCWzIybVxceDFCWzFtXCIpLFxuICBkaW06IGluaXQoMiwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMm1cIiksXG4gIGl0YWxpYzogaW5pdCgzLCAyMyksXG4gIHVuZGVybGluZTogaW5pdCg0LCAyNCksXG4gIGludmVyc2U6IGluaXQoNywgMjcpLFxuICBoaWRkZW46IGluaXQoOCwgMjgpLFxuICBzdHJpa2V0aHJvdWdoOiBpbml0KDksIDI5KSxcbiAgYmxhY2s6IGluaXQoMzAsIDM5KSxcbiAgcmVkOiBpbml0KDMxLCAzOSksXG4gIGdyZWVuOiBpbml0KDMyLCAzOSksXG4gIHllbGxvdzogaW5pdCgzMywgMzkpLFxuICBibHVlOiBpbml0KDM0LCAzOSksXG4gIG1hZ2VudGE6IGluaXQoMzUsIDM5KSxcbiAgY3lhbjogaW5pdCgzNiwgMzkpLFxuICB3aGl0ZTogaW5pdCgzNywgMzkpLFxuICBncmF5OiBpbml0KDkwLCAzOSksXG4gIGJnQmxhY2s6IGluaXQoNDAsIDQ5KSxcbiAgYmdSZWQ6IGluaXQoNDEsIDQ5KSxcbiAgYmdHcmVlbjogaW5pdCg0MiwgNDkpLFxuICBiZ1llbGxvdzogaW5pdCg0MywgNDkpLFxuICBiZ0JsdWU6IGluaXQoNDQsIDQ5KSxcbiAgYmdNYWdlbnRhOiBpbml0KDQ1LCA0OSksXG4gIGJnQ3lhbjogaW5pdCg0NiwgNDkpLFxuICBiZ1doaXRlOiBpbml0KDQ3LCA0OSksXG4gIGJsYWNrQnJpZ2h0OiBpbml0KDkwLCAzOSksXG4gIHJlZEJyaWdodDogaW5pdCg5MSwgMzkpLFxuICBncmVlbkJyaWdodDogaW5pdCg5MiwgMzkpLFxuICB5ZWxsb3dCcmlnaHQ6IGluaXQoOTMsIDM5KSxcbiAgYmx1ZUJyaWdodDogaW5pdCg5NCwgMzkpLFxuICBtYWdlbnRhQnJpZ2h0OiBpbml0KDk1LCAzOSksXG4gIGN5YW5CcmlnaHQ6IGluaXQoOTYsIDM5KSxcbiAgd2hpdGVCcmlnaHQ6IGluaXQoOTcsIDM5KSxcbiAgYmdCbGFja0JyaWdodDogaW5pdCgxMDAsIDQ5KSxcbiAgYmdSZWRCcmlnaHQ6IGluaXQoMTAxLCA0OSksXG4gIGJnR3JlZW5CcmlnaHQ6IGluaXQoMTAyLCA0OSksXG4gIGJnWWVsbG93QnJpZ2h0OiBpbml0KDEwMywgNDkpLFxuICBiZ0JsdWVCcmlnaHQ6IGluaXQoMTA0LCA0OSksXG4gIGJnTWFnZW50YUJyaWdodDogaW5pdCgxMDUsIDQ5KSxcbiAgYmdDeWFuQnJpZ2h0OiBpbml0KDEwNiwgNDkpLFxuICBiZ1doaXRlQnJpZ2h0OiBpbml0KDEwNywgNDkpXG59O1xuZnVuY3Rpb24gY3JlYXRlQ29sb3JzKHVzZUNvbG9yID0gaXNDb2xvclN1cHBvcnRlZCkge1xuICByZXR1cm4gdXNlQ29sb3IgPyBjb2xvckRlZnMgOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmtleXMoY29sb3JEZWZzKS5tYXAoKGtleSkgPT4gW2tleSwgU3RyaW5nXSkpO1xufVxuY29uc3QgY29sb3JzID0gY3JlYXRlQ29sb3JzKCk7XG5mdW5jdGlvbiBnZXRDb2xvcihjb2xvciwgZmFsbGJhY2sgPSBcInJlc2V0XCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzW2ZhbGxiYWNrXTtcbn1cbmZ1bmN0aW9uIGNvbG9yaXplKGNvbG9yLCB0ZXh0KSB7XG4gIHJldHVybiBnZXRDb2xvcihjb2xvcikodGV4dCk7XG59XG5cbmNvbnN0IGFuc2lSZWdleCA9IFtcbiAgU3RyaW5nLnJhd2BbXFx1MDAxQlxcdTAwOUJdW1tcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcZF0rKD86O1stYS16QS1aXFxkXFwvIyYuOj0/JUB+X10qKSopP1xcdTAwMDcpYCxcbiAgU3RyaW5nLnJhd2AoPzooPzpcXGR7MSw0fSg/OjtcXGR7MCw0fSkqKT9bXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKWBcbl0uam9pbihcInxcIik7XG5mdW5jdGlvbiBzdHJpcEFuc2kodGV4dCkge1xuICByZXR1cm4gdGV4dC5yZXBsYWNlKG5ldyBSZWdFeHAoYW5zaVJlZ2V4LCBcImdcIiksIFwiXCIpO1xufVxuZnVuY3Rpb24gY2VudGVyQWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGNvbnN0IGZyZWVMZWZ0ID0gTWF0aC5mbG9vcihmcmVlIC8gMik7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWVMZWZ0IHx8IGkgPj0gZnJlZUxlZnQgKyBzdHIubGVuZ3RoID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVMZWZ0XTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIHJpZ2h0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgY29uc3QgZnJlZSA9IGxlbiAtIHN0ci5sZW5ndGg7XG4gIGlmIChmcmVlIDw9IDApIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IGZyZWUgPyBzcGFjZSA6IHN0cltpIC0gZnJlZV07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgbGV0IF9zdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgX3N0ciArPSBpIDwgc3RyLmxlbmd0aCA/IHN0cltpXSA6IHNwYWNlO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gYWxpZ24oYWxpZ25tZW50LCBzdHIsIGxlbiwgc3BhY2UgPSBcIiBcIikge1xuICBzd2l0Y2ggKGFsaWdubWVudCkge1xuICAgIGNhc2UgXCJsZWZ0XCI6IHtcbiAgICAgIHJldHVybiBsZWZ0QWxpZ24oc3RyLCBsZW4sIHNwYWNlKTtcbiAgICB9XG4gICAgY2FzZSBcInJpZ2h0XCI6IHtcbiAgICAgIHJldHVybiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJjZW50ZXJcIjoge1xuICAgICAgcmV0dXJuIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGJveFN0eWxlUHJlc2V0cyA9IHtcbiAgc29saWQ6IHtcbiAgICB0bDogXCJcXHUyNTBDXCIsXG4gICAgdHI6IFwiXFx1MjUxMFwiLFxuICAgIGJsOiBcIlxcdTI1MTRcIixcbiAgICBicjogXCJcXHUyNTE4XCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgZG91YmxlOiB7XG4gICAgdGw6IFwiXFx1MjU1NFwiLFxuICAgIHRyOiBcIlxcdTI1NTdcIixcbiAgICBibDogXCJcXHUyNTVBXCIsXG4gICAgYnI6IFwiXFx1MjU1RFwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIGRvdWJsZVNpbmdsZToge1xuICAgIHRsOiBcIlxcdTI1NTNcIixcbiAgICB0cjogXCJcXHUyNTU2XCIsXG4gICAgYmw6IFwiXFx1MjU1OVwiLFxuICAgIGJyOiBcIlxcdTI1NUNcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjU1MVwiXG4gIH0sXG4gIHNpbmdsZVRoaWNrOiB7XG4gICAgdGw6IFwiXFx1MjUwRlwiLFxuICAgIHRyOiBcIlxcdTI1MTNcIixcbiAgICBibDogXCJcXHUyNTE3XCIsXG4gICAgYnI6IFwiXFx1MjUxQlwiLFxuICAgIGg6IFwiXFx1MjUwMVwiLFxuICAgIHY6IFwiXFx1MjUwM1wiXG4gIH0sXG4gIHNpbmdsZURvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTJcIixcbiAgICB0cjogXCJcXHUyNTU1XCIsXG4gICAgYmw6IFwiXFx1MjU1OFwiLFxuICAgIGJyOiBcIlxcdTI1NUJcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICBzaW5nbGVEb3VibGVSb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjU1MFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIHJvdW5kZWQ6IHtcbiAgICB0bDogXCJcXHUyNTZEXCIsXG4gICAgdHI6IFwiXFx1MjU2RVwiLFxuICAgIGJsOiBcIlxcdTI1NzBcIixcbiAgICBicjogXCJcXHUyNTZGXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfVxufTtcbmNvbnN0IGRlZmF1bHRTdHlsZSA9IHtcbiAgYm9yZGVyQ29sb3I6IFwid2hpdGVcIixcbiAgYm9yZGVyU3R5bGU6IFwicm91bmRlZFwiLFxuICB2YWxpZ246IFwiY2VudGVyXCIsXG4gIHBhZGRpbmc6IDIsXG4gIG1hcmdpbkxlZnQ6IDEsXG4gIG1hcmdpblRvcDogMSxcbiAgbWFyZ2luQm90dG9tOiAxXG59O1xuZnVuY3Rpb24gYm94KHRleHQsIF9vcHRzID0ge30pIHtcbiAgY29uc3Qgb3B0cyA9IHtcbiAgICAuLi5fb3B0cyxcbiAgICBzdHlsZToge1xuICAgICAgLi4uZGVmYXVsdFN0eWxlLFxuICAgICAgLi4uX29wdHMuc3R5bGVcbiAgICB9XG4gIH07XG4gIGNvbnN0IHRleHRMaW5lcyA9IHRleHQuc3BsaXQoXCJcXG5cIik7XG4gIGNvbnN0IGJveExpbmVzID0gW107XG4gIGNvbnN0IF9jb2xvciA9IGdldENvbG9yKG9wdHMuc3R5bGUuYm9yZGVyQ29sb3IpO1xuICBjb25zdCBib3JkZXJTdHlsZSA9IHtcbiAgICAuLi50eXBlb2Ygb3B0cy5zdHlsZS5ib3JkZXJTdHlsZSA9PT0gXCJzdHJpbmdcIiA/IGJveFN0eWxlUHJlc2V0c1tvcHRzLnN0eWxlLmJvcmRlclN0eWxlXSB8fCBib3hTdHlsZVByZXNldHMuc29saWQgOiBvcHRzLnN0eWxlLmJvcmRlclN0eWxlXG4gIH07XG4gIGlmIChfY29sb3IpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBib3JkZXJTdHlsZSkge1xuICAgICAgYm9yZGVyU3R5bGVba2V5XSA9IF9jb2xvcihcbiAgICAgICAgYm9yZGVyU3R5bGVba2V5XVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFkZGluZ09mZnNldCA9IG9wdHMuc3R5bGUucGFkZGluZyAlIDIgPT09IDAgPyBvcHRzLnN0eWxlLnBhZGRpbmcgOiBvcHRzLnN0eWxlLnBhZGRpbmcgKyAxO1xuICBjb25zdCBoZWlnaHQgPSB0ZXh0TGluZXMubGVuZ3RoICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGggPSBNYXRoLm1heCguLi50ZXh0TGluZXMubWFwKChsaW5lKSA9PiBsaW5lLmxlbmd0aCkpICsgcGFkZGluZ09mZnNldDtcbiAgY29uc3Qgd2lkdGhPZmZzZXQgPSB3aWR0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IGxlZnRTcGFjZSA9IG9wdHMuc3R5bGUubWFyZ2luTGVmdCA+IDAgPyBcIiBcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5MZWZ0KSA6IFwiXCI7XG4gIGlmIChvcHRzLnN0eWxlLm1hcmdpblRvcCA+IDApIHtcbiAgICBib3hMaW5lcy5wdXNoKFwiXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luVG9wKSk7XG4gIH1cbiAgaWYgKG9wdHMudGl0bGUpIHtcbiAgICBjb25zdCB0aXRsZSA9IF9jb2xvciA/IF9jb2xvcihvcHRzLnRpdGxlKSA6IG9wdHMudGl0bGU7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHt0aXRsZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgYm94TGluZXMucHVzaChcbiAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnRsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudHJ9YFxuICAgICk7XG4gIH1cbiAgY29uc3QgdmFsaWduT2Zmc2V0ID0gb3B0cy5zdHlsZS52YWxpZ24gPT09IFwiY2VudGVyXCIgPyBNYXRoLmZsb29yKChoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoKSAvIDIpIDogb3B0cy5zdHlsZS52YWxpZ24gPT09IFwidG9wXCIgPyBoZWlnaHQgLSB0ZXh0TGluZXMubGVuZ3RoIC0gcGFkZGluZ09mZnNldCA6IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGg7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaGVpZ2h0OyBpKyspIHtcbiAgICBpZiAoaSA8IHZhbGlnbk9mZnNldCB8fCBpID49IHZhbGlnbk9mZnNldCArIHRleHRMaW5lcy5sZW5ndGgpIHtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtcIiBcIi5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsaW5lID0gdGV4dExpbmVzW2kgLSB2YWxpZ25PZmZzZXRdO1xuICAgICAgY29uc3QgbGVmdCA9IFwiIFwiLnJlcGVhdChwYWRkaW5nT2Zmc2V0KTtcbiAgICAgIGNvbnN0IHJpZ2h0ID0gXCIgXCIucmVwZWF0KHdpZHRoIC0gc3RyaXBBbnNpKGxpbmUpLmxlbmd0aCk7XG4gICAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS52fSR7bGVmdH0ke2xpbmV9JHtyaWdodH0ke2JvcmRlclN0eWxlLnZ9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgYm94TGluZXMucHVzaChcbiAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS5ibH0ke2JvcmRlclN0eWxlLmgucmVwZWF0KHdpZHRoT2Zmc2V0KX0ke2JvcmRlclN0eWxlLmJyfWBcbiAgKTtcbiAgaWYgKG9wdHMuc3R5bGUubWFyZ2luQm90dG9tID4gMCkge1xuICAgIGJveExpbmVzLnB1c2goXCJcIi5yZXBlYXQob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20pKTtcbiAgfVxuICByZXR1cm4gYm94TGluZXMuam9pbihcIlxcblwiKTtcbn1cblxuZXhwb3J0IHsgYWxpZ24gYXMgYSwgYm94IGFzIGIsIGNlbnRlckFsaWduIGFzIGMsIGNvbG9ycyBhcyBkLCBjb2xvcml6ZSBhcyBlLCBnZXRDb2xvciBhcyBnLCBsZWZ0QWxpZ24gYXMgbCwgcmlnaHRBbGlnbiBhcyByLCBzdHJpcEFuc2kgYXMgcyB9O1xuIiwgImltcG9ydCB7IHN0ZGluLCBzdGRvdXQgfSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IGcgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBXcml0ZVN0cmVhbSB9IGZyb20gJ25vZGU6dHR5JztcbmltcG9ydCB7IGkgYXMgaXNVbmljb2RlU3VwcG9ydGVkIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuRDRKSzNSQ0subWpzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzIH0gZnJvbSAnLi4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnLi4vY29yZS5tanMnO1xuaW1wb3J0ICcuLi9zaGFyZWQvY29uc29sYS5DczVGZHRIRC5tanMnO1xuaW1wb3J0ICdub2RlOnV0aWwnO1xuaW1wb3J0ICdub2RlOnBhdGgnO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcyAoeCkge1xuXHRyZXR1cm4geCAmJiB4Ll9fZXNNb2R1bGUgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHgsICdkZWZhdWx0JykgPyB4WydkZWZhdWx0J10gOiB4O1xufVxuXG52YXIgc3JjO1xudmFyIGhhc1JlcXVpcmVkU3JjO1xuXG5mdW5jdGlvbiByZXF1aXJlU3JjICgpIHtcblx0aWYgKGhhc1JlcXVpcmVkU3JjKSByZXR1cm4gc3JjO1xuXHRoYXNSZXF1aXJlZFNyYyA9IDE7XG5cblx0Y29uc3QgRVNDID0gJ1xceDFCJztcblx0Y29uc3QgQ1NJID0gYCR7RVNDfVtgO1xuXHRjb25zdCBiZWVwID0gJ1xcdTAwMDcnO1xuXG5cdGNvbnN0IGN1cnNvciA9IHtcblx0ICB0byh4LCB5KSB7XG5cdCAgICBpZiAoIXkpIHJldHVybiBgJHtDU0l9JHt4ICsgMX1HYDtcblx0ICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcblx0ICB9LFxuXHQgIG1vdmUoeCwgeSkge1xuXHQgICAgbGV0IHJldCA9ICcnO1xuXG5cdCAgICBpZiAoeCA8IDApIHJldCArPSBgJHtDU0l9JHsteH1EYDtcblx0ICAgIGVsc2UgaWYgKHggPiAwKSByZXQgKz0gYCR7Q1NJfSR7eH1DYDtcblxuXHQgICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG5cdCAgICBlbHNlIGlmICh5ID4gMCkgcmV0ICs9IGAke0NTSX0ke3l9QmA7XG5cblx0ICAgIHJldHVybiByZXQ7XG5cdCAgfSxcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QWAsXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9QmAsXG5cdCAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG5cdCAgYmFja3dhcmQ6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fURgLFxuXHQgIG5leHRMaW5lOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9RWAucmVwZWF0KGNvdW50KSxcblx0ICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG5cdCAgbGVmdDogYCR7Q1NJfUdgLFxuXHQgIGhpZGU6IGAke0NTSX0/MjVsYCxcblx0ICBzaG93OiBgJHtDU0l9PzI1aGAsXG5cdCAgc2F2ZTogYCR7RVNDfTdgLFxuXHQgIHJlc3RvcmU6IGAke0VTQ304YFxuXHR9O1xuXG5cdGNvbnN0IHNjcm9sbCA9IHtcblx0ICB1cDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVNgLnJlcGVhdChjb3VudCksXG5cdCAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcblx0fTtcblxuXHRjb25zdCBlcmFzZSA9IHtcblx0ICBzY3JlZW46IGAke0NTSX0ySmAsXG5cdCAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0xSmAucmVwZWF0KGNvdW50KSxcblx0ICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9SmAucmVwZWF0KGNvdW50KSxcblx0ICBsaW5lOiBgJHtDU0l9MktgLFxuXHQgIGxpbmVFbmQ6IGAke0NTSX1LYCxcblx0ICBsaW5lU3RhcnQ6IGAke0NTSX0xS2AsXG5cdCAgbGluZXMoY291bnQpIHtcblx0ICAgIGxldCBjbGVhciA9ICcnO1xuXHQgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKVxuXHQgICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuXHQgICAgaWYgKGNvdW50KVxuXHQgICAgICBjbGVhciArPSBjdXJzb3IubGVmdDtcblx0ICAgIHJldHVybiBjbGVhcjtcblx0ICB9XG5cdH07XG5cblx0c3JjID0geyBjdXJzb3IsIHNjcm9sbCwgZXJhc2UsIGJlZXAgfTtcblx0cmV0dXJuIHNyYztcbn1cblxudmFyIHNyY0V4cG9ydHMgPSByZXF1aXJlU3JjKCk7XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxudmFyIGhhc1JlcXVpcmVkUGljb2NvbG9ycztcblxuZnVuY3Rpb24gcmVxdWlyZVBpY29jb2xvcnMgKCkge1xuXHRpZiAoaGFzUmVxdWlyZWRQaWNvY29sb3JzKSByZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xuXHRoYXNSZXF1aXJlZFBpY29jb2xvcnMgPSAxO1xuXHRsZXQgcCA9IHByb2Nlc3MgfHwge30sIGFyZ3YgPSBwLmFyZ3YgfHwgW10sIGVudiA9IHAuZW52IHx8IHt9O1xuXHRsZXQgaXNDb2xvclN1cHBvcnRlZCA9XG5cdFx0ISghIWVudi5OT19DT0xPUiB8fCBhcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0XHQoISFlbnYuRk9SQ0VfQ09MT1IgfHwgYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHwgcC5wbGF0Zm9ybSA9PT0gXCJ3aW4zMlwiIHx8ICgocC5zdGRvdXQgfHwge30pLmlzVFRZICYmIGVudi5URVJNICE9PSBcImR1bWJcIikgfHwgISFlbnYuQ0kpO1xuXG5cdGxldCBmb3JtYXR0ZXIgPSAob3BlbiwgY2xvc2UsIHJlcGxhY2UgPSBvcGVuKSA9PlxuXHRcdGlucHV0ID0+IHtcblx0XHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQsIGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRcdHJldHVybiB+aW5kZXggPyBvcGVuICsgcmVwbGFjZUNsb3NlKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSArIGNsb3NlIDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdFx0fTtcblxuXHRsZXQgcmVwbGFjZUNsb3NlID0gKHN0cmluZywgY2xvc2UsIHJlcGxhY2UsIGluZGV4KSA9PiB7XG5cdFx0bGV0IHJlc3VsdCA9IFwiXCIsIGN1cnNvciA9IDA7XG5cdFx0ZG8ge1xuXHRcdFx0cmVzdWx0ICs9IHN0cmluZy5zdWJzdHJpbmcoY3Vyc29yLCBpbmRleCkgKyByZXBsYWNlO1xuXHRcdFx0Y3Vyc29yID0gaW5kZXggKyBjbG9zZS5sZW5ndGg7XG5cdFx0XHRpbmRleCA9IHN0cmluZy5pbmRleE9mKGNsb3NlLCBjdXJzb3IpO1xuXHRcdH0gd2hpbGUgKH5pbmRleClcblx0XHRyZXR1cm4gcmVzdWx0ICsgc3RyaW5nLnN1YnN0cmluZyhjdXJzb3IpXG5cdH07XG5cblx0bGV0IGNyZWF0ZUNvbG9ycyA9IChlbmFibGVkID0gaXNDb2xvclN1cHBvcnRlZCkgPT4ge1xuXHRcdGxldCBmID0gZW5hYmxlZCA/IGZvcm1hdHRlciA6ICgpID0+IFN0cmluZztcblx0XHRyZXR1cm4ge1xuXHRcdFx0aXNDb2xvclN1cHBvcnRlZDogZW5hYmxlZCxcblx0XHRcdHJlc2V0OiBmKFwiXFx4MWJbMG1cIiwgXCJcXHgxYlswbVwiKSxcblx0XHRcdGJvbGQ6IGYoXCJcXHgxYlsxbVwiLCBcIlxceDFiWzIybVwiLCBcIlxceDFiWzIybVxceDFiWzFtXCIpLFxuXHRcdFx0ZGltOiBmKFwiXFx4MWJbMm1cIiwgXCJcXHgxYlsyMm1cIiwgXCJcXHgxYlsyMm1cXHgxYlsybVwiKSxcblx0XHRcdGl0YWxpYzogZihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpLFxuXHRcdFx0dW5kZXJsaW5lOiBmKFwiXFx4MWJbNG1cIiwgXCJcXHgxYlsyNG1cIiksXG5cdFx0XHRpbnZlcnNlOiBmKFwiXFx4MWJbN21cIiwgXCJcXHgxYlsyN21cIiksXG5cdFx0XHRoaWRkZW46IGYoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSxcblx0XHRcdHN0cmlrZXRocm91Z2g6IGYoXCJcXHgxYls5bVwiLCBcIlxceDFiWzI5bVwiKSxcblxuXHRcdFx0YmxhY2s6IGYoXCJcXHgxYlszMG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWQ6IGYoXCJcXHgxYlszMW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbjogZihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvdzogZihcIlxceDFiWzMzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWU6IGYoXCJcXHgxYlszNG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhOiBmKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbjogZihcIlxceDFiWzM2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlOiBmKFwiXFx4MWJbMzdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Z3JheTogZihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSxcblxuXHRcdFx0YmdCbGFjazogZihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkOiBmKFwiXFx4MWJbNDFtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdHcmVlbjogZihcIlxceDFiWzQybVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnWWVsbG93OiBmKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlOiBmKFwiXFx4MWJbNDRtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdNYWdlbnRhOiBmKFwiXFx4MWJbNDVtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdDeWFuOiBmKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZTogZihcIlxceDFiWzQ3bVwiLCBcIlxceDFiWzQ5bVwiKSxcblxuXHRcdFx0YmxhY2tCcmlnaHQ6IGYoXCJcXHgxYls5MG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRyZWRCcmlnaHQ6IGYoXCJcXHgxYls5MW1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRncmVlbkJyaWdodDogZihcIlxceDFiWzkybVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHllbGxvd0JyaWdodDogZihcIlxceDFiWzkzbVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdGJsdWVCcmlnaHQ6IGYoXCJcXHgxYls5NG1cIiwgXCJcXHgxYlszOW1cIiksXG5cdFx0XHRtYWdlbnRhQnJpZ2h0OiBmKFwiXFx4MWJbOTVtXCIsIFwiXFx4MWJbMzltXCIpLFxuXHRcdFx0Y3lhbkJyaWdodDogZihcIlxceDFiWzk2bVwiLCBcIlxceDFiWzM5bVwiKSxcblx0XHRcdHdoaXRlQnJpZ2h0OiBmKFwiXFx4MWJbOTdtXCIsIFwiXFx4MWJbMzltXCIpLFxuXG5cdFx0XHRiZ0JsYWNrQnJpZ2h0OiBmKFwiXFx4MWJbMTAwbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnUmVkQnJpZ2h0OiBmKFwiXFx4MWJbMTAxbVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnR3JlZW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDJtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdZZWxsb3dCcmlnaHQ6IGYoXCJcXHgxYlsxMDNtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdCbHVlQnJpZ2h0OiBmKFwiXFx4MWJbMTA0bVwiLCBcIlxceDFiWzQ5bVwiKSxcblx0XHRcdGJnTWFnZW50YUJyaWdodDogZihcIlxceDFiWzEwNW1cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0XHRiZ0N5YW5CcmlnaHQ6IGYoXCJcXHgxYlsxMDZtXCIsIFwiXFx4MWJbNDltXCIpLFxuXHRcdFx0YmdXaGl0ZUJyaWdodDogZihcIlxceDFiWzEwN21cIiwgXCJcXHgxYls0OW1cIiksXG5cdFx0fVxuXHR9O1xuXG5cdHBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xuXHRwaWNvY29sb3JzLmV4cG9ydHMuY3JlYXRlQ29sb3JzID0gY3JlYXRlQ29sb3JzO1xuXHRyZXR1cm4gcGljb2NvbG9ycy5leHBvcnRzO1xufVxuXG52YXIgcGljb2NvbG9yc0V4cG9ydHMgPSAvKkBfX1BVUkVfXyovIHJlcXVpcmVQaWNvY29sb3JzKCk7XG5jb25zdCBjID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKHBpY29jb2xvcnNFeHBvcnRzKTtcblxuZnVuY3Rpb24gSih7b25seUZpcnN0OmU9ITF9PXt9KXtjb25zdCBGPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopPyg/OlxcXFx1MDAwN3xcXFxcdTAwMUJcXFxcdTAwNUN8XFxcXHUwMDlDKSlcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnEtdXk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKEYsZT92b2lkIDA6XCJnXCIpfWNvbnN0IFE9SigpO2Z1bmN0aW9uIFQoZSl7aWYodHlwZW9mIGUhPVwic3RyaW5nXCIpdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBlfVxcYGApO3JldHVybiBlLnJlcGxhY2UoUSxcIlwiKX1mdW5jdGlvbiBPKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLFwiZGVmYXVsdFwiKT9lLmRlZmF1bHQ6ZX12YXIgUD17ZXhwb3J0czp7fX07KGZ1bmN0aW9uKGUpe3ZhciB1PXt9O2UuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24odCl7dmFyIHM9dC5jaGFyQ29kZUF0KDApLGk9dC5sZW5ndGg9PTI/dC5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1pJiZpPD01NzM0MyYmKHMmPTEwMjMsaSY9MTAyMyxEPXM8PDEwfGksRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbih0KXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKHQpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcz1GKHQpLGk9MCxEPTA7RDxzLmxlbmd0aDtEKyspaT1pK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBpfSx1LnNsaWNlPWZ1bmN0aW9uKHQscyxpKXt0ZXh0TGVuPXUubGVuZ3RoKHQpLHM9c3x8MCxpPWl8fDEsczwwJiYocz10ZXh0TGVuK3MpLGk8MCYmKGk9dGV4dExlbitpKTtmb3IodmFyIEQ9XCJcIixDPTAsbz1GKHQpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKEM+PXMtKG49PTI/MTowKSlpZihDK248PWkpRCs9YTtlbHNlIGJyZWFrO0MrPW47fXJldHVybiBEfTt9KShQKTt2YXIgWD1QLmV4cG9ydHM7Y29uc3QgREQ9TyhYKTt2YXIgdUQ9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3M3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3KVxcdURCNDBcXHVEQzdGfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkVcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKXwoPzpcXHVEODNFXFx1REREMVxcdUQ4M0NcXHVERkZEXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSkpKD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQ1xcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxfFxcdUQ4M0RcXHVEQzY5XFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKSg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkJcXHUyMDBEXFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkIoPzpcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSl8XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKT98KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXwoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pXFx1RkUwRnxcXHUyMDBEKD86KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkMpP3woPzpcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8KD86XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKVxcdTIwMERcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pKXxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSkpfFxcdUQ4M0RcXHVEQzY5KD86XFx1MjAwRCg/OlxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkRcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0VcXHVEREQxKD86XFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZGXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZFXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pfFxcdUQ4M0RcXHVERTM2XFx1MjAwRFxcdUQ4M0NcXHVERjJCfFxcdUQ4M0NcXHVERkYzXFx1RkUwRlxcdTIwMERcXHUyNkE3fFxcdUQ4M0RcXHVEQzNCXFx1MjAwRFxcdTI3NDR8KD86KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKVxcdTIwMERbXFx1MjY0MFxcdTI2NDJdfFxcdUQ4M0NcXHVERkY0XFx1MjAwRFxcdTI2MjB8KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ0XFx1RERENi1cXHVEREREXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkIwXFx1MjZCMVxcdTI2QzhcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkU5XFx1MjZGMFxcdTI2RjFcXHUyNkY0XFx1MjZGN1xcdTI2RjhcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc2M1xcdTI3QTFcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldfFxcdUQ4M0NbXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdURFMDJcXHVERTM3XFx1REYyMVxcdURGMjQtXFx1REYyQ1xcdURGMzZcXHVERjdEXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFXFx1REY5RlxcdURGQ0RcXHVERkNFXFx1REZENC1cXHVERkRGXFx1REZGNVxcdURGRjddfFxcdUQ4M0RbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRjNcXHVGRTBGXFx1MjAwRFxcdUQ4M0NcXHVERjA4fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVERTM1XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCfFxcdUQ4M0RcXHVERTJFXFx1MjAwRFxcdUQ4M0RcXHVEQ0E4fFxcdUQ4M0RcXHVEQzE1XFx1MjAwRFxcdUQ4M0VcXHVEREJBfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZ8XFx1RDgzQ1xcdURGRkV8XFx1RDgzQ1xcdURGRkR8XFx1RDgzQ1xcdURGRkN8XFx1RDgzQ1xcdURGRkIpP3xcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGfFxcdUQ4M0NcXHVERkZFfFxcdUQ4M0NcXHVERkZEfFxcdUQ4M0NcXHVERkZDfFxcdUQ4M0NcXHVERkZCKT98XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdUQ4M0NcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RDgzRFxcdURDMDhcXHUyMDBEXFx1MkIxQnxcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSl8XFx1RDgzRFxcdURDNDFcXHVGRTBGfFxcdUQ4M0NcXHVERkYzXFx1RkUwRnxcXHVEODNDXFx1RERGRig/OlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXSl8XFx1RDgzQ1xcdURERkUoPzpcXHVEODNDW1xcdURERUFcXHVEREY5XSl8XFx1RDgzQ1xcdURERkMoPzpcXHVEODNDW1xcdURERUJcXHVEREY4XSl8XFx1RDgzQ1xcdURERkIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVFXFx1RERGM1xcdURERkFdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY4KD86XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjcoPzpcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREYzKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdKXxcXHVEODNDXFx1RERGMig/OlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYxKD86XFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdKXxcXHVEODNDXFx1RERGMCg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRCg/OlxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXSl8XFx1RDgzQ1xcdURERUMoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVFXFx1RERGMS1cXHVEREYzXFx1RERGNS1cXHVEREZBXFx1RERGQ1xcdURERkVdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERUEoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQVxcdURERUNcXHVEREVEXFx1RERGNy1cXHVEREZBXSl8XFx1RDgzQ1xcdURERTkoPzpcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdKXxcXHVEODNDXFx1RERFOCg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU3KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFsjXFwqMC05XVxcdUZFMEZcXHUyMEUzfFxcdTI3NjRcXHVGRTBGfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzVcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENFxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1REZGNHwoPzpbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OltcXHUyNjFEXFx1MjcwQ1xcdTI3MERdfFxcdUQ4M0RbXFx1REQ3NFxcdUREOTBdKSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxbXFx1MjcwQVxcdTI3MEJdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDMDhcXHVEQzE1XFx1REMzQlxcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFMkVcXHVERTM1XFx1REUzNlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNFxcdUREMzZcXHVERDc3XFx1RERCNVxcdUREQjZcXHVEREJCXFx1REREMlxcdURERDNcXHVEREQ1XXxcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MFxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XXxcXHVEODNFW1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXXxbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjg0XFx1REY4Ni1cXHVERjkzXFx1REZBMC1cXHVERkMxXFx1REZDNVxcdURGQzZcXHVERkM4XFx1REZDOVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjgtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDMDdcXHVEQzA5LVxcdURDMTRcXHVEQzE2LVxcdURDM0FcXHVEQzNDLVxcdURDM0VcXHVEQzQwXFx1REM0NFxcdURDNDVcXHVEQzUxLVxcdURDNjVcXHVEQzZBXFx1REM3OS1cXHVEQzdCXFx1REM3RC1cXHVEQzgwXFx1REM4NFxcdURDODgtXFx1REM4RVxcdURDOTBcXHVEQzkyLVxcdURDQTlcXHVEQ0FCLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVEREE0XFx1RERGQi1cXHVERTJEXFx1REUyRi1cXHVERTM0XFx1REUzNy1cXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDFEXFx1REQyMC1cXHVERDI1XFx1REQyNy1cXHVERDJGXFx1REQzQVxcdUREM0YtXFx1REQ0NVxcdURENDctXFx1REQ3NlxcdURENzhcXHVERDdBLVxcdUREQjRcXHVEREI3XFx1RERCQVxcdUREQkMtXFx1RERDQlxcdURERDBcXHVEREUwLVxcdURERkZcXHVERTcwLVxcdURFNzRcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODZcXHVERTkwLVxcdURFQThcXHVERUIwLVxcdURFQjZcXHVERUMwLVxcdURFQzJcXHVERUQwLVxcdURFRDZdfCg/OltcXHUyMzFBXFx1MjMxQlxcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI1RkVcXHUyNjE0XFx1MjYxNVxcdTI2NDgtXFx1MjY1M1xcdTI2N0ZcXHUyNjkzXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDNVxcdTI2Q0VcXHUyNkQ0XFx1MjZFQVxcdTI2RjJcXHUyNkYzXFx1MjZGNVxcdTI2RkFcXHUyNkZEXFx1MjcwNVxcdTI3MEFcXHUyNzBCXFx1MjcyOFxcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkIxQlxcdTJCMUNcXHUyQjUwXFx1MkI1NV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY5M1xcdURGQTAtXFx1REZDQVxcdURGQ0YtXFx1REZEM1xcdURGRTAtXFx1REZGMFxcdURGRjRcXHVERkY4LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQzNFXFx1REM0MFxcdURDNDItXFx1RENGQ1xcdURDRkYtXFx1REQzRFxcdURENEItXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdUREN0FcXHVERDk1XFx1REQ5NlxcdUREQTRcXHVEREZCLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNDXFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSl8KD86WyNcXCowLTlcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRTktXFx1MjNGM1xcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQi1cXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjFEXFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5Mi1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTFcXHUyNkE3XFx1MjZBQVxcdTI2QUJcXHUyNkIwXFx1MjZCMVxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkM4XFx1MjZDRVxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RDRcXHUyNkU5XFx1MjZFQVxcdTI2RjAtXFx1MjZGNVxcdTI2RjctXFx1MjZGQVxcdTI2RkRcXHUyNzAyXFx1MjcwNVxcdTI3MDgtXFx1MjcwRFxcdTI3MEZcXHUyNzEyXFx1MjcxNFxcdTI3MTZcXHUyNzFEXFx1MjcyMVxcdTI3MjhcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc2M1xcdTI3NjRcXHUyNzk1LVxcdTI3OTdcXHUyN0ExXFx1MjdCMFxcdTI3QkZcXHUyOTM0XFx1MjkzNVxcdTJCMDUtXFx1MkIwN1xcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ3MFxcdURENzFcXHVERDdFXFx1REQ3RlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVEREU2LVxcdURERkZcXHVERTAxXFx1REUwMlxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjFcXHVERjI0LVxcdURGOTNcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUUtXFx1REZGMFxcdURGRjMtXFx1REZGNVxcdURGRjctXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDRkRcXHVEQ0ZGLVxcdUREM0RcXHVERDQ5LVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDZGXFx1REQ3MFxcdURENzMtXFx1REQ3QVxcdUREODdcXHVERDhBLVxcdUREOERcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERBNVxcdUREQThcXHVEREIxXFx1RERCMlxcdUREQkNcXHVEREMyLVxcdUREQzRcXHVEREQxLVxcdURERDNcXHVERERDLVxcdUREREVcXHVEREUxXFx1RERFM1xcdURERThcXHVEREVGXFx1RERGM1xcdURERkEtXFx1REU0RlxcdURFODAtXFx1REVDNVxcdURFQ0ItXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUVCXFx1REVFQ1xcdURFRjBcXHVERUYzLVxcdURFRkNcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwQy1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDc4XFx1REQ3QS1cXHVERENCXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTc0XFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTg2XFx1REU5MC1cXHVERUE4XFx1REVCMC1cXHVERUI2XFx1REVDMC1cXHVERUMyXFx1REVEMC1cXHVERUQ2XSlcXHVGRTBGfCg/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307Y29uc3QgRkQ9Tyh1RCk7ZnVuY3Rpb24gcChlLHU9e30pe2lmKHR5cGVvZiBlIT1cInN0cmluZ1wifHxlLmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSxlPVQoZSksZS5sZW5ndGg9PT0wKSlyZXR1cm4gMDtlPWUucmVwbGFjZShGRCgpLFwiICBcIik7Y29uc3QgRj11LmFtYmlndW91c0lzTmFycm93PzE6MjtsZXQgdD0wO2Zvcihjb25zdCBzIG9mIGUpe2NvbnN0IGk9cy5jb2RlUG9pbnRBdCgwKTtpZihpPD0zMXx8aT49MTI3JiZpPD0xNTl8fGk+PTc2OCYmaTw9ODc5KWNvbnRpbnVlO3N3aXRjaChERC5lYXN0QXNpYW5XaWR0aChzKSl7Y2FzZVwiRlwiOmNhc2VcIldcIjp0Kz0yO2JyZWFrO2Nhc2VcIkFcIjp0Kz1GO2JyZWFrO2RlZmF1bHQ6dCs9MTt9fXJldHVybiB0fWNvbnN0IG09MTAsTD0oZT0wKT0+dT0+YFxceDFCWyR7dStlfW1gLFc9KGU9MCk9PnU9PmBcXHgxQlskezM4K2V9OzU7JHt1fW1gLE49KGU9MCk9Pih1LEYsdCk9PmBcXHgxQlskezM4K2V9OzI7JHt1fTske0Z9OyR7dH1tYCxyPXttb2RpZmllcjp7cmVzZXQ6WzAsMF0sYm9sZDpbMSwyMl0sZGltOlsyLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0sb3ZlcmxpbmU6WzUzLDU1XSxpbnZlcnNlOls3LDI3XSxoaWRkZW46WzgsMjhdLHN0cmlrZXRocm91Z2g6WzksMjldfSxjb2xvcjp7YmxhY2s6WzMwLDM5XSxyZWQ6WzMxLDM5XSxncmVlbjpbMzIsMzldLHllbGxvdzpbMzMsMzldLGJsdWU6WzM0LDM5XSxtYWdlbnRhOlszNSwzOV0sY3lhbjpbMzYsMzldLHdoaXRlOlszNywzOV0sYmxhY2tCcmlnaHQ6WzkwLDM5XSxncmF5Ols5MCwzOV0sZ3JleTpbOTAsMzldLHJlZEJyaWdodDpbOTEsMzldLGdyZWVuQnJpZ2h0Ols5MiwzOV0seWVsbG93QnJpZ2h0Ols5MywzOV0sYmx1ZUJyaWdodDpbOTQsMzldLG1hZ2VudGFCcmlnaHQ6Wzk1LDM5XSxjeWFuQnJpZ2h0Ols5NiwzOV0sd2hpdGVCcmlnaHQ6Wzk3LDM5XX0sYmdDb2xvcjp7YmdCbGFjazpbNDAsNDldLGJnUmVkOls0MSw0OV0sYmdHcmVlbjpbNDIsNDldLGJnWWVsbG93Ols0Myw0OV0sYmdCbHVlOls0NCw0OV0sYmdNYWdlbnRhOls0NSw0OV0sYmdDeWFuOls0Niw0OV0sYmdXaGl0ZTpbNDcsNDldLGJnQmxhY2tCcmlnaHQ6WzEwMCw0OV0sYmdHcmF5OlsxMDAsNDldLGJnR3JleTpbMTAwLDQ5XSxiZ1JlZEJyaWdodDpbMTAxLDQ5XSxiZ0dyZWVuQnJpZ2h0OlsxMDIsNDldLGJnWWVsbG93QnJpZ2h0OlsxMDMsNDldLGJnQmx1ZUJyaWdodDpbMTA0LDQ5XSxiZ01hZ2VudGFCcmlnaHQ6WzEwNSw0OV0sYmdDeWFuQnJpZ2h0OlsxMDYsNDldLGJnV2hpdGVCcmlnaHQ6WzEwNyw0OV19fTtPYmplY3Qua2V5cyhyLm1vZGlmaWVyKTtjb25zdCBlRD1PYmplY3Qua2V5cyhyLmNvbG9yKSx0RD1PYmplY3Qua2V5cyhyLmJnQ29sb3IpO1suLi5lRCwuLi50RF07ZnVuY3Rpb24gc0QoKXtjb25zdCBlPW5ldyBNYXA7Zm9yKGNvbnN0W3UsRl1vZiBPYmplY3QuZW50cmllcyhyKSl7Zm9yKGNvbnN0W3Qsc11vZiBPYmplY3QuZW50cmllcyhGKSlyW3RdPXtvcGVuOmBcXHgxQlske3NbMF19bWAsY2xvc2U6YFxceDFCWyR7c1sxXX1tYH0sRlt0XT1yW3RdLGUuc2V0KHNbMF0sc1sxXSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdSx7dmFsdWU6RixlbnVtZXJhYmxlOiExfSk7fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkocixcImNvZGVzXCIse3ZhbHVlOmUsZW51bWVyYWJsZTohMX0pLHIuY29sb3IuY2xvc2U9XCJcXHgxQlszOW1cIixyLmJnQ29sb3IuY2xvc2U9XCJcXHgxQls0OW1cIixyLmNvbG9yLmFuc2k9TCgpLHIuY29sb3IuYW5zaTI1Nj1XKCksci5jb2xvci5hbnNpMTZtPU4oKSxyLmJnQ29sb3IuYW5zaT1MKG0pLHIuYmdDb2xvci5hbnNpMjU2PVcobSksci5iZ0NvbG9yLmFuc2kxNm09TihtKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhyLHtyZ2JUb0Fuc2kyNTY6e3ZhbHVlOih1LEYsdCk9PnU9PT1GJiZGPT09dD91PDg/MTY6dT4yNDg/MjMxOk1hdGgucm91bmQoKHUtOCkvMjQ3KjI0KSsyMzI6MTYrMzYqTWF0aC5yb3VuZCh1LzI1NSo1KSs2Kk1hdGgucm91bmQoRi8yNTUqNSkrTWF0aC5yb3VuZCh0LzI1NSo1KSxlbnVtZXJhYmxlOiExfSxoZXhUb1JnYjp7dmFsdWU6dT0+e2NvbnN0IEY9L1thLWZcXGRdezZ9fFthLWZcXGRdezN9L2kuZXhlYyh1LnRvU3RyaW5nKDE2KSk7aWYoIUYpcmV0dXJuIFswLDAsMF07bGV0W3RdPUY7dC5sZW5ndGg9PT0zJiYodD1bLi4udF0ubWFwKGk9PmkraSkuam9pbihcIlwiKSk7Y29uc3Qgcz1OdW1iZXIucGFyc2VJbnQodCwxNik7cmV0dXJuIFtzPj4xNiYyNTUscz4+OCYyNTUscyYyNTVdfSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2kyNTY6e3ZhbHVlOnU9PnIucmdiVG9BbnNpMjU2KC4uLnIuaGV4VG9SZ2IodSkpLGVudW1lcmFibGU6ITF9LGFuc2kyNTZUb0Fuc2k6e3ZhbHVlOnU9PntpZih1PDgpcmV0dXJuIDMwK3U7aWYodTwxNilyZXR1cm4gOTArKHUtOCk7bGV0IEYsdCxzO2lmKHU+PTIzMilGPSgodS0yMzIpKjEwKzgpLzI1NSx0PUYscz1GO2Vsc2Uge3UtPTE2O2NvbnN0IEM9dSUzNjtGPU1hdGguZmxvb3IodS8zNikvNSx0PU1hdGguZmxvb3IoQy82KS81LHM9QyU2LzU7fWNvbnN0IGk9TWF0aC5tYXgoRix0LHMpKjI7aWYoaT09PTApcmV0dXJuIDMwO2xldCBEPTMwKyhNYXRoLnJvdW5kKHMpPDwyfE1hdGgucm91bmQodCk8PDF8TWF0aC5yb3VuZChGKSk7cmV0dXJuIGk9PT0yJiYoRCs9NjApLER9LGVudW1lcmFibGU6ITF9LHJnYlRvQW5zaTp7dmFsdWU6KHUsRix0KT0+ci5hbnNpMjU2VG9BbnNpKHIucmdiVG9BbnNpMjU2KHUsRix0KSksZW51bWVyYWJsZTohMX0saGV4VG9BbnNpOnt2YWx1ZTp1PT5yLmFuc2kyNTZUb0Fuc2koci5oZXhUb0Fuc2kyNTYodSkpLGVudW1lcmFibGU6ITF9fSkscn1jb25zdCBpRD1zRCgpLHY9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLENEPTM5LHc9XCJcXHgwN1wiLEk9XCJbXCIsckQ9XCJdXCIsUj1cIm1cIix5PWAke3JEfTg7O2AsVj1lPT5gJHt2LnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke0l9JHtlfSR7Un1gLHo9ZT0+YCR7di52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt5fSR7ZX0ke3d9YCxFRD1lPT5lLnNwbGl0KFwiIFwiKS5tYXAodT0+cCh1KSksXz0oZSx1LEYpPT57Y29uc3QgdD1bLi4udV07bGV0IHM9ITEsaT0hMSxEPXAoVChlW2UubGVuZ3RoLTFdKSk7Zm9yKGNvbnN0W0Msb11vZiB0LmVudHJpZXMoKSl7Y29uc3QgRT1wKG8pO2lmKEQrRTw9Rj9lW2UubGVuZ3RoLTFdKz1vOihlLnB1c2gobyksRD0wKSx2LmhhcyhvKSYmKHM9ITAsaT10LnNsaWNlKEMrMSkuam9pbihcIlwiKS5zdGFydHNXaXRoKHkpKSxzKXtpP289PT13JiYocz0hMSxpPSExKTpvPT09UiYmKHM9ITEpO2NvbnRpbnVlfUQrPUUsRD09PUYmJkM8dC5sZW5ndGgtMSYmKGUucHVzaChcIlwiKSxEPTApO30hRCYmZVtlLmxlbmd0aC0xXS5sZW5ndGg+MCYmZS5sZW5ndGg+MSYmKGVbZS5sZW5ndGgtMl0rPWUucG9wKCkpO30sbkQ9ZT0+e2NvbnN0IHU9ZS5zcGxpdChcIiBcIik7bGV0IEY9dS5sZW5ndGg7Zm9yKDtGPjAmJiEocCh1W0YtMV0pPjApOylGLS07cmV0dXJuIEY9PT11Lmxlbmd0aD9lOnUuc2xpY2UoMCxGKS5qb2luKFwiIFwiKSt1LnNsaWNlKEYpLmpvaW4oXCJcIil9LG9EPShlLHUsRj17fSk9PntpZihGLnRyaW0hPT0hMSYmZS50cmltKCk9PT1cIlwiKXJldHVybiBcIlwiO2xldCB0PVwiXCIscyxpO2NvbnN0IEQ9RUQoZSk7bGV0IEM9W1wiXCJdO2Zvcihjb25zdFtFLGFdb2YgZS5zcGxpdChcIiBcIikuZW50cmllcygpKXtGLnRyaW0hPT0hMSYmKENbQy5sZW5ndGgtMV09Q1tDLmxlbmd0aC0xXS50cmltU3RhcnQoKSk7bGV0IG49cChDW0MubGVuZ3RoLTFdKTtpZihFIT09MCYmKG4+PXUmJihGLndvcmRXcmFwPT09ITF8fEYudHJpbT09PSExKSYmKEMucHVzaChcIlwiKSxuPTApLChuPjB8fEYudHJpbT09PSExKSYmKENbQy5sZW5ndGgtMV0rPVwiIFwiLG4rKykpLEYuaGFyZCYmRFtFXT51KXtjb25zdCBCPXUtbixmPTErTWF0aC5mbG9vcigoRFtFXS1CLTEpL3UpO01hdGguZmxvb3IoKERbRV0tMSkvdSk8ZiYmQy5wdXNoKFwiXCIpLF8oQyxhLHUpO2NvbnRpbnVlfWlmKG4rRFtFXT51JiZuPjAmJkRbRV0+MCl7aWYoRi53b3JkV3JhcD09PSExJiZuPHUpe18oQyxhLHUpO2NvbnRpbnVlfUMucHVzaChcIlwiKTt9aWYobitEW0VdPnUmJkYud29yZFdyYXA9PT0hMSl7XyhDLGEsdSk7Y29udGludWV9Q1tDLmxlbmd0aC0xXSs9YTt9Ri50cmltIT09ITEmJihDPUMubWFwKEU9Pm5EKEUpKSk7Y29uc3Qgbz1bLi4uQy5qb2luKGBcbmApXTtmb3IoY29uc3RbRSxhXW9mIG8uZW50cmllcygpKXtpZih0Kz1hLHYuaGFzKGEpKXtjb25zdHtncm91cHM6Qn09bmV3IFJlZ0V4cChgKD86XFxcXCR7SX0oPzxjb2RlPlxcXFxkKyltfFxcXFwke3l9KD88dXJpPi4qKSR7d30pYCkuZXhlYyhvLnNsaWNlKEUpLmpvaW4oXCJcIikpfHx7Z3JvdXBzOnt9fTtpZihCLmNvZGUhPT12b2lkIDApe2NvbnN0IGY9TnVtYmVyLnBhcnNlRmxvYXQoQi5jb2RlKTtzPWY9PT1DRD92b2lkIDA6Zjt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKGk9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPWlELmNvZGVzLmdldChOdW1iZXIocykpO29bRSsxXT09PWBcbmA/KGkmJih0Kz16KFwiXCIpKSxzJiZuJiYodCs9VihuKSkpOmE9PT1gXG5gJiYocyYmbiYmKHQrPVYocykpLGkmJih0Kz16KGkpKSk7fXJldHVybiB0fTtmdW5jdGlvbiBHKGUsdSxGKXtyZXR1cm4gU3RyaW5nKGUpLm5vcm1hbGl6ZSgpLnJlcGxhY2UoL1xcclxcbi9nLGBcbmApLnNwbGl0KGBcbmApLm1hcCh0PT5vRCh0LHUsRikpLmpvaW4oYFxuYCl9Y29uc3QgYUQ9W1widXBcIixcImRvd25cIixcImxlZnRcIixcInJpZ2h0XCIsXCJzcGFjZVwiLFwiZW50ZXJcIixcImNhbmNlbFwiXSxBPXthY3Rpb25zOm5ldyBTZXQoYUQpLGFsaWFzZXM6bmV3IE1hcChbW1wia1wiLFwidXBcIl0sW1wialwiLFwiZG93blwiXSxbXCJoXCIsXCJsZWZ0XCJdLFtcImxcIixcInJpZ2h0XCJdLFtcIlx1MDAwM1wiLFwiY2FuY2VsXCJdLFtcImVzY2FwZVwiLFwiY2FuY2VsXCJdXSl9O2Z1bmN0aW9uIGsoZSx1KXtpZih0eXBlb2YgZT09XCJzdHJpbmdcIilyZXR1cm4gQS5hbGlhc2VzLmdldChlKT09PXU7Zm9yKGNvbnN0IEYgb2YgZSlpZihGIT09dm9pZCAwJiZrKEYsdSkpcmV0dXJuICEwO3JldHVybiAhMX1mdW5jdGlvbiBoRChlLHUpe2lmKGU9PT11KXJldHVybjtjb25zdCBGPWUuc3BsaXQoYFxuYCksdD11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBpPTA7aTxNYXRoLm1heChGLmxlbmd0aCx0Lmxlbmd0aCk7aSsrKUZbaV0hPT10W2ldJiZzLnB1c2goaSk7cmV0dXJuIHN9Z2xvYmFsVGhpcy5wcm9jZXNzLnBsYXRmb3JtLnN0YXJ0c1dpdGgoXCJ3aW5cIik7Y29uc3QgJD1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZChlLHUpe2NvbnN0IEY9ZTtGLmlzVFRZJiZGLnNldFJhd01vZGUodSk7fXZhciBBRD1PYmplY3QuZGVmaW5lUHJvcGVydHkscEQ9KGUsdSxGKT0+dSBpbiBlP0FEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixsPShlLHUsRik9PihwRChlLHR5cGVvZiB1IT1cInN5bWJvbFwiP3UrXCJcIjp1LEYpLEYpO2NsYXNzIHh7Y29uc3RydWN0b3IodSxGPSEwKXtsKHRoaXMsXCJpbnB1dFwiKSxsKHRoaXMsXCJvdXRwdXRcIiksbCh0aGlzLFwiX2Fib3J0U2lnbmFsXCIpLGwodGhpcyxcInJsXCIpLGwodGhpcyxcIm9wdHNcIiksbCh0aGlzLFwiX3JlbmRlclwiKSxsKHRoaXMsXCJfdHJhY2tcIiwhMSksbCh0aGlzLFwiX3ByZXZGcmFtZVwiLFwiXCIpLGwodGhpcyxcIl9zdWJzY3JpYmVyc1wiLG5ldyBNYXApLGwodGhpcyxcIl9jdXJzb3JcIiwwKSxsKHRoaXMsXCJzdGF0ZVwiLFwiaW5pdGlhbFwiKSxsKHRoaXMsXCJlcnJvclwiLFwiXCIpLGwodGhpcyxcInZhbHVlXCIpO2NvbnN0e2lucHV0OnQ9c3RkaW4sb3V0cHV0OnM9c3Rkb3V0LHJlbmRlcjppLHNpZ25hbDpELC4uLkN9PXU7dGhpcy5vcHRzPUMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPWkuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1GLHRoaXMuX2Fib3J0U2lnbmFsPUQsdGhpcy5pbnB1dD10LHRoaXMub3V0cHV0PXM7fXVuc3Vic2NyaWJlKCl7dGhpcy5fc3Vic2NyaWJlcnMuY2xlYXIoKTt9c2V0U3Vic2NyaWJlcih1LEYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXTt0LnB1c2goRiksdGhpcy5fc3Vic2NyaWJlcnMuc2V0KHUsdCk7fW9uKHUsRil7dGhpcy5zZXRTdWJzY3JpYmVyKHUse2NiOkZ9KTt9b25jZSh1LEYpe3RoaXMuc2V0U3Vic2NyaWJlcih1LHtjYjpGLG9uY2U6ITB9KTt9ZW1pdCh1LC4uLkYpe2NvbnN0IHQ9dGhpcy5fc3Vic2NyaWJlcnMuZ2V0KHUpPz9bXSxzPVtdO2Zvcihjb25zdCBpIG9mIHQpaS5jYiguLi5GKSxpLm9uY2UmJnMucHVzaCgoKT0+dC5zcGxpY2UodC5pbmRleE9mKGkpLDEpKTtmb3IoY29uc3QgaSBvZiBzKWkoKTt9cHJvbXB0KCl7cmV0dXJuIG5ldyBQcm9taXNlKCh1LEYpPT57aWYodGhpcy5fYWJvcnRTaWduYWwpe2lmKHRoaXMuX2Fib3J0U2lnbmFsLmFib3J0ZWQpcmV0dXJuIHRoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCksdSgkKTt0aGlzLl9hYm9ydFNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwoKT0+e3RoaXMuc3RhdGU9XCJjYW5jZWxcIix0aGlzLmNsb3NlKCk7fSx7b25jZTohMH0pO31jb25zdCB0PW5ldyBXcml0ZVN0cmVhbSgwKTt0Ll93cml0ZT0ocyxpLEQpPT57dGhpcy5fdHJhY2smJih0aGlzLnZhbHVlPXRoaXMucmw/LmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmw/LmN1cnNvcj8/MCx0aGlzLmVtaXQoXCJ2YWx1ZVwiLHRoaXMudmFsdWUpKSxEKCk7fSx0aGlzLmlucHV0LnBpcGUodCksdGhpcy5ybD1nLmNyZWF0ZUludGVyZmFjZSh7aW5wdXQ6dGhpcy5pbnB1dCxvdXRwdXQ6dCx0YWJTaXplOjIscHJvbXB0OlwiXCIsZXNjYXBlQ29kZVRpbWVvdXQ6NTB9KSxnLmVtaXRLZXlwcmVzc0V2ZW50cyh0aGlzLmlucHV0LHRoaXMucmwpLHRoaXMucmwucHJvbXB0KCksdGhpcy5vcHRzLmluaXRpYWxWYWx1ZSE9PXZvaWQgMCYmdGhpcy5fdHJhY2smJnRoaXMucmwud3JpdGUodGhpcy5vcHRzLmluaXRpYWxWYWx1ZSksdGhpcy5pbnB1dC5vbihcImtleXByZXNzXCIsdGhpcy5vbktleXByZXNzKSxkKHRoaXMuaW5wdXQsITApLHRoaXMub3V0cHV0Lm9uKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLHRoaXMucmVuZGVyKCksdGhpcy5vbmNlKFwic3VibWl0XCIsKCk9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZCh0aGlzLmlucHV0LCExKSx1KHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3Iuc2hvdyksdGhpcy5vdXRwdXQub2ZmKFwicmVzaXplXCIsdGhpcy5yZW5kZXIpLGQodGhpcy5pbnB1dCwhMSksdSgkKTt9KTt9KX1vbktleXByZXNzKHUsRil7aWYodGhpcy5zdGF0ZT09PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksRj8ubmFtZSYmKCF0aGlzLl90cmFjayYmQS5hbGlhc2VzLmhhcyhGLm5hbWUpJiZ0aGlzLmVtaXQoXCJjdXJzb3JcIixBLmFsaWFzZXMuZ2V0KEYubmFtZSkpLEEuYWN0aW9ucy5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsRi5uYW1lKSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdT09PVwiXHRcIiYmdGhpcy5vcHRzLnBsYWNlaG9sZGVyJiYodGhpcy52YWx1ZXx8KHRoaXMucmw/LndyaXRlKHRoaXMub3B0cy5wbGFjZWhvbGRlciksdGhpcy5lbWl0KFwidmFsdWVcIix0aGlzLm9wdHMucGxhY2Vob2xkZXIpKSksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCB0PXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTt0JiYodGhpcy5lcnJvcj10LHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmw/LndyaXRlKHRoaXMudmFsdWUpKTt9dGhpcy5zdGF0ZSE9PVwiZXJyb3JcIiYmKHRoaXMuc3RhdGU9XCJzdWJtaXRcIik7fWsoW3UsRj8ubmFtZSxGPy5zZXF1ZW5jZV0sXCJjYW5jZWxcIikmJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGQodGhpcy5pbnB1dCwhMSksdGhpcy5ybD8uY2xvc2UoKSx0aGlzLnJsPXZvaWQgMCx0aGlzLmVtaXQoYCR7dGhpcy5zdGF0ZX1gLHRoaXMudmFsdWUpLHRoaXMudW5zdWJzY3JpYmUoKTt9cmVzdG9yZUN1cnNvcigpe2NvbnN0IHU9Ryh0aGlzLl9wcmV2RnJhbWUscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pLnNwbGl0KGBcbmApLmxlbmd0aC0xO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoLTk5OSx1Ki0xKSk7fXJlbmRlcigpe2NvbnN0IHU9Ryh0aGlzLl9yZW5kZXIodGhpcyk/P1wiXCIscHJvY2Vzcy5zdGRvdXQuY29sdW1ucyx7aGFyZDohMH0pO2lmKHUhPT10aGlzLl9wcmV2RnJhbWUpe2lmKHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIil0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPWhEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCB0PUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHQpKSx0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmxpbmVzKDEpKTtjb25zdCBzPXUuc3BsaXQoYFxuYCk7dGhpcy5vdXRwdXQud3JpdGUoc1t0XSksdGhpcy5fcHJldkZyYW1lPXUsdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLXQtMSkpO3JldHVybn1pZihGJiZGPy5sZW5ndGg+MSl7Y29uc3QgdD1GWzBdO3RoaXMub3V0cHV0LndyaXRlKHNyY0V4cG9ydHMuY3Vyc29yLm1vdmUoMCx0KSksdGhpcy5vdXRwdXQud3JpdGUoc3JjRXhwb3J0cy5lcmFzZS5kb3duKCkpO2NvbnN0IHM9dS5zcGxpdChgXG5gKS5zbGljZSh0KTt0aGlzLm91dHB1dC53cml0ZShzLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmVyYXNlLmRvd24oKSk7fXRoaXMub3V0cHV0LndyaXRlKHUpLHRoaXMuc3RhdGU9PT1cImluaXRpYWxcIiYmKHRoaXMuc3RhdGU9XCJhY3RpdmVcIiksdGhpcy5fcHJldkZyYW1lPXU7fX19Y2xhc3MgZkQgZXh0ZW5kcyB4e2dldCBjdXJzb3IoKXtyZXR1cm4gdGhpcy52YWx1ZT8wOjF9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLmN1cnNvcj09PTB9Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSksdGhpcy52YWx1ZT0hIXUuaW5pdGlhbFZhbHVlLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57dGhpcy52YWx1ZT10aGlzLl92YWx1ZTt9KSx0aGlzLm9uKFwiY29uZmlybVwiLEY9Pnt0aGlzLm91dHB1dC53cml0ZShzcmNFeHBvcnRzLmN1cnNvci5tb3ZlKDAsLTEpKSx0aGlzLnZhbHVlPUYsdGhpcy5zdGF0ZT1cInN1Ym1pdFwiLHRoaXMuY2xvc2UoKTt9KSx0aGlzLm9uKFwiY3Vyc29yXCIsKCk9Pnt0aGlzLnZhbHVlPSF0aGlzLnZhbHVlO30pO319dmFyIGJEPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxtRD0oZSx1LEYpPT51IGluIGU/YkQoZSx1LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpGfSk6ZVt1XT1GLFk9KGUsdSxGKT0+KG1EKGUsdHlwZW9mIHUhPVwic3ltYm9sXCI/dStcIlwiOnUsRiksRik7bGV0IHdEPWNsYXNzIGV4dGVuZHMgeHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSxZKHRoaXMsXCJvcHRpb25zXCIpLFkodGhpcyxcImN1cnNvclwiLDApLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fTt2YXIgJEQ9T2JqZWN0LmRlZmluZVByb3BlcnR5LFNEPShlLHUsRik9PnUgaW4gZT8kRChlLHUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkZ9KTplW3VdPUYscT0oZSx1LEYpPT4oU0QoZSx0eXBlb2YgdSE9XCJzeW1ib2xcIj91K1wiXCI6dSxGKSxGKTtjbGFzcyBqRCBleHRlbmRzIHh7Y29uc3RydWN0b3IodSl7c3VwZXIodSwhMSkscSh0aGlzLFwib3B0aW9uc1wiKSxxKHRoaXMsXCJjdXJzb3JcIiwwKSx0aGlzLm9wdGlvbnM9dS5vcHRpb25zLHRoaXMuY3Vyc29yPXRoaXMub3B0aW9ucy5maW5kSW5kZXgoKHt2YWx1ZTpGfSk9PkY9PT11LmluaXRpYWxWYWx1ZSksdGhpcy5jdXJzb3I9PT0tMSYmKHRoaXMuY3Vyc29yPTApLHRoaXMuY2hhbmdlVmFsdWUoKSx0aGlzLm9uKFwiY3Vyc29yXCIsRj0+e3N3aXRjaChGKXtjYXNlXCJsZWZ0XCI6Y2FzZVwidXBcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PTA/dGhpcy5vcHRpb25zLmxlbmd0aC0xOnRoaXMuY3Vyc29yLTE7YnJlYWs7Y2FzZVwiZG93blwiOmNhc2VcInJpZ2h0XCI6dGhpcy5jdXJzb3I9dGhpcy5jdXJzb3I9PT10aGlzLm9wdGlvbnMubGVuZ3RoLTE/MDp0aGlzLmN1cnNvcisxO2JyZWFrfXRoaXMuY2hhbmdlVmFsdWUoKTt9KTt9Z2V0IF92YWx1ZSgpe3JldHVybiB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdfWNoYW5nZVZhbHVlKCl7dGhpcy52YWx1ZT10aGlzLl92YWx1ZS52YWx1ZTt9fXZhciBQRD1PYmplY3QuZGVmaW5lUHJvcGVydHksTEQ9KGUsdSxGKT0+dSBpbiBlP1BEKGUsdSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Rn0pOmVbdV09RixXRD0oZSx1LEYpPT4oTEQoZSx1K1wiXCIsRiksRik7Y2xhc3MgTkQgZXh0ZW5kcyB4e2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLFdEKHRoaXMsXCJ2YWx1ZVdpdGhDdXJzb3JcIixcIlwiKSx0aGlzLm9uKFwiZmluYWxpemVcIiwoKT0+e3RoaXMudmFsdWV8fCh0aGlzLnZhbHVlPXUuZGVmYXVsdFZhbHVlKSx0aGlzLnZhbHVlV2l0aEN1cnNvcj10aGlzLnZhbHVlO30pLHRoaXMub24oXCJ2YWx1ZVwiLCgpPT57aWYodGhpcy5jdXJzb3I+PXRoaXMudmFsdWUubGVuZ3RoKXRoaXMudmFsdWVXaXRoQ3Vyc29yPWAke3RoaXMudmFsdWV9JHtjLmludmVyc2UoYy5oaWRkZW4oXCJfXCIpKX1gO2Vsc2Uge2NvbnN0IEY9dGhpcy52YWx1ZS5zbGljZSgwLHRoaXMuY3Vyc29yKSx0PXRoaXMudmFsdWUuc2xpY2UodGhpcy5jdXJzb3IpO3RoaXMudmFsdWVXaXRoQ3Vyc29yPWAke0Z9JHtjLmludmVyc2UodFswXSl9JHt0LnNsaWNlKDEpfWA7fX0pO31nZXQgY3Vyc29yKCl7cmV0dXJuIHRoaXMuX2N1cnNvcn19XG5cbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBTX1NURVBfQUNUSVZFID0gcyhcIlxcdTI3NkZcIiwgXCI+XCIpO1xuY29uc3QgU19TVEVQX0NBTkNFTCA9IHMoXCJcXHUyNUEwXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9FUlJPUiA9IHMoXCJcXHUyNUIyXCIsIFwieFwiKTtcbmNvbnN0IFNfU1RFUF9TVUJNSVQgPSBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIik7XG5jb25zdCBTX0JBUiA9IFwiXCI7XG5jb25zdCBTX0JBUl9FTkQgPSBcIlwiO1xuY29uc3QgU19SQURJT19BQ1RJVkUgPSBzKFwiXFx1MjVDRlwiLCBcIj5cIik7XG5jb25zdCBTX1JBRElPX0lOQUNUSVZFID0gcyhcIlxcdTI1Q0JcIiwgXCIgXCIpO1xuY29uc3QgU19DSEVDS0JPWF9BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIltcXHUyMDIyXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfU0VMRUNURUQgPSBzKFwiXFx1MjVGQ1wiLCBcIlsrXVwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfSU5BQ1RJVkUgPSBzKFwiXFx1MjVGQlwiLCBcIlsgXVwiKTtcbmNvbnN0IHN5bWJvbCA9IChzdGF0ZSkgPT4ge1xuICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgY2FzZSBcImluaXRpYWxcIjpcbiAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuY3lhbihTX1NURVBfQUNUSVZFKTtcbiAgICB9XG4gICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnJlZChTX1NURVBfQ0FOQ0VMKTtcbiAgICB9XG4gICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMueWVsbG93KFNfU1RFUF9FUlJPUik7XG4gICAgfVxuICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5ncmVlbihTX1NURVBfU1VCTUlUKTtcbiAgICB9XG4gIH1cbn07XG5jb25zdCB0ZXh0ID0gKG9wdHMpID0+IHtcbiAgcmV0dXJuIG5ldyBORCh7XG4gICAgdmFsaWRhdGU6IG9wdHMudmFsaWRhdGUsXG4gICAgcGxhY2Vob2xkZXI6IG9wdHMucGxhY2Vob2xkZXIsXG4gICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHRWYWx1ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gb3B0cy5wbGFjZWhvbGRlciA/IGNvbG9ycy5pbnZlcnNlKG9wdHMucGxhY2Vob2xkZXJbMF0pICsgY29sb3JzLmRpbShvcHRzLnBsYWNlaG9sZGVyLnNsaWNlKDEpKSA6IGNvbG9ycy5pbnZlcnNlKGNvbG9ycy5oaWRkZW4oXCJfXCIpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWVXaXRoQ3Vyc29yIDogcGxhY2Vob2xkZXI7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGUudHJpbSgpfVxuJHtjb2xvcnMueWVsbG93KFxuICAgICAgICAgICAgU19CQVJcbiAgICAgICAgICApfSAke3ZhbHVlfVxuJHtjb2xvcnMueWVsbG93KFNfQkFSX0VORCl9ICR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIHRoaXMuZXJyb3JcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbShcbiAgICAgICAgICAgIHRoaXMudmFsdWUgfHwgb3B0cy5wbGFjZWhvbGRlclxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHRoaXMudmFsdWUgPz8gXCJcIilcbiAgICAgICAgICApfSR7dGhpcy52YWx1ZT8udHJpbSgpID8gXCJcXG5cIiArIGNvbG9ycy5ncmF5KFNfQkFSKSA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3ZhbHVlfVxuJHtjb2xvcnMuY3lhbihcbiAgICAgICAgICAgIFNfQkFSX0VORFxuICAgICAgICAgICl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBjb25maXJtID0gKG9wdHMpID0+IHtcbiAgY29uc3QgYWN0aXZlID0gb3B0cy5hY3RpdmUgPz8gXCJZZXNcIjtcbiAgY29uc3QgaW5hY3RpdmUgPSBvcHRzLmluYWN0aXZlID8/IFwiTm9cIjtcbiAgcmV0dXJuIG5ldyBmRCh7XG4gICAgYWN0aXZlLFxuICAgIGluYWN0aXZlLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUgPz8gdHJ1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyBhY3RpdmUgOiBpbmFjdGl2ZTtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLmRpbSh2YWx1ZSl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7Y29sb3JzLnN0cmlrZXRocm91Z2goXG4gICAgICAgICAgICBjb2xvcnMuZGltKHZhbHVlKVxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy52YWx1ZSA/IGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7YWN0aXZlfWAgOiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oYWN0aXZlKX1gfSAke2NvbG9ycy5kaW0oXCIvXCIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0oaW5hY3RpdmUpfWAgOiBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2luYWN0aXZlfWB9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBzZWxlY3QgPSAob3B0cykgPT4ge1xuICBjb25zdCBvcHQgPSAob3B0aW9uLCBzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGxhYmVsID0gb3B0aW9uLmxhYmVsID8/IFN0cmluZyhvcHRpb24udmFsdWUpO1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgXCJhY3RpdmVcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZGltKGxhYmVsKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNhbmNlbGxlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuc3RyaWtldGhyb3VnaChjb2xvcnMuZGltKGxhYmVsKSl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19SQURJT19JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyBqRCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsVmFsdWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJzZWxlY3RlZFwiXG4gICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtvcHQoXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNbdGhpcy5jdXJzb3JdLFxuICAgICAgICAgICAgXCJjYW5jZWxsZWRcIlxuICAgICAgICAgICl9XG4ke2NvbG9ycy5ncmF5KFNfQkFSKX1gO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuY3lhbihTX0JBUil9ICR7dGhpcy5vcHRpb25zLm1hcChcbiAgICAgICAgICAgIChvcHRpb24sIGkpID0+IG9wdChvcHRpb24sIGkgPT09IHRoaXMuY3Vyc29yID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIilcbiAgICAgICAgICApLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcbmNvbnN0IG11bHRpc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5jeWFuKFNfQ0hFQ0tCT1hfQUNUSVZFKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiYWN0aXZlLXNlbGVjdGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX0NIRUNLQk9YX1NFTEVDVEVEKX0gJHtsYWJlbH0gJHtvcHRpb24uaGludCA/IGNvbG9ycy5kaW0oYCgke29wdGlvbi5oaW50fSlgKSA6IFwiXCJ9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJzdWJtaXR0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGAke2NvbG9ycy5kaW0oU19DSEVDS0JPWF9JTkFDVElWRSl9ICR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgfTtcbiAgcmV0dXJuIG5ldyB3RCh7XG4gICAgb3B0aW9uczogb3B0cy5vcHRpb25zLFxuICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFZhbHVlcyxcbiAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCA/PyB0cnVlLFxuICAgIGN1cnNvckF0OiBvcHRzLmN1cnNvckF0LFxuICAgIHZhbGlkYXRlKHNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiBzZWxlY3RlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGBQbGVhc2Ugc2VsZWN0IGF0IGxlYXN0IG9uZSBvcHRpb24uXG4ke2NvbG9ycy5yZXNldChcbiAgICAgICAgICBjb2xvcnMuZGltKFxuICAgICAgICAgICAgYFByZXNzICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIHNwYWNlIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHNlbGVjdCwgJHtjb2xvcnMuZ3JheShcbiAgICAgICAgICAgICAgY29sb3JzLmJnV2hpdGUoY29sb3JzLmludmVyc2UoXCIgZW50ZXIgXCIpKVxuICAgICAgICAgICAgKX0gdG8gc3VibWl0YFxuICAgICAgICAgIClcbiAgICAgICAgKX1gO1xuICAgICAgfVxuICAgIH0sXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHRoaXMudmFsdWUuaW5jbHVkZXModmFsdWUpKS5tYXAoKG9wdGlvbikgPT4gb3B0KG9wdGlvbiwgXCJzdWJtaXR0ZWRcIikpLmpvaW4oY29sb3JzLmRpbShcIiwgXCIpKSB8fCBjb2xvcnMuZGltKFwibm9uZVwiKX1gO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwiY2FuY2VsbGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSk7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2xhYmVsLnRyaW0oKSA/IGAke2xhYmVsfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YCA6IFwiXCJ9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiZXJyb3JcIjoge1xuICAgICAgICAgIGNvbnN0IGZvb3RlciA9IHRoaXMuZXJyb3Iuc3BsaXQoXCJcXG5cIikubWFwKFxuICAgICAgICAgICAgKGxuLCBpKSA9PiBpID09PSAwID8gYCR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3cobG4pfWAgOiBgICAgJHtsbn1gXG4gICAgICAgICAgKS5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgIHJldHVybiB0aXRsZSArIGNvbG9ycy55ZWxsb3coU19CQVIpICsgXCIgIFwiICsgdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uLCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMudmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGkgPT09IHRoaXMuY3Vyc29yO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZSAmJiBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJhY3RpdmUtc2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgYWN0aXZlID8gXCJhY3RpdmVcIiA6IFwiaW5hY3RpdmVcIik7XG4gICAgICAgICAgfSkuam9pbihgXG4ke2NvbG9ycy55ZWxsb3coU19CQVIpfSAgYCkgKyBcIlxcblwiICsgZm9vdGVyICsgXCJcXG5cIjtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMuY3lhbihTX0JBUil9ICBgKX1cbiR7Y29sb3JzLmN5YW4oU19CQVJfRU5EKX1cbmA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pLnByb21wdCgpO1xufTtcblxuY29uc3Qga0NhbmNlbCA9IFN5bWJvbC5mb3IoXCJjYW5jZWxcIik7XG5hc3luYyBmdW5jdGlvbiBwcm9tcHQobWVzc2FnZSwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGhhbmRsZUNhbmNlbCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3ltYm9sXCIgfHwgdmFsdWUudG9TdHJpbmcoKSAhPT0gXCJTeW1ib2woY2xhY2s6Y2FuY2VsKVwiKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHN3aXRjaCAob3B0cy5jYW5jZWwpIHtcbiAgICAgIGNhc2UgXCJyZWplY3RcIjoge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcIlByb21wdCBjYW5jZWxsZWQuXCIpO1xuICAgICAgICBlcnJvci5uYW1lID0gXCJDb25zb2xhUHJvbXB0Q2FuY2VsbGVkRXJyb3JcIjtcbiAgICAgICAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgICAgICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UoZXJyb3IsIHByb21wdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjYXNlIFwidW5kZWZpbmVkXCI6IHtcbiAgICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJudWxsXCI6IHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3ltYm9sXCI6IHtcbiAgICAgICAgcmV0dXJuIGtDYW5jZWw7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSBcImRlZmF1bHRcIjoge1xuICAgICAgICByZXR1cm4gb3B0cy5kZWZhdWx0ID8/IG9wdHMuaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGlmICghb3B0cy50eXBlIHx8IG9wdHMudHlwZSA9PT0gXCJ0ZXh0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgdGV4dCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgZGVmYXVsdFZhbHVlOiBvcHRzLmRlZmF1bHQsXG4gICAgICBwbGFjZWhvbGRlcjogb3B0cy5wbGFjZWhvbGRlcixcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwiY29uZmlybVwiKSB7XG4gICAgcmV0dXJuIGF3YWl0IGNvbmZpcm0oe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKSxcbiAgICAgIGluaXRpYWxWYWx1ZTogb3B0cy5pbml0aWFsXG4gICAgfSkudGhlbihoYW5kbGVDYW5jZWwpO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZCxcbiAgICAgIGluaXRpYWxWYWx1ZXM6IG9wdHMuaW5pdGlhbFxuICAgIH0pLnRoZW4oaGFuZGxlQ2FuY2VsKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvbXB0IHR5cGU6ICR7b3B0cy50eXBlfWApO1xufVxuXG5leHBvcnQgeyBrQ2FuY2VsLCBwcm9tcHQgfTtcbiIsICJpbXBvcnQgeyBjcmVhdGVDb25zb2xhIGFzIGNyZWF0ZUNvbnNvbGEkMSwgTG9nTGV2ZWxzIH0gZnJvbSAnLi4vY29yZS5tanMnO1xuaW1wb3J0IHsgQiBhcyBCYXNpY1JlcG9ydGVyLCBwIGFzIHBhcnNlU3RhY2sgfSBmcm9tICcuL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCBwcm9jZXNzJDEgZnJvbSAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCB7IGQgYXMgY29sb3JzLCBiIGFzIGJveCwgcyBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4vY29uc29sYS5DQmk2Tm05cy5tanMnO1xuXG5jb25zdCByPU9iamVjdC5jcmVhdGUobnVsbCksaT1lPT5nbG9iYWxUaGlzLnByb2Nlc3M/LmVudnx8aW1wb3J0Lm1ldGEuZW52fHxnbG9iYWxUaGlzLkRlbm8/LmVudi50b09iamVjdCgpfHxnbG9iYWxUaGlzLl9fZW52X198fChlP3I6Z2xvYmFsVGhpcykscyQxPW5ldyBQcm94eShyLHtnZXQoZSxvKXtyZXR1cm4gaSgpW29dPz9yW29dfSxoYXMoZSxvKXtjb25zdCBFPWkoKTtyZXR1cm4gbyBpbiBFfHxvIGluIHJ9LHNldChlLG8sRSl7Y29uc3QgYj1pKCEwKTtyZXR1cm4gYltvXT1FLCEwfSxkZWxldGVQcm9wZXJ0eShlLG8pe2lmKCFvKXJldHVybiAhMTtjb25zdCBFPWkoITApO3JldHVybiBkZWxldGUgRVtvXSwhMH0sb3duS2V5cygpe2NvbnN0IGU9aSghMCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpfX0pLHQ9dHlwZW9mIHByb2Nlc3M8XCJ1XCImJnByb2Nlc3MuZW52JiZwcm9jZXNzLmVudi5OT0RFX0VOVnx8XCJcIixCPVtbXCJBUFBWRVlPUlwiXSxbXCJBV1NfQU1QTElGWVwiLFwiQVdTX0FQUF9JRFwiLHtjaTohMH1dLFtcIkFaVVJFX1BJUEVMSU5FU1wiLFwiU1lTVEVNX1RFQU1GT1VOREFUSU9OQ09MTEVDVElPTlVSSVwiXSxbXCJBWlVSRV9TVEFUSUNcIixcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sW1wiQVBQQ0lSQ0xFXCIsXCJBQ19BUFBDSVJDTEVcIl0sW1wiQkFNQk9PXCIsXCJiYW1ib29fcGxhbktleVwiXSxbXCJCSVRCVUNLRVRcIixcIkJJVEJVQ0tFVF9DT01NSVRcIl0sW1wiQklUUklTRVwiLFwiQklUUklTRV9JT1wiXSxbXCJCVUREWVwiLFwiQlVERFlfV09SS1NQQUNFX0lEXCJdLFtcIkJVSUxES0lURVwiXSxbXCJDSVJDTEVcIixcIkNJUkNMRUNJXCJdLFtcIkNJUlJVU1wiLFwiQ0lSUlVTX0NJXCJdLFtcIkNMT1VERkxBUkVfUEFHRVNcIixcIkNGX1BBR0VTXCIse2NpOiEwfV0sW1wiQ09ERUJVSUxEXCIsXCJDT0RFQlVJTERfQlVJTERfQVJOXCJdLFtcIkNPREVGUkVTSFwiLFwiQ0ZfQlVJTERfSURcIl0sW1wiRFJPTkVcIl0sW1wiRFJPTkVcIixcIkRST05FX0JVSUxEX0VWRU5UXCJdLFtcIkRTQVJJXCJdLFtcIkdJVEhVQl9BQ1RJT05TXCJdLFtcIkdJVExBQlwiLFwiR0lUTEFCX0NJXCJdLFtcIkdJVExBQlwiLFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxbXCJHT0NEXCIsXCJHT19QSVBFTElORV9MQUJFTFwiXSxbXCJMQVlFUkNJXCJdLFtcIkhVRFNPTlwiLFwiSFVEU09OX1VSTFwiXSxbXCJKRU5LSU5TXCIsXCJKRU5LSU5TX1VSTFwiXSxbXCJNQUdOVU1cIl0sW1wiTkVUTElGWVwiXSxbXCJORVRMSUZZXCIsXCJORVRMSUZZX0xPQ0FMXCIse2NpOiExfV0sW1wiTkVWRVJDT0RFXCJdLFtcIlJFTkRFUlwiXSxbXCJTQUlMXCIsXCJTQUlMQ0lcIl0sW1wiU0VNQVBIT1JFXCJdLFtcIlNDUkVXRFJJVkVSXCJdLFtcIlNISVBQQUJMRVwiXSxbXCJTT0xBTk9cIixcIlRERElVTVwiXSxbXCJTVFJJREVSXCJdLFtcIlRFQU1DSVRZXCIsXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFtcIlRSQVZJU1wiXSxbXCJWRVJDRUxcIixcIk5PV19CVUlMREVSXCJdLFtcIlZFUkNFTFwiLFwiVkVSQ0VMXCIse2NpOiExfV0sW1wiVkVSQ0VMXCIsXCJWRVJDRUxfRU5WXCIse2NpOiExfV0sW1wiQVBQQ0VOVEVSXCIsXCJBUFBDRU5URVJfQlVJTERfSURcIl0sW1wiQ09ERVNBTkRCT1hcIixcIkNPREVTQU5EQk9YX1NTRVwiLHtjaTohMX1dLFtcIlNUQUNLQkxJVFpcIl0sW1wiU1RPUk1LSVRcIl0sW1wiQ0xFQVZSXCJdLFtcIlpFQUJVUlwiXSxbXCJDT0RFU1BIRVJFXCIsXCJDT0RFU1BIRVJFX0FQUF9JRFwiLHtjaTohMH1dLFtcIlJBSUxXQVlcIixcIlJBSUxXQVlfUFJPSkVDVF9JRFwiXSxbXCJSQUlMV0FZXCIsXCJSQUlMV0FZX1NFUlZJQ0VfSURcIl0sW1wiREVOTy1ERVBMT1lcIixcIkRFTk9fREVQTE9ZTUVOVF9JRFwiXSxbXCJGSVJFQkFTRV9BUFBfSE9TVElOR1wiLFwiRklSRUJBU0VfQVBQX0hPU1RJTkdcIix7Y2k6ITB9XV07ZnVuY3Rpb24gcCgpe2lmKGdsb2JhbFRoaXMucHJvY2Vzcz8uZW52KWZvcihjb25zdCBlIG9mIEIpe2NvbnN0IG89ZVsxXXx8ZVswXTtpZihnbG9iYWxUaGlzLnByb2Nlc3M/LmVudltvXSlyZXR1cm4ge25hbWU6ZVswXS50b0xvd2VyQ2FzZSgpLC4uLmVbMl19fXJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3M/LmVudj8uU0hFTEw9PT1cIi9iaW4vanNoXCImJmdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LndlYmNvbnRhaW5lcj97bmFtZTpcInN0YWNrYmxpdHpcIixjaTohMX06e25hbWU6XCJcIixjaTohMX19Y29uc3QgbD1wKCk7bC5uYW1lO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGU/ZSE9PVwiZmFsc2VcIjohMX1jb25zdCBJPWdsb2JhbFRoaXMucHJvY2Vzcz8ucGxhdGZvcm18fFwiXCIsVD1uKHMkMS5DSSl8fGwuY2khPT0hMSxSPW4oZ2xvYmFsVGhpcy5wcm9jZXNzPy5zdGRvdXQmJmdsb2JhbFRoaXMucHJvY2Vzcz8uc3Rkb3V0LmlzVFRZKSxVPW4ocyQxLkRFQlVHKSxBPXQ9PT1cInRlc3RcInx8bihzJDEuVEVTVCk7bihzJDEuTUlOSU1BTCl8fFR8fEF8fCFSO2NvbnN0IF89L153aW4vaS50ZXN0KEkpOyFuKHMkMS5OT19DT0xPUikmJihuKHMkMS5GT1JDRV9DT0xPUil8fChSfHxfKSYmcyQxLlRFUk0hPT1cImR1bWJcInx8VCk7Y29uc3QgQz0oZ2xvYmFsVGhpcy5wcm9jZXNzPy52ZXJzaW9ucz8ubm9kZXx8XCJcIikucmVwbGFjZSgvXnYvLFwiXCIpfHxudWxsO051bWJlcihDPy5zcGxpdChcIi5cIilbMF0pfHxudWxsO2NvbnN0IHk9Z2xvYmFsVGhpcy5wcm9jZXNzfHxPYmplY3QuY3JlYXRlKG51bGwpLGM9e3ZlcnNpb25zOnt9fTtuZXcgUHJveHkoeSx7Z2V0KGUsbyl7aWYobz09PVwiZW52XCIpcmV0dXJuIHMkMTtpZihvIGluIGUpcmV0dXJuIGVbb107aWYobyBpbiBjKXJldHVybiBjW29dfX0pO2NvbnN0IEw9Z2xvYmFsVGhpcy5wcm9jZXNzPy5yZWxlYXNlPy5uYW1lPT09XCJub2RlXCIsYT0hIWdsb2JhbFRoaXMuQnVufHwhIWdsb2JhbFRoaXMucHJvY2Vzcz8udmVyc2lvbnM/LmJ1bixEPSEhZ2xvYmFsVGhpcy5EZW5vLE89ISFnbG9iYWxUaGlzLmZhc3RseSxTPSEhZ2xvYmFsVGhpcy5OZXRsaWZ5LE49ISFnbG9iYWxUaGlzLkVkZ2VSdW50aW1lLFA9Z2xvYmFsVGhpcy5uYXZpZ2F0b3I/LnVzZXJBZ2VudD09PVwiQ2xvdWRmbGFyZS1Xb3JrZXJzXCIsRj1bW1MsXCJuZXRsaWZ5XCJdLFtOLFwiZWRnZS1saWdodFwiXSxbUCxcIndvcmtlcmRcIl0sW08sXCJmYXN0bHlcIl0sW0QsXCJkZW5vXCJdLFthLFwiYnVuXCJdLFtMLFwibm9kZVwiXV07ZnVuY3Rpb24gRygpe2NvbnN0IGU9Ri5maW5kKG89Pm9bMF0pO2lmKGUpcmV0dXJuIHtuYW1lOmVbMV19fWNvbnN0IHU9RygpO3U/Lm5hbWV8fFwiXCI7XG5cbmZ1bmN0aW9uIGFuc2lSZWdleCh7b25seUZpcnN0ID0gZmFsc2V9ID0ge30pIHtcblx0Ly8gVmFsaWQgc3RyaW5nIHRlcm1pbmF0b3Igc2VxdWVuY2VzIGFyZSBCRUwsIEVTQ1xcLCBhbmQgMHg5Y1xuXHRjb25zdCBTVCA9ICcoPzpcXFxcdTAwMDd8XFxcXHUwMDFCXFxcXHUwMDVDfFxcXFx1MDA5QyknO1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHRcdGBbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT8ke1NUfSlgLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKScsXG5cdF0uam9pbignfCcpO1xuXG5cdHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIG9ubHlGaXJzdCA/IHVuZGVmaW5lZCA6ICdnJyk7XG59XG5cbmNvbnN0IHJlZ2V4ID0gYW5zaVJlZ2V4KCk7XG5cbmZ1bmN0aW9uIHN0cmlwQW5zaShzdHJpbmcpIHtcblx0aWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG5cdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYSBcXGBzdHJpbmdcXGAsIGdvdCBcXGAke3R5cGVvZiBzdHJpbmd9XFxgYCk7XG5cdH1cblxuXHQvLyBFdmVuIHRob3VnaCB0aGUgcmVnZXggaXMgZ2xvYmFsLCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoZSBgLmxhc3RJbmRleGBcblx0Ly8gYmVjYXVzZSB1bmxpa2UgYC5leGVjKClgIGFuZCBgLnRlc3QoKWAsIGAucmVwbGFjZSgpYCBkb2VzIGl0IGF1dG9tYXRpY2FsbHlcblx0Ly8gYW5kIGRvaW5nIGl0IG1hbnVhbGx5IGhhcyBhIHBlcmZvcm1hbmNlIHBlbmFsdHkuXG5cdHJldHVybiBzdHJpbmcucmVwbGFjZShyZWdleCwgJycpO1xufVxuXG4vLyBHZW5lcmF0ZWQgY29kZS5cblxuZnVuY3Rpb24gaXNBbWJpZ3VvdXMoeCkge1xuXHRyZXR1cm4geCA9PT0gMHhBMVxuXHRcdHx8IHggPT09IDB4QTRcblx0XHR8fCB4ID09PSAweEE3XG5cdFx0fHwgeCA9PT0gMHhBOFxuXHRcdHx8IHggPT09IDB4QUFcblx0XHR8fCB4ID09PSAweEFEXG5cdFx0fHwgeCA9PT0gMHhBRVxuXHRcdHx8IHggPj0gMHhCMCAmJiB4IDw9IDB4QjRcblx0XHR8fCB4ID49IDB4QjYgJiYgeCA8PSAweEJBXG5cdFx0fHwgeCA+PSAweEJDICYmIHggPD0gMHhCRlxuXHRcdHx8IHggPT09IDB4QzZcblx0XHR8fCB4ID09PSAweEQwXG5cdFx0fHwgeCA9PT0gMHhEN1xuXHRcdHx8IHggPT09IDB4RDhcblx0XHR8fCB4ID49IDB4REUgJiYgeCA8PSAweEUxXG5cdFx0fHwgeCA9PT0gMHhFNlxuXHRcdHx8IHggPj0gMHhFOCAmJiB4IDw9IDB4RUFcblx0XHR8fCB4ID09PSAweEVDXG5cdFx0fHwgeCA9PT0gMHhFRFxuXHRcdHx8IHggPT09IDB4RjBcblx0XHR8fCB4ID09PSAweEYyXG5cdFx0fHwgeCA9PT0gMHhGM1xuXHRcdHx8IHggPj0gMHhGNyAmJiB4IDw9IDB4RkFcblx0XHR8fCB4ID09PSAweEZDXG5cdFx0fHwgeCA9PT0gMHhGRVxuXHRcdHx8IHggPT09IDB4MTAxXG5cdFx0fHwgeCA9PT0gMHgxMTFcblx0XHR8fCB4ID09PSAweDExM1xuXHRcdHx8IHggPT09IDB4MTFCXG5cdFx0fHwgeCA9PT0gMHgxMjZcblx0XHR8fCB4ID09PSAweDEyN1xuXHRcdHx8IHggPT09IDB4MTJCXG5cdFx0fHwgeCA+PSAweDEzMSAmJiB4IDw9IDB4MTMzXG5cdFx0fHwgeCA9PT0gMHgxMzhcblx0XHR8fCB4ID49IDB4MTNGICYmIHggPD0gMHgxNDJcblx0XHR8fCB4ID09PSAweDE0NFxuXHRcdHx8IHggPj0gMHgxNDggJiYgeCA8PSAweDE0QlxuXHRcdHx8IHggPT09IDB4MTREXG5cdFx0fHwgeCA9PT0gMHgxNTJcblx0XHR8fCB4ID09PSAweDE1M1xuXHRcdHx8IHggPT09IDB4MTY2XG5cdFx0fHwgeCA9PT0gMHgxNjdcblx0XHR8fCB4ID09PSAweDE2QlxuXHRcdHx8IHggPT09IDB4MUNFXG5cdFx0fHwgeCA9PT0gMHgxRDBcblx0XHR8fCB4ID09PSAweDFEMlxuXHRcdHx8IHggPT09IDB4MUQ0XG5cdFx0fHwgeCA9PT0gMHgxRDZcblx0XHR8fCB4ID09PSAweDFEOFxuXHRcdHx8IHggPT09IDB4MURBXG5cdFx0fHwgeCA9PT0gMHgxRENcblx0XHR8fCB4ID09PSAweDI1MVxuXHRcdHx8IHggPT09IDB4MjYxXG5cdFx0fHwgeCA9PT0gMHgyQzRcblx0XHR8fCB4ID09PSAweDJDN1xuXHRcdHx8IHggPj0gMHgyQzkgJiYgeCA8PSAweDJDQlxuXHRcdHx8IHggPT09IDB4MkNEXG5cdFx0fHwgeCA9PT0gMHgyRDBcblx0XHR8fCB4ID49IDB4MkQ4ICYmIHggPD0gMHgyREJcblx0XHR8fCB4ID09PSAweDJERFxuXHRcdHx8IHggPT09IDB4MkRGXG5cdFx0fHwgeCA+PSAweDMwMCAmJiB4IDw9IDB4MzZGXG5cdFx0fHwgeCA+PSAweDM5MSAmJiB4IDw9IDB4M0ExXG5cdFx0fHwgeCA+PSAweDNBMyAmJiB4IDw9IDB4M0E5XG5cdFx0fHwgeCA+PSAweDNCMSAmJiB4IDw9IDB4M0MxXG5cdFx0fHwgeCA+PSAweDNDMyAmJiB4IDw9IDB4M0M5XG5cdFx0fHwgeCA9PT0gMHg0MDFcblx0XHR8fCB4ID49IDB4NDEwICYmIHggPD0gMHg0NEZcblx0XHR8fCB4ID09PSAweDQ1MVxuXHRcdHx8IHggPT09IDB4MjAxMFxuXHRcdHx8IHggPj0gMHgyMDEzICYmIHggPD0gMHgyMDE2XG5cdFx0fHwgeCA9PT0gMHgyMDE4XG5cdFx0fHwgeCA9PT0gMHgyMDE5XG5cdFx0fHwgeCA9PT0gMHgyMDFDXG5cdFx0fHwgeCA9PT0gMHgyMDFEXG5cdFx0fHwgeCA+PSAweDIwMjAgJiYgeCA8PSAweDIwMjJcblx0XHR8fCB4ID49IDB4MjAyNCAmJiB4IDw9IDB4MjAyN1xuXHRcdHx8IHggPT09IDB4MjAzMFxuXHRcdHx8IHggPT09IDB4MjAzMlxuXHRcdHx8IHggPT09IDB4MjAzM1xuXHRcdHx8IHggPT09IDB4MjAzNVxuXHRcdHx8IHggPT09IDB4MjAzQlxuXHRcdHx8IHggPT09IDB4MjAzRVxuXHRcdHx8IHggPT09IDB4MjA3NFxuXHRcdHx8IHggPT09IDB4MjA3RlxuXHRcdHx8IHggPj0gMHgyMDgxICYmIHggPD0gMHgyMDg0XG5cdFx0fHwgeCA9PT0gMHgyMEFDXG5cdFx0fHwgeCA9PT0gMHgyMTAzXG5cdFx0fHwgeCA9PT0gMHgyMTA1XG5cdFx0fHwgeCA9PT0gMHgyMTA5XG5cdFx0fHwgeCA9PT0gMHgyMTEzXG5cdFx0fHwgeCA9PT0gMHgyMTE2XG5cdFx0fHwgeCA9PT0gMHgyMTIxXG5cdFx0fHwgeCA9PT0gMHgyMTIyXG5cdFx0fHwgeCA9PT0gMHgyMTI2XG5cdFx0fHwgeCA9PT0gMHgyMTJCXG5cdFx0fHwgeCA9PT0gMHgyMTUzXG5cdFx0fHwgeCA9PT0gMHgyMTU0XG5cdFx0fHwgeCA+PSAweDIxNUIgJiYgeCA8PSAweDIxNUVcblx0XHR8fCB4ID49IDB4MjE2MCAmJiB4IDw9IDB4MjE2QlxuXHRcdHx8IHggPj0gMHgyMTcwICYmIHggPD0gMHgyMTc5XG5cdFx0fHwgeCA9PT0gMHgyMTg5XG5cdFx0fHwgeCA+PSAweDIxOTAgJiYgeCA8PSAweDIxOTlcblx0XHR8fCB4ID09PSAweDIxQjhcblx0XHR8fCB4ID09PSAweDIxQjlcblx0XHR8fCB4ID09PSAweDIxRDJcblx0XHR8fCB4ID09PSAweDIxRDRcblx0XHR8fCB4ID09PSAweDIxRTdcblx0XHR8fCB4ID09PSAweDIyMDBcblx0XHR8fCB4ID09PSAweDIyMDJcblx0XHR8fCB4ID09PSAweDIyMDNcblx0XHR8fCB4ID09PSAweDIyMDdcblx0XHR8fCB4ID09PSAweDIyMDhcblx0XHR8fCB4ID09PSAweDIyMEJcblx0XHR8fCB4ID09PSAweDIyMEZcblx0XHR8fCB4ID09PSAweDIyMTFcblx0XHR8fCB4ID09PSAweDIyMTVcblx0XHR8fCB4ID09PSAweDIyMUFcblx0XHR8fCB4ID49IDB4MjIxRCAmJiB4IDw9IDB4MjIyMFxuXHRcdHx8IHggPT09IDB4MjIyM1xuXHRcdHx8IHggPT09IDB4MjIyNVxuXHRcdHx8IHggPj0gMHgyMjI3ICYmIHggPD0gMHgyMjJDXG5cdFx0fHwgeCA9PT0gMHgyMjJFXG5cdFx0fHwgeCA+PSAweDIyMzQgJiYgeCA8PSAweDIyMzdcblx0XHR8fCB4ID09PSAweDIyM0Ncblx0XHR8fCB4ID09PSAweDIyM0Rcblx0XHR8fCB4ID09PSAweDIyNDhcblx0XHR8fCB4ID09PSAweDIyNENcblx0XHR8fCB4ID09PSAweDIyNTJcblx0XHR8fCB4ID09PSAweDIyNjBcblx0XHR8fCB4ID09PSAweDIyNjFcblx0XHR8fCB4ID49IDB4MjI2NCAmJiB4IDw9IDB4MjI2N1xuXHRcdHx8IHggPT09IDB4MjI2QVxuXHRcdHx8IHggPT09IDB4MjI2QlxuXHRcdHx8IHggPT09IDB4MjI2RVxuXHRcdHx8IHggPT09IDB4MjI2RlxuXHRcdHx8IHggPT09IDB4MjI4MlxuXHRcdHx8IHggPT09IDB4MjI4M1xuXHRcdHx8IHggPT09IDB4MjI4NlxuXHRcdHx8IHggPT09IDB4MjI4N1xuXHRcdHx8IHggPT09IDB4MjI5NVxuXHRcdHx8IHggPT09IDB4MjI5OVxuXHRcdHx8IHggPT09IDB4MjJBNVxuXHRcdHx8IHggPT09IDB4MjJCRlxuXHRcdHx8IHggPT09IDB4MjMxMlxuXHRcdHx8IHggPj0gMHgyNDYwICYmIHggPD0gMHgyNEU5XG5cdFx0fHwgeCA+PSAweDI0RUIgJiYgeCA8PSAweDI1NEJcblx0XHR8fCB4ID49IDB4MjU1MCAmJiB4IDw9IDB4MjU3M1xuXHRcdHx8IHggPj0gMHgyNTgwICYmIHggPD0gMHgyNThGXG5cdFx0fHwgeCA+PSAweDI1OTIgJiYgeCA8PSAweDI1OTVcblx0XHR8fCB4ID09PSAweDI1QTBcblx0XHR8fCB4ID09PSAweDI1QTFcblx0XHR8fCB4ID49IDB4MjVBMyAmJiB4IDw9IDB4MjVBOVxuXHRcdHx8IHggPT09IDB4MjVCMlxuXHRcdHx8IHggPT09IDB4MjVCM1xuXHRcdHx8IHggPT09IDB4MjVCNlxuXHRcdHx8IHggPT09IDB4MjVCN1xuXHRcdHx8IHggPT09IDB4MjVCQ1xuXHRcdHx8IHggPT09IDB4MjVCRFxuXHRcdHx8IHggPT09IDB4MjVDMFxuXHRcdHx8IHggPT09IDB4MjVDMVxuXHRcdHx8IHggPj0gMHgyNUM2ICYmIHggPD0gMHgyNUM4XG5cdFx0fHwgeCA9PT0gMHgyNUNCXG5cdFx0fHwgeCA+PSAweDI1Q0UgJiYgeCA8PSAweDI1RDFcblx0XHR8fCB4ID49IDB4MjVFMiAmJiB4IDw9IDB4MjVFNVxuXHRcdHx8IHggPT09IDB4MjVFRlxuXHRcdHx8IHggPT09IDB4MjYwNVxuXHRcdHx8IHggPT09IDB4MjYwNlxuXHRcdHx8IHggPT09IDB4MjYwOVxuXHRcdHx8IHggPT09IDB4MjYwRVxuXHRcdHx8IHggPT09IDB4MjYwRlxuXHRcdHx8IHggPT09IDB4MjYxQ1xuXHRcdHx8IHggPT09IDB4MjYxRVxuXHRcdHx8IHggPT09IDB4MjY0MFxuXHRcdHx8IHggPT09IDB4MjY0MlxuXHRcdHx8IHggPT09IDB4MjY2MFxuXHRcdHx8IHggPT09IDB4MjY2MVxuXHRcdHx8IHggPj0gMHgyNjYzICYmIHggPD0gMHgyNjY1XG5cdFx0fHwgeCA+PSAweDI2NjcgJiYgeCA8PSAweDI2NkFcblx0XHR8fCB4ID09PSAweDI2NkNcblx0XHR8fCB4ID09PSAweDI2NkRcblx0XHR8fCB4ID09PSAweDI2NkZcblx0XHR8fCB4ID09PSAweDI2OUVcblx0XHR8fCB4ID09PSAweDI2OUZcblx0XHR8fCB4ID09PSAweDI2QkZcblx0XHR8fCB4ID49IDB4MjZDNiAmJiB4IDw9IDB4MjZDRFxuXHRcdHx8IHggPj0gMHgyNkNGICYmIHggPD0gMHgyNkQzXG5cdFx0fHwgeCA+PSAweDI2RDUgJiYgeCA8PSAweDI2RTFcblx0XHR8fCB4ID09PSAweDI2RTNcblx0XHR8fCB4ID09PSAweDI2RThcblx0XHR8fCB4ID09PSAweDI2RTlcblx0XHR8fCB4ID49IDB4MjZFQiAmJiB4IDw9IDB4MjZGMVxuXHRcdHx8IHggPT09IDB4MjZGNFxuXHRcdHx8IHggPj0gMHgyNkY2ICYmIHggPD0gMHgyNkY5XG5cdFx0fHwgeCA9PT0gMHgyNkZCXG5cdFx0fHwgeCA9PT0gMHgyNkZDXG5cdFx0fHwgeCA9PT0gMHgyNkZFXG5cdFx0fHwgeCA9PT0gMHgyNkZGXG5cdFx0fHwgeCA9PT0gMHgyNzNEXG5cdFx0fHwgeCA+PSAweDI3NzYgJiYgeCA8PSAweDI3N0Zcblx0XHR8fCB4ID49IDB4MkI1NiAmJiB4IDw9IDB4MkI1OVxuXHRcdHx8IHggPj0gMHgzMjQ4ICYmIHggPD0gMHgzMjRGXG5cdFx0fHwgeCA+PSAweEUwMDAgJiYgeCA8PSAweEY4RkZcblx0XHR8fCB4ID49IDB4RkUwMCAmJiB4IDw9IDB4RkUwRlxuXHRcdHx8IHggPT09IDB4RkZGRFxuXHRcdHx8IHggPj0gMHgxRjEwMCAmJiB4IDw9IDB4MUYxMEFcblx0XHR8fCB4ID49IDB4MUYxMTAgJiYgeCA8PSAweDFGMTJEXG5cdFx0fHwgeCA+PSAweDFGMTMwICYmIHggPD0gMHgxRjE2OVxuXHRcdHx8IHggPj0gMHgxRjE3MCAmJiB4IDw9IDB4MUYxOERcblx0XHR8fCB4ID09PSAweDFGMThGXG5cdFx0fHwgeCA9PT0gMHgxRjE5MFxuXHRcdHx8IHggPj0gMHgxRjE5QiAmJiB4IDw9IDB4MUYxQUNcblx0XHR8fCB4ID49IDB4RTAxMDAgJiYgeCA8PSAweEUwMUVGXG5cdFx0fHwgeCA+PSAweEYwMDAwICYmIHggPD0gMHhGRkZGRFxuXHRcdHx8IHggPj0gMHgxMDAwMDAgJiYgeCA8PSAweDEwRkZGRDtcbn1cblxuZnVuY3Rpb24gaXNGdWxsV2lkdGgoeCkge1xuXHRyZXR1cm4geCA9PT0gMHgzMDAwXG5cdFx0fHwgeCA+PSAweEZGMDEgJiYgeCA8PSAweEZGNjBcblx0XHR8fCB4ID49IDB4RkZFMCAmJiB4IDw9IDB4RkZFNjtcbn1cblxuZnVuY3Rpb24gaXNXaWRlKHgpIHtcblx0cmV0dXJuIHggPj0gMHgxMTAwICYmIHggPD0gMHgxMTVGXG5cdFx0fHwgeCA9PT0gMHgyMzFBXG5cdFx0fHwgeCA9PT0gMHgyMzFCXG5cdFx0fHwgeCA9PT0gMHgyMzI5XG5cdFx0fHwgeCA9PT0gMHgyMzJBXG5cdFx0fHwgeCA+PSAweDIzRTkgJiYgeCA8PSAweDIzRUNcblx0XHR8fCB4ID09PSAweDIzRjBcblx0XHR8fCB4ID09PSAweDIzRjNcblx0XHR8fCB4ID09PSAweDI1RkRcblx0XHR8fCB4ID09PSAweDI1RkVcblx0XHR8fCB4ID09PSAweDI2MTRcblx0XHR8fCB4ID09PSAweDI2MTVcblx0XHR8fCB4ID49IDB4MjYzMCAmJiB4IDw9IDB4MjYzN1xuXHRcdHx8IHggPj0gMHgyNjQ4ICYmIHggPD0gMHgyNjUzXG5cdFx0fHwgeCA9PT0gMHgyNjdGXG5cdFx0fHwgeCA+PSAweDI2OEEgJiYgeCA8PSAweDI2OEZcblx0XHR8fCB4ID09PSAweDI2OTNcblx0XHR8fCB4ID09PSAweDI2QTFcblx0XHR8fCB4ID09PSAweDI2QUFcblx0XHR8fCB4ID09PSAweDI2QUJcblx0XHR8fCB4ID09PSAweDI2QkRcblx0XHR8fCB4ID09PSAweDI2QkVcblx0XHR8fCB4ID09PSAweDI2QzRcblx0XHR8fCB4ID09PSAweDI2QzVcblx0XHR8fCB4ID09PSAweDI2Q0Vcblx0XHR8fCB4ID09PSAweDI2RDRcblx0XHR8fCB4ID09PSAweDI2RUFcblx0XHR8fCB4ID09PSAweDI2RjJcblx0XHR8fCB4ID09PSAweDI2RjNcblx0XHR8fCB4ID09PSAweDI2RjVcblx0XHR8fCB4ID09PSAweDI2RkFcblx0XHR8fCB4ID09PSAweDI2RkRcblx0XHR8fCB4ID09PSAweDI3MDVcblx0XHR8fCB4ID09PSAweDI3MEFcblx0XHR8fCB4ID09PSAweDI3MEJcblx0XHR8fCB4ID09PSAweDI3Mjhcblx0XHR8fCB4ID09PSAweDI3NENcblx0XHR8fCB4ID09PSAweDI3NEVcblx0XHR8fCB4ID49IDB4Mjc1MyAmJiB4IDw9IDB4Mjc1NVxuXHRcdHx8IHggPT09IDB4Mjc1N1xuXHRcdHx8IHggPj0gMHgyNzk1ICYmIHggPD0gMHgyNzk3XG5cdFx0fHwgeCA9PT0gMHgyN0IwXG5cdFx0fHwgeCA9PT0gMHgyN0JGXG5cdFx0fHwgeCA9PT0gMHgyQjFCXG5cdFx0fHwgeCA9PT0gMHgyQjFDXG5cdFx0fHwgeCA9PT0gMHgyQjUwXG5cdFx0fHwgeCA9PT0gMHgyQjU1XG5cdFx0fHwgeCA+PSAweDJFODAgJiYgeCA8PSAweDJFOTlcblx0XHR8fCB4ID49IDB4MkU5QiAmJiB4IDw9IDB4MkVGM1xuXHRcdHx8IHggPj0gMHgyRjAwICYmIHggPD0gMHgyRkQ1XG5cdFx0fHwgeCA+PSAweDJGRjAgJiYgeCA8PSAweDJGRkZcblx0XHR8fCB4ID49IDB4MzAwMSAmJiB4IDw9IDB4MzAzRVxuXHRcdHx8IHggPj0gMHgzMDQxICYmIHggPD0gMHgzMDk2XG5cdFx0fHwgeCA+PSAweDMwOTkgJiYgeCA8PSAweDMwRkZcblx0XHR8fCB4ID49IDB4MzEwNSAmJiB4IDw9IDB4MzEyRlxuXHRcdHx8IHggPj0gMHgzMTMxICYmIHggPD0gMHgzMThFXG5cdFx0fHwgeCA+PSAweDMxOTAgJiYgeCA8PSAweDMxRTVcblx0XHR8fCB4ID49IDB4MzFFRiAmJiB4IDw9IDB4MzIxRVxuXHRcdHx8IHggPj0gMHgzMjIwICYmIHggPD0gMHgzMjQ3XG5cdFx0fHwgeCA+PSAweDMyNTAgJiYgeCA8PSAweEE0OENcblx0XHR8fCB4ID49IDB4QTQ5MCAmJiB4IDw9IDB4QTRDNlxuXHRcdHx8IHggPj0gMHhBOTYwICYmIHggPD0gMHhBOTdDXG5cdFx0fHwgeCA+PSAweEFDMDAgJiYgeCA8PSAweEQ3QTNcblx0XHR8fCB4ID49IDB4RjkwMCAmJiB4IDw9IDB4RkFGRlxuXHRcdHx8IHggPj0gMHhGRTEwICYmIHggPD0gMHhGRTE5XG5cdFx0fHwgeCA+PSAweEZFMzAgJiYgeCA8PSAweEZFNTJcblx0XHR8fCB4ID49IDB4RkU1NCAmJiB4IDw9IDB4RkU2NlxuXHRcdHx8IHggPj0gMHhGRTY4ICYmIHggPD0gMHhGRTZCXG5cdFx0fHwgeCA+PSAweDE2RkUwICYmIHggPD0gMHgxNkZFNFxuXHRcdHx8IHggPT09IDB4MTZGRjBcblx0XHR8fCB4ID09PSAweDE2RkYxXG5cdFx0fHwgeCA+PSAweDE3MDAwICYmIHggPD0gMHgxODdGN1xuXHRcdHx8IHggPj0gMHgxODgwMCAmJiB4IDw9IDB4MThDRDVcblx0XHR8fCB4ID49IDB4MThDRkYgJiYgeCA8PSAweDE4RDA4XG5cdFx0fHwgeCA+PSAweDFBRkYwICYmIHggPD0gMHgxQUZGM1xuXHRcdHx8IHggPj0gMHgxQUZGNSAmJiB4IDw9IDB4MUFGRkJcblx0XHR8fCB4ID09PSAweDFBRkZEXG5cdFx0fHwgeCA9PT0gMHgxQUZGRVxuXHRcdHx8IHggPj0gMHgxQjAwMCAmJiB4IDw9IDB4MUIxMjJcblx0XHR8fCB4ID09PSAweDFCMTMyXG5cdFx0fHwgeCA+PSAweDFCMTUwICYmIHggPD0gMHgxQjE1MlxuXHRcdHx8IHggPT09IDB4MUIxNTVcblx0XHR8fCB4ID49IDB4MUIxNjQgJiYgeCA8PSAweDFCMTY3XG5cdFx0fHwgeCA+PSAweDFCMTcwICYmIHggPD0gMHgxQjJGQlxuXHRcdHx8IHggPj0gMHgxRDMwMCAmJiB4IDw9IDB4MUQzNTZcblx0XHR8fCB4ID49IDB4MUQzNjAgJiYgeCA8PSAweDFEMzc2XG5cdFx0fHwgeCA9PT0gMHgxRjAwNFxuXHRcdHx8IHggPT09IDB4MUYwQ0Zcblx0XHR8fCB4ID09PSAweDFGMThFXG5cdFx0fHwgeCA+PSAweDFGMTkxICYmIHggPD0gMHgxRjE5QVxuXHRcdHx8IHggPj0gMHgxRjIwMCAmJiB4IDw9IDB4MUYyMDJcblx0XHR8fCB4ID49IDB4MUYyMTAgJiYgeCA8PSAweDFGMjNCXG5cdFx0fHwgeCA+PSAweDFGMjQwICYmIHggPD0gMHgxRjI0OFxuXHRcdHx8IHggPT09IDB4MUYyNTBcblx0XHR8fCB4ID09PSAweDFGMjUxXG5cdFx0fHwgeCA+PSAweDFGMjYwICYmIHggPD0gMHgxRjI2NVxuXHRcdHx8IHggPj0gMHgxRjMwMCAmJiB4IDw9IDB4MUYzMjBcblx0XHR8fCB4ID49IDB4MUYzMkQgJiYgeCA8PSAweDFGMzM1XG5cdFx0fHwgeCA+PSAweDFGMzM3ICYmIHggPD0gMHgxRjM3Q1xuXHRcdHx8IHggPj0gMHgxRjM3RSAmJiB4IDw9IDB4MUYzOTNcblx0XHR8fCB4ID49IDB4MUYzQTAgJiYgeCA8PSAweDFGM0NBXG5cdFx0fHwgeCA+PSAweDFGM0NGICYmIHggPD0gMHgxRjNEM1xuXHRcdHx8IHggPj0gMHgxRjNFMCAmJiB4IDw9IDB4MUYzRjBcblx0XHR8fCB4ID09PSAweDFGM0Y0XG5cdFx0fHwgeCA+PSAweDFGM0Y4ICYmIHggPD0gMHgxRjQzRVxuXHRcdHx8IHggPT09IDB4MUY0NDBcblx0XHR8fCB4ID49IDB4MUY0NDIgJiYgeCA8PSAweDFGNEZDXG5cdFx0fHwgeCA+PSAweDFGNEZGICYmIHggPD0gMHgxRjUzRFxuXHRcdHx8IHggPj0gMHgxRjU0QiAmJiB4IDw9IDB4MUY1NEVcblx0XHR8fCB4ID49IDB4MUY1NTAgJiYgeCA8PSAweDFGNTY3XG5cdFx0fHwgeCA9PT0gMHgxRjU3QVxuXHRcdHx8IHggPT09IDB4MUY1OTVcblx0XHR8fCB4ID09PSAweDFGNTk2XG5cdFx0fHwgeCA9PT0gMHgxRjVBNFxuXHRcdHx8IHggPj0gMHgxRjVGQiAmJiB4IDw9IDB4MUY2NEZcblx0XHR8fCB4ID49IDB4MUY2ODAgJiYgeCA8PSAweDFGNkM1XG5cdFx0fHwgeCA9PT0gMHgxRjZDQ1xuXHRcdHx8IHggPj0gMHgxRjZEMCAmJiB4IDw9IDB4MUY2RDJcblx0XHR8fCB4ID49IDB4MUY2RDUgJiYgeCA8PSAweDFGNkQ3XG5cdFx0fHwgeCA+PSAweDFGNkRDICYmIHggPD0gMHgxRjZERlxuXHRcdHx8IHggPT09IDB4MUY2RUJcblx0XHR8fCB4ID09PSAweDFGNkVDXG5cdFx0fHwgeCA+PSAweDFGNkY0ICYmIHggPD0gMHgxRjZGQ1xuXHRcdHx8IHggPj0gMHgxRjdFMCAmJiB4IDw9IDB4MUY3RUJcblx0XHR8fCB4ID09PSAweDFGN0YwXG5cdFx0fHwgeCA+PSAweDFGOTBDICYmIHggPD0gMHgxRjkzQVxuXHRcdHx8IHggPj0gMHgxRjkzQyAmJiB4IDw9IDB4MUY5NDVcblx0XHR8fCB4ID49IDB4MUY5NDcgJiYgeCA8PSAweDFGOUZGXG5cdFx0fHwgeCA+PSAweDFGQTcwICYmIHggPD0gMHgxRkE3Q1xuXHRcdHx8IHggPj0gMHgxRkE4MCAmJiB4IDw9IDB4MUZBODlcblx0XHR8fCB4ID49IDB4MUZBOEYgJiYgeCA8PSAweDFGQUM2XG5cdFx0fHwgeCA+PSAweDFGQUNFICYmIHggPD0gMHgxRkFEQ1xuXHRcdHx8IHggPj0gMHgxRkFERiAmJiB4IDw9IDB4MUZBRTlcblx0XHR8fCB4ID49IDB4MUZBRjAgJiYgeCA8PSAweDFGQUY4XG5cdFx0fHwgeCA+PSAweDIwMDAwICYmIHggPD0gMHgyRkZGRFxuXHRcdHx8IHggPj0gMHgzMDAwMCAmJiB4IDw9IDB4M0ZGRkQ7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlKGNvZGVQb2ludCkge1xuXHRpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNvZGVQb2ludCkpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIGNvZGUgcG9pbnQsIGdvdCBcXGAke3R5cGVvZiBjb2RlUG9pbnR9XFxgLmApO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGVhc3RBc2lhbldpZHRoKGNvZGVQb2ludCwge2FtYmlndW91c0FzV2lkZSA9IGZhbHNlfSA9IHt9KSB7XG5cdHZhbGlkYXRlKGNvZGVQb2ludCk7XG5cblx0aWYgKFxuXHRcdGlzRnVsbFdpZHRoKGNvZGVQb2ludClcblx0XHR8fCBpc1dpZGUoY29kZVBvaW50KVxuXHRcdHx8IChhbWJpZ3VvdXNBc1dpZGUgJiYgaXNBbWJpZ3VvdXMoY29kZVBvaW50KSlcblx0KSB7XG5cdFx0cmV0dXJuIDI7XG5cdH1cblxuXHRyZXR1cm4gMTtcbn1cblxuY29uc3QgZW1vamlSZWdleCA9ICgpID0+IHtcblx0Ly8gaHR0cHM6Ly9tdGhzLmJlL2Vtb2ppXG5cdHJldHVybiAvWyMqMC05XVxcdUZFMEY/XFx1MjBFM3xbXFx4QTlcXHhBRVxcdTIwM0NcXHUyMDQ5XFx1MjEyMlxcdTIxMzlcXHUyMTk0LVxcdTIxOTlcXHUyMUE5XFx1MjFBQVxcdTIzMUFcXHUyMzFCXFx1MjMyOFxcdTIzQ0ZcXHUyM0VELVxcdTIzRUZcXHUyM0YxXFx1MjNGMlxcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQlxcdTI1RkNcXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyXFx1MjY5NC1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTdcXHUyNkFBXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM4XFx1MjZDRlxcdTI2RDFcXHUyNkU5XFx1MjZGMC1cXHUyNkY1XFx1MjZGN1xcdTI2RjhcXHUyNkZBXFx1MjcwMlxcdTI3MDhcXHUyNzA5XFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NTdcXHUyNzYzXFx1MjdBMVxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV1cXHVGRTBGP3xbXFx1MjYxRFxcdTI3MENcXHUyNzBEXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT98W1xcdTI3MEFcXHUyNzBCXSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNjkzXFx1MjZBMVxcdTI2QUJcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGRFxcdTI3MDVcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCNTBdfFxcdTI2RDNcXHVGRTBGPyg/OlxcdTIwMERcXHVEODNEXFx1RENBNSk/fFxcdTI2RjkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RkUwRik/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdTI3NjRcXHVGRTBGPyg/OlxcdTIwMEQoPzpcXHVEODNEXFx1REQyNXxcXHVEODNFXFx1REU3OSkpP3xcXHVEODNDKD86W1xcdURDMDRcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REUwMlxcdURFMzdcXHVERjIxXFx1REYyNC1cXHVERjJDXFx1REYzNlxcdURGN0RcXHVERjk2XFx1REY5N1xcdURGOTktXFx1REY5QlxcdURGOUVcXHVERjlGXFx1REZDRFxcdURGQ0VcXHVERkQ0LVxcdURGREZcXHVERkY1XFx1REZGN11cXHVGRTBGP3xbXFx1REY4NVxcdURGQzJcXHVERkM3XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY0M1xcdURGNDUtXFx1REY0QVxcdURGNEMtXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY3XFx1RERGQS1cXHVEREZGXXxcXHVEREU5XFx1RDgzQ1tcXHVEREVBXFx1RERFQ1xcdURERUZcXHVEREYwXFx1RERGMlxcdURERjRcXHVEREZGXXxcXHVEREVBXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV18XFx1RERFQlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XXxcXHVEREVDXFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXXxcXHVEREVEXFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdfFxcdURERUVcXHVEODNDW1xcdURERTgtXFx1RERFQVxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOV18XFx1RERFRlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV18XFx1RERGMFxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdfFxcdURERjFcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV18XFx1RERGMlxcdUQ4M0NbXFx1RERFNlxcdURERTgtXFx1RERFRFxcdURERjAtXFx1RERGRl18XFx1RERGM1xcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBLVxcdURERUNcXHVEREVFXFx1RERGMVxcdURERjRcXHVEREY1XFx1RERGN1xcdURERkFcXHVEREZGXXxcXHVEREY0XFx1RDgzQ1xcdURERjJ8XFx1RERGNVxcdUQ4M0NbXFx1RERFNlxcdURERUEtXFx1RERFRFxcdURERjAtXFx1RERGM1xcdURERjctXFx1RERGOVxcdURERkNcXHVEREZFXXxcXHVEREY2XFx1RDgzQ1xcdURERTZ8XFx1RERGN1xcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdfFxcdURERjhcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdfFxcdURERjlcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFOVxcdURERUItXFx1RERFRFxcdURERUYtXFx1RERGNFxcdURERjdcXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZGXXxcXHVEREZBXFx1RDgzQ1tcXHVEREU2XFx1RERFQ1xcdURERjJcXHVEREYzXFx1RERGOFxcdURERkVcXHVEREZGXXxcXHVEREZCXFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXXxcXHVEREZDXFx1RDgzQ1tcXHVEREVCXFx1RERGOF18XFx1RERGRFxcdUQ4M0NcXHVEREYwfFxcdURERkVcXHVEODNDW1xcdURERUFcXHVEREY5XXxcXHVEREZGXFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdfFxcdURGNDQoPzpcXHUyMDBEXFx1RDgzRFxcdURGRUIpP3xcXHVERjRCKD86XFx1MjAwRFxcdUQ4M0RcXHVERkU5KT98XFx1REZDMyg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REZGM1xcdUZFMEY/KD86XFx1MjAwRCg/OlxcdTI2QTdcXHVGRTBGP3xcXHVEODNDXFx1REYwOCkpP3xcXHVERkY0KD86XFx1MjAwRFxcdTI2MjBcXHVGRTBGP3xcXHVEQjQwXFx1REM2N1xcdURCNDBcXHVEQzYyXFx1REI0MCg/OlxcdURDNjVcXHVEQjQwXFx1REM2RVxcdURCNDBcXHVEQzY3fFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGKT8pfFxcdUQ4M0QoPzpbXFx1REMzRlxcdURDRkRcXHVERDQ5XFx1REQ0QVxcdURENkZcXHVERDcwXFx1REQ3M1xcdURENzYtXFx1REQ3OVxcdUREODdcXHVERDhBLVxcdUREOERcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQVxcdURFQ0JcXHVERUNELVxcdURFQ0ZcXHVERUUwLVxcdURFRTVcXHVERUU5XFx1REVGMFxcdURFRjNdXFx1RkUwRj98W1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcyXFx1REM3NC1cXHVEQzc2XFx1REM3OFxcdURDN0NcXHVEQzgzXFx1REM4NVxcdURDOEZcXHVEQzkxXFx1RENBQVxcdUREN0FcXHVERDk1XFx1REQ5NlxcdURFNENcXHVERTRGXFx1REVDMFxcdURFQ0NdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURDNkVcXHVEQzcwXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0XFx1REVCNV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUZFMEYpP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0MVxcdURFNDNcXHVERTQ0XFx1REU0OC1cXHVERTRBXFx1REU4MC1cXHVERUEyXFx1REVBNC1cXHVERUIzXFx1REVCNy1cXHVERUJGXFx1REVDMS1cXHVERUM1XFx1REVEMC1cXHVERUQyXFx1REVENS1cXHVERUQ3XFx1REVEQy1cXHVERURGXFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkNcXHVERkUwLVxcdURGRUJcXHVERkYwXXxcXHVEQzA4KD86XFx1MjAwRFxcdTJCMUIpP3xcXHVEQzE1KD86XFx1MjAwRFxcdUQ4M0VcXHVEREJBKT98XFx1REMyNig/OlxcdTIwMEQoPzpcXHUyQjFCfFxcdUQ4M0RcXHVERDI1KSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OFxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/XFx1REM2OFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzY5KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1tcXHVEQzY4XFx1REM2OV18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT98XFx1REM2OVxcdTIwMERcXHVEODNEKD86XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pPykpfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXSkpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNkYoPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REQ3NSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVGRTBGKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1REUyRSg/OlxcdTIwMERcXHVEODNEXFx1RENBOCk/fFxcdURFMzUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQUIpP3xcXHVERTM2KD86XFx1MjAwRFxcdUQ4M0NcXHVERjJCXFx1RkUwRj8pP3xcXHVERTQyKD86XFx1MjAwRFtcXHUyMTk0XFx1MjE5NV1cXHVGRTBGPyk/fFxcdURFQjYoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMEQoPzpbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98XFx1MjdBMVxcdUZFMEY/KSk/KXxcXHVEODNFKD86W1xcdUREMENcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQzMC1cXHVERDM0XFx1REQzNlxcdURENzdcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyXFx1REREM1xcdURERDVcXHVERUMzLVxcdURFQzVcXHVERUYwXFx1REVGMi1cXHVERUY4XSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/fFtcXHVERDI2XFx1REQzNVxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENEXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg5XFx1REU4Ri1cXHVERUMyXFx1REVDNlxcdURFQ0UtXFx1REVEQ1xcdURFREYtXFx1REVFOV18XFx1REQzQyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj98XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98XFx1RERDRSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRCg/OltcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xcXHUyN0ExXFx1RkUwRj8pKT98XFx1REREMSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1REREMVxcdTIwMERcXHVEODNFXFx1REREMig/OlxcdTIwMERcXHVEODNFXFx1REREMik/fFxcdURERDIoPzpcXHUyMDBEXFx1RDgzRVxcdURERDIpPykpfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkMtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGQyg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRlxcdUREQkNcXHVEREJEXSg/OlxcdTIwMERcXHUyN0ExXFx1RkUwRj8pP3xbXFx1RERCMC1cXHVEREIzXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUZcXHVEREJDXFx1RERCRF0oPzpcXHUyMDBEXFx1MjdBMVxcdUZFMEY/KT98W1xcdUREQjAtXFx1RERCM118XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGXFx1RERCQ1xcdUREQkRdKD86XFx1MjAwRFxcdTI3QTFcXHVGRTBGPyk/fFtcXHVEREIwLVxcdUREQjNdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmNvbnN0IHNlZ21lbnRlciA9IG5ldyBJbnRsLlNlZ21lbnRlcigpO1xuXG5jb25zdCBkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXggPSAvXlxccHtEZWZhdWx0X0lnbm9yYWJsZV9Db2RlX1BvaW50fSQvdTtcblxuZnVuY3Rpb24gc3RyaW5nV2lkdGgkMShzdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Y29uc3Qge1xuXHRcdGFtYmlndW91c0lzTmFycm93ID0gdHJ1ZSxcblx0XHRjb3VudEFuc2lFc2NhcGVDb2RlcyA9IGZhbHNlLFxuXHR9ID0gb3B0aW9ucztcblxuXHRpZiAoIWNvdW50QW5zaUVzY2FwZUNvZGVzKSB7XG5cdFx0c3RyaW5nID0gc3RyaXBBbnNpKHN0cmluZyk7XG5cdH1cblxuXHRpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0bGV0IHdpZHRoID0gMDtcblx0Y29uc3QgZWFzdEFzaWFuV2lkdGhPcHRpb25zID0ge2FtYmlndW91c0FzV2lkZTogIWFtYmlndW91c0lzTmFycm93fTtcblxuXHRmb3IgKGNvbnN0IHtzZWdtZW50OiBjaGFyYWN0ZXJ9IG9mIHNlZ21lbnRlci5zZWdtZW50KHN0cmluZykpIHtcblx0XHRjb25zdCBjb2RlUG9pbnQgPSBjaGFyYWN0ZXIuY29kZVBvaW50QXQoMCk7XG5cblx0XHQvLyBJZ25vcmUgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGVQb2ludCA8PSAweDFGIHx8IChjb2RlUG9pbnQgPj0gMHg3RiAmJiBjb2RlUG9pbnQgPD0gMHg5RikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIElnbm9yZSB6ZXJvLXdpZHRoIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4MjBfMEIgJiYgY29kZVBvaW50IDw9IDB4MjBfMEYpIC8vIFplcm8td2lkdGggc3BhY2UsIG5vbi1qb2luZXIsIGpvaW5lciwgbGVmdC10by1yaWdodCBtYXJrLCByaWdodC10by1sZWZ0IG1hcmtcblx0XHRcdHx8IGNvZGVQb2ludCA9PT0gMHhGRV9GRiAvLyBaZXJvLXdpZHRoIG5vLWJyZWFrIHNwYWNlXG5cdFx0KSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoXG5cdFx0XHQoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSAvLyBDb21iaW5pbmcgZGlhY3JpdGljYWwgbWFya3Ncblx0XHRcdHx8IChjb2RlUG9pbnQgPj0gMHgxQV9CMCAmJiBjb2RlUG9pbnQgPD0gMHgxQV9GRikgLy8gQ29tYmluaW5nIGRpYWNyaXRpY2FsIG1hcmtzIGV4dGVuZGVkXG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MURfQzAgJiYgY29kZVBvaW50IDw9IDB4MURfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBzdXBwbGVtZW50XG5cdFx0XHR8fCAoY29kZVBvaW50ID49IDB4MjBfRDAgJiYgY29kZVBvaW50IDw9IDB4MjBfRkYpIC8vIENvbWJpbmluZyBkaWFjcml0aWNhbCBtYXJrcyBmb3Igc3ltYm9sc1xuXHRcdFx0fHwgKGNvZGVQb2ludCA+PSAweEZFXzIwICYmIGNvZGVQb2ludCA8PSAweEZFXzJGKSAvLyBDb21iaW5pbmcgaGFsZiBtYXJrc1xuXHRcdCkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHN1cnJvZ2F0ZSBwYWlyc1xuXHRcdGlmIChjb2RlUG9pbnQgPj0gMHhEOF8wMCAmJiBjb2RlUG9pbnQgPD0gMHhERl9GRikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIHZhcmlhdGlvbiBzZWxlY3RvcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4RkVfMDAgJiYgY29kZVBvaW50IDw9IDB4RkVfMEYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIFRoaXMgY292ZXJzIHNvbWUgb2YgdGhlIGFib3ZlIGNhc2VzLCBidXQgd2Ugc3RpbGwga2VlcCB0aGVtIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuXHRcdGlmIChkZWZhdWx0SWdub3JhYmxlQ29kZVBvaW50UmVnZXgudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBUT0RPOiBVc2UgYC9cXHB7UkdJX0Vtb2ppfS92YCB3aGVuIHRhcmdldGluZyBOb2RlLmpzIDIwLlxuXHRcdGlmIChlbW9qaVJlZ2V4KCkudGVzdChjaGFyYWN0ZXIpKSB7XG5cdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0d2lkdGggKz0gZWFzdEFzaWFuV2lkdGgoY29kZVBvaW50LCBlYXN0QXNpYW5XaWR0aE9wdGlvbnMpO1xuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGNvbnN0IHtlbnZ9ID0gcHJvY2VzcyQxO1xuXHRjb25zdCB7VEVSTSwgVEVSTV9QUk9HUkFNfSA9IGVudjtcblxuXHRpZiAocHJvY2VzcyQxLnBsYXRmb3JtICE9PSAnd2luMzInKSB7XG5cdFx0cmV0dXJuIFRFUk0gIT09ICdsaW51eCc7IC8vIExpbnV4IGNvbnNvbGUgKGtlcm5lbClcblx0fVxuXG5cdHJldHVybiBCb29sZWFuKGVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihlbnYuVEVSTUlOVVNfU1VCTElNRSkgLy8gVGVybWludXMgKDwwLjIuMjcpXG5cdFx0fHwgZW52LkNvbkVtdVRhc2sgPT09ICd7Y21kOjpDbWRlcn0nIC8vIENvbkVtdSBhbmQgY21kZXJcblx0XHR8fCBURVJNX1BST0dSQU0gPT09ICdUZXJtaW51cy1TdWJsaW1lJ1xuXHRcdHx8IFRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBURVJNID09PSAneHRlcm0tMjU2Y29sb3InXG5cdFx0fHwgVEVSTSA9PT0gJ2FsYWNyaXR0eSdcblx0XHR8fCBURVJNID09PSAncnh2dC11bmljb2RlJ1xuXHRcdHx8IFRFUk0gPT09ICdyeHZ0LXVuaWNvZGUtMjU2Y29sb3InXG5cdFx0fHwgZW52LlRFUk1JTkFMX0VNVUxBVE9SID09PSAnSmV0QnJhaW5zLUplZGlUZXJtJztcbn1cblxuY29uc3QgVFlQRV9DT0xPUl9NQVAgPSB7XG4gIGluZm86IFwiY3lhblwiLFxuICBmYWlsOiBcInJlZFwiLFxuICBzdWNjZXNzOiBcImdyZWVuXCIsXG4gIHJlYWR5OiBcImdyZWVuXCIsXG4gIHN0YXJ0OiBcIm1hZ2VudGFcIlxufTtcbmNvbnN0IExFVkVMX0NPTE9SX01BUCA9IHtcbiAgMDogXCJyZWRcIixcbiAgMTogXCJ5ZWxsb3dcIlxufTtcbmNvbnN0IHVuaWNvZGUgPSBpc1VuaWNvZGVTdXBwb3J0ZWQoKTtcbmNvbnN0IHMgPSAoYywgZmFsbGJhY2spID0+IHVuaWNvZGUgPyBjIDogZmFsbGJhY2s7XG5jb25zdCBUWVBFX0lDT05TID0ge1xuICBlcnJvcjogcyhcIlxcdTI3MTZcIiwgXCJcXHhEN1wiKSxcbiAgZmF0YWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHJlYWR5OiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIHdhcm46IHMoXCJcXHUyNkEwXCIsIFwiXFx1MjAzQ1wiKSxcbiAgaW5mbzogcyhcIlxcdTIxMzlcIiwgXCJpXCIpLFxuICBzdWNjZXNzOiBzKFwiXFx1MjcxNFwiLCBcIlxcdTIyMUFcIiksXG4gIGRlYnVnOiBzKFwiXFx1MjY5OVwiLCBcIkRcIiksXG4gIHRyYWNlOiBzKFwiXFx1MjE5MlwiLCBcIlxcdTIxOTJcIiksXG4gIGZhaWw6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIHN0YXJ0OiBzKFwiXFx1MjVEMFwiLCBcIm9cIiksXG4gIGxvZzogXCJcIlxufTtcbmZ1bmN0aW9uIHN0cmluZ1dpZHRoKHN0cikge1xuICBjb25zdCBoYXNJQ1UgPSB0eXBlb2YgSW50bCA9PT0gXCJvYmplY3RcIjtcbiAgaWYgKCFoYXNJQ1UgfHwgIUludGwuU2VnbWVudGVyKSB7XG4gICAgcmV0dXJuIHN0cmlwQW5zaSQxKHN0cikubGVuZ3RoO1xuICB9XG4gIHJldHVybiBzdHJpbmdXaWR0aCQxKHN0cik7XG59XG5jbGFzcyBGYW5jeVJlcG9ydGVyIGV4dGVuZHMgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgY29uc3QgaW5kZW50ID0gXCIgIFwiLnJlcGVhdCgob3B0cz8uZXJyb3JMZXZlbCB8fCAwKSArIDEpO1xuICAgIHJldHVybiBgXG4ke2luZGVudH1gICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihgXG4ke2luZGVudH1gKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShUIHx8IEEpID8gbmV3IEZhbmN5UmVwb3J0ZXIoKSA6IG5ldyBCYXNpY1JlcG9ydGVyKClcbiAgICBdLFxuICAgIC4uLm9wdGlvbnNcbiAgfSk7XG4gIHJldHVybiBjb25zb2xhMjtcbn1cbmZ1bmN0aW9uIF9nZXREZWZhdWx0TG9nTGV2ZWwoKSB7XG4gIGlmIChVKSB7XG4gICAgcmV0dXJuIExvZ0xldmVscy5kZWJ1ZztcbiAgfVxuICBpZiAoQSkge1xuICAgIHJldHVybiBMb2dMZXZlbHMud2FybjtcbiAgfVxuICByZXR1cm4gTG9nTGV2ZWxzLmluZm87XG59XG5jb25zdCBjb25zb2xhID0gY3JlYXRlQ29uc29sYSgpO1xuXG5leHBvcnQgeyBjb25zb2xhIGFzIGEsIGNyZWF0ZUNvbnNvbGEgYXMgYywgaXNVbmljb2RlU3VwcG9ydGVkIGFzIGkgfTtcbiIsICIvKiBlc2xpbnQtZGlzYWJsZSB1bmljb3JuL25vLXByb2Nlc3MtZXhpdCAqL1xuaW1wb3J0IGFzc2VydCBmcm9tIFwibm9kZTphc3NlcnRcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIjtcbmltcG9ydCBmc1N5bmMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCBmcyBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJvaGFzaFwiO1xuaW1wb3J0IGV6U3Bhd24gZnJvbSBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI7XG5pbXBvcnQgeyBkZWZpbmVDb21tYW5kLCBydW5NYWluIH0gZnJvbSBcImNpdHR5XCI7XG5pbXBvcnQgeyBnZXRQYWNrYWdlTWFuaWZlc3QsIHR5cGUgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tIFwiQHBrZy1wci1uZXcvdXRpbHNcIjtcbmltcG9ydCB7XG4gIGFiYnJldmlhdGVDb21taXRIYXNoLFxuICBleHRyYWN0T3duZXJBbmRSZXBvLFxuICBleHRyYWN0UmVwb3NpdG9yeSxcbn0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQgeyBnbG9iIH0gZnJvbSBcInRpbnlnbG9iYnlcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IFwiLi9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCB7IGlzQmluYXJ5RmlsZSB9IGZyb20gXCJpc2JpbmFyeWZpbGVcIjtcbmltcG9ydCB7IHdyaXRlUGFja2FnZUpTT04sIHR5cGUgUGFja2FnZUpzb24gfSBmcm9tIFwicGtnLXR5cGVzXCI7XG5pbXBvcnQgcGtnIGZyb20gXCIuL3BhY2thZ2UuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9O1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRlbXBsYXRlIH0gZnJvbSBcIi4vdGVtcGxhdGVcIjtcbmltcG9ydCAqIGFzIGNvcmUgZnJvbSBcIkBhY3Rpb25zL2NvcmVcIjtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBjb25zdCBBUElfVVJMOiBzdHJpbmc7XG59XG5cbnR5cGUgT3V0cHV0TWV0YWRhdGEgPSB7XG4gIHBhY2thZ2VzOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHNoYXN1bTogc3RyaW5nO1xuICB9W107XG4gIHRlbXBsYXRlczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfVtdO1xufTtcblxuY29uc3QgYXBpVXJsID0gcHJvY2Vzcy5lbnYuQVBJX1VSTCA/PyBBUElfVVJMO1xuY29uc3QgcHVibGlzaFVybCA9IG5ldyBVUkwoXCIvcHVibGlzaFwiLCBhcGlVcmwpO1xuY29uc3QgY3JlYXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY3JlYXRlXCIsIGFwaVVybCk7XG5jb25zdCB1cGxvYWRNdWx0aXBhcnQgPSBuZXcgVVJMKFwiL211bHRpcGFydC91cGxvYWRcIiwgYXBpVXJsKTtcbmNvbnN0IGNvbXBsZXRlTXVsdGlwYXJ0ID0gbmV3IFVSTChcIi9tdWx0aXBhcnQvY29tcGxldGVcIiwgYXBpVXJsKTtcblxuY29uc3QgbWFpbiA9IGRlZmluZUNvbW1hbmQoe1xuICBtZXRhOiB7XG4gICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgbmFtZTogXCJzdGFja2JsaXR6XCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBDTEkgZm9yIHBrZy5wci5uZXcgKENvbnRpbnVvdXMgUmVsZWFzZXMpXCIsXG4gIH0sXG4gIHN1YkNvbW1hbmRzOiB7XG4gICAgcHVibGlzaDogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGNvbXBhY3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiY29tcGFjdCB1cmxzLiBUaGUgc2hvcnRlc3QgZm9ybSBvZiB1cmxzIGxpa2UgcGtnLnByLm5ldy90aW55YmVuY2hAYTgzMmE1NSlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBlZXJEZXBzOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImhhbmRsZSBwZWVyRGVwZW5kZW5jaWVzIGJ5IHNldHRpbmcgdGhlIHdvcmtzcGFjZSB2ZXJzaW9uIGluc3RlYWQgb2Ygd2hhdCBoYXMgYmVlbiBzZXQgaW4gdGhlIHBlZXJEZXBzIGl0c2VsZi4gLS1wZWVyRGVwcyBub3QgYmVpbmcgdHJ1ZSB3b3VsZCBsZWF2ZSBwZWVyRGVwZW5kZW5jaWVzIHRvIHRoZSBwYWNrYWdlIG1hbmFnZXIgaXRzZWxmIChucG0sIHBucG0pXCIsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBucG06IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGBwbnBtIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHlhcm46IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGB5YXJuIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJ1bjoge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJ1c2UgYGJ1biBwbSBwYWNrYCBpbnN0ZWFkIG9mIGBucG0gcGFjayAtLWpzb25gXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcImdlbmVyYXRlIHN0YWNrYmxpdHogdGVtcGxhdGVzIG91dCBvZiBkaXJlY3RvcmllcyBpbiB0aGUgY3VycmVudCByZXBvIHdpdGggdGhlIG5ldyBidWlsdCBwYWNrYWdlc1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29tbWVudDoge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIiwgLy8gXCJvZmZcIiwgXCJjcmVhdGVcIiwgXCJ1cGRhdGVcIiAoZGVmYXVsdClcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXCJvZmZcIiBmb3Igbm8gY29tbWVudHMgKHNpbGVudCBtb2RlKS4gXCJjcmVhdGVcIiBmb3IgY29tbWVudCBvbiBlYWNoIHB1Ymxpc2guIFwidXBkYXRlXCIgZm9yIG9uZSBjb21tZW50IGFjcm9zcyB0aGUgcHVsbCByZXF1ZXN0IHdpdGggZWRpdHMgb24gZWFjaCBwdWJsaXNoIChkZWZhdWx0KWAsXG4gICAgICAgICAgICBkZWZhdWx0OiBcInVwZGF0ZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJvbmx5LXRlbXBsYXRlc1wiOiB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgZ2VuZXJhdGUgb25seSBzdGFja2JsaXR6IHRlbXBsYXRlc2AsXG4gICAgICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGpzb246IHtcbiAgICAgICAgICAgIHR5cGU6IFwibWl4ZWRcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgU2F2ZSBtZXRhZGF0YSB0byBhIEpTT04gZmlsZS4gSWYgdHJ1ZSwgbG9nIHRoZSBvdXRwdXQgZm9yIHBpcGluZy4gSWYgYSBzdHJpbmcsIHNhdmUgdGhlIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgcGF0aC5gLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFja2FnZU1hbmFnZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJTcGVjaWZ5IHRoZSBwYWNrYWdlIG1hbmFnZXIgdG8gdXNlIChucG0sIGJ1biwgcG5wbSwgeWFybilcIixcbiAgICAgICAgICAgIGVudW06IFtcIm5wbVwiLCBcImJ1blwiLCBcInBucG1cIiwgXCJ5YXJuXCJdLFxuICAgICAgICAgICAgZGVmYXVsdDogXCJucG1cIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJpbjoge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJTZXQgdG8gdHJ1ZSBpZiB5b3VyIHBhY2thZ2UgaXMgYSBiaW5hcnkgYXBwbGljYXRpb24gYW5kIHlvdSB3b3VsZCBsaWtlIHRvIHNob3cgYW4gZXhlY3V0ZSBjb21tYW5kIGluc3RlYWQgb2YgYW4gaW5zdGFsbCBjb21tYW5kLlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bjogYXN5bmMgKHsgYXJncyB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGF0aHMgPVxuICAgICAgICAgICAgYXJncy5fLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgPyBhd2FpdCBnbG9iKGFyZ3MuXywge1xuICAgICAgICAgICAgICAgICAgZXhwYW5kRGlyZWN0b3JpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgb25seURpcmVjdG9yaWVzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYWJzb2x1dGU6IHRydWUsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgOiBbcHJvY2Vzcy5jd2QoKV07XG5cbiAgICAgICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCBnbG9iKGFyZ3MudGVtcGxhdGUgfHwgW10sIHtcbiAgICAgICAgICAgIGV4cGFuZERpcmVjdG9yaWVzOiBmYWxzZSxcbiAgICAgICAgICAgIG9ubHlEaXJlY3RvcmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFic29sdXRlOiB0cnVlLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgICAgICAgIGNvbnN0IGlzQ29tcGFjdCA9ICEhYXJncy5jb21wYWN0O1xuICAgICAgICAgIGxldCBwYWNrTWV0aG9kOiBQYWNrTWV0aG9kID0gXCJucG1cIjtcblxuICAgICAgICAgIGlmIChhcmdzLnBucG0pIHtcbiAgICAgICAgICAgIHBhY2tNZXRob2QgPSBcInBucG1cIjtcbiAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3MueWFybikge1xuICAgICAgICAgICAgcGFja01ldGhvZCA9IFwieWFyblwiO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy5idW4pIHtcbiAgICAgICAgICAgIHBhY2tNZXRob2QgPSBcImJ1blwiO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGlzUGVlckRlcHNFbmFibGVkID0gISFhcmdzLnBlZXJEZXBzO1xuICAgICAgICAgIGNvbnN0IGlzT25seVRlbXBsYXRlcyA9ICEhYXJnc1tcIm9ubHktdGVtcGxhdGVzXCJdO1xuICAgICAgICAgIGNvbnN0IGlzQmluYXJ5QXBwbGljYXRpb24gPSAhIWFyZ3MuYmluO1xuICAgICAgICAgIGNvbnN0IGNvbW1lbnQ6IENvbW1lbnQgPSBhcmdzLmNvbW1lbnQgYXMgQ29tbWVudDtcbiAgICAgICAgICBjb25zdCBzZWxlY3RlZFBhY2thZ2VNYW5hZ2VyID0gYXJncy5wYWNrYWdlTWFuYWdlciBhc1xuICAgICAgICAgICAgfCBcIm5wbVwiXG4gICAgICAgICAgICB8IFwiYnVuXCJcbiAgICAgICAgICAgIHwgXCJwbnBtXCJcbiAgICAgICAgICAgIHwgXCJ5YXJuXCI7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhW1wibnBtXCIsIFwiYnVuXCIsIFwicG5wbVwiLCBcInlhcm5cIl0uaW5jbHVkZXMoc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcilcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIGBVbnN1cHBvcnRlZCBwYWNrYWdlIG1hbmFnZXI6ICR7c2VsZWN0ZWRQYWNrYWdlTWFuYWdlcn0uIFN1cHBvcnRlZCBtYW5hZ2VycyBhcmUgbnBtLCBidW4sIHBucG0sIHlhcm4uYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFwcm9jZXNzLmVudi5URVNUICYmIHByb2Nlc3MuZW52LkdJVEhVQl9BQ1RJT05TICE9PSBcInRydWVcIikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJDb250aW51b3VzIFJlbGVhc2VzIGFyZSBvbmx5IGF2YWlsYWJsZSBpbiBHaXRIdWIgQWN0aW9ucy5cIixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgR0lUSFVCX1JFUE9TSVRPUlksXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0lELFxuICAgICAgICAgICAgR0lUSFVCX1JVTl9BVFRFTVBULFxuICAgICAgICAgICAgR0lUSFVCX0FDVE9SX0lELFxuICAgICAgICAgICAgR0lUSFVCX09VVFBVVCxcbiAgICAgICAgICB9ID0gcHJvY2Vzcy5lbnY7XG5cbiAgICAgICAgICBjb25zdCBbb3duZXIsIHJlcG9dID0gR0lUSFVCX1JFUE9TSVRPUlkuc3BsaXQoXCIvXCIpO1xuXG4gICAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBvd25lcixcbiAgICAgICAgICAgIHJlcG8sXG4gICAgICAgICAgICBydW46IE51bWJlcihHSVRIVUJfUlVOX0lEKSxcbiAgICAgICAgICAgIGF0dGVtcHQ6IE51bWJlcihHSVRIVUJfUlVOX0FUVEVNUFQpLFxuICAgICAgICAgICAgYWN0b3I6IE51bWJlcihHSVRIVUJfQUNUT1JfSUQpLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBrZXkgPSBoYXNoKG1ldGFkYXRhKTtcblxuICAgICAgICAgIGNvbnN0IGNoZWNrUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChuZXcgVVJMKFwiL2NoZWNrXCIsIGFwaVVybCksIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIG93bmVyLFxuICAgICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmICghY2hlY2tSZXNwb25zZS5vaykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihhd2FpdCBjaGVja1Jlc3BvbnNlLnRleHQoKSk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgeyBzaGEgfSA9IGF3YWl0IGNoZWNrUmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFNoYSA9IGlzQ29tcGFjdCA/IGFiYnJldmlhdGVDb21taXRIYXNoKHNoYSkgOiBzaGE7XG5cbiAgICAgICAgICBjb25zdCBkZXBzOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcCgpOyAvLyBwa2cucHIubmV3IHZlcnNpb25zIG9mIHRoZSBwYWNrYWdlXG4gICAgICAgICAgY29uc3QgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gaXNQZWVyRGVwc0VuYWJsZWRcbiAgICAgICAgICAgID8gbmV3IE1hcCgpXG4gICAgICAgICAgICA6IG51bGw7IC8vIHJlYWwgdmVyc2lvbnMgb2YgdGhlIHBhY2thZ2UsIHVzZWZ1bCBmb3IgcGVlckRlcGVuZGVuY2llc1xuXG4gICAgICAgICAgY29uc3QgcHJpbnRKc29uID0gdHlwZW9mIGFyZ3MuanNvbiA9PT0gXCJib29sZWFuXCI7XG4gICAgICAgICAgY29uc3Qgc2F2ZUpzb24gPSB0eXBlb2YgYXJncy5qc29uID09PSBcInN0cmluZ1wiO1xuICAgICAgICAgIGNvbnN0IGpzb25GaWxlUGF0aCA9IHNhdmVKc29uID8gYXJncy5qc29uIDogXCJcIjtcbiAgICAgICAgICBjb25zdCBvdXRwdXRNZXRhZGF0YTogT3V0cHV0TWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBwYWNrYWdlczogW10sXG4gICAgICAgICAgICB0ZW1wbGF0ZXM6IFtdLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGF0aHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKHBKc29uUGF0aCk7XG5cbiAgICAgICAgICAgIGlmICghcEpzb24pIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcEpzb24ubmFtZSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFwibmFtZVwiIGZpZWxkIGluICR7cEpzb25QYXRofSBzaG91bGQgYmUgZGVmaW5lZGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0NvbXBhY3QpIHtcbiAgICAgICAgICAgICAgYXdhaXQgdmVyaWZ5Q29tcGFjdE1vZGUocEpzb24ubmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsb25nRGVwVXJsID0gbmV3IFVSTChcbiAgICAgICAgICAgICAgYC8ke293bmVyfS8ke3JlcG99LyR7cEpzb24ubmFtZX1AJHtmb3JtYXR0ZWRTaGF9YCxcbiAgICAgICAgICAgICAgYXBpVXJsLFxuICAgICAgICAgICAgKS5ocmVmO1xuICAgICAgICAgICAgZGVwcy5zZXQocEpzb24ubmFtZSwgbG9uZ0RlcFVybCk7XG4gICAgICAgICAgICByZWFsRGVwcz8uc2V0KHBKc29uLm5hbWUsIHBKc29uLnZlcnNpb24gPz8gbG9uZ0RlcFVybCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgICAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IGZldGNoKGxvbmdEZXBVcmwsIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlc291cmNlLm9rKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICBgJHtwSnNvbi5uYW1lfUAke2Zvcm1hdHRlZFNoYX0gd2FzIGFscmVhZHkgcHVibGlzaGVkIG9uICR7bG9uZ0RlcFVybH1gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udHJvbGxlci5hYm9ydCgpO1xuXG4gICAgICAgICAgICBjb25zdCBqc29uVXJsID0gaXNDb21wYWN0XG4gICAgICAgICAgICAgID8gbmV3IFVSTChgLyR7cEpzb24ubmFtZX1AJHtmb3JtYXR0ZWRTaGF9YCwgYXBpVXJsKS5ocmVmXG4gICAgICAgICAgICAgIDogbG9uZ0RlcFVybDtcblxuICAgICAgICAgICAgLy8gQ29sbGVjdCBwYWNrYWdlIG1ldGFkYXRhXG4gICAgICAgICAgICBvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogcEpzb24ubmFtZSxcbiAgICAgICAgICAgICAgdXJsOiBqc29uVXJsLFxuICAgICAgICAgICAgICBzaGFzdW06IFwiXCIsIC8vIHdpbGwgYmUgZmlsbGVkIGxhdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHRlbXBsYXRlRGlyIG9mIHRlbXBsYXRlcykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHRlbXBsYXRlRGlyLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIGNvbnN0IHBKc29uQ29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwSnNvblBhdGgpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBwSnNvbkNvbnRlbnRzXG4gICAgICAgICAgICAgID8gcGFyc2VQYWNrYWdlSnNvbihwSnNvbkNvbnRlbnRzKVxuICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgICAgIGlmICghcEpzb24gfHwgIXBKc29uQ29udGVudHMpIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3RlbXBsYXRlRGlyfSBiZWNhdXNlIHRoZXJlJ3Mgbm8gcGFja2FnZS5qc29uIGZpbGVgLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcInByZXBhcmluZyB0ZW1wbGF0ZTpcIiwgcEpzb24ubmFtZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmUgPSBhd2FpdCB3cml0ZURlcHMoXG4gICAgICAgICAgICAgIHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBwSnNvbkNvbnRlbnRzLFxuICAgICAgICAgICAgICBwSnNvbixcbiAgICAgICAgICAgICAgZGVwcyxcbiAgICAgICAgICAgICAgcmVhbERlcHMsXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVQYXRoID0gcGF0aC5qb2luKHRlbXBsYXRlRGlyLCBcIi5naXRpZ25vcmVcIik7XG4gICAgICAgICAgICBjb25zdCBpZyA9IGlnbm9yZSgpLmFkZChcIm5vZGVfbW9kdWxlc1wiKS5hZGQoXCIuZ2l0XCIpO1xuXG4gICAgICAgICAgICBpZiAoZnNTeW5jLmV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZ2l0aWdub3JlQ29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGdpdGlnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgICAgICAgaWcuYWRkKGdpdGlnbm9yZUNvbnRlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGdsb2IoW1wiKiovKlwiXSwge1xuICAgICAgICAgICAgICBjd2Q6IHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBkb3Q6IHRydWUsXG4gICAgICAgICAgICAgIG9ubHlGaWxlczogdHJ1ZSxcbiAgICAgICAgICAgICAgaWdub3JlOiBbXCIqKi9ub2RlX21vZHVsZXNcIiwgXCIuZ2l0XCJdLCAvLyBhbHdheXMgaWdub3JlIG5vZGVfbW9kdWxlcyBhbmQgLmdpdFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRmlsZXMgPSBmaWxlcy5maWx0ZXIoKGZpbGUpID0+ICFpZy5pZ25vcmVzKGZpbGUpKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWx0ZXJlZEZpbGVzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIGZpbGVQYXRoKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGlzQmluYXJ5ID0gYXdhaXQgaXNCaW5hcnlGaWxlKGZpbGUpO1xuICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGUuYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOiR7cEpzb24ubmFtZX06JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgaXNCaW5hcnkgPyBibG9iIDogYXdhaXQgYmxvYi50ZXh0KCksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhd2FpdCByZXN0b3JlKCk7XG5cbiAgICAgICAgICAgIC8vIENvbGxlY3QgdGVtcGxhdGUgbWV0YWRhdGFcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlVXJsID0gbmV3IFVSTChcbiAgICAgICAgICAgICAgYC8ke293bmVyfS8ke3JlcG99L3RlbXBsYXRlLyR7cEpzb24ubmFtZX1gLFxuICAgICAgICAgICAgICBhcGlVcmwsXG4gICAgICAgICAgICApLmhyZWY7XG4gICAgICAgICAgICBvdXRwdXRNZXRhZGF0YS50ZW1wbGF0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIHVybDogdGVtcGxhdGVVcmwsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBub0RlZmF1bHRUZW1wbGF0ZSA9IGFyZ3MudGVtcGxhdGUgPT09IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKCFub0RlZmF1bHRUZW1wbGF0ZSAmJiB0ZW1wbGF0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gY3JlYXRlRGVmYXVsdFRlbXBsYXRlKFxuICAgICAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoZGVwcy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhwcm9qZWN0KSkge1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOmRlZmF1bHQ6JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgcHJvamVjdFtmaWxlUGF0aF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdG9yZU1hcCA9IG5ldyBNYXA8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHdyaXRlRGVwcz4+XG4gICAgICAgICAgPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb25Db250ZW50cyA9IGF3YWl0IHRyeVJlYWRGaWxlKHBKc29uUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwSnNvbiA9IHBKc29uQ29udGVudHNcbiAgICAgICAgICAgICAgPyBwYXJzZVBhY2thZ2VKc29uKHBKc29uQ29udGVudHMpXG4gICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbiB8fCAhcEpzb25Db250ZW50cykge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvcmVNYXAuc2V0KFxuICAgICAgICAgICAgICBwLFxuICAgICAgICAgICAgICBhd2FpdCB3cml0ZURlcHMocCwgcEpzb25Db250ZW50cywgcEpzb24sIGRlcHMsIHJlYWxEZXBzKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhc3VtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24ocEpzb25QYXRoKTtcbiAgICAgICAgICAgIGlmICghcEpzb24pIHtcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIXBKc29uLm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChwSnNvbi5wcml2YXRlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgcHJpdmF0ZWApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWxlbmFtZSwgc2hhc3VtIH0gPSBhd2FpdCByZXNvbHZlVGFyYmFsbChcbiAgICAgICAgICAgICAgICBwYWNrTWV0aG9kLFxuICAgICAgICAgICAgICAgIHAsXG4gICAgICAgICAgICAgICAgcEpzb24sXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgc2hhc3Vtc1twSnNvbi5uYW1lXSA9IHNoYXN1bTtcblxuICAgICAgICAgICAgICBjb25zdCBvdXRwdXRQa2cgPSBvdXRwdXRNZXRhZGF0YS5wYWNrYWdlcy5maW5kKFxuICAgICAgICAgICAgICAgIChwKSA9PiBwLm5hbWUgPT09IHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgICkhO1xuICAgICAgICAgICAgICBvdXRwdXRQa2cuc2hhc3VtID0gc2hhc3VtO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKTtcbiAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZnMucmVhZEZpbGUoZmlsZVBhdGgpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCIsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHBhY2thZ2U6JHtwSnNvbi5uYW1lfWAsIGJsb2IsIGZpbGVuYW1lKTtcblxuICAgICAgICAgICAgICBhd2FpdCBmcy5ybShmaWxlUGF0aCk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBhd2FpdCByZXN0b3JlTWFwLmdldChwKT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZm9ybURhdGFQYWNrYWdlc1NpemUgPSBbLi4uZm9ybURhdGEuZW50cmllcygpXS5yZWR1Y2UoXG4gICAgICAgICAgICAocHJldiwgW18sIGVudHJ5XSkgPT4gcHJldiArIGdldEZvcm1FbnRyeVNpemUoZW50cnkpLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgLy8gbXVsdGlwYXJ0IHVwbG9hZGluZ1xuICAgICAgICAgIGlmIChmb3JtRGF0YVBhY2thZ2VzU2l6ZSA+IDEwMjQgKiAxMDI0ICogOTkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW25hbWUsIGVudHJ5XSBvZiBmb3JtRGF0YSkge1xuICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlID0gZW50cnkgYXMgRmlsZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaHVua1NpemUgPSAxMDI0ICogMTAyNCAqIDU7XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUuc2l6ZSA8PSBjaHVua1NpemUpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbENodW5rcyA9IE1hdGguY2VpbChmaWxlLnNpemUgLyBjaHVua1NpemUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNyZWF0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNyZWF0ZU11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICAgICAgICBcInNiLW5hbWVcIjogbmFtZS5zbGljZShcInBhY2thZ2U6XCIubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCFjcmVhdGVNdWx0aXBhcnRSZXMub2spIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLnRleHQoKSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXk6IHVwbG9hZEtleSwgaWQ6IHVwbG9hZElkIH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY3JlYXRlTXVsdGlwYXJ0UmVzLmpzb24oKTtcblxuICAgICAgICAgICAgICAgIGludGVyZmFjZSBSMlVwbG9hZGVkUGFydCB7XG4gICAgICAgICAgICAgICAgICBwYXJ0TnVtYmVyOiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICBldGFnOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZGVkUGFydHM6IFIyVXBsb2FkZWRQYXJ0W10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG90YWxDaHVua3M7IGkrKykge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSBpICogY2h1bmtTaXplO1xuICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oZmlsZS5zaXplLCBzdGFydCArIGNodW5rU2l6ZSk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjaHVuayA9IGZpbGUuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHVwbG9hZE11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKHVwbG9hZE11bHRpcGFydCwge1xuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgICBpZDogdXBsb2FkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgXCJwYXJ0LW51bWJlclwiOiBgJHtpICsgMX1gLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBib2R5OiBjaHVuayxcbiAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoIXVwbG9hZE11bHRpcGFydFJlcy5vaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIGBFcnJvciB1cGxvYWRpbmcgcGFydCAke2kgKyAxfTogJHthd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXJ0IH0gPSBhd2FpdCB1cGxvYWRNdWx0aXBhcnRSZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgdXBsb2FkZWRQYXJ0cy5wdXNoKHBhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBjb21wbGV0ZU11bHRpcGFydFJlcyA9IGF3YWl0IGZldGNoKGNvbXBsZXRlTXVsdGlwYXJ0LCB7XG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHVwbG9hZEtleSxcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHVwbG9hZElkLFxuICAgICAgICAgICAgICAgICAgICBcInVwbG9hZGVkLXBhcnRzXCI6IEpTT04uc3RyaW5naWZ5KHVwbG9hZGVkUGFydHMpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbXBsZXRlTXVsdGlwYXJ0UmVzLm9rKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRXJyb3IgY29tcGxldGluZyAke2tleX06ICR7YXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMudGV4dCgpfWAsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsga2V5OiBjb21wbGV0aW9uS2V5IH0gPVxuICAgICAgICAgICAgICAgICAgYXdhaXQgY29tcGxldGVNdWx0aXBhcnRSZXMuanNvbigpO1xuXG4gICAgICAgICAgICAgICAgZm9ybURhdGEuc2V0KG5hbWUsIGBvYmplY3Q6JHtjb21wbGV0aW9uS2V5fWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocHVibGlzaFVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJzYi1jb21tZW50XCI6IGNvbW1lbnQsXG4gICAgICAgICAgICAgIFwic2ItY29tcGFjdFwiOiBgJHtpc0NvbXBhY3R9YCxcbiAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICBcInNiLXNoYXN1bXNcIjogSlNPTi5zdHJpbmdpZnkoc2hhc3VtcyksXG4gICAgICAgICAgICAgIFwic2ItcnVuLWlkXCI6IEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICAgIFwic2ItYmluXCI6IGAke2lzQmluYXJ5QXBwbGljYXRpb259YCxcbiAgICAgICAgICAgICAgXCJzYi1wYWNrYWdlLW1hbmFnZXJcIjogc2VsZWN0ZWRQYWNrYWdlTWFuYWdlcixcbiAgICAgICAgICAgICAgXCJzYi1vbmx5LXRlbXBsYXRlc1wiOiBgJHtpc09ubHlUZW1wbGF0ZXN9YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBjb25zdCBsYXRlclJlcyA9IGF3YWl0IHJlcy5jbG9uZSgpLmpzb24oKTtcbiAgICAgICAgICBhc3NlcnQuZXF1YWwoXG4gICAgICAgICAgICByZXMuc3RhdHVzLFxuICAgICAgICAgICAgMjAwLFxuICAgICAgICAgICAgYHB1Ymxpc2hpbmcgZmFpbGVkOiAke2F3YWl0IHJlcy50ZXh0KCl9YCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgY29uc3QgZGVidWcgPSBsYXRlclJlcy5kZWJ1ZztcblxuICAgICAgICAgIGNvcmUuc3RhcnRHcm91cChcIlx1RDgzRFx1REQwRCBJbmZvXCIpO1xuICAgICAgICAgIGNvcmUubm90aWNlKEpTT04uc3RyaW5naWZ5KGRlYnVnLCBudWxsLCAyKSk7XG4gICAgICAgICAgY29yZS5lbmRHcm91cCgpO1xuXG4gICAgICAgICAgY29uc29sZS53YXJuKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIlx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcblwiKTtcblxuICAgICAgICAgIGNvbnN0IHBhY2thZ2VMb2dzID0gWy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+IGsuc3RhcnRzV2l0aChcInBhY2thZ2U6XCIpKVxuICAgICAgICAgICAgLm1hcCgobmFtZSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IG5hbWUuc2xpY2UoXCJwYWNrYWdlOlwiLmxlbmd0aCk7XG4gICAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwobGF0ZXJSZXMudXJsc1tpXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHB1YmxpbnRVcmwgPSBuZXcgVVJMKFxuICAgICAgICAgICAgICAgIGAvcGtnLnByLm5ldyR7dXJsLnBhdGhuYW1lfWAsXG4gICAgICAgICAgICAgICAgXCJodHRwczovL3B1YmxpbnQuZGV2XCIsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtwYWNrYWdlTmFtZX06XG4tIHNoYTogJHtzaGFzdW1zW3BhY2thZ2VOYW1lXX1cbi0gcHVibGludDogJHtwdWJsaW50VXJsfVxuLSBucG06IG5wbSBpICR7dXJsfWA7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4ocGFja2FnZUxvZ3MpO1xuXG4gICAgICAgICAgY29uc3Qgb3V0cHV0ID0gSlNPTi5zdHJpbmdpZnkob3V0cHV0TWV0YWRhdGEsIG51bGwsIDIpO1xuICAgICAgICAgIGlmIChwcmludEpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKG91dHB1dCk7IC8vIExvZyBvdXRwdXQgZm9yIHBpcGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc2F2ZUpzb24pIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShqc29uRmlsZVBhdGgsIG91dHB1dCk7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYG1ldGFkYXRhIHdyaXR0ZW4gdG8gJHtqc29uRmlsZVBhdGh9YCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgZnMuYXBwZW5kRmlsZShHSVRIVUJfT1VUUFVULCBgc2hhPSR7Zm9ybWF0dGVkU2hhfVxcbmAsIFwidXRmOFwiKTtcbiAgICAgICAgICBhd2FpdCBmcy5hcHBlbmRGaWxlKFxuICAgICAgICAgICAgR0lUSFVCX09VVFBVVCxcbiAgICAgICAgICAgIGB1cmxzPSR7b3V0cHV0TWV0YWRhdGEucGFja2FnZXMubWFwKChwa2cpID0+IHBrZy51cmwpLmpvaW4oXCIgXCIpfVxcbmAsXG4gICAgICAgICAgICBcInV0ZjhcIixcbiAgICAgICAgICApO1xuICAgICAgICAgIGF3YWl0IGZzLmFwcGVuZEZpbGUoXG4gICAgICAgICAgICBHSVRIVUJfT1VUUFVULFxuICAgICAgICAgICAgYHBhY2thZ2VzPSR7b3V0cHV0TWV0YWRhdGEucGFja2FnZXMubWFwKChwa2cpID0+IGAke3BrZy5uYW1lfUAke3BrZy51cmx9YCkuam9pbihcIiBcIil9XFxuYCxcbiAgICAgICAgICAgIFwidXRmOFwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICAgbGluazogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWV0YToge30sXG4gICAgICAgIHJ1bjogKCkgPT4ge1xuICAgICAgICAgIC8vIG5vb3BcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgfSxcbn0pO1xuXG5ydW5NYWluKG1haW4pXG4gIC50aGVuKCgpID0+IHByb2Nlc3MuZXhpdCgwKSlcbiAgLmNhdGNoKCgpID0+IHByb2Nlc3MuZXhpdCgxKSk7XG5cbnR5cGUgUGFja01ldGhvZCA9IFwibnBtXCIgfCBcInBucG1cIiB8IFwieWFyblwiIHwgXCJidW5cIjtcblxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVRhcmJhbGwocG06IFBhY2tNZXRob2QsIHA6IHN0cmluZywgcEpzb246IFBhY2thZ2VKc29uKSB7XG4gIGxldCBjbWQgPSBgJHtwbX0gcGFja2A7XG4gIGxldCBmaWxlbmFtZSA9IGAke3BKc29uLm5hbWUhLnJlcGxhY2UoXCIvXCIsIFwiLVwiKX0tJHtwSnNvbi52ZXJzaW9ufS50Z3pgO1xuICBpZiAocG0gPT09IFwieWFyblwiKSB7XG4gICAgY21kICs9IGAgLS1maWxlbmFtZSAke2ZpbGVuYW1lfWA7XG4gIH0gZWxzZSBpZiAocG0gPT09IFwiYnVuXCIpIHtcbiAgICBjbWQgPSBgYnVuIHBtIHBhY2sgLS1maWxlbmFtZSAke2ZpbGVuYW1lfWA7XG4gIH1cbiAgY29uc3QgeyBzdGRvdXQgfSA9IGF3YWl0IGV6U3Bhd24uYXN5bmMoY21kLCB7XG4gICAgc3RkaW86IFwib3ZlcmxhcHBlZFwiLFxuICAgIGN3ZDogcCxcbiAgfSk7XG4gIGNvbnN0IGxpbmVzID0gc3Rkb3V0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcihCb29sZWFuKTtcblxuICBpZiAocG0gIT09IFwieWFyblwiICYmIHBtICE9PSBcImJ1blwiKSB7XG4gICAgZmlsZW5hbWUgPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS50cmltKCk7XG4gIH1cblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhcbiAgcDogc3RyaW5nLFxuICBwSnNvbkNvbnRlbnRzOiBzdHJpbmcsXG4gIHBKc29uOiBQYWNrYWdlSnNvbixcbiAgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgcmVhbERlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4gfCBudWxsLFxuKSB7XG4gIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcblxuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRlcGVuZGVuY2llcyk7XG4gIGhpamFja0RlcHMoZGVwcywgcEpzb24uZGV2RGVwZW5kZW5jaWVzKTtcbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5vcHRpb25hbERlcGVuZGVuY2llcyk7XG5cbiAgaWYgKHJlYWxEZXBzKSB7XG4gICAgaGlqYWNrRGVwcyhyZWFsRGVwcywgcEpzb24ucGVlckRlcGVuZGVuY2llcyk7XG4gIH1cblxuICBhd2FpdCB3cml0ZVBhY2thZ2VKU09OKHBKc29uUGF0aCwgcEpzb24pO1xuXG4gIHJldHVybiAoKSA9PiBmcy53cml0ZUZpbGUocEpzb25QYXRoLCBwSnNvbkNvbnRlbnRzKTtcbn1cblxuZnVuY3Rpb24gaGlqYWNrRGVwcyhcbiAgbmV3RGVwczogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgb2xkRGVwcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pIHtcbiAgaWYgKCFvbGREZXBzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGZvciAoY29uc3QgW25ld0RlcCwgdXJsXSBvZiBuZXdEZXBzKSB7XG4gICAgaWYgKG5ld0RlcCBpbiBvbGREZXBzKSB7XG4gICAgICBvbGREZXBzW25ld0RlcF0gPSB1cmw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbnRyeVNpemUoZW50cnk6IEZvcm1EYXRhRW50cnlWYWx1ZSkge1xuICBpZiAodHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIGVudHJ5Lmxlbmd0aDtcbiAgfVxuICByZXR1cm4gZW50cnkuc2l6ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q29tcGFjdE1vZGUocGFja2FnZU5hbWU6IHN0cmluZykge1xuICBsZXQgbWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdDtcblxuICB0cnkge1xuICAgIG1hbmlmZXN0ID0gYXdhaXQgZ2V0UGFja2FnZU1hbmlmZXN0KHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHBrZy1wci1uZXcgY2Fubm90IHJlc29sdmUgJHtwYWNrYWdlTmFtZX0gZnJvbSBucG0uIC0tY29tcGFjdCBmbGFnIGRlcGVuZHMgb24gdGhlIHBhY2thZ2UgYmVpbmcgYXZhaWxhYmxlIGluIG5wbS5cbk1ha2Ugc3VyZSB0byBoYXZlIHlvdXIgcGFja2FnZSBvbiBucG0gZmlyc3QuYCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaW5zdHJ1Y3Rpb24gPSBgTWFrZSBzdXJlIHRvIGNvbmZpZ3VyZSB0aGUgJ3JlcG9zaXRvcnknIC8gJ3JlcG9zaXRvcnkudXJsJyBmaWVsZCBpbiBpdHMgcGFja2FnZS5qc29uIHByb3Blcmx5LlxuU2VlIGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vY2xpL3YxMC9jb25maWd1cmluZy1ucG0vcGFja2FnZS1qc29uI3JlcG9zaXRvcnkgZm9yIGRldGFpbHMuYDtcblxuICBjb25zdCByZXBvc2l0b3J5ID0gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3QpO1xuICBpZiAoIXJlcG9zaXRvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgcmVwb3NpdG9yeSBsaW5rIGZyb20gdGhlICR7cGFja2FnZU5hbWV9IG1hbmlmZXN0LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGUgbGluayB0byBiZSBwcmVzZW50LlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBtYXRjaCA9IGV4dHJhY3RPd25lckFuZFJlcG8ocmVwb3NpdG9yeSk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgZXh0cmFjdCB0aGUgb3duZXIgYW5kIHJlcG8gbmFtZXMgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gcmVwb3NpdG9yeSBsaW5rOiAke3JlcG9zaXRvcnl9LiAtLWNvbXBhY3QgZmxhZyByZXF1aXJlcyB0aGVzZSBuYW1lcy5cbiR7aW5zdHJ1Y3Rpb259YCxcbiAgICApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRyeVJlYWRGaWxlKHA6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShwLCBcInV0ZjhcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRQYWNrYWdlSnNvbihwOiBzdHJpbmcpIHtcbiAgY29uc3QgY29udGVudHMgPSBhd2FpdCB0cnlSZWFkRmlsZShwKTtcbiAgaWYgKGNvbnRlbnRzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgdHJ5IHtcbiAgICByZXR1cm4gcGFyc2VQYWNrYWdlSnNvbihjb250ZW50cyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlUGFja2FnZUpzb24oY29udGVudHM6IHN0cmluZykge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnRzKSBhcyBQYWNrYWdlSnNvbjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbnZhciBfX2RlZlByb3AkMSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2RlZk5vcm1hbFByb3AkMSA9IChvYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3AkMShvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCQxID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ge1xuICBfX2RlZk5vcm1hbFByb3AkMShvYmosIHR5cGVvZiBrZXkgIT09IFwic3ltYm9sXCIgPyBrZXkgKyBcIlwiIDoga2V5LCB2YWx1ZSk7XG4gIHJldHVybiB2YWx1ZTtcbn07XG5jbGFzcyBXb3JkQXJyYXkge1xuICBjb25zdHJ1Y3Rvcih3b3Jkcywgc2lnQnl0ZXMpIHtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJ3b3Jkc1wiKTtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJzaWdCeXRlc1wiKTtcbiAgICB3b3JkcyA9IHRoaXMud29yZHMgPSB3b3JkcyB8fCBbXTtcbiAgICB0aGlzLnNpZ0J5dGVzID0gc2lnQnl0ZXMgPT09IHZvaWQgMCA/IHdvcmRzLmxlbmd0aCAqIDQgOiBzaWdCeXRlcztcbiAgfVxuICB0b1N0cmluZyhlbmNvZGVyKSB7XG4gICAgcmV0dXJuIChlbmNvZGVyIHx8IEhleCkuc3RyaW5naWZ5KHRoaXMpO1xuICB9XG4gIGNvbmNhdCh3b3JkQXJyYXkpIHtcbiAgICB0aGlzLmNsYW1wKCk7XG4gICAgaWYgKHRoaXMuc2lnQnl0ZXMgJSA0KSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHRoYXRCeXRlID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzICsgaSA+Pj4gMl0gfD0gdGhhdEJ5dGUgPDwgMjQgLSAodGhpcy5zaWdCeXRlcyArIGkpICUgNCAqIDg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBqICs9IDQpIHtcbiAgICAgICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzICsgaiA+Pj4gMl0gPSB3b3JkQXJyYXkud29yZHNbaiA+Pj4gMl07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2lnQnl0ZXMgKz0gd29yZEFycmF5LnNpZ0J5dGVzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGNsYW1wKCkge1xuICAgIHRoaXMud29yZHNbdGhpcy5zaWdCeXRlcyA+Pj4gMl0gJj0gNDI5NDk2NzI5NSA8PCAzMiAtIHRoaXMuc2lnQnl0ZXMgJSA0ICogODtcbiAgICB0aGlzLndvcmRzLmxlbmd0aCA9IE1hdGguY2VpbCh0aGlzLnNpZ0J5dGVzIC8gNCk7XG4gIH1cbiAgY2xvbmUoKSB7XG4gICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkoWy4uLnRoaXMud29yZHNdKTtcbiAgfVxufVxuY29uc3QgSGV4ID0ge1xuICBzdHJpbmdpZnkod29yZEFycmF5KSB7XG4gICAgY29uc3QgaGV4Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSsrKSB7XG4gICAgICBjb25zdCBiaXRlID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGhleENoYXJzLnB1c2goKGJpdGUgPj4+IDQpLnRvU3RyaW5nKDE2KSwgKGJpdGUgJiAxNSkudG9TdHJpbmcoMTYpKTtcbiAgICB9XG4gICAgcmV0dXJuIGhleENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBCYXNlNjQgPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBrZXlTdHIgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCI7XG4gICAgY29uc3QgYmFzZTY0Q2hhcnMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHdvcmRBcnJheS5zaWdCeXRlczsgaSArPSAzKSB7XG4gICAgICBjb25zdCBieXRlMSA9IHdvcmRBcnJheS53b3Jkc1tpID4+PiAyXSA+Pj4gMjQgLSBpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMiA9IHdvcmRBcnJheS53b3Jkc1tpICsgMSA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAxKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgYnl0ZTMgPSB3b3JkQXJyYXkud29yZHNbaSArIDIgPj4+IDJdID4+PiAyNCAtIChpICsgMikgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IHRyaXBsZXQgPSBieXRlMSA8PCAxNiB8IGJ5dGUyIDw8IDggfCBieXRlMztcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNCAmJiBpICogOCArIGogKiA2IDwgd29yZEFycmF5LnNpZ0J5dGVzICogODsgaisrKSB7XG4gICAgICAgIGJhc2U2NENoYXJzLnB1c2goa2V5U3RyLmNoYXJBdCh0cmlwbGV0ID4+PiA2ICogKDMgLSBqKSAmIDYzKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBiYXNlNjRDaGFycy5qb2luKFwiXCIpO1xuICB9XG59O1xuY29uc3QgTGF0aW4xID0ge1xuICBwYXJzZShsYXRpbjFTdHIpIHtcbiAgICBjb25zdCBsYXRpbjFTdHJMZW5ndGggPSBsYXRpbjFTdHIubGVuZ3RoO1xuICAgIGNvbnN0IHdvcmRzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYXRpbjFTdHJMZW5ndGg7IGkrKykge1xuICAgICAgd29yZHNbaSA+Pj4gMl0gfD0gKGxhdGluMVN0ci5jaGFyQ29kZUF0KGkpICYgMjU1KSA8PCAyNCAtIGkgJSA0ICogODtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBXb3JkQXJyYXkod29yZHMsIGxhdGluMVN0ckxlbmd0aCk7XG4gIH1cbn07XG5jb25zdCBVdGY4ID0ge1xuICBwYXJzZSh1dGY4U3RyKSB7XG4gICAgcmV0dXJuIExhdGluMS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQodXRmOFN0cikpKTtcbiAgfVxufTtcbmNsYXNzIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBfX3B1YmxpY0ZpZWxkJDEodGhpcywgXCJfZGF0YVwiLCBuZXcgV29yZEFycmF5KCkpO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcIl9uRGF0YUJ5dGVzXCIsIDApO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcIl9taW5CdWZmZXJTaXplXCIsIDApO1xuICAgIF9fcHVibGljRmllbGQkMSh0aGlzLCBcImJsb2NrU2l6ZVwiLCA1MTIgLyAzMik7XG4gIH1cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5fZGF0YSA9IG5ldyBXb3JkQXJyYXkoKTtcbiAgICB0aGlzLl9uRGF0YUJ5dGVzID0gMDtcbiAgfVxuICBfYXBwZW5kKGRhdGEpIHtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGRhdGEgPSBVdGY4LnBhcnNlKGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLl9kYXRhLmNvbmNhdChkYXRhKTtcbiAgICB0aGlzLl9uRGF0YUJ5dGVzICs9IGRhdGEuc2lnQnl0ZXM7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKF9kYXRhV29yZHMsIF9vZmZzZXQpIHtcbiAgfVxuICBfcHJvY2Vzcyhkb0ZsdXNoKSB7XG4gICAgbGV0IHByb2Nlc3NlZFdvcmRzO1xuICAgIGxldCBuQmxvY2tzUmVhZHkgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzIC8gKHRoaXMuYmxvY2tTaXplICogNCk7XG4gICAgaWYgKGRvRmx1c2gpIHtcbiAgICAgIG5CbG9ja3NSZWFkeSA9IE1hdGguY2VpbChuQmxvY2tzUmVhZHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLm1heCgobkJsb2Nrc1JlYWR5IHwgMCkgLSB0aGlzLl9taW5CdWZmZXJTaXplLCAwKTtcbiAgICB9XG4gICAgY29uc3QgbldvcmRzUmVhZHkgPSBuQmxvY2tzUmVhZHkgKiB0aGlzLmJsb2NrU2l6ZTtcbiAgICBjb25zdCBuQnl0ZXNSZWFkeSA9IE1hdGgubWluKG5Xb3Jkc1JlYWR5ICogNCwgdGhpcy5fZGF0YS5zaWdCeXRlcyk7XG4gICAgaWYgKG5Xb3Jkc1JlYWR5KSB7XG4gICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBuV29yZHNSZWFkeTsgb2Zmc2V0ICs9IHRoaXMuYmxvY2tTaXplKSB7XG4gICAgICAgIHRoaXMuX2RvUHJvY2Vzc0Jsb2NrKHRoaXMuX2RhdGEud29yZHMsIG9mZnNldCk7XG4gICAgICB9XG4gICAgICBwcm9jZXNzZWRXb3JkcyA9IHRoaXMuX2RhdGEud29yZHMuc3BsaWNlKDAsIG5Xb3Jkc1JlYWR5KTtcbiAgICAgIHRoaXMuX2RhdGEuc2lnQnl0ZXMgLT0gbkJ5dGVzUmVhZHk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgV29yZEFycmF5KHByb2Nlc3NlZFdvcmRzLCBuQnl0ZXNSZWFkeSk7XG4gIH1cbn1cbmNsYXNzIEhhc2hlciBleHRlbmRzIEJ1ZmZlcmVkQmxvY2tBbGdvcml0aG0ge1xuICB1cGRhdGUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHRoaXMuX2FwcGVuZChtZXNzYWdlVXBkYXRlKTtcbiAgICB0aGlzLl9wcm9jZXNzKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIGlmIChtZXNzYWdlVXBkYXRlKSB7XG4gICAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgfVxuICB9XG59XG5cbnZhciBfX2RlZlByb3AgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19wdWJsaWNGaWVsZCA9IChvYmosIGtleSwgdmFsdWUpID0+IHtcbiAgX19kZWZOb3JtYWxQcm9wKG9iaiwgdHlwZW9mIGtleSAhPT0gXCJzeW1ib2xcIiA/IGtleSArIFwiXCIgOiBrZXksIHZhbHVlKTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcbmNvbnN0IEggPSBbXG4gIDE3NzkwMzM3MDMsXG4gIC0xMTUwODMzMDE5LFxuICAxMDEzOTA0MjQyLFxuICAtMTUyMTQ4NjUzNCxcbiAgMTM1OTg5MzExOSxcbiAgLTE2OTQxNDQzNzIsXG4gIDUyODczNDYzNSxcbiAgMTU0MTQ1OTIyNVxuXTtcbmNvbnN0IEsgPSBbXG4gIDExMTYzNTI0MDgsXG4gIDE4OTk0NDc0NDEsXG4gIC0xMjQ1NjQzODI1LFxuICAtMzczOTU3NzIzLFxuICA5NjE5ODcxNjMsXG4gIDE1MDg5NzA5OTMsXG4gIC0xODQxMzMxNTQ4LFxuICAtMTQyNDIwNDA3NSxcbiAgLTY3MDU4NjIxNixcbiAgMzEwNTk4NDAxLFxuICA2MDcyMjUyNzgsXG4gIDE0MjY4ODE5ODcsXG4gIDE5MjUwNzgzODgsXG4gIC0yMTMyODg5MDkwLFxuICAtMTY4MDA3OTE5MyxcbiAgLTEwNDY3NDQ3MTYsXG4gIC00NTk1NzY4OTUsXG4gIC0yNzI3NDI1MjIsXG4gIDI2NDM0NzA3OCxcbiAgNjA0ODA3NjI4LFxuICA3NzAyNTU5ODMsXG4gIDEyNDkxNTAxMjIsXG4gIDE1NTUwODE2OTIsXG4gIDE5OTYwNjQ5ODYsXG4gIC0xNzQwNzQ2NDE0LFxuICAtMTQ3MzEzMjk0NyxcbiAgLTEzNDE5NzA0ODgsXG4gIC0xMDg0NjUzNjI1LFxuICAtOTU4Mzk1NDA1LFxuICAtNzEwNDM4NTg1LFxuICAxMTM5MjY5OTMsXG4gIDMzODI0MTg5NSxcbiAgNjY2MzA3MjA1LFxuICA3NzM1Mjk5MTIsXG4gIDEyOTQ3NTczNzIsXG4gIDEzOTYxODIyOTEsXG4gIDE2OTUxODM3MDAsXG4gIDE5ODY2NjEwNTEsXG4gIC0yMTE3OTQwOTQ2LFxuICAtMTgzODAxMTI1OSxcbiAgLTE1NjQ0ODEzNzUsXG4gIC0xNDc0NjY0ODg1LFxuICAtMTAzNTIzNjQ5NixcbiAgLTk0OTIwMjUyNSxcbiAgLTc3ODkwMTQ3OSxcbiAgLTY5NDYxNDQ5MixcbiAgLTIwMDM5NTM4NyxcbiAgMjc1NDIzMzQ0LFxuICA0MzAyMjc3MzQsXG4gIDUwNjk0ODYxNixcbiAgNjU5MDYwNTU2LFxuICA4ODM5OTc4NzcsXG4gIDk1ODEzOTU3MSxcbiAgMTMyMjgyMjIxOCxcbiAgMTUzNzAwMjA2MyxcbiAgMTc0Nzg3Mzc3OSxcbiAgMTk1NTU2MjIyMixcbiAgMjAyNDEwNDgxNSxcbiAgLTIwNjcyMzY4NDQsXG4gIC0xOTMzMTE0ODcyLFxuICAtMTg2NjUzMDgyMixcbiAgLTE1MzgyMzMxMDksXG4gIC0xMDkwOTM1ODE3LFxuICAtOTY1NjQxOTk4XG5dO1xuY29uc3QgVyA9IFtdO1xuY2xhc3MgU0hBMjU2IGV4dGVuZHMgSGFzaGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwiX2hhc2hcIiwgbmV3IFdvcmRBcnJheShbLi4uSF0pKTtcbiAgfVxuICAvKipcbiAgICogUmVzZXRzIHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgaGFzaCBvYmplY3QgdG8gaW5pdGlhbCB2YWx1ZXMuXG4gICAqL1xuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmlzaGVzIHRoZSBoYXNoIGNhbGN1bGF0aW9uIGFuZCByZXR1cm5zIHRoZSBoYXNoIGFzIGEgV29yZEFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVVwZGF0ZSAtIEFkZGl0aW9uYWwgbWVzc2FnZSBjb250ZW50IHRvIGluY2x1ZGUgaW4gdGhlIGhhc2guXG4gICAqIEByZXR1cm5zIHtXb3JkQXJyYXl9IFRoZSBmaW5hbGlzZWQgaGFzaCBhcyBhIFdvcmRBcnJheS5cbiAgICovXG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBzdXBlci5maW5hbGl6ZShtZXNzYWdlVXBkYXRlKTtcbiAgICBjb25zdCBuQml0c1RvdGFsID0gdGhpcy5fbkRhdGFCeXRlcyAqIDg7XG4gICAgY29uc3QgbkJpdHNMZWZ0ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAqIDg7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1tuQml0c0xlZnQgPj4+IDVdIHw9IDEyOCA8PCAyNCAtIG5CaXRzTGVmdCAlIDMyO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTRdID0gTWF0aC5mbG9vcihcbiAgICAgIG5CaXRzVG90YWwgLyA0Mjk0OTY3Mjk2XG4gICAgKTtcbiAgICB0aGlzLl9kYXRhLndvcmRzWyhuQml0c0xlZnQgKyA2NCA+Pj4gOSA8PCA0KSArIDE1XSA9IG5CaXRzVG90YWw7XG4gICAgdGhpcy5fZGF0YS5zaWdCeXRlcyA9IHRoaXMuX2RhdGEud29yZHMubGVuZ3RoICogNDtcbiAgICB0aGlzLl9wcm9jZXNzKCk7XG4gICAgcmV0dXJuIHRoaXMuX2hhc2g7XG4gIH1cbn1cbmZ1bmN0aW9uIHNoYTI1NihtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgU0hBMjU2KCkuZmluYWxpemUobWVzc2FnZSkudG9TdHJpbmcoKTtcbn1cbmZ1bmN0aW9uIHNoYTI1NmJhc2U2NChtZXNzYWdlKSB7XG4gIHJldHVybiBuZXcgU0hBMjU2KCkuZmluYWxpemUobWVzc2FnZSkudG9TdHJpbmcoQmFzZTY0KTtcbn1cblxuZnVuY3Rpb24gaGFzaChvYmplY3QsIG9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBoYXNoZWQgPSB0eXBlb2Ygb2JqZWN0ID09PSBcInN0cmluZ1wiID8gb2JqZWN0IDogb2JqZWN0SGFzaChvYmplY3QsIG9wdGlvbnMpO1xuICByZXR1cm4gc2hhMjU2YmFzZTY0KGhhc2hlZCkuc2xpY2UoMCwgMTApO1xufVxuXG5mdW5jdGlvbiBtdXJtdXJIYXNoKGtleSwgc2VlZCA9IDApIHtcbiAgaWYgKHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICBrZXkgPSBjcmVhdGVCdWZmZXIoa2V5KTtcbiAgfVxuICBsZXQgaSA9IDA7XG4gIGxldCBoMSA9IHNlZWQ7XG4gIGxldCBrMTtcbiAgbGV0IGgxYjtcbiAgY29uc3QgcmVtYWluZGVyID0ga2V5Lmxlbmd0aCAmIDM7XG4gIGNvbnN0IGJ5dGVzID0ga2V5Lmxlbmd0aCAtIHJlbWFpbmRlcjtcbiAgY29uc3QgYzEgPSAzNDMyOTE4MzUzO1xuICBjb25zdCBjMiA9IDQ2MTg0NTkwNztcbiAgd2hpbGUgKGkgPCBieXRlcykge1xuICAgIGsxID0ga2V5W2ldICYgMjU1IHwgKGtleVsrK2ldICYgMjU1KSA8PCA4IHwgKGtleVsrK2ldICYgMjU1KSA8PCAxNiB8IChrZXlbKytpXSAmIDI1NSkgPDwgMjQ7XG4gICAgKytpO1xuICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBrMSA9IGsxIDw8IDE1IHwgazEgPj4+IDE3O1xuICAgIGsxID0gKGsxICYgNjU1MzUpICogYzIgKyAoKChrMSA+Pj4gMTYpICogYzIgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICBoMSBePSBrMTtcbiAgICBoMSA9IGgxIDw8IDEzIHwgaDEgPj4+IDE5O1xuICAgIGgxYiA9IChoMSAmIDY1NTM1KSAqIDUgKyAoKChoMSA+Pj4gMTYpICogNSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxID0gKGgxYiAmIDY1NTM1KSArIDI3NDkyICsgKCgoaDFiID4+PiAxNikgKyA1ODk2NCAmIDY1NTM1KSA8PCAxNik7XG4gIH1cbiAgazEgPSAwO1xuICBzd2l0Y2ggKHJlbWFpbmRlcikge1xuICAgIGNhc2UgMzoge1xuICAgICAgazEgXj0gKGtleVtpICsgMl0gJiAyNTUpIDw8IDE2O1xuICAgIH1cbiAgICBjYXNlIDI6IHtcbiAgICAgIGsxIF49IChrZXlbaSArIDFdICYgMjU1KSA8PCA4O1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImV4cG9ydCB7IGEgYXMgY29uc29sYSwgYyBhcyBjcmVhdGVDb25zb2xhLCBhIGFzIGRlZmF1bHQgfSBmcm9tICcuL3NoYXJlZC9jb25zb2xhLkQ0SkszUkNLLm1qcyc7XG5leHBvcnQgeyBDb25zb2xhLCBMb2dMZXZlbHMsIExvZ1R5cGVzIH0gZnJvbSAnLi9jb3JlLm1qcyc7XG5pbXBvcnQgJy4vc2hhcmVkL2NvbnNvbGEuQ3M1RmR0SEQubWpzJztcbmltcG9ydCAnbm9kZTpwcm9jZXNzJztcbmltcG9ydCAnLi9zaGFyZWQvY29uc29sYS5DQmk2Tm05cy5tanMnO1xuaW1wb3J0ICdub2RlOnR0eSc7XG5pbXBvcnQgJ25vZGU6dXRpbCc7XG5pbXBvcnQgJ25vZGU6cGF0aCc7XG4iLCAiZXhwb3J0IHsgYSBhcyBhbGlnbiwgYiBhcyBib3gsIGMgYXMgY2VudGVyQWxpZ24sIGUgYXMgY29sb3JpemUsIGQgYXMgY29sb3JzLCBnIGFzIGdldENvbG9yLCBsIGFzIGxlZnRBbGlnbiwgciBhcyByaWdodEFsaWduLCBzIGFzIHN0cmlwQW5zaSB9IGZyb20gJy4vc2hhcmVkL2NvbnNvbGEuQ0JpNk5tOXMubWpzJztcbmltcG9ydCAnbm9kZTp0dHknO1xuIiwgImltcG9ydCBjb25zb2xhIGZyb20gJ2NvbnNvbGEnO1xuaW1wb3J0IHsgY29sb3JzIH0gZnJvbSAnY29uc29sYS91dGlscyc7XG5cbmZ1bmN0aW9uIHRvQXJyYXkodmFsKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICByZXR1cm4gdmFsO1xuICB9XG4gIHJldHVybiB2YWwgPT09IHZvaWQgMCA/IFtdIDogW3ZhbF07XG59XG5mdW5jdGlvbiBmb3JtYXRMaW5lQ29sdW1ucyhsaW5lcywgbGluZVByZWZpeCA9IFwiXCIpIHtcbiAgY29uc3QgbWF4TGVuZ2ggPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgZm9yIChjb25zdCBbaSwgZWxlbWVudF0gb2YgbGluZS5lbnRyaWVzKCkpIHtcbiAgICAgIG1heExlbmdoW2ldID0gTWF0aC5tYXgobWF4TGVuZ2hbaV0gfHwgMCwgZWxlbWVudC5sZW5ndGgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbGluZXMubWFwKFxuICAgIChsKSA9PiBsLm1hcChcbiAgICAgIChjLCBpKSA9PiBsaW5lUHJlZml4ICsgY1tpID09PSAwID8gXCJwYWRTdGFydFwiIDogXCJwYWRFbmRcIl0obWF4TGVuZ2hbaV0pXG4gICAgKS5qb2luKFwiICBcIilcbiAgKS5qb2luKFwiXFxuXCIpO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVZhbHVlKGlucHV0KSB7XG4gIHJldHVybiB0eXBlb2YgaW5wdXQgPT09IFwiZnVuY3Rpb25cIiA/IGlucHV0KCkgOiBpbnB1dDtcbn1cbmNsYXNzIENMSUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBjb2RlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5jb2RlID0gY29kZTtcbiAgICB0aGlzLm5hbWUgPSBcIkNMSUVycm9yXCI7XG4gIH1cbn1cblxuY29uc3QgTlVNQkVSX0NIQVJfUkUgPSAvXFxkLztcbmNvbnN0IFNUUl9TUExJVFRFUlMgPSBbXCItXCIsIFwiX1wiLCBcIi9cIiwgXCIuXCJdO1xuZnVuY3Rpb24gaXNVcHBlcmNhc2UoY2hhciA9IFwiXCIpIHtcbiAgaWYgKE5VTUJFUl9DSEFSX1JFLnRlc3QoY2hhcikpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIHJldHVybiBjaGFyICE9PSBjaGFyLnRvTG93ZXJDYXNlKCk7XG59XG5mdW5jdGlvbiBzcGxpdEJ5Q2FzZShzdHIsIHNlcGFyYXRvcnMpIHtcbiAgY29uc3Qgc3BsaXR0ZXJzID0gc2VwYXJhdG9ycyA/PyBTVFJfU1BMSVRURVJTO1xuICBjb25zdCBwYXJ0cyA9IFtdO1xuICBpZiAoIXN0ciB8fCB0eXBlb2Ygc3RyICE9PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnRzO1xuICB9XG4gIGxldCBidWZmID0gXCJcIjtcbiAgbGV0IHByZXZpb3VzVXBwZXI7XG4gIGxldCBwcmV2aW91c1NwbGl0dGVyO1xuICBmb3IgKGNvbnN0IGNoYXIgb2Ygc3RyKSB7XG4gICAgY29uc3QgaXNTcGxpdHRlciA9IHNwbGl0dGVycy5pbmNsdWRlcyhjaGFyKTtcbiAgICBpZiAoaXNTcGxpdHRlciA9PT0gdHJ1ZSkge1xuICAgICAgcGFydHMucHVzaChidWZmKTtcbiAgICAgIGJ1ZmYgPSBcIlwiO1xuICAgICAgcHJldmlvdXNVcHBlciA9IHZvaWQgMDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBpc1VwcGVyID0gaXNVcHBlcmNhc2UoY2hhcik7XG4gICAgaWYgKHByZXZpb3VzU3BsaXR0ZXIgPT09IGZhbHNlKSB7XG4gICAgICBpZiAocHJldmlvdXNVcHBlciA9PT0gZmFsc2UgJiYgaXNVcHBlciA9PT0gdHJ1ZSkge1xuICAgICAgICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICAgICAgICBidWZmID0gY2hhcjtcbiAgICAgICAgcHJldmlvdXNVcHBlciA9IGlzVXBwZXI7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHByZXZpb3VzVXBwZXIgPT09IHRydWUgJiYgaXNVcHBlciA9PT0gZmFsc2UgJiYgYnVmZi5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnN0IGxhc3RDaGFyID0gYnVmZi5hdCgtMSk7XG4gICAgICAgIHBhcnRzLnB1c2goYnVmZi5zbGljZSgwLCBNYXRoLm1heCgwLCBidWZmLmxlbmd0aCAtIDEpKSk7XG4gICAgICAgIGJ1ZmYgPSBsYXN0Q2hhciArIGNoYXI7XG4gICAgICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnVmZiArPSBjaGFyO1xuICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgIHByZXZpb3VzU3BsaXR0ZXIgPSBpc1NwbGl0dGVyO1xuICB9XG4gIHBhcnRzLnB1c2goYnVmZik7XG4gIHJldHVybiBwYXJ0cztcbn1cbmZ1bmN0aW9uIHVwcGVyRmlyc3Qoc3RyKSB7XG4gIHJldHVybiBzdHIgPyBzdHJbMF0udG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKSA6IFwiXCI7XG59XG5mdW5jdGlvbiBsb3dlckZpcnN0KHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvTG93ZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBcIlwiO1xufVxuZnVuY3Rpb24gcGFzY2FsQ2FzZShzdHIsIG9wdHMpIHtcbiAgcmV0dXJuIHN0ciA/IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIgOiBzcGxpdEJ5Q2FzZShzdHIpKS5tYXAoKHApID0+IHVwcGVyRmlyc3Qob3B0cz8ubm9ybWFsaXplID8gcC50b0xvd2VyQ2FzZSgpIDogcCkpLmpvaW4oXCJcIikgOiBcIlwiO1xufVxuZnVuY3Rpb24gY2FtZWxDYXNlKHN0ciwgb3B0cykge1xuICByZXR1cm4gbG93ZXJGaXJzdChwYXNjYWxDYXNlKHN0ciB8fCBcIlwiLCBvcHRzKSk7XG59XG5mdW5jdGlvbiBrZWJhYkNhc2Uoc3RyLCBqb2luZXIpIHtcbiAgcmV0dXJuIHN0ciA/IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIgOiBzcGxpdEJ5Q2FzZShzdHIpKS5tYXAoKHApID0+IHAudG9Mb3dlckNhc2UoKSkuam9pbihqb2luZXIgPz8gXCItXCIpIDogXCJcIjtcbn1cblxuZnVuY3Rpb24gdG9BcnIoYW55KSB7XG4gIHJldHVybiBhbnkgPT0gdm9pZCAwID8gW10gOiBBcnJheS5pc0FycmF5KGFueSkgPyBhbnkgOiBbYW55XTtcbn1cbmZ1bmN0aW9uIHRvVmFsKG91dCwga2V5LCB2YWwsIG9wdHMpIHtcbiAgbGV0IHg7XG4gIGNvbnN0IG9sZCA9IG91dFtrZXldO1xuICBjb25zdCBueHQgPSB+b3B0cy5zdHJpbmcuaW5kZXhPZihrZXkpID8gdmFsID09IHZvaWQgMCB8fCB2YWwgPT09IHRydWUgPyBcIlwiIDogU3RyaW5nKHZhbCkgOiB0eXBlb2YgdmFsID09PSBcImJvb2xlYW5cIiA/IHZhbCA6IH5vcHRzLmJvb2xlYW4uaW5kZXhPZihrZXkpID8gdmFsID09PSBcImZhbHNlXCIgPyBmYWxzZSA6IHZhbCA9PT0gXCJ0cnVlXCIgfHwgKG91dC5fLnB1c2goKHggPSArdmFsLCB4ICogMCA9PT0gMCkgPyB4IDogdmFsKSwgISF2YWwpIDogKHggPSArdmFsLCB4ICogMCA9PT0gMCkgPyB4IDogdmFsO1xuICBvdXRba2V5XSA9IG9sZCA9PSB2b2lkIDAgPyBueHQgOiBBcnJheS5pc0FycmF5KG9sZCkgPyBvbGQuY29uY2F0KG54dCkgOiBbb2xkLCBueHRdO1xufVxuZnVuY3Rpb24gcGFyc2VSYXdBcmdzKGFyZ3MgPSBbXSwgb3B0cyA9IHt9KSB7XG4gIGxldCBrO1xuICBsZXQgYXJyO1xuICBsZXQgYXJnO1xuICBsZXQgbmFtZTtcbiAgbGV0IHZhbDtcbiAgY29uc3Qgb3V0ID0geyBfOiBbXSB9O1xuICBsZXQgaSA9IDA7XG4gIGxldCBqID0gMDtcbiAgbGV0IGlkeCA9IDA7XG4gIGNvbnN0IGxlbiA9IGFyZ3MubGVuZ3RoO1xuICBjb25zdCBhbGliaSA9IG9wdHMuYWxpYXMgIT09IHZvaWQgMDtcbiAgY29uc3Qgc3RyaWN0ID0gb3B0cy51bmtub3duICE9PSB2b2lkIDA7XG4gIGNvbnN0IGRlZmF1bHRzID0gb3B0cy5kZWZhdWx0ICE9PSB2b2lkIDA7XG4gIG9wdHMuYWxpYXMgPSBvcHRzLmFsaWFzIHx8IHt9O1xuICBvcHRzLnN0cmluZyA9IHRvQXJyKG9wdHMuc3RyaW5nKTtcbiAgb3B0cy5ib29sZWFuID0gdG9BcnIob3B0cy5ib29sZWFuKTtcbiAgaWYgKGFsaWJpKSB7XG4gICAgZm9yIChrIGluIG9wdHMuYWxpYXMpIHtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gPSB0b0FycihvcHRzLmFsaWFzW2tdKTtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgKG9wdHMuYWxpYXNbYXJyW2ldXSA9IGFyci5jb25jYXQoaykpLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZm9yIChpID0gb3B0cy5ib29sZWFuLmxlbmd0aDsgaS0tID4gMDsgKSB7XG4gICAgYXJyID0gb3B0cy5hbGlhc1tvcHRzLmJvb2xlYW5baV1dIHx8IFtdO1xuICAgIGZvciAoaiA9IGFyci5sZW5ndGg7IGotLSA+IDA7ICkge1xuICAgICAgb3B0cy5ib29sZWFuLnB1c2goYXJyW2pdKTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gb3B0cy5zdHJpbmcubGVuZ3RoOyBpLS0gPiAwOyApIHtcbiAgICBhcnIgPSBvcHRzLmFsaWFzW29wdHMuc3RyaW5nW2ldXSB8fCBbXTtcbiAgICBmb3IgKGogPSBhcnIubGVuZ3RoOyBqLS0gPiAwOyApIHtcbiAgICAgIG9wdHMuc3RyaW5nLnB1c2goYXJyW2pdKTtcbiAgICB9XG4gIH1cbiAgaWYgKGRlZmF1bHRzKSB7XG4gICAgZm9yIChrIGluIG9wdHMuZGVmYXVsdCkge1xuICAgICAgbmFtZSA9IHR5cGVvZiBvcHRzLmRlZmF1bHRba107XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdID0gb3B0cy5hbGlhc1trXSB8fCBbXTtcbiAgICAgIGlmIChvcHRzW25hbWVdICE9PSB2b2lkIDApIHtcbiAgICAgICAgb3B0c1tuYW1lXS5wdXNoKGspO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgb3B0c1tuYW1lXS5wdXNoKGFycltpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY29uc3Qga2V5cyA9IHN0cmljdCA/IE9iamVjdC5rZXlzKG9wdHMuYWxpYXMpIDogW107XG4gIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGFyZyA9IGFyZ3NbaV07XG4gICAgaWYgKGFyZyA9PT0gXCItLVwiKSB7XG4gICAgICBvdXQuXyA9IG91dC5fLmNvbmNhdChhcmdzLnNsaWNlKCsraSkpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGZvciAoaiA9IDA7IGogPCBhcmcubGVuZ3RoOyBqKyspIHtcbiAgICAgIGlmIChhcmcuY2hhckNvZGVBdChqKSAhPT0gNDUpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChqID09PSAwKSB7XG4gICAgICBvdXQuXy5wdXNoKGFyZyk7XG4gICAgfSBlbHNlIGlmIChhcmcuc3Vic3RyaW5nKGosIGogKyAzKSA9PT0gXCJuby1cIikge1xuICAgICAgbmFtZSA9IGFyZy5zbGljZShNYXRoLm1heCgwLCBqICsgMykpO1xuICAgICAgaWYgKHN0cmljdCAmJiAhfmtleXMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgICByZXR1cm4gb3B0cy51bmtub3duKGFyZyk7XG4gICAgICB9XG4gICAgICBvdXRbbmFtZV0gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChpZHggPSBqICsgMTsgaWR4IDwgYXJnLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgaWYgKGFyZy5jaGFyQ29kZUF0KGlkeCkgPT09IDYxKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIG5hbWUgPSBhcmcuc3Vic3RyaW5nKGosIGlkeCk7XG4gICAgICB2YWwgPSBhcmcuc2xpY2UoTWF0aC5tYXgoMCwgKytpZHgpKSB8fCBpICsgMSA9PT0gbGVuIHx8IChcIlwiICsgYXJnc1tpICsgMV0pLmNoYXJDb2RlQXQoMCkgPT09IDQ1IHx8IGFyZ3NbKytpXTtcbiAgICAgIGFyciA9IGogPT09IDIgPyBbbmFtZV0gOiBuYW1lO1xuICAgICAgZm9yIChpZHggPSAwOyBpZHggPCBhcnIubGVuZ3RoOyBpZHgrKykge1xuICAgICAgICBuYW1lID0gYXJyW2lkeF07XG4gICAgICAgIGlmIChzdHJpY3QgJiYgIX5rZXlzLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgICByZXR1cm4gb3B0cy51bmtub3duKFwiLVwiLnJlcGVhdChqKSArIG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHRvVmFsKG91dCwgbmFtZSwgaWR4ICsgMSA8IGFyci5sZW5ndGggfHwgdmFsLCBvcHRzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGRlZmF1bHRzKSB7XG4gICAgZm9yIChrIGluIG9wdHMuZGVmYXVsdCkge1xuICAgICAgaWYgKG91dFtrXSA9PT0gdm9pZCAwKSB7XG4gICAgICAgIG91dFtrXSA9IG9wdHMuZGVmYXVsdFtrXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsaWJpKSB7XG4gICAgZm9yIChrIGluIG91dCkge1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSB8fCBbXTtcbiAgICAgIHdoaWxlIChhcnIubGVuZ3RoID4gMCkge1xuICAgICAgICBvdXRbYXJyLnNoaWZ0KCldID0gb3V0W2tdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3MocmF3QXJncywgYXJnc0RlZikge1xuICBjb25zdCBwYXJzZU9wdGlvbnMgPSB7XG4gICAgYm9vbGVhbjogW10sXG4gICAgc3RyaW5nOiBbXSxcbiAgICBtaXhlZDogW10sXG4gICAgYWxpYXM6IHt9LFxuICAgIGRlZmF1bHQ6IHt9XG4gIH07XG4gIGNvbnN0IGFyZ3MgPSByZXNvbHZlQXJncyhhcmdzRGVmKTtcbiAgZm9yIChjb25zdCBhcmcgb2YgYXJncykge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoYXJnLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5zdHJpbmcucHVzaChhcmcubmFtZSk7XG4gICAgfSBlbHNlIGlmIChhcmcudHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5ib29sZWFuLnB1c2goYXJnLm5hbWUpO1xuICAgIH1cbiAgICBpZiAoYXJnLmRlZmF1bHQgIT09IHZvaWQgMCkge1xuICAgICAgcGFyc2VPcHRpb25zLmRlZmF1bHRbYXJnLm5hbWVdID0gYXJnLmRlZmF1bHQ7XG4gICAgfVxuICAgIGlmIChhcmcuYWxpYXMpIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5hbGlhc1thcmcubmFtZV0gPSBhcmcuYWxpYXM7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlUmF3QXJncyhyYXdBcmdzLCBwYXJzZU9wdGlvbnMpO1xuICBjb25zdCBbLi4ucG9zaXRpb25hbEFyZ3VtZW50c10gPSBwYXJzZWQuXztcbiAgY29uc3QgcGFyc2VkQXJnc1Byb3h5ID0gbmV3IFByb3h5KHBhcnNlZCwge1xuICAgIGdldCh0YXJnZXQsIHByb3ApIHtcbiAgICAgIHJldHVybiB0YXJnZXRbcHJvcF0gPz8gdGFyZ2V0W2NhbWVsQ2FzZShwcm9wKV0gPz8gdGFyZ2V0W2tlYmFiQ2FzZShwcm9wKV07XG4gICAgfVxuICB9KTtcbiAgZm9yIChjb25zdCBbLCBhcmddIG9mIGFyZ3MuZW50cmllcygpKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29uc3QgbmV4dFBvc2l0aW9uYWxBcmd1bWVudCA9IHBvc2l0aW9uYWxBcmd1bWVudHMuc2hpZnQoKTtcbiAgICAgIGlmIChuZXh0UG9zaXRpb25hbEFyZ3VtZW50ICE9PSB2b2lkIDApIHtcbiAgICAgICAgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9IG5leHRQb3NpdGlvbmFsQXJndW1lbnQ7XG4gICAgICB9IGVsc2UgaWYgKGFyZy5kZWZhdWx0ID09PSB2b2lkIDAgJiYgYXJnLnJlcXVpcmVkICE9PSBmYWxzZSkge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXG4gICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudDogJHthcmcubmFtZS50b1VwcGVyQ2FzZSgpfWAsXG4gICAgICAgICAgXCJFQVJHXCJcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPSBhcmcuZGVmYXVsdDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFyZy5yZXF1aXJlZCAmJiBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID09PSB2b2lkIDApIHtcbiAgICAgIHRocm93IG5ldyBDTElFcnJvcihgTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudDogLS0ke2FyZy5uYW1lfWAsIFwiRUFSR1wiKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlZEFyZ3NQcm94eTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBcmdzKGFyZ3NEZWYpIHtcbiAgY29uc3QgYXJncyA9IFtdO1xuICBmb3IgKGNvbnN0IFtuYW1lLCBhcmdEZWZdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3NEZWYgfHwge30pKSB7XG4gICAgYXJncy5wdXNoKHtcbiAgICAgIC4uLmFyZ0RlZixcbiAgICAgIG5hbWUsXG4gICAgICBhbGlhczogdG9BcnJheShhcmdEZWYuYWxpYXMpXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmZ1bmN0aW9uIGRlZmluZUNvbW1hbmQoZGVmKSB7XG4gIHJldHVybiBkZWY7XG59XG5hc3luYyBmdW5jdGlvbiBydW5Db21tYW5kKGNtZCwgb3B0cykge1xuICBjb25zdCBjbWRBcmdzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5hcmdzIHx8IHt9KTtcbiAgY29uc3QgcGFyc2VkQXJncyA9IHBhcnNlQXJncyhvcHRzLnJhd0FyZ3MsIGNtZEFyZ3MpO1xuICBjb25zdCBjb250ZXh0ID0ge1xuICAgIHJhd0FyZ3M6IG9wdHMucmF3QXJncyxcbiAgICBhcmdzOiBwYXJzZWRBcmdzLFxuICAgIGRhdGE6IG9wdHMuZGF0YSxcbiAgICBjbWRcbiAgfTtcbiAgaWYgKHR5cGVvZiBjbWQuc2V0dXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGF3YWl0IGNtZC5zZXR1cChjb250ZXh0KTtcbiAgfVxuICBsZXQgcmVzdWx0O1xuICB0cnkge1xuICAgIGNvbnN0IHN1YkNvbW1hbmRzID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5zdWJDb21tYW5kcyk7XG4gICAgaWYgKHN1YkNvbW1hbmRzICYmIE9iamVjdC5rZXlzKHN1YkNvbW1hbmRzKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdWJDb21tYW5kQXJnSW5kZXggPSBvcHRzLnJhd0FyZ3MuZmluZEluZGV4KFxuICAgICAgICAoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpXG4gICAgICApO1xuICAgICAgY29uc3Qgc3ViQ29tbWFuZE5hbWUgPSBvcHRzLnJhd0FyZ3Nbc3ViQ29tbWFuZEFyZ0luZGV4XTtcbiAgICAgIGlmIChzdWJDb21tYW5kTmFtZSkge1xuICAgICAgICBpZiAoIXN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSkge1xuICAgICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcbiAgICAgICAgICAgIGBVbmtub3duIGNvbW1hbmQgXFxgJHtzdWJDb21tYW5kTmFtZX1cXGBgLFxuICAgICAgICAgICAgXCJFX1VOS05PV05fQ09NTUFORFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJDb21tYW5kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSk7XG4gICAgICAgIGlmIChzdWJDb21tYW5kKSB7XG4gICAgICAgICAgYXdhaXQgcnVuQ29tbWFuZChzdWJDb21tYW5kLCB7XG4gICAgICAgICAgICByYXdBcmdzOiBvcHRzLnJhd0FyZ3Muc2xpY2Uoc3ViQ29tbWFuZEFyZ0luZGV4ICsgMSlcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICghY21kLnJ1bikge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoYE5vIGNvbW1hbmQgc3BlY2lmaWVkLmAsIFwiRV9OT19DT01NQU5EXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGNtZC5ydW4gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgY21kLnJ1bihjb250ZXh0KTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKHR5cGVvZiBjbWQuY2xlYW51cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBhd2FpdCBjbWQuY2xlYW51cChjb250ZXh0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcmVzdWx0IH07XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MsIHBhcmVudCkge1xuICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICBpZiAoc3ViQ29tbWFuZHMgJiYgT2JqZWN0LmtleXMoc3ViQ29tbWFuZHMpLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCBzdWJDb21tYW5kQXJnSW5kZXggPSByYXdBcmdzLmZpbmRJbmRleCgoYXJnKSA9PiAhYXJnLnN0YXJ0c1dpdGgoXCItXCIpKTtcbiAgICBjb25zdCBzdWJDb21tYW5kTmFtZSA9IHJhd0FyZ3Nbc3ViQ29tbWFuZEFyZ0luZGV4XTtcbiAgICBjb25zdCBzdWJDb21tYW5kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNvbW1hbmRzW3N1YkNvbW1hbmROYW1lXSk7XG4gICAgaWYgKHN1YkNvbW1hbmQpIHtcbiAgICAgIHJldHVybiByZXNvbHZlU3ViQ29tbWFuZChcbiAgICAgICAgc3ViQ29tbWFuZCxcbiAgICAgICAgcmF3QXJncy5zbGljZShzdWJDb21tYW5kQXJnSW5kZXggKyAxKSxcbiAgICAgICAgY21kXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW2NtZCwgcGFyZW50XTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc2hvd1VzYWdlKGNtZCwgcGFyZW50KSB7XG4gIHRyeSB7XG4gICAgY29uc29sYS5sb2coYXdhaXQgcmVuZGVyVXNhZ2UoY21kLCBwYXJlbnQpICsgXCJcXG5cIik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sYS5lcnJvcihlcnJvcik7XG4gIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlclVzYWdlKGNtZCwgcGFyZW50KSB7XG4gIGNvbnN0IGNtZE1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLm1ldGEgfHwge30pO1xuICBjb25zdCBjbWRBcmdzID0gcmVzb2x2ZUFyZ3MoYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5hcmdzIHx8IHt9KSk7XG4gIGNvbnN0IHBhcmVudE1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUocGFyZW50Py5tZXRhIHx8IHt9KTtcbiAgY29uc3QgY29tbWFuZE5hbWUgPSBgJHtwYXJlbnRNZXRhLm5hbWUgPyBgJHtwYXJlbnRNZXRhLm5hbWV9IGAgOiBcIlwifWAgKyAoY21kTWV0YS5uYW1lIHx8IHByb2Nlc3MuYXJndlsxXSk7XG4gIGNvbnN0IGFyZ0xpbmVzID0gW107XG4gIGNvbnN0IHBvc0xpbmVzID0gW107XG4gIGNvbnN0IGNvbW1hbmRzTGluZXMgPSBbXTtcbiAgY29uc3QgdXNhZ2VMaW5lID0gW107XG4gIGZvciAoY29uc3QgYXJnIG9mIGNtZEFyZ3MpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb25zdCBuYW1lID0gYXJnLm5hbWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBhcmcucmVxdWlyZWQgIT09IGZhbHNlICYmIGFyZy5kZWZhdWx0ID09PSB2b2lkIDA7XG4gICAgICBjb25zdCBkZWZhdWx0SGludCA9IGFyZy5kZWZhdWx0ID8gYD1cIiR7YXJnLmRlZmF1bHR9XCJgIDogXCJcIjtcbiAgICAgIHBvc0xpbmVzLnB1c2goW1xuICAgICAgICBcImBcIiArIG5hbWUgKyBkZWZhdWx0SGludCArIFwiYFwiLFxuICAgICAgICBhcmcuZGVzY3JpcHRpb24gfHwgXCJcIixcbiAgICAgICAgYXJnLnZhbHVlSGludCA/IGA8JHthcmcudmFsdWVIaW50fT5gIDogXCJcIlxuICAgICAgXSk7XG4gICAgICB1c2FnZUxpbmUucHVzaChpc1JlcXVpcmVkID8gYDwke25hbWV9PmAgOiBgWyR7bmFtZX1dYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBhcmcucmVxdWlyZWQgPT09IHRydWUgJiYgYXJnLmRlZmF1bHQgPT09IHZvaWQgMDtcbiAgICAgIGNvbnN0IGFyZ1N0ciA9IChhcmcudHlwZSA9PT0gXCJib29sZWFuXCIgJiYgYXJnLmRlZmF1bHQgPT09IHRydWUgPyBbXG4gICAgICAgIC4uLihhcmcuYWxpYXMgfHwgW10pLm1hcCgoYSkgPT4gYC0tbm8tJHthfWApLFxuICAgICAgICBgLS1uby0ke2FyZy5uYW1lfWBcbiAgICAgIF0uam9pbihcIiwgXCIpIDogWy4uLihhcmcuYWxpYXMgfHwgW10pLm1hcCgoYSkgPT4gYC0ke2F9YCksIGAtLSR7YXJnLm5hbWV9YF0uam9pbihcbiAgICAgICAgXCIsIFwiXG4gICAgICApKSArIChhcmcudHlwZSA9PT0gXCJzdHJpbmdcIiAmJiAoYXJnLnZhbHVlSGludCB8fCBhcmcuZGVmYXVsdCkgPyBgPSR7YXJnLnZhbHVlSGludCA/IGA8JHthcmcudmFsdWVIaW50fT5gIDogYFwiJHthcmcuZGVmYXVsdCB8fCBcIlwifVwiYH1gIDogXCJcIik7XG4gICAgICBhcmdMaW5lcy5wdXNoKFtcbiAgICAgICAgXCJgXCIgKyBhcmdTdHIgKyAoaXNSZXF1aXJlZCA/IFwiIChyZXF1aXJlZClcIiA6IFwiXCIpICsgXCJgXCIsXG4gICAgICAgIGFyZy5kZXNjcmlwdGlvbiB8fCBcIlwiXG4gICAgICBdKTtcbiAgICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICAgIHVzYWdlTGluZS5wdXNoKGFyZ1N0cik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChjbWQuc3ViQ29tbWFuZHMpIHtcbiAgICBjb25zdCBjb21tYW5kTmFtZXMgPSBbXTtcbiAgICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICAgIGZvciAoY29uc3QgW25hbWUsIHN1Yl0gb2YgT2JqZWN0LmVudHJpZXMoc3ViQ29tbWFuZHMpKSB7XG4gICAgICBjb25zdCBzdWJDbWQgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViKTtcbiAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCByZXNvbHZlVmFsdWUoc3ViQ21kPy5tZXRhKTtcbiAgICAgIGNvbW1hbmRzTGluZXMucHVzaChbYFxcYCR7bmFtZX1cXGBgLCBtZXRhPy5kZXNjcmlwdGlvbiB8fCBcIlwiXSk7XG4gICAgICBjb21tYW5kTmFtZXMucHVzaChuYW1lKTtcbiAgICB9XG4gICAgdXNhZ2VMaW5lLnB1c2goY29tbWFuZE5hbWVzLmpvaW4oXCJ8XCIpKTtcbiAgfVxuICBjb25zdCB1c2FnZUxpbmVzID0gW107XG4gIGNvbnN0IHZlcnNpb24gPSBjbWRNZXRhLnZlcnNpb24gfHwgcGFyZW50TWV0YS52ZXJzaW9uO1xuICB1c2FnZUxpbmVzLnB1c2goXG4gICAgY29sb3JzLmdyYXkoXG4gICAgICBgJHtjbWRNZXRhLmRlc2NyaXB0aW9ufSAoJHtjb21tYW5kTmFtZSArICh2ZXJzaW9uID8gYCB2JHt2ZXJzaW9ufWAgOiBcIlwiKX0pYFxuICAgICksXG4gICAgXCJcIlxuICApO1xuICBjb25zdCBoYXNPcHRpb25zID0gYXJnTGluZXMubGVuZ3RoID4gMCB8fCBwb3NMaW5lcy5sZW5ndGggPiAwO1xuICB1c2FnZUxpbmVzLnB1c2goXG4gICAgYCR7Y29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIlVTQUdFXCIpKX0gXFxgJHtjb21tYW5kTmFtZX0ke2hhc09wdGlvbnMgPyBcIiBbT1BUSU9OU11cIiA6IFwiXCJ9ICR7dXNhZ2VMaW5lLmpvaW4oXCIgXCIpfVxcYGAsXG4gICAgXCJcIlxuICApO1xuICBpZiAocG9zTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiQVJHVU1FTlRTXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKHBvc0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXCJcIik7XG4gIH1cbiAgaWYgKGFyZ0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIk9QVElPTlNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMoYXJnTGluZXMsIFwiICBcIikpO1xuICAgIHVzYWdlTGluZXMucHVzaChcIlwiKTtcbiAgfVxuICBpZiAoY29tbWFuZHNMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJDT01NQU5EU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhjb21tYW5kc0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXG4gICAgICBcIlwiLFxuICAgICAgYFVzZSBcXGAke2NvbW1hbmROYW1lfSA8Y29tbWFuZD4gLS1oZWxwXFxgIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGEgY29tbWFuZC5gXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdXNhZ2VMaW5lcy5maWx0ZXIoKGwpID0+IHR5cGVvZiBsID09PSBcInN0cmluZ1wiKS5qb2luKFwiXFxuXCIpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBydW5NYWluKGNtZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHJhd0FyZ3MgPSBvcHRzLnJhd0FyZ3MgfHwgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpO1xuICBjb25zdCBzaG93VXNhZ2UkMSA9IG9wdHMuc2hvd1VzYWdlIHx8IHNob3dVc2FnZTtcbiAgdHJ5IHtcbiAgICBpZiAocmF3QXJncy5pbmNsdWRlcyhcIi0taGVscFwiKSB8fCByYXdBcmdzLmluY2x1ZGVzKFwiLWhcIikpIHtcbiAgICAgIGF3YWl0IHNob3dVc2FnZSQxKC4uLmF3YWl0IHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncykpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH0gZWxzZSBpZiAocmF3QXJncy5sZW5ndGggPT09IDEgJiYgcmF3QXJnc1swXSA9PT0gXCItLXZlcnNpb25cIikge1xuICAgICAgY29uc3QgbWV0YSA9IHR5cGVvZiBjbWQubWV0YSA9PT0gXCJmdW5jdGlvblwiID8gYXdhaXQgY21kLm1ldGEoKSA6IGF3YWl0IGNtZC5tZXRhO1xuICAgICAgaWYgKCFtZXRhPy52ZXJzaW9uKSB7XG4gICAgICAgIHRocm93IG5ldyBDTElFcnJvcihcIk5vIHZlcnNpb24gc3BlY2lmaWVkXCIsIFwiRV9OT19WRVJTSU9OXCIpO1xuICAgICAgfVxuICAgICAgY29uc29sYS5sb2cobWV0YS52ZXJzaW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgcnVuQ29tbWFuZChjbWQsIHsgcmF3QXJncyB9KTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgaXNDTElFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgQ0xJRXJyb3I7XG4gICAgaWYgKCFpc0NMSUVycm9yKSB7XG4gICAgICBjb25zb2xhLmVycm9yKGVycm9yLCBcIlxcblwiKTtcbiAgICB9XG4gICAgaWYgKGlzQ0xJRXJyb3IpIHtcbiAgICAgIGF3YWl0IHNob3dVc2FnZSQxKC4uLmF3YWl0IHJlc29sdmVTdWJDb21tYW5kKGNtZCwgcmF3QXJncykpO1xuICAgIH1cbiAgICBjb25zb2xhLmVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlTWFpbihjbWQpIHtcbiAgcmV0dXJuIChvcHRzID0ge30pID0+IHJ1bk1haW4oY21kLCBvcHRzKTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlTWFpbiwgZGVmaW5lQ29tbWFuZCwgcGFyc2VBcmdzLCByZW5kZXJVc2FnZSwgcnVuQ29tbWFuZCwgcnVuTWFpbiwgc2hvd1VzYWdlIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBQYWNrYWdlTWFuaWZlc3QgfSBmcm9tIFwicXVlcnktcmVnaXN0cnlcIjtcblxuY29uc3QgZ2l0aHViVXJsUmVnZXggPVxuICAvXig/OmdpdFxcKyk/aHR0cHM/OlxcL1xcL2dpdGh1YlxcLmNvbVxcLyhbXi9dKylcXC8oW14vXSspXFwuZ2l0JC87XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0T3duZXJBbmRSZXBvKFxuICByZXBvc2l0b3J5VXJsOiBzdHJpbmcsXG4pOiBbc3RyaW5nLCBzdHJpbmddIHwgbnVsbCB7XG4gIGNvbnN0IG1hdGNoID0gcmVwb3NpdG9yeVVybC5tYXRjaChnaXRodWJVcmxSZWdleCk7XG5cbiAgaWYgKG1hdGNoKSB7XG4gICAgcmV0dXJuIFttYXRjaFsxXSwgbWF0Y2hbMl1dO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0UmVwb3NpdG9yeShtYW5pZmVzdDogUGFja2FnZU1hbmlmZXN0KSB7XG4gIHJldHVybiB0eXBlb2YgbWFuaWZlc3QucmVwb3NpdG9yeSA9PT0gXCJzdHJpbmdcIlxuICAgID8gbWFuaWZlc3QucmVwb3NpdG9yeVxuICAgIDogbWFuaWZlc3QucmVwb3NpdG9yeT8udXJsO1xufVxuXG5jb25zdCBjb21taXRMZW5ndGggPSA3O1xuXG4vKlxuICogXCIwOWVmZDA1NTMzNzRmZjdkM2U2MmI3OTM3OGUzMTg0ZjVlYjU3NTcxXCIgPT4gXCIwOWVmZDA1XCJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFiYnJldmlhdGVDb21taXRIYXNoKGZ1bGxIYXNoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bGxIYXNoLnN1YnN0cmluZygwLCBjb21taXRMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQdWxsUmVxdWVzdChyZWY6IHN0cmluZykge1xuICByZXR1cm4gIU51bWJlci5pc05hTihOdW1iZXIocmVmKSk7XG59XG5cbmV4cG9ydCB0eXBlIENvbW1lbnQgPSBcIm9mZlwiIHwgXCJjcmVhdGVcIiB8IFwidXBkYXRlXCI7XG5leHBvcnQgdHlwZSBQYWNrYWdlTWFuYWdlciA9IFwibnBtXCIgfCBcInBucG1cIiB8IFwieWFyblwiIHwgXCJidW5cIjtcblxuY29uc3Qgd2hpdGVsaXN0ID1cbiAgXCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vc3RhY2tibGl0ei1sYWJzL3BrZy5wci5uZXcvbWFpbi8ud2hpdGVsaXN0XCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpc1doaXRlbGlzdGVkKG93bmVyOiBzdHJpbmcsIHJlcG86IHN0cmluZykge1xuICBjb25zdCBjb21iaW5hdGlvbiA9IGAke293bmVyfS8ke3JlcG99YDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2god2hpdGVsaXN0KTtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQuaW5jbHVkZXMoY29tYmluYXRpb24pO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICJ7XG4gIFwibmFtZVwiOiBcInBrZy1wci1uZXdcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMC4wLjYwXCIsXG4gIFwiZGVzY3JpcHRpb25cIjogXCJcIixcbiAgXCJtYWluXCI6IFwiaW5kZXguanNcIixcbiAgXCJ0eXBlXCI6IFwibW9kdWxlXCIsXG4gIFwiYmluXCI6IHtcbiAgICBcInBrZy1wci1uZXdcIjogXCJiaW4vY2xpLmpzXCJcbiAgfSxcbiAgXCJyZXBvc2l0b3J5XCI6IHtcbiAgICBcInR5cGVcIjogXCJnaXRcIixcbiAgICBcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zdGFja2JsaXR6LWxhYnMvcGtnLnByLm5ld1wiLFxuICAgIFwiZGlyZWN0b3J5XCI6IFwicGFja2FnZXMvY2xpXCJcbiAgfSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImRldlwiOiBcInRzdXAgLS13YXRjaFwiLFxuICAgIFwiYnVpbGRcIjogXCJ0c3VwXCIsXG4gICAgXCJidWlsZDpwdWJsaXNoXCI6IFwiQVBJX1VSTD1odHRwczovL3BrZy5wci5uZXcvIHRzdXBcIlxuICB9LFxuICBcImtleXdvcmRzXCI6IFtdLFxuICBcImF1dGhvclwiOiBcIlwiLFxuICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGFjdGlvbnMvY29yZVwiOiBcIl4xLjExLjFcIixcbiAgICBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI6IFwiXjMuMC40XCIsXG4gICAgXCJAb2N0b2tpdC9hY3Rpb25cIjogXCJeNi4xLjBcIixcbiAgICBcImlnbm9yZVwiOiBcIl41LjMuMVwiLFxuICAgIFwiaXNiaW5hcnlmaWxlXCI6IFwiXjUuMC4yXCIsXG4gICAgXCJwa2ctdHlwZXNcIjogXCJeMS4xLjFcIixcbiAgICBcInF1ZXJ5LXJlZ2lzdHJ5XCI6IFwiXjMuMC4xXCIsXG4gICAgXCJ0aW55Z2xvYmJ5XCI6IFwiXjAuMi45XCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQHBrZy1wci1uZXcvdXRpbHNcIjogXCJ3b3Jrc3BhY2U6XlwiLFxuICAgIFwiY2l0dHlcIjogXCJeMC4xLjZcIixcbiAgICBcInRzdXBcIjogXCJeOC4wLjJcIlxuICB9XG59XG4iLCAiZXhwb3J0IGNvbnN0IGNyZWF0ZURlZmF1bHRUZW1wbGF0ZSA9IChcbiAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKSA9PiAoe1xuICBcImluZGV4LmpzXCI6IFwiXCIsXG4gIFwiUkVBRE1FLm1kXCI6IGBcbiMgRGVmYXVsdCBUZW1wbGF0ZVxuXG5UaGlzIGlzIGEgdGVtcGxhdGUgdGhhdCBsZXZlcmFnZXMgdGhlIGV4cGVyaW1lbnRhbCB0ZW1wbGF0ZXMgZmVhdHVyZSBpbiB0aGUgXFxgcGtnLnByLm5ld1xcYCB0b29sLlxuXG4jIyBPdmVydmlld1xuXG5UZW1wbGF0ZXMgYXJlIHBhcnRpY3VsYXJseSB1c2VmdWwgZm9yIGNyZWF0aW5nIGxpdmUsIGludGVyYWN0aXZlIGV4YW1wbGVzIG9mIHlvdXIgcGFja2FnZXMsIHdoaWNoIGNhbiBiZSB2ZXJ5IGJlbmVmaWNpYWwgZm9yIGJvdGggZGV2ZWxvcG1lbnQgYW5kIGRvY3VtZW50YXRpb24gcHVycG9zZXMuXG5cbkFzIGEgdXNlciwgeW91IGNhbiBjaGVjayB0aGUgcGFja2FnZS5qc29uIGZpbGUgYW5kIHNlZSB0aGUgbmV3IGdlbmVyYXRlZCBwYWNrYWdlcyEgWW91IGNhbiBqdXN0IGNvcHkgdGhvc2UgYW5kIHB1dCB0aGVtIGluIHlvdXIgcGFja2FnZS5qc29uIG9yIGluc3RhbGwgdGhlbSB3aXRoIHlvdXIgZmF2b3JpdGUgcGFja2FnZSBtYW5hZ2VyLlxuXG4ke09iamVjdC52YWx1ZXMoZGVwZW5kZW5jaWVzKVxuICAubWFwKFxuICAgICh1cmwpID0+IGBcblxcYFxcYFxcYHNoXG5ucG0gaSAke3VybH1cblxcYFxcYFxcYFxuYCxcbiAgKVxuICAuam9pbihcIlwiKX1cblxuIyMgVXNhZ2VcblxuVG8gdXNlIHRoaXMgZmVhdHVyZSBhcyBhIG1haW50YWluZXIsIHlvdSBjYW4gcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcblxuXFxgXFxgXFxgc2hcbm5weCBwa2ctcHItbmV3IHB1Ymxpc2ggJy4vcGFja2FnZXMvQScgLS10ZW1wbGF0ZSAnLi9leGFtcGxlcy8qJ1xuXFxgXFxgXFxgXG5cbiMjIEJlbmVmaXRzXG5cbi0gSW50ZXJhY3RpdmUgRGVtb3M6IEF1dG9tYXRpY2FsbHkgY3JlYXRlIGxpdmUgZGVtb3MgdGhhdCB1c2VycyBjYW4gaW50ZXJhY3Qgd2l0aCBkaXJlY3RseSBpbiB0aGVpciBicm93c2VyLlxuLSBFbmhhbmNlZCBUZXN0aW5nOiBRdWlja2x5IHNwaW4gdXAgZW52aXJvbm1lbnRzIHRvIHRlc3QgeW91ciBwYWNrYWdlIGluIGRpZmZlcmVudCBzY2VuYXJpb3MuXG4tIEltcHJvdmVkIFNoYXJpbmc6IEVhc2lseSBzaGFyZSB3b3JraW5nIGV4YW1wbGVzIG9mIHlvdXIgcGFja2FnZSB3aXRoIGNvbGxhYm9yYXRvcnMgb3IgdXNlcnMgd2l0aG91dCBuZWVkaW5nIHRoZW0gdG8gc2V0IHVwIHRoZWlyIGVudmlyb25tZW50LlxuYCxcbiAgXCJwYWNrYWdlLmpzb25cIjogSlNPTi5zdHJpbmdpZnkoXG4gICAge1xuICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJnZW5lcmF0ZWQgYnkgcGtnLnByLm5ld1wiLFxuICAgICAgbWFpbjogXCJpbmRleC5qc1wiLFxuICAgICAgZGVwZW5kZW5jaWVzLFxuICAgICAga2V5d29yZHM6IFtdLFxuICAgICAgYXV0aG9yOiBcInBrZy5wci5uZXdcIixcbiAgICAgIGxpY2Vuc2U6IFwiSVNDXCIsXG4gICAgfSxcbiAgICBudWxsLFxuICAgIDIsXG4gICksXG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7O0FBcUVBLFNBQVMsZ0JBQWdCLE9BQU87QUFDOUIsTUFBSSxVQUFVLFFBQVEsT0FBTyxVQUFVLFVBQVU7QUFDL0MsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLFlBQVksT0FBTyxlQUFlLEtBQUs7QUFDN0MsTUFBSSxjQUFjLFFBQVEsY0FBYyxPQUFPLGFBQWEsT0FBTyxlQUFlLFNBQVMsTUFBTSxNQUFNO0FBQ3JHLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxPQUFPLFlBQVksT0FBTztBQUM1QixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUksT0FBTyxlQUFlLE9BQU87QUFDL0IsV0FBTyxPQUFPLFVBQVUsU0FBUyxLQUFLLEtBQUssTUFBTTtBQUFBLEVBQ25EO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxNQUFNLFlBQVlBLFdBQVUsWUFBWSxLQUFLLFFBQVE7QUFDNUQsTUFBSSxDQUFDLGdCQUFnQkEsU0FBUSxHQUFHO0FBQzlCLFdBQU8sTUFBTSxZQUFZLENBQUMsR0FBRyxXQUFXLE1BQU07QUFBQSxFQUNoRDtBQUNBLFFBQU0sU0FBUyxPQUFPLE9BQU8sQ0FBQyxHQUFHQSxTQUFRO0FBQ3pDLGFBQVcsT0FBTyxZQUFZO0FBQzVCLFFBQUksUUFBUSxlQUFlLFFBQVEsZUFBZTtB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LGVBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9WLE1BQUdBLE1BQUcsVUFBUVUsTUFBRyxNQUFLVixNQUFHLE1BQUthLEtBQUVILE1BQUcsS0FBR1YsSUFBRWEsTUFBRyxRQUFPQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsUUFBTSxNQUFJQSxNQUFHLFFBQU0sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFFBQU0sTUFBSSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFNBQU8sU0FBT0EsTUFBR0EsTUFBRyxTQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxVQUFRLFVBQVFBLE1BQUdBLE1BQUcsVUFBUSxVQUFRQSxNQUFHQSxNQUFHLFVBQVEsVUFBUUEsTUFBR0EsTUFBRyxTQUFPLE1BQUksTUFBSUEsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPQSxNQUFHQSxNQUFHLFFBQU0sT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBS0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBS0EsTUFBRyxPQUFLQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLLE9BQUtBLE1BQUdBLE1BQUcsT0FBSyxPQUFLQSxNQUFHQSxNQUFHLE9BQUssT0FBS0EsTUFBR0EsTUFBRyxPQUFLQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTUEsTUFBRyxRQUFNQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFBR0EsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTUEsTUFBRyxRQUFNLFFBQU1BLE1BQUdBLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU1BLE1BQUcsUUFBTSxRQUFNQSxNQUFHQSxNQUFHLFFBQU0sUUFBTUEsTUFB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QU0sQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFLLENBQUMsR0FBRSxFQUFFLEdBQUUsS0FBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLFFBQU8sQ0FBQyxHQUFFLEVBQUUsR0FBRSxXQUFVLENBQUMsR0FBRSxFQUFFLEdBQUUsVUFBUyxDQUFDLElBQUcsRUFBRSxHQUFFLFNBQVEsQ0FBQyxHQUFFLEVBQUUsR0FBRSxRQUFPLENBQUMsR0FBRSxFQUFFLEdBQUUsZUFBYyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUUsT0FBTSxFQUFDLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxLQUFJLENBQUMsSUFBRyxFQUFFLEdBQUUsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsV0FBVSxDQUFDLElBQUcsRUFBRSxHQUFFLGFBQVksQ0FBQyxJQUFHLEVBQUUsR0FBRSxjQUFhLENBQUMsSUFBRyxFQUFFLEdBQUUsWUFBVyxDQUFDLElBQUcsRUFBRSxHQUFFLGVBQWMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxZQUFXLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxFQUFDLEdBQUUsU0FBUSxFQUFDLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLFVBQVMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxRQUFPLENBQUMsSUFBRyxFQUFFLEdBQUUsV0FBVSxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdB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QUFLLE9BQU8sR0FBRSxLQUFLLEtBQUssVUFBUyxNQUFJO0FBQUMsaUJBQUssT0FBTyxNQUFNLFdBQVcsT0FBTyxJQUFJLEdBQUUsS0FBSyxPQUFPLElBQUksVUFBUyxLQUFLLE1BQU0sR0FBRSxFQUFFLEtBQUssT0FBTSxLQUFFLEdBQUVELEdBQUUsS0FBSyxLQUFLO0FBQUEsVUFBRSxDQUFDLEdBQUUsS0FBSyxLQUFLLFVBQVMsTUFBSTtBQUFDLGlCQUFLLE9BQU8sTUFBTSxXQUFXLE9BQU8sSUFBSSxHQUFFLEtBQUssT0FBTyxJQUFJLFVBQVMsS0FBSyxNQUFNLEdBQUUsRUFBRSxLQUFLLE9BQU0sS0FBRSxHQUFFQSxHQUFFLENBQUM7QUFBQSxVQUFFLENBQUM7QUFBQSxRQUFFLENBQUM7QUFBQSxNQUFDO0FBQUEsTUFBQyxXQUFXQSxJQUFFRCxJQUFFO0FBQUMsWUFBRyxLQUFLLFVBQVEsWUFBVSxLQUFLLFFBQU0sV0FBVUEsSUFBRyxTQUFPLENBQUMsS0FBSyxVQUFRLEVBQUUsUUFBUSxJQUFJQSxHQUFFLElBQUksS0FBRyxLQUFLLEtBQUssVUFBUyxFQUFFLFFBQVEsSUFBSUEsR0FBRSxJQUFJLENBQUMsR0FBRSxFQUFFLFFBQVEsSUFBSUEsR0FBRSxJQUFJLEtBQUcsS0FBSyxLQUFLLFVBQVNBLEdBQUUsSUFBSSxJQUFHQyxPQUFJQSxHQUFFLFlBQVksTUFBSSxPQUFLQSxHQUFFLFlBQVksTUFBSSxRQUFNLEtBQUssS0FBSyxXQUFVQSxHQUFFLFlBQVksTUFBSSxHQUFHLEdBQUVBLE9BQUksT0FBSyxLQUFLLEtBQUssZ0JBQWMsS0FBSyxVQUFRLEtBQUssSUFBSSxNQUFNLEtBQUssS0FBSyxXQUFXLEdBQUUsS0FBSyxLQUFLLFNBQVEsS0FBSyxLQUFLLFdBQVcsS0FBSUEsTUFBRyxLQUFLLEtBQUssT0FBTUEsR0FBRSxZQUFZLENBQUMsR0FBRUQsSUFBRyxTQUFPLFVBQVM7QUFBQyxjQUFHLEtBQUssS0FBSyxVQUFTO0FBQUMsa0JBQU1FLEtBQUUsS0FBSyxLQUFLLFNBQVMsS0FBSyxLQUFLO0FBQUUsWUFBQUEsT0FBSSxLQUFLLFFBQU1BLElBQUUsS0FBSyxRQUFNLFNBQVEsS0FBSyxJQUFJLE1BQU0sS0FBSyxLQUFLO0FBQUEsVUFBRztBQUFDLGVBQUssVUFBUSxZQUFVLEtBQUssUUFBTTtBQUFBLFFBQVU7QUFBQyxVQUFFLENBQUNELElBQUVELElBQUcsTUFBS0EsSUFBRyxRQUFRLEdBQUUsUUFBUSxNQUFJLEtBQUssUUFBTSxZQUFXLEtBQUssVUFBUSxZQUFVLEtBQUssVUFBUSxhQUFXLEtBQUssS0FBSyxVQUFVLEdBQUUsS0FBSyxPQUFPLElBQUcsS0FBSyxVQUFRLFlBQVUsS0FBSyxVQUFRLGFBQVcsS0FBSyxNQUFNO0FBQUEsTUFBRTtBQUFBLE1BQUMsUUFBTztBQUFDLGFBQUssTUFBTSxPQUFPLEdBQUUsS0FBSyxNQUFNLGVBQWUsWUFBVyxLQUFLLFVBQVUsR0FBRSxLQUFLLE9BQU8sTUFBTTtBQUFBLENBQ3J1RyxHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRSxLQUFLLElBQUksTUFBTSxHQUFFLEtBQUssS0FBRyxRQUFPLEtBQUssS0FBSyxHQUFHLEtBQUssS0FBSyxJQUFHLEtBQUssS0FBSyxHQUFFLEtBQUssWUFBWTtBQUFBLE1BQUU7QUFBQSxNQUFDLGdCQUFlO0FBQUMsY0FBTUMsS0FBRSxFQUFFLEtBQUssWUFBVyxRQUFRLE9BQU8sU0FBUSxFQUFDLE1BQUssS0FBRSxDQUFDLEVBQUUsTUFBTTtBQUFBLENBQy9MLEVBQUUsU0FBTztBQUFFLGFBQUssT0FBTyxNQUFNLFdBQVcsT0FBTyxLQUFLLE1BQUtBLEtBQUUsRUFBRSxDQUFDO0FBQUEsTUFBRTtBQUFBLE1BQUMsU0FBUTtBQUFDLGNBQU1BLEtBQUUsRUFBRSxLQUFLLFFBQVEsSUFBSSxLQUFHLElBQUcsUUFBUSxPQUFPLFNBQVEsRUFBQyxNQUFLLEtBQUUsQ0FBQztBQUFFLFlBQUdBLE9BQUksS0FBSyxZQUFXO0FBQUMsY0FBRyxLQUFLLFVBQVEsVUFBVSxNQUFLLE9BQU8sTUFBTSxXQUFXLE9BQU8sSUFBSTtBQUFBLGVBQU87QUFBQyxrQkFBTUQsS0FBRSxHQUFHLEtBQUssWUFBV0MsRUFBQztBQUFFLGdCQUFHLEtBQUssY0FBYyxHQUFFRCxNQUFHQSxJQUFHLFdBQVMsR0FBRTtBQUFDLG9CQUFNRSxLQUFFRixHQUFFLENBQUM7QUFBRSxtQkFBSyxPQUFPLE1BQU0sV0FBVyxPQUFPLEtBQUssR0FBRUUsRUFBQyxDQUFDLEdBQUUsS0FBSyxPQUFPLE1BQU0sV0FBVyxNQUFNLE1BQU0sQ0FBQyxDQUFDO0FBQUUsb0JBQU1DLEtBQUVGLEdBQUUsTUFBTTtBQUFBLENBQ2hiO0FBQUUsbUJBQUssT0FBTyxNQUFNRSxHQUFFRCxFQUFDLENBQUMsR0FBRSxLQUFLLGFBQVdELElBQUUsS0FBSyxPQUFPLE1BQU0sV0FBVyxPQUFPLEtBQUssR0FBRUUsR0FBRSxTQUFPRCxLQUFFLENBQUMsQ0FBQztBQUFFO0FBQUEsWUFBTTtBQUFDLGdCQUFHRixNQUFHQSxJQUFHLFNBQU8sR0FBRTtBQUFDLG9CQUFNRSxLQUFFRixHQUFFLENBQUM7QUFBRSxtQkFBSyxPQUFPLE1BQU0sV0FBVyxPQUFPLEtBQUssR0FBRUUsRUFBQyxDQUFDLEdBQUUsS0FBSyxPQUFPLE1BQU0sV0FBVyxNQUFNLEtBQUssQ0FBQztBQUFFLG9CQUFNQyxLQUFFRixHQUFFLE1BQU07QUFBQSxDQUN2UCxFQUFFLE1BQU1DLEVBQUM7QUFBRSxtQkFBSyxPQUFPLE1BQU1DLEdBQUUsS0FBSztBQUFBLENBQ3BDLENBQUMsR0FBRSxLQUFLLGFBQVdGO0FBQUU7QUFBQSxZQUFNO0FBQUMsaUJBQUssT0FBTyxNQUFNLFdBQVcsTUFBTSxLQUFLLENBQUM7QUFBQSxVQUFFO0FBQUMsZUFBSyxPQUFPLE1BQU1BLEVBQUMsR0FBRSxLQUFLLFVBQVEsY0FBWSxLQUFLLFFBQU0sV0FBVSxLQUFLLGFBQVdBO0FBQUEsUUFBRTtBQUFBLE1BQUM7QUFBQSxJQUFDO0FBQUMsSUFBTSxLQUFOLGNBQWlCLEVBQUM7QUFBQSxNQUFDLElBQUksU0FBUTtBQUFDLGVBQU8sS0FBSyxRQUFNLElBQUU7QUFBQSxNQUFDO0FBQUEsTUFBQyxJQUFJLFNBQVE7QUFBQyxlQUFPLEtBQUssV0FBUztBQUFBLE1BQUM7QUFBQSxNQUFDLFlBQVlBLElBQUU7QUFBQyxjQUFNQSxJQUFFLEtBQUUsR0FBRSxLQUFLLFFBQU0sQ0FBQyxDQUFDQSxHQUFFLGNBQWEsS0FBSyxHQUFHLFNBQVEsTUFBSTtBQUFDLGVBQUssUUFBTSxLQUFLO0FBQUEsUUFBTyxDQUFDLEdBQUUsS0FBSyxHQUFHLFdBQVUsQ0FBQUQsT0FBRztBQUFDLGVBQUssT0FBTyxNQUFNLFdBQVcsT0FBTyxLQUFLLEdBQUUsRUFBRSxDQUFDLEdBQUUsS0FBSyxRQUFNQSxJQUFFLEtBQUssUUFBTSxVQUFTLEtBQUssTUFBTTtBQUFBLFFBQUUsQ0FBQyxHQUFFLEtBQUssR0FBRyxVQUFTLE1BQUk7QUFBQyxlQUFLLFFBQU0sQ0FBQyxLQUFLO0FBQUEsUUFBTSxDQUFDO0FBQUEsTUFBRTtBQUFBLElBQUM7QUFBQyxJQUFJLEtBQUcsT0FBTztBQUFkLElBQTZCLEtBQUcsQ0FBQyxHQUFFQyxJQUFFRCxPQUFJQyxNQUFLLElBQUUsR0FBRyxHQUFFQSxJQUFFLEVBQUMsWUFBVyxNQUFHLGNBQWEsTUFBRyxVQUFTLE1BQUcsT0FBTUQsR0FBQyxDQUFDLElBQUUsRUFBRUMsRUFBQyxJQUFFRDtBQUFqSCxJQUFtSCxJQUFFLENBQUMsR0FBRUMsSUFBRUQsUUFBSyxHQUFHLEdBQUUsT0FBT0MsTUFBRyxXQUFTQSxLQUFFLEtBQUdBLElBQUVELEVBQUMsR0FBRUE7QUFBRyxJQUFJLEtBQUcsY0FBYyxFQUFDO0FBQUEsTUFBQyxZQUFZQyxJQUFFO0FBQUMsY0FBTUEsSUFBRSxLQUFFLEdBQUUsRUFBRSxNQUFLLFNBQVMsR0FBRSxFQUFFLE1BQUssVUFBUyxDQUFDLEdBQUUsS0FBSyxVQUFRQSxHQUFFLFNBQVEsS0FBSyxRQUFNLENBQUMsR0FBR0EsR0FBRSxpQkFBZSxDQUFDLENBQUMsR0FBRSxLQUFLLFNBQU8sS0FBSyxJQUFJLEtBQUssUUFBUSxVQUFVLENBQUMsRUFBQyxPQUFNRCxHQUFDLE1BQUlBLE9BQUlDLEdBQUUsUUFBUSxHQUFFLENBQUMsR0FBRSxLQUFLLEdBQUcsT0FBTSxDQUFBRCxPQUFHO0FBQUMsVUFBQUEsT0FBSSxPQUFLLEtBQUssVUFBVTtBQUFBLFFBQUUsQ0FBQyxHQUFFLEtBQUssR0FBRyxVQUFTLENBQUFBLE9BQUc7QUFBQyxrQkFBT0EsSUFBRTtBQUFBLFlBQUMsS0FBSTtBQUFBLFlBQU8sS0FBSTtBQUFLLG1CQUFLLFNBQU8sS0FBSyxXQUFTLElBQUUsS0FBSyxRQUFRLFNBQU8sSUFBRSxLQUFLLFNBQU87QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFBLFlBQU8sS0FBSTtBQUFRLG1CQUFLLFNBQU8sS0FBSyxXQUFTLEtBQUssUUFBUSxTQUFPLElBQUUsSUFBRSxLQUFLLFNBQU87QUFBRTtBQUFBLFlBQU0sS0FBSTtBQUFRLG1CQUFLLFlBQVk7QUFBRTtBQUFBLFVBQUs7QUFBQSxRQUFDLENBQUM7QUFBQSxNQUFFO0FBQUEsTUFBQyxJQUFJLFNBQVE7QUFBQyxlQUFPLEtBQUssUUFBUSxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQUs7QUFBQSxNQUFDLFlBQVc7QUFBQyxjQUFNQyxLQUFFLEtBQUssTUFBTSxXQUFTLEtBQUssUUFBUTtBQUFPLGFBQUssUUFBTUEsS0FBRSxDQUFDLElBQUUsS0FBSyxRQUFRLElBQUksQ0FBQUQsT0FBR0EsR0FBRSxLQUFLO0FBQUEsTUFBRTtBQUFBLE1BQUMsY0FBYTtBQUFDLGNBQU1DLEtBQUUsS0FBSyxNQUFNLFNBQVMsS0FBSyxNQUFNO0FBQUUsYUFBSyxRQUFNQSxLQUFFLEtBQUssTUFBTSxPQUFPLENBQUFELE9BQUdBLE9BQUksS0FBSyxNQUFNLElBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTSxLQUFLLE1BQU07QUFBQSxNQUFFO0FBQUEsSUFBQztBQUFFLElBQUksS0FBRyxPQUFPO0FBQWQsSUFBNkIsS0FBRyxDQUFDLEdBQUVDLElBQUVELE9BQUlDLE1BQUssSUFBRSxHQUFHLEdBQUVBLElBQUUsRUFB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SyxPQUNuQkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sT0FDTkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxPQUFNLE9BQ05BLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE9BQU0sT0FDTkEsT0FBTSxPQUNOQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsTUFBSyxPQUFTQSxNQUFLLE9BQ25CQSxNQUFLLE9BQVNBLE1BQUssT0FDbkJBLE1BQUssT0FBU0EsTUFBSyxPQUNuQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVNBLE1BQUssUUFDbkJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxTQUNOQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsT0FBTSxTQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFdBQ3JCQSxNQUFLLFdBQVlBLE1BQUs7QUFDM0I7QUFFQSxTQUFTLFlBQVlBLElBQUc7QUFDdkIsU0FBT0EsT0FBTSxTQUNUQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSztBQUN6QjtBQUVBLFNBQVMsT0FBT0EsSUFBRztBQUNsQixTQUFPQSxNQUFLLFFBQVVBLE1BQUssUUFDdkJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsTUFBSyxRQUFVQSxNQUFLLFFBQ3BCQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE1BQUssUUFBVUEsTUFBSyxRQUNwQkEsT0FBTSxRQUNOQSxNQUFLLFFBQVVBLE1BQUssUUFDcEJBLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxRQUNOQSxPQUFNLFFBQ05BLE9BQU0sUUFDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxPQUFNLFNBQ05BLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsT0FBTSxTQUNOQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFVQSxNQUFLLFNBQ3BCQSxNQUFLLFNBQVVBLE1BQUssU0FDcEJBLE1BQUssU0FBVUEsTUFBSyxTQUNwQkEsTUFBSyxTQUFXQSxNQUFLLFNBQ3JCQSxPQUFNLFNBQ05BLE9BQU0sU0FDTkEsTUFBSyxTQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsT0FBTSxVQUNOQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsT0FBTSxVQUNOQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxPQUFNLFVBQ05BLE9BQU0sVUFDTkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJBLE1BQUssVUFBV0EsTUFBSyxVQUNyQkEsTUFBSyxVQUFXQSxNQUFLLFVBQ3JCQSxNQUFLLFVBQVdBLE1BQUssVUFDckJB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QUFHLE1BQU07QUFBQSxFQUNwQyxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLGVBQWUsZ0JBQWdCQSxJQUFXO0FBQ3hDLFFBQU0sV0FBVyxNQUFNLFlBQVlBLEVBQUM7QUFDcEMsTUFBSSxhQUFhLE1BQU07QUFDckIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJO0FBQ0YsV0FBTyxpQkFBaUIsUUFBUTtBQUFBLEVBQ2xDLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGO0FBRUEsU0FBUyxpQkFBaUIsVUFBa0I7QUFDMUMsTUFBSTtBQUNGLFdBQU8sS0FBSyxNQUFNLFFBQVE7QUFBQSxFQUM1QixRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFDRjsiLAogICJuYW1lcyI6IFsiZGVmYXVsdHMiLCAicCIsICJjIiwgImkiLCAibCIsICJ4IiwgInRleHQiLCAiaSIsICJ4IiwgInkiLCAiaSIsICJwIiwgImFyZ3YiLCAiZW52IiwgImlzQ29sb3JTdXBwb3J0ZWQiLCAicmVwbGFjZUNsb3NlIiwgImNyZWF0ZUNvbG9ycyIsICJGIiwgInUiLCAidCIsICJzIiwgIlciLCAiQyIsICJEIiwgImEiLCAibiIsICJCIiwgImMiLCAicCIsICJHIiwgImFuc2lSZWdleCIsICJzdHJpcEFuc2kiLCAieCIsICJlbnYiLCAiXyIsICJtIiwgImdldENvbG9yIiwgImNyZWF0ZUNvbnNvbGEiLCAiVCIsICJBIiwgInIiLCAibCIsICJJIiwgIlIiLCAieSIsICJjIiwgIkwiLCAiTyIsICJOIiwgIlAiLCAidW5pY29kZSIsICJzIiwgInJlZ2V4IiwgImkiLCAiX19kZWZQcm9wIiwgImEiLCAiYyIsICJkIiwgImciLCAiaSIsICJsIiwgImMiLCAicCIsICJ4IiwgImsiLCAiZGVmYXVsdHMiLCAiYSIsICJwIiwgIl8iLCAiaSIsICJrIiwgInN0ZG91dCJdCn0K