pkg-pr-new 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2972,7 +2972,7 @@ import ignore from "ignore";
2972
2972
  // package.json
2973
2973
  var package_default = {
2974
2974
  name: "pkg-pr-new",
2975
- version: "0.0.12",
2975
+ version: "0.0.13",
2976
2976
  description: "",
2977
2977
  main: "index.js",
2978
2978
  type: "module",
@@ -3169,12 +3169,6 @@ var main = defineCommand({
3169
3169
  if (!pJson.name) {
3170
3170
  throw new Error(`"name" field in ${pJsonPath} should be defined`);
3171
3171
  }
3172
- if (pJson.private) {
3173
- console.log(
3174
- `skipping ${templateDir} because the package is private`
3175
- );
3176
- continue;
3177
- }
3178
3172
  console.log("preparing template:", pJson.name);
3179
3173
  const restore = await writeDeps(templateDir, deps);
3180
3174
  const gitignorePath = path.join(templateDir, ".gitignore");
@@ -3361,4 +3355,4 @@ async function hasPackageJson(p2) {
3361
3355
  return false;
3362
3356
  }
3363
3357
  }
3364
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4yLjMvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLjA2YWQ4YTY0Lm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3V0aWxzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMi4zL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuMzZjMDAzNGYubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMi4zL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3QvaW5kZXgubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jaXR0eUAwLjEuNi9ub2RlX21vZHVsZXMvY2l0dHkvZGlzdC9pbmRleC5tanMiLCAiLi4vaW5kZXgudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL29oYXNoQDEuMS4zL25vZGVfbW9kdWxlcy9vaGFzaC9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG59XG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzT2JqZWN0KGRlZmF1bHRzKSkge1xuICAgIHJldHVybiBfZGVmdShiYXNlT2JqZWN0LCB7fSwgbmFtZXNwYWNlLCBtZXJnZXIpO1xuICB9XG4gIGNvbnN0IG9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzKTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYmFzZU9iamVjdCkge1xuICAgIGlmIChrZXkgPT09IFwiX19wcm90b19fXCIgfHwga2V5ID09PSBcImNvbnN0cnVjdG9yXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGJhc2VPYmplY3Rba2V5XTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChtZXJnZXIgJiYgbWVyZ2VyKG9iamVjdCwga2V5LCB2YWx1ZSwgbmFtZXNwYWNlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBBcnJheS5pc0FycmF5KG9iamVjdFtrZXldKSkge1xuICAgICAgb2JqZWN0W2tleV0gPSBbLi4udmFsdWUsIC4uLm9iamVjdFtrZXldXTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSAmJiBpc09iamVjdChvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHR5cGVzID0gb3B0aW9ucy50eXBlcyB8fCBMb2dUeXBlcztcbiAgICB0aGlzLm9wdGlvbnMgPSBkZWZ1KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBkZWZhdWx0czogeyAuLi5vcHRpb25zLmRlZmF1bHRzIH0sXG4gICAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwob3B0aW9ucy5sZXZlbCwgdHlwZXMpLFxuICAgICAgICByZXBvcnRlcnM6IFsuLi5vcHRpb25zLnJlcG9ydGVycyB8fCBbXV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGVzOiBMb2dUeXBlcyxcbiAgICAgICAgdGhyb3R0bGU6IDFlMyxcbiAgICAgICAgdGhyb3R0bGVNaW46IDUsXG4gICAgICAgIGZvcm1hdE9wdGlvbnM6IHtcbiAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgIGNvbG9yczogZmFsc2UsXG4gICAgICAgICAgY29tcGFjdDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdHlwZXMpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZGVmYXVsdHMsXG4gICAgICAgIC4uLnR5cGVzW3R5cGVdXG4gICAgICB9O1xuICAgICAgdGhpc1t0eXBlXSA9IHRoaXMuX3dyYXBMb2dGbihkZWZhdWx0cyk7XG4gICAgICB0aGlzW3R5cGVdLnJhdyA9IHRoaXMuX3dyYXBMb2dGbihcbiAgICAgICAgZGVmYXVsdHMsXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMubW9ja0ZuKSB7XG4gICAgICB0aGlzLm1vY2tUeXBlcygpO1xuICAgIH1cbiAgICB0aGlzLl9sYXN0TG9nID0ge307XG4gIH1cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgc2V0IGxldmVsKGxldmVsKSB7XG4gICAgdGhpcy5vcHRpb25zLmxldmVsID0gX25vcm1hbGl6ZUxvZ0xldmVsKFxuICAgICAgbGV2ZWwsXG4gICAgICB0aGlzLm9wdGlvbnMudHlwZXMsXG4gICAgICB0aGlzLm9wdGlvbnMubGV2ZWxcbiAgICApO1xuICB9XG4gIHByb21wdChtZXNzYWdlLCBvcHRzKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMucHJvbXB0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwcm9tcHQgaXMgbm90IHN1cHBvcnRlZCFcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucHJvbXB0KG1lc3NhZ2UsIG9wdHMpO1xuICB9XG4gIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc29sYSh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX21vY2tGbikge1xuICAgICAgaW5zdGFuY2UubW9ja1R5cGVzKHRoaXMuX21vY2tGbik7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIGFkZFJlcG9ydGVyKHJlcG9ydGVyKSB7XG4gICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5wdXNoKHJlcG9ydGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSA+PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5zcGxpY2UoMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHNldFJlcG9ydGVycyhyZXBvcnRlcnMpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzID0gQXJyYXkuaXNBcnJheShyZXBvcnRlcnMpID8gcmVwb3J0ZXJzIDogW3JlcG9ydGVyc107XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd3JhcEFsbCgpIHtcbiAgICB0aGlzLndyYXBDb25zb2xlKCk7XG4gICAgdGhpcy53cmFwU3RkKCk7XG4gIH1cbiAgcmVzdG9yZUFsbCgpIHtcbiAgICB0aGlzLnJlc3RvcmVDb25zb2xlKCk7XG4gICAgdGhpcy5yZXN0b3JlU3RkKCk7XG4gIH1cbiAgd3JhcENvbnNvbGUoKSB7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHRoaXMub3B0aW9ucy50eXBlcykge1xuICAgICAgaWYgKCFjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbXCJfX1wiICsgdHlwZV0gPSBjb25zb2xlW3R5cGVdO1xuICAgICAgfVxuICAgICAgY29uc29sZVt0eXBlXSA9IHRoaXNbdHlwZV0ucmF3O1xuICAgIH1cbiAgfVxuICByZXN0b3JlQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoY29uc29sZVtcIl9fXCIgKyB0eXBlXSkge1xuICAgICAgICBjb25zb2xlW3R5cGVdID0gY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgICAgZGVsZXRlIGNvbnNvbGVbXCJfX1wiICsgdHlwZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHdyYXBTdGQoKSB7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3Rkb3V0LCBcImxvZ1wiKTtcbiAgICB0aGlzLl93cmFwU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRlcnIsIFwibG9nXCIpO1xuICB9XG4gIF93cmFwU3RyZWFtKHN0cmVhbSwgdHlwZSkge1xuICAgIGlmICghc3RyZWFtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS5fX3dyaXRlID0gc3RyZWFtLndyaXRlO1xuICAgIH1cbiAgICBzdHJlYW0ud3JpdGUgPSAoZGF0YSkgPT4ge1xuICAgICAgdGhpc1t0eXBlXS5yYXcoU3RyaW5nKGRhdGEpLnRyaW0oKSk7XG4gICAgfTtcbiAgfVxuICByZXN0b3JlU3RkKCkge1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCk7XG4gICAgdGhpcy5fcmVzdG9yZVN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyKTtcbiAgfVxuICBfcmVzdG9yZVN0cmVhbShzdHJlYW0pIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS53cml0ZSA9IHN0cmVhbS5fX3dyaXRlO1xuICAgICAgZGVsZXRlIHN0cmVhbS5fX3dyaXRlO1xuICAgIH1cbiAgfVxuICBwYXVzZUxvZ3MoKSB7XG4gICAgcGF1c2VkID0gdHJ1ZTtcbiAgfVxuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgcmV0dXJuIFwiICBcIiArIHBhcnNlU3RhY2soc3RhY2spLmpvaW4oXCJcXG4gIFwiKTtcbiAgfVxuICBmb3JtYXRBcmdzKGFyZ3MsIG9wdHMpIHtcbiAgICBjb25zdCBfYXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICAgIGlmIChhcmcgJiYgdHlwZW9mIGFyZy5zdGFjayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gYXJnLm1lc3NhZ2UgKyBcIlxcblwiICsgdGhpcy5mb3JtYXRTdGFjayhhcmcuc3RhY2ssIG9wdHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybWF0V2l0aE9wdGlvbnMob3B0cywgLi4uX2FyZ3MpO1xuICB9XG4gIGZvcm1hdERhdGUoZGF0ZSwgb3B0cykge1xuICAgIHJldHVybiBvcHRzLmRhdGUgPyBkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpIDogXCJcIjtcbiAgfVxuICBmaWx0ZXJBbmRKb2luKGFycikge1xuICAgIHJldHVybiBhcnIuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICB9XG4gIGZvcm1hdExvZ09iaihsb2dPYmosIG9wdHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKTtcbiAgICBpZiAobG9nT2JqLnR5cGUgPT09IFwiYm94XCIpIHtcbiAgICAgIHJldHVybiBcIlxcblwiICsgW1xuICAgICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgICBsb2dPYmoudGl0bGUgJiYgbG9nT2JqLnRpdGxlLFxuICAgICAgICAuLi5tZXNzYWdlLnNwbGl0KFwiXFxuXCIpXG4gICAgICBdLmZpbHRlcihCb29sZWFuKS5tYXAoKGwpID0+IFwiID4gXCIgKyBsKS5qb2luKFwiXFxuXCIpICsgXCJcXG5cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQW5kSm9pbihbXG4gICAgICBicmFja2V0KGxvZ09iai50eXBlKSxcbiAgICAgIGJyYWNrZXQobG9nT2JqLnRhZyksXG4gICAgICBtZXNzYWdlXG4gICAgXSk7XG4gIH1cbiAgbG9nKGxvZ09iaiwgY3R4KSB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuZm9ybWF0TG9nT2JqKGxvZ09iaiwge1xuICAgICAgY29sdW1uczogY3R4Lm9wdGlvbnMuc3Rkb3V0LmNvbHVtbnMgfHwgMCxcbiAgICAgIC4uLmN0eC5vcHRpb25zLmZvcm1hdE9wdGlvbnNcbiAgICB9KTtcbiAgICByZXR1cm4gd3JpdGVTdHJlYW0oXG4gICAgICBsaW5lICsgXCJcXG5cIixcbiAgICAgIGxvZ09iai5sZXZlbCA8IDIgPyBjdHgub3B0aW9ucy5zdGRlcnIgfHwgcHJvY2Vzcy5zdGRlcnIgOiBjdHgub3B0aW9ucy5zdGRvdXQgfHwgcHJvY2Vzcy5zdGRvdXRcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7IEJhc2ljUmVwb3J0ZXIgYXMgQiwgcGFyc2VTdGFjayBhcyBwIH07XG4iLCAiaW1wb3J0ICogYXMgdHR5IGZyb20gJ25vZGU6dHR5JztcblxuY29uc3Qge1xuICBlbnYgPSB7fSxcbiAgYXJndiA9IFtdLFxuICBwbGF0Zm9ybSA9IFwiXCJcbn0gPSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IHt9IDogcHJvY2VzcztcbmNvbnN0IGlzRGlzYWJsZWQgPSBcIk5PX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLW5vLWNvbG9yXCIpO1xuY29uc3QgaXNGb3JjZWQgPSBcIkZPUkNFX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLWNvbG9yXCIpO1xuY29uc3QgaXNXaW5kb3dzID0gcGxhdGZvcm0gPT09IFwid2luMzJcIjtcbmNvbnN0IGlzRHVtYlRlcm1pbmFsID0gZW52LlRFUk0gPT09IFwiZHVtYlwiO1xuY29uc3QgaXNDb21wYXRpYmxlVGVybWluYWwgPSB0dHkgJiYgdHR5LmlzYXR0eSAmJiB0dHkuaXNhdHR5KDEpICYmIGVudi5URVJNICYmICFpc0R1bWJUZXJtaW5hbDtcbmNvbnN0IGlzQ0kgPSBcIkNJXCIgaW4gZW52ICYmIChcIkdJVEhVQl9BQ1RJT05TXCIgaW4gZW52IHx8IFwiR0lUTEFCX0NJXCIgaW4gZW52IHx8IFwiQ0lSQ0xFQ0lcIiBpbiBlbnYpO1xuY29uc3QgaXNDb2xvclN1cHBvcnRlZCA9ICFpc0Rpc2FibGVkICYmIChpc0ZvcmNlZCB8fCBpc1dpbmRvd3MgJiYgIWlzRHVtYlRlcm1pbmFsIHx8IGlzQ29tcGF0aWJsZVRlcm1pbmFsIHx8IGlzQ0kpO1xuZnVuY3Rpb24gcmVwbGFjZUNsb3NlKGluZGV4LCBzdHJpbmcsIGNsb3NlLCByZXBsYWNlLCBoZWFkID0gc3RyaW5nLnNsaWNlKDAsIE1hdGgubWF4KDAsIGluZGV4KSkgKyByZXBsYWNlLCB0YWlsID0gc3RyaW5nLnNsaWNlKE1hdGgubWF4KDAsIGluZGV4ICsgY2xvc2UubGVuZ3RoKSksIG5leHQgPSB0YWlsLmluZGV4T2YoY2xvc2UpKSB7XG4gIHJldHVybiBoZWFkICsgKG5leHQgPCAwID8gdGFpbCA6IHJlcGxhY2VDbG9zZShuZXh0LCB0YWlsLCBjbG9zZSwgcmVwbGFjZSkpO1xufVxuZnVuY3Rpb24gY2xlYXJCbGVlZChpbmRleCwgc3RyaW5nLCBvcGVuLCBjbG9zZSwgcmVwbGFjZSkge1xuICByZXR1cm4gaW5kZXggPCAwID8gb3BlbiArIHN0cmluZyArIGNsb3NlIDogb3BlbiArIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSkgKyBjbG9zZTtcbn1cbmZ1bmN0aW9uIGZpbHRlckVtcHR5KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbiwgYXQgPSBvcGVuLmxlbmd0aCArIDEpIHtcbiAgcmV0dXJuIChzdHJpbmcpID0+IHN0cmluZyB8fCAhKHN0cmluZyA9PT0gXCJcIiB8fCBzdHJpbmcgPT09IHZvaWQgMCkgPyBjbGVhckJsZWVkKFxuICAgIChcIlwiICsgc3RyaW5nKS5pbmRleE9mKGNsb3NlLCBhdCksXG4gICAgc3RyaW5nLFxuICAgIG9wZW4sXG4gICAgY2xvc2UsXG4gICAgcmVwbGFjZVxuICApIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGluaXQob3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGZpbHRlckVtcHR5KGBcXHgxQlske29wZW59bWAsIGBcXHgxQlske2Nsb3NlfW1gLCByZXBsYWNlKTtcbn1cbmNvbnN0IGNvbG9yRGVmcyA9IHtcbiAgcmVzZXQ6IGluaXQoMCwgMCksXG4gIGJvbGQ6IGluaXQoMSwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMW1cIiksXG4gIGRpbTogaW5pdCgyLCAyMiwgXCJcXHgxQlsyMm1cXHgxQlsybVwiKSxcbiAgaXRhbGljOiBpbml0KDMsIDIzKSxcbiAgdW5kZXJsaW5lOiBpbml0KDQsIDI0KSxcbiAgaW52ZXJzZTogaW5pdCg3LCAyNyksXG4gIGhpZGRlbjogaW5pdCg4LCAyOCksXG4gIHN0cmlrZXRocm91Z2g6IGluaXQoOSwgMjkpLFxuICBibGFjazogaW5pdCgzMCwgMzkpLFxuICByZWQ6IGluaXQoMzEsIDM5KSxcbiAgZ3JlZW46IGluaXQoMzIsIDM5KSxcbiAgeWVsbG93OiBpbml0KDMzLCAzOSksXG4gIGJsdWU6IGluaXQoMzQsIDM5KSxcbiAgbWFnZW50YTogaW5pdCgzNSwgMzkpLFxuICBjeWFuOiBpbml0KDM2LCAzOSksXG4gIHdoaXRlOiBpbml0KDM3LCAzOSksXG4gIGdyYXk6IGluaXQoOTAsIDM5KSxcbiAgYmdCbGFjazogaW5pdCg0MCwgNDkpLFxuICBiZ1JlZDogaW5pdCg0MSwgNDkpLFxuICBiZ0dyZWVuOiBpbml0KDQyLCA0OSksXG4gIGJnWWVsbG93OiBpbml0KDQzLCA0OSksXG4gIGJnQmx1ZTogaW5pdCg0NCwgNDkpLFxuICBiZ01hZ2VudGE6IGluaXQoNDUsIDQ5KSxcbiAgYmdDeWFuOiBpbml0KDQ2LCA0OSksXG4gIGJnV2hpdGU6IGluaXQoNDcsIDQ5KSxcbiAgYmxhY2tCcmlnaHQ6IGluaXQoOTAsIDM5KSxcbiAgcmVkQnJpZ2h0OiBpbml0KDkxLCAzOSksXG4gIGdyZWVuQnJpZ2h0OiBpbml0KDkyLCAzOSksXG4gIHllbGxvd0JyaWdodDogaW5pdCg5MywgMzkpLFxuICBibHVlQnJpZ2h0OiBpbml0KDk0LCAzOSksXG4gIG1hZ2VudGFCcmlnaHQ6IGluaXQoOTUsIDM5KSxcbiAgY3lhbkJyaWdodDogaW5pdCg5NiwgMzkpLFxuICB3aGl0ZUJyaWdodDogaW5pdCg5NywgMzkpLFxuICBiZ0JsYWNrQnJpZ2h0OiBpbml0KDEwMCwgNDkpLFxuICBiZ1JlZEJyaWdodDogaW5pdCgxMDEsIDQ5KSxcbiAgYmdHcmVlbkJyaWdodDogaW5pdCgxMDIsIDQ5KSxcbiAgYmdZZWxsb3dCcmlnaHQ6IGluaXQoMTAzLCA0OSksXG4gIGJnQmx1ZUJyaWdodDogaW5pdCgxMDQsIDQ5KSxcbiAgYmdNYWdlbnRhQnJpZ2h0OiBpbml0KDEwNSwgNDkpLFxuICBiZ0N5YW5CcmlnaHQ6IGluaXQoMTA2LCA0OSksXG4gIGJnV2hpdGVCcmlnaHQ6IGluaXQoMTA3LCA0OSlcbn07XG5mdW5jdGlvbiBjcmVhdGVDb2xvcnModXNlQ29sb3IgPSBpc0NvbG9yU3VwcG9ydGVkKSB7XG4gIHJldHVybiB1c2VDb2xvciA/IGNvbG9yRGVmcyA6IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3Qua2V5cyhjb2xvckRlZnMpLm1hcCgoa2V5KSA9PiBba2V5LCBTdHJpbmddKSk7XG59XG5jb25zdCBjb2xvcnMgPSBjcmVhdGVDb2xvcnMoKTtcbmZ1bmN0aW9uIGdldENvbG9yKGNvbG9yLCBmYWxsYmFjayA9IFwicmVzZXRcIikge1xuICByZXR1cm4gY29sb3JzW2NvbG9yXSB8fCBjb2xvcnNbZmFsbGJhY2tdO1xufVxuZnVuY3Rpb24gY29sb3JpemUoY29sb3IsIHRleHQpIHtcbiAgcmV0dXJuIGdldENvbG9yKGNvbG9yKSh0ZXh0KTtcbn1cblxuY29uc3QgYW5zaVJlZ2V4ID0gW1xuICBcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcbiAgXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKVwiXG5dLmpvaW4oXCJ8XCIpO1xuZnVuY3Rpb24gc3RyaXBBbnNpKHRleHQpIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZShuZXcgUmVnRXhwKGFuc2lSZWdleCwgXCJnXCIpLCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBjb25zdCBmcmVlTGVmdCA9IE1hdGguZmxvb3IoZnJlZSAvIDIpO1xuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlTGVmdCB8fCBpID49IGZyZWVMZWZ0ICsgc3RyLmxlbmd0aCA/IHNwYWNlIDogc3RyW2kgLSBmcmVlTGVmdF07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVdO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IHN0ci5sZW5ndGggPyBzdHJbaV0gOiBzcGFjZTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIGFsaWduKGFsaWdubWVudCwgc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICBjYXNlIFwibGVmdFwiOiB7XG4gICAgICByZXR1cm4gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJyaWdodFwiOiB7XG4gICAgICByZXR1cm4gcmlnaHRBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBjYXNlIFwiY2VudGVyXCI6IHtcbiAgICAgIHJldHVybiBjZW50ZXJBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBib3hTdHlsZVByZXNldHMgPSB7XG4gIHNvbGlkOiB7XG4gICAgdGw6IFwiXFx1MjUwQ1wiLFxuICAgIHRyOiBcIlxcdTI1MTBcIixcbiAgICBibDogXCJcXHUyNTE0XCIsXG4gICAgYnI6IFwiXFx1MjUxOFwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIGRvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTRcIixcbiAgICB0cjogXCJcXHUyNTU3XCIsXG4gICAgYmw6IFwiXFx1MjU1QVwiLFxuICAgIGJyOiBcIlxcdTI1NURcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGU6IHtcbiAgICB0bDogXCJcXHUyNTUzXCIsXG4gICAgdHI6IFwiXFx1MjU1NlwiLFxuICAgIGJsOiBcIlxcdTI1NTlcIixcbiAgICBicjogXCJcXHUyNTVDXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTUxXCJcbiAgfSxcbiAgZG91YmxlU2luZ2xlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBzaW5nbGVUaGljazoge1xuICAgIHRsOiBcIlxcdTI1MEZcIixcbiAgICB0cjogXCJcXHUyNTEzXCIsXG4gICAgYmw6IFwiXFx1MjUxN1wiLFxuICAgIGJyOiBcIlxcdTI1MUJcIixcbiAgICBoOiBcIlxcdTI1MDFcIixcbiAgICB2OiBcIlxcdTI1MDNcIlxuICB9LFxuICBzaW5nbGVEb3VibGU6IHtcbiAgICB0bDogXCJcXHUyNTUyXCIsXG4gICAgdHI6IFwiXFx1MjU1NVwiLFxuICAgIGJsOiBcIlxcdTI1NThcIixcbiAgICBicjogXCJcXHUyNTVCXCIsXG4gICAgaDogXCJcXHUyNTUwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgc2luZ2xlRG91YmxlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICByb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH1cbn07XG5jb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gIGJvcmRlckNvbG9yOiBcIndoaXRlXCIsXG4gIGJvcmRlclN0eWxlOiBcInJvdW5kZWRcIixcbiAgdmFsaWduOiBcImNlbnRlclwiLFxuICBwYWRkaW5nOiAyLFxuICBtYXJnaW5MZWZ0OiAxLFxuICBtYXJnaW5Ub3A6IDEsXG4gIG1hcmdpbkJvdHRvbTogMVxufTtcbmZ1bmN0aW9uIGJveCh0ZXh0LCBfb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG9wdHMgPSB7XG4gICAgLi4uX29wdHMsXG4gICAgc3R5bGU6IHtcbiAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgIC4uLl9vcHRzLnN0eWxlXG4gICAgfVxuICB9O1xuICBjb25zdCB0ZXh0TGluZXMgPSB0ZXh0LnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCBib3hMaW5lcyA9IFtdO1xuICBjb25zdCBfY29sb3IgPSBnZXRDb2xvcihvcHRzLnN0eWxlLmJvcmRlckNvbG9yKTtcbiAgY29uc3QgYm9yZGVyU3R5bGUgPSB7XG4gICAgLi4udHlwZW9mIG9wdHMuc3R5bGUuYm9yZGVyU3R5bGUgPT09IFwic3RyaW5nXCIgPyBib3hTdHlsZVByZXNldHNbb3B0cy5zdHlsZS5ib3JkZXJTdHlsZV0gfHwgYm94U3R5bGVQcmVzZXRzLnNvbGlkIDogb3B0cy5zdHlsZS5ib3JkZXJTdHlsZVxuICB9O1xuICBpZiAoX2NvbG9yKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYm9yZGVyU3R5bGUpIHtcbiAgICAgIGJvcmRlclN0eWxlW2tleV0gPSBfY29sb3IoXG4gICAgICAgIGJvcmRlclN0eWxlW2tleV1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhZGRpbmdPZmZzZXQgPSBvcHRzLnN0eWxlLnBhZGRpbmcgJSAyID09PSAwID8gb3B0cy5zdHlsZS5wYWRkaW5nIDogb3B0cy5zdHlsZS5wYWRkaW5nICsgMTtcbiAgY29uc3QgaGVpZ2h0ID0gdGV4dExpbmVzLmxlbmd0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoID0gTWF0aC5tYXgoLi4udGV4dExpbmVzLm1hcCgobGluZSkgPT4gbGluZS5sZW5ndGgpKSArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoT2Zmc2V0ID0gd2lkdGggKyBwYWRkaW5nT2Zmc2V0O1xuICBjb25zdCBsZWZ0U3BhY2UgPSBvcHRzLnN0eWxlLm1hcmdpbkxlZnQgPiAwID8gXCIgXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luTGVmdCkgOiBcIlwiO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Ub3AgPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpblRvcCkpO1xuICB9XG4gIGlmIChvcHRzLnRpdGxlKSB7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHtvcHRzLnRpdGxlfSR7cmlnaHR9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudGx9JHtib3JkZXJTdHlsZS5oLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfVxuICBjb25zdCB2YWxpZ25PZmZzZXQgPSBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJjZW50ZXJcIiA/IE1hdGguZmxvb3IoKGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGgpIC8gMikgOiBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJ0b3BcIiA/IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGggLSBwYWRkaW5nT2Zmc2V0IDogaGVpZ2h0IC0gdGV4dExpbmVzLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykge1xuICAgIGlmIChpIDwgdmFsaWduT2Zmc2V0IHx8IGkgPj0gdmFsaWduT2Zmc2V0ICsgdGV4dExpbmVzLmxlbmd0aCkge1xuICAgICAgYm94TGluZXMucHVzaChcbiAgICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudn0ke1wiIFwiLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS52fWBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpbmUgPSB0ZXh0TGluZXNbaSAtIHZhbGlnbk9mZnNldF07XG4gICAgICBjb25zdCBsZWZ0ID0gXCIgXCIucmVwZWF0KHBhZGRpbmdPZmZzZXQpO1xuICAgICAgY29uc3QgcmlnaHQgPSBcIiBcIi5yZXBlYXQod2lkdGggLSBzdHJpcEFuc2kobGluZSkubGVuZ3RoKTtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtsZWZ0fSR7bGluZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBib3hMaW5lcy5wdXNoKFxuICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLmJsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUuYnJ9YFxuICApO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20gPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpbkJvdHRvbSkpO1xuICB9XG4gIHJldHVybiBib3hMaW5lcy5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgeyBhbGlnbiwgYm94LCBjZW50ZXJBbGlnbiwgY29sb3JpemUsIGNvbG9ycywgZ2V0Q29sb3IsIGxlZnRBbGlnbiwgcmlnaHRBbGlnbiwgc3RyaXBBbnNpIH07XG4iLCAiaW1wb3J0IHsgc3RkaW4sIHN0ZG91dCB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgZiBmcm9tICdub2RlOnJlYWRsaW5lJztcbmltcG9ydCB7IFdyaXRlU3RyZWFtIH0gZnJvbSAnbm9kZTp0dHknO1xuaW1wb3J0IHsgZyBhcyBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcywgaSBhcyBpc1VuaWNvZGVTdXBwb3J0ZWQgfSBmcm9tICcuLi9zaGFyZWQvY29uc29sYS4zNmMwMDM0Zi5tanMnO1xuaW1wb3J0IHJlcXVpcmUkJDAgZnJvbSAndHR5JztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5pbXBvcnQgJy4uL2NvcmUubWpzJztcbmltcG9ydCAnLi4vc2hhcmVkL2NvbnNvbGEuMDZhZDhhNjQubWpzJztcbmltcG9ydCAnbm9kZTp1dGlsJztcbmltcG9ydCAnbm9kZTpwYXRoJztcblxuY29uc3QgRVNDID0gJ1xceDFCJztcbmNvbnN0IENTSSA9IGAke0VTQ31bYDtcbmNvbnN0IGJlZXAgPSAnXFx1MDAwNyc7XG5cbmNvbnN0IGN1cnNvciA9IHtcbiAgdG8oeCwgeSkge1xuICAgIGlmICgheSkgcmV0dXJuIGAke0NTSX0ke3ggKyAxfUdgO1xuICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcbiAgfSxcbiAgbW92ZSh4LCB5KSB7XG4gICAgbGV0IHJldCA9ICcnO1xuXG4gICAgaWYgKHggPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXh9RGA7XG4gICAgZWxzZSBpZiAoeCA+IDApIHJldCArPSBgJHtDU0l9JHt4fUNgO1xuXG4gICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG4gICAgZWxzZSBpZiAoeSA+IDApIHJldCArPSBgJHtDU0l9JHt5fUJgO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSxcbiAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fUFgLFxuICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1CYCxcbiAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG4gIGJhY2t3YXJkOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1EYCxcbiAgbmV4dExpbmU6IChjb3VudCA9IDEpID0+IGAke0NTSX1FYC5yZXBlYXQoY291bnQpLFxuICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG4gIGxlZnQ6IGAke0NTSX1HYCxcbiAgaGlkZTogYCR7Q1NJfT8yNWxgLFxuICBzaG93OiBgJHtDU0l9PzI1aGAsXG4gIHNhdmU6IGAke0VTQ303YCxcbiAgcmVzdG9yZTogYCR7RVNDfThgXG59O1xuXG5jb25zdCBzY3JvbGwgPSB7XG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9U2AucmVwZWF0KGNvdW50KSxcbiAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcbn07XG5cbmNvbnN0IGVyYXNlID0ge1xuICBzY3JlZW46IGAke0NTSX0ySmAsXG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9MUpgLnJlcGVhdChjb3VudCksXG4gIGRvd246IChjb3VudCA9IDEpID0+IGAke0NTSX1KYC5yZXBlYXQoY291bnQpLFxuICBsaW5lOiBgJHtDU0l9MktgLFxuICBsaW5lRW5kOiBgJHtDU0l9S2AsXG4gIGxpbmVTdGFydDogYCR7Q1NJfTFLYCxcbiAgbGluZXMoY291bnQpIHtcbiAgICBsZXQgY2xlYXIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspXG4gICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuICAgIGlmIChjb3VudClcbiAgICAgIGNsZWFyICs9IGN1cnNvci5sZWZ0O1xuICAgIHJldHVybiBjbGVhcjtcbiAgfVxufTtcblxudmFyIHNyYyA9IHsgY3Vyc29yLCBzY3JvbGwsIGVyYXNlLCBiZWVwIH07XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxubGV0IHR0eSA9IHJlcXVpcmUkJDA7XG5cbmxldCBpc0NvbG9yU3VwcG9ydGVkID1cblx0IShcIk5PX0NPTE9SXCIgaW4gcHJvY2Vzcy5lbnYgfHwgcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0KFwiRk9SQ0VfQ09MT1JcIiBpbiBwcm9jZXNzLmVudiB8fFxuXHRcdHByb2Nlc3MuYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHxcblx0XHRwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIgfHxcblx0XHQodHR5LmlzYXR0eSgxKSAmJiBwcm9jZXNzLmVudi5URVJNICE9PSBcImR1bWJcIikgfHxcblx0XHRcIkNJXCIgaW4gcHJvY2Vzcy5lbnYpO1xuXG5sZXQgZm9ybWF0dGVyID1cblx0KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbikgPT5cblx0aW5wdXQgPT4ge1xuXHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQ7XG5cdFx0bGV0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRyZXR1cm4gfmluZGV4XG5cdFx0XHQ/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2Vcblx0XHRcdDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdH07XG5cbmxldCByZXBsYWNlQ2xvc2UgPSAoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpID0+IHtcblx0bGV0IHN0YXJ0ID0gc3RyaW5nLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlO1xuXHRsZXQgZW5kID0gc3RyaW5nLnN1YnN0cmluZyhpbmRleCArIGNsb3NlLmxlbmd0aCk7XG5cdGxldCBuZXh0SW5kZXggPSBlbmQuaW5kZXhPZihjbG9zZSk7XG5cdHJldHVybiB+bmV4dEluZGV4ID8gc3RhcnQgKyByZXBsYWNlQ2xvc2UoZW5kLCBjbG9zZSwgcmVwbGFjZSwgbmV4dEluZGV4KSA6IHN0YXJ0ICsgZW5kXG59O1xuXG5sZXQgY3JlYXRlQ29sb3JzID0gKGVuYWJsZWQgPSBpc0NvbG9yU3VwcG9ydGVkKSA9PiAoe1xuXHRpc0NvbG9yU3VwcG9ydGVkOiBlbmFibGVkLFxuXHRyZXNldDogZW5hYmxlZCA/IHMgPT4gYFxceDFiWzBtJHtzfVxceDFiWzBtYCA6IFN0cmluZyxcblx0Ym9sZDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzFtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMW1cIikgOiBTdHJpbmcsXG5cdGRpbTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzJtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMm1cIikgOiBTdHJpbmcsXG5cdGl0YWxpYzogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpIDogU3RyaW5nLFxuXHR1bmRlcmxpbmU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0bVwiLCBcIlxceDFiWzI0bVwiKSA6IFN0cmluZyxcblx0aW52ZXJzZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzdtXCIsIFwiXFx4MWJbMjdtXCIpIDogU3RyaW5nLFxuXHRoaWRkZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSA6IFN0cmluZyxcblx0c3RyaWtldGhyb3VnaDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzltXCIsIFwiXFx4MWJbMjltXCIpIDogU3RyaW5nLFxuXHRibGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0cmVkOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzFtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRncmVlbjogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0eWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzNtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRibHVlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzRtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRtYWdlbnRhOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRjeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzZtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHR3aGl0ZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzM3bVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0Z3JheTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0YmdCbGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdSZWQ6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0MW1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnR3JlZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0Mm1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnWWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ0JsdWU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0NG1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnTWFnZW50YTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQ1bVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdDeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ1doaXRlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDdtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxufSk7XG5cbnBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xucGljb2NvbG9ycy5leHBvcnRzLmNyZWF0ZUNvbG9ycyA9IGNyZWF0ZUNvbG9ycztcblxudmFyIHBpY29jb2xvcnNFeHBvcnRzID0gcGljb2NvbG9ycy5leHBvcnRzO1xuY29uc3QgbCA9IC8qQF9fUFVSRV9fKi9nZXREZWZhdWx0RXhwb3J0RnJvbUNqcyhwaWNvY29sb3JzRXhwb3J0cyk7XG5cbmZ1bmN0aW9uIHooe29ubHlGaXJzdDp0PSExfT17fSl7Y29uc3QgdT1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cCh1LHQ/dm9pZCAwOlwiZ1wiKX1mdW5jdGlvbiAkKHQpe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgXFxgc3RyaW5nXFxgLCBnb3QgXFxgJHt0eXBlb2YgdH1cXGBgKTtyZXR1cm4gdC5yZXBsYWNlKHooKSxcIlwiKX12YXIgbT17fSxHPXtnZXQgZXhwb3J0cygpe3JldHVybiBtfSxzZXQgZXhwb3J0cyh0KXttPXQ7fX07KGZ1bmN0aW9uKHQpe3ZhciB1PXt9O3QuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24oZSl7dmFyIHM9ZS5jaGFyQ29kZUF0KDApLEM9ZS5sZW5ndGg9PTI/ZS5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1DJiZDPD01NzM0MyYmKHMmPTEwMjMsQyY9MTAyMyxEPXM8PDEwfEMsRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbihlKXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKGUpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRihlKXtyZXR1cm4gZS5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcz1GKGUpLEM9MCxEPTA7RDxzLmxlbmd0aDtEKyspQz1DK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBDfSx1LnNsaWNlPWZ1bmN0aW9uKGUscyxDKXt0ZXh0TGVuPXUubGVuZ3RoKGUpLHM9c3x8MCxDPUN8fDEsczwwJiYocz10ZXh0TGVuK3MpLEM8MCYmKEM9dGV4dExlbitDKTtmb3IodmFyIEQ9XCJcIixpPTAsbz1GKGUpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKGk+PXMtKG49PTI/MTowKSlpZihpK248PUMpRCs9YTtlbHNlIGJyZWFrO2krPW47fXJldHVybiBEfTt9KShHKTtjb25zdCBLPW07dmFyIFk9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/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/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307ZnVuY3Rpb24gYyh0LHU9e30pe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wifHx0Lmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSx0PSQodCksdC5sZW5ndGg9PT0wKSlyZXR1cm4gMDt0PXQucmVwbGFjZShZKCksXCIgIFwiKTtjb25zdCBGPXUuYW1iaWd1b3VzSXNOYXJyb3c/MToyO2xldCBlPTA7Zm9yKGNvbnN0IHMgb2YgdCl7Y29uc3QgQz1zLmNvZGVQb2ludEF0KDApO2lmKEM8PTMxfHxDPj0xMjcmJkM8PTE1OXx8Qz49NzY4JiZDPD04NzkpY29udGludWU7c3dpdGNoKEsuZWFzdEFzaWFuV2lkdGgocykpe2Nhc2VcIkZcIjpjYXNlXCJXXCI6ZSs9MjticmVhaztjYXNlXCJBXCI6ZSs9RjticmVhaztkZWZhdWx0OmUrPTE7fX1yZXR1cm4gZX1jb25zdCB2PTEwLEw9KHQ9MCk9PnU9PmBcXHgxQlske3UrdH1tYCxNPSh0PTApPT51PT5gXFx4MUJbJHszOCt0fTs1OyR7dX1tYCxUPSh0PTApPT4odSxGLGUpPT5gXFx4MUJbJHszOCt0fTsyOyR7dX07JHtGfTske2V9bWAscj17bW9kaWZpZXI6e3Jlc2V0OlswLDBdLGJvbGQ6WzEsMjJdLGRpbTpbMiwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLG92ZXJsaW5lOls1Myw1NV0saW52ZXJzZTpbNywyN10saGlkZGVuOls4LDI4XSxzdHJpa2V0aHJvdWdoOls5LDI5XX0sY29sb3I6e2JsYWNrOlszMCwzOV0scmVkOlszMSwzOV0sZ3JlZW46WzMyLDM5XSx5ZWxsb3c6WzMzLDM5XSxibHVlOlszNCwzOV0sbWFnZW50YTpbMzUsMzldLGN5YW46WzM2LDM5XSx3aGl0ZTpbMzcsMzldLGJsYWNrQnJpZ2h0Ols5MCwzOV0sZ3JheTpbOTAsMzldLGdyZXk6WzkwLDM5XSxyZWRCcmlnaHQ6WzkxLDM5XSxncmVlbkJyaWdodDpbOTIsMzldLHllbGxvd0JyaWdodDpbOTMsMzldLGJsdWVCcmlnaHQ6Wzk0LDM5XSxtYWdlbnRhQnJpZ2h0Ols5NSwzOV0sY3lhbkJyaWdodDpbOTYsMzldLHdoaXRlQnJpZ2h0Ols5NywzOV19LGJnQ29sb3I6e2JnQmxhY2s6WzQwLDQ5XSxiZ1JlZDpbNDEsNDldLGJnR3JlZW46WzQyLDQ5XSxiZ1llbGxvdzpbNDMsNDldLGJnQmx1ZTpbNDQsNDldLGJnTWFnZW50YTpbNDUsNDldLGJnQ3lhbjpbNDYsNDldLGJnV2hpdGU6WzQ3LDQ5XSxiZ0JsYWNrQnJpZ2h0OlsxMDAsNDldLGJnR3JheTpbMTAwLDQ5XSxiZ0dyZXk6WzEwMCw0OV0sYmdSZWRCcmlnaHQ6WzEwMSw0OV0sYmdHcmVlbkJyaWdodDpbMTAyLDQ5XSxiZ1llbGxvd0JyaWdodDpbMTAzLDQ5XSxiZ0JsdWVCcmlnaHQ6WzEwNCw0OV0sYmdNYWdlbnRhQnJpZ2h0OlsxMDUsNDldLGJnQ3lhbkJyaWdodDpbMTA2LDQ5XSxiZ1doaXRlQnJpZ2h0OlsxMDcsNDldfX07T2JqZWN0LmtleXMoci5tb2RpZmllcik7Y29uc3QgWj1PYmplY3Qua2V5cyhyLmNvbG9yKSxIPU9iamVjdC5rZXlzKHIuYmdDb2xvcik7Wy4uLlosLi4uSF07ZnVuY3Rpb24gVSgpe2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3RbdSxGXW9mIE9iamVjdC5lbnRyaWVzKHIpKXtmb3IoY29uc3RbZSxzXW9mIE9iamVjdC5lbnRyaWVzKEYpKXJbZV09e29wZW46YFxceDFCWyR7c1swXX1tYCxjbG9zZTpgXFx4MUJbJHtzWzFdfW1gfSxGW2VdPXJbZV0sdC5zZXQoc1swXSxzWzFdKTtPYmplY3QuZGVmaW5lUHJvcGVydHkocix1LHt2YWx1ZTpGLGVudW1lcmFibGU6ITF9KTt9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiY29kZXNcIix7dmFsdWU6dCxlbnVtZXJhYmxlOiExfSksci5jb2xvci5jbG9zZT1cIlxceDFCWzM5bVwiLHIuYmdDb2xvci5jbG9zZT1cIlxceDFCWzQ5bVwiLHIuY29sb3IuYW5zaT1MKCksci5jb2xvci5hbnNpMjU2PU0oKSxyLmNvbG9yLmFuc2kxNm09VCgpLHIuYmdDb2xvci5hbnNpPUwodiksci5iZ0NvbG9yLmFuc2kyNTY9TSh2KSxyLmJnQ29sb3IuYW5zaTE2bT1UKHYpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIse3JnYlRvQW5zaTI1Njp7dmFsdWU6KHUsRixlKT0+dT09PUYmJkY9PT1lP3U8OD8xNjp1PjI0OD8yMzE6TWF0aC5yb3VuZCgodS04KS8yNDcqMjQpKzIzMjoxNiszNipNYXRoLnJvdW5kKHUvMjU1KjUpKzYqTWF0aC5yb3VuZChGLzI1NSo1KStNYXRoLnJvdW5kKGUvMjU1KjUpLGVudW1lcmFibGU6ITF9LGhleFRvUmdiOnt2YWx1ZTp1PT57Y29uc3QgRj0vW2EtZlxcZF17Nn18W2EtZlxcZF17M30vaS5leGVjKHUudG9TdHJpbmcoMTYpKTtpZighRilyZXR1cm4gWzAsMCwwXTtsZXRbZV09RjtlLmxlbmd0aD09PTMmJihlPVsuLi5lXS5tYXAoQz0+QytDKS5qb2luKFwiXCIpKTtjb25zdCBzPU51bWJlci5wYXJzZUludChlLDE2KTtyZXR1cm4gW3M+PjE2JjI1NSxzPj44JjI1NSxzJjI1NV19LGVudW1lcmFibGU6ITF9LGhleFRvQW5zaTI1Njp7dmFsdWU6dT0+ci5yZ2JUb0Fuc2kyNTYoLi4uci5oZXhUb1JnYih1KSksZW51bWVyYWJsZTohMX0sYW5zaTI1NlRvQW5zaTp7dmFsdWU6dT0+e2lmKHU8OClyZXR1cm4gMzArdTtpZih1PDE2KXJldHVybiA5MCsodS04KTtsZXQgRixlLHM7aWYodT49MjMyKUY9KCh1LTIzMikqMTArOCkvMjU1LGU9RixzPUY7ZWxzZSB7dS09MTY7Y29uc3QgaT11JTM2O0Y9TWF0aC5mbG9vcih1LzM2KS81LGU9TWF0aC5mbG9vcihpLzYpLzUscz1pJTYvNTt9Y29uc3QgQz1NYXRoLm1heChGLGUscykqMjtpZihDPT09MClyZXR1cm4gMzA7bGV0IEQ9MzArKE1hdGgucm91bmQocyk8PDJ8TWF0aC5yb3VuZChlKTw8MXxNYXRoLnJvdW5kKEYpKTtyZXR1cm4gQz09PTImJihEKz02MCksRH0sZW51bWVyYWJsZTohMX0scmdiVG9BbnNpOnt2YWx1ZToodSxGLGUpPT5yLmFuc2kyNTZUb0Fuc2koci5yZ2JUb0Fuc2kyNTYodSxGLGUpKSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2k6e3ZhbHVlOnU9PnIuYW5zaTI1NlRvQW5zaShyLmhleFRvQW5zaTI1Nih1KSksZW51bWVyYWJsZTohMX19KSxyfWNvbnN0IHE9VSgpLHA9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLEo9MzksYj1cIlxceDA3XCIsVz1cIltcIixRPVwiXVwiLEk9XCJtXCIsdz1gJHtRfTg7O2AsTj10PT5gJHtwLnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke1d9JHt0fSR7SX1gLGo9dD0+YCR7cC52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt3fSR7dH0ke2J9YCxYPXQ9PnQuc3BsaXQoXCIgXCIpLm1hcCh1PT5jKHUpKSxfPSh0LHUsRik9Pntjb25zdCBlPVsuLi51XTtsZXQgcz0hMSxDPSExLEQ9YygkKHRbdC5sZW5ndGgtMV0pKTtmb3IoY29uc3RbaSxvXW9mIGUuZW50cmllcygpKXtjb25zdCBFPWMobyk7aWYoRCtFPD1GP3RbdC5sZW5ndGgtMV0rPW86KHQucHVzaChvKSxEPTApLHAuaGFzKG8pJiYocz0hMCxDPWUuc2xpY2UoaSsxKS5qb2luKFwiXCIpLnN0YXJ0c1dpdGgodykpLHMpe0M/bz09PWImJihzPSExLEM9ITEpOm89PT1JJiYocz0hMSk7Y29udGludWV9RCs9RSxEPT09RiYmaTxlLmxlbmd0aC0xJiYodC5wdXNoKFwiXCIpLEQ9MCk7fSFEJiZ0W3QubGVuZ3RoLTFdLmxlbmd0aD4wJiZ0Lmxlbmd0aD4xJiYodFt0Lmxlbmd0aC0yXSs9dC5wb3AoKSk7fSxERD10PT57Y29uc3QgdT10LnNwbGl0KFwiIFwiKTtsZXQgRj11Lmxlbmd0aDtmb3IoO0Y+MCYmIShjKHVbRi0xXSk+MCk7KUYtLTtyZXR1cm4gRj09PXUubGVuZ3RoP3Q6dS5zbGljZSgwLEYpLmpvaW4oXCIgXCIpK3Uuc2xpY2UoRikuam9pbihcIlwiKX0sdUQ9KHQsdSxGPXt9KT0+e2lmKEYudHJpbSE9PSExJiZ0LnRyaW0oKT09PVwiXCIpcmV0dXJuIFwiXCI7bGV0IGU9XCJcIixzLEM7Y29uc3QgRD1YKHQpO2xldCBpPVtcIlwiXTtmb3IoY29uc3RbRSxhXW9mIHQuc3BsaXQoXCIgXCIpLmVudHJpZXMoKSl7Ri50cmltIT09ITEmJihpW2kubGVuZ3RoLTFdPWlbaS5sZW5ndGgtMV0udHJpbVN0YXJ0KCkpO2xldCBuPWMoaVtpLmxlbmd0aC0xXSk7aWYoRSE9PTAmJihuPj11JiYoRi53b3JkV3JhcD09PSExfHxGLnRyaW09PT0hMSkmJihpLnB1c2goXCJcIiksbj0wKSwobj4wfHxGLnRyaW09PT0hMSkmJihpW2kubGVuZ3RoLTFdKz1cIiBcIixuKyspKSxGLmhhcmQmJkRbRV0+dSl7Y29uc3QgQj11LW4sQT0xK01hdGguZmxvb3IoKERbRV0tQi0xKS91KTtNYXRoLmZsb29yKChEW0VdLTEpL3UpPEEmJmkucHVzaChcIlwiKSxfKGksYSx1KTtjb250aW51ZX1pZihuK0RbRV0+dSYmbj4wJiZEW0VdPjApe2lmKEYud29yZFdyYXA9PT0hMSYmbjx1KXtfKGksYSx1KTtjb250aW51ZX1pLnB1c2goXCJcIik7fWlmKG4rRFtFXT51JiZGLndvcmRXcmFwPT09ITEpe18oaSxhLHUpO2NvbnRpbnVlfWlbaS5sZW5ndGgtMV0rPWE7fUYudHJpbSE9PSExJiYoaT1pLm1hcChFPT5ERChFKSkpO2NvbnN0IG89Wy4uLmkuam9pbihgXG5gKV07Zm9yKGNvbnN0W0UsYV1vZiBvLmVudHJpZXMoKSl7aWYoZSs9YSxwLmhhcyhhKSl7Y29uc3R7Z3JvdXBzOkJ9PW5ldyBSZWdFeHAoYCg/OlxcXFwke1d9KD88Y29kZT5cXFxcZCspbXxcXFxcJHt3fSg/PHVyaT4uKikke2J9KWApLmV4ZWMoby5zbGljZShFKS5qb2luKFwiXCIpKXx8e2dyb3Vwczp7fX07aWYoQi5jb2RlIT09dm9pZCAwKXtjb25zdCBBPU51bWJlci5wYXJzZUZsb2F0KEIuY29kZSk7cz1BPT09Sj92b2lkIDA6QTt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKEM9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPXEuY29kZXMuZ2V0KE51bWJlcihzKSk7b1tFKzFdPT09YFxuYD8oQyYmKGUrPWooXCJcIikpLHMmJm4mJihlKz1OKG4pKSk6YT09PWBcbmAmJihzJiZuJiYoZSs9TihzKSksQyYmKGUrPWooQykpKTt9cmV0dXJuIGV9O2Z1bmN0aW9uIFAodCx1LEYpe3JldHVybiBTdHJpbmcodCkubm9ybWFsaXplKCkucmVwbGFjZSgvXFxyXFxuL2csYFxuYCkuc3BsaXQoYFxuYCkubWFwKGU9PnVEKGUsdSxGKSkuam9pbihgXG5gKX1mdW5jdGlvbiBGRCh0LHUpe2lmKHQ9PT11KXJldHVybjtjb25zdCBGPXQuc3BsaXQoYFxuYCksZT11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBDPTA7QzxNYXRoLm1heChGLmxlbmd0aCxlLmxlbmd0aCk7QysrKUZbQ10hPT1lW0NdJiZzLnB1c2goQyk7cmV0dXJuIHN9Y29uc3QgUj1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZyh0LHUpe3QuaXNUVFkmJnQuc2V0UmF3TW9kZSh1KTt9Y29uc3QgVj1uZXcgTWFwKFtbXCJrXCIsXCJ1cFwiXSxbXCJqXCIsXCJkb3duXCJdLFtcImhcIixcImxlZnRcIl0sW1wibFwiLFwicmlnaHRcIl1dKSx0RD1uZXcgU2V0KFtcInVwXCIsXCJkb3duXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwic3BhY2VcIixcImVudGVyXCJdKTtjbGFzcyBoe2NvbnN0cnVjdG9yKHtyZW5kZXI6dSxpbnB1dDpGPXN0ZGluLG91dHB1dDplPXN0ZG91dCwuLi5zfSxDPSEwKXt0aGlzLl90cmFjaz0hMSx0aGlzLl9jdXJzb3I9MCx0aGlzLnN0YXRlPVwiaW5pdGlhbFwiLHRoaXMuZXJyb3I9XCJcIix0aGlzLnN1YnNjcmliZXJzPW5ldyBNYXAsdGhpcy5fcHJldkZyYW1lPVwiXCIsdGhpcy5vcHRzPXMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPXUuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1DLHRoaXMuaW5wdXQ9Rix0aGlzLm91dHB1dD1lO31wcm9tcHQoKXtjb25zdCB1PW5ldyBXcml0ZVN0cmVhbSgwKTtyZXR1cm4gdS5fd3JpdGU9KEYsZSxzKT0+e3RoaXMuX3RyYWNrJiYodGhpcy52YWx1ZT10aGlzLnJsLmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmwuY3Vyc29yLHRoaXMuZW1pdChcInZhbHVlXCIsdGhpcy52YWx1ZSkpLHMoKTt9LHRoaXMuaW5wdXQucGlwZSh1KSx0aGlzLnJsPWYuY3JlYXRlSW50ZXJmYWNlKHtpbnB1dDp0aGlzLmlucHV0LG91dHB1dDp1LHRhYlNpemU6Mixwcm9tcHQ6XCJcIixlc2NhcGVDb2RlVGltZW91dDo1MH0pLGYuZW1pdEtleXByZXNzRXZlbnRzKHRoaXMuaW5wdXQsdGhpcy5ybCksdGhpcy5ybC5wcm9tcHQoKSx0aGlzLm9wdHMuaW5pdGlhbFZhbHVlIT09dm9pZCAwJiZ0aGlzLl90cmFjayYmdGhpcy5ybC53cml0ZSh0aGlzLm9wdHMuaW5pdGlhbFZhbHVlKSx0aGlzLmlucHV0Lm9uKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLGcodGhpcy5pbnB1dCwhMCksdGhpcy5vdXRwdXQub24oXCJyZXNpemVcIix0aGlzLnJlbmRlciksdGhpcy5yZW5kZXIoKSxuZXcgUHJvbWlzZSgoRixlKT0+e3RoaXMub25jZShcInN1Ym1pdFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKFIpO30pO30pfW9uKHUsRil7Y29uc3QgZT10aGlzLnN1YnNjcmliZXJzLmdldCh1KT8/W107ZS5wdXNoKHtjYjpGfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9b25jZSh1LEYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdO2UucHVzaCh7Y2I6RixvbmNlOiEwfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9ZW1pdCh1LC4uLkYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdLHM9W107Zm9yKGNvbnN0IEMgb2YgZSlDLmNiKC4uLkYpLEMub25jZSYmcy5wdXNoKCgpPT5lLnNwbGljZShlLmluZGV4T2YoQyksMSkpO2Zvcihjb25zdCBDIG9mIHMpQygpO311bnN1YnNjcmliZSgpe3RoaXMuc3Vic2NyaWJlcnMuY2xlYXIoKTt9b25LZXlwcmVzcyh1LEYpe2lmKHRoaXMuc3RhdGU9PT1cImVycm9yXCImJih0aGlzLnN0YXRlPVwiYWN0aXZlXCIpLEY/Lm5hbWUmJiF0aGlzLl90cmFjayYmVi5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsVi5nZXQoRi5uYW1lKSksRj8ubmFtZSYmdEQuaGFzKEYubmFtZSkmJnRoaXMuZW1pdChcImN1cnNvclwiLEYubmFtZSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCBlPXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTtlJiYodGhpcy5lcnJvcj1lLHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmwud3JpdGUodGhpcy52YWx1ZSkpO310aGlzLnN0YXRlIT09XCJlcnJvclwiJiYodGhpcy5zdGF0ZT1cInN1Ym1pdFwiKTt9dT09PVwiXHUwMDAzXCImJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGcodGhpcy5pbnB1dCwhMSksdGhpcy5ybC5jbG9zZSgpLHRoaXMuZW1pdChgJHt0aGlzLnN0YXRlfWAsdGhpcy52YWx1ZSksdGhpcy51bnN1YnNjcmliZSgpO31yZXN0b3JlQ3Vyc29yKCl7Y29uc3QgdT1QKHRoaXMuX3ByZXZGcmFtZSxwcm9jZXNzLnN0ZG91dC5jb2x1bW5zLHtoYXJkOiEwfSkuc3BsaXQoYFxuYCkubGVuZ3RoLTE7dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKC05OTksdSotMSkpO31yZW5kZXIoKXtjb25zdCB1PVAodGhpcy5fcmVuZGVyKHRoaXMpPz9cIlwiLHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMse2hhcmQ6ITB9KTtpZih1IT09dGhpcy5fcHJldkZyYW1lKXtpZih0aGlzLnN0YXRlPT09XCJpbml0aWFsXCIpdGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPUZEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5saW5lcygxKSk7Y29uc3Qgcz11LnNwbGl0KGBcbmApO3RoaXMub3V0cHV0LndyaXRlKHNbZV0pLHRoaXMuX3ByZXZGcmFtZT11LHRoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLWUtMSkpO3JldHVybn1lbHNlIGlmKEYmJkY/Lmxlbmd0aD4xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5kb3duKCkpO2NvbnN0IEM9dS5zcGxpdChgXG5gKS5zbGljZShlKTt0aGlzLm91dHB1dC53cml0ZShDLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmMuZXJhc2UuZG93bigpKTt9dGhpcy5vdXRwdXQud3JpdGUodSksdGhpcy5zdGF0ZT09PVwiaW5pdGlhbFwiJiYodGhpcy5zdGF0ZT1cImFjdGl2ZVwiKSx0aGlzLl9wcmV2RnJhbWU9dTt9fX1jbGFzcyBzRCBleHRlbmRzIGh7Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLnZhbHVlPzA6MX1nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMuY3Vyc29yPT09MH1jb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLnZhbHVlPSEhdS5pbml0aWFsVmFsdWUsdGhpcy5vbihcInZhbHVlXCIsKCk9Pnt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlO30pLHRoaXMub24oXCJjb25maXJtXCIsRj0+e3RoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLC0xKSksdGhpcy52YWx1ZT1GLHRoaXMuc3RhdGU9XCJzdWJtaXRcIix0aGlzLmNsb3NlKCk7fSksdGhpcy5vbihcImN1cnNvclwiLCgpPT57dGhpcy52YWx1ZT0hdGhpcy52YWx1ZTt9KTt9fWNsYXNzIGlEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fWNsYXNzIEVEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy5jdXJzb3I9dGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuaW5pdGlhbFZhbHVlKSx0aGlzLmN1cnNvcj09PS0xJiYodGhpcy5jdXJzb3I9MCksdGhpcy5jaGFuZ2VWYWx1ZSgpLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWt9dGhpcy5jaGFuZ2VWYWx1ZSgpO30pO31nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMub3B0aW9uc1t0aGlzLmN1cnNvcl19Y2hhbmdlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlLnZhbHVlO319Y2xhc3Mgb0QgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLHRoaXMudmFsdWVXaXRoQ3Vyc29yPVwiXCIsdGhpcy5vbihcImZpbmFsaXplXCIsKCk9Pnt0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT11LmRlZmF1bHRWYWx1ZSksdGhpcy52YWx1ZVdpdGhDdXJzb3I9dGhpcy52YWx1ZTt9KSx0aGlzLm9uKFwidmFsdWVcIiwoKT0+e2lmKHRoaXMuY3Vyc29yPj10aGlzLnZhbHVlLmxlbmd0aCl0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHt0aGlzLnZhbHVlfSR7bC5pbnZlcnNlKGwuaGlkZGVuKFwiX1wiKSl9YDtlbHNlIHtjb25zdCBGPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLmN1cnNvciksZT10aGlzLnZhbHVlLnNsaWNlKHRoaXMuY3Vyc29yKTt0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHtGfSR7bC5pbnZlcnNlKGVbMF0pfSR7ZS5zbGljZSgxKX1gO319KTt9Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLl9jdXJzb3J9fVxuXG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgU19TVEVQX0FDVElWRSA9IHMoXCJcXHUyNzZGXCIsIFwiPlwiKTtcbmNvbnN0IFNfU1RFUF9DQU5DRUwgPSBzKFwiXFx1MjVBMFwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfRVJST1IgPSBzKFwiXFx1MjVCMlwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfU1VCTUlUID0gcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpO1xuY29uc3QgU19CQVIgPSBcIlwiO1xuY29uc3QgU19CQVJfRU5EID0gXCJcIjtcbmNvbnN0IFNfUkFESU9fQUNUSVZFID0gcyhcIlxcdTI1Q0ZcIiwgXCI+XCIpO1xuY29uc3QgU19SQURJT19JTkFDVElWRSA9IHMoXCJcXHUyNUNCXCIsIFwiIFwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbXFx1MjAyMl1cIik7XG5jb25zdCBTX0NIRUNLQk9YX1NFTEVDVEVEID0gcyhcIlxcdTI1RkNcIiwgXCJbK11cIik7XG5jb25zdCBTX0NIRUNLQk9YX0lOQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbIF1cIik7XG5jb25zdCBzeW1ib2wgPSAoc3RhdGUpID0+IHtcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgXCJpbml0aWFsXCI6XG4gICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLmN5YW4oU19TVEVQX0FDVElWRSk7XG4gICAgfVxuICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5yZWQoU19TVEVQX0NBTkNFTCk7XG4gICAgfVxuICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnllbGxvdyhTX1NURVBfRVJST1IpO1xuICAgIH1cbiAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuZ3JlZW4oU19TVEVQX1NVQk1JVCk7XG4gICAgfVxuICB9XG59O1xuY29uc3QgdGV4dCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgb0Qoe1xuICAgIHZhbGlkYXRlOiBvcHRzLnZhbGlkYXRlLFxuICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogb3B0cy5kZWZhdWx0VmFsdWUsXG4gICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxWYWx1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCBwbGFjZWhvbGRlciA9IG9wdHMucGxhY2Vob2xkZXIgPyBjb2xvcnMuaW52ZXJzZShvcHRzLnBsYWNlaG9sZGVyWzBdKSArIGNvbG9ycy5kaW0ob3B0cy5wbGFjZWhvbGRlci5zbGljZSgxKSkgOiBjb2xvcnMuaW52ZXJzZShjb2xvcnMuaGlkZGVuKFwiX1wiKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlV2l0aEN1cnNvciA6IHBsYWNlaG9sZGVyO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlLnRyaW0oKX1cbiR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIFNfQkFSXG4gICAgICAgICAgKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3coXG4gICAgICAgICAgICB0aGlzLmVycm9yXG4gICAgICAgICAgKX1cbmA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0oXG4gICAgICAgICAgICB0aGlzLnZhbHVlIHx8IG9wdHMucGxhY2Vob2xkZXJcbiAgICAgICAgICApfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh0aGlzLnZhbHVlID8/IFwiXCIpXG4gICAgICAgICAgKX0ke3RoaXMudmFsdWU/LnRyaW0oKSA/IFwiXFxuXCIgKyBjb2xvcnMuZ3JheShTX0JBUikgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLmN5YW4oXG4gICAgICAgICAgICBTX0JBUl9FTkRcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3QgY29uZmlybSA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGFjdGl2ZSA9IG9wdHMuYWN0aXZlID8/IFwiWWVzXCI7XG4gIGNvbnN0IGluYWN0aXZlID0gb3B0cy5pbmFjdGl2ZSA/PyBcIk5vXCI7XG4gIHJldHVybiBuZXcgc0Qoe1xuICAgIGFjdGl2ZSxcbiAgICBpbmFjdGl2ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlID8/IHRydWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlID8gYWN0aXZlIDogaW5hY3RpdmU7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0odmFsdWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh2YWx1ZSlcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2FjdGl2ZX1gIDogYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGFjdGl2ZSl9YH0gJHtjb2xvcnMuZGltKFwiL1wiKX0gJHt0aGlzLnZhbHVlID8gYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGluYWN0aXZlKX1gIDogYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtpbmFjdGl2ZX1gfVxuJHtjb2xvcnMuY3lhbihTX0JBUl9FTkQpfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3Qgc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgRUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwic2VsZWN0ZWRcIlxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwiY2FuY2VsbGVkXCJcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoXG4gICAgICAgICAgICAob3B0aW9uLCBpKSA9PiBvcHQob3B0aW9uLCBpID09PSB0aGlzLmN1cnNvciA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpXG4gICAgICAgICAgKS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBtdWx0aXNlbGVjdCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IG9wdCA9IChvcHRpb24sIHN0YXRlKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSBvcHRpb24ubGFiZWwgPz8gU3RyaW5nKG9wdGlvbi52YWx1ZSk7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuY3lhbihTX0NIRUNLQk9YX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfQ0hFQ0tCT1hfU0VMRUNURUQpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiY2FuY2VsbGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKGNvbG9ycy5kaW0obGFiZWwpKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImFjdGl2ZS1zZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3VibWl0dGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfQ0hFQ0tCT1hfSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgaUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWVzOiBvcHRzLmluaXRpYWxWYWx1ZXMsXG4gICAgcmVxdWlyZWQ6IG9wdHMucmVxdWlyZWQgPz8gdHJ1ZSxcbiAgICBjdXJzb3JBdDogb3B0cy5jdXJzb3JBdCxcbiAgICB2YWxpZGF0ZShzZWxlY3RlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBgUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgb3B0aW9uLlxuJHtjb2xvcnMucmVzZXQoXG4gICAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICAgIGBQcmVzcyAke2NvbG9ycy5ncmF5KFxuICAgICAgICAgICAgICBjb2xvcnMuYmdXaGl0ZShjb2xvcnMuaW52ZXJzZShcIiBzcGFjZSBcIikpXG4gICAgICAgICAgICApfSB0byBzZWxlY3QsICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIGVudGVyIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHN1Ym1pdGBcbiAgICAgICAgICApXG4gICAgICAgICl9YDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7dGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwic3VibWl0dGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSkgfHwgY29sb3JzLmRpbShcIm5vbmVcIil9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdGhpcy52YWx1ZS5pbmNsdWRlcyh2YWx1ZSkpLm1hcCgob3B0aW9uKSA9PiBvcHQob3B0aW9uLCBcImNhbmNlbGxlZFwiKSkuam9pbihjb2xvcnMuZGltKFwiLCBcIikpO1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtsYWJlbC50cmltKCkgPyBgJHtsYWJlbH1cbiR7Y29sb3JzLmdyYXkoU19CQVIpfWAgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLmVycm9yLnNwbGl0KFwiXFxuXCIpLm1hcChcbiAgICAgICAgICAgIChsbiwgaSkgPT4gaSA9PT0gMCA/IGAke2NvbG9ycy55ZWxsb3coU19CQVJfRU5EKX0gJHtjb2xvcnMueWVsbG93KGxuKX1gIDogYCAgICR7bG59YFxuICAgICAgICAgICkuam9pbihcIlxcblwiKTtcbiAgICAgICAgICByZXR1cm4gdGl0bGUgKyBjb2xvcnMueWVsbG93KFNfQkFSKSArIFwiICBcIiArIHRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMueWVsbG93KFNfQkFSKX0gIGApICsgXCJcXG5cIiArIGZvb3RlciArIFwiXFxuXCI7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMubWFwKChvcHRpb24sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy52YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gaSA9PT0gdGhpcy5jdXJzb3I7XG4gICAgICAgICAgICBpZiAoYWN0aXZlICYmIHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcImFjdGl2ZS1zZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBhY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiKTtcbiAgICAgICAgICB9KS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIHByb21wdChtZXNzYWdlLCBvcHRzID0ge30pIHtcbiAgaWYgKCFvcHRzLnR5cGUgfHwgb3B0cy50eXBlID09PSBcInRleHRcIikge1xuICAgIHJldHVybiBhd2FpdCB0ZXh0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBkZWZhdWx0VmFsdWU6IG9wdHMuZGVmYXVsdCxcbiAgICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxcbiAgICB9KTtcbiAgfVxuICBpZiAob3B0cy50eXBlID09PSBcImNvbmZpcm1cIikge1xuICAgIHJldHVybiBhd2FpdCBjb25maXJtKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKVxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZFxuICAgIH0pO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9tcHQgdHlwZTogJHtvcHRzLnR5cGV9YCk7XG59XG5cbmV4cG9ydCB7IHByb21wdCB9O1xuIiwgImltcG9ydCB7IGNyZWF0ZUNvbnNvbGEgYXMgY3JlYXRlQ29uc29sYSQxLCBMb2dMZXZlbHMgfSBmcm9tICcuLi9jb3JlLm1qcyc7XG5pbXBvcnQgeyBCIGFzIEJhc2ljUmVwb3J0ZXIsIHAgYXMgcGFyc2VTdGFjayB9IGZyb20gJy4vY29uc29sYS4wNmFkOGE2NC5tanMnO1xuaW1wb3J0IHByb2Nlc3MkMSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IHsgY29sb3JzLCBib3gsIHN0cmlwQW5zaSBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgW1wiQVBQVkVZT1JcIl0sXG4gIFtcIkFaVVJFX1BJUEVMSU5FU1wiLCBcIlNZU1RFTV9URUFNRk9VTkRBVElPTkNPTExFQ1RJT05VUklcIl0sXG4gIFtcIkFaVVJFX1NUQVRJQ1wiLCBcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sXG4gIFtcIkFQUENJUkNMRVwiLCBcIkFDX0FQUENJUkNMRVwiXSxcbiAgW1wiQkFNQk9PXCIsIFwiYmFtYm9vX3BsYW5LZXlcIl0sXG4gIFtcIkJJVEJVQ0tFVFwiLCBcIkJJVEJVQ0tFVF9DT01NSVRcIl0sXG4gIFtcIkJJVFJJU0VcIiwgXCJCSVRSSVNFX0lPXCJdLFxuICBbXCJCVUREWVwiLCBcIkJVRERZX1dPUktTUEFDRV9JRFwiXSxcbiAgW1wiQlVJTERLSVRFXCJdLFxuICBbXCJDSVJDTEVcIiwgXCJDSVJDTEVDSVwiXSxcbiAgW1wiQ0lSUlVTXCIsIFwiQ0lSUlVTX0NJXCJdLFxuICBbXCJDTE9VREZMQVJFX1BBR0VTXCIsIFwiQ0ZfUEFHRVNcIiwgeyBjaTogdHJ1ZSB9XSxcbiAgW1wiQ09ERUJVSUxEXCIsIFwiQ09ERUJVSUxEX0JVSUxEX0FSTlwiXSxcbiAgW1wiQ09ERUZSRVNIXCIsIFwiQ0ZfQlVJTERfSURcIl0sXG4gIFtcIkRST05FXCJdLFxuICBbXCJEUk9ORVwiLCBcIkRST05FX0JVSUxEX0VWRU5UXCJdLFxuICBbXCJEU0FSSVwiXSxcbiAgW1wiR0lUSFVCX0FDVElPTlNcIl0sXG4gIFtcIkdJVExBQlwiLCBcIkdJVExBQl9DSVwiXSxcbiAgW1wiR0lUTEFCXCIsIFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxcbiAgW1wiR09DRFwiLCBcIkdPX1BJUEVMSU5FX0xBQkVMXCJdLFxuICBbXCJMQVlFUkNJXCJdLFxuICBbXCJIVURTT05cIiwgXCJIVURTT05fVVJMXCJdLFxuICBbXCJKRU5LSU5TXCIsIFwiSkVOS0lOU19VUkxcIl0sXG4gIFtcIk1BR05VTVwiXSxcbiAgW1wiTkVUTElGWVwiXSxcbiAgW1wiTkVUTElGWVwiLCBcIk5FVExJRllfTE9DQUxcIiwgeyBjaTogZmFsc2UgfV0sXG4gIFtcIk5FVkVSQ09ERVwiXSxcbiAgW1wiUkVOREVSXCJdLFxuICBbXCJTQUlMXCIsIFwiU0FJTENJXCJdLFxuICBbXCJTRU1BUEhPUkVcIl0sXG4gIFtcIlNDUkVXRFJJVkVSXCJdLFxuICBbXCJTSElQUEFCTEVcIl0sXG4gIFtcIlNPTEFOT1wiLCBcIlRERElVTVwiXSxcbiAgW1wiU1RSSURFUlwiXSxcbiAgW1wiVEVBTUNJVFlcIiwgXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFxuICBbXCJUUkFWSVNcIl0sXG4gIFtcIlZFUkNFTFwiLCBcIk5PV19CVUlMREVSXCJdLFxuICBbXCJBUFBDRU5URVJcIiwgXCJBUFBDRU5URVJfQlVJTERfSURcIl0sXG4gIFtcIkNPREVTQU5EQk9YXCIsIFwiQ09ERVNBTkRCT1hfU1NFXCIsIHsgY2k6IGZhbHNlIH1dLFxuICBbXCJTVEFDS0JMSVRaXCJdLFxuICBbXCJTVE9STUtJVFwiXSxcbiAgW1wiQ0xFQVZSXCJdXG5dO1xuZnVuY3Rpb24gZGV0ZWN0UHJvdmlkZXIoZW52KSB7XG4gIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XG4gICAgY29uc3QgZW52TmFtZSA9IHByb3ZpZGVyWzFdIHx8IHByb3ZpZGVyWzBdO1xuICAgIGlmIChlbnZbZW52TmFtZV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHByb3ZpZGVyWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIC4uLnByb3ZpZGVyWzJdXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoZW52LlNIRUxMICYmIGVudi5TSEVMTCA9PT0gXCIvYmluL2pzaFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFwic3RhY2tibGl0elwiLFxuICAgICAgY2k6IGZhbHNlXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiXCIsXG4gICAgY2k6IGZhbHNlXG4gIH07XG59XG5cbmNvbnN0IHByb2Nlc3NTaGltID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzIDoge307XG5jb25zdCBlbnZTaGltID0gcHJvY2Vzc1NoaW0uZW52IHx8IHt9O1xuY29uc3QgcHJvdmlkZXJJbmZvID0gZGV0ZWN0UHJvdmlkZXIoZW52U2hpbSk7XG5jb25zdCBub2RlRU5WID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgXCJcIjtcbnByb2Nlc3NTaGltLnBsYXRmb3JtO1xucHJvdmlkZXJJbmZvLm5hbWU7XG5jb25zdCBpc0NJID0gdG9Cb29sZWFuKGVudlNoaW0uQ0kpIHx8IHByb3ZpZGVySW5mby5jaSAhPT0gZmFsc2U7XG5jb25zdCBoYXNUVFkgPSB0b0Jvb2xlYW4ocHJvY2Vzc1NoaW0uc3Rkb3V0ICYmIHByb2Nlc3NTaGltLnN0ZG91dC5pc1RUWSk7XG5jb25zdCBpc0RlYnVnID0gdG9Cb29sZWFuKGVudlNoaW0uREVCVUcpO1xuY29uc3QgaXNUZXN0ID0gbm9kZUVOViA9PT0gXCJ0ZXN0XCIgfHwgdG9Cb29sZWFuKGVudlNoaW0uVEVTVCk7XG50b0Jvb2xlYW4oZW52U2hpbS5NSU5JTUFMKSB8fCBpc0NJIHx8IGlzVGVzdCB8fCAhaGFzVFRZO1xuZnVuY3Rpb24gdG9Cb29sZWFuKHZhbCkge1xuICByZXR1cm4gdmFsID8gdmFsICE9PSBcImZhbHNlXCIgOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYW5zaVJlZ2V4KHtvbmx5Rmlyc3QgPSBmYWxzZX0gPSB7fSkge1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHQgICAgJ1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn1cblxuY29uc3QgcmVnZXggPSBhbnNpUmVnZXgoKTtcblxuZnVuY3Rpb24gc3RyaXBBbnNpKHN0cmluZykge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIFxcYHN0cmluZ1xcYCwgZ290IFxcYCR7dHlwZW9mIHN0cmluZ31cXGBgKTtcblx0fVxuXG5cdC8vIEV2ZW4gdGhvdWdoIHRoZSByZWdleCBpcyBnbG9iYWwsIHdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhlIGAubGFzdEluZGV4YFxuXHQvLyBiZWNhdXNlIHVubGlrZSBgLmV4ZWMoKWAgYW5kIGAudGVzdCgpYCwgYC5yZXBsYWNlKClgIGRvZXMgaXQgYXV0b21hdGljYWxseVxuXHQvLyBhbmQgZG9pbmcgaXQgbWFudWFsbHkgaGFzIGEgcGVyZm9ybWFuY2UgcGVuYWx0eS5cblx0cmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlZ2V4LCAnJyk7XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzICh4KSB7XG5cdHJldHVybiB4ICYmIHguX19lc01vZHVsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeCwgJ2RlZmF1bHQnKSA/IHhbJ2RlZmF1bHQnXSA6IHg7XG59XG5cbnZhciBlYXN0YXNpYW53aWR0aCA9IHtleHBvcnRzOiB7fX07XG5cbihmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBlYXcgPSB7fTtcblxuXHR7XG5cdCAgbW9kdWxlLmV4cG9ydHMgPSBlYXc7XG5cdH1cblxuXHRlYXcuZWFzdEFzaWFuV2lkdGggPSBmdW5jdGlvbihjaGFyYWN0ZXIpIHtcblx0ICB2YXIgeCA9IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApO1xuXHQgIHZhciB5ID0gKGNoYXJhY3Rlci5sZW5ndGggPT0gMikgPyBjaGFyYWN0ZXIuY2hhckNvZGVBdCgxKSA6IDA7XG5cdCAgdmFyIGNvZGVQb2ludCA9IHg7XG5cdCAgaWYgKCgweEQ4MDAgPD0geCAmJiB4IDw9IDB4REJGRikgJiYgKDB4REMwMCA8PSB5ICYmIHkgPD0gMHhERkZGKSkge1xuXHQgICAgeCAmPSAweDNGRjtcblx0ICAgIHkgJj0gMHgzRkY7XG5cdCAgICBjb2RlUG9pbnQgPSAoeCA8PCAxMCkgfCB5O1xuXHQgICAgY29kZVBvaW50ICs9IDB4MTAwMDA7XG5cdCAgfVxuXG5cdCAgaWYgKCgweDMwMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRjYwKSB8fFxuXHQgICAgICAoMHhGRkUwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkU2KSkge1xuXHQgICAgcmV0dXJuICdGJztcblx0ICB9XG5cdCAgaWYgKCgweDIwQTkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjYxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkJFKSB8fFxuXHQgICAgICAoMHhGRkMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkM3KSB8fFxuXHQgICAgICAoMHhGRkNBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkNGKSB8fFxuXHQgICAgICAoMHhGRkQyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkQ3KSB8fFxuXHQgICAgICAoMHhGRkRBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkRDKSB8fFxuXHQgICAgICAoMHhGRkU4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkVFKSkge1xuXHQgICAgcmV0dXJuICdIJztcblx0ICB9XG5cdCAgaWYgKCgweDExMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExNUYpIHx8XG5cdCAgICAgICgweDExQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExQTcpIHx8XG5cdCAgICAgICgweDExRkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExRkYpIHx8XG5cdCAgICAgICgweDIzMjkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIzMkEpIHx8XG5cdCAgICAgICgweDJFODAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFOTkpIHx8XG5cdCAgICAgICgweDJFOUIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFRjMpIHx8XG5cdCAgICAgICgweDJGMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRDUpIHx8XG5cdCAgICAgICgweDJGRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRkIpIHx8XG5cdCAgICAgICgweDMwMDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwM0UpIHx8XG5cdCAgICAgICgweDMwNDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwOTYpIHx8XG5cdCAgICAgICgweDMwOTkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwRkYpIHx8XG5cdCAgICAgICgweDMxMDUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxMkQpIHx8XG5cdCAgICAgICgweDMxMzEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxOEUpIHx8XG5cdCAgICAgICgweDMxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxQkEpIHx8XG5cdCAgICAgICgweDMxQzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxRTMpIHx8XG5cdCAgICAgICgweDMxRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyMUUpIHx8XG5cdCAgICAgICgweDMyMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyNDcpIHx8XG5cdCAgICAgICgweDMyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyRkUpIHx8XG5cdCAgICAgICgweDMzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDREQkYpIHx8XG5cdCAgICAgICgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0OEMpIHx8XG5cdCAgICAgICgweEE0OTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdCAgICAgICgweEE5NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE5N0MpIHx8XG5cdCAgICAgICgweEFDMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QTMpIHx8XG5cdCAgICAgICgweEQ3QjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QzYpIHx8XG5cdCAgICAgICgweEQ3Q0IgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3RkIpIHx8XG5cdCAgICAgICgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdCAgICAgICgweEZFMTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFMTkpIHx8XG5cdCAgICAgICgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNTIpIHx8XG5cdCAgICAgICgweEZFNTQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNjYpIHx8XG5cdCAgICAgICgweEZFNjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdCAgICAgICgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0ICAgICAgKDB4MUYyMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjAyKSB8fFxuXHQgICAgICAoMHgxRjIxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYyM0EpIHx8XG5cdCAgICAgICgweDFGMjQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI0OCkgfHxcblx0ICAgICAgKDB4MUYyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjUxKSB8fFxuXHQgICAgICAoMHgyMDAwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MkY3M0YpIHx8XG5cdCAgICAgICgweDJCNzQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyRkZGRCkgfHxcblx0ICAgICAgKDB4MzAwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDNGRkZEKSkge1xuXHQgICAgcmV0dXJuICdXJztcblx0ICB9XG5cdCAgaWYgKCgweDAwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwN0UpIHx8XG5cdCAgICAgICgweDAwQTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTMpIHx8XG5cdCAgICAgICgweDAwQTUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTYpIHx8XG5cdCAgICAgICgweDAwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEFGID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjdFNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjdFRCkgfHxcblx0ICAgICAgKDB4Mjk4NSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4Mjk4NikpIHtcblx0ICAgIHJldHVybiAnTmEnO1xuXHQgIH1cblx0ICBpZiAoKDB4MDBBMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwQTQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEE3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEE4KSB8fFxuXHQgICAgICAoMHgwMEFBID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBBRCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBBRSkgfHxcblx0ICAgICAgKDB4MDBCMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCNCkgfHxcblx0ICAgICAgKDB4MDBCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCQSkgfHxcblx0ICAgICAgKDB4MDBCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCRikgfHxcblx0ICAgICAgKDB4MDBDNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEQ3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEQ4KSB8fFxuXHQgICAgICAoMHgwMERFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEUxKSB8fFxuXHQgICAgICAoMHgwMEU2ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFQSkgfHxcblx0ICAgICAgKDB4MDBFQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFRCkgfHxcblx0ICAgICAgKDB4MDBGMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRjIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRjMpIHx8XG5cdCAgICAgICgweDAwRjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRkEpIHx8XG5cdCAgICAgICgweDAwRkMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEZFID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEwMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDExQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMjYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxMjcpIHx8XG5cdCAgICAgICgweDAxMkIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTMxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTMzKSB8fFxuXHQgICAgICAoMHgwMTM4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEzRiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDE0MikgfHxcblx0ICAgICAgKDB4MDE0NCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxNDggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxNEIpIHx8XG5cdCAgICAgICgweDAxNEQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTUyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTUzKSB8fFxuXHQgICAgICAoMHgwMTY2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTY3KSB8fFxuXHQgICAgICAoMHgwMTZCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFDRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFENCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQ4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFEQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxREMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMjUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDI2MSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyQzQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkM3ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJDOSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDJDQikgfHxcblx0ICAgICAgKDB4MDJDRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMkRCKSB8fFxuXHQgICAgICAoMHgwMkREID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJERiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzNkYpIHx8XG5cdCAgICAgICgweDAzOTEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTEpIHx8XG5cdCAgICAgICgweDAzQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTkpIHx8XG5cdCAgICAgICgweDAzQjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzEpIHx8XG5cdCAgICAgICgweDAzQzMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzkpIHx8XG5cdCAgICAgICgweDA0MDEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwNDEwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwNDRGKSB8fFxuXHQgICAgICAoMHgwNDUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAxMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwMTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTYpIHx8XG5cdCAgICAgICgweDIwMTggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTkpIHx8XG5cdCAgICAgICgweDIwMUMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMUQpIHx8XG5cdCAgICAgICgweDIwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjIpIHx8XG5cdCAgICAgICgweDIwMjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjcpIHx8XG5cdCAgICAgICgweDIwMzAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMDMzKSB8fFxuXHQgICAgICAoMHgyMDM1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAzQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwM0UgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDc0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjA3RiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwODEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwODQpIHx8XG5cdCAgICAgICgweDIwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTAzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjEwNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMDkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjExNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxMjIpIHx8XG5cdCAgICAgICgweDIxMjYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTJCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjE1MyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1NCkgfHxcblx0ICAgICAgKDB4MjE1QiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1RSkgfHxcblx0ICAgICAgKDB4MjE2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE2QikgfHxcblx0ICAgICAgKDB4MjE3MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE3OSkgfHxcblx0ICAgICAgKDB4MjE4OSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxOTkpIHx8XG5cdCAgICAgICgweDIxQjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxQjkpIHx8XG5cdCAgICAgICgweDIxRDIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMUQ0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjFFNyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjAyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjAzKSB8fFxuXHQgICAgICAoMHgyMjA3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjA4KSB8fFxuXHQgICAgICAoMHgyMjBCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIwRiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjE1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIxQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMUQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMjApIHx8XG5cdCAgICAgICgweDIyMjMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjI1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIyNyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjIyQykgfHxcblx0ICAgICAgKDB4MjIyRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMzQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMzcpIHx8XG5cdCAgICAgICgweDIyM0MgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyM0QpIHx8XG5cdCAgICAgICgweDIyNDggPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjRDID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjI1MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyNjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjEpIHx8XG5cdCAgICAgICgweDIyNjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjcpIHx8XG5cdCAgICAgICgweDIyNkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkIpIHx8XG5cdCAgICAgICgweDIyNkUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkYpIHx8XG5cdCAgICAgICgweDIyODIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODMpIHx8XG5cdCAgICAgICgweDIyODYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODcpIHx8XG5cdCAgICAgICgweDIyOTUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjk5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjJBNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyQkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMzEyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjQ2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjRFOSkgfHxcblx0ICAgICAgKDB4MjRFQiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU0QikgfHxcblx0ICAgICAgKDB4MjU1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU3MykgfHxcblx0ICAgICAgKDB4MjU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU4RikgfHxcblx0ICAgICAgKDB4MjU5MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU5NSkgfHxcblx0ICAgICAgKDB4MjVBMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBMSkgfHxcblx0ICAgICAgKDB4MjVBMyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBOSkgfHxcblx0ICAgICAgKDB4MjVCMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCMykgfHxcblx0ICAgICAgKDB4MjVCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCNykgfHxcblx0ICAgICAgKDB4MjVCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCRCkgfHxcblx0ICAgICAgKDB4MjVDMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDMSkgfHxcblx0ICAgICAgKDB4MjVDNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDOCkgfHxcblx0ICAgICAgKDB4MjVDQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI1Q0UgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RDEpIHx8XG5cdCAgICAgICgweDI1RTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RTUpIHx8XG5cdCAgICAgICgweDI1RUYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjA1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjA2KSB8fFxuXHQgICAgICAoMHgyNjA5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjYwRSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYwRikgfHxcblx0ICAgICAgKDB4MjYxNCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYxNSkgfHxcblx0ICAgICAgKDB4MjYxQyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2MUUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjQwID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjY0MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjEpIHx8XG5cdCAgICAgICgweDI2NjMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjUpIHx8XG5cdCAgICAgICgweDI2NjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkEpIHx8XG5cdCAgICAgICgweDI2NkMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkQpIHx8XG5cdCAgICAgICgweDI2NkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjlFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjlGKSB8fFxuXHQgICAgICAoMHgyNkJFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkJGKSB8fFxuXHQgICAgICAoMHgyNkM0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkNEKSB8fFxuXHQgICAgICAoMHgyNkNGIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkUxKSB8fFxuXHQgICAgICAoMHgyNkUzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjZFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjZGRikgfHxcblx0ICAgICAgKDB4MjczRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI3NTcgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNzc2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNzdGKSB8fFxuXHQgICAgICAoMHgyQjU1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyQjU5KSB8fFxuXHQgICAgICAoMHgzMjQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzMjRGKSB8fFxuXHQgICAgICAoMHhFMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGOEZGKSB8fFxuXHQgICAgICAoMHhGRTAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRTBGKSB8fFxuXHQgICAgICAoMHhGRkZEID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MUYxMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTBBKSB8fFxuXHQgICAgICAoMHgxRjExMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYxMkQpIHx8XG5cdCAgICAgICgweDFGMTMwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjE2OSkgfHxcblx0ICAgICAgKDB4MUYxNzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTlBKSB8fFxuXHQgICAgICAoMHhFMDEwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RTAxRUYpIHx8XG5cdCAgICAgICgweEYwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkZGRCkgfHxcblx0ICAgICAgKDB4MTAwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxMEZGRkQpKSB7XG5cdCAgICByZXR1cm4gJ0EnO1xuXHQgIH1cblxuXHQgIHJldHVybiAnTic7XG5cdH07XG5cblx0ZWF3LmNoYXJhY3Rlckxlbmd0aCA9IGZ1bmN0aW9uKGNoYXJhY3Rlcikge1xuXHQgIHZhciBjb2RlID0gdGhpcy5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHQgIGlmIChjb2RlID09ICdGJyB8fCBjb2RlID09ICdXJyB8fCBjb2RlID09ICdBJykge1xuXHQgICAgcmV0dXJuIDI7XG5cdCAgfSBlbHNlIHtcblx0ICAgIHJldHVybiAxO1xuXHQgIH1cblx0fTtcblxuXHQvLyBTcGxpdCBhIHN0cmluZyBjb25zaWRlcmluZyBzdXJyb2dhdGUtcGFpcnMuXG5cdGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXkoc3RyaW5nKSB7XG5cdCAgcmV0dXJuIHN0cmluZy5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZykgfHwgW107XG5cdH1cblxuXHRlYXcubGVuZ3RoID0gZnVuY3Rpb24oc3RyaW5nKSB7XG5cdCAgdmFyIGNoYXJhY3RlcnMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyk7XG5cdCAgdmFyIGxlbiA9IDA7XG5cdCAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XG5cdCAgICBsZW4gPSBsZW4gKyB0aGlzLmNoYXJhY3Rlckxlbmd0aChjaGFyYWN0ZXJzW2ldKTtcblx0ICB9XG5cdCAgcmV0dXJuIGxlbjtcblx0fTtcblxuXHRlYXcuc2xpY2UgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kKSB7XG5cdCAgdGV4dExlbiA9IGVhdy5sZW5ndGgodGV4dCk7XG5cdCAgc3RhcnQgPSBzdGFydCA/IHN0YXJ0IDogMDtcblx0ICBlbmQgPSBlbmQgPyBlbmQgOiAxO1xuXHQgIGlmIChzdGFydCA8IDApIHtcblx0ICAgICAgc3RhcnQgPSB0ZXh0TGVuICsgc3RhcnQ7XG5cdCAgfVxuXHQgIGlmIChlbmQgPCAwKSB7XG5cdCAgICAgIGVuZCA9IHRleHRMZW4gKyBlbmQ7XG5cdCAgfVxuXHQgIHZhciByZXN1bHQgPSAnJztcblx0ICB2YXIgZWF3TGVuID0gMDtcblx0ICB2YXIgY2hhcnMgPSBzdHJpbmdUb0FycmF5KHRleHQpO1xuXHQgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHtcblx0ICAgIHZhciBjaGFyID0gY2hhcnNbaV07XG5cdCAgICB2YXIgY2hhckxlbiA9IGVhdy5sZW5ndGgoY2hhcik7XG5cdCAgICBpZiAoZWF3TGVuID49IHN0YXJ0IC0gKGNoYXJMZW4gPT0gMiA/IDEgOiAwKSkge1xuXHQgICAgICAgIGlmIChlYXdMZW4gKyBjaGFyTGVuIDw9IGVuZCkge1xuXHQgICAgICAgICAgICByZXN1bHQgKz0gY2hhcjtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBicmVhaztcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdCAgICBlYXdMZW4gKz0gY2hhckxlbjtcblx0ICB9XG5cdCAgcmV0dXJuIHJlc3VsdDtcblx0fTsgXG59IChlYXN0YXNpYW53aWR0aCkpO1xuXG52YXIgZWFzdGFzaWFud2lkdGhFeHBvcnRzID0gZWFzdGFzaWFud2lkdGguZXhwb3J0cztcbmNvbnN0IGVhc3RBc2lhbldpZHRoID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKGVhc3Rhc2lhbndpZHRoRXhwb3J0cyk7XG5cbmNvbnN0IGVtb2ppUmVnZXggPSAoKSA9PiB7XG5cdC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuXHRyZXR1cm4gL1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZGOSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzNcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzA4XFx1REMyNl0oPzpcXHUyMDBEXFx1MkIxQik/fFtcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg4XFx1REU5MC1cXHVERUJEXFx1REVCRi1cXHVERUMyXFx1REVDRS1cXHVERURCXFx1REVFMC1cXHVERUU4XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmZ1bmN0aW9uIHN0cmluZ1dpZHRoJDEoc3RyaW5nLCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJyB8fCBzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRvcHRpb25zID0ge1xuXHRcdGFtYmlndW91c0lzTmFycm93OiB0cnVlLFxuXHRcdGNvdW50QW5zaUVzY2FwZUNvZGVzOiBmYWxzZSxcblx0XHQuLi5vcHRpb25zLFxuXHR9O1xuXG5cdGlmICghb3B0aW9ucy5jb3VudEFuc2lFc2NhcGVDb2Rlcykge1xuXHRcdHN0cmluZyA9IHN0cmlwQW5zaShzdHJpbmcpO1xuXHR9XG5cblx0aWYgKHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGNvbnN0IGFtYmlndW91c0NoYXJhY3RlcldpZHRoID0gb3B0aW9ucy5hbWJpZ3VvdXNJc05hcnJvdyA/IDEgOiAyO1xuXHRsZXQgd2lkdGggPSAwO1xuXG5cdGZvciAoY29uc3Qge3NlZ21lbnQ6IGNoYXJhY3Rlcn0gb2YgbmV3IEludGwuU2VnbWVudGVyKCkuc2VnbWVudChzdHJpbmcpKSB7XG5cdFx0Y29uc3QgY29kZVBvaW50ID0gY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApO1xuXG5cdFx0Ly8gSWdub3JlIGNvbnRyb2wgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlUG9pbnQgPD0gMHgxRiB8fCAoY29kZVBvaW50ID49IDB4N0YgJiYgY29kZVBvaW50IDw9IDB4OUYpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoZW1vamlSZWdleCgpLnRlc3QoY2hhcmFjdGVyKSkge1xuXHRcdFx0d2lkdGggKz0gMjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvZGUgPSBlYXN0QXNpYW5XaWR0aC5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHRcdHN3aXRjaCAoY29kZSkge1xuXHRcdFx0Y2FzZSAnRic6XG5cdFx0XHRjYXNlICdXJzoge1xuXHRcdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSAnQSc6IHtcblx0XHRcdFx0d2lkdGggKz0gYW1iaWd1b3VzQ2hhcmFjdGVyV2lkdGg7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHdpZHRoICs9IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGlmIChwcm9jZXNzJDEucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcblx0XHRyZXR1cm4gcHJvY2VzcyQxLmVudi5URVJNICE9PSAnbGludXgnOyAvLyBMaW51eCBjb25zb2xlIChrZXJuZWwpXG5cdH1cblxuXHRyZXR1cm4gQm9vbGVhbihwcm9jZXNzJDEuZW52LkNJKVxuXHRcdHx8IEJvb2xlYW4ocHJvY2VzcyQxLmVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihwcm9jZXNzJDEuZW52LlRFUk1JTlVTX1NVQkxJTUUpIC8vIFRlcm1pbnVzICg8MC4yLjI3KVxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuQ29uRW11VGFzayA9PT0gJ3tjbWQ6OkNtZGVyfScgLy8gQ29uRW11IGFuZCBjbWRlclxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuVEVSTV9QUk9HUkFNID09PSAnVGVybWludXMtU3VibGltZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICd4dGVybS0yNTZjb2xvcidcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICdhbGFjcml0dHknXG5cdFx0fHwgcHJvY2VzcyQxLmVudi5URVJNSU5BTF9FTVVMQVRPUiA9PT0gJ0pldEJyYWlucy1KZWRpVGVybSc7XG59XG5cbmNvbnN0IFRZUEVfQ09MT1JfTUFQID0ge1xuICBpbmZvOiBcImN5YW5cIixcbiAgZmFpbDogXCJyZWRcIixcbiAgc3VjY2VzczogXCJncmVlblwiLFxuICByZWFkeTogXCJncmVlblwiLFxuICBzdGFydDogXCJtYWdlbnRhXCJcbn07XG5jb25zdCBMRVZFTF9DT0xPUl9NQVAgPSB7XG4gIDA6IFwicmVkXCIsXG4gIDE6IFwieWVsbG93XCJcbn07XG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgVFlQRV9JQ09OUyA9IHtcbiAgZXJyb3I6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIGZhdGFsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICByZWFkeTogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICB3YXJuOiBzKFwiXFx1MjZBMFwiLCBcIlxcdTIwM0NcIiksXG4gIGluZm86IHMoXCJcXHUyMTM5XCIsIFwiaVwiKSxcbiAgc3VjY2VzczogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICBkZWJ1ZzogcyhcIlxcdTI2OTlcIiwgXCJEXCIpLFxuICB0cmFjZTogcyhcIlxcdTIxOTJcIiwgXCJcXHUyMTkyXCIpLFxuICBmYWlsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICBzdGFydDogcyhcIlxcdTI1RDBcIiwgXCJvXCIpLFxuICBsb2c6IFwiXCJcbn07XG5mdW5jdGlvbiBzdHJpbmdXaWR0aChzdHIpIHtcbiAgaWYgKCFJbnRsLlNlZ21lbnRlcikge1xuICAgIHJldHVybiBzdHJpcEFuc2kkMShzdHIpLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gc3RyaW5nV2lkdGgkMShzdHIpO1xufVxuY2xhc3MgRmFuY3lSZXBvcnRlciBleHRlbmRzIEJhc2ljUmVwb3J0ZXIge1xuICBmb3JtYXRTdGFjayhzdGFjaykge1xuICAgIHJldHVybiBcIlxcblwiICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihcIlxcblwiKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShpc0NJIHx8IGlzVGVzdCkgPyBuZXcgRmFuY3lSZXBvcnRlcigpIDogbmV3IEJhc2ljUmVwb3J0ZXIoKVxuICAgIF0sXG4gICAgLi4ub3B0aW9uc1xuICB9KTtcbiAgcmV0dXJuIGNvbnNvbGEyO1xufVxuZnVuY3Rpb24gX2dldERlZmF1bHRMb2dMZXZlbCgpIHtcbiAgaWYgKGlzRGVidWcpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLmRlYnVnO1xuICB9XG4gIGlmIChpc1Rlc3QpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLndhcm47XG4gIH1cbiAgcmV0dXJuIExvZ0xldmVscy5pbmZvO1xufVxuY29uc3QgY29uc29sYSA9IGNyZWF0ZUNvbnNvbGEoKTtcblxuZXhwb3J0IHsgY29uc29sYSBhcyBhLCBjcmVhdGVDb25zb2xhIGFzIGMsIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzIGFzIGcsIGlzVW5pY29kZVN1cHBvcnRlZCBhcyBpIH07XG4iLCAiZXhwb3J0IHsgYSBhcyBjb25zb2xhLCBjIGFzIGNyZWF0ZUNvbnNvbGEsIGEgYXMgZGVmYXVsdCB9IGZyb20gJy4vc2hhcmVkL2NvbnNvbGEuMzZjMDAzNGYubWpzJztcbmV4cG9ydCB7IENvbnNvbGEsIExvZ0xldmVscywgTG9nVHlwZXMgfSBmcm9tICcuL2NvcmUubWpzJztcbmltcG9ydCAnLi9zaGFyZWQvY29uc29sYS4wNmFkOGE2NC5tanMnO1xuaW1wb3J0ICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0ICcuL3V0aWxzLm1qcyc7XG5pbXBvcnQgJ25vZGU6dHR5JztcbmltcG9ydCAnbm9kZTp1dGlsJztcbmltcG9ydCAnbm9kZTpwYXRoJztcbiIsICJpbXBvcnQgY29uc29sYSBmcm9tICdjb25zb2xhJztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ2NvbnNvbGEvdXRpbHMnO1xuXG5mdW5jdGlvbiB0b0FycmF5KHZhbCkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICByZXR1cm4gdmFsID09PSB2b2lkIDAgPyBbXSA6IFt2YWxdO1xufVxuZnVuY3Rpb24gZm9ybWF0TGluZUNvbHVtbnMobGluZXMsIGxpbmVQcmVmaXggPSBcIlwiKSB7XG4gIGNvbnN0IG1heExlbmdoID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGZvciAoY29uc3QgW2ksIGVsZW1lbnRdIG9mIGxpbmUuZW50cmllcygpKSB7XG4gICAgICBtYXhMZW5naFtpXSA9IE1hdGgubWF4KG1heExlbmdoW2ldIHx8IDAsIGVsZW1lbnQubGVuZ3RoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGxpbmVzLm1hcChcbiAgICAobCkgPT4gbC5tYXAoXG4gICAgICAoYywgaSkgPT4gbGluZVByZWZpeCArIGNbaSA9PT0gMCA/IFwicGFkU3RhcnRcIiA6IFwicGFkRW5kXCJdKG1heExlbmdoW2ldKVxuICAgICkuam9pbihcIiAgXCIpXG4gICkuam9pbihcIlxcblwiKTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVWYWx1ZShpbnB1dCkge1xuICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSBcImZ1bmN0aW9uXCIgPyBpbnB1dCgpIDogaW5wdXQ7XG59XG5jbGFzcyBDTElFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSwgY29kZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgdGhpcy5uYW1lID0gXCJDTElFcnJvclwiO1xuICB9XG59XG5cbmNvbnN0IE5VTUJFUl9DSEFSX1JFID0gL1xcZC87XG5jb25zdCBTVFJfU1BMSVRURVJTID0gW1wiLVwiLCBcIl9cIiwgXCIvXCIsIFwiLlwiXTtcbmZ1bmN0aW9uIGlzVXBwZXJjYXNlKGNoYXIgPSBcIlwiKSB7XG4gIGlmIChOVU1CRVJfQ0hBUl9SRS50ZXN0KGNoYXIpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICByZXR1cm4gY2hhciAhPT0gY2hhci50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gc3BsaXRCeUNhc2Uoc3RyLCBzZXBhcmF0b3JzKSB7XG4gIGNvbnN0IHNwbGl0dGVycyA9IHNlcGFyYXRvcnMgPz8gU1RSX1NQTElUVEVSUztcbiAgY29uc3QgcGFydHMgPSBbXTtcbiAgaWYgKCFzdHIgfHwgdHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBwYXJ0cztcbiAgfVxuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBwcmV2aW91c1VwcGVyO1xuICBsZXQgcHJldmlvdXNTcGxpdHRlcjtcbiAgZm9yIChjb25zdCBjaGFyIG9mIHN0cikge1xuICAgIGNvbnN0IGlzU3BsaXR0ZXIgPSBzcGxpdHRlcnMuaW5jbHVkZXMoY2hhcik7XG4gICAgaWYgKGlzU3BsaXR0ZXIgPT09IHRydWUpIHtcbiAgICAgIHBhcnRzLnB1c2goYnVmZik7XG4gICAgICBidWZmID0gXCJcIjtcbiAgICAgIHByZXZpb3VzVXBwZXIgPSB2b2lkIDA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNVcHBlciA9IGlzVXBwZXJjYXNlKGNoYXIpO1xuICAgIGlmIChwcmV2aW91c1NwbGl0dGVyID09PSBmYWxzZSkge1xuICAgICAgaWYgKHByZXZpb3VzVXBwZXIgPT09IGZhbHNlICYmIGlzVXBwZXIgPT09IHRydWUpIHtcbiAgICAgICAgcGFydHMucHVzaChidWZmKTtcbiAgICAgICAgYnVmZiA9IGNoYXI7XG4gICAgICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcmV2aW91c1VwcGVyID09PSB0cnVlICYmIGlzVXBwZXIgPT09IGZhbHNlICYmIGJ1ZmYubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBsYXN0Q2hhciA9IGJ1ZmYuYXQoLTEpO1xuICAgICAgICBwYXJ0cy5wdXNoKGJ1ZmYuc2xpY2UoMCwgTWF0aC5tYXgoMCwgYnVmZi5sZW5ndGggLSAxKSkpO1xuICAgICAgICBidWZmID0gbGFzdENoYXIgKyBjaGFyO1xuICAgICAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGJ1ZmYgKz0gY2hhcjtcbiAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICBwcmV2aW91c1NwbGl0dGVyID0gaXNTcGxpdHRlcjtcbiAgfVxuICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICByZXR1cm4gcGFydHM7XG59XG5mdW5jdGlvbiB1cHBlckZpcnN0KHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBcIlwiO1xufVxuZnVuY3Rpb24gbG93ZXJGaXJzdChzdHIpIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b0xvd2VyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2Uoc3RyLCBvcHRzKSB7XG4gIHJldHVybiBzdHIgPyAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyIDogc3BsaXRCeUNhc2Uoc3RyKSkubWFwKChwKSA9PiB1cHBlckZpcnN0KG9wdHM/Lm5vcm1hbGl6ZSA/IHAudG9Mb3dlckNhc2UoKSA6IHApKS5qb2luKFwiXCIpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGNhbWVsQ2FzZShzdHIsIG9wdHMpIHtcbiAgcmV0dXJuIGxvd2VyRmlyc3QocGFzY2FsQ2FzZShzdHIgfHwgXCJcIiwgb3B0cykpO1xufVxuZnVuY3Rpb24ga2ViYWJDYXNlKHN0ciwgam9pbmVyKSB7XG4gIHJldHVybiBzdHIgPyAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyIDogc3BsaXRCeUNhc2Uoc3RyKSkubWFwKChwKSA9PiBwLnRvTG93ZXJDYXNlKCkpLmpvaW4oam9pbmVyID8/IFwiLVwiKSA6IFwiXCI7XG59XG5cbmZ1bmN0aW9uIHRvQXJyKGFueSkge1xuICByZXR1cm4gYW55ID09IHZvaWQgMCA/IFtdIDogQXJyYXkuaXNBcnJheShhbnkpID8gYW55IDogW2FueV07XG59XG5mdW5jdGlvbiB0b1ZhbChvdXQsIGtleSwgdmFsLCBvcHRzKSB7XG4gIGxldCB4O1xuICBjb25zdCBvbGQgPSBvdXRba2V5XTtcbiAgY29uc3Qgbnh0ID0gfm9wdHMuc3RyaW5nLmluZGV4T2Yoa2V5KSA/IHZhbCA9PSB2b2lkIDAgfHwgdmFsID09PSB0cnVlID8gXCJcIiA6IFN0cmluZyh2YWwpIDogdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIgPyB2YWwgOiB+b3B0cy5ib29sZWFuLmluZGV4T2Yoa2V5KSA/IHZhbCA9PT0gXCJmYWxzZVwiID8gZmFsc2UgOiB2YWwgPT09IFwidHJ1ZVwiIHx8IChvdXQuXy5wdXNoKCh4ID0gK3ZhbCwgeCAqIDAgPT09IDApID8geCA6IHZhbCksICEhdmFsKSA6ICh4ID0gK3ZhbCwgeCAqIDAgPT09IDApID8geCA6IHZhbDtcbiAgb3V0W2tleV0gPSBvbGQgPT0gdm9pZCAwID8gbnh0IDogQXJyYXkuaXNBcnJheShvbGQpID8gb2xkLmNvbmNhdChueHQpIDogW29sZCwgbnh0XTtcbn1cbmZ1bmN0aW9uIHBhcnNlUmF3QXJncyhhcmdzID0gW10sIG9wdHMgPSB7fSkge1xuICBsZXQgaztcbiAgbGV0IGFycjtcbiAgbGV0IGFyZztcbiAgbGV0IG5hbWU7XG4gIGxldCB2YWw7XG4gIGNvbnN0IG91dCA9IHsgXzogW10gfTtcbiAgbGV0IGkgPSAwO1xuICBsZXQgaiA9IDA7XG4gIGxldCBpZHggPSAwO1xuICBjb25zdCBsZW4gPSBhcmdzLmxlbmd0aDtcbiAgY29uc3QgYWxpYmkgPSBvcHRzLmFsaWFzICE9PSB2b2lkIDA7XG4gIGNvbnN0IHN0cmljdCA9IG9wdHMudW5rbm93biAhPT0gdm9pZCAwO1xuICBjb25zdCBkZWZhdWx0cyA9IG9wdHMuZGVmYXVsdCAhPT0gdm9pZCAwO1xuICBvcHRzLmFsaWFzID0gb3B0cy5hbGlhcyB8fCB7fTtcbiAgb3B0cy5zdHJpbmcgPSB0b0FycihvcHRzLnN0cmluZyk7XG4gIG9wdHMuYm9vbGVhbiA9IHRvQXJyKG9wdHMuYm9vbGVhbik7XG4gIGlmIChhbGliaSkge1xuICAgIGZvciAoayBpbiBvcHRzLmFsaWFzKSB7XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdID0gdG9BcnIob3B0cy5hbGlhc1trXSk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIChvcHRzLmFsaWFzW2FycltpXV0gPSBhcnIuY29uY2F0KGspKS5zcGxpY2UoaSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZvciAoaSA9IG9wdHMuYm9vbGVhbi5sZW5ndGg7IGktLSA+IDA7ICkge1xuICAgIGFyciA9IG9wdHMuYWxpYXNbb3B0cy5ib29sZWFuW2ldXSB8fCBbXTtcbiAgICBmb3IgKGogPSBhcnIubGVuZ3RoOyBqLS0gPiAwOyApIHtcbiAgICAgIG9wdHMuYm9vbGVhbi5wdXNoKGFycltqXSk7XG4gICAgfVxuICB9XG4gIGZvciAoaSA9IG9wdHMuc3RyaW5nLmxlbmd0aDsgaS0tID4gMDsgKSB7XG4gICAgYXJyID0gb3B0cy5hbGlhc1tvcHRzLnN0cmluZ1tpXV0gfHwgW107XG4gICAgZm9yIChqID0gYXJyLmxlbmd0aDsgai0tID4gMDsgKSB7XG4gICAgICBvcHRzLnN0cmluZy5wdXNoKGFycltqXSk7XG4gICAgfVxuICB9XG4gIGlmIChkZWZhdWx0cykge1xuICAgIGZvciAoayBpbiBvcHRzLmRlZmF1bHQpIHtcbiAgICAgIG5hbWUgPSB0eXBlb2Ygb3B0cy5kZWZhdWx0W2tdO1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSA9IG9wdHMuYWxpYXNba10gfHwgW107XG4gICAgICBpZiAob3B0c1tuYW1lXSAhPT0gdm9pZCAwKSB7XG4gICAgICAgIG9wdHNbbmFtZV0ucHVzaChrKTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIG9wdHNbbmFtZV0ucHVzaChhcnJbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IGtleXMgPSBzdHJpY3QgPyBPYmplY3Qua2V5cyhvcHRzLmFsaWFzKSA6IFtdO1xuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcmcgPSBhcmdzW2ldO1xuICAgIGlmIChhcmcgPT09IFwiLS1cIikge1xuICAgICAgb3V0Ll8gPSBvdXQuXy5jb25jYXQoYXJncy5zbGljZSgrK2kpKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBmb3IgKGogPSAwOyBqIDwgYXJnLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAoYXJnLmNoYXJDb2RlQXQoaikgIT09IDQ1KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaiA9PT0gMCkge1xuICAgICAgb3V0Ll8ucHVzaChhcmcpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnN1YnN0cmluZyhqLCBqICsgMykgPT09IFwibm8tXCIpIHtcbiAgICAgIG5hbWUgPSBhcmcuc2xpY2UoTWF0aC5tYXgoMCwgaiArIDMpKTtcbiAgICAgIGlmIChzdHJpY3QgJiYgIX5rZXlzLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIG9wdHMudW5rbm93bihhcmcpO1xuICAgICAgfVxuICAgICAgb3V0W25hbWVdID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoaWR4ID0gaiArIDE7IGlkeCA8IGFyZy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIGlmIChhcmcuY2hhckNvZGVBdChpZHgpID09PSA2MSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBuYW1lID0gYXJnLnN1YnN0cmluZyhqLCBpZHgpO1xuICAgICAgdmFsID0gYXJnLnNsaWNlKE1hdGgubWF4KDAsICsraWR4KSkgfHwgaSArIDEgPT09IGxlbiB8fCAoXCJcIiArIGFyZ3NbaSArIDFdKS5jaGFyQ29kZUF0KDApID09PSA0NSB8fCBhcmdzWysraV07XG4gICAgICBhcnIgPSBqID09PSAyID8gW25hbWVdIDogbmFtZTtcbiAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgYXJyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgbmFtZSA9IGFycltpZHhdO1xuICAgICAgICBpZiAoc3RyaWN0ICYmICF+a2V5cy5pbmRleE9mKG5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIG9wdHMudW5rbm93bihcIi1cIi5yZXBlYXQoaikgKyBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICB0b1ZhbChvdXQsIG5hbWUsIGlkeCArIDEgPCBhcnIubGVuZ3RoIHx8IHZhbCwgb3B0cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChkZWZhdWx0cykge1xuICAgIGZvciAoayBpbiBvcHRzLmRlZmF1bHQpIHtcbiAgICAgIGlmIChvdXRba10gPT09IHZvaWQgMCkge1xuICAgICAgICBvdXRba10gPSBvcHRzLmRlZmF1bHRba107XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChhbGliaSkge1xuICAgIGZvciAoayBpbiBvdXQpIHtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gfHwgW107XG4gICAgICB3aGlsZSAoYXJyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3V0W2Fyci5zaGlmdCgpXSA9IG91dFtrXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gcGFyc2VBcmdzKHJhd0FyZ3MsIGFyZ3NEZWYpIHtcbiAgY29uc3QgcGFyc2VPcHRpb25zID0ge1xuICAgIGJvb2xlYW46IFtdLFxuICAgIHN0cmluZzogW10sXG4gICAgbWl4ZWQ6IFtdLFxuICAgIGFsaWFzOiB7fSxcbiAgICBkZWZhdWx0OiB7fVxuICB9O1xuICBjb25zdCBhcmdzID0gcmVzb2x2ZUFyZ3MoYXJnc0RlZik7XG4gIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGFyZy50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuc3RyaW5nLnB1c2goYXJnLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnR5cGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuYm9vbGVhbi5wdXNoKGFyZy5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGFyZy5kZWZhdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5kZWZhdWx0W2FyZy5uYW1lXSA9IGFyZy5kZWZhdWx0O1xuICAgIH1cbiAgICBpZiAoYXJnLmFsaWFzKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuYWxpYXNbYXJnLm5hbWVdID0gYXJnLmFsaWFzO1xuICAgIH1cbiAgfVxuICBjb25zdCBwYXJzZWQgPSBwYXJzZVJhd0FyZ3MocmF3QXJncywgcGFyc2VPcHRpb25zKTtcbiAgY29uc3QgWy4uLnBvc2l0aW9uYWxBcmd1bWVudHNdID0gcGFyc2VkLl87XG4gIGNvbnN0IHBhcnNlZEFyZ3NQcm94eSA9IG5ldyBQcm94eShwYXJzZWQsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0W3Byb3BdID8/IHRhcmdldFtjYW1lbENhc2UocHJvcCldID8/IHRhcmdldFtrZWJhYkNhc2UocHJvcCldO1xuICAgIH1cbiAgfSk7XG4gIGZvciAoY29uc3QgWywgYXJnXSBvZiBhcmdzLmVudHJpZXMoKSkge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnN0IG5leHRQb3NpdGlvbmFsQXJndW1lbnQgPSBwb3NpdGlvbmFsQXJndW1lbnRzLnNoaWZ0KCk7XG4gICAgICBpZiAobmV4dFBvc2l0aW9uYWxBcmd1bWVudCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPSBuZXh0UG9zaXRpb25hbEFyZ3VtZW50O1xuICAgICAgfSBlbHNlIGlmIChhcmcuZGVmYXVsdCA9PT0gdm9pZCAwICYmIGFyZy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFxuICAgICAgICAgIGBNaXNzaW5nIHJlcXVpcmVkIHBvc2l0aW9uYWwgYXJndW1lbnQ6ICR7YXJnLm5hbWUudG9VcHBlckNhc2UoKX1gLFxuICAgICAgICAgIFwiRUFSR1wiXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID0gYXJnLmRlZmF1bHQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhcmcucmVxdWlyZWQgJiYgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQ6IC0tJHthcmcubmFtZX1gLCBcIkVBUkdcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJzZWRBcmdzUHJveHk7XG59XG5mdW5jdGlvbiByZXNvbHZlQXJncyhhcmdzRGVmKSB7XG4gIGNvbnN0IGFyZ3MgPSBbXTtcbiAgZm9yIChjb25zdCBbbmFtZSwgYXJnRGVmXSBvZiBPYmplY3QuZW50cmllcyhhcmdzRGVmIHx8IHt9KSkge1xuICAgIGFyZ3MucHVzaCh7XG4gICAgICAuLi5hcmdEZWYsXG4gICAgICBuYW1lLFxuICAgICAgYWxpYXM6IHRvQXJyYXkoYXJnRGVmLmFsaWFzKVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhcmdzO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVDb21tYW5kKGRlZikge1xuICByZXR1cm4gZGVmO1xufVxuYXN5bmMgZnVuY3Rpb24gcnVuQ29tbWFuZChjbWQsIG9wdHMpIHtcbiAgY29uc3QgY21kQXJncyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuYXJncyB8fCB7fSk7XG4gIGNvbnN0IHBhcnNlZEFyZ3MgPSBwYXJzZUFyZ3Mob3B0cy5yYXdBcmdzLCBjbWRBcmdzKTtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICByYXdBcmdzOiBvcHRzLnJhd0FyZ3MsXG4gICAgYXJnczogcGFyc2VkQXJncyxcbiAgICBkYXRhOiBvcHRzLmRhdGEsXG4gICAgY21kXG4gIH07XG4gIGlmICh0eXBlb2YgY21kLnNldHVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhd2FpdCBjbWQuc2V0dXAoY29udGV4dCk7XG4gIH1cbiAgbGV0IHJlc3VsdDtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICAgIGlmIChzdWJDb21tYW5kcyAmJiBPYmplY3Qua2V5cyhzdWJDb21tYW5kcykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3ViQ29tbWFuZEFyZ0luZGV4ID0gb3B0cy5yYXdBcmdzLmZpbmRJbmRleChcbiAgICAgICAgKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLVwiKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHN1YkNvbW1hbmROYW1lID0gb3B0cy5yYXdBcmdzW3N1YkNvbW1hbmRBcmdJbmRleF07XG4gICAgICBpZiAoc3ViQ29tbWFuZE5hbWUpIHtcbiAgICAgICAgaWYgKCFzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXG4gICAgICAgICAgICBgVW5rbm93biBjb21tYW5kIFxcYCR7c3ViQ29tbWFuZE5hbWV9XFxgYCxcbiAgICAgICAgICAgIFwiRV9VTktOT1dOX0NPTU1BTkRcIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3ViQ29tbWFuZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pO1xuICAgICAgICBpZiAoc3ViQ29tbWFuZCkge1xuICAgICAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoc3ViQ29tbWFuZCwge1xuICAgICAgICAgICAgcmF3QXJnczogb3B0cy5yYXdBcmdzLnNsaWNlKHN1YkNvbW1hbmRBcmdJbmRleCArIDEpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWNtZC5ydW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKGBObyBjb21tYW5kIHNwZWNpZmllZC5gLCBcIkVfTk9fQ09NTUFORFwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbWQucnVuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNtZC5ydW4oY29udGV4dCk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGlmICh0eXBlb2YgY21kLmNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgYXdhaXQgY21kLmNsZWFudXAoY29udGV4dCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHJlc3VsdCB9O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzLCBwYXJlbnQpIHtcbiAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgaWYgKHN1YkNvbW1hbmRzICYmIE9iamVjdC5rZXlzKHN1YkNvbW1hbmRzKS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc3ViQ29tbWFuZEFyZ0luZGV4ID0gcmF3QXJncy5maW5kSW5kZXgoKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLVwiKSk7XG4gICAgY29uc3Qgc3ViQ29tbWFuZE5hbWUgPSByYXdBcmdzW3N1YkNvbW1hbmRBcmdJbmRleF07XG4gICAgY29uc3Qgc3ViQ29tbWFuZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pO1xuICAgIGlmIChzdWJDb21tYW5kKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVN1YkNvbW1hbmQoXG4gICAgICAgIHN1YkNvbW1hbmQsXG4gICAgICAgIHJhd0FyZ3Muc2xpY2Uoc3ViQ29tbWFuZEFyZ0luZGV4ICsgMSksXG4gICAgICAgIGNtZFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtjbWQsIHBhcmVudF07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNob3dVc2FnZShjbWQsIHBhcmVudCkge1xuICB0cnkge1xuICAgIGNvbnNvbGEubG9nKGF3YWl0IHJlbmRlclVzYWdlKGNtZCwgcGFyZW50KSArIFwiXFxuXCIpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IpO1xuICB9XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJVc2FnZShjbWQsIHBhcmVudCkge1xuICBjb25zdCBjbWRNZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5tZXRhIHx8IHt9KTtcbiAgY29uc3QgY21kQXJncyA9IHJlc29sdmVBcmdzKGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuYXJncyB8fCB7fSkpO1xuICBjb25zdCBwYXJlbnRNZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHBhcmVudD8ubWV0YSB8fCB7fSk7XG4gIGNvbnN0IGNvbW1hbmROYW1lID0gYCR7cGFyZW50TWV0YS5uYW1lID8gYCR7cGFyZW50TWV0YS5uYW1lfSBgIDogXCJcIn1gICsgKGNtZE1ldGEubmFtZSB8fCBwcm9jZXNzLmFyZ3ZbMV0pO1xuICBjb25zdCBhcmdMaW5lcyA9IFtdO1xuICBjb25zdCBwb3NMaW5lcyA9IFtdO1xuICBjb25zdCBjb21tYW5kc0xpbmVzID0gW107XG4gIGNvbnN0IHVzYWdlTGluZSA9IFtdO1xuICBmb3IgKGNvbnN0IGFyZyBvZiBjbWRBcmdzKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29uc3QgbmFtZSA9IGFyZy5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gYXJnLnJlcXVpcmVkICE9PSBmYWxzZSAmJiBhcmcuZGVmYXVsdCA9PT0gdm9pZCAwO1xuICAgICAgY29uc3QgZGVmYXVsdEhpbnQgPSBhcmcuZGVmYXVsdCA/IGA9XCIke2FyZy5kZWZhdWx0fVwiYCA6IFwiXCI7XG4gICAgICBwb3NMaW5lcy5wdXNoKFtcbiAgICAgICAgXCJgXCIgKyBuYW1lICsgZGVmYXVsdEhpbnQgKyBcImBcIixcbiAgICAgICAgYXJnLmRlc2NyaXB0aW9uIHx8IFwiXCIsXG4gICAgICAgIGFyZy52YWx1ZUhpbnQgPyBgPCR7YXJnLnZhbHVlSGludH0+YCA6IFwiXCJcbiAgICAgIF0pO1xuICAgICAgdXNhZ2VMaW5lLnB1c2goaXNSZXF1aXJlZCA/IGA8JHtuYW1lfT5gIDogYFske25hbWV9XWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gYXJnLnJlcXVpcmVkID09PSB0cnVlICYmIGFyZy5kZWZhdWx0ID09PSB2b2lkIDA7XG4gICAgICBjb25zdCBhcmdTdHIgPSAoYXJnLnR5cGUgPT09IFwiYm9vbGVhblwiICYmIGFyZy5kZWZhdWx0ID09PSB0cnVlID8gW1xuICAgICAgICAuLi4oYXJnLmFsaWFzIHx8IFtdKS5tYXAoKGEpID0+IGAtLW5vLSR7YX1gKSxcbiAgICAgICAgYC0tbm8tJHthcmcubmFtZX1gXG4gICAgICBdLmpvaW4oXCIsIFwiKSA6IFsuLi4oYXJnLmFsaWFzIHx8IFtdKS5tYXAoKGEpID0+IGAtJHthfWApLCBgLS0ke2FyZy5uYW1lfWBdLmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKSkgKyAoYXJnLnR5cGUgPT09IFwic3RyaW5nXCIgJiYgKGFyZy52YWx1ZUhpbnQgfHwgYXJnLmRlZmF1bHQpID8gYD0ke2FyZy52YWx1ZUhpbnQgPyBgPCR7YXJnLnZhbHVlSGludH0+YCA6IGBcIiR7YXJnLmRlZmF1bHQgfHwgXCJcIn1cImB9YCA6IFwiXCIpO1xuICAgICAgYXJnTGluZXMucHVzaChbXG4gICAgICAgIFwiYFwiICsgYXJnU3RyICsgKGlzUmVxdWlyZWQgPyBcIiAocmVxdWlyZWQpXCIgOiBcIlwiKSArIFwiYFwiLFxuICAgICAgICBhcmcuZGVzY3JpcHRpb24gfHwgXCJcIlxuICAgICAgXSk7XG4gICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICB1c2FnZUxpbmUucHVzaChhcmdTdHIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoY21kLnN1YkNvbW1hbmRzKSB7XG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gW107XG4gICAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBzdWJdIG9mIE9iamVjdC5lbnRyaWVzKHN1YkNvbW1hbmRzKSkge1xuICAgICAgY29uc3Qgc3ViQ21kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1Yik7XG4gICAgICBjb25zdCBtZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNtZD8ubWV0YSk7XG4gICAgICBjb21tYW5kc0xpbmVzLnB1c2goW2BcXGAke25hbWV9XFxgYCwgbWV0YT8uZGVzY3JpcHRpb24gfHwgXCJcIl0pO1xuICAgICAgY29tbWFuZE5hbWVzLnB1c2gobmFtZSk7XG4gICAgfVxuICAgIHVzYWdlTGluZS5wdXNoKGNvbW1hbmROYW1lcy5qb2luKFwifFwiKSk7XG4gIH1cbiAgY29uc3QgdXNhZ2VMaW5lcyA9IFtdO1xuICBjb25zdCB2ZXJzaW9uID0gY21kTWV0YS52ZXJzaW9uIHx8IHBhcmVudE1ldGEudmVyc2lvbjtcbiAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgIGNvbG9ycy5ncmF5KFxuICAgICAgYCR7Y21kTWV0YS5kZXNjcmlwdGlvbn0gKCR7Y29tbWFuZE5hbWUgKyAodmVyc2lvbiA/IGAgdiR7dmVyc2lvbn1gIDogXCJcIil9KWBcbiAgICApLFxuICAgIFwiXCJcbiAgKTtcbiAgY29uc3QgaGFzT3B0aW9ucyA9IGFyZ0xpbmVzLmxlbmd0aCA+IDAgfHwgcG9zTGluZXMubGVuZ3RoID4gMDtcbiAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgIGAke2NvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJVU0FHRVwiKSl9IFxcYCR7Y29tbWFuZE5hbWV9JHtoYXNPcHRpb25zID8gXCIgW09QVElPTlNdXCIgOiBcIlwifSAke3VzYWdlTGluZS5qb2luKFwiIFwiKX1cXGBgLFxuICAgIFwiXCJcbiAgKTtcbiAgaWYgKHBvc0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIkFSR1VNRU5UU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhwb3NMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFwiXCIpO1xuICB9XG4gIGlmIChhcmdMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJPUFRJT05TXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKGFyZ0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXCJcIik7XG4gIH1cbiAgaWYgKGNvbW1hbmRzTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiQ09NTUFORFNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMoY29tbWFuZHNMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgICAgXCJcIixcbiAgICAgIGBVc2UgXFxgJHtjb21tYW5kTmFtZX0gPGNvbW1hbmQ+IC0taGVscFxcYCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVzYWdlTGluZXMuZmlsdGVyKChsKSA9PiB0eXBlb2YgbCA9PT0gXCJzdHJpbmdcIikuam9pbihcIlxcblwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuTWFpbihjbWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCByYXdBcmdzID0gb3B0cy5yYXdBcmdzIHx8IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcbiAgY29uc3Qgc2hvd1VzYWdlJDEgPSBvcHRzLnNob3dVc2FnZSB8fCBzaG93VXNhZ2U7XG4gIHRyeSB7XG4gICAgaWYgKHJhd0FyZ3MuaW5jbHVkZXMoXCItLWhlbHBcIikgfHwgcmF3QXJncy5pbmNsdWRlcyhcIi1oXCIpKSB7XG4gICAgICBhd2FpdCBzaG93VXNhZ2UkMSguLi5hd2FpdCByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MpKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9IGVsc2UgaWYgKHJhd0FyZ3MubGVuZ3RoID09PSAxICYmIHJhd0FyZ3NbMF0gPT09IFwiLS12ZXJzaW9uXCIpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSB0eXBlb2YgY21kLm1ldGEgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGNtZC5tZXRhKCkgOiBhd2FpdCBjbWQubWV0YTtcbiAgICAgIGlmICghbWV0YT8udmVyc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXCJObyB2ZXJzaW9uIHNwZWNpZmllZFwiLCBcIkVfTk9fVkVSU0lPTlwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGEubG9nKG1ldGEudmVyc2lvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoY21kLCB7IHJhd0FyZ3MgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IGlzQ0xJRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIENMSUVycm9yO1xuICAgIGlmICghaXNDTElFcnJvcikge1xuICAgICAgY29uc29sYS5lcnJvcihlcnJvciwgXCJcXG5cIik7XG4gICAgfVxuICAgIGlmIChpc0NMSUVycm9yKSB7XG4gICAgICBhd2FpdCBzaG93VXNhZ2UkMSguLi5hd2FpdCByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MpKTtcbiAgICB9XG4gICAgY29uc29sYS5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZU1haW4oY21kKSB7XG4gIHJldHVybiAob3B0cyA9IHt9KSA9PiBydW5NYWluKGNtZCwgb3B0cyk7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZU1haW4sIGRlZmluZUNvbW1hbmQsIHBhcnNlQXJncywgcmVuZGVyVXNhZ2UsIHJ1bkNvbW1hbmQsIHJ1bk1haW4sIHNob3dVc2FnZSB9O1xuIiwgImltcG9ydCB7IGRlZmluZUNvbW1hbmQsIHJ1bk1haW4gfSBmcm9tIFwiY2l0dHlcIjtcbmltcG9ydCBhc3NlcnQgZnJvbSBcIm5vZGU6YXNzZXJ0XCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IGV6U3Bhd24gZnJvbSBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSBcIm9oYXNoXCI7XG5pbXBvcnQgZnNTeW5jIGZyb20gXCJmc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZ2V0UGFja2FnZU1hbmlmZXN0LCB0eXBlIFBhY2thZ2VNYW5pZmVzdCB9IGZyb20gXCJxdWVyeS1yZWdpc3RyeVwiO1xuaW1wb3J0IHR5cGUgeyBDb21tZW50IH0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQge1xuICBhYmJyZXZpYXRlQ29tbWl0SGFzaCxcbiAgZXh0cmFjdE93bmVyQW5kUmVwbyxcbiAgZXh0cmFjdFJlcG9zaXRvcnksXG59IGZyb20gXCJAcGtnLXByLW5ldy91dGlsc1wiO1xuaW1wb3J0IGZnIGZyb20gXCJmYXN0LWdsb2JcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IFwiLi9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCBwa2cgZnJvbSBcIi4vcGFja2FnZS5qc29uXCIgd2l0aCB7IHR5cGU6IFwianNvblwiIH07XG5pbXBvcnQgeyBpc0JpbmFyeUZpbGUgfSBmcm9tIFwiaXNiaW5hcnlmaWxlXCI7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpTT04sIHdyaXRlUGFja2FnZUpTT04gfSBmcm9tIFwicGtnLXR5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VGVtcGxhdGUgfSBmcm9tIFwiLi90ZW1wbGF0ZVwiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIHZhciBBUElfVVJMOiBzdHJpbmc7XG59XG5cbmNvbnN0IGFwaVVybCA9IHByb2Nlc3MuZW52LkFQSV9VUkwgPz8gQVBJX1VSTDtcbmNvbnN0IHB1Ymxpc2hVcmwgPSBuZXcgVVJMKFwiL3B1Ymxpc2hcIiwgYXBpVXJsKTtcblxuY29uc3QgbWFpbiA9IGRlZmluZUNvbW1hbmQoe1xuICBtZXRhOiB7XG4gICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgbmFtZTogXCJzdGFja2JsaXR6XCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBDTEkgZm9yIHBrZy5wci5uZXcgKENvbnRpbnVvdXMgUmVsZWFzZXMpXCIsXG4gIH0sXG4gIHN1YkNvbW1hbmRzOiB7XG4gICAgcHVibGlzaDogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGNvbXBhY3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiY29tcGFjdCB1cmxzLiBUaGUgc2hvcnRlc3QgZm9ybSBvZiB1cmxzIGxpa2UgcGtnLnByLm5ldy90aW55YmVuY2hAYTgzMmE1NSlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBucG06IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGBwbnBtIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiZ2VuZXJhdGUgc3RhY2tibGl0eiB0ZW1wbGF0ZXMgb3V0IG9mIGRpcmVjdG9yaWVzIGluIHRoZSBjdXJyZW50IHJlcG8gd2l0aCB0aGUgbmV3IGJ1aWx0IHBhY2thZ2VzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21tZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLCAvLyBcIm9mZlwiLCBcImNyZWF0ZVwiLCBcInVwZGF0ZVwiIChkZWZhdWx0KVxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcIm9mZlwiIGZvciBubyBjb21tZW50cyAoc2lsZW50IG1vZGUpLiBcImNyZWF0ZVwiIGZvciBjb21tZW50IG9uIGVhY2ggcHVibGlzaC4gXCJ1cGRhdGVcIiBmb3Igb25lIGNvbW1lbnQgYWNyb3NzIHRoZSBwdWxsIHJlcXVlc3Qgd2l0aCBlZGl0cyBvbiBlYWNoIHB1Ymxpc2ggKGRlZmF1bHQpYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwidXBkYXRlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBhc3luYyAoeyBhcmdzIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRocyA9IChhcmdzLl8ubGVuZ3RoID8gYXJncy5fIDogW1wiLlwiXSlcbiAgICAgICAgICAgIC5mbGF0TWFwKChwKSA9PiAoZmcuaXNEeW5hbWljUGF0dGVybihwKSA/IGZnLnN5bmMocCkgOiBwKSlcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHBhdGgucmVzb2x2ZShwLnRyaW0oKSkpO1xuXG4gICAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gKFxuICAgICAgICAgICAgdHlwZW9mIGFyZ3MudGVtcGxhdGUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyBbYXJncy50ZW1wbGF0ZV1cbiAgICAgICAgICAgICAgOiAoWy4uLihhcmdzLnRlbXBsYXRlIHx8IFtdKV0gYXMgc3RyaW5nW10pXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLmZsYXRNYXAoKHApID0+IChmZy5pc0R5bmFtaWNQYXR0ZXJuKHApID8gZmcuc3luYyhwKSA6IHApKVxuICAgICAgICAgICAgLm1hcCgocCkgPT4gcGF0aC5yZXNvbHZlKHAudHJpbSgpKSk7XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgY29uc3QgaXNDb21wYWN0ID0gISFhcmdzLmNvbXBhY3Q7XG4gICAgICAgICAgY29uc3QgaXNQbnBtID0gISFhcmdzLnBucG07XG5cbiAgICAgICAgICBjb25zdCBjb21tZW50OiBDb21tZW50ID0gYXJncy5jb21tZW50IGFzIENvbW1lbnQ7XG5cbiAgICAgICAgICBpZiAoIXByb2Nlc3MuZW52LlRFU1QgJiYgcHJvY2Vzcy5lbnYuR0lUSFVCX0FDVElPTlMgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNvbnRpbnVvdXMgUmVsZWFzZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIEdpdGh1YiBBY3Rpb25zLlwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSxcbiAgICAgICAgICAgIEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0FUVEVNUFQsXG4gICAgICAgICAgICBHSVRIVUJfQUNUT1JfSUQsXG4gICAgICAgICAgfSA9IHByb2Nlc3MuZW52O1xuXG4gICAgICAgICAgY29uc3QgW293bmVyLCByZXBvXSA9IEdJVEhVQl9SRVBPU0lUT1JZLnNwbGl0KFwiL1wiKTtcblxuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgcnVuOiBOdW1iZXIoR0lUSFVCX1JVTl9JRCksXG4gICAgICAgICAgICBhdHRlbXB0OiBOdW1iZXIoR0lUSFVCX1JVTl9BVFRFTVBUKSxcbiAgICAgICAgICAgIGFjdG9yOiBOdW1iZXIoR0lUSFVCX0FDVE9SX0lEKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3Qga2V5ID0gaGFzaChtZXRhZGF0YSk7XG5cbiAgICAgICAgICBjb25zdCBjaGVja1Jlc3BvbnNlID0gYXdhaXQgZmV0Y2gobmV3IFVSTChcIi9jaGVja1wiLCBhcGlVcmwpLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBvd25lcixcbiAgICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIWNoZWNrUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGF3YWl0IGNoZWNrUmVzcG9uc2UudGV4dCgpKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IHNoYSB9ID0gYXdhaXQgY2hlY2tSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgY29uc3QgYWJicmV2aWF0ZWRTaGEgPSBhYmJyZXZpYXRlQ29tbWl0SGFzaChzaGEpO1xuXG4gICAgICAgICAgY29uc3QgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24ocCkpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpTT04ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzQ29tcGFjdCkge1xuICAgICAgICAgICAgICBhd2FpdCB2ZXJpZnlDb21wYWN0TW9kZShwSnNvbi5uYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVwcy5zZXQoXG4gICAgICAgICAgICAgIHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIG5ldyBVUkwoXG4gICAgICAgICAgICAgICAgYC8ke293bmVyfS8ke3JlcG99LyR7cEpzb24ubmFtZX1AJHthYmJyZXZpYXRlZFNoYX1gLFxuICAgICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICAgKS5ocmVmLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHRlbXBsYXRlRGlyIG9mIHRlbXBsYXRlcykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24odGVtcGxhdGVEaXIpKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgc2tpcHBpbmcgJHt0ZW1wbGF0ZURpcn0gYmVjYXVzZSB0aGVyZSdzIG5vIHBhY2thZ2UuanNvbiBmaWxlYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUodGVtcGxhdGVEaXIsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpTT04ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgc2tpcHBpbmcgJHt0ZW1wbGF0ZURpcn0gYmVjYXVzZSB0aGUgcGFja2FnZSBpcyBwcml2YXRlYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicHJlcGFyaW5nIHRlbXBsYXRlOlwiLCBwSnNvbi5uYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzdG9yZSA9IGF3YWl0IHdyaXRlRGVwcyh0ZW1wbGF0ZURpciwgZGVwcyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBwYXRoLmpvaW4odGVtcGxhdGVEaXIsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlnID0gaWdub3JlKCk7XG4gICAgICAgICAgICBpZy5hZGQoXCJub2RlX21vZHVsZXNcIik7XG5cbiAgICAgICAgICAgIGlmIChmc1N5bmMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVDb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUoZ2l0aWdub3JlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICBpZy5hZGQoZ2l0aWdub3JlQ29udGVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZmcoW1wiKiovKlwiXSwge1xuICAgICAgICAgICAgICBjd2Q6IHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBkb3Q6IHRydWUsXG4gICAgICAgICAgICAgIG9ubHlGaWxlczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEZpbGVzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiAhaWcuaWdub3JlcyhmaWxlKSk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgZmlsdGVyZWRGaWxlcykge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCBmaWxlUGF0aCkpO1xuICAgICAgICAgICAgICBjb25zdCBpc0JpbmFyeSA9IGF3YWl0IGlzQmluYXJ5RmlsZShmaWxlKTtcbiAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtmaWxlLmJ1ZmZlcl0sIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgICAgIGB0ZW1wbGF0ZToke3BKc29uLm5hbWV9OiR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbGVQYXRoKX1gLFxuICAgICAgICAgICAgICAgIGlzQmluYXJ5ID8gYmxvYiA6IGF3YWl0IGJsb2IudGV4dCgpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgcmVzdG9yZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5vRGVmYXVsdFRlbXBsYXRlID0gYXJncy50ZW1wbGF0ZSA9PT0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAoIXRlbXBsYXRlcy5sZW5ndGggJiYgIW5vRGVmYXVsdFRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gY3JlYXRlRGVmYXVsdFRlbXBsYXRlKFxuICAgICAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoZGVwcy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhwcm9qZWN0KSkge1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOmRlZmF1bHQ6JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgcHJvamVjdFtmaWxlUGF0aF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdG9yZU1hcCA9IG5ldyBNYXA8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHdyaXRlRGVwcz4+XG4gICAgICAgICAgPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24ocCkpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpTT04ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvcmVNYXAuc2V0KHAsIGF3YWl0IHdyaXRlRGVwcyhwLCBkZXBzKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhc3VtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24ocCkpKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWApO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKU09OKHBKc29uUGF0aCk7XG5cbiAgICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgYFwibmFtZVwiIGZpZWxkIGluICR7cEpzb25QYXRofSBzaG91bGQgYmUgZGVmaW5lZGAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgcHJpdmF0ZWApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWxlbmFtZSwgc2hhc3VtIH0gPSBhd2FpdCByZXNvbHZlVGFyYmFsbChcbiAgICAgICAgICAgICAgICBpc1BucG0gPyBcInBucG1cIiA6IFwibnBtXCIsXG4gICAgICAgICAgICAgICAgcCxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzaGFzdW1zW3BKc29uLm5hbWVdID0gc2hhc3VtO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2hhc3VtIGZvciAke3BKc29uLm5hbWV9KCR7ZmlsZW5hbWV9KTogJHtzaGFzdW19YCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhdGgucmVzb2x2ZShwLCBmaWxlbmFtZSkpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZV0sIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGBwYWNrYWdlOiR7cEpzb24ubmFtZX1gLCBibG9iLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBhd2FpdCByZXN0b3JlTWFwLmdldChwKT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocHVibGlzaFVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJzYi1jb21tZW50XCI6IGNvbW1lbnQsXG4gICAgICAgICAgICAgIFwic2ItY29tcGFjdFwiOiBgJHtpc0NvbXBhY3R9YCxcbiAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICBcInNiLXNoYXN1bXNcIjogSlNPTi5zdHJpbmdpZnkoc2hhc3VtcyksXG4gICAgICAgICAgICAgIFwic2ItcnVuLWlkXCI6IEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgbGF0ZXJSZXMgPSBhd2FpdCByZXMuY2xvbmUoKS5qc29uKCk7XG4gICAgICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICAgICAgcmVzLnN0YXR1cyxcbiAgICAgICAgICAgIDIwMCxcbiAgICAgICAgICAgIGBwdWJsaXNoaW5nIGZhaWxlZDogJHthd2FpdCByZXMudGV4dCgpfWAsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcbiR7Wy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgICAgLmZpbHRlcigoaykgPT4gay5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpXG4gICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgKG5hbWUsIGkpID0+XG4gICAgICAgICAgICAgICAgICBgJHtuYW1lLnNsaWNlKFwicGFja2FnZTpcIi5sZW5ndGgpfTogbnBtIGkgJHtsYXRlclJlcy51cmxzW2ldfWAsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIil9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHt9LFxuICAgICAgICBydW46ICgpID0+IHt9LFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxufSk7XG5cbnJ1bk1haW4obWFpbik7XG5cbi8vIFRPRE86IHdlJ2xsIGFkZCBzdXBwb3J0IGZvciB5YXJuIGlmIHVzZXJzIGhpdCBpc3N1ZXMgd2l0aCBucG1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVUYXJiYWxsKHBtOiBcIm5wbVwiIHwgXCJwbnBtXCIsIHA6IHN0cmluZykge1xuICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXpTcGF3bi5hc3luYyhgJHtwbX0gcGFja2AsIHtcbiAgICBzdGRpbzogXCJvdmVybGFwcGVkXCIsXG4gICAgY3dkOiBwLFxuICB9KTtcbiAgY29uc3QgbGluZXMgPSBzdGRvdXQuc3BsaXQoXCJcXG5cIikuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBmaWxlbmFtZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLnRyaW0oKTtcblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhwOiBzdHJpbmcsIGRlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUocEpzb25QYXRoLCBcInV0Zi04XCIpO1xuXG4gIGNvbnN0IHBKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKU09OKHBKc29uUGF0aCk7XG5cbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5kZXBlbmRlbmNpZXMpO1xuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRldkRlcGVuZGVuY2llcyk7XG5cbiAgYXdhaXQgd3JpdGVQYWNrYWdlSlNPTihwSnNvblBhdGgsIHBKc29uKTtcblxuICByZXR1cm4gKCkgPT4gZnMud3JpdGVGaWxlKHBKc29uUGF0aCwgY29udGVudCk7XG59XG5cbmZ1bmN0aW9uIGhpamFja0RlcHMoXG4gIG5ld0RlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gIG9sZERlcHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKSB7XG4gIGlmICghb2xkRGVwcykge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGNvbnN0IFtuZXdEZXAsIHVybF0gb2YgbmV3RGVwcykge1xuICAgIGlmIChuZXdEZXAgaW4gb2xkRGVwcykge1xuICAgICAgb2xkRGVwc1tuZXdEZXBdID0gdXJsO1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlDb21wYWN0TW9kZShwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGxldCBtYW5pZmVzdDogUGFja2FnZU1hbmlmZXN0O1xuXG4gIHRyeSB7XG4gICAgbWFuaWZlc3QgPSBhd2FpdCBnZXRQYWNrYWdlTWFuaWZlc3QocGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgcmVzb2x2ZSAke3BhY2thZ2VOYW1lfSBmcm9tIG5wbS4gLS1jb21wYWN0IGZsYWcgZGVwZW5kcyBvbiB0aGUgcGFja2FnZSBiZWluZyBhdmFpbGFibGUgaW4gbnBtLlxuTWFrZSBzdXJlIHRvIGhhdmUgeW91ciBwYWNrYWdlIG9uIG5wbSBmaXJzdC5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbnN0cnVjdGlvbiA9IGBNYWtlIHN1cmUgdG8gY29uZmlndXJlIHRoZSAncmVwb3NpdG9yeScgLyAncmVwb3NpdG9yeS51cmwnIGZpZWxkIGluIGl0cyBwYWNrYWdlLmpzb24gcHJvcGVybHkuXG5TZWUgaHR0cHM6Ly9kb2NzLm5wbWpzLmNvbS9jbGkvdjEwL2NvbmZpZ3VyaW5nLW5wbS9wYWNrYWdlLWpzb24jcmVwb3NpdG9yeSBmb3IgZGV0YWlscy5gO1xuXG4gIGNvbnN0IHJlcG9zaXRvcnkgPSBleHRyYWN0UmVwb3NpdG9yeShtYW5pZmVzdCk7XG4gIGlmICghcmVwb3NpdG9yeSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBwa2ctcHItbmV3IGNhbm5vdCBleHRyYWN0IHRoZSByZXBvc2l0b3J5IGxpbmsgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gbWFuaWZlc3QuIC0tY29tcGFjdCBmbGFnIHJlcXVpcmVzIHRoZSBsaW5rIHRvIGJlIHByZXNlbnQuXG4ke2luc3RydWN0aW9ufWAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gZXh0cmFjdE93bmVyQW5kUmVwbyhyZXBvc2l0b3J5KTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBwa2ctcHItbmV3IGNhbm5vdCBleHRyYWN0IHRoZSBvd25lciBhbmQgcmVwbyBuYW1lcyBmcm9tIHRoZSAke3BhY2thZ2VOYW1lfSByZXBvc2l0b3J5IGxpbms6ICR7cmVwb3NpdG9yeX0uIC0tY29tcGFjdCBmbGFnIHJlcXVpcmVzIHRoZXNlIG5hbWVzLlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzUGFja2FnZUpzb24ocDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMuYWNjZXNzKHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKSwgZnMuY29uc3RhbnRzLkZfT0spO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbmNsYXNzIFdvcmRBcnJheSB7XG4gIGNvbnN0cnVjdG9yKHdvcmRzLCBzaWdCeXRlcykge1xuICAgIHdvcmRzID0gdGhpcy53b3JkcyA9IHdvcmRzIHx8IFtdO1xuICAgIHRoaXMuc2lnQnl0ZXMgPSBzaWdCeXRlcyA9PT0gdm9pZCAwID8gd29yZHMubGVuZ3RoICogNCA6IHNpZ0J5dGVzO1xuICB9XG4gIHRvU3RyaW5nKGVuY29kZXIpIHtcbiAgICByZXR1cm4gKGVuY29kZXIgfHwgSGV4KS5zdHJpbmdpZnkodGhpcyk7XG4gIH1cbiAgY29uY2F0KHdvcmRBcnJheSkge1xuICAgIHRoaXMuY2xhbXAoKTtcbiAgICBpZiAodGhpcy5zaWdCeXRlcyAlIDQpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGhhdEJ5dGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBpID4+PiAyXSB8PSB0aGF0Qnl0ZSA8PCAyNCAtICh0aGlzLnNpZ0J5dGVzICsgaSkgJSA0ICogODtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGogKz0gNCkge1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBqID4+PiAyXSA9IHdvcmRBcnJheS53b3Jkc1tqID4+PiAyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaWdCeXRlcyArPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgY2xhbXAoKSB7XG4gICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzID4+PiAyXSAmPSA0Mjk0OTY3Mjk1IDw8IDMyIC0gdGhpcy5zaWdCeXRlcyAlIDQgKiA4O1xuICAgIHRoaXMud29yZHMubGVuZ3RoID0gTWF0aC5jZWlsKHRoaXMuc2lnQnl0ZXMgLyA0KTtcbiAgfVxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShbLi4udGhpcy53b3Jkc10pO1xuICB9XG59XG5jb25zdCBIZXggPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBoZXhDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgIGNvbnN0IGJpdGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgaGV4Q2hhcnMucHVzaCgoYml0ZSA+Pj4gNCkudG9TdHJpbmcoMTYpLCAoYml0ZSAmIDE1KS50b1N0cmluZygxNikpO1xuICAgIH1cbiAgICByZXR1cm4gaGV4Q2hhcnMuam9pbihcIlwiKTtcbiAgfVxufTtcbmNvbnN0IEJhc2U2NCA9IHtcbiAgc3RyaW5naWZ5KHdvcmRBcnJheSkge1xuICAgIGNvbnN0IGtleVN0ciA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtcbiAgICBjb25zdCBiYXNlNjRDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpICs9IDMpIHtcbiAgICAgIGNvbnN0IGJ5dGUxID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IGJ5dGUyID0gd29yZEFycmF5LndvcmRzW2kgKyAxID4+PiAyXSA+Pj4gMjQgLSAoaSArIDEpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMyA9IHdvcmRBcnJheS53b3Jkc1tpICsgMiA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAyKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgdHJpcGxldCA9IGJ5dGUxIDw8IDE2IHwgYnl0ZTIgPDwgOCB8IGJ5dGUzO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA0ICYmIGkgKiA4ICsgaiAqIDYgPCB3b3JkQXJyYXkuc2lnQnl0ZXMgKiA4OyBqKyspIHtcbiAgICAgICAgYmFzZTY0Q2hhcnMucHVzaChrZXlTdHIuY2hhckF0KHRyaXBsZXQgPj4+IDYgKiAoMyAtIGopICYgNjMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJhc2U2NENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBMYXRpbjEgPSB7XG4gIHBhcnNlKGxhdGluMVN0cikge1xuICAgIGNvbnN0IGxhdGluMVN0ckxlbmd0aCA9IGxhdGluMVN0ci5sZW5ndGg7XG4gICAgY29uc3Qgd29yZHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhdGluMVN0ckxlbmd0aDsgaSsrKSB7XG4gICAgICB3b3Jkc1tpID4+PiAyXSB8PSAobGF0aW4xU3RyLmNoYXJDb2RlQXQoaSkgJiAyNTUpIDw8IDI0IC0gaSAlIDQgKiA4O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheSh3b3JkcywgbGF0aW4xU3RyTGVuZ3RoKTtcbiAgfVxufTtcbmNvbnN0IFV0ZjggPSB7XG4gIHBhcnNlKHV0ZjhTdHIpIHtcbiAgICByZXR1cm4gTGF0aW4xLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh1dGY4U3RyKSkpO1xuICB9XG59O1xuY2xhc3MgQnVmZmVyZWRCbG9ja0FsZ29yaXRobSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgV29yZEFycmF5KCk7XG4gICAgdGhpcy5fbkRhdGFCeXRlcyA9IDA7XG4gICAgdGhpcy5fbWluQnVmZmVyU2l6ZSA9IDA7XG4gICAgdGhpcy5ibG9ja1NpemUgPSA1MTIgLyAzMjtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLl9kYXRhID0gbmV3IFdvcmRBcnJheSgpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgPSAwO1xuICB9XG4gIF9hcHBlbmQoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgZGF0YSA9IFV0ZjgucGFyc2UoZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGEuY29uY2F0KGRhdGEpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgKz0gZGF0YS5zaWdCeXRlcztcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9kb1Byb2Nlc3NCbG9jayhfZGF0YVdvcmRzLCBfb2Zmc2V0KSB7XG4gIH1cbiAgX3Byb2Nlc3MoZG9GbHVzaCkge1xuICAgIGxldCBwcm9jZXNzZWRXb3JkcztcbiAgICBsZXQgbkJsb2Nrc1JlYWR5ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAvICh0aGlzLmJsb2NrU2l6ZSAqIDQpO1xuICAgIGlmIChkb0ZsdXNoKSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLmNlaWwobkJsb2Nrc1JlYWR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5tYXgoKG5CbG9ja3NSZWFkeSB8IDApIC0gdGhpcy5fbWluQnVmZmVyU2l6ZSwgMCk7XG4gICAgfVxuICAgIGNvbnN0IG5Xb3Jkc1JlYWR5ID0gbkJsb2Nrc1JlYWR5ICogdGhpcy5ibG9ja1NpemU7XG4gICAgY29uc3QgbkJ5dGVzUmVhZHkgPSBNYXRoLm1pbihuV29yZHNSZWFkeSAqIDQsIHRoaXMuX2RhdGEuc2lnQnl0ZXMpO1xuICAgIGlmIChuV29yZHNSZWFkeSkge1xuICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbldvcmRzUmVhZHk7IG9mZnNldCArPSB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICB0aGlzLl9kb1Byb2Nlc3NCbG9jayh0aGlzLl9kYXRhLndvcmRzLCBvZmZzZXQpO1xuICAgICAgfVxuICAgICAgcHJvY2Vzc2VkV29yZHMgPSB0aGlzLl9kYXRhLndvcmRzLnNwbGljZSgwLCBuV29yZHNSZWFkeSk7XG4gICAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzIC09IG5CeXRlc1JlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShwcm9jZXNzZWRXb3JkcywgbkJ5dGVzUmVhZHkpO1xuICB9XG59XG5jbGFzcyBIYXNoZXIgZXh0ZW5kcyBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtIHtcbiAgdXBkYXRlKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgdGhpcy5fcHJvY2VzcygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBpZiAobWVzc2FnZVVwZGF0ZSkge1xuICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBIID0gW1xuICAxNzc5MDMzNzAzLFxuICAtMTE1MDgzMzAxOSxcbiAgMTAxMzkwNDI0MixcbiAgLTE1MjE0ODY1MzQsXG4gIDEzNTk4OTMxMTksXG4gIC0xNjk0MTQ0MzcyLFxuICA1Mjg3MzQ2MzUsXG4gIDE1NDE0NTkyMjVcbl07XG5jb25zdCBLID0gW1xuICAxMTE2MzUyNDA4LFxuICAxODk5NDQ3NDQxLFxuICAtMTI0NTY0MzgyNSxcbiAgLTM3Mzk1NzcyMyxcbiAgOTYxOTg3MTYzLFxuICAxNTA4OTcwOTkzLFxuICAtMTg0MTMzMTU0OCxcbiAgLTE0MjQyMDQwNzUsXG4gIC02NzA1ODYyMTYsXG4gIDMxMDU5ODQwMSxcbiAgNjA3MjI1Mjc4LFxuICAxNDI2ODgxOTg3LFxuICAxOTI1MDc4Mzg4LFxuICAtMjEzMjg4OTA5MCxcbiAgLTE2ODAwNzkxOTMsXG4gIC0xMDQ2NzQ0NzE2LFxuICAtNDU5NTc2ODk1LFxuICAtMjcyNzQyNTIyLFxuICAyNjQzNDcwNzgsXG4gIDYwNDgwNzYyOCxcbiAgNzcwMjU1OTgzLFxuICAxMjQ5MTUwMTIyLFxuICAxNTU1MDgxNjkyLFxuICAxOTk2MDY0OTg2LFxuICAtMTc0MDc0NjQxNCxcbiAgLTE0NzMxMzI5NDcsXG4gIC0xMzQxOTcwNDg4LFxuICAtMTA4NDY1MzYyNSxcbiAgLTk1ODM5NTQwNSxcbiAgLTcxMDQzODU4NSxcbiAgMTEzOTI2OTkzLFxuICAzMzgyNDE4OTUsXG4gIDY2NjMwNzIwNSxcbiAgNzczNTI5OTEyLFxuICAxMjk0NzU3MzcyLFxuICAxMzk2MTgyMjkxLFxuICAxNjk1MTgzNzAwLFxuICAxOTg2NjYxMDUxLFxuICAtMjExNzk0MDk0NixcbiAgLTE4MzgwMTEyNTksXG4gIC0xNTY0NDgxMzc1LFxuICAtMTQ3NDY2NDg4NSxcbiAgLTEwMzUyMzY0OTYsXG4gIC05NDkyMDI1MjUsXG4gIC03Nzg5MDE0NzksXG4gIC02OTQ2MTQ0OTIsXG4gIC0yMDAzOTUzODcsXG4gIDI3NTQyMzM0NCxcbiAgNDMwMjI3NzM0LFxuICA1MDY5NDg2MTYsXG4gIDY1OTA2MDU1NixcbiAgODgzOTk3ODc3LFxuICA5NTgxMzk1NzEsXG4gIDEzMjI4MjIyMTgsXG4gIDE1MzcwMDIwNjMsXG4gIDE3NDc4NzM3NzksXG4gIDE5NTU1NjIyMjIsXG4gIDIwMjQxMDQ4MTUsXG4gIC0yMDY3MjM2ODQ0LFxuICAtMTkzMzExNDg3MixcbiAgLTE4NjY1MzA4MjIsXG4gIC0xNTM4MjMzMTA5LFxuICAtMTA5MDkzNTgxNyxcbiAgLTk2NTY0MTk5OFxuXTtcbmNvbnN0IFcgPSBbXTtcbmNsYXNzIFNIQTI1NiBleHRlbmRzIEhhc2hlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkoWy4uLkhdKTtcbiAgfVxuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHN1cGVyLmZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpO1xuICAgIGNvbnN0IG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcbiAgICBjb25zdCBuQml0c0xlZnQgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzICogODtcbiAgICB0aGlzLl9kYXRhLndvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMTI4IDw8IDI0IC0gbkJpdHNMZWZ0ICUgMzI7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1sobkJpdHNMZWZ0ICsgNjQgPj4+IDkgPDwgNCkgKyAxNF0gPSBNYXRoLmZsb29yKFxuICAgICAgbkJpdHNUb3RhbCAvIDQyOTQ5NjcyOTZcbiAgICApO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTVdID0gbkJpdHNUb3RhbDtcbiAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzID0gdGhpcy5fZGF0YS53b3Jkcy5sZW5ndGggKiA0O1xuICAgIHRoaXMuX3Byb2Nlc3MoKTtcbiAgICByZXR1cm4gdGhpcy5faGFzaDtcbiAgfVxufVxuZnVuY3Rpb24gc2hhMjU2KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gc2hhMjU2YmFzZTY0KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZyhCYXNlNjQpO1xufVxuXG5mdW5jdGlvbiBoYXNoKG9iamVjdCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGhhc2hlZCA9IHR5cGVvZiBvYmplY3QgPT09IFwic3RyaW5nXCIgPyBvYmplY3QgOiBvYmplY3RIYXNoKG9iamVjdCwgb3B0aW9ucyk7XG4gIHJldHVybiBzaGEyNTZiYXNlNjQoaGFzaGVkKS5zbGljZSgwLCAxMCk7XG59XG5cbmZ1bmN0aW9uIG11cm11ckhhc2goa2V5LCBzZWVkID0gMCkge1xuICBpZiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGtleSA9IGNyZWF0ZUJ1ZmZlcihrZXkpO1xuICB9XG4gIGxldCBpID0gMDtcbiAgbGV0IGgxID0gc2VlZDtcbiAgbGV0IGsxO1xuICBsZXQgaDFiO1xuICBjb25zdCByZW1haW5kZXIgPSBrZXkubGVuZ3RoICYgMztcbiAgY29uc3QgYnl0ZXMgPSBrZXkubGVuZ3RoIC0gcmVtYWluZGVyO1xuICBjb25zdCBjMSA9IDM0MzI5MTgzNTM7XG4gIGNvbnN0IGMyID0gNDYxODQ1OTA3O1xuICB3aGlsZSAoaSA8IGJ5dGVzKSB7XG4gICAgazEgPSBrZXlbaV0gJiAyNTUgfCAoa2V5WysraV0gJiAyNTUpIDw8IDggfCAoa2V5WysraV0gJiAyNTUpIDw8IDE2IHwgKGtleVsrK2ldICYgMjU1KSA8PCAyNDtcbiAgICArK2k7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMSArICgoKGsxID4+PiAxNikgKiBjMSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMiArICgoKGsxID4+PiAxNikgKiBjMiAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxIF49IGsxO1xuICAgIGgxID0gaDEgPDwgMTMgfCBoMSA+Pj4gMTk7XG4gICAgaDFiID0gKGgxICYgNjU1MzUpICogNSArICgoKGgxID4+PiAxNikgKiA1ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgaDEgPSAoaDFiICYgNjU1MzUpICsgMjc0OTIgKyAoKChoMWIgPj4+IDE2KSArIDU4OTY0ICYgNjU1MzUpIDw8IDE2KTtcbiAgfVxuICBrMSA9IDA7XG4gIHN3aXRjaCAocmVtYWluZGVyKSB7XG4gICAgY2FzZSAzOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAyXSAmIDI1NSkgPDwgMTY7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAxXSAmIDI1NSkgPDwgODtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImltcG9ydCB0eXBlIHsgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5cbmNvbnN0IGdpdGh1YlVybFJlZ2V4ID1cbiAgLyg/OmdpdFxcKyk/aHR0cHM/OlxcL1xcL2dpdGh1YlxcLmNvbVxcLyhbXlxcL10rKVxcLyhbXlxcL10rKVxcLmdpdC87IC8vIFRPRE86IERvbid0IHRydXN0IHRoaXMsIGl0J3MgY2hhdGdiZCA6KVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE93bmVyQW5kUmVwbyhcbiAgcmVwb3NpdG9yeVVybDogc3RyaW5nLFxuKTogW3N0cmluZywgc3RyaW5nXSB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IHJlcG9zaXRvcnlVcmwubWF0Y2goZ2l0aHViVXJsUmVnZXgpO1xuXG4gIGlmIChtYXRjaCkge1xuICAgIHJldHVybiBbbWF0Y2hbMV0sIG1hdGNoWzJdXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdCkge1xuICByZXR1cm4gdHlwZW9mIG1hbmlmZXN0LnJlcG9zaXRvcnkgPT09IFwic3RyaW5nXCJcbiAgICA/IG1hbmlmZXN0LnJlcG9zaXRvcnlcbiAgICA6IG1hbmlmZXN0LnJlcG9zaXRvcnk/LnVybDtcbn1cblxuY29uc3QgY29tbWl0TGVuZ3RoID0gNztcblxuLypcbiAqIFwiMDllZmQwNTUzMzc0ZmY3ZDNlNjJiNzkzNzhlMzE4NGY1ZWI1NzU3MVwiID0+IFwiMDllZmQwNVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYmJyZXZpYXRlQ29tbWl0SGFzaChmdWxsSGFzaDogc3RyaW5nKSB7XG4gIHJldHVybiBmdWxsSGFzaC5zdWJzdHJpbmcoMCwgY29tbWl0TGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHVsbFJlcXVlc3QocmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuICFOdW1iZXIuaXNOYU4oTnVtYmVyKHJlZikpO1xufVxuXG5leHBvcnQgdHlwZSBDb21tZW50ID0gXCJvZmZcIiB8IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiXG4iLCAie1xuICBcIm5hbWVcIjogXCJwa2ctcHItbmV3XCIsXG4gIFwidmVyc2lvblwiOiBcIjAuMC4xMlwiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gIFwibWFpblwiOiBcImluZGV4LmpzXCIsXG4gIFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuICBcImJpblwiOiB7XG4gICAgXCJwa2ctcHItbmV3XCI6IFwiYmluL2NsaS5qc1wiXG4gIH0sXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJkZXZcIjogXCJ0c3VwIC0td2F0Y2hcIixcbiAgICBcImJ1aWxkXCI6IFwidHN1cFwiLFxuICAgIFwiYnVpbGQ6cHVibGlzaFwiOiBcIkFQSV9VUkw9aHR0cHM6Ly9wa2cucHIubmV3LyB0c3VwXCJcbiAgfSxcbiAgXCJrZXl3b3Jkc1wiOiBbXSxcbiAgXCJhdXRob3JcIjogXCJcIixcbiAgXCJsaWNlbnNlXCI6IFwiSVNDXCIsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI6IFwiXjMuMC40XCIsXG4gICAgXCJAb2N0b2tpdC9hY3Rpb25cIjogXCJeNi4xLjBcIixcbiAgICBcImZhc3QtZ2xvYlwiOiBcIl4zLjMuMlwiLFxuICAgIFwiaWdub3JlXCI6IFwiXjUuMy4xXCIsXG4gICAgXCJpc2JpbmFyeWZpbGVcIjogXCJeNS4wLjJcIixcbiAgICBcInBrZy10eXBlc1wiOiBcIl4xLjEuMVwiLFxuICAgIFwicXVlcnktcmVnaXN0cnlcIjogXCJeMy4wLjFcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAcGtnLXByLW5ldy91dGlsc1wiOiBcIndvcmtzcGFjZTpeXCIsXG4gICAgXCJjaXR0eVwiOiBcIl4wLjEuNlwiLFxuICAgIFwidHN1cFwiOiBcIl44LjAuMlwiXG4gIH1cbn1cbiIsICJleHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFRlbXBsYXRlID0gKFxuICBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pID0+ICh7XG4gIFwiaW5kZXguanNcIjogXCJcIixcbiAgXCJSRUFETUUubWRcIjogYFxuIyBEZWZhdWx0IFRlbXBsYXRlXG5cblRoaXMgaXMgYSB0ZW1wbGF0ZSB0aGF0IGxldmVyYWdlcyB0aGUgZXhwZXJpbWVudGFsIHRlbXBsYXRlcyBmZWF0dXJlIGluIHRoZSBcXGBwa2cucHIubmV3XFxgIHRvb2wuXG5cbiMjIE92ZXJ2aWV3XG5cblRlbXBsYXRlcyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgY3JlYXRpbmcgbGl2ZSwgaW50ZXJhY3RpdmUgZXhhbXBsZXMgb2YgeW91ciBwYWNrYWdlcywgd2hpY2ggY2FuIGJlIHZlcnkgYmVuZWZpY2lhbCBmb3IgYm90aCBkZXZlbG9wbWVudCBhbmQgZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy5cblxuQXMgYSB1c2VyLCB5b3UgY2FuIGNoZWNrIHRoZSBwYWNrYWdlLmpzb24gZmlsZSBhbmQgc2VlIHRoZSBuZXcgZ2VuZXJhdGVkIHBhY2thZ2VzISBZb3UgY2FuIGp1c3QgY29weSB0aG9zZSBhbmQgcHV0IHRoZW0gaW4geW91ciBwYWNrYWdlLmpzb24gb3IgaW5zdGFsbCB0aGVtIHdpdGggeW91ciBmYXZvcml0ZSBwYWNrYWdlIG1hbmFnZXIuXG5cbiR7T2JqZWN0LnZhbHVlcyhkZXBlbmRlbmNpZXMpXG4gIC5tYXAoXG4gICAgKHVybCkgPT4gYFxuXFxgXFxgXFxgc2hcbm5wbSBpICR7dXJsfVxuXFxgXFxgXFxgXG5gLFxuICApXG4gIC5qb2luKFwiXCIpfVxuXG4jIyBVc2FnZVxuXG5UbyB1c2UgdGhpcyBmZWF0dXJlIGFzIGEgbWFpbnRhaW5lciwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuXG5cXGBcXGBcXGBzaFxubnB4IHBrZy1wci1uZXcgcHVibGlzaCAuL3BhY2thZ2VzL0EgLS10ZW1wbGF0ZSAuL2V4YW1wbGVzLypcblxcYFxcYFxcYFxuXG4jIyBCZW5lZml0c1xuXG4tIEludGVyYWN0aXZlIERlbW9zOiBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBsaXZlIGRlbW9zIHRoYXQgdXNlcnMgY2FuIGludGVyYWN0IHdpdGggZGlyZWN0bHkgaW4gdGhlaXIgYnJvd3Nlci5cbi0gRW5oYW5jZWQgVGVzdGluZzogUXVpY2tseSBzcGluIHVwIGVudmlyb25tZW50cyB0byB0ZXN0IHlvdXIgcGFja2FnZSBpbiBkaWZmZXJlbnQgc2NlbmFyaW9zLlxuLSBJbXByb3ZlZCBTaGFyaW5nOiBFYXNpbHkgc2hhcmUgd29ya2luZyBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2Ugd2l0aCBjb2xsYWJvcmF0b3JzIG9yIHVzZXJzIHdpdGhvdXQgbmVlZGluZyB0aGVtIHRvIHNldCB1cCB0aGVpciBlbnZpcm9ubWVudC5cbmAsXG4gIFwicGFja2FnZS5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiZ2VuZXJhdGVkIGJ5IHBrZy5wci5uZXdcIixcbiAgICAgIG1haW46IFwiaW5kZXguanNcIixcbiAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgIGtleXdvcmRzOiBbXSxcbiAgICAgIGF1dGhvcjogXCJwa2cucHIubmV3XCIsXG4gICAgICBs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TyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxTQUFPLE1BQUksTUFBSSxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFFBQU0sT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxTQUFPLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sS0FBRyxTQUFPLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxXQUFTLFdBQVMsS0FBRyxLQUFHLFVBQVEsTUFBSTtBQUFBLE1BQUcsR0FBRSxFQUFFLGtCQUFnQixTQUFTLEdBQUU7QUFBQyxZQUFJQSxLQUFFLEtBQUssZUFBZSxDQUFDO0FBQUUsZUFBT0EsTUFBRyxPQUFLQSxNQUFHLE9BQUtBLE1BQUcsTUFBSSxJQUFFO0FBQUEsTUFBQztBQUFFLGVBQVMsRUFBRSxHQUFFO0FBQUMsZUFBTyxFQUFFLE1BQU0sa0RBQWtELEtBQUcsQ0FBQztBQUFBLE1BQUM7QUFBQyxRQUFFLFNBQU8sU0FBUyxHQUFFO0FBQUMsaUJBQVFBLEtBQUUsRUFBRSxDQUFDLEdBQUUsSUFBRSxHQUFFLElBQUUsR0FBRSxJQUFFQSxHQUFFLFFBQU87QUFBSSxjQUFFLElBQUUsS0FBSyxnQkFBZ0JBLEdBQUUsQ0FBQyxDQUFDO0FBQUUsZUFBTztBQUFBLE1BQUMsR0FBRSxFQUFFLFFBQU0sU0FBUyxHQUFFQSxJQUFFLEdBQUU7QUFBQyxrQkFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFFQSxLQUFFQSxNQUFHLEdBQUUsSUFBRSxLQUFHLEdBQUVBLEtBQUUsTUFBSUEsS0FBRSxVQUFRQSxLQUFHLElBQUUsTUFBSSxJQUFFLFVBQVE7QUFBRyxpQkFBUSxJQUFFLElBQUcsSUFBRSxHQUFFLElBQUUsRUFBRSxDQUFDLEdBQUUsSUFBRSxHQUFFLElBQUUsRUFBRSxRQUFPLEtBQUk7QUFBQyxjQUFJLElBQUUsRUFBRSxDQUFDLEdBQUUsSUFBRSxFQUFFLE9BQU8sQ0FBQztBQUFFLGNBQUcsS0FBR0EsTUFBRyxLQUFHLElBQUUsSUFBRTtBQUFHLGdCQUFHLElBQUUsS0FBRztBQUFFLG1CQUFHO0FBQUE7QUFBTztBQUFNLGVBQUc7QUFBQSxRQUFFO0FBQUMsZUFBTztBQUFBLE1BQUM7QUFBQSxJQUFFLEdBQUcsQ0FBQztBQUFFLElBQU0sSUFBRTtBQUFFLElBQUksSUFBRSxXQUFVO0FBQUMsYUFBTztBQUFBLElBQWd5ZTtBQUFvWCxJQUFNLElBQUU7QUFBUixJQUFXLElBQUUsQ0FBQyxJQUFFLE1BQUksT0FBRyxRQUFRLElBQUUsQ0FBQztBQUFsQyxJQUFzQyxJQUFFLENBQUMsSUFBRSxNQUFJLE9BQUcsUUFBUSxLQUFHLENBQUMsTUFBTSxDQUFDO0FBQXJFLElBQXlFLElBQUUsQ0FBQyxJQUFFLE1BQUksQ0FBQyxHQUFFLEdBQUUsTUFBSSxRQUFRLEtBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztBQUF4SCxJQUE0SCxJQUFFLEVBQUMsVUFBUyxFQUFDLE9BQU0sQ0FBQyxHQUFFLENBQUMsR0FBRSxNQUFLLENBQUMsR0FBRSxFQUFFLEdBQUUsS0FBSSxDQUFDLEdBQUUsRUFBRSxHQUFFLFFBQU8sQ0FBQyxHQUFFLEVBQUUsR0FBRSxXQUFVLENBQUMsR0FBRSxFQUFFLEdBQUUsVUFBUyxDQUFDLElBQUcsRUFBRSxHQUFFLFNBQVEsQ0FBQyxHQUFFLEVBQUUsR0FBRSxRQUFPLENBQUMsR0FBRSxFQUFFLEdBQUUsZUFBYyxDQUFDLEdBQUUsRUFBRSxFQUFDLEdBQUUsT0FBTSxFQUFDLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxLQUFJLENBQUMsSUFBRyxFQUFFLEdBQUUsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsV0FBVSxDQUFDLElBQUcsRUFBRSxHQUFFLGFBQVksQ0FBQyxJQUFHLEVBQUUsR0FBRSxjQUFhLENBQUMsSUFBRyxFQUFFLEdBQUUsWUFBVyxDQUFDLElBQUcsRUFBRSxHQUFFLGVBQWMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxZQUFXLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxFQUFDLEdBQUUsU0FBUSxFQUFDLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLFVBQVMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxRQUFPLENBQUMsSUFBRyxFQUFFLEdBQUUsV0FBVSxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsZUFBYyxDQUFDLEtBQUksRUFBRSxHQUFF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QUFHLE1BQU0sS0FBSyxLQUFLLFlBQVksR0FBRSxLQUFLLE1BQU0sR0FBRyxZQUFXLEtBQUssVUFBVSxHQUFFLEVBQUUsS0FBSyxPQUFNLElBQUUsR0FBRSxLQUFLLE9BQU8sR0FBRyxVQUFTLEtBQUssTUFBTSxHQUFFLEtBQUssT0FBTyxHQUFFLElBQUksUUFBUSxDQUFDLEdBQUUsTUFBSTtBQUFDLGVBQUssS0FBSyxVQUFTLE1BQUk7QUFBQyxpQkFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLElBQUksR0FBRSxLQUFLLE9BQU8sSUFBSSxVQUFTLEtBQUssTUFBTSxHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRSxFQUFFLEtBQUssS0FBSztBQUFBLFVBQUUsQ0FBQyxHQUFFLEtBQUssS0FBSyxVQUFTLE1BQUk7QUFBQyxpQkFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLElBQUksR0FBRSxLQUFLLE9BQU8sSUFBSSxVQUFTLEtBQUssTUFBTSxHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRSxFQUFFLENBQUM7QUFBQSxVQUFFLENBQUM7QUFBQSxRQUFFLENBQUM7QUFBQSxNQUFDO0FBQUEsTUFBQyxHQUFHLEdBQUUsR0FBRTtBQUFDLGNBQU0sSUFBRSxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUcsQ0FBQztBQUFFLFVBQUUsS0FBSyxFQUFDLElBQUcsRUFBQyxDQUFDLEdBQUUsS0FBSyxZQUFZLElBQUksR0FBRSxDQUFDO0FBQUEsTUFBRTtBQUFBLE1BQUMsS0FBSyxHQUFFLEdBQUU7QUFBQyxjQUFNLElBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxLQUFHLENBQUM7QUFBRSxVQUFFLEtBQUssRUFBQyxJQUFHLEdBQUUsTUFBSyxLQUFFLENBQUMsR0FBRSxLQUFLLFlBQVksSUFBSSxHQUFFLENBQUM7QUFBQSxNQUFFO0FBQUEsTUFBQyxLQUFLLE1BQUssR0FBRTtBQUFDLGNBQU0sSUFBRSxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUcsQ0FBQyxHQUFFQSxLQUFFLENBQUM7QUFBRSxtQkFBVSxLQUFLO0FB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Q3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFFBQVU7QUFDbEQsaUJBQU87QUFBQSxRQUNUO0FBQ0EsWUFBSyxNQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLE9BQVM7QUFDaEQsaUJBQU87QUFBQSxRQUNUO0FBQ0EsWUFBSyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxTQUFVLGFBQ1YsU0FBVSxhQUNWLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFDVixVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxVQUNyQyxVQUFXLGFBQWEsYUFBYSxXQUNyQyxXQUFZLGFBQWEsYUFBYSxTQUFXO0FBQ3BELGlCQUFPO0FBQUEsUUFDVDtBQUVBLGVBQU87QUFBQSxNQUNUO0FBRUEsVUFBSSxrQkFBa0IsU0FBUyxXQUFXO0FBQ3hDLFlBQUksT0FBTyxLQUFLLGVBQWUsU0FBUztBQUN4QyxZQUFJLFFBQVEsT0FBTyxRQUFRLE9BQU8sUUFBUSxLQUFLO0FBQzdDLGlCQUFPO0FBQUEsUUFDVCxPQUFPO0FBQ0wsaUJBQU87QUFBQSxRQUNUO0FBQUEsTUFDRjtBQUdBLGVBQVMsY0FBYyxRQUFRO0FBQzdCLGVBQU8sT0FBTyxNQUFNLGtEQUFrRCxLQUFLLENBQUM7QUFBQSxNQUM5RTtBQUVBLFVBQUksU0FBUyxTQUFTLFFBQVE7QUFDNUIsWUFBSSxhQUFhLGNBQWMsTUFBTTtBQUNyQyxZQUFJLE1BQU07QUFDVixpQkFBUyxJQUFJLEdBQUcsSUFBSSxXQUFXLFFBQVEsS0FBSztBQUMxQyxnQkFBTSxNQUFNLEtBQUssZ0JBQWdCLFdBQVcsQ0FBQyxDQUFDO0FBQUEsUUFDaEQ7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQUVBLFVBQUksUUFBUSxTQUFTUyxPQUFNLE9BQU8sS0FBSztBQUNyQyxrQkFBVSxJQUFJLE9BQU9BLEtBQUk7QUFDekIsZ0JBQVEsUUFBUSxRQUFRO0FBQ3hCLGNBQU0sTUFBTSxNQUFNO0FBQ2xCLFlBQUksUUFBUSxHQUFHO0FBQ1gsa0JBQVEsVUFBVTtBQUFBLFFBQ3RCO0FBQ0EsWUFBSSxNQUFNLEdBQUc7QUFDVCxnQkFBTSxVQUFVO0FBQUEsUUFDcEI7QUFDQSxZQUFJLFNBQVM7QUFDYixZQUFJLFNBQVM7QUFDYixZQUFJLFFBQVEsY0FBY0EsS0FBSTtBQUM5QixpQkFBUyxJQUFJLEdBQUcsSUFBSSxNQUFNLFFBQVEsS0FBSztBQUNyQyxjQUFJLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLGNBQUksVUFBVSxJQUFJLE9BQU8sSUFBSTtBQUM3QixjQUFJLFVBQVUsU0FBUyxXQUFXLElBQUksSUFBSSxJQUFJO0FBQzFDLGdCQUFJLFNBQVMsV0FBVyxLQUFLO0FBQ3pCLHdCQUFVO0FBQUEsWUFDZCxPQUFPO0FBQ0g7QUFBQSxZQUNKO0FBQUEsVUFDSjtBQUNBLG9CQUFVO0FBQUEsUUFDWjtBQUNBLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRCxHQUFHLGNBQWM7QUFFakIsSUFBSSx3QkFBd0IsZUFBZTtBQUMzQyxJQUFNLGlCQUE4Qix3Q0FBd0IscUJBQXFCO0FBRWpGLElBQU0sYUFBYSxNQUFNO0FBRXhCLGFBQU87QUFBQSxJQUNSO0FBZ0ZBLElBQU0saUJBQWlCO0FBQUEsTUFDckIsTUFBTTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLE1BQ1QsT0FBTztBQUFBLE1BQ1AsT0FBTztBQUFBLElBQ1Q7QUFDQSxJQUFNLGtCQUFrQjtBQUFBLE1BQ3RCLEdBQUc7QUFBQSxNQUNILEdBQUc7QUFBQSxJQUNMO0FBQ0EsSUFBTUYsV0FBVSxtQkFBbUI7QUFDbkMsSUFBTUMsS0FBSSxDQUFDRSxJQUFHLGFBQWFILFdBQVVHLEtBQUk7QUFDekMsSUFBTSxhQUFhO0FBQUEsTUFDakIsT0FBT0YsR0FBRSxVQUFVLE1BQU07QUFBQSxNQUN6QixPQUFPQSxHQUFFLFVBQVUsTUFBTTtBQUFBLE1BQ3pCLE9BQU9BLEdBQUUsVUFBVSxRQUFRO0FBQUEsTUFDM0IsTUFBTUEsR0FBRSxVQUFVLFFBQVE7QUFBQSxNQUMxQixNQUFNQSxHQUFFLFVBQVUsR0FBRztBQUFBLE1BQ3JCLFNBQVNBLEdBQUUsVUFBVSxRQUFRO0FBQUEsTUFDN0IsT0FBT0EsR0FBRSxVQUFVLEdBQUc7QUFBQSxNQUN0QixPQUFPQSxHQUFFLFVBQVUsUUFBUTtBQUFBLE1BQzNCLE1BQU1BLEdBQUUsVUFBVSxNQUFNO0FBQUEsTUFDeEIsT0FBT0EsR0FBRSxVQUFVLEdBQUc7QUFBQSxNQUN0QixLQUFLO0FBQUEsSUFDUDtBQU9BLElBQU0sZ0JBQU4sY0FBNEIsY0FBYztBQUFBLE1BQ3hDLFlBQVksT0FBTztBQUNqQixlQUFPLE9BQU8sV0FBVyxLQUFLLEVBQUU7QUFBQSxVQUM5QixDQUFDLFNBQVMsT0FBTyxLQUFLLFFBQVEsU0FBUyxDQUFDTCxPQUFNLE9BQU8sS0FBS0EsRUFBQyxDQUFDLEVBQUUsUUFBUSxZQUFZLENBQUNELElBQUdDLE9BQU0sSUFBSSxPQUFPLEtBQUtBLEVBQUMsQ0FBQyxHQUFHO0FBQUEsUUFDbkgsRUFBRSxLQUFLLElBQUk7QUFBQSxNQUNiO0FBQUEsTUFDQSxXQUFXLFFBQVEsU0FBUyxNQUFNO0FBQ2hDLGNBQU0sWUFBWSxlQUFlLE9BQU8sSUFBSSxLQUFLLGdCQUFnQixPQUFPLEtBQUssS0FBSztBQUNsRixZQUFJLFNBQVM7QUFDWCxpQkFBTyxXQUFXLFNBQVM7QUFBQSxZQUN6QixPQUFPLE1BQU0sSUFBSSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUc7QUFBQSxVQUMvQztBQUFBLFFBQ0Y7QUFDQSxjQUFNLFFBQVEsT0FBTyxXQUFXLE9BQU8sSUFBSSxNQUFNLFdBQVcsV0FBVyxPQUFPLElBQUksSUFBSSxPQUFPLFFBQVEsT0FBTztBQUM1RyxlQUFPLFFBQVFDLFVBQVMsU0FBUyxFQUFFLEtBQUssSUFBSTtBQUFBLE1BQzlDO0FBQUEsTUFDQSxhQUFhLFFBQVEsTUFBTTtBQUN6QixjQUFNLENBQUMsU0FBUyxHQUFHLFVBQVUsSUFBSSxLQUFLLFdBQVcsT0FBTyxNQUFNLElBQUksRUFBRTtBQUFBLFVBQ2xFO0FBQUEsUUFDRjtBQUNBLFlBQUksT0FBTyxTQUFTLE9BQU87QUFDekIsaUJBQU87QUFBQSxZQUNMO0FBQUEsY0FDRSxXQUFXLFdBQVcsU0FBUyxJQUFJLE9BQU8sV0FBVyxLQUFLLElBQUksSUFBSTtBQUFBLFlBQ3BFO0FBQUEsWUFDQTtBQUFBLGNBQ0UsT0FBTyxPQUFPLFFBQVEsZ0JBQWdCLE9BQU8sS0FBSyxJQUFJO0FBQUEsY0FDdEQsT0FBTyxPQUFPO0FBQUEsWUFDaEI7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUNBLGNBQU0sT0FBTyxLQUFLLFdBQVcsT0FBTyxNQUFNLElBQUk7QUFDOUMsY0FBTSxjQUFjLFFBQVEsT0FBTyxLQUFLLElBQUk7QUFDNUMsY0FBTSxVQUFVLE9BQU8sU0FBUyxPQUFPLFFBQVE7QUFDL0MsY0FBTSxPQUFPLEtBQUssV0FBVyxRQUFRLFNBQVMsSUFBSTtBQUNsRCxjQUFNLE1BQU0sT0FBTyxNQUFNLE9BQU8sS0FBSyxPQUFPLEdBQUcsSUFBSTtBQUNuRCxZQUFJO0FBQ0osY0FBTSxPQUFPLEtBQUssY0FBYyxDQUFDLE1BQU0sZ0JBQWdCLE9BQU8sQ0FBQyxDQUFDO0FBQ2hFLGNBQU0sUUFBUSxLQUFLLGNBQWMsS0FBSyxVQUFVLENBQUMsS0FBSyxXQUFXLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDMUUsY0FBTSxTQUFTLEtBQUssV0FBVyxLQUFLLFlBQVksSUFBSSxJQUFJLFlBQVksS0FBSyxJQUFJO0FBQzdFLGVBQU8sUUFBUSxNQUFNLEtBQUssV0FBVyxNQUFNLEtBQUssT0FBTyxJQUFJLE9BQU8sS0FBSyxJQUFJLFNBQVMsUUFBUSxHQUFHLE9BQU8sS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLE1BQU0sTUFBTTtBQUNwSSxnQkFBUTtBQUFBLFVBQ04sV0FBVyxTQUFTLElBQUksT0FBTyxXQUFXLEtBQUssSUFBSSxJQUFJO0FBQUEsUUFDekQ7QUFDQSxZQUFJLE9BQU8sU0FBUyxTQUFTO0FBQzNCLGdCQUFNLE9BQU8sSUFBSSxNQUFNLFlBQVksT0FBTyxPQUFPO0FBQ2pELGtCQUFRLEtBQUssWUFBWSxLQUFLLFNBQVMsRUFBRTtBQUFBLFFBQzNDO0FBQ0EsZUFBTyxVQUFVLE9BQU8sT0FBTyxPQUFPO0FBQUEsTUFDeEM7QUFBQSxJQUNGO0FBc0NBLElBQU0sVUFBVUMsZUFBYztBQUFBO0FBQUE7OztBQ3puQjlCO0FBQ0E7QUFDQTtBQUVBOzs7QUNIQTtBQUVBLFNBQVMsUUFBUSxLQUFLO0FBQ3BCLE1BQUksTUFBTSxRQUFRLEdBQUcsR0FBRztBQUN0QixXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8sUUFBUSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUc7QUFDbkM7QUFDQSxTQUFTLGtCQUFrQixPQUFPLGFBQWEsSUFBSTtBQUNqRCxRQUFNLFdBQVcsQ0FBQztBQUNsQixhQUFXLFFBQVEsT0FBTztBQUN4QixlQUFXLENBQUMsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLEdBQUc7QUFDekMsZUFBUyxDQUFDLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxNQUFNO0FBQUEsSUFDekQ7QUFBQSxFQUNGO0FBQ0EsU0FBTyxNQUFNO0FBQUEsSUFDWCxDQUFDTSxPQUFNQSxHQUFFO0FBQUEsTUFDUCxDQUFDQyxJQUFHLE1BQU0sYUFBYUEsR0FBRSxNQUFNLElBQUksYUFBYSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFBQSxJQUN2RSxFQUFFLEtBQUssSUFBSTtBQUFBLEVBQ2IsRUFBRSxLQUFLLElBQUk7QUFDYjtBQUNBLFNBQVMsYUFBYSxPQUFPO0FBQzNCLFNBQU8sT0FBTyxVQUFVLGFBQWEsTUFBTSxJQUFJO0FBQ2pEO0FBQ0EsSUFBTSxXQUFOLGNBQXVCLE1BQU07QUFBQSxFQUMzQixZQUFZLFNBQVMsTUFBTTtBQUN6QixVQUFNLE9BQU87QUFDYixTQUFLLE9BQU87QUFDWixTQUFLLE9BQU87QUFBQSxFQUNkO0FBQ0Y7QUFFQSxJQUFNLGlCQUFpQjtBQUN2QixJQUFNLGdCQUFnQixDQUFDLEtBQUssS0FBSyxLQUFLLEdBQUc7QUFDekMsU0FBUyxZQUFZLE9BQU8sSUFBSTtBQUM5QixNQUFJLGVBQWUsS0FBSyxJQUFJLEdBQUc7QUFDN0IsV0FBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPLFNBQVMsS0FBSyxZQUFZO0FBQ25DO0FBQ0EsU0FBUyxZQUFZLEtBQUssWUFBWTtBQUNwQyxRQUFNLFlBQVksY0FBYztBQUNoQyxRQUFNLFFBQVEsQ0FBQztBQUNmLE1BQUksQ0FBQyxPQUFPLE9BQU8sUUFBUSxVQUFVO0FBQ25DLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxPQUFPO0FBQ1gsTUFBSTtBQUNKLE1BQUk7QUFDSixhQUFXLFFBQVEsS0FBSztBQUN0QixVQUFNLGFBQWEsVUFBVSxTQUFTLElBQUk7QUFDMUMsUUFBSSxlQUFlLE1BQU07QUFDdkIsWUFBTSxLQUFLLElBQUk7QUFDZixhQUFPO0FBQ1Asc0JBQWdCO0FBQ2hCO0FBQUEsSUFDRjtBQUNBLFVBQU0sVUFBVSxZQUFZLElBQUk7QUFDaEMsUUFBSSxxQkFBcUIsT0FBTztBQUM5QixVQUFJLGtCQUFrQixTQUFTLFlBQVksTUFBTTtBQUMvQyxjQUFNLEtBQUssSUFBSTtBQUNmLGVBQU87QUFDUCx3QkFBZ0I7QUFDaEI7QUFBQSxNQUNGO0FBQ0EsVUFBSSxrQkFBa0IsUUFBUSxZQUFZLFNBQVMsS0FBSyxTQUFTLEdBQUc7QUFDbEUsY0FBTSxXQUFXLEtBQUssR0FBRyxFQUFFO0FBQzNCLGNBQU0sS0FBSyxLQUFLLE1BQU0sR0FBRyxLQUFLLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsZUFBTyxXQUFXO0FBQ2xCLHdCQUFnQjtBQUNoQjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQ0EsWUFBUTtBQUNSLG9CQUFnQjtBQUNoQix1QkFBbUI7QUFBQSxFQUNyQjtBQUNBLFFBQU0sS0FBSyxJQUFJO0FBQ2YsU0FBTztBQUNUO0FBQ0EsU0FBUyxXQUFXLEtBQUs7QUFDdkIsU0FBTyxNQUFNLElBQUksQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJO0FBQ3JEO0FBQ0EsU0FBUyxXQUFXLEtBQUs7QUFDdkIsU0FBTyxNQUFNLElBQUksQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJO0FBQ3JEO0FBQ0EsU0FBUyxXQUFXLEtBQUssTUFBTTtBQUM3QixTQUFPLE9BQU8sTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQ0MsT0FBTSxXQUFXLE1BQU0sWUFBWUEsR0FBRSxZQUFZLElBQUlBLEVBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJO0FBQ3RJO0FBQ0EsU0FBUyxVQUFVLEtBQUssTUFBTTtBQUM1QixTQUFPLFdBQVcsV0FBVyxPQUFPLElBQUksSUFBSSxDQUFDO0FBQy9DO0FBQ0EsU0FBUyxVQUFVLEtBQUssUUFBUTtBQUM5QixTQUFPLE9BQU8sTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLFlBQVksR0FBRyxHQUFHLElBQUksQ0FBQ0EsT0FBTUEsR0FBRSxZQUFZLENBQUMsRUFBRSxLQUFLLFVBQVUsR0FBRyxJQUFJO0FBQy9HO0FBRUEsU0FBUyxNQUFNLEtBQUs7QUFDbEIsU0FBTyxPQUFPLFNBQVMsQ0FBQyxJQUFJLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUc7QUFDN0Q7QUFDQSxTQUFTLE1BQU0sS0FBSyxLQUFLLEtBQUssTUFBTTtBQUNsQyxNQUFJO0FBQ0osUUFBTSxNQUFNLElBQUksR0FBRztBQUNuQixRQUFNLE1BQU0sQ0FBQyxLQUFLLE9BQU8sUUFBUSxHQUFHLElBQUksT0FBTyxVQUFVLFFBQVEsT0FBTyxLQUFLLE9BQU8sR0FBRyxJQUFJLE9BQU8sUUFBUSxZQUFZLE1BQU0sQ0FBQyxLQUFLLFFBQVEsUUFBUSxHQUFHLElBQUksUUFBUSxVQUFVLFFBQVEsUUFBUSxXQUFXLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksTUFBTSxLQUFLLElBQUk7QUFDNVIsTUFBSSxHQUFHLElBQUksT0FBTyxTQUFTLE1BQU0sTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHO0FBQ25GO0FBQ0EsU0FBUyxhQUFhLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHO0FBQzFDLE1BQUk7QUFDSixNQUFJO0FBQ0osTUFBSTtBQUNKLE1BQUk7QUFDSixNQUFJO0FBQ0osUUFBTSxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDcEIsTUFBSSxJQUFJO0FBQ1IsTUFBSUMsS0FBSTtBQUNSLE1BQUksTUFBTTtBQUNWLFFBQU0sTUFBTSxLQUFLO0FBQ2pCLFFBQU0sUUFBUSxLQUFLLFVBQVU7QUFDN0IsUUFBTSxTQUFTLEtBQUssWUFBWTtBQUNoQyxRQUFNQyxZQUFXLEtBQUssWUFBWTtBQUNsQyxPQUFLLFFBQVEsS0FBSyxTQUFTLENBQUM7QUFDNUIsT0FBSyxTQUFTLE1BQU0sS0FBSyxNQUFNO0FBQy9CLE9BQUssVUFBVSxNQUFNLEtBQUssT0FBTztBQUNqQyxNQUFJLE9BQU87QUFDVCxTQUFLLEtBQUssS0FBSyxPQUFPO0FBQ3BCLFlBQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7QUFDekMsV0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztBQUMvQixTQUFDLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUM7QUFBQSxNQUNsRDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsT0FBSyxJQUFJLEtBQUssUUFBUSxRQUFRLE1BQU0sS0FBSztBQUN2QyxVQUFNLEtBQUssTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN0QyxTQUFLRCxLQUFJLElBQUksUUFBUUEsT0FBTSxLQUFLO0FBQzlCLFdBQUssUUFBUSxLQUFLLElBQUlBLEVBQUMsQ0FBQztBQUFBLElBQzFCO0FBQUEsRUFDRjtBQUNBLE9BQUssSUFBSSxLQUFLLE9BQU8sUUFBUSxNQUFNLEtBQUs7QUFDdEMsVUFBTSxLQUFLLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDckMsU0FBS0EsS0FBSSxJQUFJLFFBQVFBLE9BQU0sS0FBSztBQUM5QixXQUFLLE9BQU8sS0FBSyxJQUFJQSxFQUFDLENBQUM7QUFBQSxJQUN6QjtBQUFBLEVBQ0Y7QUFDQSxNQUFJQyxXQUFVO0FBQ1osU0FBSyxLQUFLLEtBQUssU0FBUztBQUN0QixhQUFPLE9BQU8sS0FBSyxRQUFRLENBQUM7QUFDNUIsWUFBTSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQztBQUN4QyxVQUFJLEtBQUssSUFBSSxNQUFNLFFBQVE7QUFDekIsYUFBSyxJQUFJLEVBQUUsS0FBSyxDQUFDO0FBQ2pCLGFBQUssSUFBSSxHQUFHLElBQUksSUFBSSxRQUFRLEtBQUs7QUFDL0IsZUFBSyxJQUFJLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUFBLFFBQ3hCO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsUUFBTSxPQUFPLFNBQVMsT0FBTyxLQUFLLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDakQsT0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLEtBQUs7QUFDeEIsVUFBTSxLQUFLLENBQUM7QUFDWixRQUFJLFFBQVEsTUFBTTtBQUNoQixVQUFJLElBQUksSUFBSSxFQUFFLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ3BDO0FBQUEsSUFDRjtBQUNBLFNBQUtELEtBQUksR0FBR0EsS0FBSSxJQUFJLFFBQVFBLE1BQUs7QUFDL0IsVUFBSSxJQUFJLFdBQVdBLEVBQUMsTUFBTSxJQUFJO0FBQzVCO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFDQSxRQUFJQSxPQUFNLEdBQUc7QUFDWCxVQUFJLEVBQUUsS0FBSyxHQUFHO0FBQUEsSUFDaEIsV0FBVyxJQUFJLFVBQVVBLElBQUdBLEtBQUksQ0FBQyxNQUFNLE9BQU87QUFDNUMsYUFBTyxJQUFJLE1BQU0sS0FBSyxJQUFJLEdBQUdBLEtBQUksQ0FBQyxDQUFDO0FBQ25DLFVBQUksVUFBVSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRztBQUNsQyxlQUFPLEtBQUssUUFBUSxHQUFHO0FBQUEsTUFDekI7QUFDQSxVQUFJLElBQUksSUFBSTtBQUFBLElBQ2QsT0FBTztBQUNMLFdBQUssTUFBTUEsS0FBSSxHQUFHLE1BQU0sSUFBSSxRQUFRLE9BQU87QUFDekMsWUFBSSxJQUFJLFdBQVcsR0FBRyxNQUFNLElBQUk7QUFDOUI7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUNBLGFBQU8sSUFBSSxVQUFVQSxJQUFHLEdBQUc7QUFDM0IsWUFBTSxJQUFJLE1BQU0sS0FBSyxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLE1BQU0sUUFBUSxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sTUFBTSxLQUFLLEVBQUUsQ0FBQztBQUMzRyxZQUFNQSxPQUFNLElBQUksQ0FBQyxJQUFJLElBQUk7QUFDekIsV0FBSyxNQUFNLEdBQUcsTUFBTSxJQUFJLFFBQVEsT0FBTztBQUNyQyxlQUFPLElBQUksR0FBRztBQUNkLFlBQUksVUFBVSxDQUFDLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRztBQUNsQyxpQkFBTyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxFQUFDLElBQUksSUFBSTtBQUFBLFFBQzFDO0FBQ0EsY0FBTSxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksVUFBVSxLQUFLLElBQUk7QUFBQSxNQUNwRDtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsTUFBSUMsV0FBVTtBQUNaLFNBQUssS0FBSyxLQUFLLFNBQVM7QUFDdEIsVUFBSSxJQUFJLENBQUMsTUFBTSxRQUFRO0FBQ3JCLFlBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQUEsTUFDekI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNBLE1BQUksT0FBTztBQUNULFNBQUssS0FBSyxLQUFLO0FBQ2IsWUFBTSxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDeEIsYUFBTyxJQUFJLFNBQVMsR0FBRztBQUNyQixZQUFJLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDO0FBQUEsTUFDMUI7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNBLFNBQU87QUFDVDtBQUVBLFNBQVMsVUFBVSxTQUFTLFNBQVM7QUFDbkMsUUFBTSxlQUFlO0FBQUEsSUFDbkIsU0FBUyxDQUFDO0FBQUEsSUFDVixRQUFRLENBQUM7QUFBQSxJQUNULE9BQU8sQ0FBQztBQUFBLElBQ1IsT0FBTyxDQUFDO0FBQUEsSUFDUixTQUFTLENBQUM7QUFBQSxFQUNaO0FBQ0EsUUFBTSxPQUFPLFlBQVksT0FBTztBQUNoQyxhQUFXLE9BQU8sTUFBTTtBQUN0QixRQUFJLElBQUksU0FBUyxjQUFjO0FBQzdCO0FBQUEsSUFDRjtBQUNBLFFBQUksSUFBSSxTQUFTLFVBQVU7QUFDekIsbUJBQWEsT0FBTyxLQUFLLElBQUksSUFBSTtBQUFBLElBQ25DLFdBQVcsSUFBSSxTQUFTLFdBQVc7QUFDakMsbUJBQWEsUUFBUSxLQUFLLElBQUksSUFBSTtBQUFBLElBQ3BDO0FBQ0EsUUFBSSxJQUFJLFlBQVksUUFBUTtBQUMxQixtQkFBYSxRQUFRLElBQUksSUFBSSxJQUFJLElBQUk7QUFBQSxJQUN2QztBQUNBLFFBQUksSUFBSSxPQUFPO0FBQ2IsbUJBQWEsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJO0FBQUEsSUFDckM7QUFBQSxFQUNGO0FBQ0EsUUFBTSxTQUFTLGFBQWEsU0FBUyxZQUFZO0FBQ2pELFFBQU0sQ0FBQyxHQUFHLG1CQUFtQixJQUFJLE9BQU87QUFDeEMsUUFBTSxrQkFBa0IsSUFBSSxNQUFNLFFBQVE7QUFBQSxJQUN4QyxJQUFJLFFBQVEsTUFBTTtBQUNoQixhQUFPLE9BQU8sSUFBSSxLQUFLLE9BQU8sVUFBVSxJQUFJLENBQUMsS0FBSyxPQUFPLFVBQVUsSUFBSSxDQUFDO0FBQUEsSUFDMUU7QUFBQSxFQUNGLENBQUM7QUFDRCxhQUFXLENBQUMsRUFBRSxHQUFHLEtBQUssS0FBSyxRQUFRLEdBQUc7QUFDcEMsUUFBSSxJQUFJLFNBQVMsY0FBYztBQUM3QixZQUFNLHlCQUF5QixvQkFBb0IsTUFBTTtBQUN6RCxVQUFJLDJCQUEyQixRQUFRO0FBQ3JDLHdCQUFnQixJQUFJLElBQUksSUFBSTtBQUFBLE1BQzlCLFdBQVcsSUFBSSxZQUFZLFVBQVUsSUFBSSxhQUFhLE9BQU87QUFDM0QsY0FBTSxJQUFJO0FBQUEsVUFDUix5Q0FBeUMsSUFBSSxLQUFLLFlBQVksQ0FBQztBQUFBLFVBQy9EO0FBQUEsUUFDRjtBQUFBLE1BQ0YsT0FBTztBQUNMLHdCQUFnQixJQUFJLElBQUksSUFBSSxJQUFJO0FBQUEsTUFDbEM7QUFBQSxJQUNGLFdBQVcsSUFBSSxZQUFZLGdCQUFnQixJQUFJLElBQUksTUFBTSxRQUFRO0FBQy9ELFlBQU0sSUFBSSxTQUFTLGdDQUFnQyxJQUFJLElBQUksSUFBSSxNQUFNO0FBQUEsSUFDdkU7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUO0FBQ0EsU0FBUyxZQUFZLFNBQVM7QUFDNUIsUUFBTSxPQUFPLENBQUM7QUFDZCxhQUFXLENBQUMsTUFBTSxNQUFNLEtBQUssT0FBTyxRQUFRLFdBQVcsQ0FBQyxDQUFDLEdBQUc7QUFDMUQsU0FBSyxLQUFLO0FBQUEsTUFDUixHQUFHO0FBQUEsTUFDSDtBQUFBLE1BQ0EsT0FBTyxRQUFRLE9BQU8sS0FBSztBQUFBLElBQzdCLENBQUM7QUFBQSxFQUNIO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxjQUFjLEtBQUs7QUFDMUIsU0FBTztBQUNUO0FBQ0EsZUFBZSxXQUFXLEtBQUssTUFBTTtBQUNuQyxRQUFNLFVBQVUsTUFBTSxhQUFhLElBQUksUUFBUSxDQUFDLENBQUM7QUFDakQsUUFBTSxhQUFhLFVBQVUsS0FBSyxTQUFTLE9BQU87QUFDbEQsUUFBTSxVQUFVO0FBQUEsSUFDZCxTQUFTLEtBQUs7QUFBQSxJQUNkLE1BQU07QUFBQSxJQUNOLE1BQU0sS0FBSztBQUFBLElBQ1g7QUFBQSxFQUNGO0FBQ0EsTUFBSSxPQUFPLElBQUksVUFBVSxZQUFZO0FBQ25DLFVBQU0sSUFBSSxNQUFNLE9BQU87QUFBQSxFQUN6QjtBQUNBLE1BQUk7QUFDSixNQUFJO0FBQ0YsVUFBTSxjQUFjLE1BQU0sYUFBYSxJQUFJLFdBQVc7QUFDdEQsUUFBSSxlQUFlLE9BQU8sS0FBSyxXQUFXLEVBQUUsU0FBUyxHQUFHO0FBQ3RELFlBQU0scUJBQXFCLEtBQUssUUFBUTtBQUFBLFFBQ3RDLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxHQUFHO0FBQUEsTUFDOUI7QUFDQSxZQUFNLGlCQUFpQixLQUFLLFFBQVEsa0JBQWtCO0FBQ3RELFVBQUksZ0JBQWdCO0FBQ2xCLFlBQUksQ0FBQyxZQUFZLGNBQWMsR0FBRztBQUNoQyxnQkFBTSxJQUFJO0FBQUEsWUFDUixxQkFBcUIsY0FBYztBQUFBLFlBQ25DO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFDQSxjQUFNLGFBQWEsTUFBTSxhQUFhLFlBQVksY0FBYyxDQUFDO0FBQ2pFLFlBQUksWUFBWTtBQUNkLGdCQUFNLFdBQVcsWUFBWTtBQUFBLFlBQzNCLFNBQVMsS0FBSyxRQUFRLE1BQU0scUJBQXFCLENBQUM7QUFBQSxVQUNwRCxDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0YsV0FBVyxDQUFDLElBQUksS0FBSztBQUNuQixjQUFNLElBQUksU0FBUyx5QkFBeUIsY0FBYztBQUFBLE1BQzVEO0FBQUEsSUFDRjtBQUNBLFFBQUksT0FBTyxJQUFJLFFBQVEsWUFBWTtBQUNqQyxlQUFTLE1BQU0sSUFBSSxJQUFJLE9BQU87QUFBQSxJQUNoQztBQUFBLEVBQ0YsVUFBRTtBQUNBLFFBQUksT0FBTyxJQUFJLFlBQVksWUFBWTtBQUNyQyxZQUFNLElBQUksUUFBUSxPQUFPO0FBQUEsSUFDM0I7QUFBQSxFQUNGO0FBQ0EsU0FBTyxFQUFFLE9BQU87QUFDbEI7QUFDQSxlQUFlLGtCQUFrQixLQUFLLFNBQVMsUUFBUTtBQUNyRCxRQUFNLGNBQWMsTUFBTSxhQUFhLElBQUksV0FBVztBQUN0RCxNQUFJLGVBQWUsT0FBTyxLQUFLLFdBQVcsRUFBRSxTQUFTLEdBQUc7QUFDdEQsVUFBTSxxQkFBcUIsUUFBUSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksV0FBVyxHQUFHLENBQUM7QUFDMUUsVUFBTSxpQkFBaUIsUUFBUSxrQkFBa0I7QUFDakQsVUFBTSxhQUFhLE1BQU0sYUFBYSxZQUFZLGNBQWMsQ0FBQztBQUNqRSxRQUFJLFlBQVk7QUFDZCxhQUFPO0FBQUEsUUFDTDtBQUFBLFFBQ0EsUUFBUSxNQUFNLHFCQUFxQixDQUFDO0FBQUEsUUFDcEM7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDQSxTQUFPLENBQUMsS0FBSyxNQUFNO0FBQ3JCO0FBRUEsZUFBZSxVQUFVLEtBQUssUUFBUTtBQUNwQyxNQUFJO0FBQ0YsWUFBUSxJQUFJLE1BQU0sWUFBWSxLQUFLLE1BQU0sSUFBSSxJQUFJO0FBQUEsRUFDbkQsU0FBUyxPQUFPO0FBQ2QsWUFBUSxNQUFNLEtBQUs7QUFBQSxFQUNyQjtBQUNGO0FBQ0EsZUFBZSxZQUFZLEtBQUssUUFBUTtBQUN0QyxRQUFNLFVBQVUsTUFBTSxhQUFhLElBQUksUUFBUSxDQUFDLENBQUM7QUFDakQsUUFBTSxVQUFVLFlBQVksTUFBTSxhQUFhLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztBQUM5RCxRQUFNLGFBQWEsTUFBTSxhQUFhLFFBQVEsUUFBUSxDQUFDLENBQUM7QUFDeEQsUUFBTSxjQUFjLEdBQUcsV0FBVyxPQUFPLEdBQUcsV0FBVyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsUUFBUSxRQUFRLEtBQUssQ0FBQztBQUN2RyxRQUFNLFdBQVcsQ0FBQztBQUNsQixRQUFNLFdBQVcsQ0FBQztBQUNsQixRQUFNLGdCQUFnQixDQUFDO0FBQ3ZCLFFBQU0sWUFBWSxDQUFDO0FBQ25CLGFBQVcsT0FBTyxTQUFTO0FBQ3pCLFFBQUksSUFBSSxTQUFTLGNBQWM7QUFDN0IsWUFBTSxPQUFPLElBQUksS0FBSyxZQUFZO0FBQ2xDLFlBQU0sYUFBYSxJQUFJLGFBQWEsU0FBUyxJQUFJLFlBQVk7QUFDN0QsWUFBTSxjQUFjLElBQUksVUFBVSxLQUFLLElBQUksT0FBTyxNQUFNO0FBQ3hELGVBQVMsS0FBSztBQUFBLFFBQ1osTUFBTSxPQUFPLGNBQWM7QUFBQSxRQUMzQixJQUFJLGVBQWU7QUFBQSxRQUNuQixJQUFJLFlBQVksSUFBSSxJQUFJLFNBQVMsTUFBTTtBQUFBLE1BQ3pDLENBQUM7QUFDRCxnQkFBVSxLQUFLLGFBQWEsSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLEdBQUc7QUFBQSxJQUN2RCxPQUFPO0FBQ0wsWUFBTSxhQUFhLElBQUksYUFBYSxRQUFRLElBQUksWUFBWTtBQUM1RCxZQUFNLFVBQVUsSUFBSSxTQUFTLGFBQWEsSUFBSSxZQUFZLE9BQU87QUFBQSxRQUMvRCxJQUFJLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sUUFBUSxDQUFDLEVBQUU7QUFBQSxRQUMzQyxRQUFRLElBQUksSUFBSTtBQUFBLE1BQ2xCLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxFQUFFLEVBQUU7QUFBQSxRQUN6RTtBQUFBLE1BQ0YsTUFBTSxJQUFJLFNBQVMsYUFBYSxJQUFJLGFBQWEsSUFBSSxXQUFXLElBQUksSUFBSSxZQUFZLElBQUksSUFBSSxTQUFTLE1BQU0sSUFBSSxJQUFJLFdBQVcsRUFBRSxHQUFHLEtBQUs7QUFDeEksZUFBUyxLQUFLO0FBQUEsUUFDWixNQUFNLFVBQVUsYUFBYSxnQkFBZ0IsTUFBTTtBQUFBLFFBQ25ELElBQUksZUFBZTtBQUFBLE1BQ3JCLENBQUM7QUFDRCxVQUFJLFlBQVk7QUFDZCxrQkFBVSxLQUFLLE1BQU07QUFBQSxNQUN2QjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsTUFBSSxJQUFJLGFBQWE7QUFDbkIsVUFBTSxlQUFlLENBQUM7QUFDdEIsVUFBTSxjQUFjLE1BQU0sYUFBYSxJQUFJLFdBQVc7QUFDdEQsZUFBVyxDQUFDLE1BQU0sR0FBRyxLQUFLLE9BQU8sUUFBUSxXQUFXLEdBQUc7QUFDckQsWUFBTSxTQUFTLE1BQU0sYUFBYSxHQUFHO0FBQ3JDLFlBQU0sT0FBTyxNQUFNLGFBQWEsUUFBUSxJQUFJO0FBQzVDLG9CQUFjLEtBQUssQ0FBQyxLQUFLLElBQUksTUFBTSxNQUFNLGVBQWUsRUFBRSxDQUFDO0FBQzNELG1CQUFhLEtBQUssSUFBSTtBQUFBLElBQ3hCO0FBQ0EsY0FBVSxLQUFLLGFBQWEsS0FBSyxHQUFHLENBQUM7QUFBQSxFQUN2QztBQUNBLFFBQU0sYUFBYSxDQUFDO0FBQ3BCLFFBQU0sVUFBVSxRQUFRLFdBQVcsV0FBVztBQUM5QyxhQUFXO0FBQUEsSUFDVCxPQUFPO0FBQUEsTUFDTCxHQUFHLFFBQVEsV0FBVyxLQUFLLGVBQWUsVUFBVSxLQUFLLE9BQU8sS0FBSyxHQUFHO0FBQUEsSUFDMUU7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUNBLFFBQU0sYUFBYSxTQUFTLFNBQVMsS0FBSyxTQUFTLFNBQVM7QUFDNUQsYUFBVztBQUFBLElBQ1QsR0FBRyxPQUFPLFVBQVUsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE1BQU0sV0FBVyxHQUFHLGFBQWEsZUFBZSxFQUFFLElBQUksVUFBVSxLQUFLLEdBQUcsQ0FBQztBQUFBLElBQ2xIO0FBQUEsRUFDRjtBQUNBLE1BQUksU0FBUyxTQUFTLEdBQUc7QUFDdkIsZUFBVyxLQUFLLE9BQU8sVUFBVSxPQUFPLEtBQUssV0FBVyxDQUFDLEdBQUcsRUFBRTtBQUM5RCxlQUFXLEtBQUssa0JBQWtCLFVBQVUsSUFBSSxDQUFDO0FBQ2pELGVBQVcsS0FBSyxFQUFFO0FBQUEsRUFDcEI7QUFDQSxNQUFJLFNBQVMsU0FBUyxHQUFHO0FBQ3ZCLGVBQVcsS0FBSyxPQUFPLFVBQVUsT0FBTyxLQUFLLFNBQVMsQ0FBQyxHQUFHLEVBQUU7QUFDNUQsZUFBVyxLQUFLLGtCQUFrQixVQUFVLElBQUksQ0FBQztBQUNqRCxlQUFXLEtBQUssRUFBRTtBQUFBLEVBQ3BCO0FBQ0EsTUFBSSxjQUFjLFNBQVMsR0FBRztBQUM1QixlQUFXLEtBQUssT0FBTyxVQUFVLE9BQU8sS0FBSyxVQUFVLENBQUMsR0FBRyxFQUFFO0FBQzdELGVBQVcsS0FBSyxrQkFBa0IsZUFBZSxJQUFJLENBQUM7QUFDdEQsZUFBVztBQUFBLE1BQ1Q7QUFBQSxNQUNBLFNBQVMsV0FBVztBQUFBLElBQ3RCO0FBQUEsRUFDRjtBQUNBLFNBQU8sV0FBVyxPQUFPLENBQUNKLE9BQU0sT0FBT0EsT0FBTSxRQUFRLEVBQUUsS0FBSyxJQUFJO0FBQ2xFO0FBRUEsZUFBZSxRQUFRLEtBQUssT0FBTyxDQUFDLEdBQUc7QUFDckMsUUFBTSxVQUFVLEtBQUssV0FBVyxRQUFRLEtBQUssTUFBTSxDQUFDO0FBQ3BELFFBQU0sY0FBYyxLQUFLLGFBQWE7QUFDdEMsTUFBSTtBQUNGLFFBQUksUUFBUSxTQUFTLFFBQVEsS0FBSyxRQUFRLFNBQVMsSUFBSSxHQUFHO0FBQ3hELFlBQU0sWUFBWSxHQUFHLE1BQU0sa0JBQWtCLEtBQUssT0FBTyxDQUFDO0FBQzFELGNBQVEsS0FBSyxDQUFDO0FBQUEsSUFDaEIsV0FBVyxRQUFRLFdBQVcsS0FBSyxRQUFRLENBQUMsTUFBTSxhQUFhO0FBQzdELFlBQU0sT0FBTyxPQUFPLElBQUksU0FBUyxhQUFhLE1BQU0sSUFBSSxLQUFLLElBQUksTUFBTSxJQUFJO0FBQzNFLFVBQUksQ0FBQyxNQUFNLFNBQVM7QUFDbEIsY0FBTSxJQUFJLFNBQVMsd0JBQXdCLGNBQWM7QUFBQSxNQUMzRDtBQUNBLGNBQVEsSUFBSSxLQUFLLE9BQU87QUFBQSxJQUMxQixPQUFPO0FBQ0wsWUFBTSxXQUFXLEtBQUssRUFBRSxRQUFRLENBQUM7QUFBQSxJQUNuQztBQUFBLEVBQ0YsU0FBUyxPQUFPO0FBQ2QsVUFBTSxhQUFhLGlCQUFpQjtBQUNwQyxRQUFJLENBQUMsWUFBWTtBQUNmLGNBQVEsTUFBTSxPQUFPLElBQUk7QUFBQSxJQUMzQjtBQUNBLFFBQUksWUFBWTtBQUNkLFlBQU0sWUFBWSxHQUFHLE1BQU0sa0JBQWtCLEtBQUssT0FBTyxDQUFDO0FBQUEsSUFDNUQ7QUFDQSxZQUFRLE1BQU0sTUFBTSxPQUFPO0FBQzNCLFlBQVEsS0FBSyxDQUFDO0FBQUEsRUFDaEI7QUFDRjs7O0FDeGNBLE9BQU8sWUFBWTtBQUNuQixPQUFPLFVBQVU7QUFDakIsT0FBTyxhQUFhO0FBQ3BCLFNBQVMsa0JBQWtCOzs7QUNKM0IsSUFBTSxXQUFXLE9BQU8sT0FBTztBQUFBLEVBQzdCLGVBQWU7QUFBQSxFQUNmLGFBQWE7QUFBQSxFQUNiLHNCQUFzQjtBQUFBLEVBQ3RCLDJCQUEyQjtBQUFBLEVBQzNCLGtCQUFrQjtBQUFBLEVBQ2xCLGlCQUFpQjtBQUFBLEVBQ2pCLGVBQWU7QUFBQSxFQUNmLGFBQWE7QUFBQSxFQUNiLGVBQWU7QUFBQSxFQUNmLFVBQVU7QUFDWixDQUFDO0FBQ0QsU0FBUyxXQUFXLFFBQVEsU0FBUztBQUNuQyxNQUFJLFNBQVM7QUFDWCxjQUFVLEVBQUUsR0FBRyxVQUFVLEdBQUcsUUFBUTtBQUFBLEVBQ3RDLE9BQU87QUFDTCxjQUFVO0FBQUEsRUFDWjtBQUNBLFFBQU0sU0FBUyxhQUFhLE9BQU87QUFDbkMsU0FBTyxTQUFTLE1BQU07QUFDdEIsU0FBTyxPQUFPLFNBQVM7QUFDekI7QUFDQSxJQUFNLHdCQUF3QixPQUFPLE9BQU87QUFBQSxFQUMxQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsQ0FBQztBQUNELFNBQVMsYUFBYSxTQUFTO0FBQzdCLE1BQUksT0FBTztBQUNYLE1BQUksVUFBMEIsb0JBQUksSUFBSTtBQUN0QyxRQUFNLFFBQVEsQ0FBQyxRQUFRO0FBQ3JCLFlBQVE7QUFBQSxFQUNWO0FBQ0EsU0FBTztBQUFBLElBQ0wsV0FBVztBQUNULGFBQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxhQUFhO0FBQ1gsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLFNBQVMsT0FBTztBQUNkLFVBQUksUUFBUSxVQUFVO0FBQ3BCLGdCQUFRLFFBQVEsU0FBUyxLQUFLO0FBQUEsTUFDaEM7QUFDQSxZQUFNLE9BQU8sVUFBVSxPQUFPLFNBQVMsT0FBTztBQUM5QyxhQUFPLEtBQUssSUFBSSxFQUFFLEtBQUs7QUFBQSxJQUN6QjtBQUFBLElBQ0EsT0FBTyxRQUFRO0FBQ2IsVUFBSSxVQUFVLE9BQU8sT0FBTyxXQUFXLFlBQVk7QUFDakQsZUFBTyxLQUFLLE9BQU8sT0FBTyxPQUFPLENBQUM7QUFBQSxNQUNwQztBQUNBLFlBQU0sWUFBWSxPQUFPLFVBQVUsU0FBUyxLQUFLLE1BQU07QUFDdkQsVUFBSSxVQUFVO0FBQ2QsWUFBTSxlQUFlLFVBQVU7QUFDL0IsVUFBSSxlQUFlLElBQUk7QUFDckIsa0JBQVUsY0FBYyxZQUFZO0FBQUEsTUFDdEMsT0FBTztBQUNMLGtCQUFVLFVBQVUsTUFBTSxHQUFHLGVBQWUsQ0FBQztBQUFBLE1BQy9DO0FBQ0EsZ0JBQVUsUUFBUSxZQUFZO0FBQzlCLFVBQUksZUFBZTtBQUNuQixXQUFLLGVBQWUsUUFBUSxJQUFJLE1BQU0sT0FBTyxRQUFRO0FBQ25ELGdCQUFRLElBQUksUUFBUSxRQUFRLElBQUk7QUFBQSxNQUNsQyxPQUFPO0FBQ0wsZUFBTyxLQUFLLFNBQVMsZUFBZSxlQUFlLEdBQUc7QUFBQSxNQUN4RDtBQUNBLFVBQUksT0FBTyxXQUFXLGVBQWUsT0FBTyxZQUFZLE9BQU8sU0FBUyxNQUFNLEdBQUc7QUFDL0UsY0FBTSxTQUFTO0FBQ2YsZUFBTyxNQUFNLE9BQU8sU0FBUyxNQUFNLENBQUM7QUFBQSxNQUN0QztBQUNBLFVBQUksWUFBWSxZQUFZLFlBQVksY0FBYyxZQUFZLGlCQUFpQjtBQUNqRixZQUFJLEtBQUssT0FBTyxHQUFHO0FBQ2pCLGVBQUssT0FBTyxFQUFFLE1BQU07QUFBQSxRQUN0QixXQUFXLENBQUMsUUFBUSxlQUFlO0FBQ2pDLGVBQUssT0FBTyxRQUFRLE9BQU87QUFBQSxRQUM3QjtBQUFBLE1BQ0YsT0FBTztBQUNMLFlBQUksT0FBTyxPQUFPLEtBQUssTUFBTTtBQUM3QixZQUFJLFFBQVEsa0JBQWtCO0FBQzVCLGlCQUFPLEtBQUssS0FBSztBQUFBLFFBQ25CO0FBQ0EsWUFBSSxZQUFZLENBQUM7QUFDakIsWUFBSSxRQUFRLGdCQUFnQixTQUFTLENBQUMsaUJBQWlCLE1BQU0sR0FBRztBQUM5RCxzQkFBWTtBQUFBLFFBQ2Q7QUFDQSxZQUFJLFFBQVEsYUFBYTtBQUN2QixpQkFBTyxLQUFLLE9BQU8sQ0FBQyxRQUFRO0FBQzFCLG1CQUFPLENBQUMsUUFBUSxZQUFZLEdBQUc7QUFBQSxVQUNqQyxDQUFDO0FBQ0Qsc0JBQVksVUFBVSxPQUFPLENBQUMsUUFBUTtBQUNwQyxtQkFBTyxDQUFDLFFBQVEsWUFBWSxHQUFHO0FBQUEsVUFDakMsQ0FBQztBQUFBLFFBQ0g7QUFDQSxjQUFNLGFBQWEsS0FBSyxTQUFTLFVBQVUsVUFBVSxHQUFHO0FBQ3hELGNBQU0saUJBQWlCLENBQUMsUUFBUTtBQUM5QixlQUFLLFNBQVMsR0FBRztBQUNqQixnQkFBTSxHQUFHO0FBQ1QsY0FBSSxDQUFDLFFBQVEsZUFBZTtBQUMxQixpQkFBSyxTQUFTLE9BQU8sR0FBRyxDQUFDO0FBQUEsVUFDM0I7QUFDQSxnQkFBTSxHQUFHO0FBQUEsUUFDWDtBQUNBLG1CQUFXLE9BQU8sTUFBTTtBQUN0Qix5QkFBZSxHQUFHO0FBQUEsUUFDcEI7QUFDQSxtQkFBVyxPQUFPLFdBQVc7QUFDM0IseUJBQWUsR0FBRztBQUFBLFFBQ3BCO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLE1BQU0sS0FBSyxXQUFXO0FBQ3BCLGtCQUFZLGNBQWMsU0FBUyxRQUFRLG9CQUFvQixRQUFRO0FBQ3ZFLFlBQU0sV0FBVyxJQUFJLFNBQVMsR0FBRztBQUNqQyxVQUFJLENBQUMsYUFBYSxJQUFJLFVBQVUsR0FBRztBQUNqQyxtQkFBVyxTQUFTLEtBQUs7QUFDdkIsZUFBSyxTQUFTLEtBQUs7QUFBQSxRQUNyQjtBQUNBO0FBQUEsTUFDRjtBQUNBLFlBQU0sbUJBQW1DLG9CQUFJLElBQUk7QUFDakQsWUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVU7QUFDakMsY0FBTSxTQUFTLGFBQWEsT0FBTztBQUNuQyxlQUFPLFNBQVMsS0FBSztBQUNyQixtQkFBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sV0FBVyxHQUFHO0FBQzlDLDJCQUFpQixJQUFJLEtBQUssS0FBSztBQUFBLFFBQ2pDO0FBQ0EsZUFBTyxPQUFPLFNBQVM7QUFBQSxNQUN6QixDQUFDO0FBQ0QsZ0JBQVU7QUFDVixjQUFRLEtBQUs7QUFDYixhQUFPLEtBQUssTUFBTSxTQUFTLEtBQUs7QUFBQSxJQUNsQztBQUFBLElBQ0EsS0FBSyxNQUFNO0FBQ1QsYUFBTyxNQUFNLFVBQVUsS0FBSyxPQUFPLENBQUM7QUFBQSxJQUN0QztBQUFBLElBQ0EsT0FBTyxLQUFLO0FBQ1YsYUFBTyxNQUFNLFlBQVksSUFBSSxTQUFTLENBQUM7QUFBQSxJQUN6QztBQUFBLElBQ0EsT0FBTyxPQUFPLE1BQU07QUFDbEIsWUFBTSxJQUFJO0FBQ1YsVUFBSSxDQUFDLE9BQU87QUFDVjtBQUFBLE1BQ0Y7QUFDQSxZQUFNLEdBQUc7QUFDVCxVQUFJLFNBQVMsT0FBTyxNQUFNLFlBQVksWUFBWTtBQUNoRCxlQUFPLEtBQUs7QUFBQSxVQUNWLE1BQU0sS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUFBLFVBQzFCO0FBQUE7QUFBQSxRQUVGO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLE1BQU0sS0FBSztBQUNULGFBQU8sTUFBTSxXQUFXLElBQUksU0FBUyxDQUFDO0FBQUEsSUFDeEM7QUFBQSxJQUNBLFFBQVEsTUFBTTtBQUNaLGFBQU8sTUFBTSxVQUFVLElBQUk7QUFBQSxJQUM3QjtBQUFBLElBQ0EsT0FBTyxRQUFRO0FBQ2IsWUFBTSxZQUFZLE9BQU8sU0FBUyxHQUFHO0FBQ3JDLFlBQU0sTUFBTTtBQUFBLElBQ2Q7QUFBQSxJQUNBLFNBQVMsSUFBSTtBQUNYLFlBQU0sS0FBSztBQUNYLFVBQUksaUJBQWlCLEVBQUUsR0FBRztBQUN4QixhQUFLLFNBQVMsVUFBVTtBQUFBLE1BQzFCLE9BQU87QUFDTCxhQUFLLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFBQSxNQUM3QjtBQUNBLFVBQUksUUFBUSx5QkFBeUIsT0FBTztBQUMxQyxhQUFLLFNBQVMsbUJBQW1CLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFBQSxNQUNsRDtBQUNBLFVBQUksUUFBUSwyQkFBMkI7QUFDckMsYUFBSyxPQUFPLEVBQUU7QUFBQSxNQUNoQjtBQUFBLElBQ0Y7QUFBQSxJQUNBLE9BQU8sUUFBUTtBQUNiLGFBQU8sTUFBTSxZQUFZLE1BQU07QUFBQSxJQUNqQztBQUFBLElBQ0EsSUFBSSxLQUFLO0FBQ1AsYUFBTyxNQUFNLFNBQVMsSUFBSSxTQUFTLENBQUM7QUFBQSxJQUN0QztBQUFBLElBQ0EsT0FBTztBQUNMLGFBQU8sTUFBTSxNQUFNO0FBQUEsSUFDckI7QUFBQSxJQUNBLFlBQVk7QUFDVixhQUFPLE1BQU0sV0FBVztBQUFBLElBQzFCO0FBQUEsSUFDQSxPQUFPSyxRQUFPO0FBQ1osYUFBTyxNQUFNLFdBQVdBLE9BQU0sU0FBUyxDQUFDO0FBQUEsSUFDMUM7QUFBQSxJQUNBLFdBQVcsS0FBSztBQUNkLFlBQU0sYUFBYTtBQUNuQixhQUFPLEtBQUssU0FBUyxNQUFNLFVBQVUsTUFBTSxLQUFLLEdBQUcsQ0FBQztBQUFBLElBQ3REO0FBQUEsSUFDQSxrQkFBa0IsS0FBSztBQUNyQixZQUFNLG9CQUFvQjtBQUMxQixhQUFPLEtBQUssU0FBUyxNQUFNLFVBQVUsTUFBTSxLQUFLLEdBQUcsQ0FBQztBQUFBLElBQ3REO0FBQUEsSUFDQSxVQUFVLEtBQUs7QUFDYixZQUFNLFlBQVk7QUFDbEIsYUFBTyxLQUFLLFNBQVMsTUFBTSxVQUFVLE1BQU0sS0FBSyxHQUFHLENBQUM7QUFBQSxJQUN0RDtBQUFBLElBQ0EsWUFBWSxLQUFLO0FBQ2YsWUFBTSxjQUFjO0FBQ3BCLGFBQU8sS0FBSyxTQUFTLE1BQU0sVUFBVSxNQUFNLEtBQUssR0FBRyxDQUFDO0FBQUEsSUFDdEQ7QUFBQSxJQUNBLFdBQVcsS0FBSztBQUNkLFlBQU0sYUFBYTtBQUNuQixhQUFPLEtBQUssU0FBUyxNQUFNLFVBQVUsTUFBTSxLQUFLLEdBQUcsQ0FBQztBQUFBLElBQ3REO0FBQUEsSUFDQSxZQUFZLEtBQUs7QUFDZixZQUFNLGNBQWM7QUFDcEIsYUFBTyxLQUFLLFNBQVMsTUFBTSxVQUFVLE1BQU0sS0FBSyxHQUFHLENBQUM7QUFBQSxJQUN0RDtBQUFBLElBQ0EsV0FBVyxLQUFLO0FBQ2QsWUFBTSxhQUFhO0FBQ25CLGFBQU8sS0FBSyxTQUFTLE1BQU0sVUFBVSxNQUFNLEtBQUssR0FBRyxDQUFDO0FBQUEsSUFDdEQ7QUFBQSxJQUNBLGFBQWEsS0FBSztBQUNoQixZQUFNLGVBQWU7QUFDckIsYUFBTyxLQUFLLFNBQVMsTUFBTSxVQUFVLE1BQU0sS0FBSyxHQUFHLENBQUM7QUFBQSxJQUN0RDtBQUFBLElBQ0EsYUFBYSxLQUFLO0FBQ2hCLFlBQU0sZUFBZTtBQUNyQixhQUFPLEtBQUssU0FBUyxNQUFNLFVBQVUsTUFBTSxLQUFLLEdBQUcsQ0FBQztBQUFBLElBQ3REO0FBQUEsSUFDQSxZQUFZLEtBQUs7QUFDZixZQUFNLGNBQWM7QUFDcEIsYUFBTyxLQUFLLFNBQVMsSUFBSSxXQUFXLEdBQUcsQ0FBQztBQUFBLElBQzFDO0FBQUEsSUFDQSxJQUFJLEtBQUs7QUFDUCxhQUFPLE1BQU0sU0FBUyxJQUFJLFNBQVMsQ0FBQztBQUFBLElBQ3RDO0FBQUEsSUFDQSxJQUFJLEtBQUs7QUFDUCxZQUFNLE1BQU07QUFDWixZQUFNLE1BQU0sQ0FBQyxHQUFHLEdBQUc7QUFDbkIsYUFBTyxLQUFLLE1BQU0sS0FBSyxRQUFRLGtCQUFrQixLQUFLO0FBQUEsSUFDeEQ7QUFBQSxJQUNBLElBQUksS0FBSztBQUNQLFlBQU0sTUFBTTtBQUNaLFlBQU0sTUFBTSxDQUFDLEdBQUcsR0FBRztBQUNuQixhQUFPLEtBQUssTUFBTSxLQUFLLFFBQVEsa0JBQWtCLEtBQUs7QUFBQSxJQUN4RDtBQUFBLElBQ0EsS0FBSyxNQUFNO0FBQ1QsWUFBTSxPQUFPO0FBQ2IsYUFBTyxLQUFLLFNBQVMsQ0FBQyxLQUFLLE1BQU0sS0FBSyxNQUFNLEtBQUssTUFBTSxLQUFLLFdBQVcsQ0FBQztBQUFBLElBQzFFO0FBQUEsSUFDQSxPQUFPO0FBQ0wsVUFBSSxRQUFRLGVBQWU7QUFDekIsZUFBTyxNQUFNLFFBQVE7QUFBQSxNQUN2QjtBQUNBLFlBQU0sSUFBSTtBQUFBLFFBQ1I7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBQ0EsWUFBWTtBQUNWLGFBQU8sTUFBTSxXQUFXO0FBQUEsSUFDMUI7QUFBQSxJQUNBLE9BQU8sUUFBUTtBQUNiLGFBQU8sTUFBTSxZQUFZLE9BQU8sU0FBUyxDQUFDO0FBQUEsSUFDNUM7QUFBQTtBQUFBLElBRUEsVUFBVTtBQUNSLGFBQU8sTUFBTSxTQUFTO0FBQUEsSUFDeEI7QUFBQSxJQUNBLFFBQVE7QUFDTixhQUFPLE1BQU0sT0FBTztBQUFBLElBQ3RCO0FBQUEsSUFDQSxPQUFPO0FBQ0wsYUFBTyxNQUFNLE1BQU07QUFBQSxJQUNyQjtBQUFBLElBQ0EsTUFBTTtBQUNKLGFBQU8sTUFBTSxLQUFLO0FBQUEsSUFDcEI7QUFBQSxJQUNBLE1BQU07QUFDSixhQUFPLE1BQU0sS0FBSztBQUFBLElBQ3BCO0FBQUEsSUFDQSxNQUFNO0FBQ0osYUFBTyxNQUFNLEtBQUs7QUFBQSxJQUNwQjtBQUFBLElBQ0EsY0FBYztBQUNaLGFBQU8sTUFBTSxhQUFhO0FBQUEsSUFDNUI7QUFBQSxJQUNBLGdCQUFnQjtBQUNkLGFBQU8sTUFBTSxlQUFlO0FBQUEsSUFDOUI7QUFBQSxJQUNBLGFBQWE7QUFDWCxhQUFPLE1BQU0sWUFBWTtBQUFBLElBQzNCO0FBQUEsSUFDQSxPQUFPO0FBQ0wsYUFBTyxNQUFNLE1BQU07QUFBQSxJQUNyQjtBQUFBLElBQ0EsVUFBVTtBQUNSLGFBQU8sTUFBTSxTQUFTO0FBQUEsSUFDeEI7QUFBQSxJQUNBLGFBQWE7QUFDWCxhQUFPLE1BQU0sWUFBWTtBQUFBLElBQzNCO0FBQUEsSUFDQSxhQUFhO0FBQ1gsYUFBTyxNQUFNLFlBQVk7QUFBQSxJQUMzQjtBQUFBLElBQ0EsV0FBVztBQUNULGFBQU8sTUFBTSxVQUFVO0FBQUEsSUFDekI7QUFBQSxJQUNBLFNBQVM7QUFDUCxhQUFPLE1BQU0sUUFBUTtBQUFBLElBQ3ZCO0FBQUEsSUFDQSxVQUFVO0FBQ1IsYUFBTyxNQUFNLFNBQVM7QUFBQSxJQUN4QjtBQUFBLElBQ0EsVUFBVTtBQUNSLGFBQU8sTUFBTSxTQUFTO0FBQUEsSUFDeEI7QUFBQSxFQUNGO0FBQ0Y7QUFDQSxJQUFNLGFBQWE7QUFDbkIsSUFBTSxtQkFBbUIsV0FBVztBQUNwQyxTQUFTLGlCQUFpQkMsSUFBRztBQUMzQixNQUFJLE9BQU9BLE9BQU0sWUFBWTtBQUMzQixXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8sU0FBUyxVQUFVLFNBQVMsS0FBS0EsRUFBQyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsTUFBTTtBQUMxRTtBQUVBLElBQU0sWUFBTixNQUFNLFdBQVU7QUFBQSxFQUNkLFlBQVksT0FBTyxVQUFVO0FBQzNCLFlBQVEsS0FBSyxRQUFRLFNBQVMsQ0FBQztBQUMvQixTQUFLLFdBQVcsYUFBYSxTQUFTLE1BQU0sU0FBUyxJQUFJO0FBQUEsRUFDM0Q7QUFBQSxFQUNBLFNBQVMsU0FBUztBQUNoQixZQUFRLFdBQVcsS0FBSyxVQUFVLElBQUk7QUFBQSxFQUN4QztBQUFBLEVBQ0EsT0FBTyxXQUFXO0FBQ2hCLFNBQUssTUFBTTtBQUNYLFFBQUksS0FBSyxXQUFXLEdBQUc7QUFDckIsZUFBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFVBQVUsS0FBSztBQUMzQyxjQUFNLFdBQVcsVUFBVSxNQUFNLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUk7QUFDL0QsYUFBSyxNQUFNLEtBQUssV0FBVyxNQUFNLENBQUMsS0FBSyxZQUFZLE1BQU0sS0FBSyxXQUFXLEtBQUssSUFBSTtBQUFBLE1BQ3BGO0FBQUEsSUFDRixPQUFPO0FBQ0wsZUFBU0MsS0FBSSxHQUFHQSxLQUFJLFVBQVUsVUFBVUEsTUFBSyxHQUFHO0FBQzlDLGFBQUssTUFBTSxLQUFLLFdBQVdBLE9BQU0sQ0FBQyxJQUFJLFVBQVUsTUFBTUEsT0FBTSxDQUFDO0FBQUEsTUFDL0Q7QUFBQSxJQUNGO0FBQ0EsU0FBSyxZQUFZLFVBQVU7QUFDM0IsV0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBLFFBQVE7QUFDTixTQUFLLE1BQU0sS0FBSyxhQUFhLENBQUMsS0FBSyxjQUFjLEtBQUssS0FBSyxXQUFXLElBQUk7QUFDMUUsU0FBSyxNQUFNLFNBQVMsS0FBSyxLQUFLLEtBQUssV0FBVyxDQUFDO0FBQUEsRUFDakQ7QUFBQSxFQUNBLFFBQVE7QUFDTixXQUFPLElBQUksV0FBVSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUM7QUFBQSxFQUN0QztBQUNGO0FBQ0EsSUFBTSxNQUFNO0FBQUEsRUFDVixVQUFVLFdBQVc7QUFDbkIsVUFBTSxXQUFXLENBQUM7QUFDbEIsYUFBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFVBQVUsS0FBSztBQUMzQyxZQUFNLE9BQU8sVUFBVSxNQUFNLE1BQU0sQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUk7QUFDM0QsZUFBUyxNQUFNLFNBQVMsR0FBRyxTQUFTLEVBQUUsSUFBSSxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7QUFBQSxJQUNuRTtBQUNBLFdBQU8sU0FBUyxLQUFLLEVBQUU7QUFBQSxFQUN6QjtBQUNGO0FBQ0EsSUFBTSxTQUFTO0FBQUEsRUFDYixVQUFVLFdBQVc7QUFDbkIsVUFBTSxTQUFTO0FBQ2YsVUFBTSxjQUFjLENBQUM7QUFDckIsYUFBUyxJQUFJLEdBQUcsSUFBSSxVQUFVLFVBQVUsS0FBSyxHQUFHO0FBQzlDLFlBQU0sUUFBUSxVQUFVLE1BQU0sTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSTtBQUM1RCxZQUFNLFFBQVEsVUFBVSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sTUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJO0FBQ3RFLFlBQU0sUUFBUSxVQUFVLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxNQUFNLElBQUksS0FBSyxJQUFJLElBQUk7QUFDdEUsWUFBTSxVQUFVLFNBQVMsS0FBSyxTQUFTLElBQUk7QUFDM0MsZUFBU0EsS0FBSSxHQUFHQSxLQUFJLEtBQUssSUFBSSxJQUFJQSxLQUFJLElBQUksVUFBVSxXQUFXLEdBQUdBLE1BQUs7QUFDcEUsb0JBQVksS0FBSyxPQUFPLE9BQU8sWUFBWSxLQUFLLElBQUlBLE1BQUssRUFBRSxDQUFDO0FBQUEsTUFDOUQ7QUFBQSxJQUNGO0FBQ0EsV0FBTyxZQUFZLEtBQUssRUFBRTtBQUFBLEVBQzVCO0FBQ0Y7QUFDQSxJQUFNLFNBQVM7QUFBQSxFQUNiLE1BQU0sV0FBVztBQUNmLFVBQU0sa0JBQWtCLFVBQVU7QUFDbEMsVUFBTSxRQUFRLENBQUM7QUFDZixhQUFTLElBQUksR0FBRyxJQUFJLGlCQUFpQixLQUFLO0FBQ3hDLFlBQU0sTUFBTSxDQUFDLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJO0FBQUEsSUFDcEU7QUFDQSxXQUFPLElBQUksVUFBVSxPQUFPLGVBQWU7QUFBQSxFQUM3QztBQUNGO0FBQ0EsSUFBTSxPQUFPO0FBQUEsRUFDWCxNQUFNLFNBQVM7QUFDYixXQUFPLE9BQU8sTUFBTSxTQUFTLG1CQUFtQixPQUFPLENBQUMsQ0FBQztBQUFBLEVBQzNEO0FBQ0Y7QUFDQSxJQUFNLHlCQUFOLE1BQTZCO0FBQUEsRUFDM0IsY0FBYztBQUNaLFNBQUssUUFBUSxJQUFJLFVBQVU7QUFDM0IsU0FBSyxjQUFjO0FBQ25CLFNBQUssaUJBQWlCO0FBQ3RCLFNBQUssWUFBWSxNQUFNO0FBQUEsRUFDekI7QUFBQSxFQUNBLFFBQVE7QUFDTixTQUFLLFFBQVEsSUFBSSxVQUFVO0FBQzNCLFNBQUssY0FBYztBQUFBLEVBQ3JCO0FBQUEsRUFDQSxRQUFRLE1BQU07QUFDWixRQUFJLE9BQU8sU0FBUyxVQUFVO0FBQzVCLGFBQU8sS0FBSyxNQUFNLElBQUk7QUFBQSxJQUN4QjtBQUNBLFNBQUssTUFBTSxPQUFPLElBQUk7QUFDdEIsU0FBSyxlQUFlLEtBQUs7QUFBQSxFQUMzQjtBQUFBO0FBQUEsRUFFQSxnQkFBZ0IsWUFBWSxTQUFTO0FBQUEsRUFDckM7QUFBQSxFQUNBLFNBQVMsU0FBUztBQUNoQixRQUFJO0FBQ0osUUFBSSxlQUFlLEtBQUssTUFBTSxZQUFZLEtBQUssWUFBWTtBQUMzRCxRQUFJLFNBQVM7QUFDWCxxQkFBZSxLQUFLLEtBQUssWUFBWTtBQUFBLElBQ3ZDLE9BQU87QUFDTCxxQkFBZSxLQUFLLEtBQUssZUFBZSxLQUFLLEtBQUssZ0JBQWdCLENBQUM7QUFBQSxJQUNyRTtBQUNBLFVBQU0sY0FBYyxlQUFlLEtBQUs7QUFDeEMsVUFBTSxjQUFjLEtBQUssSUFBSSxjQUFjLEdBQUcsS0FBSyxNQUFNLFFBQVE7QUFDakUsUUFBSSxhQUFhO0FBQ2YsZUFBUyxTQUFTLEdBQUcsU0FBUyxhQUFhLFVBQVUsS0FBSyxXQUFXO0FBQ25FLGFBQUssZ0JBQWdCLEtBQUssTUFBTSxPQUFPLE1BQU07QUFBQSxNQUMvQztBQUNBLHVCQUFpQixLQUFLLE1BQU0sTUFBTSxPQUFPLEdBQUcsV0FBVztBQUN2RCxXQUFLLE1BQU0sWUFBWTtBQUFBLElBQ3pCO0FBQ0EsV0FBTyxJQUFJLFVBQVUsZ0JBQWdCLFdBQVc7QUFBQSxFQUNsRDtBQUNGO0FBQ0EsSUFBTSxTQUFOLGNBQXFCLHVCQUF1QjtBQUFBLEVBQzFDLE9BQU8sZUFBZTtBQUNwQixTQUFLLFFBQVEsYUFBYTtBQUMxQixTQUFLLFNBQVM7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUyxlQUFlO0FBQ3RCLFFBQUksZUFBZTtBQUNqQixXQUFLLFFBQVEsYUFBYTtBQUFBLElBQzVCO0FBQUEsRUFDRjtBQUNGO0FBRUEsSUFBTUMsS0FBSTtBQUFBLEVBQ1I7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0Y7QUFDQSxJQUFNQyxLQUFJO0FBQUEsRUFDUjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGO0FBQ0EsSUFBTUMsS0FBSSxDQUFDO0FBQ1gsSUFBTSxTQUFOLGNBQXFCLE9BQU87QUFBQSxFQUMxQixjQUFjO0FBQ1osVUFBTSxHQUFHLFNBQVM7QUFDbEIsU0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLEdBQUdGLEVBQUMsQ0FBQztBQUFBLEVBQ25DO0FBQUEsRUFDQSxRQUFRO0FBQ04sVUFBTSxNQUFNO0FBQ1osU0FBSyxRQUFRLElBQUksVUFBVSxDQUFDLEdBQUdBLEVBQUMsQ0FBQztBQUFBLEVBQ25DO0FBQUEsRUFDQSxnQkFBZ0JHLElBQUcsUUFBUTtBQUN6QixVQUFNQyxNQUFLLEtBQUssTUFBTTtBQUN0QixRQUFJLElBQUlBLElBQUcsQ0FBQztBQUNaLFFBQUlDLEtBQUlELElBQUcsQ0FBQztBQUNaLFFBQUlFLEtBQUlGLElBQUcsQ0FBQztBQUNaLFFBQUksSUFBSUEsSUFBRyxDQUFDO0FBQ1osUUFBSSxJQUFJQSxJQUFHLENBQUM7QUFDWixRQUFJTixLQUFJTSxJQUFHLENBQUM7QUFDWixRQUFJRyxLQUFJSCxJQUFHLENBQUM7QUFDWixRQUFJSSxLQUFJSixJQUFHLENBQUM7QUFDWixhQUFTLElBQUksR0FBRyxJQUFJLElBQUksS0FBSztBQUMzQixVQUFJLElBQUksSUFBSTtBQUNWLFFBQUFGLEdBQUUsQ0FBQyxJQUFJQyxHQUFFLFNBQVMsQ0FBQyxJQUFJO0FBQUEsTUFDekIsT0FBTztBQUNMLGNBQU0sVUFBVUQsR0FBRSxJQUFJLEVBQUU7QUFDeEIsY0FBTSxVQUFVLFdBQVcsS0FBSyxZQUFZLE1BQU0sV0FBVyxLQUFLLFlBQVksTUFBTSxZQUFZO0FBQ2hHLGNBQU0sVUFBVUEsR0FBRSxJQUFJLENBQUM7QUFDdkIsY0FBTSxVQUFVLFdBQVcsS0FBSyxZQUFZLE9BQU8sV0FBVyxLQUFLLFlBQVksTUFBTSxZQUFZO0FBQ2pHLFFBQUFBLEdBQUUsQ0FBQyxJQUFJLFNBQVNBLEdBQUUsSUFBSSxDQUFDLElBQUksU0FBU0EsR0FBRSxJQUFJLEVBQUU7QUFBQSxNQUM5QztBQUNBLFlBQU0sS0FBSyxJQUFJSixLQUFJLENBQUMsSUFBSVM7QUFDeEIsWUFBTSxNQUFNLElBQUlGLEtBQUksSUFBSUMsS0FBSUQsS0FBSUM7QUFDaEMsWUFBTSxVQUFVLEtBQUssS0FBSyxNQUFNLE1BQU0sS0FBSyxLQUFLLE1BQU0sT0FBTyxLQUFLLEtBQUssTUFBTTtBQUM3RSxZQUFNLFVBQVUsS0FBSyxLQUFLLE1BQU0sTUFBTSxLQUFLLEtBQUssTUFBTSxPQUFPLEtBQUssSUFBSSxNQUFNO0FBQzVFLFlBQU0sS0FBS0UsS0FBSSxTQUFTLEtBQUtQLEdBQUUsQ0FBQyxJQUFJQyxHQUFFLENBQUM7QUFDdkMsWUFBTSxLQUFLLFNBQVM7QUFDcEIsTUFBQU0sS0FBSUQ7QUFDSixNQUFBQSxLQUFJVDtBQUNKLE1BQUFBLEtBQUk7QUFDSixVQUFJLElBQUksS0FBSztBQUNiLFVBQUlRO0FBQ0osTUFBQUEsS0FBSUQ7QUFDSixNQUFBQSxLQUFJO0FBQ0osVUFBSSxLQUFLLEtBQUs7QUFBQSxJQUNoQjtBQUNBLElBQUFELElBQUcsQ0FBQyxJQUFJQSxJQUFHLENBQUMsSUFBSSxJQUFJO0FBQ3BCLElBQUFBLElBQUcsQ0FBQyxJQUFJQSxJQUFHLENBQUMsSUFBSUMsS0FBSTtBQUNwQixJQUFBRCxJQUFHLENBQUMsSUFBSUEsSUFBRyxDQUFDLElBQUlFLEtBQUk7QUFDcEIsSUFBQUYsSUFBRyxDQUFDLElBQUlBLElBQUcsQ0FBQyxJQUFJLElBQUk7QUFDcEIsSUFBQUEsSUFBRyxDQUFDLElBQUlBLElBQUcsQ0FBQyxJQUFJLElBQUk7QUFDcEIsSUFBQUEsSUFBRyxDQUFDLElBQUlBLElBQUcsQ0FBQyxJQUFJTixLQUFJO0FBQ3BCLElBQUFNLElBQUcsQ0FBQyxJQUFJQSxJQUFHLENBQUMsSUFBSUcsS0FBSTtBQUNwQixJQUFBSCxJQUFHLENBQUMsSUFBSUEsSUFBRyxDQUFDLElBQUlJLEtBQUk7QUFBQSxFQUN0QjtBQUFBLEVBQ0EsU0FBUyxlQUFlO0FBQ3RCLFVBQU0sU0FBUyxhQUFhO0FBQzVCLFVBQU0sYUFBYSxLQUFLLGNBQWM7QUFDdEMsVUFBTSxZQUFZLEtBQUssTUFBTSxXQUFXO0FBQ3hDLFNBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQyxLQUFLLE9BQU8sS0FBSyxZQUFZO0FBQzdELFNBQUssTUFBTSxPQUFPLFlBQVksT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUs7QUFBQSxNQUN4RCxhQUFhO0FBQUEsSUFDZjtBQUNBLFNBQUssTUFBTSxPQUFPLFlBQVksT0FBTyxLQUFLLEtBQUssRUFBRSxJQUFJO0FBQ3JELFNBQUssTUFBTSxXQUFXLEtBQUssTUFBTSxNQUFNLFNBQVM7QUFDaEQsU0FBSyxTQUFTO0FBQ2QsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUNGO0FBSUEsU0FBUyxhQUFhLFNBQVM7QUFDN0IsU0FBTyxJQUFJLE9BQU8sRUFBRSxTQUFTLE9BQU8sRUFBRSxTQUFTLE1BQU07QUFDdkQ7QUFFQSxTQUFTLEtBQUssUUFBUSxVQUFVLENBQUMsR0FBRztBQUNsQyxRQUFNLFNBQVMsT0FBTyxXQUFXLFdBQVcsU0FBUyxXQUFXLFFBQVEsT0FBTztBQUMvRSxTQUFPLGFBQWEsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFO0FBQ3pDOzs7QUR2bEJBLE9BQU8sWUFBWTtBQUNuQixPQUFPLFFBQVE7QUFDZixTQUFTLDBCQUFnRDs7O0FFTnpELElBQU0saUJBQ0o7QUFFSyxTQUFTLG9CQUNkLGVBQ3lCO0FBQ3pCLFFBQU0sUUFBUSxjQUFjLE1BQU0sY0FBYztBQUVoRCxNQUFJLE9BQU87QUFDVCxXQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFBQSxFQUM1QjtBQUVBLFNBQU87QUFDVDtBQUVPLFNBQVMsa0JBQWtCLFVBQTJCO0FBQzNELFNBQU8sT0FBTyxTQUFTLGVBQWUsV0FDbEMsU0FBUyxhQUNULFNBQVMsWUFBWTtBQUMzQjtBQUVBLElBQU0sZUFBZTtBQUtkLFNBQVMscUJBQXFCLFVBQWtCO0FBQ3JELFNBQU8sU0FBUyxVQUFVLEdBQUcsWUFBWTtBQUMzQzs7O0FGZkEsT0FBTyxRQUFRO0FBQ2YsT0FBTyxZQUFZOzs7QUdoQm5CO0FBQUEsRUFDRSxNQUFRO0FBQUEsRUFDUixTQUFXO0FBQUEsRUFDWCxhQUFlO0FBQUEsRUFDZixNQUFRO0FBQUEsRUFDUixNQUFRO0FBQUEsRUFDUixLQUFPO0FBQUEsSUFDTCxjQUFjO0FBQUEsRUFDaEI7QUFBQSxFQUNBLFNBQVc7QUFBQSxJQUNULEtBQU87QUFBQSxJQUNQLE9BQVM7QUFBQSxJQUNULGlCQUFpQjtBQUFBLEVBQ25CO0FBQUEsRUFDQSxVQUFZLENBQUM7QUFBQSxFQUNiLFFBQVU7QUFBQSxFQUNWLFNBQVc7QUFBQSxFQUNYLGNBQWdCO0FBQUEsSUFDZCx3QkFBd0I7QUFBQSxJQUN4QixtQkFBbUI7QUFBQSxJQUNuQixhQUFhO0FBQUEsSUFDYixRQUFVO0FBQUEsSUFDVixjQUFnQjtBQUFBLElBQ2hCLGFBQWE7QUFBQSxJQUNiLGtCQUFrQjtBQUFBLEVBQ3BCO0FBQUEsRUFDQSxpQkFBbUI7QUFBQSxJQUNqQixxQkFBcUI7QUFBQSxJQUNyQixPQUFTO0FBQUEsSUFDVCxNQUFRO0FBQUEsRUFDVjtBQUNGOzs7QUhaQSxTQUFTLG9CQUFvQjtBQUM3QixTQUFTLGlCQUFpQix3QkFBd0I7OztBSXBCM0MsSUFBTSx3QkFBd0IsQ0FDbkMsa0JBQ0k7QUFBQSxFQUNKLFlBQVk7QUFBQSxFQUNaLGFBQWE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBV2IsT0FBTyxPQUFPLFlBQVksRUFDekI7QUFBQSxJQUNDLENBQUMsUUFBUTtBQUFBO0FBQUEsUUFFTCxHQUFHO0FBQUE7QUFBQTtBQUFBLEVBR1QsRUFDQyxLQUFLLEVBQUUsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZ0JULGdCQUFnQixLQUFLO0FBQUEsSUFDbkI7QUFBQSxNQUNFLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxNQUNULGFBQWE7QUFBQSxNQUNiLE1BQU07QUFBQSxNQUNOO0FBQUEsTUFDQSxVQUFVLENBQUM7QUFBQSxNQUNYLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxJQUNYO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBQ0Y7OztBSjFCQSxJQUFNLFNBQVMsUUFBUSxJQUFJLFdBQVc7QUFDdEMsSUFBTSxhQUFhLElBQUksSUFBSSxZQUFZLE1BQU07QUFFN0MsSUFBTSxPQUFPLGNBQWM7QUFBQSxFQUN6QixNQUFNO0FBQUEsSUFDSixTQUFTLGdCQUFJO0FBQUEsSUFDYixNQUFNO0FBQUEsSUFDTixhQUFhO0FBQUEsRUFDZjtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1gsU0FBUyxNQUFNO0FBQ2IsYUFBTztBQUFBLFFBQ0wsTUFBTTtBQUFBLFVBQ0osU0FBUztBQUFBLFlBQ1AsTUFBTTtBQUFBLFlBQ04sYUFDRTtBQUFBLFVBQ0o7QUFBQSxVQUNBLE1BQU07QUFBQSxZQUNKLE1BQU07QUFBQSxZQUNOLGFBQWE7QUFBQSxVQUNmO0FBQUEsVUFDQSxVQUFVO0FBQUEsWUFDUixNQUFNO0FBQUEsWUFDTixhQUNFO0FBQUEsVUFDSjtBQUFBLFVBQ0EsU0FBUztBQUFBLFlBQ1AsTUFBTTtBQUFBO0FBQUEsWUFDTixhQUFhO0FBQUEsWUFDYixTQUFTO0FBQUEsVUFDWDtBQUFBLFFBQ0Y7QUFBQSxRQUNBLEtBQUssT0FBTyxFQUFFLEtBQUssTUFBTTtBQUN2QixnQkFBTSxTQUFTLEtBQUssRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDLEdBQUcsR0FDekMsUUFBUSxDQUFDQyxPQUFPLEdBQUcsaUJBQWlCQSxFQUFDLElBQUksR0FBRyxLQUFLQSxFQUFDLElBQUlBLEVBQUUsRUFDeEQsSUFBSSxDQUFDQSxPQUFNLEtBQUssUUFBUUEsR0FBRSxLQUFLLENBQUMsQ0FBQztBQUVwQyxnQkFBTSxhQUNKLE9BQU8sS0FBSyxhQUFhLFdBQ3JCLENBQUMsS0FBSyxRQUFRLElBQ2IsQ0FBQyxHQUFJLEtBQUssWUFBWSxDQUFDLENBQUUsR0FFN0IsUUFBUSxDQUFDQSxPQUFPLEdBQUcsaUJBQWlCQSxFQUFDLElBQUksR0FBRyxLQUFLQSxFQUFDLElBQUlBLEVBQUUsRUFDeEQsSUFBSSxDQUFDQSxPQUFNLEtBQUssUUFBUUEsR0FBRSxLQUFLLENBQUMsQ0FBQztBQUVwQyxnQkFBTSxXQUFXLElBQUksU0FBUztBQUU5QixnQkFBTSxZQUFZLENBQUMsQ0FBQyxLQUFLO0FBQ3pCLGdCQUFNLFNBQVMsQ0FBQyxDQUFDLEtBQUs7QUFFdEIsZ0JBQU0sVUFBbUIsS0FBSztBQUU5QixjQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsUUFBUSxJQUFJLG1CQUFtQixRQUFRO0FBQzlELG9CQUFRO0FBQUEsY0FDTjtBQUFBLFlBQ0Y7QUFDQSxvQkFBUSxLQUFLLENBQUM7QUFBQSxVQUNoQjtBQUVBLGdCQUFNO0FBQUEsWUFDSjtBQUFBLFlBQ0E7QUFBQSxZQUNBO0FBQUEsWUFDQTtBQUFBLFVBQ0YsSUFBSSxRQUFRO0FBRVosZ0JBQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxrQkFBa0IsTUFBTSxHQUFHO0FBRWpELGdCQUFNLFdBQVc7QUFBQSxZQUNmO0FBQUEsWUFDQTtBQUFBLFlBQ0EsS0FBSyxPQUFPLGFBQWE7QUFBQSxZQUN6QixTQUFTLE9BQU8sa0JBQWtCO0FBQUEsWUFDbEMsT0FBTyxPQUFPLGVBQWU7QUFBQSxVQUMvQjtBQUVBLGdCQUFNLE1BQU0sS0FBSyxRQUFRO0FBRXpCLGdCQUFNLGdCQUFnQixNQUFNLE1BQU0sSUFBSSxJQUFJLFVBQVUsTUFBTSxHQUFHO0FBQUEsWUFDM0QsUUFBUTtBQUFBLFlBQ1IsTUFBTSxLQUFLLFVBQVU7QUFBQSxjQUNuQjtBQUFBLGNBQ0E7QUFBQSxjQUNBO0FBQUEsWUFDRixDQUFDO0FBQUEsVUFDSCxDQUFDO0FBRUQsY0FBSSxDQUFDLGNBQWMsSUFBSTtBQUNyQixvQkFBUSxJQUFJLE1BQU0sY0FBYyxLQUFLLENBQUM7QUFDdEMsb0JBQVEsS0FBSyxDQUFDO0FBQUEsVUFDaEI7QUFFQSxnQkFBTSxFQUFFLElBQUksSUFBSSxNQUFNLGNBQWMsS0FBSztBQUN6QyxnQkFBTSxpQkFBaUIscUJBQXFCLEdBQUc7QUFFL0MsZ0JBQU0sT0FBNEIsb0JBQUksSUFBSTtBQUUxQyxxQkFBV0EsTUFBSyxPQUFPO0FBQ3JCLGdCQUFJLENBQUUsTUFBTSxlQUFlQSxFQUFDLEdBQUk7QUFDOUI7QUFBQSxZQUNGO0FBQ0Esa0JBQU0sWUFBWSxLQUFLLFFBQVFBLElBQUcsY0FBYztBQUNoRCxrQkFBTSxRQUFRLE1BQU0sZ0JBQWdCLFNBQVM7QUFFN0MsZ0JBQUksQ0FBQyxNQUFNLE1BQU07QUFDZixvQkFBTSxJQUFJLE1BQU0sbUJBQW1CLFNBQVMsb0JBQW9CO0FBQUEsWUFDbEU7QUFDQSxnQkFBSSxNQUFNLFNBQVM7QUFDakI7QUFBQSxZQUNGO0FBRUEsZ0JBQUksV0FBVztBQUNiLG9CQUFNLGtCQUFrQixNQUFNLElBQUk7QUFBQSxZQUNwQztBQUVBLGlCQUFLO0FBQUEsY0FDSCxNQUFNO0FBQUEsY0FDTixJQUFJO0FBQUEsZ0JBQ0YsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJLGNBQWM7QUFBQSxnQkFDakQ7QUFBQSxjQUNGLEVBQUU7QUFBQSxZQUNKO0FBQUEsVUFDRjtBQUVBLHFCQUFXLGVBQWUsV0FBVztBQUNuQyxnQkFBSSxDQUFFLE1BQU0sZUFBZSxXQUFXLEdBQUk7QUFDeEMsc0JBQVE7QUFBQSxnQkFDTixZQUFZLFdBQVc7QUFBQSxjQUN6QjtBQUNBO0FBQUEsWUFDRjtBQUNBLGtCQUFNLFlBQVksS0FBSyxRQUFRLGFBQWEsY0FBYztBQUMxRCxrQkFBTSxRQUFRLE1BQU0sZ0JBQWdCLFNBQVM7QUFFN0MsZ0JBQUksQ0FBQyxNQUFNLE1BQU07QUFDZixvQkFBTSxJQUFJLE1BQU0sbUJBQW1CLFNBQVMsb0JBQW9CO0FBQUEsWUFDbEU7QUFDQSxnQkFBSSxNQUFNLFNBQVM7QUFDakIsc0JBQVE7QUFBQSxnQkFDTixZQUFZLFdBQVc7QUFBQSxjQUN6QjtBQUNBO0FBQUEsWUFDRjtBQUVBLG9CQUFRLElBQUksdUJBQXVCLE1BQU0sSUFBSTtBQUU3QyxrQkFBTSxVQUFVLE1BQU0sVUFBVSxhQUFhLElBQUk7QUFFakQsa0JBQU0sZ0JBQWdCLEtBQUssS0FBSyxhQUFhLFlBQVk7QUFDekQsa0JBQU0sS0FBSyxPQUFPO0FBQ2xCLGVBQUcsSUFBSSxjQUFjO0FBRXJCLGdCQUFJLE9BQU8sV0FBVyxhQUFhLEdBQUc7QUFDcEMsb0JBQU0sbUJBQW1CLE1BQU0sR0FBRyxTQUFTLGVBQWUsTUFBTTtBQUNoRSxpQkFBRyxJQUFJLGdCQUFnQjtBQUFBLFlBQ3pCO0FBRUEsa0JBQU0sUUFBUSxNQUFNLEdBQUcsQ0FBQyxNQUFNLEdBQUc7QUFBQSxjQUMvQixLQUFLO0FBQUEsY0FDTCxLQUFLO0FBQUEsY0FDTCxXQUFXO0FBQUEsWUFDYixDQUFDO0FBRUQsa0JBQU0sZ0JBQWdCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxDQUFDO0FBRTlELHVCQUFXLFlBQVksZUFBZTtBQUNwQyxvQkFBTSxPQUFPLE1BQU0sR0FBRyxTQUFTLEtBQUssS0FBSyxhQUFhLFFBQVEsQ0FBQztBQUMvRCxvQkFBTSxXQUFXLE1BQU0sYUFBYSxJQUFJO0FBQ3hDLG9CQUFNLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxNQUFNLEdBQUc7QUFBQSxnQkFDbkMsTUFBTTtBQUFBLGNBQ1IsQ0FBQztBQUNELHVCQUFTO0FBQUEsZ0JBQ1AsWUFBWSxNQUFNLElBQUksSUFBSSxtQkFBbUIsUUFBUSxDQUFDO0FBQUEsZ0JBQ3RELFdBQVcsT0FBTyxNQUFNLEtBQUssS0FBSztBQUFBLGNBQ3BDO0FBQUEsWUFDRjtBQUNBLGtCQUFNLFFBQVE7QUFBQSxVQUNoQjtBQUVBLGdCQUFNLG9CQUFvQixLQUFLLGFBQWE7QUFFNUMsY0FBSSxDQUFDLFVBQVUsVUFBVSxDQUFDLG1CQUFtQjtBQUMzQyxrQkFBTSxVQUFVO0FBQUEsY0FDZCxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUM7QUFBQSxZQUNuQztBQUVBLHVCQUFXLFlBQVksT0FBTyxLQUFLLE9BQU8sR0FBRztBQUMzQyx1QkFBUztBQUFBLGdCQUNQLG9CQUFvQixtQkFBbUIsUUFBUSxDQUFDO0FBQUEsZ0JBQ2hELFFBQVEsUUFBUTtBQUFBLGNBQ2xCO0FBQUEsWUFDRjtBQUFBLFVBQ0Y7QUFFQSxnQkFBTSxhQUFhLG9CQUFJLElBR3JCO0FBQ0YscUJBQVdBLE1BQUssT0FBTztBQUNyQixnQkFBSSxDQUFFLE1BQU0sZUFBZUEsRUFBQyxHQUFJO0FBQzlCO0FBQUEsWUFDRjtBQUNBLGtCQUFNLFlBQVksS0FBSyxRQUFRQSxJQUFHLGNBQWM7QUFDaEQsa0JBQU0sUUFBUSxNQUFNLGdCQUFnQixTQUFTO0FBRTdDLGdCQUFJLE1BQU0sU0FBUztBQUNqQjtBQUFBLFlBQ0Y7QUFFQSx1QkFBVyxJQUFJQSxJQUFHLE1BQU0sVUFBVUEsSUFBRyxJQUFJLENBQUM7QUFBQSxVQUM1QztBQUVBLGdCQUFNLFVBQWtDLENBQUM7QUFDekMscUJBQVdBLE1BQUssT0FBTztBQUNyQixnQkFBSSxDQUFFLE1BQU0sZUFBZUEsRUFBQyxHQUFJO0FBQzlCLHNCQUFRLElBQUksWUFBWUEsRUFBQyx1Q0FBdUM7QUFDaEU7QUFBQSxZQUNGO0FBQ0Esa0JBQU0sWUFBWSxLQUFLLFFBQVFBLElBQUcsY0FBYztBQUNoRCxnQkFBSTtBQUNGLG9CQUFNLFFBQVEsTUFBTSxnQkFBZ0IsU0FBUztBQUU3QyxrQkFBSSxDQUFDLE1BQU0sTUFBTTtBQUNmLHNCQUFNLElBQUk7QUFBQSxrQkFDUixtQkFBbUIsU0FBUztBQUFBLGdCQUM5QjtBQUFBLGNBQ0Y7QUFDQSxrQkFBSSxNQUFNLFNBQVM7QUFDakIsd0JBQVEsSUFBSSxZQUFZQSxFQUFDLGlDQUFpQztBQUMxRDtBQUFBLGNBQ0Y7QUFFQSxvQkFBTSxFQUFFLFVBQVUsT0FBTyxJQUFJLE1BQU07QUFBQSxnQkFDakMsU0FBUyxTQUFTO0FBQUEsZ0JBQ2xCQTtBQUFBLGNBQ0Y7QUFFQSxzQkFBUSxNQUFNLElBQUksSUFBSTtBQUN0QixzQkFBUSxJQUFJLGNBQWMsTUFBTSxJQUFJLElBQUksUUFBUSxNQUFNLE1BQU0sRUFBRTtBQUU5RCxvQkFBTSxPQUFPLE1BQU0sR0FBRyxTQUFTLEtBQUssUUFBUUEsSUFBRyxRQUFRLENBQUM7QUFFeEQsb0JBQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUc7QUFBQSxnQkFDNUIsTUFBTTtBQUFBLGNBQ1IsQ0FBQztBQUNELHVCQUFTLE9BQU8sV0FBVyxNQUFNLElBQUksSUFBSSxNQUFNLFFBQVE7QUFBQSxZQUN6RCxVQUFFO0FBQ0Esb0JBQU0sV0FBVyxJQUFJQSxFQUFDLElBQUk7QUFBQSxZQUM1QjtBQUFBLFVBQ0Y7QUFFQSxnQkFBTSxNQUFNLE1BQU0sTUFBTSxZQUFZO0FBQUEsWUFDbEMsUUFBUTtBQUFBLFlBQ1IsU0FBUztBQUFBLGNBQ1AsY0FBYztBQUFBLGNBQ2QsY0FBYyxHQUFHLFNBQVM7QUFBQSxjQUMxQixVQUFVO0FBQUEsY0FDVixjQUFjLEtBQUssVUFBVSxPQUFPO0FBQUEsY0FDcEMsYUFBYTtBQUFBLFlBQ2Y7QUFBQSxZQUNBLE1BQU07QUFBQSxVQUNSLENBQUM7QUFDRCxnQkFBTSxXQUFXLE1BQU0sSUFBSSxNQUFNLEVBQUUsS0FBSztBQUN4QyxpQkFBTztBQUFBLFlBQ0wsSUFBSTtBQUFBLFlBQ0o7QUFBQSxZQUNBLHNCQUFzQixNQUFNLElBQUksS0FBSyxDQUFDO0FBQUEsVUFDeEM7QUFFQSxrQkFBUSxJQUFJLElBQUk7QUFDaEIsa0JBQVE7QUFBQSxZQUNOO0FBQUEsRUFBd0MsQ0FBQyxHQUFHLFNBQVMsS0FBSyxDQUFDLEVBQ3hELE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxVQUFVLENBQUMsRUFDdEM7QUFBQSxjQUNDLENBQUMsTUFBTSxNQUNMLEdBQUcsS0FBSyxNQUFNLFdBQVcsTUFBTSxDQUFDLFdBQVcsU0FBUyxLQUFLLENBQUMsQ0FBQztBQUFBLFlBQy9ELEVBQ0MsS0FBSyxJQUFJLENBQUM7QUFBQSxVQUNmO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFDQSxNQUFNLE1BQU07QUFDVixhQUFPO0FBQUEsUUFDTCxNQUFNLENBQUM7QUFBQSxRQUNQLEtBQUssTUFBTTtBQUFBLFFBQUM7QUFBQSxNQUNkO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBRUQsUUFBUSxJQUFJO0FBR1osZUFBZSxlQUFlLElBQW9CQSxJQUFXO0FBQzNELFFBQU0sRUFBRSxRQUFBQyxRQUFPLElBQUksTUFBTSxRQUFRLE1BQU0sR0FBRyxFQUFFLFNBQVM7QUFBQSxJQUNuRCxPQUFPO0FBQUEsSUFDUCxLQUFLRDtBQUFBLEVBQ1AsQ0FBQztBQUNELFFBQU0sUUFBUUMsUUFBTyxNQUFNLElBQUksRUFBRSxPQUFPLE9BQU87QUFDL0MsUUFBTSxXQUFXLE1BQU0sTUFBTSxTQUFTLENBQUMsRUFBRSxLQUFLO0FBRTlDLFFBQU0sU0FBUyxXQUFXLE1BQU0sRUFDN0IsT0FBTyxNQUFNLEdBQUcsU0FBUyxLQUFLLFFBQVFELElBQUcsUUFBUSxDQUFDLENBQUMsRUFDbkQsT0FBTyxLQUFLO0FBRWYsU0FBTyxFQUFFLFVBQVUsT0FBTztBQUM1QjtBQUVBLGVBQWUsVUFBVUEsSUFBVyxNQUEyQjtBQUM3RCxRQUFNLFlBQVksS0FBSyxRQUFRQSxJQUFHLGNBQWM7QUFDaEQsUUFBTSxVQUFVLE1BQU0sR0FBRyxTQUFTLFdBQVcsT0FBTztBQUVwRCxRQUFNLFFBQVEsTUFBTSxnQkFBZ0IsU0FBUztBQUU3QyxhQUFXLE1BQU0sTUFBTSxZQUFZO0FBQ25DLGFBQVcsTUFBTSxNQUFNLGVBQWU7QUFFdEMsUUFBTSxpQkFBaUIsV0FBVyxLQUFLO0FBRXZDLFNBQU8sTUFBTSxHQUFHLFVBQVUsV0FBVyxPQUFPO0FBQzlDO0FBRUEsU0FBUyxXQUNQLFNBQ0EsU0FDQTtBQUNBLE1BQUksQ0FBQyxTQUFTO0FBQ1o7QUFBQSxFQUNGO0FBQ0EsYUFBVyxDQUFDLFFBQVEsR0FBRyxLQUFLLFNBQVM7QUFDbkMsUUFBSSxVQUFVLFNBQVM7QUFDckIsY0FBUSxNQUFNLElBQUk7QUFBQSxJQUNwQjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLGVBQWUsa0JBQWtCLGFBQXFCO0FBQ3BELE1BQUk7QUFFSixNQUFJO0FBQ0YsZUFBVyxNQUFNLG1CQUFtQixXQUFXO0FBQUEsRUFDakQsUUFBUTtBQUNOLFVBQU0sSUFBSTtBQUFBLE1BQ1IsNkJBQTZCLFdBQVc7QUFBQTtBQUFBLElBRTFDO0FBQUEsRUFDRjtBQUVBLFFBQU0sY0FBYztBQUFBO0FBR3BCLFFBQU0sYUFBYSxrQkFBa0IsUUFBUTtBQUM3QyxNQUFJLENBQUMsWUFBWTtBQUNmLFVBQU0sSUFBSTtBQUFBLE1BQ1IsMERBQTBELFdBQVc7QUFBQSxFQUN6RSxXQUFXO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFFBQVEsb0JBQW9CLFVBQVU7QUFDNUMsTUFBSSxDQUFDLE9BQU87QUFDVixVQUFNLElBQUk7QUFBQSxNQUNSLCtEQUErRCxXQUFXLHFCQUFxQixVQUFVO0FBQUEsRUFDN0csV0FBVztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxlQUFlLGVBQWVBLElBQVc7QUFDdkMsTUFBSTtBQUNGLFVBQU0sR0FBRyxPQUFPLEtBQUssUUFBUUEsSUFBRyxjQUFjLEdBQUcsR0FBRyxVQUFVLElBQUk7QUFDbEUsV0FBTztBQUFBLEVBQ1QsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7IiwKICAibmFtZXMiOiBbImRlZmF1bHRzIiwgInAiLCAiYyIsICJsIiwgInRleHQiLCAicyIsICJ0dHkiLCAiaXNDb2xvclN1cHBvcnRlZCIsICJyZXBsYWNlQ2xvc2UiLCAiY3JlYXRlQ29sb3JzIiwgImMiLCAiZW52IiwgImFuc2lSZWdleCIsICJzdHJpcEFuc2kiLCAiXyIsICJtIiwgImdldENvbG9yIiwgImNyZWF0ZUNvbnNvbGEiLCAiaXNDSSIsICJ1bmljb2RlIiwgInMiLCAidGV4dCIsICJjIiwgImwiLCAiYyIsICJwIiwgImoiLCAiZGVmYXVsdHMiLCAicmVnZXgiLCAiZiIsICJqIiwgIkgiLCAiSyIsICJXIiwgIk0iLCAiSDIiLCAiYiIsICJjIiwgImciLCAiaCIsICJwIiwgInN0ZG91dCJdCn0K
3358
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2NvbnNvbGFAMy4yLjMvbm9kZV9tb2R1bGVzL2NvbnNvbGEvZGlzdC9jb3JlLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3NoYXJlZC9jb25zb2xhLjA2YWQ4YTY0Lm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L3V0aWxzLm1qcyIsICIuLi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY29uc29sYUAzLjIuMy9ub2RlX21vZHVsZXMvY29uc29sYS9kaXN0L2NodW5rcy9wcm9tcHQubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMi4zL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3Qvc2hhcmVkL2NvbnNvbGEuMzZjMDAzNGYubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jb25zb2xhQDMuMi4zL25vZGVfbW9kdWxlcy9jb25zb2xhL2Rpc3QvaW5kZXgubWpzIiwgIi4uLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jaXR0eUAwLjEuNi9ub2RlX21vZHVsZXMvY2l0dHkvZGlzdC9pbmRleC5tanMiLCAiLi4vaW5kZXgudHMiLCAiLi4vLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL29oYXNoQDEuMS4zL25vZGVfbW9kdWxlcy9vaGFzaC9kaXN0L2luZGV4Lm1qcyIsICIuLi8uLi91dGlscy9pbmRleC50cyIsICIuLi9wYWNrYWdlLmpzb24iLCAiLi4vdGVtcGxhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IExvZ0xldmVscyA9IHtcbiAgc2lsZW50OiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksXG4gIGZhdGFsOiAwLFxuICBlcnJvcjogMCxcbiAgd2FybjogMSxcbiAgbG9nOiAyLFxuICBpbmZvOiAzLFxuICBzdWNjZXNzOiAzLFxuICBmYWlsOiAzLFxuICByZWFkeTogMyxcbiAgc3RhcnQ6IDMsXG4gIGJveDogMyxcbiAgZGVidWc6IDQsXG4gIHRyYWNlOiA1LFxuICB2ZXJib3NlOiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFlcbn07XG5jb25zdCBMb2dUeXBlcyA9IHtcbiAgLy8gU2lsZW50XG4gIHNpbGVudDoge1xuICAgIGxldmVsOiAtMVxuICB9LFxuICAvLyBMZXZlbCAwXG4gIGZhdGFsOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5mYXRhbFxuICB9LFxuICBlcnJvcjoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZXJyb3JcbiAgfSxcbiAgLy8gTGV2ZWwgMVxuICB3YXJuOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy53YXJuXG4gIH0sXG4gIC8vIExldmVsIDJcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5sb2dcbiAgfSxcbiAgLy8gTGV2ZWwgM1xuICBpbmZvOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy5pbmZvXG4gIH0sXG4gIHN1Y2Nlc3M6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLnN1Y2Nlc3NcbiAgfSxcbiAgZmFpbDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZmFpbFxuICB9LFxuICByZWFkeToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBzdGFydDoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuaW5mb1xuICB9LFxuICBib3g6IHtcbiAgICBsZXZlbDogTG9nTGV2ZWxzLmluZm9cbiAgfSxcbiAgLy8gTGV2ZWwgNFxuICBkZWJ1Zzoge1xuICAgIGxldmVsOiBMb2dMZXZlbHMuZGVidWdcbiAgfSxcbiAgLy8gTGV2ZWwgNVxuICB0cmFjZToge1xuICAgIGxldmVsOiBMb2dMZXZlbHMudHJhY2VcbiAgfSxcbiAgLy8gVmVyYm9zZVxuICB2ZXJib3NlOiB7XG4gICAgbGV2ZWw6IExvZ0xldmVscy52ZXJib3NlXG4gIH1cbn07XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCI7XG59XG5mdW5jdGlvbiBfZGVmdShiYXNlT2JqZWN0LCBkZWZhdWx0cywgbmFtZXNwYWNlID0gXCIuXCIsIG1lcmdlcikge1xuICBpZiAoIWlzT2JqZWN0KGRlZmF1bHRzKSkge1xuICAgIHJldHVybiBfZGVmdShiYXNlT2JqZWN0LCB7fSwgbmFtZXNwYWNlLCBtZXJnZXIpO1xuICB9XG4gIGNvbnN0IG9iamVjdCA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRzKTtcbiAgZm9yIChjb25zdCBrZXkgaW4gYmFzZU9iamVjdCkge1xuICAgIGlmIChrZXkgPT09IFwiX19wcm90b19fXCIgfHwga2V5ID09PSBcImNvbnN0cnVjdG9yXCIpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IGJhc2VPYmplY3Rba2V5XTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHZvaWQgMCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChtZXJnZXIgJiYgbWVyZ2VyKG9iamVjdCwga2V5LCB2YWx1ZSwgbmFtZXNwYWNlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBBcnJheS5pc0FycmF5KG9iamVjdFtrZXldKSkge1xuICAgICAgb2JqZWN0W2tleV0gPSBbLi4udmFsdWUsIC4uLm9iamVjdFtrZXldXTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHZhbHVlKSAmJiBpc09iamVjdChvYmplY3Rba2V5XSkpIHtcbiAgICAgIG9iamVjdFtrZXldID0gX2RlZnUoXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBvYmplY3Rba2V5XSxcbiAgICAgICAgKG5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6IFwiXCIpICsga2V5LnRvU3RyaW5nKCksXG4gICAgICAgIG1lcmdlclxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURlZnUobWVyZ2VyKSB7XG4gIHJldHVybiAoLi4uYXJndW1lbnRzXykgPT4gKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LXJlZHVjZVxuICAgIGFyZ3VtZW50c18ucmVkdWNlKChwLCBjKSA9PiBfZGVmdShwLCBjLCBcIlwiLCBtZXJnZXIpLCB7fSlcbiAgKTtcbn1cbmNvbnN0IGRlZnUgPSBjcmVhdGVEZWZ1KCk7XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gXCJbb2JqZWN0IE9iamVjdF1cIjtcbn1cbmZ1bmN0aW9uIGlzTG9nT2JqKGFyZykge1xuICBpZiAoIWlzUGxhaW5PYmplY3QoYXJnKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoIWFyZy5tZXNzYWdlICYmICFhcmcuYXJncykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoYXJnLnN0YWNrKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5sZXQgcGF1c2VkID0gZmFsc2U7XG5jb25zdCBxdWV1ZSA9IFtdO1xuY2xhc3MgQ29uc29sYSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHR5cGVzID0gb3B0aW9ucy50eXBlcyB8fCBMb2dUeXBlcztcbiAgICB0aGlzLm9wdGlvbnMgPSBkZWZ1KFxuICAgICAge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBkZWZhdWx0czogeyAuLi5vcHRpb25zLmRlZmF1bHRzIH0sXG4gICAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwob3B0aW9ucy5sZXZlbCwgdHlwZXMpLFxuICAgICAgICByZXBvcnRlcnM6IFsuLi5vcHRpb25zLnJlcG9ydGVycyB8fCBbXV1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGVzOiBMb2dUeXBlcyxcbiAgICAgICAgdGhyb3R0bGU6IDFlMyxcbiAgICAgICAgdGhyb3R0bGVNaW46IDUsXG4gICAgICAgIGZvcm1hdE9wdGlvbnM6IHtcbiAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgICAgICAgIGNvbG9yczogZmFsc2UsXG4gICAgICAgICAgY29tcGFjdDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdHlwZXMpIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZGVmYXVsdHMsXG4gICAgICAgIC4uLnR5cGVzW3R5cGVdXG4gICAgICB9O1xuICAgICAgdGhpc1t0eXBlXSA9IHRoaXMuX3dyYXBMb2dGbihkZWZhdWx0cyk7XG4gICAgICB0aGlzW3R5cGVdLnJhdyA9IHRoaXMuX3dyYXBMb2dGbihcbiAgICAgICAgZGVmYXVsdHMsXG4gICAgICAgIHRydWVcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMubW9ja0ZuKSB7XG4gICAgICB0aGlzLm1vY2tUeXBlcygpO1xuICAgIH1cbiAgICB0aGlzLl9sYXN0TG9nID0ge307XG4gIH1cbiAgZ2V0IGxldmVsKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGV2ZWw7XG4gIH1cbiAgc2V0IGxldmVsKGxldmVsKSB7XG4gICAgdGhpcy5vcHRpb25zLmxldmVsID0gX25vcm1hbGl6ZUxvZ0xldmVsKFxuICAgICAgbGV2ZWwsXG4gICAgICB0aGlzLm9wdGlvbnMudHlwZXMsXG4gICAgICB0aGlzLm9wdGlvbnMubGV2ZWxcbiAgICApO1xuICB9XG4gIHByb21wdChtZXNzYWdlLCBvcHRzKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMucHJvbXB0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJwcm9tcHQgaXMgbm90IHN1cHBvcnRlZCFcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucHJvbXB0KG1lc3NhZ2UsIG9wdHMpO1xuICB9XG4gIGNyZWF0ZShvcHRpb25zKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgQ29uc29sYSh7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSk7XG4gICAgaWYgKHRoaXMuX21vY2tGbikge1xuICAgICAgaW5zdGFuY2UubW9ja1R5cGVzKHRoaXMuX21vY2tGbik7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuICB3aXRoRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmRlZmF1bHRzLFxuICAgICAgICAuLi5kZWZhdWx0c1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIHdpdGhUYWcodGFnKSB7XG4gICAgcmV0dXJuIHRoaXMud2l0aERlZmF1bHRzKHtcbiAgICAgIHRhZzogdGhpcy5vcHRpb25zLmRlZmF1bHRzLnRhZyA/IHRoaXMub3B0aW9ucy5kZWZhdWx0cy50YWcgKyBcIjpcIiArIHRhZyA6IHRhZ1xuICAgIH0pO1xuICB9XG4gIGFkZFJlcG9ydGVyKHJlcG9ydGVyKSB7XG4gICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5wdXNoKHJlcG9ydGVyKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZW1vdmVSZXBvcnRlcihyZXBvcnRlcikge1xuICAgIGlmIChyZXBvcnRlcikge1xuICAgICAgY29uc3QgaSA9IHRoaXMub3B0aW9ucy5yZXBvcnRlcnMuaW5kZXhPZihyZXBvcnRlcik7XG4gICAgICBpZiAoaSA+PSAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzLnNwbGljZShpLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcHRpb25zLnJlcG9ydGVycy5zcGxpY2UoMCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHNldFJlcG9ydGVycyhyZXBvcnRlcnMpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVwb3J0ZXJzID0gQXJyYXkuaXNBcnJheShyZXBvcnRlcnMpID8gcmVwb3J0ZXJzIDogW3JlcG9ydGVyc107XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd3JhcEFsbCgpIHtcbiAgICB0aGlzLndyYXBDb25zb2xlKCk7XG4gICAgdGhpcy53cmFwU3RkKCk7XG4gIH1cbiAgcmVzdG9yZUFsbCgpIHtcbiAgICB0aGlzLnJlc3RvcmVDb25zb2xlKCk7XG4gICAgdGhpcy5yZXN0b3JlU3RkKCk7XG4gIH1cbiAgd3JhcENvbnNvbGUoKSB7XG4gICAgZm9yIChjb25zdCB0eXBlIGluIHRoaXMub3B0aW9ucy50eXBlcykge1xuICAgICAgaWYgKCFjb25zb2xlW1wiX19cIiArIHR5cGVdKSB7XG4gICAgICAgIGNvbnNvbGVbXCJfX1wiICsgdHlwZV0gPSBjb25zb2xlW3R5cGVdO1xuICAgICAgfVxuICAgICAgY29uc29sZVt0eXBlXSA9IHRoaXNbdHlwZV0ucmF3O1xuICAgIH1cbiAgfVxuICByZXN0b3JlQ29uc29sZSgpIHtcbiAgICBmb3IgKGNvbnN0IHR5cGUgaW4gdGhpcy5vcHRpb25zLnR5cGVzKSB7XG4gICAgICBpZiAoY29uc29sZVtcIl9fXCIgKyB0eXBlXSkge1xuICAgICAgICBjb25zb2xlW3R5cGVdID0gY29uc29sZVtcIl9fXCIgKyB0eXBlXTtcbiAgICAgICAgZGVsZXRlIGNvbnNvbGVbXCJfX1wiICsgdHlwZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHdyYXBTdGQoKSB7XG4gICAgdGhpcy5fd3JhcFN0cmVhbSh0aGlzLm9wdGlvbnMuc3Rkb3V0LCBcImxvZ1wiKTtcbiAgICB0aGlzLl93cmFwU3RyZWFtKHRoaXMub3B0aW9ucy5zdGRlcnIsIFwibG9nXCIpO1xuICB9XG4gIF93cmFwU3RyZWFtKHN0cmVhbSwgdHlwZSkge1xuICAgIGlmICghc3RyZWFtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS5fX3dyaXRlID0gc3RyZWFtLndyaXRlO1xuICAgIH1cbiAgICBzdHJlYW0ud3JpdGUgPSAoZGF0YSkgPT4ge1xuICAgICAgdGhpc1t0eXBlXS5yYXcoU3RyaW5nKGRhdGEpLnRyaW0oKSk7XG4gICAgfTtcbiAgfVxuICByZXN0b3JlU3RkKCkge1xuICAgIHRoaXMuX3Jlc3RvcmVTdHJlYW0odGhpcy5vcHRpb25zLnN0ZG91dCk7XG4gICAgdGhpcy5fcmVzdG9yZVN0cmVhbSh0aGlzLm9wdGlvbnMuc3RkZXJyKTtcbiAgfVxuICBfcmVzdG9yZVN0cmVhbShzdHJlYW0pIHtcbiAgICBpZiAoIXN0cmVhbSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc3RyZWFtLl9fd3JpdGUpIHtcbiAgICAgIHN0cmVhbS53cml0ZSA9IHN0cmVhbS5fX3dyaXRlO1xuICAgICAgZGVsZXRlIHN0cmVhbS5fX3dyaXRlO1xuICAgIH1cbiAgfVxuICBwYXVzZUxvZ3MoKSB7XG4gICAgcGF1c2VkID0gdHJ1ZTtcbiAgfVxuICByZXN1bWVMb2dzKCkge1xuICAgIHBhdXNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IF9xdWV1ZSA9IHF1ZXVlLnNwbGljZSgwKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgX3F1ZXVlKSB7XG4gICAgICBpdGVtWzBdLl9sb2dGbihpdGVtWzFdLCBpdGVtWzJdKTtcbiAgICB9XG4gIH1cbiAgbW9ja1R5cGVzKG1vY2tGbikge1xuICAgIGNvbnN0IF9tb2NrRm4gPSBtb2NrRm4gfHwgdGhpcy5vcHRpb25zLm1vY2tGbjtcbiAgICB0aGlzLl9tb2NrRm4gPSBfbW9ja0ZuO1xuICAgIGlmICh0eXBlb2YgX21vY2tGbiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAoY29uc3QgdHlwZSBpbiB0aGlzLm9wdGlvbnMudHlwZXMpIHtcbiAgICAgIHRoaXNbdHlwZV0gPSBfbW9ja0ZuKHR5cGUsIHRoaXMub3B0aW9ucy50eXBlc1t0eXBlXSkgfHwgdGhpc1t0eXBlXTtcbiAgICAgIHRoaXNbdHlwZV0ucmF3ID0gdGhpc1t0eXBlXTtcbiAgICB9XG4gIH1cbiAgX3dyYXBMb2dGbihkZWZhdWx0cywgaXNSYXcpIHtcbiAgICByZXR1cm4gKC4uLmFyZ3MpID0+IHtcbiAgICAgIGlmIChwYXVzZWQpIHtcbiAgICAgICAgcXVldWUucHVzaChbdGhpcywgZGVmYXVsdHMsIGFyZ3MsIGlzUmF3XSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9sb2dGbihkZWZhdWx0cywgYXJncywgaXNSYXcpO1xuICAgIH07XG4gIH1cbiAgX2xvZ0ZuKGRlZmF1bHRzLCBhcmdzLCBpc1Jhdykge1xuICAgIGlmICgoZGVmYXVsdHMubGV2ZWwgfHwgMCkgPiB0aGlzLmxldmVsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGxvZ09iaiA9IHtcbiAgICAgIGRhdGU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLFxuICAgICAgYXJnczogW10sXG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIGxldmVsOiBfbm9ybWFsaXplTG9nTGV2ZWwoZGVmYXVsdHMubGV2ZWwsIHRoaXMub3B0aW9ucy50eXBlcylcbiAgICB9O1xuICAgIGlmICghaXNSYXcgJiYgYXJncy5sZW5ndGggPT09IDEgJiYgaXNMb2dPYmooYXJnc1swXSkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24obG9nT2JqLCBhcmdzWzBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nT2JqLmFyZ3MgPSBbLi4uYXJnc107XG4gICAgfVxuICAgIGlmIChsb2dPYmoubWVzc2FnZSkge1xuICAgICAgbG9nT2JqLmFyZ3MudW5zaGlmdChsb2dPYmoubWVzc2FnZSk7XG4gICAgICBkZWxldGUgbG9nT2JqLm1lc3NhZ2U7XG4gICAgfVxuICAgIGlmIChsb2dPYmouYWRkaXRpb25hbCkge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxvZ09iai5hZGRpdGlvbmFsKSkge1xuICAgICAgICBsb2dPYmouYWRkaXRpb25hbCA9IGxvZ09iai5hZGRpdGlvbmFsLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgfVxuICAgICAgbG9nT2JqLmFyZ3MucHVzaChcIlxcblwiICsgbG9nT2JqLmFkZGl0aW9uYWwuam9pbihcIlxcblwiKSk7XG4gICAgICBkZWxldGUgbG9nT2JqLmFkZGl0aW9uYWw7XG4gICAgfVxuICAgIGxvZ09iai50eXBlID0gdHlwZW9mIGxvZ09iai50eXBlID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnR5cGUudG9Mb3dlckNhc2UoKSA6IFwibG9nXCI7XG4gICAgbG9nT2JqLnRhZyA9IHR5cGVvZiBsb2dPYmoudGFnID09PSBcInN0cmluZ1wiID8gbG9nT2JqLnRhZyA6IFwiXCI7XG4gICAgY29uc3QgcmVzb2x2ZUxvZyA9IChuZXdMb2cgPSBmYWxzZSkgPT4ge1xuICAgICAgY29uc3QgcmVwZWF0ZWQgPSAodGhpcy5fbGFzdExvZy5jb3VudCB8fCAwKSAtIHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbjtcbiAgICAgIGlmICh0aGlzLl9sYXN0TG9nLm9iamVjdCAmJiByZXBlYXRlZCA+IDApIHtcbiAgICAgICAgY29uc3QgYXJnczIgPSBbLi4udGhpcy5fbGFzdExvZy5vYmplY3QuYXJnc107XG4gICAgICAgIGlmIChyZXBlYXRlZCA+IDEpIHtcbiAgICAgICAgICBhcmdzMi5wdXNoKGAocmVwZWF0ZWQgJHtyZXBlYXRlZH0gdGltZXMpYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbG9nKHsgLi4udGhpcy5fbGFzdExvZy5vYmplY3QsIGFyZ3M6IGFyZ3MyIH0pO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLmNvdW50ID0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdMb2cpIHtcbiAgICAgICAgdGhpcy5fbGFzdExvZy5vYmplY3QgPSBsb2dPYmo7XG4gICAgICAgIHRoaXMuX2xvZyhsb2dPYmopO1xuICAgICAgfVxuICAgIH07XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xhc3RMb2cudGltZW91dCk7XG4gICAgY29uc3QgZGlmZlRpbWUgPSB0aGlzLl9sYXN0TG9nLnRpbWUgJiYgbG9nT2JqLmRhdGUgPyBsb2dPYmouZGF0ZS5nZXRUaW1lKCkgLSB0aGlzLl9sYXN0TG9nLnRpbWUuZ2V0VGltZSgpIDogMDtcbiAgICB0aGlzLl9sYXN0TG9nLnRpbWUgPSBsb2dPYmouZGF0ZTtcbiAgICBpZiAoZGlmZlRpbWUgPCB0aGlzLm9wdGlvbnMudGhyb3R0bGUpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRMb2cgPSBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgbG9nT2JqLnR5cGUsXG4gICAgICAgICAgbG9nT2JqLnRhZyxcbiAgICAgICAgICBsb2dPYmouYXJnc1xuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgaXNTYW1lTG9nID0gdGhpcy5fbGFzdExvZy5zZXJpYWxpemVkID09PSBzZXJpYWxpemVkTG9nO1xuICAgICAgICB0aGlzLl9sYXN0TG9nLnNlcmlhbGl6ZWQgPSBzZXJpYWxpemVkTG9nO1xuICAgICAgICBpZiAoaXNTYW1lTG9nKSB7XG4gICAgICAgICAgdGhpcy5fbGFzdExvZy5jb3VudCA9ICh0aGlzLl9sYXN0TG9nLmNvdW50IHx8IDApICsgMTtcbiAgICAgICAgICBpZiAodGhpcy5fbGFzdExvZy5jb3VudCA+IHRoaXMub3B0aW9ucy50aHJvdHRsZU1pbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdExvZy50aW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgcmVzb2x2ZUxvZyxcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnRocm90dGxlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVMb2codHJ1ZSk7XG4gIH1cbiAgX2xvZyhsb2dPYmopIHtcbiAgICBmb3IgKGNvbnN0IHJlcG9ydGVyIG9mIHRoaXMub3B0aW9ucy5yZXBvcnRlcnMpIHtcbiAgICAgIHJlcG9ydGVyLmxvZyhsb2dPYmosIHtcbiAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIF9ub3JtYWxpemVMb2dMZXZlbChpbnB1dCwgdHlwZXMgPSB7fSwgZGVmYXVsdExldmVsID0gMykge1xuICBpZiAoaW5wdXQgPT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkZWZhdWx0TGV2ZWw7XG4gIH1cbiAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBpZiAodHlwZXNbaW5wdXRdICYmIHR5cGVzW2lucHV0XS5sZXZlbCAhPT0gdm9pZCAwKSB7XG4gICAgcmV0dXJuIHR5cGVzW2lucHV0XS5sZXZlbDtcbiAgfVxuICByZXR1cm4gZGVmYXVsdExldmVsO1xufVxuQ29uc29sYS5wcm90b3R5cGUuYWRkID0gQ29uc29sYS5wcm90b3R5cGUuYWRkUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS5yZW1vdmUgPSBDb25zb2xhLnByb3RvdHlwZS5yZW1vdmVSZXBvcnRlcjtcbkNvbnNvbGEucHJvdG90eXBlLmNsZWFyID0gQ29uc29sYS5wcm90b3R5cGUucmVtb3ZlUmVwb3J0ZXI7XG5Db25zb2xhLnByb3RvdHlwZS53aXRoU2NvcGUgPSBDb25zb2xhLnByb3RvdHlwZS53aXRoVGFnO1xuQ29uc29sYS5wcm90b3R5cGUubW9jayA9IENvbnNvbGEucHJvdG90eXBlLm1vY2tUeXBlcztcbkNvbnNvbGEucHJvdG90eXBlLnBhdXNlID0gQ29uc29sYS5wcm90b3R5cGUucGF1c2VMb2dzO1xuQ29uc29sYS5wcm90b3R5cGUucmVzdW1lID0gQ29uc29sYS5wcm90b3R5cGUucmVzdW1lTG9ncztcbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIHJldHVybiBuZXcgQ29uc29sYShvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgQ29uc29sYSwgTG9nTGV2ZWxzLCBMb2dUeXBlcywgY3JlYXRlQ29uc29sYSB9O1xuIiwgImltcG9ydCB7IGZvcm1hdFdpdGhPcHRpb25zIH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IHNlcCB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmZ1bmN0aW9uIHBhcnNlU3RhY2soc3RhY2spIHtcbiAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKSArIHNlcDtcbiAgY29uc3QgbGluZXMgPSBzdGFjay5zcGxpdChcIlxcblwiKS5zcGxpY2UoMSkubWFwKChsKSA9PiBsLnRyaW0oKS5yZXBsYWNlKFwiZmlsZTovL1wiLCBcIlwiKS5yZXBsYWNlKGN3ZCwgXCJcIikpO1xuICByZXR1cm4gbGluZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlU3RyZWFtKGRhdGEsIHN0cmVhbSkge1xuICBjb25zdCB3cml0ZSA9IHN0cmVhbS5fX3dyaXRlIHx8IHN0cmVhbS53cml0ZTtcbiAgcmV0dXJuIHdyaXRlLmNhbGwoc3RyZWFtLCBkYXRhKTtcbn1cblxuY29uc3QgYnJhY2tldCA9ICh4KSA9PiB4ID8gYFske3h9XWAgOiBcIlwiO1xuY2xhc3MgQmFzaWNSZXBvcnRlciB7XG4gIGZvcm1hdFN0YWNrKHN0YWNrLCBvcHRzKSB7XG4gICAgcmV0dXJuIFwiICBcIiArIHBhcnNlU3RhY2soc3RhY2spLmpvaW4oXCJcXG4gIFwiKTtcbiAgfVxuICBmb3JtYXRBcmdzKGFyZ3MsIG9wdHMpIHtcbiAgICBjb25zdCBfYXJncyA9IGFyZ3MubWFwKChhcmcpID0+IHtcbiAgICAgIGlmIChhcmcgJiYgdHlwZW9mIGFyZy5zdGFjayA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gYXJnLm1lc3NhZ2UgKyBcIlxcblwiICsgdGhpcy5mb3JtYXRTdGFjayhhcmcuc3RhY2ssIG9wdHMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFyZztcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybWF0V2l0aE9wdGlvbnMob3B0cywgLi4uX2FyZ3MpO1xuICB9XG4gIGZvcm1hdERhdGUoZGF0ZSwgb3B0cykge1xuICAgIHJldHVybiBvcHRzLmRhdGUgPyBkYXRlLnRvTG9jYWxlVGltZVN0cmluZygpIDogXCJcIjtcbiAgfVxuICBmaWx0ZXJBbmRKb2luKGFycikge1xuICAgIHJldHVybiBhcnIuZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpO1xuICB9XG4gIGZvcm1hdExvZ09iaihsb2dPYmosIG9wdHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKTtcbiAgICBpZiAobG9nT2JqLnR5cGUgPT09IFwiYm94XCIpIHtcbiAgICAgIHJldHVybiBcIlxcblwiICsgW1xuICAgICAgICBicmFja2V0KGxvZ09iai50YWcpLFxuICAgICAgICBsb2dPYmoudGl0bGUgJiYgbG9nT2JqLnRpdGxlLFxuICAgICAgICAuLi5tZXNzYWdlLnNwbGl0KFwiXFxuXCIpXG4gICAgICBdLmZpbHRlcihCb29sZWFuKS5tYXAoKGwpID0+IFwiID4gXCIgKyBsKS5qb2luKFwiXFxuXCIpICsgXCJcXG5cIjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyQW5kSm9pbihbXG4gICAgICBicmFja2V0KGxvZ09iai50eXBlKSxcbiAgICAgIGJyYWNrZXQobG9nT2JqLnRhZyksXG4gICAgICBtZXNzYWdlXG4gICAgXSk7XG4gIH1cbiAgbG9nKGxvZ09iaiwgY3R4KSB7XG4gICAgY29uc3QgbGluZSA9IHRoaXMuZm9ybWF0TG9nT2JqKGxvZ09iaiwge1xuICAgICAgY29sdW1uczogY3R4Lm9wdGlvbnMuc3Rkb3V0LmNvbHVtbnMgfHwgMCxcbiAgICAgIC4uLmN0eC5vcHRpb25zLmZvcm1hdE9wdGlvbnNcbiAgICB9KTtcbiAgICByZXR1cm4gd3JpdGVTdHJlYW0oXG4gICAgICBsaW5lICsgXCJcXG5cIixcbiAgICAgIGxvZ09iai5sZXZlbCA8IDIgPyBjdHgub3B0aW9ucy5zdGRlcnIgfHwgcHJvY2Vzcy5zdGRlcnIgOiBjdHgub3B0aW9ucy5zdGRvdXQgfHwgcHJvY2Vzcy5zdGRvdXRcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB7IEJhc2ljUmVwb3J0ZXIgYXMgQiwgcGFyc2VTdGFjayBhcyBwIH07XG4iLCAiaW1wb3J0ICogYXMgdHR5IGZyb20gJ25vZGU6dHR5JztcblxuY29uc3Qge1xuICBlbnYgPSB7fSxcbiAgYXJndiA9IFtdLFxuICBwbGF0Zm9ybSA9IFwiXCJcbn0gPSB0eXBlb2YgcHJvY2VzcyA9PT0gXCJ1bmRlZmluZWRcIiA/IHt9IDogcHJvY2VzcztcbmNvbnN0IGlzRGlzYWJsZWQgPSBcIk5PX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLW5vLWNvbG9yXCIpO1xuY29uc3QgaXNGb3JjZWQgPSBcIkZPUkNFX0NPTE9SXCIgaW4gZW52IHx8IGFyZ3YuaW5jbHVkZXMoXCItLWNvbG9yXCIpO1xuY29uc3QgaXNXaW5kb3dzID0gcGxhdGZvcm0gPT09IFwid2luMzJcIjtcbmNvbnN0IGlzRHVtYlRlcm1pbmFsID0gZW52LlRFUk0gPT09IFwiZHVtYlwiO1xuY29uc3QgaXNDb21wYXRpYmxlVGVybWluYWwgPSB0dHkgJiYgdHR5LmlzYXR0eSAmJiB0dHkuaXNhdHR5KDEpICYmIGVudi5URVJNICYmICFpc0R1bWJUZXJtaW5hbDtcbmNvbnN0IGlzQ0kgPSBcIkNJXCIgaW4gZW52ICYmIChcIkdJVEhVQl9BQ1RJT05TXCIgaW4gZW52IHx8IFwiR0lUTEFCX0NJXCIgaW4gZW52IHx8IFwiQ0lSQ0xFQ0lcIiBpbiBlbnYpO1xuY29uc3QgaXNDb2xvclN1cHBvcnRlZCA9ICFpc0Rpc2FibGVkICYmIChpc0ZvcmNlZCB8fCBpc1dpbmRvd3MgJiYgIWlzRHVtYlRlcm1pbmFsIHx8IGlzQ29tcGF0aWJsZVRlcm1pbmFsIHx8IGlzQ0kpO1xuZnVuY3Rpb24gcmVwbGFjZUNsb3NlKGluZGV4LCBzdHJpbmcsIGNsb3NlLCByZXBsYWNlLCBoZWFkID0gc3RyaW5nLnNsaWNlKDAsIE1hdGgubWF4KDAsIGluZGV4KSkgKyByZXBsYWNlLCB0YWlsID0gc3RyaW5nLnNsaWNlKE1hdGgubWF4KDAsIGluZGV4ICsgY2xvc2UubGVuZ3RoKSksIG5leHQgPSB0YWlsLmluZGV4T2YoY2xvc2UpKSB7XG4gIHJldHVybiBoZWFkICsgKG5leHQgPCAwID8gdGFpbCA6IHJlcGxhY2VDbG9zZShuZXh0LCB0YWlsLCBjbG9zZSwgcmVwbGFjZSkpO1xufVxuZnVuY3Rpb24gY2xlYXJCbGVlZChpbmRleCwgc3RyaW5nLCBvcGVuLCBjbG9zZSwgcmVwbGFjZSkge1xuICByZXR1cm4gaW5kZXggPCAwID8gb3BlbiArIHN0cmluZyArIGNsb3NlIDogb3BlbiArIHJlcGxhY2VDbG9zZShpbmRleCwgc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSkgKyBjbG9zZTtcbn1cbmZ1bmN0aW9uIGZpbHRlckVtcHR5KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbiwgYXQgPSBvcGVuLmxlbmd0aCArIDEpIHtcbiAgcmV0dXJuIChzdHJpbmcpID0+IHN0cmluZyB8fCAhKHN0cmluZyA9PT0gXCJcIiB8fCBzdHJpbmcgPT09IHZvaWQgMCkgPyBjbGVhckJsZWVkKFxuICAgIChcIlwiICsgc3RyaW5nKS5pbmRleE9mKGNsb3NlLCBhdCksXG4gICAgc3RyaW5nLFxuICAgIG9wZW4sXG4gICAgY2xvc2UsXG4gICAgcmVwbGFjZVxuICApIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGluaXQob3BlbiwgY2xvc2UsIHJlcGxhY2UpIHtcbiAgcmV0dXJuIGZpbHRlckVtcHR5KGBcXHgxQlske29wZW59bWAsIGBcXHgxQlske2Nsb3NlfW1gLCByZXBsYWNlKTtcbn1cbmNvbnN0IGNvbG9yRGVmcyA9IHtcbiAgcmVzZXQ6IGluaXQoMCwgMCksXG4gIGJvbGQ6IGluaXQoMSwgMjIsIFwiXFx4MUJbMjJtXFx4MUJbMW1cIiksXG4gIGRpbTogaW5pdCgyLCAyMiwgXCJcXHgxQlsyMm1cXHgxQlsybVwiKSxcbiAgaXRhbGljOiBpbml0KDMsIDIzKSxcbiAgdW5kZXJsaW5lOiBpbml0KDQsIDI0KSxcbiAgaW52ZXJzZTogaW5pdCg3LCAyNyksXG4gIGhpZGRlbjogaW5pdCg4LCAyOCksXG4gIHN0cmlrZXRocm91Z2g6IGluaXQoOSwgMjkpLFxuICBibGFjazogaW5pdCgzMCwgMzkpLFxuICByZWQ6IGluaXQoMzEsIDM5KSxcbiAgZ3JlZW46IGluaXQoMzIsIDM5KSxcbiAgeWVsbG93OiBpbml0KDMzLCAzOSksXG4gIGJsdWU6IGluaXQoMzQsIDM5KSxcbiAgbWFnZW50YTogaW5pdCgzNSwgMzkpLFxuICBjeWFuOiBpbml0KDM2LCAzOSksXG4gIHdoaXRlOiBpbml0KDM3LCAzOSksXG4gIGdyYXk6IGluaXQoOTAsIDM5KSxcbiAgYmdCbGFjazogaW5pdCg0MCwgNDkpLFxuICBiZ1JlZDogaW5pdCg0MSwgNDkpLFxuICBiZ0dyZWVuOiBpbml0KDQyLCA0OSksXG4gIGJnWWVsbG93OiBpbml0KDQzLCA0OSksXG4gIGJnQmx1ZTogaW5pdCg0NCwgNDkpLFxuICBiZ01hZ2VudGE6IGluaXQoNDUsIDQ5KSxcbiAgYmdDeWFuOiBpbml0KDQ2LCA0OSksXG4gIGJnV2hpdGU6IGluaXQoNDcsIDQ5KSxcbiAgYmxhY2tCcmlnaHQ6IGluaXQoOTAsIDM5KSxcbiAgcmVkQnJpZ2h0OiBpbml0KDkxLCAzOSksXG4gIGdyZWVuQnJpZ2h0OiBpbml0KDkyLCAzOSksXG4gIHllbGxvd0JyaWdodDogaW5pdCg5MywgMzkpLFxuICBibHVlQnJpZ2h0OiBpbml0KDk0LCAzOSksXG4gIG1hZ2VudGFCcmlnaHQ6IGluaXQoOTUsIDM5KSxcbiAgY3lhbkJyaWdodDogaW5pdCg5NiwgMzkpLFxuICB3aGl0ZUJyaWdodDogaW5pdCg5NywgMzkpLFxuICBiZ0JsYWNrQnJpZ2h0OiBpbml0KDEwMCwgNDkpLFxuICBiZ1JlZEJyaWdodDogaW5pdCgxMDEsIDQ5KSxcbiAgYmdHcmVlbkJyaWdodDogaW5pdCgxMDIsIDQ5KSxcbiAgYmdZZWxsb3dCcmlnaHQ6IGluaXQoMTAzLCA0OSksXG4gIGJnQmx1ZUJyaWdodDogaW5pdCgxMDQsIDQ5KSxcbiAgYmdNYWdlbnRhQnJpZ2h0OiBpbml0KDEwNSwgNDkpLFxuICBiZ0N5YW5CcmlnaHQ6IGluaXQoMTA2LCA0OSksXG4gIGJnV2hpdGVCcmlnaHQ6IGluaXQoMTA3LCA0OSlcbn07XG5mdW5jdGlvbiBjcmVhdGVDb2xvcnModXNlQ29sb3IgPSBpc0NvbG9yU3VwcG9ydGVkKSB7XG4gIHJldHVybiB1c2VDb2xvciA/IGNvbG9yRGVmcyA6IE9iamVjdC5mcm9tRW50cmllcyhPYmplY3Qua2V5cyhjb2xvckRlZnMpLm1hcCgoa2V5KSA9PiBba2V5LCBTdHJpbmddKSk7XG59XG5jb25zdCBjb2xvcnMgPSBjcmVhdGVDb2xvcnMoKTtcbmZ1bmN0aW9uIGdldENvbG9yKGNvbG9yLCBmYWxsYmFjayA9IFwicmVzZXRcIikge1xuICByZXR1cm4gY29sb3JzW2NvbG9yXSB8fCBjb2xvcnNbZmFsbGJhY2tdO1xufVxuZnVuY3Rpb24gY29sb3JpemUoY29sb3IsIHRleHQpIHtcbiAgcmV0dXJuIGdldENvbG9yKGNvbG9yKSh0ZXh0KTtcbn1cblxuY29uc3QgYW5zaVJlZ2V4ID0gW1xuICBcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcbiAgXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW5xLXV5PT48fl0pKVwiXG5dLmpvaW4oXCJ8XCIpO1xuZnVuY3Rpb24gc3RyaXBBbnNpKHRleHQpIHtcbiAgcmV0dXJuIHRleHQucmVwbGFjZShuZXcgUmVnRXhwKGFuc2lSZWdleCwgXCJnXCIpLCBcIlwiKTtcbn1cbmZ1bmN0aW9uIGNlbnRlckFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBjb25zdCBmcmVlTGVmdCA9IE1hdGguZmxvb3IoZnJlZSAvIDIpO1xuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlTGVmdCB8fCBpID49IGZyZWVMZWZ0ICsgc3RyLmxlbmd0aCA/IHNwYWNlIDogc3RyW2kgLSBmcmVlTGVmdF07XG4gIH1cbiAgcmV0dXJuIF9zdHI7XG59XG5mdW5jdGlvbiByaWdodEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGNvbnN0IGZyZWUgPSBsZW4gLSBzdHIubGVuZ3RoO1xuICBpZiAoZnJlZSA8PSAwKSB7XG4gICAgcmV0dXJuIHN0cjtcbiAgfVxuICBsZXQgX3N0ciA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBfc3RyICs9IGkgPCBmcmVlID8gc3BhY2UgOiBzdHJbaSAtIGZyZWVdO1xuICB9XG4gIHJldHVybiBfc3RyO1xufVxuZnVuY3Rpb24gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSA9IFwiIFwiKSB7XG4gIGxldCBfc3RyID0gXCJcIjtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIF9zdHIgKz0gaSA8IHN0ci5sZW5ndGggPyBzdHJbaV0gOiBzcGFjZTtcbiAgfVxuICByZXR1cm4gX3N0cjtcbn1cbmZ1bmN0aW9uIGFsaWduKGFsaWdubWVudCwgc3RyLCBsZW4sIHNwYWNlID0gXCIgXCIpIHtcbiAgc3dpdGNoIChhbGlnbm1lbnQpIHtcbiAgICBjYXNlIFwibGVmdFwiOiB7XG4gICAgICByZXR1cm4gbGVmdEFsaWduKHN0ciwgbGVuLCBzcGFjZSk7XG4gICAgfVxuICAgIGNhc2UgXCJyaWdodFwiOiB7XG4gICAgICByZXR1cm4gcmlnaHRBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBjYXNlIFwiY2VudGVyXCI6IHtcbiAgICAgIHJldHVybiBjZW50ZXJBbGlnbihzdHIsIGxlbiwgc3BhY2UpO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBib3hTdHlsZVByZXNldHMgPSB7XG4gIHNvbGlkOiB7XG4gICAgdGw6IFwiXFx1MjUwQ1wiLFxuICAgIHRyOiBcIlxcdTI1MTBcIixcbiAgICBibDogXCJcXHUyNTE0XCIsXG4gICAgYnI6IFwiXFx1MjUxOFwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH0sXG4gIGRvdWJsZToge1xuICAgIHRsOiBcIlxcdTI1NTRcIixcbiAgICB0cjogXCJcXHUyNTU3XCIsXG4gICAgYmw6IFwiXFx1MjU1QVwiLFxuICAgIGJyOiBcIlxcdTI1NURcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBkb3VibGVTaW5nbGU6IHtcbiAgICB0bDogXCJcXHUyNTUzXCIsXG4gICAgdHI6IFwiXFx1MjU1NlwiLFxuICAgIGJsOiBcIlxcdTI1NTlcIixcbiAgICBicjogXCJcXHUyNTVDXCIsXG4gICAgaDogXCJcXHUyNTAwXCIsXG4gICAgdjogXCJcXHUyNTUxXCJcbiAgfSxcbiAgZG91YmxlU2luZ2xlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1MDBcIixcbiAgICB2OiBcIlxcdTI1NTFcIlxuICB9LFxuICBzaW5nbGVUaGljazoge1xuICAgIHRsOiBcIlxcdTI1MEZcIixcbiAgICB0cjogXCJcXHUyNTEzXCIsXG4gICAgYmw6IFwiXFx1MjUxN1wiLFxuICAgIGJyOiBcIlxcdTI1MUJcIixcbiAgICBoOiBcIlxcdTI1MDFcIixcbiAgICB2OiBcIlxcdTI1MDNcIlxuICB9LFxuICBzaW5nbGVEb3VibGU6IHtcbiAgICB0bDogXCJcXHUyNTUyXCIsXG4gICAgdHI6IFwiXFx1MjU1NVwiLFxuICAgIGJsOiBcIlxcdTI1NThcIixcbiAgICBicjogXCJcXHUyNTVCXCIsXG4gICAgaDogXCJcXHUyNTUwXCIsXG4gICAgdjogXCJcXHUyNTAyXCJcbiAgfSxcbiAgc2luZ2xlRG91YmxlUm91bmRlZDoge1xuICAgIHRsOiBcIlxcdTI1NkRcIixcbiAgICB0cjogXCJcXHUyNTZFXCIsXG4gICAgYmw6IFwiXFx1MjU3MFwiLFxuICAgIGJyOiBcIlxcdTI1NkZcIixcbiAgICBoOiBcIlxcdTI1NTBcIixcbiAgICB2OiBcIlxcdTI1MDJcIlxuICB9LFxuICByb3VuZGVkOiB7XG4gICAgdGw6IFwiXFx1MjU2RFwiLFxuICAgIHRyOiBcIlxcdTI1NkVcIixcbiAgICBibDogXCJcXHUyNTcwXCIsXG4gICAgYnI6IFwiXFx1MjU2RlwiLFxuICAgIGg6IFwiXFx1MjUwMFwiLFxuICAgIHY6IFwiXFx1MjUwMlwiXG4gIH1cbn07XG5jb25zdCBkZWZhdWx0U3R5bGUgPSB7XG4gIGJvcmRlckNvbG9yOiBcIndoaXRlXCIsXG4gIGJvcmRlclN0eWxlOiBcInJvdW5kZWRcIixcbiAgdmFsaWduOiBcImNlbnRlclwiLFxuICBwYWRkaW5nOiAyLFxuICBtYXJnaW5MZWZ0OiAxLFxuICBtYXJnaW5Ub3A6IDEsXG4gIG1hcmdpbkJvdHRvbTogMVxufTtcbmZ1bmN0aW9uIGJveCh0ZXh0LCBfb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG9wdHMgPSB7XG4gICAgLi4uX29wdHMsXG4gICAgc3R5bGU6IHtcbiAgICAgIC4uLmRlZmF1bHRTdHlsZSxcbiAgICAgIC4uLl9vcHRzLnN0eWxlXG4gICAgfVxuICB9O1xuICBjb25zdCB0ZXh0TGluZXMgPSB0ZXh0LnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCBib3hMaW5lcyA9IFtdO1xuICBjb25zdCBfY29sb3IgPSBnZXRDb2xvcihvcHRzLnN0eWxlLmJvcmRlckNvbG9yKTtcbiAgY29uc3QgYm9yZGVyU3R5bGUgPSB7XG4gICAgLi4udHlwZW9mIG9wdHMuc3R5bGUuYm9yZGVyU3R5bGUgPT09IFwic3RyaW5nXCIgPyBib3hTdHlsZVByZXNldHNbb3B0cy5zdHlsZS5ib3JkZXJTdHlsZV0gfHwgYm94U3R5bGVQcmVzZXRzLnNvbGlkIDogb3B0cy5zdHlsZS5ib3JkZXJTdHlsZVxuICB9O1xuICBpZiAoX2NvbG9yKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gYm9yZGVyU3R5bGUpIHtcbiAgICAgIGJvcmRlclN0eWxlW2tleV0gPSBfY29sb3IoXG4gICAgICAgIGJvcmRlclN0eWxlW2tleV1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIGNvbnN0IHBhZGRpbmdPZmZzZXQgPSBvcHRzLnN0eWxlLnBhZGRpbmcgJSAyID09PSAwID8gb3B0cy5zdHlsZS5wYWRkaW5nIDogb3B0cy5zdHlsZS5wYWRkaW5nICsgMTtcbiAgY29uc3QgaGVpZ2h0ID0gdGV4dExpbmVzLmxlbmd0aCArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoID0gTWF0aC5tYXgoLi4udGV4dExpbmVzLm1hcCgobGluZSkgPT4gbGluZS5sZW5ndGgpKSArIHBhZGRpbmdPZmZzZXQ7XG4gIGNvbnN0IHdpZHRoT2Zmc2V0ID0gd2lkdGggKyBwYWRkaW5nT2Zmc2V0O1xuICBjb25zdCBsZWZ0U3BhY2UgPSBvcHRzLnN0eWxlLm1hcmdpbkxlZnQgPiAwID8gXCIgXCIucmVwZWF0KG9wdHMuc3R5bGUubWFyZ2luTGVmdCkgOiBcIlwiO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Ub3AgPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpblRvcCkpO1xuICB9XG4gIGlmIChvcHRzLnRpdGxlKSB7XG4gICAgY29uc3QgbGVmdCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgTWF0aC5mbG9vcigod2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoKSAvIDIpXG4gICAgKTtcbiAgICBjb25zdCByaWdodCA9IGJvcmRlclN0eWxlLmgucmVwZWF0KFxuICAgICAgd2lkdGggLSBzdHJpcEFuc2kob3B0cy50aXRsZSkubGVuZ3RoIC0gc3RyaXBBbnNpKGxlZnQpLmxlbmd0aCArIHBhZGRpbmdPZmZzZXRcbiAgICApO1xuICAgIGJveExpbmVzLnB1c2goXG4gICAgICBgJHtsZWZ0U3BhY2V9JHtib3JkZXJTdHlsZS50bH0ke2xlZnR9JHtvcHRzLnRpdGxlfSR7cmlnaHR9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBib3hMaW5lcy5wdXNoKFxuICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudGx9JHtib3JkZXJTdHlsZS5oLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS50cn1gXG4gICAgKTtcbiAgfVxuICBjb25zdCB2YWxpZ25PZmZzZXQgPSBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJjZW50ZXJcIiA/IE1hdGguZmxvb3IoKGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGgpIC8gMikgOiBvcHRzLnN0eWxlLnZhbGlnbiA9PT0gXCJ0b3BcIiA/IGhlaWdodCAtIHRleHRMaW5lcy5sZW5ndGggLSBwYWRkaW5nT2Zmc2V0IDogaGVpZ2h0IC0gdGV4dExpbmVzLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykge1xuICAgIGlmIChpIDwgdmFsaWduT2Zmc2V0IHx8IGkgPj0gdmFsaWduT2Zmc2V0ICsgdGV4dExpbmVzLmxlbmd0aCkge1xuICAgICAgYm94TGluZXMucHVzaChcbiAgICAgICAgYCR7bGVmdFNwYWNlfSR7Ym9yZGVyU3R5bGUudn0ke1wiIFwiLnJlcGVhdCh3aWR0aE9mZnNldCl9JHtib3JkZXJTdHlsZS52fWBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpbmUgPSB0ZXh0TGluZXNbaSAtIHZhbGlnbk9mZnNldF07XG4gICAgICBjb25zdCBsZWZ0ID0gXCIgXCIucmVwZWF0KHBhZGRpbmdPZmZzZXQpO1xuICAgICAgY29uc3QgcmlnaHQgPSBcIiBcIi5yZXBlYXQod2lkdGggLSBzdHJpcEFuc2kobGluZSkubGVuZ3RoKTtcbiAgICAgIGJveExpbmVzLnB1c2goXG4gICAgICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLnZ9JHtsZWZ0fSR7bGluZX0ke3JpZ2h0fSR7Ym9yZGVyU3R5bGUudn1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBib3hMaW5lcy5wdXNoKFxuICAgIGAke2xlZnRTcGFjZX0ke2JvcmRlclN0eWxlLmJsfSR7Ym9yZGVyU3R5bGUuaC5yZXBlYXQod2lkdGhPZmZzZXQpfSR7Ym9yZGVyU3R5bGUuYnJ9YFxuICApO1xuICBpZiAob3B0cy5zdHlsZS5tYXJnaW5Cb3R0b20gPiAwKSB7XG4gICAgYm94TGluZXMucHVzaChcIlwiLnJlcGVhdChvcHRzLnN0eWxlLm1hcmdpbkJvdHRvbSkpO1xuICB9XG4gIHJldHVybiBib3hMaW5lcy5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgeyBhbGlnbiwgYm94LCBjZW50ZXJBbGlnbiwgY29sb3JpemUsIGNvbG9ycywgZ2V0Q29sb3IsIGxlZnRBbGlnbiwgcmlnaHRBbGlnbiwgc3RyaXBBbnNpIH07XG4iLCAiaW1wb3J0IHsgc3RkaW4sIHN0ZG91dCB9IGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQgZiBmcm9tICdub2RlOnJlYWRsaW5lJztcbmltcG9ydCB7IFdyaXRlU3RyZWFtIH0gZnJvbSAnbm9kZTp0dHknO1xuaW1wb3J0IHsgZyBhcyBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcywgaSBhcyBpc1VuaWNvZGVTdXBwb3J0ZWQgfSBmcm9tICcuLi9zaGFyZWQvY29uc29sYS4zNmMwMDM0Zi5tanMnO1xuaW1wb3J0IHJlcXVpcmUkJDAgZnJvbSAndHR5JztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5pbXBvcnQgJy4uL2NvcmUubWpzJztcbmltcG9ydCAnLi4vc2hhcmVkL2NvbnNvbGEuMDZhZDhhNjQubWpzJztcbmltcG9ydCAnbm9kZTp1dGlsJztcbmltcG9ydCAnbm9kZTpwYXRoJztcblxuY29uc3QgRVNDID0gJ1xceDFCJztcbmNvbnN0IENTSSA9IGAke0VTQ31bYDtcbmNvbnN0IGJlZXAgPSAnXFx1MDAwNyc7XG5cbmNvbnN0IGN1cnNvciA9IHtcbiAgdG8oeCwgeSkge1xuICAgIGlmICgheSkgcmV0dXJuIGAke0NTSX0ke3ggKyAxfUdgO1xuICAgIHJldHVybiBgJHtDU0l9JHt5ICsgMX07JHt4ICsgMX1IYDtcbiAgfSxcbiAgbW92ZSh4LCB5KSB7XG4gICAgbGV0IHJldCA9ICcnO1xuXG4gICAgaWYgKHggPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXh9RGA7XG4gICAgZWxzZSBpZiAoeCA+IDApIHJldCArPSBgJHtDU0l9JHt4fUNgO1xuXG4gICAgaWYgKHkgPCAwKSByZXQgKz0gYCR7Q1NJfSR7LXl9QWA7XG4gICAgZWxzZSBpZiAoeSA+IDApIHJldCArPSBgJHtDU0l9JHt5fUJgO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfSxcbiAgdXA6IChjb3VudCA9IDEpID0+IGAke0NTSX0ke2NvdW50fUFgLFxuICBkb3duOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1CYCxcbiAgZm9yd2FyZDogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfSR7Y291bnR9Q2AsXG4gIGJhY2t3YXJkOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9JHtjb3VudH1EYCxcbiAgbmV4dExpbmU6IChjb3VudCA9IDEpID0+IGAke0NTSX1FYC5yZXBlYXQoY291bnQpLFxuICBwcmV2TGluZTogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfUZgLnJlcGVhdChjb3VudCksXG4gIGxlZnQ6IGAke0NTSX1HYCxcbiAgaGlkZTogYCR7Q1NJfT8yNWxgLFxuICBzaG93OiBgJHtDU0l9PzI1aGAsXG4gIHNhdmU6IGAke0VTQ303YCxcbiAgcmVzdG9yZTogYCR7RVNDfThgXG59O1xuXG5jb25zdCBzY3JvbGwgPSB7XG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9U2AucmVwZWF0KGNvdW50KSxcbiAgZG93bjogKGNvdW50ID0gMSkgPT4gYCR7Q1NJfVRgLnJlcGVhdChjb3VudClcbn07XG5cbmNvbnN0IGVyYXNlID0ge1xuICBzY3JlZW46IGAke0NTSX0ySmAsXG4gIHVwOiAoY291bnQgPSAxKSA9PiBgJHtDU0l9MUpgLnJlcGVhdChjb3VudCksXG4gIGRvd246IChjb3VudCA9IDEpID0+IGAke0NTSX1KYC5yZXBlYXQoY291bnQpLFxuICBsaW5lOiBgJHtDU0l9MktgLFxuICBsaW5lRW5kOiBgJHtDU0l9S2AsXG4gIGxpbmVTdGFydDogYCR7Q1NJfTFLYCxcbiAgbGluZXMoY291bnQpIHtcbiAgICBsZXQgY2xlYXIgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspXG4gICAgICBjbGVhciArPSB0aGlzLmxpbmUgKyAoaSA8IGNvdW50IC0gMSA/IGN1cnNvci51cCgpIDogJycpO1xuICAgIGlmIChjb3VudClcbiAgICAgIGNsZWFyICs9IGN1cnNvci5sZWZ0O1xuICAgIHJldHVybiBjbGVhcjtcbiAgfVxufTtcblxudmFyIHNyYyA9IHsgY3Vyc29yLCBzY3JvbGwsIGVyYXNlLCBiZWVwIH07XG5cbnZhciBwaWNvY29sb3JzID0ge2V4cG9ydHM6IHt9fTtcblxubGV0IHR0eSA9IHJlcXVpcmUkJDA7XG5cbmxldCBpc0NvbG9yU3VwcG9ydGVkID1cblx0IShcIk5PX0NPTE9SXCIgaW4gcHJvY2Vzcy5lbnYgfHwgcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKFwiLS1uby1jb2xvclwiKSkgJiZcblx0KFwiRk9SQ0VfQ09MT1JcIiBpbiBwcm9jZXNzLmVudiB8fFxuXHRcdHByb2Nlc3MuYXJndi5pbmNsdWRlcyhcIi0tY29sb3JcIikgfHxcblx0XHRwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIgfHxcblx0XHQodHR5LmlzYXR0eSgxKSAmJiBwcm9jZXNzLmVudi5URVJNICE9PSBcImR1bWJcIikgfHxcblx0XHRcIkNJXCIgaW4gcHJvY2Vzcy5lbnYpO1xuXG5sZXQgZm9ybWF0dGVyID1cblx0KG9wZW4sIGNsb3NlLCByZXBsYWNlID0gb3BlbikgPT5cblx0aW5wdXQgPT4ge1xuXHRcdGxldCBzdHJpbmcgPSBcIlwiICsgaW5wdXQ7XG5cdFx0bGV0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcblx0XHRyZXR1cm4gfmluZGV4XG5cdFx0XHQ/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2Vcblx0XHRcdDogb3BlbiArIHN0cmluZyArIGNsb3NlXG5cdH07XG5cbmxldCByZXBsYWNlQ2xvc2UgPSAoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpID0+IHtcblx0bGV0IHN0YXJ0ID0gc3RyaW5nLnN1YnN0cmluZygwLCBpbmRleCkgKyByZXBsYWNlO1xuXHRsZXQgZW5kID0gc3RyaW5nLnN1YnN0cmluZyhpbmRleCArIGNsb3NlLmxlbmd0aCk7XG5cdGxldCBuZXh0SW5kZXggPSBlbmQuaW5kZXhPZihjbG9zZSk7XG5cdHJldHVybiB+bmV4dEluZGV4ID8gc3RhcnQgKyByZXBsYWNlQ2xvc2UoZW5kLCBjbG9zZSwgcmVwbGFjZSwgbmV4dEluZGV4KSA6IHN0YXJ0ICsgZW5kXG59O1xuXG5sZXQgY3JlYXRlQ29sb3JzID0gKGVuYWJsZWQgPSBpc0NvbG9yU3VwcG9ydGVkKSA9PiAoe1xuXHRpc0NvbG9yU3VwcG9ydGVkOiBlbmFibGVkLFxuXHRyZXNldDogZW5hYmxlZCA/IHMgPT4gYFxceDFiWzBtJHtzfVxceDFiWzBtYCA6IFN0cmluZyxcblx0Ym9sZDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzFtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMW1cIikgOiBTdHJpbmcsXG5cdGRpbTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzJtXCIsIFwiXFx4MWJbMjJtXCIsIFwiXFx4MWJbMjJtXFx4MWJbMm1cIikgOiBTdHJpbmcsXG5cdGl0YWxpYzogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzNtXCIsIFwiXFx4MWJbMjNtXCIpIDogU3RyaW5nLFxuXHR1bmRlcmxpbmU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0bVwiLCBcIlxceDFiWzI0bVwiKSA6IFN0cmluZyxcblx0aW52ZXJzZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzdtXCIsIFwiXFx4MWJbMjdtXCIpIDogU3RyaW5nLFxuXHRoaWRkZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls4bVwiLCBcIlxceDFiWzI4bVwiKSA6IFN0cmluZyxcblx0c3RyaWtldGhyb3VnaDogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzltXCIsIFwiXFx4MWJbMjltXCIpIDogU3RyaW5nLFxuXHRibGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0cmVkOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzFtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRncmVlbjogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzMybVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0eWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzNtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRibHVlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzRtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRtYWdlbnRhOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzVtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHRjeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbMzZtXCIsIFwiXFx4MWJbMzltXCIpIDogU3RyaW5nLFxuXHR3aGl0ZTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzM3bVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0Z3JheTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzkwbVwiLCBcIlxceDFiWzM5bVwiKSA6IFN0cmluZyxcblx0YmdCbGFjazogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQwbVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdSZWQ6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0MW1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnR3JlZW46IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0Mm1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnWWVsbG93OiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDNtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ0JsdWU6IGVuYWJsZWQgPyBmb3JtYXR0ZXIoXCJcXHgxYls0NG1cIiwgXCJcXHgxYls0OW1cIikgOiBTdHJpbmcsXG5cdGJnTWFnZW50YTogZW5hYmxlZCA/IGZvcm1hdHRlcihcIlxceDFiWzQ1bVwiLCBcIlxceDFiWzQ5bVwiKSA6IFN0cmluZyxcblx0YmdDeWFuOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDZtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxuXHRiZ1doaXRlOiBlbmFibGVkID8gZm9ybWF0dGVyKFwiXFx4MWJbNDdtXCIsIFwiXFx4MWJbNDltXCIpIDogU3RyaW5nLFxufSk7XG5cbnBpY29jb2xvcnMuZXhwb3J0cyA9IGNyZWF0ZUNvbG9ycygpO1xucGljb2NvbG9ycy5leHBvcnRzLmNyZWF0ZUNvbG9ycyA9IGNyZWF0ZUNvbG9ycztcblxudmFyIHBpY29jb2xvcnNFeHBvcnRzID0gcGljb2NvbG9ycy5leHBvcnRzO1xuY29uc3QgbCA9IC8qQF9fUFVSRV9fKi9nZXREZWZhdWx0RXhwb3J0RnJvbUNqcyhwaWNvY29sb3JzRXhwb3J0cyk7XG5cbmZ1bmN0aW9uIHooe29ubHlGaXJzdDp0PSExfT17fSl7Y29uc3QgdT1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cCh1LHQ/dm9pZCAwOlwiZ1wiKX1mdW5jdGlvbiAkKHQpe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wiKXRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgXFxgc3RyaW5nXFxgLCBnb3QgXFxgJHt0eXBlb2YgdH1cXGBgKTtyZXR1cm4gdC5yZXBsYWNlKHooKSxcIlwiKX12YXIgbT17fSxHPXtnZXQgZXhwb3J0cygpe3JldHVybiBtfSxzZXQgZXhwb3J0cyh0KXttPXQ7fX07KGZ1bmN0aW9uKHQpe3ZhciB1PXt9O3QuZXhwb3J0cz11LHUuZWFzdEFzaWFuV2lkdGg9ZnVuY3Rpb24oZSl7dmFyIHM9ZS5jaGFyQ29kZUF0KDApLEM9ZS5sZW5ndGg9PTI/ZS5jaGFyQ29kZUF0KDEpOjAsRD1zO3JldHVybiA1NTI5Njw9cyYmczw9NTYzMTkmJjU2MzIwPD1DJiZDPD01NzM0MyYmKHMmPTEwMjMsQyY9MTAyMyxEPXM8PDEwfEMsRCs9NjU1MzYpLEQ9PTEyMjg4fHw2NTI4MTw9RCYmRDw9NjUzNzZ8fDY1NTA0PD1EJiZEPD02NTUxMD9cIkZcIjpEPT04MzYxfHw2NTM3Nzw9RCYmRDw9NjU0NzB8fDY1NDc0PD1EJiZEPD02NTQ3OXx8NjU0ODI8PUQmJkQ8PTY1NDg3fHw2NTQ5MDw9RCYmRDw9NjU0OTV8fDY1NDk4PD1EJiZEPD02NTUwMHx8NjU1MTI8PUQmJkQ8PTY1NTE4P1wiSFwiOjQzNTI8PUQmJkQ8PTQ0NDd8fDQ1MTU8PUQmJkQ8PTQ1MTl8fDQ2MDI8PUQmJkQ8PTQ2MDd8fDkwMDE8PUQmJkQ8PTkwMDJ8fDExOTA0PD1EJiZEPD0xMTkyOXx8MTE5MzE8PUQmJkQ8PTEyMDE5fHwxMjAzMjw9RCYmRDw9MTIyNDV8fDEyMjcyPD1EJiZEPD0xMjI4M3x8MTIyODk8PUQmJkQ8PTEyMzUwfHwxMjM1Mzw9RCYmRDw9MTI0Mzh8fDEyNDQxPD1EJiZEPD0xMjU0M3x8MTI1NDk8PUQmJkQ8PTEyNTg5fHwxMjU5Mzw9RCYmRDw9MTI2ODZ8fDEyNjg4PD1EJiZEPD0xMjczMHx8MTI3MzY8PUQmJkQ8PTEyNzcxfHwxMjc4NDw9RCYmRDw9MTI4MzB8fDEyODMyPD1EJiZEPD0xMjg3MXx8MTI4ODA8PUQmJkQ8PTEzMDU0fHwxMzA1Njw9RCYmRDw9MTk5MDN8fDE5OTY4PD1EJiZEPD00MjEyNHx8NDIxMjg8PUQmJkQ8PTQyMTgyfHw0MzM2MDw9RCYmRDw9NDMzODh8fDQ0MDMyPD1EJiZEPD01NTIwM3x8NTUyMTY8PUQmJkQ8PTU1MjM4fHw1NTI0Mzw9RCYmRDw9NTUyOTF8fDYzNzQ0PD1EJiZEPD02NDI1NXx8NjUwNDA8PUQmJkQ8PTY1MDQ5fHw2NTA3Mjw9RCYmRDw9NjUxMDZ8fDY1MTA4PD1EJiZEPD02NTEyNnx8NjUxMjg8PUQmJkQ8PTY1MTMxfHwxMTA1OTI8PUQmJkQ8PTExMDU5M3x8MTI3NDg4PD1EJiZEPD0xMjc0OTB8fDEyNzUwNDw9RCYmRDw9MTI3NTQ2fHwxMjc1NTI8PUQmJkQ8PTEyNzU2MHx8MTI3NTY4PD1EJiZEPD0xMjc1Njl8fDEzMTA3Mjw9RCYmRDw9MTk0MzY3fHwxNzc5ODQ8PUQmJkQ8PTE5NjYwNXx8MTk2NjA4PD1EJiZEPD0yNjIxNDE/XCJXXCI6MzI8PUQmJkQ8PTEyNnx8MTYyPD1EJiZEPD0xNjN8fDE2NTw9RCYmRDw9MTY2fHxEPT0xNzJ8fEQ9PTE3NXx8MTAyMTQ8PUQmJkQ8PTEwMjIxfHwxMDYyOTw9RCYmRDw9MTA2MzA/XCJOYVwiOkQ9PTE2MXx8RD09MTY0fHwxNjc8PUQmJkQ8PTE2OHx8RD09MTcwfHwxNzM8PUQmJkQ8PTE3NHx8MTc2PD1EJiZEPD0xODB8fDE4Mjw9RCYmRDw9MTg2fHwxODg8PUQmJkQ8PTE5MXx8RD09MTk4fHxEPT0yMDh8fDIxNTw9RCYmRDw9MjE2fHwyMjI8PUQmJkQ8PTIyNXx8RD09MjMwfHwyMzI8PUQmJkQ8PTIzNHx8MjM2PD1EJiZEPD0yMzd8fEQ9PTI0MHx8MjQyPD1EJiZEPD0yNDN8fDI0Nzw9RCYmRDw9MjUwfHxEPT0yNTJ8fEQ9PTI1NHx8RD09MjU3fHxEPT0yNzN8fEQ9PTI3NXx8RD09MjgzfHwyOTQ8PUQmJkQ8PTI5NXx8RD09Mjk5fHwzMDU8PUQmJkQ8PTMwN3x8RD09MzEyfHwzMTk8PUQmJkQ8PTMyMnx8RD09MzI0fHwzMjg8PUQmJkQ8PTMzMXx8RD09MzMzfHwzMzg8PUQmJkQ8PTMzOXx8MzU4PD1EJiZEPD0zNTl8fEQ9PTM2M3x8RD09NDYyfHxEPT00NjR8fEQ9PTQ2Nnx8RD09NDY4fHxEPT00NzB8fEQ9PTQ3Mnx8RD09NDc0fHxEPT00NzZ8fEQ9PTU5M3x8RD09NjA5fHxEPT03MDh8fEQ9PTcxMXx8NzEzPD1EJiZEPD03MTV8fEQ9PTcxN3x8RD09NzIwfHw3Mjg8PUQmJkQ8PTczMXx8RD09NzMzfHxEPT03MzV8fDc2ODw9RCYmRDw9ODc5fHw5MTM8PUQmJkQ8PTkyOXx8OTMxPD1EJiZEPD05Mzd8fDk0NTw9RCYmRDw9OTYxfHw5NjM8PUQmJkQ8PTk2OXx8RD09MTAyNXx8MTA0MDw9RCYmRDw9MTEwM3x8RD09MTEwNXx8RD09ODIwOHx8ODIxMTw9RCYmRDw9ODIxNHx8ODIxNjw9RCYmRDw9ODIxN3x8ODIyMDw9RCYmRDw9ODIyMXx8ODIyNDw9RCYmRDw9ODIyNnx8ODIyODw9RCYmRDw9ODIzMXx8RD09ODI0MHx8ODI0Mjw9RCYmRDw9ODI0M3x8RD09ODI0NXx8RD09ODI1MXx8RD09ODI1NHx8RD09ODMwOHx8RD09ODMxOXx8ODMyMTw9RCYmRDw9ODMyNHx8RD09ODM2NHx8RD09ODQ1MXx8RD09ODQ1M3x8RD09ODQ1N3x8RD09ODQ2N3x8RD09ODQ3MHx8ODQ4MTw9RCYmRDw9ODQ4Mnx8RD09ODQ4Nnx8RD09ODQ5MXx8ODUzMTw9RCYmRDw9ODUzMnx8ODUzOTw9RCYmRDw9ODU0Mnx8ODU0NDw9RCYmRDw9ODU1NXx8ODU2MDw9RCYmRDw9ODU2OXx8RD09ODU4NXx8ODU5Mjw9RCYmRDw9ODYwMXx8ODYzMjw9RCYmRDw9ODYzM3x8RD09ODY1OHx8RD09ODY2MHx8RD09ODY3OXx8RD09ODcwNHx8ODcwNjw9RCYmRDw9ODcwN3x8ODcxMTw9RCYmRDw9ODcxMnx8RD09ODcxNXx8RD09ODcxOXx8RD09ODcyMXx8RD09ODcyNXx8RD09ODczMHx8ODczMzw9RCYmRDw9ODczNnx8RD09ODczOXx8RD09ODc0MXx8ODc0Mzw9RCYmRDw9ODc0OHx8RD09ODc1MHx8ODc1Njw9RCYmRDw9ODc1OXx8ODc2NDw9RCYmRDw9ODc2NXx8RD09ODc3Nnx8RD09ODc4MHx8RD09ODc4Nnx8ODgwMDw9RCYmRDw9ODgwMXx8ODgwNDw9RCYmRDw9ODgwN3x8ODgxMDw9RCYmRDw9ODgxMXx8ODgxNDw9RCYmRDw9ODgxNXx8ODgzNDw9RCYmRDw9ODgzNXx8ODgzODw9RCYmRDw9ODgzOXx8RD09ODg1M3x8RD09ODg1N3x8RD09ODg2OXx8RD09ODg5NXx8RD09ODk3OHx8OTMxMjw9RCYmRDw9OTQ0OXx8OTQ1MTw9RCYmRDw9OTU0N3x8OTU1Mjw9RCYmRDw9OTU4N3x8OTYwMDw9RCYmRDw9OTYxNXx8OTYxODw9RCYmRDw9OTYyMXx8OTYzMjw9RCYmRDw9OTYzM3x8OTYzNTw9RCYmRDw9OTY0MXx8OTY1MDw9RCYmRDw9OTY1MXx8OTY1NDw9RCYmRDw9OTY1NXx8OTY2MDw9RCYmRDw9OTY2MXx8OTY2NDw9RCYmRDw9OTY2NXx8OTY3MDw9RCYmRDw9OTY3Mnx8RD09OTY3NXx8OTY3ODw9RCYmRDw9OTY4MXx8OTY5ODw9RCYmRDw9OTcwMXx8RD09OTcxMXx8OTczMzw9RCYmRDw9OTczNHx8RD09OTczN3x8OTc0Mjw9RCYmRDw9OTc0M3x8OTc0ODw9RCYmRDw9OTc0OXx8RD09OTc1Nnx8RD09OTc1OHx8RD09OTc5Mnx8RD09OTc5NHx8OTgyNDw9RCYmRDw9OTgyNXx8OTgyNzw9RCYmRDw9OTgyOXx8OTgzMTw9RCYmRDw9OTgzNHx8OTgzNjw9RCYmRDw9OTgzN3x8RD09OTgzOXx8OTg4Njw9RCYmRDw9OTg4N3x8OTkxODw9RCYmRDw9OTkxOXx8OTkyNDw9RCYmRDw9OTkzM3x8OTkzNTw9RCYmRDw9OTk1M3x8RD09OTk1NXx8OTk2MDw9RCYmRDw9OTk4M3x8RD09MTAwNDV8fEQ9PTEwMDcxfHwxMDEwMjw9RCYmRDw9MTAxMTF8fDExMDkzPD1EJiZEPD0xMTA5N3x8MTI4NzI8PUQmJkQ8PTEyODc5fHw1NzM0NDw9RCYmRDw9NjM3NDN8fDY1MDI0PD1EJiZEPD02NTAzOXx8RD09NjU1MzN8fDEyNzIzMjw9RCYmRDw9MTI3MjQyfHwxMjcyNDg8PUQmJkQ8PTEyNzI3N3x8MTI3MjgwPD1EJiZEPD0xMjczMzd8fDEyNzM0NDw9RCYmRDw9MTI3Mzg2fHw5MTc3NjA8PUQmJkQ8PTkxNzk5OXx8OTgzMDQwPD1EJiZEPD0xMDQ4NTczfHwxMDQ4NTc2PD1EJiZEPD0xMTE0MTA5P1wiQVwiOlwiTlwifSx1LmNoYXJhY3Rlckxlbmd0aD1mdW5jdGlvbihlKXt2YXIgcz10aGlzLmVhc3RBc2lhbldpZHRoKGUpO3JldHVybiBzPT1cIkZcInx8cz09XCJXXCJ8fHM9PVwiQVwiPzI6MX07ZnVuY3Rpb24gRihlKXtyZXR1cm4gZS5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZyl8fFtdfXUubGVuZ3RoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcz1GKGUpLEM9MCxEPTA7RDxzLmxlbmd0aDtEKyspQz1DK3RoaXMuY2hhcmFjdGVyTGVuZ3RoKHNbRF0pO3JldHVybiBDfSx1LnNsaWNlPWZ1bmN0aW9uKGUscyxDKXt0ZXh0TGVuPXUubGVuZ3RoKGUpLHM9c3x8MCxDPUN8fDEsczwwJiYocz10ZXh0TGVuK3MpLEM8MCYmKEM9dGV4dExlbitDKTtmb3IodmFyIEQ9XCJcIixpPTAsbz1GKGUpLEU9MDtFPG8ubGVuZ3RoO0UrKyl7dmFyIGE9b1tFXSxuPXUubGVuZ3RoKGEpO2lmKGk+PXMtKG49PTI/MTowKSlpZihpK248PUMpRCs9YTtlbHNlIGJyZWFrO2krPW47fXJldHVybiBEfTt9KShHKTtjb25zdCBLPW07dmFyIFk9ZnVuY3Rpb24oKXtyZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/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/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDI2XFx1REQzMC1cXHVERDM5XFx1REQzQy1cXHVERDNFXFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZ307ZnVuY3Rpb24gYyh0LHU9e30pe2lmKHR5cGVvZiB0IT1cInN0cmluZ1wifHx0Lmxlbmd0aD09PTB8fCh1PXthbWJpZ3VvdXNJc05hcnJvdzohMCwuLi51fSx0PSQodCksdC5sZW5ndGg9PT0wKSlyZXR1cm4gMDt0PXQucmVwbGFjZShZKCksXCIgIFwiKTtjb25zdCBGPXUuYW1iaWd1b3VzSXNOYXJyb3c/MToyO2xldCBlPTA7Zm9yKGNvbnN0IHMgb2YgdCl7Y29uc3QgQz1zLmNvZGVQb2ludEF0KDApO2lmKEM8PTMxfHxDPj0xMjcmJkM8PTE1OXx8Qz49NzY4JiZDPD04NzkpY29udGludWU7c3dpdGNoKEsuZWFzdEFzaWFuV2lkdGgocykpe2Nhc2VcIkZcIjpjYXNlXCJXXCI6ZSs9MjticmVhaztjYXNlXCJBXCI6ZSs9RjticmVhaztkZWZhdWx0OmUrPTE7fX1yZXR1cm4gZX1jb25zdCB2PTEwLEw9KHQ9MCk9PnU9PmBcXHgxQlske3UrdH1tYCxNPSh0PTApPT51PT5gXFx4MUJbJHszOCt0fTs1OyR7dX1tYCxUPSh0PTApPT4odSxGLGUpPT5gXFx4MUJbJHszOCt0fTsyOyR7dX07JHtGfTske2V9bWAscj17bW9kaWZpZXI6e3Jlc2V0OlswLDBdLGJvbGQ6WzEsMjJdLGRpbTpbMiwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLG92ZXJsaW5lOls1Myw1NV0saW52ZXJzZTpbNywyN10saGlkZGVuOls4LDI4XSxzdHJpa2V0aHJvdWdoOls5LDI5XX0sY29sb3I6e2JsYWNrOlszMCwzOV0scmVkOlszMSwzOV0sZ3JlZW46WzMyLDM5XSx5ZWxsb3c6WzMzLDM5XSxibHVlOlszNCwzOV0sbWFnZW50YTpbMzUsMzldLGN5YW46WzM2LDM5XSx3aGl0ZTpbMzcsMzldLGJsYWNrQnJpZ2h0Ols5MCwzOV0sZ3JheTpbOTAsMzldLGdyZXk6WzkwLDM5XSxyZWRCcmlnaHQ6WzkxLDM5XSxncmVlbkJyaWdodDpbOTIsMzldLHllbGxvd0JyaWdodDpbOTMsMzldLGJsdWVCcmlnaHQ6Wzk0LDM5XSxtYWdlbnRhQnJpZ2h0Ols5NSwzOV0sY3lhbkJyaWdodDpbOTYsMzldLHdoaXRlQnJpZ2h0Ols5NywzOV19LGJnQ29sb3I6e2JnQmxhY2s6WzQwLDQ5XSxiZ1JlZDpbNDEsNDldLGJnR3JlZW46WzQyLDQ5XSxiZ1llbGxvdzpbNDMsNDldLGJnQmx1ZTpbNDQsNDldLGJnTWFnZW50YTpbNDUsNDldLGJnQ3lhbjpbNDYsNDldLGJnV2hpdGU6WzQ3LDQ5XSxiZ0JsYWNrQnJpZ2h0OlsxMDAsNDldLGJnR3JheTpbMTAwLDQ5XSxiZ0dyZXk6WzEwMCw0OV0sYmdSZWRCcmlnaHQ6WzEwMSw0OV0sYmdHcmVlbkJyaWdodDpbMTAyLDQ5XSxiZ1llbGxvd0JyaWdodDpbMTAzLDQ5XSxiZ0JsdWVCcmlnaHQ6WzEwNCw0OV0sYmdNYWdlbnRhQnJpZ2h0OlsxMDUsNDldLGJnQ3lhbkJyaWdodDpbMTA2LDQ5XSxiZ1doaXRlQnJpZ2h0OlsxMDcsNDldfX07T2JqZWN0LmtleXMoci5tb2RpZmllcik7Y29uc3QgWj1PYmplY3Qua2V5cyhyLmNvbG9yKSxIPU9iamVjdC5rZXlzKHIuYmdDb2xvcik7Wy4uLlosLi4uSF07ZnVuY3Rpb24gVSgpe2NvbnN0IHQ9bmV3IE1hcDtmb3IoY29uc3RbdSxGXW9mIE9iamVjdC5lbnRyaWVzKHIpKXtmb3IoY29uc3RbZSxzXW9mIE9iamVjdC5lbnRyaWVzKEYpKXJbZV09e29wZW46YFxceDFCWyR7c1swXX1tYCxjbG9zZTpgXFx4MUJbJHtzWzFdfW1gfSxGW2VdPXJbZV0sdC5zZXQoc1swXSxzWzFdKTtPYmplY3QuZGVmaW5lUHJvcGVydHkocix1LHt2YWx1ZTpGLGVudW1lcmFibGU6ITF9KTt9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiY29kZXNcIix7dmFsdWU6dCxlbnVtZXJhYmxlOiExfSksci5jb2xvci5jbG9zZT1cIlxceDFCWzM5bVwiLHIuYmdDb2xvci5jbG9zZT1cIlxceDFCWzQ5bVwiLHIuY29sb3IuYW5zaT1MKCksci5jb2xvci5hbnNpMjU2PU0oKSxyLmNvbG9yLmFuc2kxNm09VCgpLHIuYmdDb2xvci5hbnNpPUwodiksci5iZ0NvbG9yLmFuc2kyNTY9TSh2KSxyLmJnQ29sb3IuYW5zaTE2bT1UKHYpLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIse3JnYlRvQW5zaTI1Njp7dmFsdWU6KHUsRixlKT0+dT09PUYmJkY9PT1lP3U8OD8xNjp1PjI0OD8yMzE6TWF0aC5yb3VuZCgodS04KS8yNDcqMjQpKzIzMjoxNiszNipNYXRoLnJvdW5kKHUvMjU1KjUpKzYqTWF0aC5yb3VuZChGLzI1NSo1KStNYXRoLnJvdW5kKGUvMjU1KjUpLGVudW1lcmFibGU6ITF9LGhleFRvUmdiOnt2YWx1ZTp1PT57Y29uc3QgRj0vW2EtZlxcZF17Nn18W2EtZlxcZF17M30vaS5leGVjKHUudG9TdHJpbmcoMTYpKTtpZighRilyZXR1cm4gWzAsMCwwXTtsZXRbZV09RjtlLmxlbmd0aD09PTMmJihlPVsuLi5lXS5tYXAoQz0+QytDKS5qb2luKFwiXCIpKTtjb25zdCBzPU51bWJlci5wYXJzZUludChlLDE2KTtyZXR1cm4gW3M+PjE2JjI1NSxzPj44JjI1NSxzJjI1NV19LGVudW1lcmFibGU6ITF9LGhleFRvQW5zaTI1Njp7dmFsdWU6dT0+ci5yZ2JUb0Fuc2kyNTYoLi4uci5oZXhUb1JnYih1KSksZW51bWVyYWJsZTohMX0sYW5zaTI1NlRvQW5zaTp7dmFsdWU6dT0+e2lmKHU8OClyZXR1cm4gMzArdTtpZih1PDE2KXJldHVybiA5MCsodS04KTtsZXQgRixlLHM7aWYodT49MjMyKUY9KCh1LTIzMikqMTArOCkvMjU1LGU9RixzPUY7ZWxzZSB7dS09MTY7Y29uc3QgaT11JTM2O0Y9TWF0aC5mbG9vcih1LzM2KS81LGU9TWF0aC5mbG9vcihpLzYpLzUscz1pJTYvNTt9Y29uc3QgQz1NYXRoLm1heChGLGUscykqMjtpZihDPT09MClyZXR1cm4gMzA7bGV0IEQ9MzArKE1hdGgucm91bmQocyk8PDJ8TWF0aC5yb3VuZChlKTw8MXxNYXRoLnJvdW5kKEYpKTtyZXR1cm4gQz09PTImJihEKz02MCksRH0sZW51bWVyYWJsZTohMX0scmdiVG9BbnNpOnt2YWx1ZToodSxGLGUpPT5yLmFuc2kyNTZUb0Fuc2koci5yZ2JUb0Fuc2kyNTYodSxGLGUpKSxlbnVtZXJhYmxlOiExfSxoZXhUb0Fuc2k6e3ZhbHVlOnU9PnIuYW5zaTI1NlRvQW5zaShyLmhleFRvQW5zaTI1Nih1KSksZW51bWVyYWJsZTohMX19KSxyfWNvbnN0IHE9VSgpLHA9bmV3IFNldChbXCJcXHgxQlwiLFwiXFx4OUJcIl0pLEo9MzksYj1cIlxceDA3XCIsVz1cIltcIixRPVwiXVwiLEk9XCJtXCIsdz1gJHtRfTg7O2AsTj10PT5gJHtwLnZhbHVlcygpLm5leHQoKS52YWx1ZX0ke1d9JHt0fSR7SX1gLGo9dD0+YCR7cC52YWx1ZXMoKS5uZXh0KCkudmFsdWV9JHt3fSR7dH0ke2J9YCxYPXQ9PnQuc3BsaXQoXCIgXCIpLm1hcCh1PT5jKHUpKSxfPSh0LHUsRik9Pntjb25zdCBlPVsuLi51XTtsZXQgcz0hMSxDPSExLEQ9YygkKHRbdC5sZW5ndGgtMV0pKTtmb3IoY29uc3RbaSxvXW9mIGUuZW50cmllcygpKXtjb25zdCBFPWMobyk7aWYoRCtFPD1GP3RbdC5sZW5ndGgtMV0rPW86KHQucHVzaChvKSxEPTApLHAuaGFzKG8pJiYocz0hMCxDPWUuc2xpY2UoaSsxKS5qb2luKFwiXCIpLnN0YXJ0c1dpdGgodykpLHMpe0M/bz09PWImJihzPSExLEM9ITEpOm89PT1JJiYocz0hMSk7Y29udGludWV9RCs9RSxEPT09RiYmaTxlLmxlbmd0aC0xJiYodC5wdXNoKFwiXCIpLEQ9MCk7fSFEJiZ0W3QubGVuZ3RoLTFdLmxlbmd0aD4wJiZ0Lmxlbmd0aD4xJiYodFt0Lmxlbmd0aC0yXSs9dC5wb3AoKSk7fSxERD10PT57Y29uc3QgdT10LnNwbGl0KFwiIFwiKTtsZXQgRj11Lmxlbmd0aDtmb3IoO0Y+MCYmIShjKHVbRi0xXSk+MCk7KUYtLTtyZXR1cm4gRj09PXUubGVuZ3RoP3Q6dS5zbGljZSgwLEYpLmpvaW4oXCIgXCIpK3Uuc2xpY2UoRikuam9pbihcIlwiKX0sdUQ9KHQsdSxGPXt9KT0+e2lmKEYudHJpbSE9PSExJiZ0LnRyaW0oKT09PVwiXCIpcmV0dXJuIFwiXCI7bGV0IGU9XCJcIixzLEM7Y29uc3QgRD1YKHQpO2xldCBpPVtcIlwiXTtmb3IoY29uc3RbRSxhXW9mIHQuc3BsaXQoXCIgXCIpLmVudHJpZXMoKSl7Ri50cmltIT09ITEmJihpW2kubGVuZ3RoLTFdPWlbaS5sZW5ndGgtMV0udHJpbVN0YXJ0KCkpO2xldCBuPWMoaVtpLmxlbmd0aC0xXSk7aWYoRSE9PTAmJihuPj11JiYoRi53b3JkV3JhcD09PSExfHxGLnRyaW09PT0hMSkmJihpLnB1c2goXCJcIiksbj0wKSwobj4wfHxGLnRyaW09PT0hMSkmJihpW2kubGVuZ3RoLTFdKz1cIiBcIixuKyspKSxGLmhhcmQmJkRbRV0+dSl7Y29uc3QgQj11LW4sQT0xK01hdGguZmxvb3IoKERbRV0tQi0xKS91KTtNYXRoLmZsb29yKChEW0VdLTEpL3UpPEEmJmkucHVzaChcIlwiKSxfKGksYSx1KTtjb250aW51ZX1pZihuK0RbRV0+dSYmbj4wJiZEW0VdPjApe2lmKEYud29yZFdyYXA9PT0hMSYmbjx1KXtfKGksYSx1KTtjb250aW51ZX1pLnB1c2goXCJcIik7fWlmKG4rRFtFXT51JiZGLndvcmRXcmFwPT09ITEpe18oaSxhLHUpO2NvbnRpbnVlfWlbaS5sZW5ndGgtMV0rPWE7fUYudHJpbSE9PSExJiYoaT1pLm1hcChFPT5ERChFKSkpO2NvbnN0IG89Wy4uLmkuam9pbihgXG5gKV07Zm9yKGNvbnN0W0UsYV1vZiBvLmVudHJpZXMoKSl7aWYoZSs9YSxwLmhhcyhhKSl7Y29uc3R7Z3JvdXBzOkJ9PW5ldyBSZWdFeHAoYCg/OlxcXFwke1d9KD88Y29kZT5cXFxcZCspbXxcXFxcJHt3fSg/PHVyaT4uKikke2J9KWApLmV4ZWMoby5zbGljZShFKS5qb2luKFwiXCIpKXx8e2dyb3Vwczp7fX07aWYoQi5jb2RlIT09dm9pZCAwKXtjb25zdCBBPU51bWJlci5wYXJzZUZsb2F0KEIuY29kZSk7cz1BPT09Sj92b2lkIDA6QTt9ZWxzZSBCLnVyaSE9PXZvaWQgMCYmKEM9Qi51cmkubGVuZ3RoPT09MD92b2lkIDA6Qi51cmkpO31jb25zdCBuPXEuY29kZXMuZ2V0KE51bWJlcihzKSk7b1tFKzFdPT09YFxuYD8oQyYmKGUrPWooXCJcIikpLHMmJm4mJihlKz1OKG4pKSk6YT09PWBcbmAmJihzJiZuJiYoZSs9TihzKSksQyYmKGUrPWooQykpKTt9cmV0dXJuIGV9O2Z1bmN0aW9uIFAodCx1LEYpe3JldHVybiBTdHJpbmcodCkubm9ybWFsaXplKCkucmVwbGFjZSgvXFxyXFxuL2csYFxuYCkuc3BsaXQoYFxuYCkubWFwKGU9PnVEKGUsdSxGKSkuam9pbihgXG5gKX1mdW5jdGlvbiBGRCh0LHUpe2lmKHQ9PT11KXJldHVybjtjb25zdCBGPXQuc3BsaXQoYFxuYCksZT11LnNwbGl0KGBcbmApLHM9W107Zm9yKGxldCBDPTA7QzxNYXRoLm1heChGLmxlbmd0aCxlLmxlbmd0aCk7QysrKUZbQ10hPT1lW0NdJiZzLnB1c2goQyk7cmV0dXJuIHN9Y29uc3QgUj1TeW1ib2woXCJjbGFjazpjYW5jZWxcIik7ZnVuY3Rpb24gZyh0LHUpe3QuaXNUVFkmJnQuc2V0UmF3TW9kZSh1KTt9Y29uc3QgVj1uZXcgTWFwKFtbXCJrXCIsXCJ1cFwiXSxbXCJqXCIsXCJkb3duXCJdLFtcImhcIixcImxlZnRcIl0sW1wibFwiLFwicmlnaHRcIl1dKSx0RD1uZXcgU2V0KFtcInVwXCIsXCJkb3duXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwic3BhY2VcIixcImVudGVyXCJdKTtjbGFzcyBoe2NvbnN0cnVjdG9yKHtyZW5kZXI6dSxpbnB1dDpGPXN0ZGluLG91dHB1dDplPXN0ZG91dCwuLi5zfSxDPSEwKXt0aGlzLl90cmFjaz0hMSx0aGlzLl9jdXJzb3I9MCx0aGlzLnN0YXRlPVwiaW5pdGlhbFwiLHRoaXMuZXJyb3I9XCJcIix0aGlzLnN1YnNjcmliZXJzPW5ldyBNYXAsdGhpcy5fcHJldkZyYW1lPVwiXCIsdGhpcy5vcHRzPXMsdGhpcy5vbktleXByZXNzPXRoaXMub25LZXlwcmVzcy5iaW5kKHRoaXMpLHRoaXMuY2xvc2U9dGhpcy5jbG9zZS5iaW5kKHRoaXMpLHRoaXMucmVuZGVyPXRoaXMucmVuZGVyLmJpbmQodGhpcyksdGhpcy5fcmVuZGVyPXUuYmluZCh0aGlzKSx0aGlzLl90cmFjaz1DLHRoaXMuaW5wdXQ9Rix0aGlzLm91dHB1dD1lO31wcm9tcHQoKXtjb25zdCB1PW5ldyBXcml0ZVN0cmVhbSgwKTtyZXR1cm4gdS5fd3JpdGU9KEYsZSxzKT0+e3RoaXMuX3RyYWNrJiYodGhpcy52YWx1ZT10aGlzLnJsLmxpbmUucmVwbGFjZSgvXFx0L2csXCJcIiksdGhpcy5fY3Vyc29yPXRoaXMucmwuY3Vyc29yLHRoaXMuZW1pdChcInZhbHVlXCIsdGhpcy52YWx1ZSkpLHMoKTt9LHRoaXMuaW5wdXQucGlwZSh1KSx0aGlzLnJsPWYuY3JlYXRlSW50ZXJmYWNlKHtpbnB1dDp0aGlzLmlucHV0LG91dHB1dDp1LHRhYlNpemU6Mixwcm9tcHQ6XCJcIixlc2NhcGVDb2RlVGltZW91dDo1MH0pLGYuZW1pdEtleXByZXNzRXZlbnRzKHRoaXMuaW5wdXQsdGhpcy5ybCksdGhpcy5ybC5wcm9tcHQoKSx0aGlzLm9wdHMuaW5pdGlhbFZhbHVlIT09dm9pZCAwJiZ0aGlzLl90cmFjayYmdGhpcy5ybC53cml0ZSh0aGlzLm9wdHMuaW5pdGlhbFZhbHVlKSx0aGlzLmlucHV0Lm9uKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLGcodGhpcy5pbnB1dCwhMCksdGhpcy5vdXRwdXQub24oXCJyZXNpemVcIix0aGlzLnJlbmRlciksdGhpcy5yZW5kZXIoKSxuZXcgUHJvbWlzZSgoRixlKT0+e3RoaXMub25jZShcInN1Ym1pdFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKHRoaXMudmFsdWUpO30pLHRoaXMub25jZShcImNhbmNlbFwiLCgpPT57dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5zaG93KSx0aGlzLm91dHB1dC5vZmYoXCJyZXNpemVcIix0aGlzLnJlbmRlciksZyh0aGlzLmlucHV0LCExKSxGKFIpO30pO30pfW9uKHUsRil7Y29uc3QgZT10aGlzLnN1YnNjcmliZXJzLmdldCh1KT8/W107ZS5wdXNoKHtjYjpGfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9b25jZSh1LEYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdO2UucHVzaCh7Y2I6RixvbmNlOiEwfSksdGhpcy5zdWJzY3JpYmVycy5zZXQodSxlKTt9ZW1pdCh1LC4uLkYpe2NvbnN0IGU9dGhpcy5zdWJzY3JpYmVycy5nZXQodSk/P1tdLHM9W107Zm9yKGNvbnN0IEMgb2YgZSlDLmNiKC4uLkYpLEMub25jZSYmcy5wdXNoKCgpPT5lLnNwbGljZShlLmluZGV4T2YoQyksMSkpO2Zvcihjb25zdCBDIG9mIHMpQygpO311bnN1YnNjcmliZSgpe3RoaXMuc3Vic2NyaWJlcnMuY2xlYXIoKTt9b25LZXlwcmVzcyh1LEYpe2lmKHRoaXMuc3RhdGU9PT1cImVycm9yXCImJih0aGlzLnN0YXRlPVwiYWN0aXZlXCIpLEY/Lm5hbWUmJiF0aGlzLl90cmFjayYmVi5oYXMoRi5uYW1lKSYmdGhpcy5lbWl0KFwiY3Vyc29yXCIsVi5nZXQoRi5uYW1lKSksRj8ubmFtZSYmdEQuaGFzKEYubmFtZSkmJnRoaXMuZW1pdChcImN1cnNvclwiLEYubmFtZSksdSYmKHUudG9Mb3dlckNhc2UoKT09PVwieVwifHx1LnRvTG93ZXJDYXNlKCk9PT1cIm5cIikmJnRoaXMuZW1pdChcImNvbmZpcm1cIix1LnRvTG93ZXJDYXNlKCk9PT1cInlcIiksdSYmdGhpcy5lbWl0KFwia2V5XCIsdS50b0xvd2VyQ2FzZSgpKSxGPy5uYW1lPT09XCJyZXR1cm5cIil7aWYodGhpcy5vcHRzLnZhbGlkYXRlKXtjb25zdCBlPXRoaXMub3B0cy52YWxpZGF0ZSh0aGlzLnZhbHVlKTtlJiYodGhpcy5lcnJvcj1lLHRoaXMuc3RhdGU9XCJlcnJvclwiLHRoaXMucmwud3JpdGUodGhpcy52YWx1ZSkpO310aGlzLnN0YXRlIT09XCJlcnJvclwiJiYodGhpcy5zdGF0ZT1cInN1Ym1pdFwiKTt9dT09PVwiXHUwMDAzXCImJih0aGlzLnN0YXRlPVwiY2FuY2VsXCIpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmVtaXQoXCJmaW5hbGl6ZVwiKSx0aGlzLnJlbmRlcigpLCh0aGlzLnN0YXRlPT09XCJzdWJtaXRcInx8dGhpcy5zdGF0ZT09PVwiY2FuY2VsXCIpJiZ0aGlzLmNsb3NlKCk7fWNsb3NlKCl7dGhpcy5pbnB1dC51bnBpcGUoKSx0aGlzLmlucHV0LnJlbW92ZUxpc3RlbmVyKFwia2V5cHJlc3NcIix0aGlzLm9uS2V5cHJlc3MpLHRoaXMub3V0cHV0LndyaXRlKGBcbmApLGcodGhpcy5pbnB1dCwhMSksdGhpcy5ybC5jbG9zZSgpLHRoaXMuZW1pdChgJHt0aGlzLnN0YXRlfWAsdGhpcy52YWx1ZSksdGhpcy51bnN1YnNjcmliZSgpO31yZXN0b3JlQ3Vyc29yKCl7Y29uc3QgdT1QKHRoaXMuX3ByZXZGcmFtZSxwcm9jZXNzLnN0ZG91dC5jb2x1bW5zLHtoYXJkOiEwfSkuc3BsaXQoYFxuYCkubGVuZ3RoLTE7dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKC05OTksdSotMSkpO31yZW5kZXIoKXtjb25zdCB1PVAodGhpcy5fcmVuZGVyKHRoaXMpPz9cIlwiLHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMse2hhcmQ6ITB9KTtpZih1IT09dGhpcy5fcHJldkZyYW1lKXtpZih0aGlzLnN0YXRlPT09XCJpbml0aWFsXCIpdGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5oaWRlKTtlbHNlIHtjb25zdCBGPUZEKHRoaXMuX3ByZXZGcmFtZSx1KTtpZih0aGlzLnJlc3RvcmVDdXJzb3IoKSxGJiZGPy5sZW5ndGg9PT0xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5saW5lcygxKSk7Y29uc3Qgcz11LnNwbGl0KGBcbmApO3RoaXMub3V0cHV0LndyaXRlKHNbZV0pLHRoaXMuX3ByZXZGcmFtZT11LHRoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLHMubGVuZ3RoLWUtMSkpO3JldHVybn1lbHNlIGlmKEYmJkY/Lmxlbmd0aD4xKXtjb25zdCBlPUZbMF07dGhpcy5vdXRwdXQud3JpdGUoc3JjLmN1cnNvci5tb3ZlKDAsZSkpLHRoaXMub3V0cHV0LndyaXRlKHNyYy5lcmFzZS5kb3duKCkpO2NvbnN0IEM9dS5zcGxpdChgXG5gKS5zbGljZShlKTt0aGlzLm91dHB1dC53cml0ZShDLmpvaW4oYFxuYCkpLHRoaXMuX3ByZXZGcmFtZT11O3JldHVybn10aGlzLm91dHB1dC53cml0ZShzcmMuZXJhc2UuZG93bigpKTt9dGhpcy5vdXRwdXQud3JpdGUodSksdGhpcy5zdGF0ZT09PVwiaW5pdGlhbFwiJiYodGhpcy5zdGF0ZT1cImFjdGl2ZVwiKSx0aGlzLl9wcmV2RnJhbWU9dTt9fX1jbGFzcyBzRCBleHRlbmRzIGh7Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLnZhbHVlPzA6MX1nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMuY3Vyc29yPT09MH1jb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLnZhbHVlPSEhdS5pbml0aWFsVmFsdWUsdGhpcy5vbihcInZhbHVlXCIsKCk9Pnt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlO30pLHRoaXMub24oXCJjb25maXJtXCIsRj0+e3RoaXMub3V0cHV0LndyaXRlKHNyYy5jdXJzb3IubW92ZSgwLC0xKSksdGhpcy52YWx1ZT1GLHRoaXMuc3RhdGU9XCJzdWJtaXRcIix0aGlzLmNsb3NlKCk7fSksdGhpcy5vbihcImN1cnNvclwiLCgpPT57dGhpcy52YWx1ZT0hdGhpcy52YWx1ZTt9KTt9fWNsYXNzIGlEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy52YWx1ZT1bLi4udS5pbml0aWFsVmFsdWVzPz9bXV0sdGhpcy5jdXJzb3I9TWF0aC5tYXgodGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuY3Vyc29yQXQpLDApLHRoaXMub24oXCJrZXlcIixGPT57Rj09PVwiYVwiJiZ0aGlzLnRvZ2dsZUFsbCgpO30pLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWs7Y2FzZVwic3BhY2VcIjp0aGlzLnRvZ2dsZVZhbHVlKCk7YnJlYWt9fSk7fWdldCBfdmFsdWUoKXtyZXR1cm4gdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXS52YWx1ZX10b2dnbGVBbGwoKXtjb25zdCB1PXRoaXMudmFsdWUubGVuZ3RoPT09dGhpcy5vcHRpb25zLmxlbmd0aDt0aGlzLnZhbHVlPXU/W106dGhpcy5vcHRpb25zLm1hcChGPT5GLnZhbHVlKTt9dG9nZ2xlVmFsdWUoKXtjb25zdCB1PXRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5fdmFsdWUpO3RoaXMudmFsdWU9dT90aGlzLnZhbHVlLmZpbHRlcihGPT5GIT09dGhpcy5fdmFsdWUpOlsuLi50aGlzLnZhbHVlLHRoaXMuX3ZhbHVlXTt9fWNsYXNzIEVEIGV4dGVuZHMgaHtjb25zdHJ1Y3Rvcih1KXtzdXBlcih1LCExKSx0aGlzLmN1cnNvcj0wLHRoaXMub3B0aW9ucz11Lm9wdGlvbnMsdGhpcy5jdXJzb3I9dGhpcy5vcHRpb25zLmZpbmRJbmRleCgoe3ZhbHVlOkZ9KT0+Rj09PXUuaW5pdGlhbFZhbHVlKSx0aGlzLmN1cnNvcj09PS0xJiYodGhpcy5jdXJzb3I9MCksdGhpcy5jaGFuZ2VWYWx1ZSgpLHRoaXMub24oXCJjdXJzb3JcIixGPT57c3dpdGNoKEYpe2Nhc2VcImxlZnRcIjpjYXNlXCJ1cFwiOnRoaXMuY3Vyc29yPXRoaXMuY3Vyc29yPT09MD90aGlzLm9wdGlvbnMubGVuZ3RoLTE6dGhpcy5jdXJzb3ItMTticmVhaztjYXNlXCJkb3duXCI6Y2FzZVwicmlnaHRcIjp0aGlzLmN1cnNvcj10aGlzLmN1cnNvcj09PXRoaXMub3B0aW9ucy5sZW5ndGgtMT8wOnRoaXMuY3Vyc29yKzE7YnJlYWt9dGhpcy5jaGFuZ2VWYWx1ZSgpO30pO31nZXQgX3ZhbHVlKCl7cmV0dXJuIHRoaXMub3B0aW9uc1t0aGlzLmN1cnNvcl19Y2hhbmdlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3ZhbHVlLnZhbHVlO319Y2xhc3Mgb0QgZXh0ZW5kcyBoe2NvbnN0cnVjdG9yKHUpe3N1cGVyKHUpLHRoaXMudmFsdWVXaXRoQ3Vyc29yPVwiXCIsdGhpcy5vbihcImZpbmFsaXplXCIsKCk9Pnt0aGlzLnZhbHVlfHwodGhpcy52YWx1ZT11LmRlZmF1bHRWYWx1ZSksdGhpcy52YWx1ZVdpdGhDdXJzb3I9dGhpcy52YWx1ZTt9KSx0aGlzLm9uKFwidmFsdWVcIiwoKT0+e2lmKHRoaXMuY3Vyc29yPj10aGlzLnZhbHVlLmxlbmd0aCl0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHt0aGlzLnZhbHVlfSR7bC5pbnZlcnNlKGwuaGlkZGVuKFwiX1wiKSl9YDtlbHNlIHtjb25zdCBGPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLmN1cnNvciksZT10aGlzLnZhbHVlLnNsaWNlKHRoaXMuY3Vyc29yKTt0aGlzLnZhbHVlV2l0aEN1cnNvcj1gJHtGfSR7bC5pbnZlcnNlKGVbMF0pfSR7ZS5zbGljZSgxKX1gO319KTt9Z2V0IGN1cnNvcigpe3JldHVybiB0aGlzLl9jdXJzb3J9fVxuXG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgU19TVEVQX0FDVElWRSA9IHMoXCJcXHUyNzZGXCIsIFwiPlwiKTtcbmNvbnN0IFNfU1RFUF9DQU5DRUwgPSBzKFwiXFx1MjVBMFwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfRVJST1IgPSBzKFwiXFx1MjVCMlwiLCBcInhcIik7XG5jb25zdCBTX1NURVBfU1VCTUlUID0gcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpO1xuY29uc3QgU19CQVIgPSBcIlwiO1xuY29uc3QgU19CQVJfRU5EID0gXCJcIjtcbmNvbnN0IFNfUkFESU9fQUNUSVZFID0gcyhcIlxcdTI1Q0ZcIiwgXCI+XCIpO1xuY29uc3QgU19SQURJT19JTkFDVElWRSA9IHMoXCJcXHUyNUNCXCIsIFwiIFwiKTtcbmNvbnN0IFNfQ0hFQ0tCT1hfQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbXFx1MjAyMl1cIik7XG5jb25zdCBTX0NIRUNLQk9YX1NFTEVDVEVEID0gcyhcIlxcdTI1RkNcIiwgXCJbK11cIik7XG5jb25zdCBTX0NIRUNLQk9YX0lOQUNUSVZFID0gcyhcIlxcdTI1RkJcIiwgXCJbIF1cIik7XG5jb25zdCBzeW1ib2wgPSAoc3RhdGUpID0+IHtcbiAgc3dpdGNoIChzdGF0ZSkge1xuICAgIGNhc2UgXCJpbml0aWFsXCI6XG4gICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLmN5YW4oU19TVEVQX0FDVElWRSk7XG4gICAgfVxuICAgIGNhc2UgXCJjYW5jZWxcIjoge1xuICAgICAgcmV0dXJuIGNvbG9ycy5yZWQoU19TVEVQX0NBTkNFTCk7XG4gICAgfVxuICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICByZXR1cm4gY29sb3JzLnllbGxvdyhTX1NURVBfRVJST1IpO1xuICAgIH1cbiAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgIHJldHVybiBjb2xvcnMuZ3JlZW4oU19TVEVQX1NVQk1JVCk7XG4gICAgfVxuICB9XG59O1xuY29uc3QgdGV4dCA9IChvcHRzKSA9PiB7XG4gIHJldHVybiBuZXcgb0Qoe1xuICAgIHZhbGlkYXRlOiBvcHRzLnZhbGlkYXRlLFxuICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgIGRlZmF1bHRWYWx1ZTogb3B0cy5kZWZhdWx0VmFsdWUsXG4gICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxWYWx1ZSxcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IGAke2NvbG9ycy5ncmF5KFNfQkFSKX1cbiR7c3ltYm9sKHRoaXMuc3RhdGUpfSAke29wdHMubWVzc2FnZX1cbmA7XG4gICAgICBjb25zdCBwbGFjZWhvbGRlciA9IG9wdHMucGxhY2Vob2xkZXIgPyBjb2xvcnMuaW52ZXJzZShvcHRzLnBsYWNlaG9sZGVyWzBdKSArIGNvbG9ycy5kaW0ob3B0cy5wbGFjZWhvbGRlci5zbGljZSgxKSkgOiBjb2xvcnMuaW52ZXJzZShjb2xvcnMuaGlkZGVuKFwiX1wiKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlV2l0aEN1cnNvciA6IHBsYWNlaG9sZGVyO1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXRlKSB7XG4gICAgICAgIGNhc2UgXCJlcnJvclwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlLnRyaW0oKX1cbiR7Y29sb3JzLnllbGxvdyhcbiAgICAgICAgICAgIFNfQkFSXG4gICAgICAgICAgKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLnllbGxvdyhTX0JBUl9FTkQpfSAke2NvbG9ycy55ZWxsb3coXG4gICAgICAgICAgICB0aGlzLmVycm9yXG4gICAgICAgICAgKX1cbmA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0oXG4gICAgICAgICAgICB0aGlzLnZhbHVlIHx8IG9wdHMucGxhY2Vob2xkZXJcbiAgICAgICAgICApfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh0aGlzLnZhbHVlID8/IFwiXCIpXG4gICAgICAgICAgKX0ke3RoaXMudmFsdWU/LnRyaW0oKSA/IFwiXFxuXCIgKyBjb2xvcnMuZ3JheShTX0JBUikgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt2YWx1ZX1cbiR7Y29sb3JzLmN5YW4oXG4gICAgICAgICAgICBTX0JBUl9FTkRcbiAgICAgICAgICApfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3QgY29uZmlybSA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IGFjdGl2ZSA9IG9wdHMuYWN0aXZlID8/IFwiWWVzXCI7XG4gIGNvbnN0IGluYWN0aXZlID0gb3B0cy5pbmFjdGl2ZSA/PyBcIk5vXCI7XG4gIHJldHVybiBuZXcgc0Qoe1xuICAgIGFjdGl2ZSxcbiAgICBpbmFjdGl2ZSxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlID8/IHRydWUsXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3QgdGl0bGUgPSBgJHtjb2xvcnMuZ3JheShTX0JBUil9XG4ke3N5bWJvbCh0aGlzLnN0YXRlKX0gJHtvcHRzLm1lc3NhZ2V9XG5gO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlID8gYWN0aXZlIDogaW5hY3RpdmU7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdGUpIHtcbiAgICAgICAgY2FzZSBcInN1Ym1pdFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5kaW0odmFsdWUpfWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImNhbmNlbFwiOiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmdyYXkoU19CQVIpfSAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKFxuICAgICAgICAgICAgY29sb3JzLmRpbSh2YWx1ZSlcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMudmFsdWUgPyBgJHtjb2xvcnMuZ3JlZW4oU19SQURJT19BQ1RJVkUpfSAke2FjdGl2ZX1gIDogYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGFjdGl2ZSl9YH0gJHtjb2xvcnMuZGltKFwiL1wiKX0gJHt0aGlzLnZhbHVlID8gYCR7Y29sb3JzLmRpbShTX1JBRElPX0lOQUNUSVZFKX0gJHtjb2xvcnMuZGltKGluYWN0aXZlKX1gIDogYCR7Y29sb3JzLmdyZWVuKFNfUkFESU9fQUNUSVZFKX0gJHtpbmFjdGl2ZX1gfVxuJHtjb2xvcnMuY3lhbihTX0JBUl9FTkQpfVxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSkucHJvbXB0KCk7XG59O1xuY29uc3Qgc2VsZWN0ID0gKG9wdHMpID0+IHtcbiAgY29uc3Qgb3B0ID0gKG9wdGlvbiwgc3RhdGUpID0+IHtcbiAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCA/PyBTdHJpbmcob3B0aW9uLnZhbHVlKTtcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICBjYXNlIFwiYWN0aXZlXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5ncmVlbihTX1JBRElPX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmRpbShsYWJlbCl9YDtcbiAgICAgIH1cbiAgICAgIGNhc2UgXCJjYW5jZWxsZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLnN0cmlrZXRocm91Z2goY29sb3JzLmRpbShsYWJlbCkpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfUkFESU9fSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgRUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFZhbHVlLFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwic2VsZWN0ZWRcIlxuICAgICAgICAgICl9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7b3B0KFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zW3RoaXMuY3Vyc29yXSxcbiAgICAgICAgICAgIFwiY2FuY2VsbGVkXCJcbiAgICAgICAgICApfVxuJHtjb2xvcnMuZ3JheShTX0JBUil9YDtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIGAke3RpdGxlfSR7Y29sb3JzLmN5YW4oU19CQVIpfSAke3RoaXMub3B0aW9ucy5tYXAoXG4gICAgICAgICAgICAob3B0aW9uLCBpKSA9PiBvcHQob3B0aW9uLCBpID09PSB0aGlzLmN1cnNvciA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpXG4gICAgICAgICAgKS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5jb25zdCBtdWx0aXNlbGVjdCA9IChvcHRzKSA9PiB7XG4gIGNvbnN0IG9wdCA9IChvcHRpb24sIHN0YXRlKSA9PiB7XG4gICAgY29uc3QgbGFiZWwgPSBvcHRpb24ubGFiZWwgPz8gU3RyaW5nKG9wdGlvbi52YWx1ZSk7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFjdGl2ZVwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuY3lhbihTX0NIRUNLQk9YX0FDVElWRSl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic2VsZWN0ZWRcIjoge1xuICAgICAgICByZXR1cm4gYCR7Y29sb3JzLmdyZWVuKFNfQ0hFQ0tCT1hfU0VMRUNURUQpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwiY2FuY2VsbGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5zdHJpa2V0aHJvdWdoKGNvbG9ycy5kaW0obGFiZWwpKX1gO1xuICAgICAgfVxuICAgICAgY2FzZSBcImFjdGl2ZS1zZWxlY3RlZFwiOiB7XG4gICAgICAgIHJldHVybiBgJHtjb2xvcnMuZ3JlZW4oU19DSEVDS0JPWF9TRUxFQ1RFRCl9ICR7bGFiZWx9ICR7b3B0aW9uLmhpbnQgPyBjb2xvcnMuZGltKGAoJHtvcHRpb24uaGludH0pYCkgOiBcIlwifWA7XG4gICAgICB9XG4gICAgICBjYXNlIFwic3VibWl0dGVkXCI6IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgJHtjb2xvcnMuZGltKFNfQ0hFQ0tCT1hfSU5BQ1RJVkUpfSAke2NvbG9ycy5kaW0obGFiZWwpfWA7XG4gIH07XG4gIHJldHVybiBuZXcgaUQoe1xuICAgIG9wdGlvbnM6IG9wdHMub3B0aW9ucyxcbiAgICBpbml0aWFsVmFsdWVzOiBvcHRzLmluaXRpYWxWYWx1ZXMsXG4gICAgcmVxdWlyZWQ6IG9wdHMucmVxdWlyZWQgPz8gdHJ1ZSxcbiAgICBjdXJzb3JBdDogb3B0cy5jdXJzb3JBdCxcbiAgICB2YWxpZGF0ZShzZWxlY3RlZCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBgUGxlYXNlIHNlbGVjdCBhdCBsZWFzdCBvbmUgb3B0aW9uLlxuJHtjb2xvcnMucmVzZXQoXG4gICAgICAgICAgY29sb3JzLmRpbShcbiAgICAgICAgICAgIGBQcmVzcyAke2NvbG9ycy5ncmF5KFxuICAgICAgICAgICAgICBjb2xvcnMuYmdXaGl0ZShjb2xvcnMuaW52ZXJzZShcIiBzcGFjZSBcIikpXG4gICAgICAgICAgICApfSB0byBzZWxlY3QsICR7Y29sb3JzLmdyYXkoXG4gICAgICAgICAgICAgIGNvbG9ycy5iZ1doaXRlKGNvbG9ycy5pbnZlcnNlKFwiIGVudGVyIFwiKSlcbiAgICAgICAgICAgICl9IHRvIHN1Ym1pdGBcbiAgICAgICAgICApXG4gICAgICAgICl9YDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gYCR7Y29sb3JzLmdyYXkoU19CQVIpfVxuJHtzeW1ib2wodGhpcy5zdGF0ZSl9ICR7b3B0cy5tZXNzYWdlfVxuYDtcbiAgICAgIHN3aXRjaCAodGhpcy5zdGF0ZSkge1xuICAgICAgICBjYXNlIFwic3VibWl0XCI6IHtcbiAgICAgICAgICByZXR1cm4gYCR7dGl0bGV9JHtjb2xvcnMuZ3JheShTX0JBUil9ICR7dGhpcy5vcHRpb25zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB0aGlzLnZhbHVlLmluY2x1ZGVzKHZhbHVlKSkubWFwKChvcHRpb24pID0+IG9wdChvcHRpb24sIFwic3VibWl0dGVkXCIpKS5qb2luKGNvbG9ycy5kaW0oXCIsIFwiKSkgfHwgY29sb3JzLmRpbShcIm5vbmVcIil9YDtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFwiY2FuY2VsXCI6IHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gdGhpcy52YWx1ZS5pbmNsdWRlcyh2YWx1ZSkpLm1hcCgob3B0aW9uKSA9PiBvcHQob3B0aW9uLCBcImNhbmNlbGxlZFwiKSkuam9pbihjb2xvcnMuZGltKFwiLCBcIikpO1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5ncmF5KFNfQkFSKX0gJHtsYWJlbC50cmltKCkgPyBgJHtsYWJlbH1cbiR7Y29sb3JzLmdyYXkoU19CQVIpfWAgOiBcIlwifWA7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBcImVycm9yXCI6IHtcbiAgICAgICAgICBjb25zdCBmb290ZXIgPSB0aGlzLmVycm9yLnNwbGl0KFwiXFxuXCIpLm1hcChcbiAgICAgICAgICAgIChsbiwgaSkgPT4gaSA9PT0gMCA/IGAke2NvbG9ycy55ZWxsb3coU19CQVJfRU5EKX0gJHtjb2xvcnMueWVsbG93KGxuKX1gIDogYCAgICR7bG59YFxuICAgICAgICAgICkuam9pbihcIlxcblwiKTtcbiAgICAgICAgICByZXR1cm4gdGl0bGUgKyBjb2xvcnMueWVsbG93KFNfQkFSKSArIFwiICBcIiArIHRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbiwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBpID09PSB0aGlzLmN1cnNvcjtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIFwiYWN0aXZlLXNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdChvcHRpb24sIGFjdGl2ZSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCIpO1xuICAgICAgICAgIH0pLmpvaW4oYFxuJHtjb2xvcnMueWVsbG93KFNfQkFSKX0gIGApICsgXCJcXG5cIiArIGZvb3RlciArIFwiXFxuXCI7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBgJHt0aXRsZX0ke2NvbG9ycy5jeWFuKFNfQkFSKX0gJHt0aGlzLm9wdGlvbnMubWFwKChvcHRpb24sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy52YWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gaSA9PT0gdGhpcy5jdXJzb3I7XG4gICAgICAgICAgICBpZiAoYWN0aXZlICYmIHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBcImFjdGl2ZS1zZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICByZXR1cm4gb3B0KG9wdGlvbiwgXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcHQob3B0aW9uLCBhY3RpdmUgPyBcImFjdGl2ZVwiIDogXCJpbmFjdGl2ZVwiKTtcbiAgICAgICAgICB9KS5qb2luKGBcbiR7Y29sb3JzLmN5YW4oU19CQVIpfSAgYCl9XG4ke2NvbG9ycy5jeWFuKFNfQkFSX0VORCl9XG5gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KS5wcm9tcHQoKTtcbn07XG5cbmFzeW5jIGZ1bmN0aW9uIHByb21wdChtZXNzYWdlLCBvcHRzID0ge30pIHtcbiAgaWYgKCFvcHRzLnR5cGUgfHwgb3B0cy50eXBlID09PSBcInRleHRcIikge1xuICAgIHJldHVybiBhd2FpdCB0ZXh0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBkZWZhdWx0VmFsdWU6IG9wdHMuZGVmYXVsdCxcbiAgICAgIHBsYWNlaG9sZGVyOiBvcHRzLnBsYWNlaG9sZGVyLFxuICAgICAgaW5pdGlhbFZhbHVlOiBvcHRzLmluaXRpYWxcbiAgICB9KTtcbiAgfVxuICBpZiAob3B0cy50eXBlID09PSBcImNvbmZpcm1cIikge1xuICAgIHJldHVybiBhd2FpdCBjb25maXJtKHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBpbml0aWFsVmFsdWU6IG9wdHMuaW5pdGlhbFxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwic2VsZWN0XCIpIHtcbiAgICByZXR1cm4gYXdhaXQgc2VsZWN0KHtcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBvcHRpb25zOiBvcHRzLm9wdGlvbnMubWFwKFxuICAgICAgICAobykgPT4gdHlwZW9mIG8gPT09IFwic3RyaW5nXCIgPyB7IHZhbHVlOiBvLCBsYWJlbDogbyB9IDogb1xuICAgICAgKVxuICAgIH0pO1xuICB9XG4gIGlmIChvcHRzLnR5cGUgPT09IFwibXVsdGlzZWxlY3RcIikge1xuICAgIHJldHVybiBhd2FpdCBtdWx0aXNlbGVjdCh7XG4gICAgICBtZXNzYWdlLFxuICAgICAgb3B0aW9uczogb3B0cy5vcHRpb25zLm1hcChcbiAgICAgICAgKG8pID0+IHR5cGVvZiBvID09PSBcInN0cmluZ1wiID8geyB2YWx1ZTogbywgbGFiZWw6IG8gfSA6IG9cbiAgICAgICksXG4gICAgICByZXF1aXJlZDogb3B0cy5yZXF1aXJlZFxuICAgIH0pO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwcm9tcHQgdHlwZTogJHtvcHRzLnR5cGV9YCk7XG59XG5cbmV4cG9ydCB7IHByb21wdCB9O1xuIiwgImltcG9ydCB7IGNyZWF0ZUNvbnNvbGEgYXMgY3JlYXRlQ29uc29sYSQxLCBMb2dMZXZlbHMgfSBmcm9tICcuLi9jb3JlLm1qcyc7XG5pbXBvcnQgeyBCIGFzIEJhc2ljUmVwb3J0ZXIsIHAgYXMgcGFyc2VTdGFjayB9IGZyb20gJy4vY29uc29sYS4wNmFkOGE2NC5tanMnO1xuaW1wb3J0IHByb2Nlc3MkMSBmcm9tICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0IHsgY29sb3JzLCBib3gsIHN0cmlwQW5zaSBhcyBzdHJpcEFuc2kkMSB9IGZyb20gJy4uL3V0aWxzLm1qcyc7XG5cbmNvbnN0IHByb3ZpZGVycyA9IFtcbiAgW1wiQVBQVkVZT1JcIl0sXG4gIFtcIkFaVVJFX1BJUEVMSU5FU1wiLCBcIlNZU1RFTV9URUFNRk9VTkRBVElPTkNPTExFQ1RJT05VUklcIl0sXG4gIFtcIkFaVVJFX1NUQVRJQ1wiLCBcIklOUFVUX0FaVVJFX1NUQVRJQ19XRUJfQVBQU19BUElfVE9LRU5cIl0sXG4gIFtcIkFQUENJUkNMRVwiLCBcIkFDX0FQUENJUkNMRVwiXSxcbiAgW1wiQkFNQk9PXCIsIFwiYmFtYm9vX3BsYW5LZXlcIl0sXG4gIFtcIkJJVEJVQ0tFVFwiLCBcIkJJVEJVQ0tFVF9DT01NSVRcIl0sXG4gIFtcIkJJVFJJU0VcIiwgXCJCSVRSSVNFX0lPXCJdLFxuICBbXCJCVUREWVwiLCBcIkJVRERZX1dPUktTUEFDRV9JRFwiXSxcbiAgW1wiQlVJTERLSVRFXCJdLFxuICBbXCJDSVJDTEVcIiwgXCJDSVJDTEVDSVwiXSxcbiAgW1wiQ0lSUlVTXCIsIFwiQ0lSUlVTX0NJXCJdLFxuICBbXCJDTE9VREZMQVJFX1BBR0VTXCIsIFwiQ0ZfUEFHRVNcIiwgeyBjaTogdHJ1ZSB9XSxcbiAgW1wiQ09ERUJVSUxEXCIsIFwiQ09ERUJVSUxEX0JVSUxEX0FSTlwiXSxcbiAgW1wiQ09ERUZSRVNIXCIsIFwiQ0ZfQlVJTERfSURcIl0sXG4gIFtcIkRST05FXCJdLFxuICBbXCJEUk9ORVwiLCBcIkRST05FX0JVSUxEX0VWRU5UXCJdLFxuICBbXCJEU0FSSVwiXSxcbiAgW1wiR0lUSFVCX0FDVElPTlNcIl0sXG4gIFtcIkdJVExBQlwiLCBcIkdJVExBQl9DSVwiXSxcbiAgW1wiR0lUTEFCXCIsIFwiQ0lfTUVSR0VfUkVRVUVTVF9JRFwiXSxcbiAgW1wiR09DRFwiLCBcIkdPX1BJUEVMSU5FX0xBQkVMXCJdLFxuICBbXCJMQVlFUkNJXCJdLFxuICBbXCJIVURTT05cIiwgXCJIVURTT05fVVJMXCJdLFxuICBbXCJKRU5LSU5TXCIsIFwiSkVOS0lOU19VUkxcIl0sXG4gIFtcIk1BR05VTVwiXSxcbiAgW1wiTkVUTElGWVwiXSxcbiAgW1wiTkVUTElGWVwiLCBcIk5FVExJRllfTE9DQUxcIiwgeyBjaTogZmFsc2UgfV0sXG4gIFtcIk5FVkVSQ09ERVwiXSxcbiAgW1wiUkVOREVSXCJdLFxuICBbXCJTQUlMXCIsIFwiU0FJTENJXCJdLFxuICBbXCJTRU1BUEhPUkVcIl0sXG4gIFtcIlNDUkVXRFJJVkVSXCJdLFxuICBbXCJTSElQUEFCTEVcIl0sXG4gIFtcIlNPTEFOT1wiLCBcIlRERElVTVwiXSxcbiAgW1wiU1RSSURFUlwiXSxcbiAgW1wiVEVBTUNJVFlcIiwgXCJURUFNQ0lUWV9WRVJTSU9OXCJdLFxuICBbXCJUUkFWSVNcIl0sXG4gIFtcIlZFUkNFTFwiLCBcIk5PV19CVUlMREVSXCJdLFxuICBbXCJBUFBDRU5URVJcIiwgXCJBUFBDRU5URVJfQlVJTERfSURcIl0sXG4gIFtcIkNPREVTQU5EQk9YXCIsIFwiQ09ERVNBTkRCT1hfU1NFXCIsIHsgY2k6IGZhbHNlIH1dLFxuICBbXCJTVEFDS0JMSVRaXCJdLFxuICBbXCJTVE9STUtJVFwiXSxcbiAgW1wiQ0xFQVZSXCJdXG5dO1xuZnVuY3Rpb24gZGV0ZWN0UHJvdmlkZXIoZW52KSB7XG4gIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XG4gICAgY29uc3QgZW52TmFtZSA9IHByb3ZpZGVyWzFdIHx8IHByb3ZpZGVyWzBdO1xuICAgIGlmIChlbnZbZW52TmFtZV0pIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHByb3ZpZGVyWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIC4uLnByb3ZpZGVyWzJdXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoZW52LlNIRUxMICYmIGVudi5TSEVMTCA9PT0gXCIvYmluL2pzaFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFwic3RhY2tibGl0elwiLFxuICAgICAgY2k6IGZhbHNlXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWU6IFwiXCIsXG4gICAgY2k6IGZhbHNlXG4gIH07XG59XG5cbmNvbnN0IHByb2Nlc3NTaGltID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgPyBwcm9jZXNzIDoge307XG5jb25zdCBlbnZTaGltID0gcHJvY2Vzc1NoaW0uZW52IHx8IHt9O1xuY29uc3QgcHJvdmlkZXJJbmZvID0gZGV0ZWN0UHJvdmlkZXIoZW52U2hpbSk7XG5jb25zdCBub2RlRU5WID0gdHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnYgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgfHwgXCJcIjtcbnByb2Nlc3NTaGltLnBsYXRmb3JtO1xucHJvdmlkZXJJbmZvLm5hbWU7XG5jb25zdCBpc0NJID0gdG9Cb29sZWFuKGVudlNoaW0uQ0kpIHx8IHByb3ZpZGVySW5mby5jaSAhPT0gZmFsc2U7XG5jb25zdCBoYXNUVFkgPSB0b0Jvb2xlYW4ocHJvY2Vzc1NoaW0uc3Rkb3V0ICYmIHByb2Nlc3NTaGltLnN0ZG91dC5pc1RUWSk7XG5jb25zdCBpc0RlYnVnID0gdG9Cb29sZWFuKGVudlNoaW0uREVCVUcpO1xuY29uc3QgaXNUZXN0ID0gbm9kZUVOViA9PT0gXCJ0ZXN0XCIgfHwgdG9Cb29sZWFuKGVudlNoaW0uVEVTVCk7XG50b0Jvb2xlYW4oZW52U2hpbS5NSU5JTUFMKSB8fCBpc0NJIHx8IGlzVGVzdCB8fCAhaGFzVFRZO1xuZnVuY3Rpb24gdG9Cb29sZWFuKHZhbCkge1xuICByZXR1cm4gdmFsID8gdmFsICE9PSBcImZhbHNlXCIgOiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYW5zaVJlZ2V4KHtvbmx5Rmlyc3QgPSBmYWxzZX0gPSB7fSkge1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHQgICAgJ1tcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn1cblxuY29uc3QgcmVnZXggPSBhbnNpUmVnZXgoKTtcblxuZnVuY3Rpb24gc3RyaXBBbnNpKHN0cmluZykge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHtcblx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGBFeHBlY3RlZCBhIFxcYHN0cmluZ1xcYCwgZ290IFxcYCR7dHlwZW9mIHN0cmluZ31cXGBgKTtcblx0fVxuXG5cdC8vIEV2ZW4gdGhvdWdoIHRoZSByZWdleCBpcyBnbG9iYWwsIHdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhlIGAubGFzdEluZGV4YFxuXHQvLyBiZWNhdXNlIHVubGlrZSBgLmV4ZWMoKWAgYW5kIGAudGVzdCgpYCwgYC5yZXBsYWNlKClgIGRvZXMgaXQgYXV0b21hdGljYWxseVxuXHQvLyBhbmQgZG9pbmcgaXQgbWFudWFsbHkgaGFzIGEgcGVyZm9ybWFuY2UgcGVuYWx0eS5cblx0cmV0dXJuIHN0cmluZy5yZXBsYWNlKHJlZ2V4LCAnJyk7XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzICh4KSB7XG5cdHJldHVybiB4ICYmIHguX19lc01vZHVsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeCwgJ2RlZmF1bHQnKSA/IHhbJ2RlZmF1bHQnXSA6IHg7XG59XG5cbnZhciBlYXN0YXNpYW53aWR0aCA9IHtleHBvcnRzOiB7fX07XG5cbihmdW5jdGlvbiAobW9kdWxlKSB7XG5cdHZhciBlYXcgPSB7fTtcblxuXHR7XG5cdCAgbW9kdWxlLmV4cG9ydHMgPSBlYXc7XG5cdH1cblxuXHRlYXcuZWFzdEFzaWFuV2lkdGggPSBmdW5jdGlvbihjaGFyYWN0ZXIpIHtcblx0ICB2YXIgeCA9IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApO1xuXHQgIHZhciB5ID0gKGNoYXJhY3Rlci5sZW5ndGggPT0gMikgPyBjaGFyYWN0ZXIuY2hhckNvZGVBdCgxKSA6IDA7XG5cdCAgdmFyIGNvZGVQb2ludCA9IHg7XG5cdCAgaWYgKCgweEQ4MDAgPD0geCAmJiB4IDw9IDB4REJGRikgJiYgKDB4REMwMCA8PSB5ICYmIHkgPD0gMHhERkZGKSkge1xuXHQgICAgeCAmPSAweDNGRjtcblx0ICAgIHkgJj0gMHgzRkY7XG5cdCAgICBjb2RlUG9pbnQgPSAoeCA8PCAxMCkgfCB5O1xuXHQgICAgY29kZVBvaW50ICs9IDB4MTAwMDA7XG5cdCAgfVxuXG5cdCAgaWYgKCgweDMwMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRjYwKSB8fFxuXHQgICAgICAoMHhGRkUwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkU2KSkge1xuXHQgICAgcmV0dXJuICdGJztcblx0ICB9XG5cdCAgaWYgKCgweDIwQTkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHhGRjYxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkJFKSB8fFxuXHQgICAgICAoMHhGRkMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkM3KSB8fFxuXHQgICAgICAoMHhGRkNBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkNGKSB8fFxuXHQgICAgICAoMHhGRkQyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkQ3KSB8fFxuXHQgICAgICAoMHhGRkRBIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkRDKSB8fFxuXHQgICAgICAoMHhGRkU4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkVFKSkge1xuXHQgICAgcmV0dXJuICdIJztcblx0ICB9XG5cdCAgaWYgKCgweDExMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExNUYpIHx8XG5cdCAgICAgICgweDExQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExQTcpIHx8XG5cdCAgICAgICgweDExRkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDExRkYpIHx8XG5cdCAgICAgICgweDIzMjkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIzMkEpIHx8XG5cdCAgICAgICgweDJFODAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFOTkpIHx8XG5cdCAgICAgICgweDJFOUIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJFRjMpIHx8XG5cdCAgICAgICgweDJGMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRDUpIHx8XG5cdCAgICAgICgweDJGRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDJGRkIpIHx8XG5cdCAgICAgICgweDMwMDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwM0UpIHx8XG5cdCAgICAgICgweDMwNDEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwOTYpIHx8XG5cdCAgICAgICgweDMwOTkgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMwRkYpIHx8XG5cdCAgICAgICgweDMxMDUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxMkQpIHx8XG5cdCAgICAgICgweDMxMzEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxOEUpIHx8XG5cdCAgICAgICgweDMxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxQkEpIHx8XG5cdCAgICAgICgweDMxQzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMxRTMpIHx8XG5cdCAgICAgICgweDMxRjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyMUUpIHx8XG5cdCAgICAgICgweDMyMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyNDcpIHx8XG5cdCAgICAgICgweDMyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDMyRkUpIHx8XG5cdCAgICAgICgweDMzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDREQkYpIHx8XG5cdCAgICAgICgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0OEMpIHx8XG5cdCAgICAgICgweEE0OTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdCAgICAgICgweEE5NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE5N0MpIHx8XG5cdCAgICAgICgweEFDMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QTMpIHx8XG5cdCAgICAgICgweEQ3QjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3QzYpIHx8XG5cdCAgICAgICgweEQ3Q0IgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEQ3RkIpIHx8XG5cdCAgICAgICgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdCAgICAgICgweEZFMTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFMTkpIHx8XG5cdCAgICAgICgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNTIpIHx8XG5cdCAgICAgICgweEZFNTQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNjYpIHx8XG5cdCAgICAgICgweEZFNjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdCAgICAgICgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0ICAgICAgKDB4MUYyMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjAyKSB8fFxuXHQgICAgICAoMHgxRjIxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYyM0EpIHx8XG5cdCAgICAgICgweDFGMjQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI0OCkgfHxcblx0ICAgICAgKDB4MUYyNTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjUxKSB8fFxuXHQgICAgICAoMHgyMDAwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MkY3M0YpIHx8XG5cdCAgICAgICgweDJCNzQwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyRkZGRCkgfHxcblx0ICAgICAgKDB4MzAwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDNGRkZEKSkge1xuXHQgICAgcmV0dXJuICdXJztcblx0ICB9XG5cdCAgaWYgKCgweDAwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwN0UpIHx8XG5cdCAgICAgICgweDAwQTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTMpIHx8XG5cdCAgICAgICgweDAwQTUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwQTYpIHx8XG5cdCAgICAgICgweDAwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEFGID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjdFNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjdFRCkgfHxcblx0ICAgICAgKDB4Mjk4NSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4Mjk4NikpIHtcblx0ICAgIHJldHVybiAnTmEnO1xuXHQgIH1cblx0ICBpZiAoKDB4MDBBMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwQTQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEE3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEE4KSB8fFxuXHQgICAgICAoMHgwMEFBID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBBRCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBBRSkgfHxcblx0ICAgICAgKDB4MDBCMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCNCkgfHxcblx0ICAgICAgKDB4MDBCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCQSkgfHxcblx0ICAgICAgKDB4MDBCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBCRikgfHxcblx0ICAgICAgKDB4MDBDNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEQ3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEQ4KSB8fFxuXHQgICAgICAoMHgwMERFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMEUxKSB8fFxuXHQgICAgICAoMHgwMEU2ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDBFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFQSkgfHxcblx0ICAgICAgKDB4MDBFQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDBFRCkgfHxcblx0ICAgICAgKDB4MDBGMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAwRjIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRjMpIHx8XG5cdCAgICAgICgweDAwRjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAwRkEpIHx8XG5cdCAgICAgICgweDAwRkMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMEZFID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEwMSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDExQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxMjYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxMjcpIHx8XG5cdCAgICAgICgweDAxMkIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTMxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTMzKSB8fFxuXHQgICAgICAoMHgwMTM4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDEzRiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDE0MikgfHxcblx0ICAgICAgKDB4MDE0NCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxNDggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAxNEIpIHx8XG5cdCAgICAgICgweDAxNEQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMTUyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTUzKSB8fFxuXHQgICAgICAoMHgwMTY2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMTY3KSB8fFxuXHQgICAgICAoMHgwMTZCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFDRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFENCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxRDYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMUQ4ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDFEQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAxREMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMjUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDI2MSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyQzQgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkM3ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJDOSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MDJDQikgfHxcblx0ICAgICAgKDB4MDJDRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAyRDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwMkQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwMkRCKSB8fFxuXHQgICAgICAoMHgwMkREID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MDJERiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDAzMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzNkYpIHx8XG5cdCAgICAgICgweDAzOTEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTEpIHx8XG5cdCAgICAgICgweDAzQTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQTkpIHx8XG5cdCAgICAgICgweDAzQjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzEpIHx8XG5cdCAgICAgICgweDAzQzMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDAzQzkpIHx8XG5cdCAgICAgICgweDA0MDEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgwNDEwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgwNDRGKSB8fFxuXHQgICAgICAoMHgwNDUxID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAxMCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwMTMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTYpIHx8XG5cdCAgICAgICgweDIwMTggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMTkpIHx8XG5cdCAgICAgICgweDIwMUMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMUQpIHx8XG5cdCAgICAgICgweDIwMjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjIpIHx8XG5cdCAgICAgICgweDIwMjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwMjcpIHx8XG5cdCAgICAgICgweDIwMzAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDMyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMDMzKSB8fFxuXHQgICAgICAoMHgyMDM1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjAzQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwM0UgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMDc0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjA3RiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIwODEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIwODQpIHx8XG5cdCAgICAgICgweDIwQUMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTAzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjEwNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMDkgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTEzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjExNiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxMjEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxMjIpIHx8XG5cdCAgICAgICgweDIxMjYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMTJCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjE1MyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1NCkgfHxcblx0ICAgICAgKDB4MjE1QiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE1RSkgfHxcblx0ICAgICAgKDB4MjE2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE2QikgfHxcblx0ICAgICAgKDB4MjE3MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjE3OSkgfHxcblx0ICAgICAgKDB4MjE4OSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIxOTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxOTkpIHx8XG5cdCAgICAgICgweDIxQjggPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIxQjkpIHx8XG5cdCAgICAgICgweDIxRDIgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMUQ0ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjFFNyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMDAgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjAyIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjAzKSB8fFxuXHQgICAgICAoMHgyMjA3IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyMjA4KSB8fFxuXHQgICAgICAoMHgyMjBCID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIwRiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMTEgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjE1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIxQSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMUQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMjApIHx8XG5cdCAgICAgICgweDIyMjMgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjI1ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjIyNyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjIyQykgfHxcblx0ICAgICAgKDB4MjIyRSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyMzQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyMzcpIHx8XG5cdCAgICAgICgweDIyM0MgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyM0QpIHx8XG5cdCAgICAgICgweDIyNDggPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjRDID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjI1MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyNjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjEpIHx8XG5cdCAgICAgICgweDIyNjQgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNjcpIHx8XG5cdCAgICAgICgweDIyNkEgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkIpIHx8XG5cdCAgICAgICgweDIyNkUgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyNkYpIHx8XG5cdCAgICAgICgweDIyODIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODMpIHx8XG5cdCAgICAgICgweDIyODYgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDIyODcpIHx8XG5cdCAgICAgICgweDIyOTUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMjk5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjJBNSA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDIyQkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyMzEyID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjQ2MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjRFOSkgfHxcblx0ICAgICAgKDB4MjRFQiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU0QikgfHxcblx0ICAgICAgKDB4MjU1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU3MykgfHxcblx0ICAgICAgKDB4MjU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU4RikgfHxcblx0ICAgICAgKDB4MjU5MiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjU5NSkgfHxcblx0ICAgICAgKDB4MjVBMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBMSkgfHxcblx0ICAgICAgKDB4MjVBMyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVBOSkgfHxcblx0ICAgICAgKDB4MjVCMiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCMykgfHxcblx0ICAgICAgKDB4MjVCNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCNykgfHxcblx0ICAgICAgKDB4MjVCQyA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVCRCkgfHxcblx0ICAgICAgKDB4MjVDMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDMSkgfHxcblx0ICAgICAgKDB4MjVDNiA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjVDOCkgfHxcblx0ICAgICAgKDB4MjVDQiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI1Q0UgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RDEpIHx8XG5cdCAgICAgICgweDI1RTIgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI1RTUpIHx8XG5cdCAgICAgICgweDI1RUYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjA1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjA2KSB8fFxuXHQgICAgICAoMHgyNjA5ID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjYwRSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYwRikgfHxcblx0ICAgICAgKDB4MjYxNCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjYxNSkgfHxcblx0ICAgICAgKDB4MjYxQyA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2MUUgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjQwID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjY0MiA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI2NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjEpIHx8XG5cdCAgICAgICgweDI2NjMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NjUpIHx8XG5cdCAgICAgICgweDI2NjcgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkEpIHx8XG5cdCAgICAgICgweDI2NkMgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDI2NkQpIHx8XG5cdCAgICAgICgweDI2NkYgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNjlFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNjlGKSB8fFxuXHQgICAgICAoMHgyNkJFIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkJGKSB8fFxuXHQgICAgICAoMHgyNkM0IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkNEKSB8fFxuXHQgICAgICAoMHgyNkNGIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNkUxKSB8fFxuXHQgICAgICAoMHgyNkUzID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MjZFOCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MjZGRikgfHxcblx0ICAgICAgKDB4MjczRCA9PSBjb2RlUG9pbnQpIHx8XG5cdCAgICAgICgweDI3NTcgPT0gY29kZVBvaW50KSB8fFxuXHQgICAgICAoMHgyNzc2IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyNzdGKSB8fFxuXHQgICAgICAoMHgyQjU1IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgyQjU5KSB8fFxuXHQgICAgICAoMHgzMjQ4IDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzMjRGKSB8fFxuXHQgICAgICAoMHhFMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGOEZGKSB8fFxuXHQgICAgICAoMHhGRTAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRTBGKSB8fFxuXHQgICAgICAoMHhGRkZEID09IGNvZGVQb2ludCkgfHxcblx0ICAgICAgKDB4MUYxMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTBBKSB8fFxuXHQgICAgICAoMHgxRjExMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MUYxMkQpIHx8XG5cdCAgICAgICgweDFGMTMwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjE2OSkgfHxcblx0ICAgICAgKDB4MUYxNzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMTlBKSB8fFxuXHQgICAgICAoMHhFMDEwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RTAxRUYpIHx8XG5cdCAgICAgICgweEYwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRkZGRCkgfHxcblx0ICAgICAgKDB4MTAwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxMEZGRkQpKSB7XG5cdCAgICByZXR1cm4gJ0EnO1xuXHQgIH1cblxuXHQgIHJldHVybiAnTic7XG5cdH07XG5cblx0ZWF3LmNoYXJhY3Rlckxlbmd0aCA9IGZ1bmN0aW9uKGNoYXJhY3Rlcikge1xuXHQgIHZhciBjb2RlID0gdGhpcy5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHQgIGlmIChjb2RlID09ICdGJyB8fCBjb2RlID09ICdXJyB8fCBjb2RlID09ICdBJykge1xuXHQgICAgcmV0dXJuIDI7XG5cdCAgfSBlbHNlIHtcblx0ICAgIHJldHVybiAxO1xuXHQgIH1cblx0fTtcblxuXHQvLyBTcGxpdCBhIHN0cmluZyBjb25zaWRlcmluZyBzdXJyb2dhdGUtcGFpcnMuXG5cdGZ1bmN0aW9uIHN0cmluZ1RvQXJyYXkoc3RyaW5nKSB7XG5cdCAgcmV0dXJuIHN0cmluZy5tYXRjaCgvW1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXXxbXlxcdUQ4MDAtXFx1REZGRl0vZykgfHwgW107XG5cdH1cblxuXHRlYXcubGVuZ3RoID0gZnVuY3Rpb24oc3RyaW5nKSB7XG5cdCAgdmFyIGNoYXJhY3RlcnMgPSBzdHJpbmdUb0FycmF5KHN0cmluZyk7XG5cdCAgdmFyIGxlbiA9IDA7XG5cdCAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XG5cdCAgICBsZW4gPSBsZW4gKyB0aGlzLmNoYXJhY3Rlckxlbmd0aChjaGFyYWN0ZXJzW2ldKTtcblx0ICB9XG5cdCAgcmV0dXJuIGxlbjtcblx0fTtcblxuXHRlYXcuc2xpY2UgPSBmdW5jdGlvbih0ZXh0LCBzdGFydCwgZW5kKSB7XG5cdCAgdGV4dExlbiA9IGVhdy5sZW5ndGgodGV4dCk7XG5cdCAgc3RhcnQgPSBzdGFydCA/IHN0YXJ0IDogMDtcblx0ICBlbmQgPSBlbmQgPyBlbmQgOiAxO1xuXHQgIGlmIChzdGFydCA8IDApIHtcblx0ICAgICAgc3RhcnQgPSB0ZXh0TGVuICsgc3RhcnQ7XG5cdCAgfVxuXHQgIGlmIChlbmQgPCAwKSB7XG5cdCAgICAgIGVuZCA9IHRleHRMZW4gKyBlbmQ7XG5cdCAgfVxuXHQgIHZhciByZXN1bHQgPSAnJztcblx0ICB2YXIgZWF3TGVuID0gMDtcblx0ICB2YXIgY2hhcnMgPSBzdHJpbmdUb0FycmF5KHRleHQpO1xuXHQgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHtcblx0ICAgIHZhciBjaGFyID0gY2hhcnNbaV07XG5cdCAgICB2YXIgY2hhckxlbiA9IGVhdy5sZW5ndGgoY2hhcik7XG5cdCAgICBpZiAoZWF3TGVuID49IHN0YXJ0IC0gKGNoYXJMZW4gPT0gMiA/IDEgOiAwKSkge1xuXHQgICAgICAgIGlmIChlYXdMZW4gKyBjaGFyTGVuIDw9IGVuZCkge1xuXHQgICAgICAgICAgICByZXN1bHQgKz0gY2hhcjtcblx0ICAgICAgICB9IGVsc2Uge1xuXHQgICAgICAgICAgICBicmVhaztcblx0ICAgICAgICB9XG5cdCAgICB9XG5cdCAgICBlYXdMZW4gKz0gY2hhckxlbjtcblx0ICB9XG5cdCAgcmV0dXJuIHJlc3VsdDtcblx0fTsgXG59IChlYXN0YXNpYW53aWR0aCkpO1xuXG52YXIgZWFzdGFzaWFud2lkdGhFeHBvcnRzID0gZWFzdGFzaWFud2lkdGguZXhwb3J0cztcbmNvbnN0IGVhc3RBc2lhbldpZHRoID0gLypAX19QVVJFX18qL2dldERlZmF1bHRFeHBvcnRGcm9tQ2pzKGVhc3Rhc2lhbndpZHRoRXhwb3J0cyk7XG5cbmNvbnN0IGVtb2ppUmVnZXggPSAoKSA9PiB7XG5cdC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuXHRyZXR1cm4gL1sjKjAtOV1cXHVGRTBGP1xcdTIwRTN8W1xceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFRC1cXHUyM0VGXFx1MjNGMVxcdTIzRjJcXHUyM0Y4LVxcdTIzRkFcXHUyNEMyXFx1MjVBQVxcdTI1QUJcXHUyNUI2XFx1MjVDMFxcdTI1RkJcXHUyNUZDXFx1MjVGRVxcdTI2MDAtXFx1MjYwNFxcdTI2MEVcXHUyNjExXFx1MjYxNFxcdTI2MTVcXHUyNjE4XFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5MlxcdTI2OTQtXFx1MjY5N1xcdTI2OTlcXHUyNjlCXFx1MjY5Q1xcdTI2QTBcXHUyNkE3XFx1MjZBQVxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDOFxcdTI2Q0ZcXHUyNkQxXFx1MjZEM1xcdTI2RTlcXHUyNkYwLVxcdTI2RjVcXHUyNkY3XFx1MjZGOFxcdTI2RkFcXHUyNzAyXFx1MjcwOFxcdTI3MDlcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzMzXFx1MjczNFxcdTI3NDRcXHUyNzQ3XFx1Mjc1N1xcdTI3NjNcXHUyN0ExXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTVcXHUzMDMwXFx1MzAzRFxcdTMyOTdcXHUzMjk5XVxcdUZFMEY/fFtcXHUyNjFEXFx1MjcwQ1xcdTI3MERdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1MjcwQVxcdTI3MEJdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdTIzRTktXFx1MjNFQ1xcdTIzRjBcXHUyM0YzXFx1MjVGRFxcdTI2OTNcXHUyNkExXFx1MjZBQlxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkZEXFx1MjcwNVxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3OTUtXFx1Mjc5N1xcdTI3QjBcXHUyN0JGXFx1MkI1MF18XFx1MjZGOSg/OlxcdUZFMEZ8XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98XFx1Mjc2NFxcdUZFMEY/KD86XFx1MjAwRCg/OlxcdUQ4M0RcXHVERDI1fFxcdUQ4M0VcXHVERTc5KSk/fFxcdUQ4M0MoPzpbXFx1REMwNFxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERTAyXFx1REUzN1xcdURGMjFcXHVERjI0LVxcdURGMkNcXHVERjM2XFx1REY3RFxcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RVxcdURGOUZcXHVERkNEXFx1REZDRVxcdURGRDQtXFx1REZERlxcdURGRjVcXHVERkY3XVxcdUZFMEY/fFtcXHVERjg1XFx1REZDMlxcdURGQzddKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdURGQzNcXHVERkM0XFx1REZDQV0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REZDQlxcdURGQ0NdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1RENDRlxcdUREOEVcXHVERDkxLVxcdUREOUFcXHVERTAxXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFMzZcXHVERTM4LVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMFxcdURGMkQtXFx1REYzNVxcdURGMzctXFx1REY3Q1xcdURGN0UtXFx1REY4NFxcdURGODYtXFx1REY5M1xcdURGQTAtXFx1REZDMVxcdURGQzVcXHVERkM2XFx1REZDOFxcdURGQzlcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY4LVxcdURGRkZdfFxcdURERTZcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdfFxcdURERTdcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl18XFx1RERFOFxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl18XFx1RERFOVxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl18XFx1RERFQVxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdfFxcdURERUJcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN118XFx1RERFQ1xcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV18XFx1RERFRFxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXXxcXHVEREVFXFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldfFxcdURERUZcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdfFxcdURERjBcXHVEODNDW1xcdURERUFcXHVEREVDLVxcdURERUVcXHVEREYyXFx1RERGM1xcdURERjVcXHVEREY3XFx1RERGQ1xcdURERkVcXHVEREZGXXxcXHVEREYxXFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdfFxcdURERjJcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdfFxcdURERjNcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl18XFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdURERjVcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV18XFx1RERGNlxcdUQ4M0NcXHVEREU2fFxcdURERjdcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXXxcXHVEREY4XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXXxcXHVEREY5XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl18XFx1RERGQVxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl18XFx1RERGQlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV18XFx1RERGQ1xcdUQ4M0NbXFx1RERFQlxcdURERjhdfFxcdURERkRcXHVEODNDXFx1RERGMHxcXHVEREZFXFx1RDgzQ1tcXHVEREVBXFx1RERGOV18XFx1RERGRlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXXxcXHVERkYzXFx1RkUwRj8oPzpcXHUyMDBEKD86XFx1MjZBN1xcdUZFMEY/fFxcdUQ4M0NcXHVERjA4KSk/fFxcdURGRjQoPzpcXHUyMDBEXFx1MjYyMFxcdUZFMEY/fFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjJcXHVEQjQwKD86XFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REM3N1xcdURCNDBcXHVEQzZDXFx1REI0MFxcdURDNzMpXFx1REI0MFxcdURDN0YpPyl8XFx1RDgzRCg/OltcXHVEQzA4XFx1REMyNl0oPzpcXHUyMDBEXFx1MkIxQik/fFtcXHVEQzNGXFx1RENGRFxcdURENDlcXHVERDRBXFx1REQ2RlxcdURENzBcXHVERDczXFx1REQ3Ni1cXHVERDc5XFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBXFx1REVDQlxcdURFQ0QtXFx1REVDRlxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUYwXFx1REVGM11cXHVGRTBGP3xbXFx1REM0MlxcdURDNDNcXHVEQzQ2LVxcdURDNTBcXHVEQzY2XFx1REM2N1xcdURDNkItXFx1REM2RFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1REM4RlxcdURDOTFcXHVEQ0FBXFx1REQ3QVxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ10oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REM2RVxcdURDNzBcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl0oPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pPyg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQ3NFxcdUREOTBdKD86XFx1RkUwRnxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xbXFx1REMwMC1cXHVEQzA3XFx1REMwOS1cXHVEQzE0XFx1REMxNi1cXHVEQzI1XFx1REMyNy1cXHVEQzNBXFx1REMzQy1cXHVEQzNFXFx1REM0MFxcdURDNDRcXHVEQzQ1XFx1REM1MS1cXHVEQzY1XFx1REM2QVxcdURDNzktXFx1REM3QlxcdURDN0QtXFx1REM4MFxcdURDODRcXHVEQzg4LVxcdURDOEVcXHVEQzkwXFx1REM5Mi1cXHVEQ0E5XFx1RENBQi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1RERBNFxcdURERkItXFx1REUyRFxcdURFMkYtXFx1REUzNFxcdURFMzctXFx1REU0NFxcdURFNDgtXFx1REU0QVxcdURFODAtXFx1REVBMlxcdURFQTQtXFx1REVCM1xcdURFQjctXFx1REVCRlxcdURFQzEtXFx1REVDNVxcdURFRDAtXFx1REVEMlxcdURFRDUtXFx1REVEN1xcdURFREMtXFx1REVERlxcdURFRUJcXHVERUVDXFx1REVGNC1cXHVERUZDXFx1REZFMC1cXHVERkVCXFx1REZGMF18XFx1REMxNSg/OlxcdTIwMERcXHVEODNFXFx1RERCQSk/fFxcdURDM0IoPzpcXHUyMDBEXFx1Mjc0NFxcdUZFMEY/KT98XFx1REM0MVxcdUZFMEY/KD86XFx1MjAwRFxcdUQ4M0RcXHVEREU4XFx1RkUwRj8pP3xcXHVEQzY4KD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjh8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV1cXHUyMDBEXFx1RDgzRCg/OlxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdURDNjYoPzpcXHUyMDBEXFx1RDgzRFxcdURDNjYpP3xcXHVEQzY3KD86XFx1MjAwRFxcdUQ4M0RbXFx1REM2NlxcdURDNjddKT8pfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86XFx1REM4QlxcdTIwMERcXHVEODNEKT9cXHVEQzY4XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdKSkpP3xcXHVERkZFKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzhCXFx1MjAwRFxcdUQ4M0QpP1xcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDW1xcdURGRkItXFx1REZGRV0pKSk/KSk/fFxcdURDNjkoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OlxcdURDOEJcXHUyMDBEXFx1RDgzRCk/W1xcdURDNjhcXHVEQzY5XXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEKD86W1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1REM2Nig/OlxcdTIwMERcXHVEODNEXFx1REM2Nik/fFxcdURDNjcoPzpcXHUyMDBEXFx1RDgzRFtcXHVEQzY2XFx1REM2N10pP3xcXHVEQzY5XFx1MjAwRFxcdUQ4M0QoPzpcXHVEQzY2KD86XFx1MjAwRFxcdUQ4M0RcXHVEQzY2KT98XFx1REM2Nyg/OlxcdTIwMERcXHVEODNEW1xcdURDNjZcXHVEQzY3XSk/KSl8XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0MoPzpcXHVERkZCKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZDLVxcdURGRkZdKSkpP3xcXHVERkZDKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCXFx1REZGRC1cXHVERkZGXSkpKT98XFx1REZGRCg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMERcXHVEODNEKD86W1xcdURDNjhcXHVEQzY5XXxcXHVEQzhCXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XVxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pKSk/fFxcdURGRkUoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEXFx1RDgzRCg/OltcXHVEQzY4XFx1REM2OV18XFx1REM4QlxcdTIwMERcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHVEODNDW1xcdURGRkItXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV1cXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKSkpP3xcXHVERkZGKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRFxcdUQ4M0QoPzpbXFx1REM2OFxcdURDNjldfFxcdURDOEJcXHUyMDBEXFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0RbXFx1REM2OFxcdURDNjldXFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKSkpPykpP3xcXHVEQzZGKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURENzUoPzpcXHVGRTBGfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSk/KD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGPyk/fFxcdURFMkUoPzpcXHUyMDBEXFx1RDgzRFxcdURDQTgpP3xcXHVERTM1KD86XFx1MjAwRFxcdUQ4M0RcXHVEQ0FCKT98XFx1REUzNig/OlxcdTIwMERcXHVEODNDXFx1REYyQlxcdUZFMEY/KT8pfFxcdUQ4M0UoPzpbXFx1REQwQ1xcdUREMEZcXHVERDE4LVxcdUREMUZcXHVERDMwLVxcdUREMzRcXHVERDM2XFx1REQ3N1xcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDJcXHVEREQzXFx1RERENVxcdURFQzMtXFx1REVDNVxcdURFRjBcXHVERUYyLVxcdURFRjhdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT98W1xcdUREMjZcXHVERDM1XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDRcXHVEREQ2LVxcdURERERdKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKT8oPzpcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXVxcdUZFMEY/KT98W1xcdUREREVcXHVERERGXSg/OlxcdTIwMERbXFx1MjY0MFxcdTI2NDJdXFx1RkUwRj8pP3xbXFx1REQwRFxcdUREMEVcXHVERDEwLVxcdUREMTdcXHVERDIwLVxcdUREMjVcXHVERDI3LVxcdUREMkZcXHVERDNBXFx1REQzRi1cXHVERDQ1XFx1REQ0Ny1cXHVERDc2XFx1REQ3OC1cXHVEREI0XFx1RERCN1xcdUREQkFcXHVEREJDLVxcdUREQ0NcXHVEREQwXFx1RERFMC1cXHVEREZGXFx1REU3MC1cXHVERTdDXFx1REU4MC1cXHVERTg4XFx1REU5MC1cXHVERUJEXFx1REVCRi1cXHVERUMyXFx1REVDRS1cXHVERURCXFx1REVFMC1cXHVERUU4XXxcXHVERDNDKD86XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml1cXHVGRTBGP3xcXHVEODNDW1xcdURGRkItXFx1REZGRl0pP3xcXHVEREQxKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKSl8XFx1RDgzQyg/OlxcdURGRkIoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkMoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl18XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGN0NcXHVERjg0XFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFKD86W1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXXxcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKSkpP3xcXHVERkZEKD86XFx1MjAwRCg/OltcXHUyNjk1XFx1MjY5NlxcdTI3MDhdXFx1RkUwRj98XFx1Mjc2NFxcdUZFMEY/XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkJcXHVERkZDXFx1REZGRVxcdURGRkZdfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjdDXFx1REY4NFxcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRSg/OltcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF18XFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSkpKT98XFx1REZGRSg/OlxcdTIwMEQoPzpbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEY/fFxcdTI3NjRcXHVGRTBGP1xcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQpP1xcdUQ4M0VcXHVEREQxXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/fFxcdURGRkYoPzpcXHUyMDBEKD86W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGP3xcXHUyNzY0XFx1RkUwRj9cXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNFXFx1REREMVxcdUQ4M0NbXFx1REZGQi1cXHVERkZFXXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY3Q1xcdURGODRcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0UoPzpbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdfFxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDFcXHVEODNDW1xcdURGRkItXFx1REZGRl0pKSk/KSk/fFxcdURFRjEoPzpcXHVEODNDKD86XFx1REZGQig/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSk/fFxcdURGRkMoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKT98XFx1REZGRCg/OlxcdTIwMERcXHVEODNFXFx1REVGMlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pP3xcXHVERkZFKD86XFx1MjAwRFxcdUQ4M0VcXHVERUYyXFx1RDgzQ1tcXHVERkZCLVxcdURGRkRcXHVERkZGXSk/fFxcdURGRkYoPzpcXHUyMDBEXFx1RDgzRVxcdURFRjJcXHVEODNDW1xcdURGRkItXFx1REZGRV0pPykpPykvZztcbn07XG5cbmZ1bmN0aW9uIHN0cmluZ1dpZHRoJDEoc3RyaW5nLCBvcHRpb25zKSB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJyB8fCBzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRvcHRpb25zID0ge1xuXHRcdGFtYmlndW91c0lzTmFycm93OiB0cnVlLFxuXHRcdGNvdW50QW5zaUVzY2FwZUNvZGVzOiBmYWxzZSxcblx0XHQuLi5vcHRpb25zLFxuXHR9O1xuXG5cdGlmICghb3B0aW9ucy5jb3VudEFuc2lFc2NhcGVDb2Rlcykge1xuXHRcdHN0cmluZyA9IHN0cmlwQW5zaShzdHJpbmcpO1xuXHR9XG5cblx0aWYgKHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdGNvbnN0IGFtYmlndW91c0NoYXJhY3RlcldpZHRoID0gb3B0aW9ucy5hbWJpZ3VvdXNJc05hcnJvdyA/IDEgOiAyO1xuXHRsZXQgd2lkdGggPSAwO1xuXG5cdGZvciAoY29uc3Qge3NlZ21lbnQ6IGNoYXJhY3Rlcn0gb2YgbmV3IEludGwuU2VnbWVudGVyKCkuc2VnbWVudChzdHJpbmcpKSB7XG5cdFx0Y29uc3QgY29kZVBvaW50ID0gY2hhcmFjdGVyLmNvZGVQb2ludEF0KDApO1xuXG5cdFx0Ly8gSWdub3JlIGNvbnRyb2wgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlUG9pbnQgPD0gMHgxRiB8fCAoY29kZVBvaW50ID49IDB4N0YgJiYgY29kZVBvaW50IDw9IDB4OUYpKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHQvLyBJZ25vcmUgY29tYmluaW5nIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZVBvaW50ID49IDB4M18wMCAmJiBjb2RlUG9pbnQgPD0gMHgzXzZGKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRpZiAoZW1vamlSZWdleCgpLnRlc3QoY2hhcmFjdGVyKSkge1xuXHRcdFx0d2lkdGggKz0gMjtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvZGUgPSBlYXN0QXNpYW5XaWR0aC5lYXN0QXNpYW5XaWR0aChjaGFyYWN0ZXIpO1xuXHRcdHN3aXRjaCAoY29kZSkge1xuXHRcdFx0Y2FzZSAnRic6XG5cdFx0XHRjYXNlICdXJzoge1xuXHRcdFx0XHR3aWR0aCArPSAyO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSAnQSc6IHtcblx0XHRcdFx0d2lkdGggKz0gYW1iaWd1b3VzQ2hhcmFjdGVyV2lkdGg7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZhdWx0OiB7XG5cdFx0XHRcdHdpZHRoICs9IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHdpZHRoO1xufVxuXG5mdW5jdGlvbiBpc1VuaWNvZGVTdXBwb3J0ZWQoKSB7XG5cdGlmIChwcm9jZXNzJDEucGxhdGZvcm0gIT09ICd3aW4zMicpIHtcblx0XHRyZXR1cm4gcHJvY2VzcyQxLmVudi5URVJNICE9PSAnbGludXgnOyAvLyBMaW51eCBjb25zb2xlIChrZXJuZWwpXG5cdH1cblxuXHRyZXR1cm4gQm9vbGVhbihwcm9jZXNzJDEuZW52LkNJKVxuXHRcdHx8IEJvb2xlYW4ocHJvY2VzcyQxLmVudi5XVF9TRVNTSU9OKSAvLyBXaW5kb3dzIFRlcm1pbmFsXG5cdFx0fHwgQm9vbGVhbihwcm9jZXNzJDEuZW52LlRFUk1JTlVTX1NVQkxJTUUpIC8vIFRlcm1pbnVzICg8MC4yLjI3KVxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuQ29uRW11VGFzayA9PT0gJ3tjbWQ6OkNtZGVyfScgLy8gQ29uRW11IGFuZCBjbWRlclxuXHRcdHx8IHByb2Nlc3MkMS5lbnYuVEVSTV9QUk9HUkFNID09PSAnVGVybWludXMtU3VibGltZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk1fUFJPR1JBTSA9PT0gJ3ZzY29kZSdcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICd4dGVybS0yNTZjb2xvcidcblx0XHR8fCBwcm9jZXNzJDEuZW52LlRFUk0gPT09ICdhbGFjcml0dHknXG5cdFx0fHwgcHJvY2VzcyQxLmVudi5URVJNSU5BTF9FTVVMQVRPUiA9PT0gJ0pldEJyYWlucy1KZWRpVGVybSc7XG59XG5cbmNvbnN0IFRZUEVfQ09MT1JfTUFQID0ge1xuICBpbmZvOiBcImN5YW5cIixcbiAgZmFpbDogXCJyZWRcIixcbiAgc3VjY2VzczogXCJncmVlblwiLFxuICByZWFkeTogXCJncmVlblwiLFxuICBzdGFydDogXCJtYWdlbnRhXCJcbn07XG5jb25zdCBMRVZFTF9DT0xPUl9NQVAgPSB7XG4gIDA6IFwicmVkXCIsXG4gIDE6IFwieWVsbG93XCJcbn07XG5jb25zdCB1bmljb2RlID0gaXNVbmljb2RlU3VwcG9ydGVkKCk7XG5jb25zdCBzID0gKGMsIGZhbGxiYWNrKSA9PiB1bmljb2RlID8gYyA6IGZhbGxiYWNrO1xuY29uc3QgVFlQRV9JQ09OUyA9IHtcbiAgZXJyb3I6IHMoXCJcXHUyNzE2XCIsIFwiXFx4RDdcIiksXG4gIGZhdGFsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICByZWFkeTogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICB3YXJuOiBzKFwiXFx1MjZBMFwiLCBcIlxcdTIwM0NcIiksXG4gIGluZm86IHMoXCJcXHUyMTM5XCIsIFwiaVwiKSxcbiAgc3VjY2VzczogcyhcIlxcdTI3MTRcIiwgXCJcXHUyMjFBXCIpLFxuICBkZWJ1ZzogcyhcIlxcdTI2OTlcIiwgXCJEXCIpLFxuICB0cmFjZTogcyhcIlxcdTIxOTJcIiwgXCJcXHUyMTkyXCIpLFxuICBmYWlsOiBzKFwiXFx1MjcxNlwiLCBcIlxceEQ3XCIpLFxuICBzdGFydDogcyhcIlxcdTI1RDBcIiwgXCJvXCIpLFxuICBsb2c6IFwiXCJcbn07XG5mdW5jdGlvbiBzdHJpbmdXaWR0aChzdHIpIHtcbiAgaWYgKCFJbnRsLlNlZ21lbnRlcikge1xuICAgIHJldHVybiBzdHJpcEFuc2kkMShzdHIpLmxlbmd0aDtcbiAgfVxuICByZXR1cm4gc3RyaW5nV2lkdGgkMShzdHIpO1xufVxuY2xhc3MgRmFuY3lSZXBvcnRlciBleHRlbmRzIEJhc2ljUmVwb3J0ZXIge1xuICBmb3JtYXRTdGFjayhzdGFjaykge1xuICAgIHJldHVybiBcIlxcblwiICsgcGFyc2VTdGFjayhzdGFjaykubWFwKFxuICAgICAgKGxpbmUpID0+IFwiICBcIiArIGxpbmUucmVwbGFjZSgvXmF0ICsvLCAobSkgPT4gY29sb3JzLmdyYXkobSkpLnJlcGxhY2UoL1xcKCguKylcXCkvLCAoXywgbSkgPT4gYCgke2NvbG9ycy5jeWFuKG0pfSlgKVxuICAgICkuam9pbihcIlxcblwiKTtcbiAgfVxuICBmb3JtYXRUeXBlKGxvZ09iaiwgaXNCYWRnZSwgb3B0cykge1xuICAgIGNvbnN0IHR5cGVDb2xvciA9IFRZUEVfQ09MT1JfTUFQW2xvZ09iai50eXBlXSB8fCBMRVZFTF9DT0xPUl9NQVBbbG9nT2JqLmxldmVsXSB8fCBcImdyYXlcIjtcbiAgICBpZiAoaXNCYWRnZSkge1xuICAgICAgcmV0dXJuIGdldEJnQ29sb3IodHlwZUNvbG9yKShcbiAgICAgICAgY29sb3JzLmJsYWNrKGAgJHtsb2dPYmoudHlwZS50b1VwcGVyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgX3R5cGUgPSB0eXBlb2YgVFlQRV9JQ09OU1tsb2dPYmoudHlwZV0gPT09IFwic3RyaW5nXCIgPyBUWVBFX0lDT05TW2xvZ09iai50eXBlXSA6IGxvZ09iai5pY29uIHx8IGxvZ09iai50eXBlO1xuICAgIHJldHVybiBfdHlwZSA/IGdldENvbG9yKHR5cGVDb2xvcikoX3R5cGUpIDogXCJcIjtcbiAgfVxuICBmb3JtYXRMb2dPYmoobG9nT2JqLCBvcHRzKSB7XG4gICAgY29uc3QgW21lc3NhZ2UsIC4uLmFkZGl0aW9uYWxdID0gdGhpcy5mb3JtYXRBcmdzKGxvZ09iai5hcmdzLCBvcHRzKS5zcGxpdChcbiAgICAgIFwiXFxuXCJcbiAgICApO1xuICAgIGlmIChsb2dPYmoudHlwZSA9PT0gXCJib3hcIikge1xuICAgICAgcmV0dXJuIGJveChcbiAgICAgICAgY2hhcmFjdGVyRm9ybWF0KFxuICAgICAgICAgIG1lc3NhZ2UgKyAoYWRkaXRpb25hbC5sZW5ndGggPiAwID8gXCJcXG5cIiArIGFkZGl0aW9uYWwuam9pbihcIlxcblwiKSA6IFwiXCIpXG4gICAgICAgICksXG4gICAgICAgIHtcbiAgICAgICAgICB0aXRsZTogbG9nT2JqLnRpdGxlID8gY2hhcmFjdGVyRm9ybWF0KGxvZ09iai50aXRsZSkgOiB2b2lkIDAsXG4gICAgICAgICAgc3R5bGU6IGxvZ09iai5zdHlsZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gdGhpcy5mb3JtYXREYXRlKGxvZ09iai5kYXRlLCBvcHRzKTtcbiAgICBjb25zdCBjb2xvcmVkRGF0ZSA9IGRhdGUgJiYgY29sb3JzLmdyYXkoZGF0ZSk7XG4gICAgY29uc3QgaXNCYWRnZSA9IGxvZ09iai5iYWRnZSA/PyBsb2dPYmoubGV2ZWwgPCAyO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmZvcm1hdFR5cGUobG9nT2JqLCBpc0JhZGdlLCBvcHRzKTtcbiAgICBjb25zdCB0YWcgPSBsb2dPYmoudGFnID8gY29sb3JzLmdyYXkobG9nT2JqLnRhZykgOiBcIlwiO1xuICAgIGxldCBsaW5lO1xuICAgIGNvbnN0IGxlZnQgPSB0aGlzLmZpbHRlckFuZEpvaW4oW3R5cGUsIGNoYXJhY3RlckZvcm1hdChtZXNzYWdlKV0pO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGhpcy5maWx0ZXJBbmRKb2luKG9wdHMuY29sdW1ucyA/IFt0YWcsIGNvbG9yZWREYXRlXSA6IFt0YWddKTtcbiAgICBjb25zdCBzcGFjZSA9IChvcHRzLmNvbHVtbnMgfHwgMCkgLSBzdHJpbmdXaWR0aChsZWZ0KSAtIHN0cmluZ1dpZHRoKHJpZ2h0KSAtIDI7XG4gICAgbGluZSA9IHNwYWNlID4gMCAmJiAob3B0cy5jb2x1bW5zIHx8IDApID49IDgwID8gbGVmdCArIFwiIFwiLnJlcGVhdChzcGFjZSkgKyByaWdodCA6IChyaWdodCA/IGAke2NvbG9ycy5ncmF5KGBbJHtyaWdodH1dYCl9IGAgOiBcIlwiKSArIGxlZnQ7XG4gICAgbGluZSArPSBjaGFyYWN0ZXJGb3JtYXQoXG4gICAgICBhZGRpdGlvbmFsLmxlbmd0aCA+IDAgPyBcIlxcblwiICsgYWRkaXRpb25hbC5qb2luKFwiXFxuXCIpIDogXCJcIlxuICAgICk7XG4gICAgaWYgKGxvZ09iai50eXBlID09PSBcInRyYWNlXCIpIHtcbiAgICAgIGNvbnN0IF9lcnIgPSBuZXcgRXJyb3IoXCJUcmFjZTogXCIgKyBsb2dPYmoubWVzc2FnZSk7XG4gICAgICBsaW5lICs9IHRoaXMuZm9ybWF0U3RhY2soX2Vyci5zdGFjayB8fCBcIlwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQmFkZ2UgPyBcIlxcblwiICsgbGluZSArIFwiXFxuXCIgOiBsaW5lO1xuICB9XG59XG5mdW5jdGlvbiBjaGFyYWN0ZXJGb3JtYXQoc3RyKSB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvYChbXmBdKylgL2dtLCAoXywgbSkgPT4gY29sb3JzLmN5YW4obSkpLnJlcGxhY2UoL1xccytfKFteX10rKV9cXHMrL2dtLCAoXywgbSkgPT4gYCAke2NvbG9ycy51bmRlcmxpbmUobSl9IGApO1xufVxuZnVuY3Rpb24gZ2V0Q29sb3IoY29sb3IgPSBcIndoaXRlXCIpIHtcbiAgcmV0dXJuIGNvbG9yc1tjb2xvcl0gfHwgY29sb3JzLndoaXRlO1xufVxuZnVuY3Rpb24gZ2V0QmdDb2xvcihjb2xvciA9IFwiYmdXaGl0ZVwiKSB7XG4gIHJldHVybiBjb2xvcnNbYGJnJHtjb2xvclswXS50b1VwcGVyQ2FzZSgpfSR7Y29sb3Iuc2xpY2UoMSl9YF0gfHwgY29sb3JzLmJnV2hpdGU7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGEob3B0aW9ucyA9IHt9KSB7XG4gIGxldCBsZXZlbCA9IF9nZXREZWZhdWx0TG9nTGV2ZWwoKTtcbiAgaWYgKHByb2Nlc3MuZW52LkNPTlNPTEFfTEVWRUwpIHtcbiAgICBsZXZlbCA9IE51bWJlci5wYXJzZUludChwcm9jZXNzLmVudi5DT05TT0xBX0xFVkVMKSA/PyBsZXZlbDtcbiAgfVxuICBjb25zdCBjb25zb2xhMiA9IGNyZWF0ZUNvbnNvbGEkMSh7XG4gICAgbGV2ZWwsXG4gICAgZGVmYXVsdHM6IHsgbGV2ZWwgfSxcbiAgICBzdGRvdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICAgIHN0ZGVycjogcHJvY2Vzcy5zdGRlcnIsXG4gICAgcHJvbXB0OiAoLi4uYXJncykgPT4gaW1wb3J0KCcuLi9jaHVua3MvcHJvbXB0Lm1qcycpLnRoZW4oKG0pID0+IG0ucHJvbXB0KC4uLmFyZ3MpKSxcbiAgICByZXBvcnRlcnM6IG9wdGlvbnMucmVwb3J0ZXJzIHx8IFtcbiAgICAgIG9wdGlvbnMuZmFuY3kgPz8gIShpc0NJIHx8IGlzVGVzdCkgPyBuZXcgRmFuY3lSZXBvcnRlcigpIDogbmV3IEJhc2ljUmVwb3J0ZXIoKVxuICAgIF0sXG4gICAgLi4ub3B0aW9uc1xuICB9KTtcbiAgcmV0dXJuIGNvbnNvbGEyO1xufVxuZnVuY3Rpb24gX2dldERlZmF1bHRMb2dMZXZlbCgpIHtcbiAgaWYgKGlzRGVidWcpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLmRlYnVnO1xuICB9XG4gIGlmIChpc1Rlc3QpIHtcbiAgICByZXR1cm4gTG9nTGV2ZWxzLndhcm47XG4gIH1cbiAgcmV0dXJuIExvZ0xldmVscy5pbmZvO1xufVxuY29uc3QgY29uc29sYSA9IGNyZWF0ZUNvbnNvbGEoKTtcblxuZXhwb3J0IHsgY29uc29sYSBhcyBhLCBjcmVhdGVDb25zb2xhIGFzIGMsIGdldERlZmF1bHRFeHBvcnRGcm9tQ2pzIGFzIGcsIGlzVW5pY29kZVN1cHBvcnRlZCBhcyBpIH07XG4iLCAiZXhwb3J0IHsgYSBhcyBjb25zb2xhLCBjIGFzIGNyZWF0ZUNvbnNvbGEsIGEgYXMgZGVmYXVsdCB9IGZyb20gJy4vc2hhcmVkL2NvbnNvbGEuMzZjMDAzNGYubWpzJztcbmV4cG9ydCB7IENvbnNvbGEsIExvZ0xldmVscywgTG9nVHlwZXMgfSBmcm9tICcuL2NvcmUubWpzJztcbmltcG9ydCAnLi9zaGFyZWQvY29uc29sYS4wNmFkOGE2NC5tanMnO1xuaW1wb3J0ICdub2RlOnByb2Nlc3MnO1xuaW1wb3J0ICcuL3V0aWxzLm1qcyc7XG5pbXBvcnQgJ25vZGU6dHR5JztcbmltcG9ydCAnbm9kZTp1dGlsJztcbmltcG9ydCAnbm9kZTpwYXRoJztcbiIsICJpbXBvcnQgY29uc29sYSBmcm9tICdjb25zb2xhJztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ2NvbnNvbGEvdXRpbHMnO1xuXG5mdW5jdGlvbiB0b0FycmF5KHZhbCkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxuICByZXR1cm4gdmFsID09PSB2b2lkIDAgPyBbXSA6IFt2YWxdO1xufVxuZnVuY3Rpb24gZm9ybWF0TGluZUNvbHVtbnMobGluZXMsIGxpbmVQcmVmaXggPSBcIlwiKSB7XG4gIGNvbnN0IG1heExlbmdoID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGZvciAoY29uc3QgW2ksIGVsZW1lbnRdIG9mIGxpbmUuZW50cmllcygpKSB7XG4gICAgICBtYXhMZW5naFtpXSA9IE1hdGgubWF4KG1heExlbmdoW2ldIHx8IDAsIGVsZW1lbnQubGVuZ3RoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGxpbmVzLm1hcChcbiAgICAobCkgPT4gbC5tYXAoXG4gICAgICAoYywgaSkgPT4gbGluZVByZWZpeCArIGNbaSA9PT0gMCA/IFwicGFkU3RhcnRcIiA6IFwicGFkRW5kXCJdKG1heExlbmdoW2ldKVxuICAgICkuam9pbihcIiAgXCIpXG4gICkuam9pbihcIlxcblwiKTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVWYWx1ZShpbnB1dCkge1xuICByZXR1cm4gdHlwZW9mIGlucHV0ID09PSBcImZ1bmN0aW9uXCIgPyBpbnB1dCgpIDogaW5wdXQ7XG59XG5jbGFzcyBDTElFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZSwgY29kZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgdGhpcy5uYW1lID0gXCJDTElFcnJvclwiO1xuICB9XG59XG5cbmNvbnN0IE5VTUJFUl9DSEFSX1JFID0gL1xcZC87XG5jb25zdCBTVFJfU1BMSVRURVJTID0gW1wiLVwiLCBcIl9cIiwgXCIvXCIsIFwiLlwiXTtcbmZ1bmN0aW9uIGlzVXBwZXJjYXNlKGNoYXIgPSBcIlwiKSB7XG4gIGlmIChOVU1CRVJfQ0hBUl9SRS50ZXN0KGNoYXIpKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuICByZXR1cm4gY2hhciAhPT0gY2hhci50b0xvd2VyQ2FzZSgpO1xufVxuZnVuY3Rpb24gc3BsaXRCeUNhc2Uoc3RyLCBzZXBhcmF0b3JzKSB7XG4gIGNvbnN0IHNwbGl0dGVycyA9IHNlcGFyYXRvcnMgPz8gU1RSX1NQTElUVEVSUztcbiAgY29uc3QgcGFydHMgPSBbXTtcbiAgaWYgKCFzdHIgfHwgdHlwZW9mIHN0ciAhPT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBwYXJ0cztcbiAgfVxuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBwcmV2aW91c1VwcGVyO1xuICBsZXQgcHJldmlvdXNTcGxpdHRlcjtcbiAgZm9yIChjb25zdCBjaGFyIG9mIHN0cikge1xuICAgIGNvbnN0IGlzU3BsaXR0ZXIgPSBzcGxpdHRlcnMuaW5jbHVkZXMoY2hhcik7XG4gICAgaWYgKGlzU3BsaXR0ZXIgPT09IHRydWUpIHtcbiAgICAgIHBhcnRzLnB1c2goYnVmZik7XG4gICAgICBidWZmID0gXCJcIjtcbiAgICAgIHByZXZpb3VzVXBwZXIgPSB2b2lkIDA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgaXNVcHBlciA9IGlzVXBwZXJjYXNlKGNoYXIpO1xuICAgIGlmIChwcmV2aW91c1NwbGl0dGVyID09PSBmYWxzZSkge1xuICAgICAgaWYgKHByZXZpb3VzVXBwZXIgPT09IGZhbHNlICYmIGlzVXBwZXIgPT09IHRydWUpIHtcbiAgICAgICAgcGFydHMucHVzaChidWZmKTtcbiAgICAgICAgYnVmZiA9IGNoYXI7XG4gICAgICAgIHByZXZpb3VzVXBwZXIgPSBpc1VwcGVyO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcmV2aW91c1VwcGVyID09PSB0cnVlICYmIGlzVXBwZXIgPT09IGZhbHNlICYmIGJ1ZmYubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBsYXN0Q2hhciA9IGJ1ZmYuYXQoLTEpO1xuICAgICAgICBwYXJ0cy5wdXNoKGJ1ZmYuc2xpY2UoMCwgTWF0aC5tYXgoMCwgYnVmZi5sZW5ndGggLSAxKSkpO1xuICAgICAgICBidWZmID0gbGFzdENoYXIgKyBjaGFyO1xuICAgICAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuICAgIGJ1ZmYgKz0gY2hhcjtcbiAgICBwcmV2aW91c1VwcGVyID0gaXNVcHBlcjtcbiAgICBwcmV2aW91c1NwbGl0dGVyID0gaXNTcGxpdHRlcjtcbiAgfVxuICBwYXJ0cy5wdXNoKGJ1ZmYpO1xuICByZXR1cm4gcGFydHM7XG59XG5mdW5jdGlvbiB1cHBlckZpcnN0KHN0cikge1xuICByZXR1cm4gc3RyID8gc3RyWzBdLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBcIlwiO1xufVxuZnVuY3Rpb24gbG93ZXJGaXJzdChzdHIpIHtcbiAgcmV0dXJuIHN0ciA/IHN0clswXS50b0xvd2VyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2Uoc3RyLCBvcHRzKSB7XG4gIHJldHVybiBzdHIgPyAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyIDogc3BsaXRCeUNhc2Uoc3RyKSkubWFwKChwKSA9PiB1cHBlckZpcnN0KG9wdHM/Lm5vcm1hbGl6ZSA/IHAudG9Mb3dlckNhc2UoKSA6IHApKS5qb2luKFwiXCIpIDogXCJcIjtcbn1cbmZ1bmN0aW9uIGNhbWVsQ2FzZShzdHIsIG9wdHMpIHtcbiAgcmV0dXJuIGxvd2VyRmlyc3QocGFzY2FsQ2FzZShzdHIgfHwgXCJcIiwgb3B0cykpO1xufVxuZnVuY3Rpb24ga2ViYWJDYXNlKHN0ciwgam9pbmVyKSB7XG4gIHJldHVybiBzdHIgPyAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyIDogc3BsaXRCeUNhc2Uoc3RyKSkubWFwKChwKSA9PiBwLnRvTG93ZXJDYXNlKCkpLmpvaW4oam9pbmVyID8/IFwiLVwiKSA6IFwiXCI7XG59XG5cbmZ1bmN0aW9uIHRvQXJyKGFueSkge1xuICByZXR1cm4gYW55ID09IHZvaWQgMCA/IFtdIDogQXJyYXkuaXNBcnJheShhbnkpID8gYW55IDogW2FueV07XG59XG5mdW5jdGlvbiB0b1ZhbChvdXQsIGtleSwgdmFsLCBvcHRzKSB7XG4gIGxldCB4O1xuICBjb25zdCBvbGQgPSBvdXRba2V5XTtcbiAgY29uc3Qgbnh0ID0gfm9wdHMuc3RyaW5nLmluZGV4T2Yoa2V5KSA/IHZhbCA9PSB2b2lkIDAgfHwgdmFsID09PSB0cnVlID8gXCJcIiA6IFN0cmluZyh2YWwpIDogdHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIgPyB2YWwgOiB+b3B0cy5ib29sZWFuLmluZGV4T2Yoa2V5KSA/IHZhbCA9PT0gXCJmYWxzZVwiID8gZmFsc2UgOiB2YWwgPT09IFwidHJ1ZVwiIHx8IChvdXQuXy5wdXNoKCh4ID0gK3ZhbCwgeCAqIDAgPT09IDApID8geCA6IHZhbCksICEhdmFsKSA6ICh4ID0gK3ZhbCwgeCAqIDAgPT09IDApID8geCA6IHZhbDtcbiAgb3V0W2tleV0gPSBvbGQgPT0gdm9pZCAwID8gbnh0IDogQXJyYXkuaXNBcnJheShvbGQpID8gb2xkLmNvbmNhdChueHQpIDogW29sZCwgbnh0XTtcbn1cbmZ1bmN0aW9uIHBhcnNlUmF3QXJncyhhcmdzID0gW10sIG9wdHMgPSB7fSkge1xuICBsZXQgaztcbiAgbGV0IGFycjtcbiAgbGV0IGFyZztcbiAgbGV0IG5hbWU7XG4gIGxldCB2YWw7XG4gIGNvbnN0IG91dCA9IHsgXzogW10gfTtcbiAgbGV0IGkgPSAwO1xuICBsZXQgaiA9IDA7XG4gIGxldCBpZHggPSAwO1xuICBjb25zdCBsZW4gPSBhcmdzLmxlbmd0aDtcbiAgY29uc3QgYWxpYmkgPSBvcHRzLmFsaWFzICE9PSB2b2lkIDA7XG4gIGNvbnN0IHN0cmljdCA9IG9wdHMudW5rbm93biAhPT0gdm9pZCAwO1xuICBjb25zdCBkZWZhdWx0cyA9IG9wdHMuZGVmYXVsdCAhPT0gdm9pZCAwO1xuICBvcHRzLmFsaWFzID0gb3B0cy5hbGlhcyB8fCB7fTtcbiAgb3B0cy5zdHJpbmcgPSB0b0FycihvcHRzLnN0cmluZyk7XG4gIG9wdHMuYm9vbGVhbiA9IHRvQXJyKG9wdHMuYm9vbGVhbik7XG4gIGlmIChhbGliaSkge1xuICAgIGZvciAoayBpbiBvcHRzLmFsaWFzKSB7XG4gICAgICBhcnIgPSBvcHRzLmFsaWFzW2tdID0gdG9BcnIob3B0cy5hbGlhc1trXSk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIChvcHRzLmFsaWFzW2FycltpXV0gPSBhcnIuY29uY2F0KGspKS5zcGxpY2UoaSwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZvciAoaSA9IG9wdHMuYm9vbGVhbi5sZW5ndGg7IGktLSA+IDA7ICkge1xuICAgIGFyciA9IG9wdHMuYWxpYXNbb3B0cy5ib29sZWFuW2ldXSB8fCBbXTtcbiAgICBmb3IgKGogPSBhcnIubGVuZ3RoOyBqLS0gPiAwOyApIHtcbiAgICAgIG9wdHMuYm9vbGVhbi5wdXNoKGFycltqXSk7XG4gICAgfVxuICB9XG4gIGZvciAoaSA9IG9wdHMuc3RyaW5nLmxlbmd0aDsgaS0tID4gMDsgKSB7XG4gICAgYXJyID0gb3B0cy5hbGlhc1tvcHRzLnN0cmluZ1tpXV0gfHwgW107XG4gICAgZm9yIChqID0gYXJyLmxlbmd0aDsgai0tID4gMDsgKSB7XG4gICAgICBvcHRzLnN0cmluZy5wdXNoKGFycltqXSk7XG4gICAgfVxuICB9XG4gIGlmIChkZWZhdWx0cykge1xuICAgIGZvciAoayBpbiBvcHRzLmRlZmF1bHQpIHtcbiAgICAgIG5hbWUgPSB0eXBlb2Ygb3B0cy5kZWZhdWx0W2tdO1xuICAgICAgYXJyID0gb3B0cy5hbGlhc1trXSA9IG9wdHMuYWxpYXNba10gfHwgW107XG4gICAgICBpZiAob3B0c1tuYW1lXSAhPT0gdm9pZCAwKSB7XG4gICAgICAgIG9wdHNbbmFtZV0ucHVzaChrKTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIG9wdHNbbmFtZV0ucHVzaChhcnJbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IGtleXMgPSBzdHJpY3QgPyBPYmplY3Qua2V5cyhvcHRzLmFsaWFzKSA6IFtdO1xuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBhcmcgPSBhcmdzW2ldO1xuICAgIGlmIChhcmcgPT09IFwiLS1cIikge1xuICAgICAgb3V0Ll8gPSBvdXQuXy5jb25jYXQoYXJncy5zbGljZSgrK2kpKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBmb3IgKGogPSAwOyBqIDwgYXJnLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAoYXJnLmNoYXJDb2RlQXQoaikgIT09IDQ1KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaiA9PT0gMCkge1xuICAgICAgb3V0Ll8ucHVzaChhcmcpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnN1YnN0cmluZyhqLCBqICsgMykgPT09IFwibm8tXCIpIHtcbiAgICAgIG5hbWUgPSBhcmcuc2xpY2UoTWF0aC5tYXgoMCwgaiArIDMpKTtcbiAgICAgIGlmIChzdHJpY3QgJiYgIX5rZXlzLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIG9wdHMudW5rbm93bihhcmcpO1xuICAgICAgfVxuICAgICAgb3V0W25hbWVdID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoaWR4ID0gaiArIDE7IGlkeCA8IGFyZy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIGlmIChhcmcuY2hhckNvZGVBdChpZHgpID09PSA2MSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBuYW1lID0gYXJnLnN1YnN0cmluZyhqLCBpZHgpO1xuICAgICAgdmFsID0gYXJnLnNsaWNlKE1hdGgubWF4KDAsICsraWR4KSkgfHwgaSArIDEgPT09IGxlbiB8fCAoXCJcIiArIGFyZ3NbaSArIDFdKS5jaGFyQ29kZUF0KDApID09PSA0NSB8fCBhcmdzWysraV07XG4gICAgICBhcnIgPSBqID09PSAyID8gW25hbWVdIDogbmFtZTtcbiAgICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgYXJyLmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgbmFtZSA9IGFycltpZHhdO1xuICAgICAgICBpZiAoc3RyaWN0ICYmICF+a2V5cy5pbmRleE9mKG5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIG9wdHMudW5rbm93bihcIi1cIi5yZXBlYXQoaikgKyBuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICB0b1ZhbChvdXQsIG5hbWUsIGlkeCArIDEgPCBhcnIubGVuZ3RoIHx8IHZhbCwgb3B0cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChkZWZhdWx0cykge1xuICAgIGZvciAoayBpbiBvcHRzLmRlZmF1bHQpIHtcbiAgICAgIGlmIChvdXRba10gPT09IHZvaWQgMCkge1xuICAgICAgICBvdXRba10gPSBvcHRzLmRlZmF1bHRba107XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChhbGliaSkge1xuICAgIGZvciAoayBpbiBvdXQpIHtcbiAgICAgIGFyciA9IG9wdHMuYWxpYXNba10gfHwgW107XG4gICAgICB3aGlsZSAoYXJyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3V0W2Fyci5zaGlmdCgpXSA9IG91dFtrXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cblxuZnVuY3Rpb24gcGFyc2VBcmdzKHJhd0FyZ3MsIGFyZ3NEZWYpIHtcbiAgY29uc3QgcGFyc2VPcHRpb25zID0ge1xuICAgIGJvb2xlYW46IFtdLFxuICAgIHN0cmluZzogW10sXG4gICAgbWl4ZWQ6IFtdLFxuICAgIGFsaWFzOiB7fSxcbiAgICBkZWZhdWx0OiB7fVxuICB9O1xuICBjb25zdCBhcmdzID0gcmVzb2x2ZUFyZ3MoYXJnc0RlZik7XG4gIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICBpZiAoYXJnLnR5cGUgPT09IFwicG9zaXRpb25hbFwiKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGFyZy50eXBlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuc3RyaW5nLnB1c2goYXJnLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYXJnLnR5cGUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuYm9vbGVhbi5wdXNoKGFyZy5uYW1lKTtcbiAgICB9XG4gICAgaWYgKGFyZy5kZWZhdWx0ICE9PSB2b2lkIDApIHtcbiAgICAgIHBhcnNlT3B0aW9ucy5kZWZhdWx0W2FyZy5uYW1lXSA9IGFyZy5kZWZhdWx0O1xuICAgIH1cbiAgICBpZiAoYXJnLmFsaWFzKSB7XG4gICAgICBwYXJzZU9wdGlvbnMuYWxpYXNbYXJnLm5hbWVdID0gYXJnLmFsaWFzO1xuICAgIH1cbiAgfVxuICBjb25zdCBwYXJzZWQgPSBwYXJzZVJhd0FyZ3MocmF3QXJncywgcGFyc2VPcHRpb25zKTtcbiAgY29uc3QgWy4uLnBvc2l0aW9uYWxBcmd1bWVudHNdID0gcGFyc2VkLl87XG4gIGNvbnN0IHBhcnNlZEFyZ3NQcm94eSA9IG5ldyBQcm94eShwYXJzZWQsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0W3Byb3BdID8/IHRhcmdldFtjYW1lbENhc2UocHJvcCldID8/IHRhcmdldFtrZWJhYkNhc2UocHJvcCldO1xuICAgIH1cbiAgfSk7XG4gIGZvciAoY29uc3QgWywgYXJnXSBvZiBhcmdzLmVudHJpZXMoKSkge1xuICAgIGlmIChhcmcudHlwZSA9PT0gXCJwb3NpdGlvbmFsXCIpIHtcbiAgICAgIGNvbnN0IG5leHRQb3NpdGlvbmFsQXJndW1lbnQgPSBwb3NpdGlvbmFsQXJndW1lbnRzLnNoaWZ0KCk7XG4gICAgICBpZiAobmV4dFBvc2l0aW9uYWxBcmd1bWVudCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIHBhcnNlZEFyZ3NQcm94eVthcmcubmFtZV0gPSBuZXh0UG9zaXRpb25hbEFyZ3VtZW50O1xuICAgICAgfSBlbHNlIGlmIChhcmcuZGVmYXVsdCA9PT0gdm9pZCAwICYmIGFyZy5yZXF1aXJlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKFxuICAgICAgICAgIGBNaXNzaW5nIHJlcXVpcmVkIHBvc2l0aW9uYWwgYXJndW1lbnQ6ICR7YXJnLm5hbWUudG9VcHBlckNhc2UoKX1gLFxuICAgICAgICAgIFwiRUFSR1wiXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZWRBcmdzUHJveHlbYXJnLm5hbWVdID0gYXJnLmRlZmF1bHQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhcmcucmVxdWlyZWQgJiYgcGFyc2VkQXJnc1Byb3h5W2FyZy5uYW1lXSA9PT0gdm9pZCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQ6IC0tJHthcmcubmFtZX1gLCBcIkVBUkdcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiBwYXJzZWRBcmdzUHJveHk7XG59XG5mdW5jdGlvbiByZXNvbHZlQXJncyhhcmdzRGVmKSB7XG4gIGNvbnN0IGFyZ3MgPSBbXTtcbiAgZm9yIChjb25zdCBbbmFtZSwgYXJnRGVmXSBvZiBPYmplY3QuZW50cmllcyhhcmdzRGVmIHx8IHt9KSkge1xuICAgIGFyZ3MucHVzaCh7XG4gICAgICAuLi5hcmdEZWYsXG4gICAgICBuYW1lLFxuICAgICAgYWxpYXM6IHRvQXJyYXkoYXJnRGVmLmFsaWFzKVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBhcmdzO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVDb21tYW5kKGRlZikge1xuICByZXR1cm4gZGVmO1xufVxuYXN5bmMgZnVuY3Rpb24gcnVuQ29tbWFuZChjbWQsIG9wdHMpIHtcbiAgY29uc3QgY21kQXJncyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuYXJncyB8fCB7fSk7XG4gIGNvbnN0IHBhcnNlZEFyZ3MgPSBwYXJzZUFyZ3Mob3B0cy5yYXdBcmdzLCBjbWRBcmdzKTtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICByYXdBcmdzOiBvcHRzLnJhd0FyZ3MsXG4gICAgYXJnczogcGFyc2VkQXJncyxcbiAgICBkYXRhOiBvcHRzLmRhdGEsXG4gICAgY21kXG4gIH07XG4gIGlmICh0eXBlb2YgY21kLnNldHVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBhd2FpdCBjbWQuc2V0dXAoY29udGV4dCk7XG4gIH1cbiAgbGV0IHJlc3VsdDtcbiAgdHJ5IHtcbiAgICBjb25zdCBzdWJDb21tYW5kcyA9IGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuc3ViQ29tbWFuZHMpO1xuICAgIGlmIChzdWJDb21tYW5kcyAmJiBPYmplY3Qua2V5cyhzdWJDb21tYW5kcykubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3ViQ29tbWFuZEFyZ0luZGV4ID0gb3B0cy5yYXdBcmdzLmZpbmRJbmRleChcbiAgICAgICAgKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLVwiKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHN1YkNvbW1hbmROYW1lID0gb3B0cy5yYXdBcmdzW3N1YkNvbW1hbmRBcmdJbmRleF07XG4gICAgICBpZiAoc3ViQ29tbWFuZE5hbWUpIHtcbiAgICAgICAgaWYgKCFzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXG4gICAgICAgICAgICBgVW5rbm93biBjb21tYW5kIFxcYCR7c3ViQ29tbWFuZE5hbWV9XFxgYCxcbiAgICAgICAgICAgIFwiRV9VTktOT1dOX0NPTU1BTkRcIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3ViQ29tbWFuZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pO1xuICAgICAgICBpZiAoc3ViQ29tbWFuZCkge1xuICAgICAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoc3ViQ29tbWFuZCwge1xuICAgICAgICAgICAgcmF3QXJnczogb3B0cy5yYXdBcmdzLnNsaWNlKHN1YkNvbW1hbmRBcmdJbmRleCArIDEpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWNtZC5ydW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IENMSUVycm9yKGBObyBjb21tYW5kIHNwZWNpZmllZC5gLCBcIkVfTk9fQ09NTUFORFwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjbWQucnVuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IGNtZC5ydW4oY29udGV4dCk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGlmICh0eXBlb2YgY21kLmNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgYXdhaXQgY21kLmNsZWFudXAoY29udGV4dCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHJlc3VsdCB9O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVN1YkNvbW1hbmQoY21kLCByYXdBcmdzLCBwYXJlbnQpIHtcbiAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgaWYgKHN1YkNvbW1hbmRzICYmIE9iamVjdC5rZXlzKHN1YkNvbW1hbmRzKS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3Qgc3ViQ29tbWFuZEFyZ0luZGV4ID0gcmF3QXJncy5maW5kSW5kZXgoKGFyZykgPT4gIWFyZy5zdGFydHNXaXRoKFwiLVwiKSk7XG4gICAgY29uc3Qgc3ViQ29tbWFuZE5hbWUgPSByYXdBcmdzW3N1YkNvbW1hbmRBcmdJbmRleF07XG4gICAgY29uc3Qgc3ViQ29tbWFuZCA9IGF3YWl0IHJlc29sdmVWYWx1ZShzdWJDb21tYW5kc1tzdWJDb21tYW5kTmFtZV0pO1xuICAgIGlmIChzdWJDb21tYW5kKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVN1YkNvbW1hbmQoXG4gICAgICAgIHN1YkNvbW1hbmQsXG4gICAgICAgIHJhd0FyZ3Muc2xpY2Uoc3ViQ29tbWFuZEFyZ0luZGV4ICsgMSksXG4gICAgICAgIGNtZFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFtjbWQsIHBhcmVudF07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHNob3dVc2FnZShjbWQsIHBhcmVudCkge1xuICB0cnkge1xuICAgIGNvbnNvbGEubG9nKGF3YWl0IHJlbmRlclVzYWdlKGNtZCwgcGFyZW50KSArIFwiXFxuXCIpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGEuZXJyb3IoZXJyb3IpO1xuICB9XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJVc2FnZShjbWQsIHBhcmVudCkge1xuICBjb25zdCBjbWRNZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKGNtZC5tZXRhIHx8IHt9KTtcbiAgY29uc3QgY21kQXJncyA9IHJlc29sdmVBcmdzKGF3YWl0IHJlc29sdmVWYWx1ZShjbWQuYXJncyB8fCB7fSkpO1xuICBjb25zdCBwYXJlbnRNZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHBhcmVudD8ubWV0YSB8fCB7fSk7XG4gIGNvbnN0IGNvbW1hbmROYW1lID0gYCR7cGFyZW50TWV0YS5uYW1lID8gYCR7cGFyZW50TWV0YS5uYW1lfSBgIDogXCJcIn1gICsgKGNtZE1ldGEubmFtZSB8fCBwcm9jZXNzLmFyZ3ZbMV0pO1xuICBjb25zdCBhcmdMaW5lcyA9IFtdO1xuICBjb25zdCBwb3NMaW5lcyA9IFtdO1xuICBjb25zdCBjb21tYW5kc0xpbmVzID0gW107XG4gIGNvbnN0IHVzYWdlTGluZSA9IFtdO1xuICBmb3IgKGNvbnN0IGFyZyBvZiBjbWRBcmdzKSB7XG4gICAgaWYgKGFyZy50eXBlID09PSBcInBvc2l0aW9uYWxcIikge1xuICAgICAgY29uc3QgbmFtZSA9IGFyZy5uYW1lLnRvVXBwZXJDYXNlKCk7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gYXJnLnJlcXVpcmVkICE9PSBmYWxzZSAmJiBhcmcuZGVmYXVsdCA9PT0gdm9pZCAwO1xuICAgICAgY29uc3QgZGVmYXVsdEhpbnQgPSBhcmcuZGVmYXVsdCA/IGA9XCIke2FyZy5kZWZhdWx0fVwiYCA6IFwiXCI7XG4gICAgICBwb3NMaW5lcy5wdXNoKFtcbiAgICAgICAgXCJgXCIgKyBuYW1lICsgZGVmYXVsdEhpbnQgKyBcImBcIixcbiAgICAgICAgYXJnLmRlc2NyaXB0aW9uIHx8IFwiXCIsXG4gICAgICAgIGFyZy52YWx1ZUhpbnQgPyBgPCR7YXJnLnZhbHVlSGludH0+YCA6IFwiXCJcbiAgICAgIF0pO1xuICAgICAgdXNhZ2VMaW5lLnB1c2goaXNSZXF1aXJlZCA/IGA8JHtuYW1lfT5gIDogYFske25hbWV9XWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpc1JlcXVpcmVkID0gYXJnLnJlcXVpcmVkID09PSB0cnVlICYmIGFyZy5kZWZhdWx0ID09PSB2b2lkIDA7XG4gICAgICBjb25zdCBhcmdTdHIgPSAoYXJnLnR5cGUgPT09IFwiYm9vbGVhblwiICYmIGFyZy5kZWZhdWx0ID09PSB0cnVlID8gW1xuICAgICAgICAuLi4oYXJnLmFsaWFzIHx8IFtdKS5tYXAoKGEpID0+IGAtLW5vLSR7YX1gKSxcbiAgICAgICAgYC0tbm8tJHthcmcubmFtZX1gXG4gICAgICBdLmpvaW4oXCIsIFwiKSA6IFsuLi4oYXJnLmFsaWFzIHx8IFtdKS5tYXAoKGEpID0+IGAtJHthfWApLCBgLS0ke2FyZy5uYW1lfWBdLmpvaW4oXG4gICAgICAgIFwiLCBcIlxuICAgICAgKSkgKyAoYXJnLnR5cGUgPT09IFwic3RyaW5nXCIgJiYgKGFyZy52YWx1ZUhpbnQgfHwgYXJnLmRlZmF1bHQpID8gYD0ke2FyZy52YWx1ZUhpbnQgPyBgPCR7YXJnLnZhbHVlSGludH0+YCA6IGBcIiR7YXJnLmRlZmF1bHQgfHwgXCJcIn1cImB9YCA6IFwiXCIpO1xuICAgICAgYXJnTGluZXMucHVzaChbXG4gICAgICAgIFwiYFwiICsgYXJnU3RyICsgKGlzUmVxdWlyZWQgPyBcIiAocmVxdWlyZWQpXCIgOiBcIlwiKSArIFwiYFwiLFxuICAgICAgICBhcmcuZGVzY3JpcHRpb24gfHwgXCJcIlxuICAgICAgXSk7XG4gICAgICBpZiAoaXNSZXF1aXJlZCkge1xuICAgICAgICB1c2FnZUxpbmUucHVzaChhcmdTdHIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoY21kLnN1YkNvbW1hbmRzKSB7XG4gICAgY29uc3QgY29tbWFuZE5hbWVzID0gW107XG4gICAgY29uc3Qgc3ViQ29tbWFuZHMgPSBhd2FpdCByZXNvbHZlVmFsdWUoY21kLnN1YkNvbW1hbmRzKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBzdWJdIG9mIE9iamVjdC5lbnRyaWVzKHN1YkNvbW1hbmRzKSkge1xuICAgICAgY29uc3Qgc3ViQ21kID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1Yik7XG4gICAgICBjb25zdCBtZXRhID0gYXdhaXQgcmVzb2x2ZVZhbHVlKHN1YkNtZD8ubWV0YSk7XG4gICAgICBjb21tYW5kc0xpbmVzLnB1c2goW2BcXGAke25hbWV9XFxgYCwgbWV0YT8uZGVzY3JpcHRpb24gfHwgXCJcIl0pO1xuICAgICAgY29tbWFuZE5hbWVzLnB1c2gobmFtZSk7XG4gICAgfVxuICAgIHVzYWdlTGluZS5wdXNoKGNvbW1hbmROYW1lcy5qb2luKFwifFwiKSk7XG4gIH1cbiAgY29uc3QgdXNhZ2VMaW5lcyA9IFtdO1xuICBjb25zdCB2ZXJzaW9uID0gY21kTWV0YS52ZXJzaW9uIHx8IHBhcmVudE1ldGEudmVyc2lvbjtcbiAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgIGNvbG9ycy5ncmF5KFxuICAgICAgYCR7Y21kTWV0YS5kZXNjcmlwdGlvbn0gKCR7Y29tbWFuZE5hbWUgKyAodmVyc2lvbiA/IGAgdiR7dmVyc2lvbn1gIDogXCJcIil9KWBcbiAgICApLFxuICAgIFwiXCJcbiAgKTtcbiAgY29uc3QgaGFzT3B0aW9ucyA9IGFyZ0xpbmVzLmxlbmd0aCA+IDAgfHwgcG9zTGluZXMubGVuZ3RoID4gMDtcbiAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgIGAke2NvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJVU0FHRVwiKSl9IFxcYCR7Y29tbWFuZE5hbWV9JHtoYXNPcHRpb25zID8gXCIgW09QVElPTlNdXCIgOiBcIlwifSAke3VzYWdlTGluZS5qb2luKFwiIFwiKX1cXGBgLFxuICAgIFwiXCJcbiAgKTtcbiAgaWYgKHBvc0xpbmVzLmxlbmd0aCA+IDApIHtcbiAgICB1c2FnZUxpbmVzLnB1c2goY29sb3JzLnVuZGVybGluZShjb2xvcnMuYm9sZChcIkFSR1VNRU5UU1wiKSksIFwiXCIpO1xuICAgIHVzYWdlTGluZXMucHVzaChmb3JtYXRMaW5lQ29sdW1ucyhwb3NMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFwiXCIpO1xuICB9XG4gIGlmIChhcmdMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGNvbG9ycy51bmRlcmxpbmUoY29sb3JzLmJvbGQoXCJPUFRJT05TXCIpKSwgXCJcIik7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKGZvcm1hdExpbmVDb2x1bW5zKGFyZ0xpbmVzLCBcIiAgXCIpKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goXCJcIik7XG4gIH1cbiAgaWYgKGNvbW1hbmRzTGluZXMubGVuZ3RoID4gMCkge1xuICAgIHVzYWdlTGluZXMucHVzaChjb2xvcnMudW5kZXJsaW5lKGNvbG9ycy5ib2xkKFwiQ09NTUFORFNcIikpLCBcIlwiKTtcbiAgICB1c2FnZUxpbmVzLnB1c2goZm9ybWF0TGluZUNvbHVtbnMoY29tbWFuZHNMaW5lcywgXCIgIFwiKSk7XG4gICAgdXNhZ2VMaW5lcy5wdXNoKFxuICAgICAgXCJcIixcbiAgICAgIGBVc2UgXFxgJHtjb21tYW5kTmFtZX0gPGNvbW1hbmQ+IC0taGVscFxcYCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIGNvbW1hbmQuYFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVzYWdlTGluZXMuZmlsdGVyKChsKSA9PiB0eXBlb2YgbCA9PT0gXCJzdHJpbmdcIikuam9pbihcIlxcblwiKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuTWFpbihjbWQsIG9wdHMgPSB7fSkge1xuICBjb25zdCByYXdBcmdzID0gb3B0cy5yYXdBcmdzIHx8IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcbiAgY29uc3Qgc2hvd1VzYWdlJDEgPSBvcHRzLnNob3dVc2FnZSB8fCBzaG93VXNhZ2U7XG4gIHRyeSB7XG4gICAgaWYgKHJhd0FyZ3MuaW5jbHVkZXMoXCItLWhlbHBcIikgfHwgcmF3QXJncy5pbmNsdWRlcyhcIi1oXCIpKSB7XG4gICAgICBhd2FpdCBzaG93VXNhZ2UkMSguLi5hd2FpdCByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MpKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9IGVsc2UgaWYgKHJhd0FyZ3MubGVuZ3RoID09PSAxICYmIHJhd0FyZ3NbMF0gPT09IFwiLS12ZXJzaW9uXCIpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSB0eXBlb2YgY21kLm1ldGEgPT09IFwiZnVuY3Rpb25cIiA/IGF3YWl0IGNtZC5tZXRhKCkgOiBhd2FpdCBjbWQubWV0YTtcbiAgICAgIGlmICghbWV0YT8udmVyc2lvbikge1xuICAgICAgICB0aHJvdyBuZXcgQ0xJRXJyb3IoXCJObyB2ZXJzaW9uIHNwZWNpZmllZFwiLCBcIkVfTk9fVkVSU0lPTlwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGEubG9nKG1ldGEudmVyc2lvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHJ1bkNvbW1hbmQoY21kLCB7IHJhd0FyZ3MgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IGlzQ0xJRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIENMSUVycm9yO1xuICAgIGlmICghaXNDTElFcnJvcikge1xuICAgICAgY29uc29sYS5lcnJvcihlcnJvciwgXCJcXG5cIik7XG4gICAgfVxuICAgIGlmIChpc0NMSUVycm9yKSB7XG4gICAgICBhd2FpdCBzaG93VXNhZ2UkMSguLi5hd2FpdCByZXNvbHZlU3ViQ29tbWFuZChjbWQsIHJhd0FyZ3MpKTtcbiAgICB9XG4gICAgY29uc29sYS5lcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZU1haW4oY21kKSB7XG4gIHJldHVybiAob3B0cyA9IHt9KSA9PiBydW5NYWluKGNtZCwgb3B0cyk7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZU1haW4sIGRlZmluZUNvbW1hbmQsIHBhcnNlQXJncywgcmVuZGVyVXNhZ2UsIHJ1bkNvbW1hbmQsIHJ1bk1haW4sIHNob3dVc2FnZSB9O1xuIiwgImltcG9ydCB7IGRlZmluZUNvbW1hbmQsIHJ1bk1haW4gfSBmcm9tIFwiY2l0dHlcIjtcbmltcG9ydCBhc3NlcnQgZnJvbSBcIm5vZGU6YXNzZXJ0XCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IGV6U3Bhd24gZnJvbSBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSBcIm9oYXNoXCI7XG5pbXBvcnQgZnNTeW5jIGZyb20gXCJmc1wiO1xuaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgZ2V0UGFja2FnZU1hbmlmZXN0LCB0eXBlIFBhY2thZ2VNYW5pZmVzdCB9IGZyb20gXCJxdWVyeS1yZWdpc3RyeVwiO1xuaW1wb3J0IHR5cGUgeyBDb21tZW50IH0gZnJvbSBcIkBwa2ctcHItbmV3L3V0aWxzXCI7XG5pbXBvcnQge1xuICBhYmJyZXZpYXRlQ29tbWl0SGFzaCxcbiAgZXh0cmFjdE93bmVyQW5kUmVwbyxcbiAgZXh0cmFjdFJlcG9zaXRvcnksXG59IGZyb20gXCJAcGtnLXByLW5ldy91dGlsc1wiO1xuaW1wb3J0IGZnIGZyb20gXCJmYXN0LWdsb2JcIjtcbmltcG9ydCBpZ25vcmUgZnJvbSBcImlnbm9yZVwiO1xuaW1wb3J0IFwiLi9lbnZpcm9ubWVudHNcIjtcbmltcG9ydCBwa2cgZnJvbSBcIi4vcGFja2FnZS5qc29uXCIgd2l0aCB7IHR5cGU6IFwianNvblwiIH07XG5pbXBvcnQgeyBpc0JpbmFyeUZpbGUgfSBmcm9tIFwiaXNiaW5hcnlmaWxlXCI7XG5pbXBvcnQgeyByZWFkUGFja2FnZUpTT04sIHdyaXRlUGFja2FnZUpTT04gfSBmcm9tIFwicGtnLXR5cGVzXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VGVtcGxhdGUgfSBmcm9tIFwiLi90ZW1wbGF0ZVwiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIHZhciBBUElfVVJMOiBzdHJpbmc7XG59XG5cbmNvbnN0IGFwaVVybCA9IHByb2Nlc3MuZW52LkFQSV9VUkwgPz8gQVBJX1VSTDtcbmNvbnN0IHB1Ymxpc2hVcmwgPSBuZXcgVVJMKFwiL3B1Ymxpc2hcIiwgYXBpVXJsKTtcblxuY29uc3QgbWFpbiA9IGRlZmluZUNvbW1hbmQoe1xuICBtZXRhOiB7XG4gICAgdmVyc2lvbjogcGtnLnZlcnNpb24sXG4gICAgbmFtZTogXCJzdGFja2JsaXR6XCIsXG4gICAgZGVzY3JpcHRpb246IFwiQSBDTEkgZm9yIHBrZy5wci5uZXcgKENvbnRpbnVvdXMgUmVsZWFzZXMpXCIsXG4gIH0sXG4gIHN1YkNvbW1hbmRzOiB7XG4gICAgcHVibGlzaDogKCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGNvbXBhY3Q6IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiY29tcGFjdCB1cmxzLiBUaGUgc2hvcnRlc3QgZm9ybSBvZiB1cmxzIGxpa2UgcGtnLnByLm5ldy90aW55YmVuY2hAYTgzMmE1NSlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBucG06IHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwidXNlIGBwbnBtIHBhY2tgIGluc3RlYWQgb2YgYG5wbSBwYWNrIC0tanNvbmBcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiZ2VuZXJhdGUgc3RhY2tibGl0eiB0ZW1wbGF0ZXMgb3V0IG9mIGRpcmVjdG9yaWVzIGluIHRoZSBjdXJyZW50IHJlcG8gd2l0aCB0aGUgbmV3IGJ1aWx0IHBhY2thZ2VzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb21tZW50OiB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLCAvLyBcIm9mZlwiLCBcImNyZWF0ZVwiLCBcInVwZGF0ZVwiIChkZWZhdWx0KVxuICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcIm9mZlwiIGZvciBubyBjb21tZW50cyAoc2lsZW50IG1vZGUpLiBcImNyZWF0ZVwiIGZvciBjb21tZW50IG9uIGVhY2ggcHVibGlzaC4gXCJ1cGRhdGVcIiBmb3Igb25lIGNvbW1lbnQgYWNyb3NzIHRoZSBwdWxsIHJlcXVlc3Qgd2l0aCBlZGl0cyBvbiBlYWNoIHB1Ymxpc2ggKGRlZmF1bHQpYCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IFwidXBkYXRlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcnVuOiBhc3luYyAoeyBhcmdzIH0pID0+IHtcbiAgICAgICAgICBjb25zdCBwYXRocyA9IChhcmdzLl8ubGVuZ3RoID8gYXJncy5fIDogW1wiLlwiXSlcbiAgICAgICAgICAgIC5mbGF0TWFwKChwKSA9PiAoZmcuaXNEeW5hbWljUGF0dGVybihwKSA/IGZnLnN5bmMocCkgOiBwKSlcbiAgICAgICAgICAgIC5tYXAoKHApID0+IHBhdGgucmVzb2x2ZShwLnRyaW0oKSkpO1xuXG4gICAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gKFxuICAgICAgICAgICAgdHlwZW9mIGFyZ3MudGVtcGxhdGUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgPyBbYXJncy50ZW1wbGF0ZV1cbiAgICAgICAgICAgICAgOiAoWy4uLihhcmdzLnRlbXBsYXRlIHx8IFtdKV0gYXMgc3RyaW5nW10pXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLmZsYXRNYXAoKHApID0+IChmZy5pc0R5bmFtaWNQYXR0ZXJuKHApID8gZmcuc3luYyhwKSA6IHApKVxuICAgICAgICAgICAgLm1hcCgocCkgPT4gcGF0aC5yZXNvbHZlKHAudHJpbSgpKSk7XG5cbiAgICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgY29uc3QgaXNDb21wYWN0ID0gISFhcmdzLmNvbXBhY3Q7XG4gICAgICAgICAgY29uc3QgaXNQbnBtID0gISFhcmdzLnBucG07XG5cbiAgICAgICAgICBjb25zdCBjb21tZW50OiBDb21tZW50ID0gYXJncy5jb21tZW50IGFzIENvbW1lbnQ7XG5cbiAgICAgICAgICBpZiAoIXByb2Nlc3MuZW52LlRFU1QgJiYgcHJvY2Vzcy5lbnYuR0lUSFVCX0FDVElPTlMgIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNvbnRpbnVvdXMgUmVsZWFzZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGluIEdpdGh1YiBBY3Rpb25zLlwiLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBHSVRIVUJfUkVQT1NJVE9SWSxcbiAgICAgICAgICAgIEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICBHSVRIVUJfUlVOX0FUVEVNUFQsXG4gICAgICAgICAgICBHSVRIVUJfQUNUT1JfSUQsXG4gICAgICAgICAgfSA9IHByb2Nlc3MuZW52O1xuXG4gICAgICAgICAgY29uc3QgW293bmVyLCByZXBvXSA9IEdJVEhVQl9SRVBPU0lUT1JZLnNwbGl0KFwiL1wiKTtcblxuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0ge1xuICAgICAgICAgICAgb3duZXIsXG4gICAgICAgICAgICByZXBvLFxuICAgICAgICAgICAgcnVuOiBOdW1iZXIoR0lUSFVCX1JVTl9JRCksXG4gICAgICAgICAgICBhdHRlbXB0OiBOdW1iZXIoR0lUSFVCX1JVTl9BVFRFTVBUKSxcbiAgICAgICAgICAgIGFjdG9yOiBOdW1iZXIoR0lUSFVCX0FDVE9SX0lEKSxcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgY29uc3Qga2V5ID0gaGFzaChtZXRhZGF0YSk7XG5cbiAgICAgICAgICBjb25zdCBjaGVja1Jlc3BvbnNlID0gYXdhaXQgZmV0Y2gobmV3IFVSTChcIi9jaGVja1wiLCBhcGlVcmwpLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBvd25lcixcbiAgICAgICAgICAgICAgcmVwbyxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpZiAoIWNoZWNrUmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGF3YWl0IGNoZWNrUmVzcG9uc2UudGV4dCgpKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB7IHNoYSB9ID0gYXdhaXQgY2hlY2tSZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgY29uc3QgYWJicmV2aWF0ZWRTaGEgPSBhYmJyZXZpYXRlQ29tbWl0SGFzaChzaGEpO1xuXG4gICAgICAgICAgY29uc3QgZGVwczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24ocCkpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpTT04ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzQ29tcGFjdCkge1xuICAgICAgICAgICAgICBhd2FpdCB2ZXJpZnlDb21wYWN0TW9kZShwSnNvbi5uYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVwcy5zZXQoXG4gICAgICAgICAgICAgIHBKc29uLm5hbWUsXG4gICAgICAgICAgICAgIG5ldyBVUkwoXG4gICAgICAgICAgICAgICAgYC8ke293bmVyfS8ke3JlcG99LyR7cEpzb24ubmFtZX1AJHthYmJyZXZpYXRlZFNoYX1gLFxuICAgICAgICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICAgICAgKS5ocmVmLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IHRlbXBsYXRlRGlyIG9mIHRlbXBsYXRlcykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24odGVtcGxhdGVEaXIpKSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICBgc2tpcHBpbmcgJHt0ZW1wbGF0ZURpcn0gYmVjYXVzZSB0aGVyZSdzIG5vIHBhY2thZ2UuanNvbiBmaWxlYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwSnNvblBhdGggPSBwYXRoLnJlc29sdmUodGVtcGxhdGVEaXIsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpTT04ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXCJuYW1lXCIgZmllbGQgaW4gJHtwSnNvblBhdGh9IHNob3VsZCBiZSBkZWZpbmVkYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicHJlcGFyaW5nIHRlbXBsYXRlOlwiLCBwSnNvbi5uYW1lKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzdG9yZSA9IGF3YWl0IHdyaXRlRGVwcyh0ZW1wbGF0ZURpciwgZGVwcyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBwYXRoLmpvaW4odGVtcGxhdGVEaXIsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlnID0gaWdub3JlKCk7XG4gICAgICAgICAgICBpZy5hZGQoXCJub2RlX21vZHVsZXNcIik7XG5cbiAgICAgICAgICAgIGlmIChmc1N5bmMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgICAgICAgICAgICBjb25zdCBnaXRpZ25vcmVDb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUoZ2l0aWdub3JlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgICBpZy5hZGQoZ2l0aWdub3JlQ29udGVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgZmcoW1wiKiovKlwiXSwge1xuICAgICAgICAgICAgICBjd2Q6IHRlbXBsYXRlRGlyLFxuICAgICAgICAgICAgICBkb3Q6IHRydWUsXG4gICAgICAgICAgICAgIG9ubHlGaWxlczogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEZpbGVzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiAhaWcuaWdub3JlcyhmaWxlKSk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgZmlsdGVyZWRGaWxlcykge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCBmaWxlUGF0aCkpO1xuICAgICAgICAgICAgICBjb25zdCBpc0JpbmFyeSA9IGF3YWl0IGlzQmluYXJ5RmlsZShmaWxlKTtcbiAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtmaWxlLmJ1ZmZlcl0sIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgICAgICAgIGB0ZW1wbGF0ZToke3BKc29uLm5hbWV9OiR7ZW5jb2RlVVJJQ29tcG9uZW50KGZpbGVQYXRoKX1gLFxuICAgICAgICAgICAgICAgIGlzQmluYXJ5ID8gYmxvYiA6IGF3YWl0IGJsb2IudGV4dCgpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgcmVzdG9yZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IG5vRGVmYXVsdFRlbXBsYXRlID0gYXJncy50ZW1wbGF0ZSA9PT0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAoIXRlbXBsYXRlcy5sZW5ndGggJiYgIW5vRGVmYXVsdFRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9qZWN0ID0gY3JlYXRlRGVmYXVsdFRlbXBsYXRlKFxuICAgICAgICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoZGVwcy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhwcm9qZWN0KSkge1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgICAgICAgYHRlbXBsYXRlOmRlZmF1bHQ6JHtlbmNvZGVVUklDb21wb25lbnQoZmlsZVBhdGgpfWAsXG4gICAgICAgICAgICAgICAgcHJvamVjdFtmaWxlUGF0aF0sXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdG9yZU1hcCA9IG5ldyBNYXA8XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIHdyaXRlRGVwcz4+XG4gICAgICAgICAgPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24ocCkpKSB7XG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICAgICAgICAgICAgY29uc3QgcEpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpTT04ocEpzb25QYXRoKTtcblxuICAgICAgICAgICAgaWYgKHBKc29uLnByaXZhdGUpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3RvcmVNYXAuc2V0KHAsIGF3YWl0IHdyaXRlRGVwcyhwLCBkZXBzKSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3Qgc2hhc3VtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXRocykge1xuICAgICAgICAgICAgaWYgKCEoYXdhaXQgaGFzUGFja2FnZUpzb24ocCkpKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlcmUncyBubyBwYWNrYWdlLmpzb24gZmlsZWApO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBKc29uUGF0aCA9IHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHBKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKU09OKHBKc29uUGF0aCk7XG5cbiAgICAgICAgICAgICAgaWYgKCFwSnNvbi5uYW1lKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgYFwibmFtZVwiIGZpZWxkIGluICR7cEpzb25QYXRofSBzaG91bGQgYmUgZGVmaW5lZGAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAocEpzb24ucHJpdmF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBza2lwcGluZyAke3B9IGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgcHJpdmF0ZWApO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgeyBmaWxlbmFtZSwgc2hhc3VtIH0gPSBhd2FpdCByZXNvbHZlVGFyYmFsbChcbiAgICAgICAgICAgICAgICBpc1BucG0gPyBcInBucG1cIiA6IFwibnBtXCIsXG4gICAgICAgICAgICAgICAgcCxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBzaGFzdW1zW3BKc29uLm5hbWVdID0gc2hhc3VtO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2hhc3VtIGZvciAke3BKc29uLm5hbWV9KCR7ZmlsZW5hbWV9KTogJHtzaGFzdW19YCk7XG5cbiAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKHBhdGgucmVzb2x2ZShwLCBmaWxlbmFtZSkpO1xuXG4gICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZV0sIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGBwYWNrYWdlOiR7cEpzb24ubmFtZX1gLCBibG9iLCBmaWxlbmFtZSk7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICBhd2FpdCByZXN0b3JlTWFwLmdldChwKT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2gocHVibGlzaFVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJzYi1jb21tZW50XCI6IGNvbW1lbnQsXG4gICAgICAgICAgICAgIFwic2ItY29tcGFjdFwiOiBgJHtpc0NvbXBhY3R9YCxcbiAgICAgICAgICAgICAgXCJzYi1rZXlcIjoga2V5LFxuICAgICAgICAgICAgICBcInNiLXNoYXN1bXNcIjogSlNPTi5zdHJpbmdpZnkoc2hhc3VtcyksXG4gICAgICAgICAgICAgIFwic2ItcnVuLWlkXCI6IEdJVEhVQl9SVU5fSUQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgbGF0ZXJSZXMgPSBhd2FpdCByZXMuY2xvbmUoKS5qc29uKCk7XG4gICAgICAgICAgYXNzZXJ0LmVxdWFsKFxuICAgICAgICAgICAgcmVzLnN0YXR1cyxcbiAgICAgICAgICAgIDIwMCxcbiAgICAgICAgICAgIGBwdWJsaXNoaW5nIGZhaWxlZDogJHthd2FpdCByZXMudGV4dCgpfWAsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiXFxuXCIpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFx1MjZBMVx1RkUwRiBZb3VyIG5wbSBwYWNrYWdlcyBhcmUgcHVibGlzaGVkLlxcbiR7Wy4uLmZvcm1EYXRhLmtleXMoKV1cbiAgICAgICAgICAgICAgLmZpbHRlcigoaykgPT4gay5zdGFydHNXaXRoKFwicGFja2FnZTpcIikpXG4gICAgICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAgICAgKG5hbWUsIGkpID0+XG4gICAgICAgICAgICAgICAgICBgJHtuYW1lLnNsaWNlKFwicGFja2FnZTpcIi5sZW5ndGgpfTogbnBtIGkgJHtsYXRlclJlcy51cmxzW2ldfWAsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIil9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6ICgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGE6IHt9LFxuICAgICAgICBydW46ICgpID0+IHt9LFxuICAgICAgfTtcbiAgICB9LFxuICB9LFxufSk7XG5cbnJ1bk1haW4obWFpbik7XG5cbi8vIFRPRE86IHdlJ2xsIGFkZCBzdXBwb3J0IGZvciB5YXJuIGlmIHVzZXJzIGhpdCBpc3N1ZXMgd2l0aCBucG1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVUYXJiYWxsKHBtOiBcIm5wbVwiIHwgXCJwbnBtXCIsIHA6IHN0cmluZykge1xuICBjb25zdCB7IHN0ZG91dCB9ID0gYXdhaXQgZXpTcGF3bi5hc3luYyhgJHtwbX0gcGFja2AsIHtcbiAgICBzdGRpbzogXCJvdmVybGFwcGVkXCIsXG4gICAgY3dkOiBwLFxuICB9KTtcbiAgY29uc3QgbGluZXMgPSBzdGRvdXQuc3BsaXQoXCJcXG5cIikuZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBmaWxlbmFtZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLnRyaW0oKTtcblxuICBjb25zdCBzaGFzdW0gPSBjcmVhdGVIYXNoKFwic2hhMVwiKVxuICAgIC51cGRhdGUoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5yZXNvbHZlKHAsIGZpbGVuYW1lKSkpXG4gICAgLmRpZ2VzdChcImhleFwiKTtcblxuICByZXR1cm4geyBmaWxlbmFtZSwgc2hhc3VtIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRGVwcyhwOiBzdHJpbmcsIGRlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgY29uc3QgcEpzb25QYXRoID0gcGF0aC5yZXNvbHZlKHAsIFwicGFja2FnZS5qc29uXCIpO1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgZnMucmVhZEZpbGUocEpzb25QYXRoLCBcInV0Zi04XCIpO1xuXG4gIGNvbnN0IHBKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKU09OKHBKc29uUGF0aCk7XG5cbiAgaGlqYWNrRGVwcyhkZXBzLCBwSnNvbi5kZXBlbmRlbmNpZXMpO1xuICBoaWphY2tEZXBzKGRlcHMsIHBKc29uLmRldkRlcGVuZGVuY2llcyk7XG5cbiAgYXdhaXQgd3JpdGVQYWNrYWdlSlNPTihwSnNvblBhdGgsIHBKc29uKTtcblxuICByZXR1cm4gKCkgPT4gZnMud3JpdGVGaWxlKHBKc29uUGF0aCwgY29udGVudCk7XG59XG5cbmZ1bmN0aW9uIGhpamFja0RlcHMoXG4gIG5ld0RlcHM6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gIG9sZERlcHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKSB7XG4gIGlmICghb2xkRGVwcykge1xuICAgIHJldHVybjtcbiAgfVxuICBmb3IgKGNvbnN0IFtuZXdEZXAsIHVybF0gb2YgbmV3RGVwcykge1xuICAgIGlmIChuZXdEZXAgaW4gb2xkRGVwcykge1xuICAgICAgb2xkRGVwc1tuZXdEZXBdID0gdXJsO1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlDb21wYWN0TW9kZShwYWNrYWdlTmFtZTogc3RyaW5nKSB7XG4gIGxldCBtYW5pZmVzdDogUGFja2FnZU1hbmlmZXN0O1xuXG4gIHRyeSB7XG4gICAgbWFuaWZlc3QgPSBhd2FpdCBnZXRQYWNrYWdlTWFuaWZlc3QocGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgcGtnLXByLW5ldyBjYW5ub3QgcmVzb2x2ZSAke3BhY2thZ2VOYW1lfSBmcm9tIG5wbS4gLS1jb21wYWN0IGZsYWcgZGVwZW5kcyBvbiB0aGUgcGFja2FnZSBiZWluZyBhdmFpbGFibGUgaW4gbnBtLlxuTWFrZSBzdXJlIHRvIGhhdmUgeW91ciBwYWNrYWdlIG9uIG5wbSBmaXJzdC5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBpbnN0cnVjdGlvbiA9IGBNYWtlIHN1cmUgdG8gY29uZmlndXJlIHRoZSAncmVwb3NpdG9yeScgLyAncmVwb3NpdG9yeS51cmwnIGZpZWxkIGluIGl0cyBwYWNrYWdlLmpzb24gcHJvcGVybHkuXG5TZWUgaHR0cHM6Ly9kb2NzLm5wbWpzLmNvbS9jbGkvdjEwL2NvbmZpZ3VyaW5nLW5wbS9wYWNrYWdlLWpzb24jcmVwb3NpdG9yeSBmb3IgZGV0YWlscy5gO1xuXG4gIGNvbnN0IHJlcG9zaXRvcnkgPSBleHRyYWN0UmVwb3NpdG9yeShtYW5pZmVzdCk7XG4gIGlmICghcmVwb3NpdG9yeSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBwa2ctcHItbmV3IGNhbm5vdCBleHRyYWN0IHRoZSByZXBvc2l0b3J5IGxpbmsgZnJvbSB0aGUgJHtwYWNrYWdlTmFtZX0gbWFuaWZlc3QuIC0tY29tcGFjdCBmbGFnIHJlcXVpcmVzIHRoZSBsaW5rIHRvIGJlIHByZXNlbnQuXG4ke2luc3RydWN0aW9ufWAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gZXh0cmFjdE93bmVyQW5kUmVwbyhyZXBvc2l0b3J5KTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBwa2ctcHItbmV3IGNhbm5vdCBleHRyYWN0IHRoZSBvd25lciBhbmQgcmVwbyBuYW1lcyBmcm9tIHRoZSAke3BhY2thZ2VOYW1lfSByZXBvc2l0b3J5IGxpbms6ICR7cmVwb3NpdG9yeX0uIC0tY29tcGFjdCBmbGFnIHJlcXVpcmVzIHRoZXNlIG5hbWVzLlxuJHtpbnN0cnVjdGlvbn1gLFxuICAgICk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzUGFja2FnZUpzb24ocDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMuYWNjZXNzKHBhdGgucmVzb2x2ZShwLCBcInBhY2thZ2UuanNvblwiKSwgZnMuY29uc3RhbnRzLkZfT0spO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsICJjb25zdCBkZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBpZ25vcmVVbmtub3duOiBmYWxzZSxcbiAgcmVzcGVjdFR5cGU6IGZhbHNlLFxuICByZXNwZWN0RnVuY3Rpb25OYW1lczogZmFsc2UsXG4gIHJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXM6IGZhbHNlLFxuICB1bm9yZGVyZWRPYmplY3RzOiB0cnVlLFxuICB1bm9yZGVyZWRBcnJheXM6IGZhbHNlLFxuICB1bm9yZGVyZWRTZXRzOiBmYWxzZSxcbiAgZXhjbHVkZUtleXM6IHZvaWQgMCxcbiAgZXhjbHVkZVZhbHVlczogdm9pZCAwLFxuICByZXBsYWNlcjogdm9pZCAwXG59KTtcbmZ1bmN0aW9uIG9iamVjdEhhc2gob2JqZWN0LCBvcHRpb25zKSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHsgLi4uZGVmYXVsdHMsIC4uLm9wdGlvbnMgfTtcbiAgfSBlbHNlIHtcbiAgICBvcHRpb25zID0gZGVmYXVsdHM7XG4gIH1cbiAgY29uc3QgaGFzaGVyID0gY3JlYXRlSGFzaGVyKG9wdGlvbnMpO1xuICBoYXNoZXIuZGlzcGF0Y2gob2JqZWN0KTtcbiAgcmV0dXJuIGhhc2hlci50b1N0cmluZygpO1xufVxuY29uc3QgZGVmYXVsdFByb3RvdHlwZXNLZXlzID0gT2JqZWN0LmZyZWV6ZShbXG4gIFwicHJvdG90eXBlXCIsXG4gIFwiX19wcm90b19fXCIsXG4gIFwiY29uc3RydWN0b3JcIlxuXSk7XG5mdW5jdGlvbiBjcmVhdGVIYXNoZXIob3B0aW9ucykge1xuICBsZXQgYnVmZiA9IFwiXCI7XG4gIGxldCBjb250ZXh0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgY29uc3Qgd3JpdGUgPSAoc3RyKSA9PiB7XG4gICAgYnVmZiArPSBzdHI7XG4gIH07XG4gIHJldHVybiB7XG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICByZXR1cm4gYnVmZjtcbiAgICB9LFxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICByZXR1cm4gY29udGV4dDtcbiAgICB9LFxuICAgIGRpc3BhdGNoKHZhbHVlKSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXBsYWNlcikge1xuICAgICAgICB2YWx1ZSA9IG9wdGlvbnMucmVwbGFjZXIodmFsdWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHlwZSA9IHZhbHVlID09PSBudWxsID8gXCJudWxsXCIgOiB0eXBlb2YgdmFsdWU7XG4gICAgICByZXR1cm4gdGhpc1t0eXBlXSh2YWx1ZSk7XG4gICAgfSxcbiAgICBvYmplY3Qob2JqZWN0KSB7XG4gICAgICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QudG9KU09OID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0KG9iamVjdC50b0pTT04oKSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYmpTdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbiAgICAgIGxldCBvYmpUeXBlID0gXCJcIjtcbiAgICAgIGNvbnN0IG9iamVjdExlbmd0aCA9IG9ialN0cmluZy5sZW5ndGg7XG4gICAgICBpZiAob2JqZWN0TGVuZ3RoIDwgMTApIHtcbiAgICAgICAgb2JqVHlwZSA9IFwidW5rbm93bjpbXCIgKyBvYmpTdHJpbmcgKyBcIl1cIjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9ialR5cGUgPSBvYmpTdHJpbmcuc2xpY2UoOCwgb2JqZWN0TGVuZ3RoIC0gMSk7XG4gICAgICB9XG4gICAgICBvYmpUeXBlID0gb2JqVHlwZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgbGV0IG9iamVjdE51bWJlciA9IG51bGw7XG4gICAgICBpZiAoKG9iamVjdE51bWJlciA9IGNvbnRleHQuZ2V0KG9iamVjdCkpID09PSB2b2lkIDApIHtcbiAgICAgICAgY29udGV4dC5zZXQob2JqZWN0LCBjb250ZXh0LnNpemUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goXCJbQ0lSQ1VMQVI6XCIgKyBvYmplY3ROdW1iZXIgKyBcIl1cIik7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHtcbiAgICAgICAgd3JpdGUoXCJidWZmZXI6XCIpO1xuICAgICAgICByZXR1cm4gd3JpdGUob2JqZWN0LnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgICB9XG4gICAgICBpZiAob2JqVHlwZSAhPT0gXCJvYmplY3RcIiAmJiBvYmpUeXBlICE9PSBcImZ1bmN0aW9uXCIgJiYgb2JqVHlwZSAhPT0gXCJhc3luY2Z1bmN0aW9uXCIpIHtcbiAgICAgICAgaWYgKHRoaXNbb2JqVHlwZV0pIHtcbiAgICAgICAgICB0aGlzW29ialR5cGVdKG9iamVjdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuaWdub3JlVW5rbm93bikge1xuICAgICAgICAgIHRoaXMudW5rb3duKG9iamVjdCwgb2JqVHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgICAgICAgaWYgKG9wdGlvbnMudW5vcmRlcmVkT2JqZWN0cykge1xuICAgICAgICAgIGtleXMgPSBrZXlzLnNvcnQoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZXh0cmFLZXlzID0gW107XG4gICAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RUeXBlICE9PSBmYWxzZSAmJiAhaXNOYXRpdmVGdW5jdGlvbihvYmplY3QpKSB7XG4gICAgICAgICAgZXh0cmFLZXlzID0gZGVmYXVsdFByb3RvdHlwZXNLZXlzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGVLZXlzKSB7XG4gICAgICAgICAga2V5cyA9IGtleXMuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhb3B0aW9ucy5leGNsdWRlS2V5cyhrZXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV4dHJhS2V5cyA9IGV4dHJhS2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zLmV4Y2x1ZGVLZXlzKGtleSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGUoXCJvYmplY3Q6XCIgKyAoa2V5cy5sZW5ndGggKyBleHRyYUtleXMubGVuZ3RoKSArIFwiOlwiKTtcbiAgICAgICAgY29uc3QgZGlzcGF0Y2hGb3JLZXkgPSAoa2V5KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaChrZXkpO1xuICAgICAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZVZhbHVlcykge1xuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChvYmplY3Rba2V5XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdyaXRlKFwiLFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGRpc3BhdGNoRm9yS2V5KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXh0cmFLZXlzKSB7XG4gICAgICAgICAgZGlzcGF0Y2hGb3JLZXkoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXJyYXkoYXJyLCB1bm9yZGVyZWQpIHtcbiAgICAgIHVub3JkZXJlZCA9IHVub3JkZXJlZCA9PT0gdm9pZCAwID8gb3B0aW9ucy51bm9yZGVyZWRBcnJheXMgIT09IGZhbHNlIDogdW5vcmRlcmVkO1xuICAgICAgd3JpdGUoXCJhcnJheTpcIiArIGFyci5sZW5ndGggKyBcIjpcIik7XG4gICAgICBpZiAoIXVub3JkZXJlZCB8fCBhcnIubGVuZ3RoIDw9IDEpIHtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBhcnIpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoKGVudHJ5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb250ZXh0QWRkaXRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICAgIGNvbnN0IGVudHJpZXMgPSBhcnIubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBoYXNoZXIgPSBjcmVhdGVIYXNoZXIob3B0aW9ucyk7XG4gICAgICAgIGhhc2hlci5kaXNwYXRjaChlbnRyeSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGhhc2hlci5nZXRDb250ZXh0KCkpIHtcbiAgICAgICAgICBjb250ZXh0QWRkaXRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzaGVyLnRvU3RyaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0QWRkaXRpb25zO1xuICAgICAgZW50cmllcy5zb3J0KCk7XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShlbnRyaWVzLCBmYWxzZSk7XG4gICAgfSxcbiAgICBkYXRlKGRhdGUpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImRhdGU6XCIgKyBkYXRlLnRvSlNPTigpKTtcbiAgICB9LFxuICAgIHN5bWJvbChzeW0pIHtcbiAgICAgIHJldHVybiB3cml0ZShcInN5bWJvbDpcIiArIHN5bS50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIHVua293bih2YWx1ZSwgdHlwZSkge1xuICAgICAgd3JpdGUodHlwZSk7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHdyaXRlKFwiOlwiKTtcbiAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUuZW50cmllcyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5KFxuICAgICAgICAgIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICAgLyogb3JkZXJlZCAqL1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3IoZXJyKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJlcnJvcjpcIiArIGVyci50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIGJvb2xlYW4oYm9vbCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYm9vbDpcIiArIGJvb2wpO1xuICAgIH0sXG4gICAgc3RyaW5nKHN0cmluZykge1xuICAgICAgd3JpdGUoXCJzdHJpbmc6XCIgKyBzdHJpbmcubGVuZ3RoICsgXCI6XCIpO1xuICAgICAgd3JpdGUoc3RyaW5nKTtcbiAgICB9LFxuICAgIGZ1bmN0aW9uKGZuKSB7XG4gICAgICB3cml0ZShcImZuOlwiKTtcbiAgICAgIGlmIChpc05hdGl2ZUZ1bmN0aW9uKGZuKSkge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKFwiW25hdGl2ZV1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BhdGNoKGZuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMucmVzcGVjdEZ1bmN0aW9uTmFtZXMgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2goXCJmdW5jdGlvbi1uYW1lOlwiICsgU3RyaW5nKGZuLm5hbWUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnJlc3BlY3RGdW5jdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgdGhpcy5vYmplY3QoZm4pO1xuICAgICAgfVxuICAgIH0sXG4gICAgbnVtYmVyKG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwibnVtYmVyOlwiICsgbnVtYmVyKTtcbiAgICB9LFxuICAgIHhtbCh4bWwpIHtcbiAgICAgIHJldHVybiB3cml0ZShcInhtbDpcIiArIHhtbC50b1N0cmluZygpKTtcbiAgICB9LFxuICAgIG51bGwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJOdWxsXCIpO1xuICAgIH0sXG4gICAgdW5kZWZpbmVkKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiVW5kZWZpbmVkXCIpO1xuICAgIH0sXG4gICAgcmVnZXhwKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJyZWdleDpcIiArIHJlZ2V4LnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgdWludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwidWludDhhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQ4Y2xhbXBlZGFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50OGNsYW1wZWRhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDhhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50OGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgdWludDE2YXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcInVpbnQxNmFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgaW50MTZhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiaW50MTZhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIHVpbnQzMmFycmF5KGFycikge1xuICAgICAgd3JpdGUoXCJ1aW50MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGludDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImludDMyYXJyYXk6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJyKSk7XG4gICAgfSxcbiAgICBmbG9hdDMyYXJyYXkoYXJyKSB7XG4gICAgICB3cml0ZShcImZsb2F0MzJhcnJheTpcIik7XG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcnIpKTtcbiAgICB9LFxuICAgIGZsb2F0NjRhcnJheShhcnIpIHtcbiAgICAgIHdyaXRlKFwiZmxvYXQ2NGFycmF5OlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFycikpO1xuICAgIH0sXG4gICAgYXJyYXlidWZmZXIoYXJyKSB7XG4gICAgICB3cml0ZShcImFycmF5YnVmZmVyOlwiKTtcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoKG5ldyBVaW50OEFycmF5KGFycikpO1xuICAgIH0sXG4gICAgdXJsKHVybCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidXJsOlwiICsgdXJsLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgbWFwKG1hcCkge1xuICAgICAgd3JpdGUoXCJtYXA6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLm1hcF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgc2V0KHNldCkge1xuICAgICAgd3JpdGUoXCJzZXQ6XCIpO1xuICAgICAgY29uc3QgYXJyID0gWy4uLnNldF07XG4gICAgICByZXR1cm4gdGhpcy5hcnJheShhcnIsIG9wdGlvbnMudW5vcmRlcmVkU2V0cyAhPT0gZmFsc2UpO1xuICAgIH0sXG4gICAgZmlsZShmaWxlKSB7XG4gICAgICB3cml0ZShcImZpbGU6XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goW2ZpbGUubmFtZSwgZmlsZS5zaXplLCBmaWxlLnR5cGUsIGZpbGUubGFzdE1vZGZpZWRdKTtcbiAgICB9LFxuICAgIGJsb2IoKSB7XG4gICAgICBpZiAob3B0aW9ucy5pZ25vcmVVbmtub3duKSB7XG4gICAgICAgIHJldHVybiB3cml0ZShcIltibG9iXVwiKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0hhc2hpbmcgQmxvYiBvYmplY3RzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXFxuVXNlIFwib3B0aW9ucy5yZXBsYWNlclwiIG9yIFwib3B0aW9ucy5pZ25vcmVVbmtub3duXCJcXG4nXG4gICAgICApO1xuICAgIH0sXG4gICAgZG9td2luZG93KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZG9td2luZG93XCIpO1xuICAgIH0sXG4gICAgYmlnaW50KG51bWJlcikge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiYmlnaW50OlwiICsgbnVtYmVyLnRvU3RyaW5nKCkpO1xuICAgIH0sXG4gICAgLyogTm9kZS5qcyBzdGFuZGFyZCBuYXRpdmUgb2JqZWN0cyAqL1xuICAgIHByb2Nlc3MoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwcm9jZXNzXCIpO1xuICAgIH0sXG4gICAgdGltZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0aW1lclwiKTtcbiAgICB9LFxuICAgIHBpcGUoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJwaXBlXCIpO1xuICAgIH0sXG4gICAgdGNwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidGNwXCIpO1xuICAgIH0sXG4gICAgdWRwKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidWRwXCIpO1xuICAgIH0sXG4gICAgdHR5KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwidHR5XCIpO1xuICAgIH0sXG4gICAgc3RhdHdhdGNoZXIoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzdGF0d2F0Y2hlclwiKTtcbiAgICB9LFxuICAgIHNlY3VyZWNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzZWN1cmVjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbigpIHtcbiAgICAgIHJldHVybiB3cml0ZShcImNvbm5lY3Rpb25cIik7XG4gICAgfSxcbiAgICB6bGliKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiemxpYlwiKTtcbiAgICB9LFxuICAgIGNvbnRleHQoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJjb250ZXh0XCIpO1xuICAgIH0sXG4gICAgbm9kZXNjcmlwdCgpIHtcbiAgICAgIHJldHVybiB3cml0ZShcIm5vZGVzY3JpcHRcIik7XG4gICAgfSxcbiAgICBodHRwcGFyc2VyKCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiaHR0cHBhcnNlclwiKTtcbiAgICB9LFxuICAgIGRhdGF2aWV3KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZGF0YXZpZXdcIik7XG4gICAgfSxcbiAgICBzaWduYWwoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJzaWduYWxcIik7XG4gICAgfSxcbiAgICBmc2V2ZW50KCkge1xuICAgICAgcmV0dXJuIHdyaXRlKFwiZnNldmVudFwiKTtcbiAgICB9LFxuICAgIHRsc3dyYXAoKSB7XG4gICAgICByZXR1cm4gd3JpdGUoXCJ0bHN3cmFwXCIpO1xuICAgIH1cbiAgfTtcbn1cbmNvbnN0IG5hdGl2ZUZ1bmMgPSBcIltuYXRpdmUgY29kZV0gfVwiO1xuY29uc3QgbmF0aXZlRnVuY0xlbmd0aCA9IG5hdGl2ZUZ1bmMubGVuZ3RoO1xuZnVuY3Rpb24gaXNOYXRpdmVGdW5jdGlvbihmKSB7XG4gIGlmICh0eXBlb2YgZiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChmKS5zbGljZSgtbmF0aXZlRnVuY0xlbmd0aCkgPT09IG5hdGl2ZUZ1bmM7XG59XG5cbmNsYXNzIFdvcmRBcnJheSB7XG4gIGNvbnN0cnVjdG9yKHdvcmRzLCBzaWdCeXRlcykge1xuICAgIHdvcmRzID0gdGhpcy53b3JkcyA9IHdvcmRzIHx8IFtdO1xuICAgIHRoaXMuc2lnQnl0ZXMgPSBzaWdCeXRlcyA9PT0gdm9pZCAwID8gd29yZHMubGVuZ3RoICogNCA6IHNpZ0J5dGVzO1xuICB9XG4gIHRvU3RyaW5nKGVuY29kZXIpIHtcbiAgICByZXR1cm4gKGVuY29kZXIgfHwgSGV4KS5zdHJpbmdpZnkodGhpcyk7XG4gIH1cbiAgY29uY2F0KHdvcmRBcnJheSkge1xuICAgIHRoaXMuY2xhbXAoKTtcbiAgICBpZiAodGhpcy5zaWdCeXRlcyAlIDQpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGhhdEJ5dGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBpID4+PiAyXSB8PSB0aGF0Qnl0ZSA8PCAyNCAtICh0aGlzLnNpZ0J5dGVzICsgaSkgJSA0ICogODtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB3b3JkQXJyYXkuc2lnQnl0ZXM7IGogKz0gNCkge1xuICAgICAgICB0aGlzLndvcmRzW3RoaXMuc2lnQnl0ZXMgKyBqID4+PiAyXSA9IHdvcmRBcnJheS53b3Jkc1tqID4+PiAyXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaWdCeXRlcyArPSB3b3JkQXJyYXkuc2lnQnl0ZXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgY2xhbXAoKSB7XG4gICAgdGhpcy53b3Jkc1t0aGlzLnNpZ0J5dGVzID4+PiAyXSAmPSA0Mjk0OTY3Mjk1IDw8IDMyIC0gdGhpcy5zaWdCeXRlcyAlIDQgKiA4O1xuICAgIHRoaXMud29yZHMubGVuZ3RoID0gTWF0aC5jZWlsKHRoaXMuc2lnQnl0ZXMgLyA0KTtcbiAgfVxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShbLi4udGhpcy53b3Jkc10pO1xuICB9XG59XG5jb25zdCBIZXggPSB7XG4gIHN0cmluZ2lmeSh3b3JkQXJyYXkpIHtcbiAgICBjb25zdCBoZXhDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpKyspIHtcbiAgICAgIGNvbnN0IGJpdGUgPSB3b3JkQXJyYXkud29yZHNbaSA+Pj4gMl0gPj4+IDI0IC0gaSAlIDQgKiA4ICYgMjU1O1xuICAgICAgaGV4Q2hhcnMucHVzaCgoYml0ZSA+Pj4gNCkudG9TdHJpbmcoMTYpLCAoYml0ZSAmIDE1KS50b1N0cmluZygxNikpO1xuICAgIH1cbiAgICByZXR1cm4gaGV4Q2hhcnMuam9pbihcIlwiKTtcbiAgfVxufTtcbmNvbnN0IEJhc2U2NCA9IHtcbiAgc3RyaW5naWZ5KHdvcmRBcnJheSkge1xuICAgIGNvbnN0IGtleVN0ciA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlcIjtcbiAgICBjb25zdCBiYXNlNjRDaGFycyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZEFycmF5LnNpZ0J5dGVzOyBpICs9IDMpIHtcbiAgICAgIGNvbnN0IGJ5dGUxID0gd29yZEFycmF5LndvcmRzW2kgPj4+IDJdID4+PiAyNCAtIGkgJSA0ICogOCAmIDI1NTtcbiAgICAgIGNvbnN0IGJ5dGUyID0gd29yZEFycmF5LndvcmRzW2kgKyAxID4+PiAyXSA+Pj4gMjQgLSAoaSArIDEpICUgNCAqIDggJiAyNTU7XG4gICAgICBjb25zdCBieXRlMyA9IHdvcmRBcnJheS53b3Jkc1tpICsgMiA+Pj4gMl0gPj4+IDI0IC0gKGkgKyAyKSAlIDQgKiA4ICYgMjU1O1xuICAgICAgY29uc3QgdHJpcGxldCA9IGJ5dGUxIDw8IDE2IHwgYnl0ZTIgPDwgOCB8IGJ5dGUzO1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA0ICYmIGkgKiA4ICsgaiAqIDYgPCB3b3JkQXJyYXkuc2lnQnl0ZXMgKiA4OyBqKyspIHtcbiAgICAgICAgYmFzZTY0Q2hhcnMucHVzaChrZXlTdHIuY2hhckF0KHRyaXBsZXQgPj4+IDYgKiAoMyAtIGopICYgNjMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJhc2U2NENoYXJzLmpvaW4oXCJcIik7XG4gIH1cbn07XG5jb25zdCBMYXRpbjEgPSB7XG4gIHBhcnNlKGxhdGluMVN0cikge1xuICAgIGNvbnN0IGxhdGluMVN0ckxlbmd0aCA9IGxhdGluMVN0ci5sZW5ndGg7XG4gICAgY29uc3Qgd29yZHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhdGluMVN0ckxlbmd0aDsgaSsrKSB7XG4gICAgICB3b3Jkc1tpID4+PiAyXSB8PSAobGF0aW4xU3RyLmNoYXJDb2RlQXQoaSkgJiAyNTUpIDw8IDI0IC0gaSAlIDQgKiA4O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheSh3b3JkcywgbGF0aW4xU3RyTGVuZ3RoKTtcbiAgfVxufTtcbmNvbnN0IFV0ZjggPSB7XG4gIHBhcnNlKHV0ZjhTdHIpIHtcbiAgICByZXR1cm4gTGF0aW4xLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh1dGY4U3RyKSkpO1xuICB9XG59O1xuY2xhc3MgQnVmZmVyZWRCbG9ja0FsZ29yaXRobSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2RhdGEgPSBuZXcgV29yZEFycmF5KCk7XG4gICAgdGhpcy5fbkRhdGFCeXRlcyA9IDA7XG4gICAgdGhpcy5fbWluQnVmZmVyU2l6ZSA9IDA7XG4gICAgdGhpcy5ibG9ja1NpemUgPSA1MTIgLyAzMjtcbiAgfVxuICByZXNldCgpIHtcbiAgICB0aGlzLl9kYXRhID0gbmV3IFdvcmRBcnJheSgpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgPSAwO1xuICB9XG4gIF9hcHBlbmQoZGF0YSkge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgZGF0YSA9IFV0ZjgucGFyc2UoZGF0YSk7XG4gICAgfVxuICAgIHRoaXMuX2RhdGEuY29uY2F0KGRhdGEpO1xuICAgIHRoaXMuX25EYXRhQnl0ZXMgKz0gZGF0YS5zaWdCeXRlcztcbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9kb1Byb2Nlc3NCbG9jayhfZGF0YVdvcmRzLCBfb2Zmc2V0KSB7XG4gIH1cbiAgX3Byb2Nlc3MoZG9GbHVzaCkge1xuICAgIGxldCBwcm9jZXNzZWRXb3JkcztcbiAgICBsZXQgbkJsb2Nrc1JlYWR5ID0gdGhpcy5fZGF0YS5zaWdCeXRlcyAvICh0aGlzLmJsb2NrU2l6ZSAqIDQpO1xuICAgIGlmIChkb0ZsdXNoKSB7XG4gICAgICBuQmxvY2tzUmVhZHkgPSBNYXRoLmNlaWwobkJsb2Nrc1JlYWR5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbkJsb2Nrc1JlYWR5ID0gTWF0aC5tYXgoKG5CbG9ja3NSZWFkeSB8IDApIC0gdGhpcy5fbWluQnVmZmVyU2l6ZSwgMCk7XG4gICAgfVxuICAgIGNvbnN0IG5Xb3Jkc1JlYWR5ID0gbkJsb2Nrc1JlYWR5ICogdGhpcy5ibG9ja1NpemU7XG4gICAgY29uc3QgbkJ5dGVzUmVhZHkgPSBNYXRoLm1pbihuV29yZHNSZWFkeSAqIDQsIHRoaXMuX2RhdGEuc2lnQnl0ZXMpO1xuICAgIGlmIChuV29yZHNSZWFkeSkge1xuICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgbldvcmRzUmVhZHk7IG9mZnNldCArPSB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICB0aGlzLl9kb1Byb2Nlc3NCbG9jayh0aGlzLl9kYXRhLndvcmRzLCBvZmZzZXQpO1xuICAgICAgfVxuICAgICAgcHJvY2Vzc2VkV29yZHMgPSB0aGlzLl9kYXRhLndvcmRzLnNwbGljZSgwLCBuV29yZHNSZWFkeSk7XG4gICAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzIC09IG5CeXRlc1JlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFdvcmRBcnJheShwcm9jZXNzZWRXb3JkcywgbkJ5dGVzUmVhZHkpO1xuICB9XG59XG5jbGFzcyBIYXNoZXIgZXh0ZW5kcyBCdWZmZXJlZEJsb2NrQWxnb3JpdGhtIHtcbiAgdXBkYXRlKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICB0aGlzLl9hcHBlbmQobWVzc2FnZVVwZGF0ZSk7XG4gICAgdGhpcy5fcHJvY2VzcygpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpIHtcbiAgICBpZiAobWVzc2FnZVVwZGF0ZSkge1xuICAgICAgdGhpcy5fYXBwZW5kKG1lc3NhZ2VVcGRhdGUpO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCBIID0gW1xuICAxNzc5MDMzNzAzLFxuICAtMTE1MDgzMzAxOSxcbiAgMTAxMzkwNDI0MixcbiAgLTE1MjE0ODY1MzQsXG4gIDEzNTk4OTMxMTksXG4gIC0xNjk0MTQ0MzcyLFxuICA1Mjg3MzQ2MzUsXG4gIDE1NDE0NTkyMjVcbl07XG5jb25zdCBLID0gW1xuICAxMTE2MzUyNDA4LFxuICAxODk5NDQ3NDQxLFxuICAtMTI0NTY0MzgyNSxcbiAgLTM3Mzk1NzcyMyxcbiAgOTYxOTg3MTYzLFxuICAxNTA4OTcwOTkzLFxuICAtMTg0MTMzMTU0OCxcbiAgLTE0MjQyMDQwNzUsXG4gIC02NzA1ODYyMTYsXG4gIDMxMDU5ODQwMSxcbiAgNjA3MjI1Mjc4LFxuICAxNDI2ODgxOTg3LFxuICAxOTI1MDc4Mzg4LFxuICAtMjEzMjg4OTA5MCxcbiAgLTE2ODAwNzkxOTMsXG4gIC0xMDQ2NzQ0NzE2LFxuICAtNDU5NTc2ODk1LFxuICAtMjcyNzQyNTIyLFxuICAyNjQzNDcwNzgsXG4gIDYwNDgwNzYyOCxcbiAgNzcwMjU1OTgzLFxuICAxMjQ5MTUwMTIyLFxuICAxNTU1MDgxNjkyLFxuICAxOTk2MDY0OTg2LFxuICAtMTc0MDc0NjQxNCxcbiAgLTE0NzMxMzI5NDcsXG4gIC0xMzQxOTcwNDg4LFxuICAtMTA4NDY1MzYyNSxcbiAgLTk1ODM5NTQwNSxcbiAgLTcxMDQzODU4NSxcbiAgMTEzOTI2OTkzLFxuICAzMzgyNDE4OTUsXG4gIDY2NjMwNzIwNSxcbiAgNzczNTI5OTEyLFxuICAxMjk0NzU3MzcyLFxuICAxMzk2MTgyMjkxLFxuICAxNjk1MTgzNzAwLFxuICAxOTg2NjYxMDUxLFxuICAtMjExNzk0MDk0NixcbiAgLTE4MzgwMTEyNTksXG4gIC0xNTY0NDgxMzc1LFxuICAtMTQ3NDY2NDg4NSxcbiAgLTEwMzUyMzY0OTYsXG4gIC05NDkyMDI1MjUsXG4gIC03Nzg5MDE0NzksXG4gIC02OTQ2MTQ0OTIsXG4gIC0yMDAzOTUzODcsXG4gIDI3NTQyMzM0NCxcbiAgNDMwMjI3NzM0LFxuICA1MDY5NDg2MTYsXG4gIDY1OTA2MDU1NixcbiAgODgzOTk3ODc3LFxuICA5NTgxMzk1NzEsXG4gIDEzMjI4MjIyMTgsXG4gIDE1MzcwMDIwNjMsXG4gIDE3NDc4NzM3NzksXG4gIDE5NTU1NjIyMjIsXG4gIDIwMjQxMDQ4MTUsXG4gIC0yMDY3MjM2ODQ0LFxuICAtMTkzMzExNDg3MixcbiAgLTE4NjY1MzA4MjIsXG4gIC0xNTM4MjMzMTA5LFxuICAtMTA5MDkzNTgxNyxcbiAgLTk2NTY0MTk5OFxuXTtcbmNvbnN0IFcgPSBbXTtcbmNsYXNzIFNIQTI1NiBleHRlbmRzIEhhc2hlciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgdGhpcy5faGFzaCA9IG5ldyBXb3JkQXJyYXkoWy4uLkhdKTtcbiAgfVxuICByZXNldCgpIHtcbiAgICBzdXBlci5yZXNldCgpO1xuICAgIHRoaXMuX2hhc2ggPSBuZXcgV29yZEFycmF5KFsuLi5IXSk7XG4gIH1cbiAgX2RvUHJvY2Vzc0Jsb2NrKE0sIG9mZnNldCkge1xuICAgIGNvbnN0IEgyID0gdGhpcy5faGFzaC53b3JkcztcbiAgICBsZXQgYSA9IEgyWzBdO1xuICAgIGxldCBiID0gSDJbMV07XG4gICAgbGV0IGMgPSBIMlsyXTtcbiAgICBsZXQgZCA9IEgyWzNdO1xuICAgIGxldCBlID0gSDJbNF07XG4gICAgbGV0IGYgPSBIMls1XTtcbiAgICBsZXQgZyA9IEgyWzZdO1xuICAgIGxldCBoID0gSDJbN107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICBpZiAoaSA8IDE2KSB7XG4gICAgICAgIFdbaV0gPSBNW29mZnNldCArIGldIHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGdhbW1hMHggPSBXW2kgLSAxNV07XG4gICAgICAgIGNvbnN0IGdhbW1hMCA9IChnYW1tYTB4IDw8IDI1IHwgZ2FtbWEweCA+Pj4gNykgXiAoZ2FtbWEweCA8PCAxNCB8IGdhbW1hMHggPj4+IDE4KSBeIGdhbW1hMHggPj4+IDM7XG4gICAgICAgIGNvbnN0IGdhbW1hMXggPSBXW2kgLSAyXTtcbiAgICAgICAgY29uc3QgZ2FtbWExID0gKGdhbW1hMXggPDwgMTUgfCBnYW1tYTF4ID4+PiAxNykgXiAoZ2FtbWExeCA8PCAxMyB8IGdhbW1hMXggPj4+IDE5KSBeIGdhbW1hMXggPj4+IDEwO1xuICAgICAgICBXW2ldID0gZ2FtbWEwICsgV1tpIC0gN10gKyBnYW1tYTEgKyBXW2kgLSAxNl07XG4gICAgICB9XG4gICAgICBjb25zdCBjaCA9IGUgJiBmIF4gfmUgJiBnO1xuICAgICAgY29uc3QgbWFqID0gYSAmIGIgXiBhICYgYyBeIGIgJiBjO1xuICAgICAgY29uc3Qgc2lnbWEwID0gKGEgPDwgMzAgfCBhID4+PiAyKSBeIChhIDw8IDE5IHwgYSA+Pj4gMTMpIF4gKGEgPDwgMTAgfCBhID4+PiAyMik7XG4gICAgICBjb25zdCBzaWdtYTEgPSAoZSA8PCAyNiB8IGUgPj4+IDYpIF4gKGUgPDwgMjEgfCBlID4+PiAxMSkgXiAoZSA8PCA3IHwgZSA+Pj4gMjUpO1xuICAgICAgY29uc3QgdDEgPSBoICsgc2lnbWExICsgY2ggKyBLW2ldICsgV1tpXTtcbiAgICAgIGNvbnN0IHQyID0gc2lnbWEwICsgbWFqO1xuICAgICAgaCA9IGc7XG4gICAgICBnID0gZjtcbiAgICAgIGYgPSBlO1xuICAgICAgZSA9IGQgKyB0MSB8IDA7XG4gICAgICBkID0gYztcbiAgICAgIGMgPSBiO1xuICAgICAgYiA9IGE7XG4gICAgICBhID0gdDEgKyB0MiB8IDA7XG4gICAgfVxuICAgIEgyWzBdID0gSDJbMF0gKyBhIHwgMDtcbiAgICBIMlsxXSA9IEgyWzFdICsgYiB8IDA7XG4gICAgSDJbMl0gPSBIMlsyXSArIGMgfCAwO1xuICAgIEgyWzNdID0gSDJbM10gKyBkIHwgMDtcbiAgICBIMls0XSA9IEgyWzRdICsgZSB8IDA7XG4gICAgSDJbNV0gPSBIMls1XSArIGYgfCAwO1xuICAgIEgyWzZdID0gSDJbNl0gKyBnIHwgMDtcbiAgICBIMls3XSA9IEgyWzddICsgaCB8IDA7XG4gIH1cbiAgZmluYWxpemUobWVzc2FnZVVwZGF0ZSkge1xuICAgIHN1cGVyLmZpbmFsaXplKG1lc3NhZ2VVcGRhdGUpO1xuICAgIGNvbnN0IG5CaXRzVG90YWwgPSB0aGlzLl9uRGF0YUJ5dGVzICogODtcbiAgICBjb25zdCBuQml0c0xlZnQgPSB0aGlzLl9kYXRhLnNpZ0J5dGVzICogODtcbiAgICB0aGlzLl9kYXRhLndvcmRzW25CaXRzTGVmdCA+Pj4gNV0gfD0gMTI4IDw8IDI0IC0gbkJpdHNMZWZ0ICUgMzI7XG4gICAgdGhpcy5fZGF0YS53b3Jkc1sobkJpdHNMZWZ0ICsgNjQgPj4+IDkgPDwgNCkgKyAxNF0gPSBNYXRoLmZsb29yKFxuICAgICAgbkJpdHNUb3RhbCAvIDQyOTQ5NjcyOTZcbiAgICApO1xuICAgIHRoaXMuX2RhdGEud29yZHNbKG5CaXRzTGVmdCArIDY0ID4+PiA5IDw8IDQpICsgMTVdID0gbkJpdHNUb3RhbDtcbiAgICB0aGlzLl9kYXRhLnNpZ0J5dGVzID0gdGhpcy5fZGF0YS53b3Jkcy5sZW5ndGggKiA0O1xuICAgIHRoaXMuX3Byb2Nlc3MoKTtcbiAgICByZXR1cm4gdGhpcy5faGFzaDtcbiAgfVxufVxuZnVuY3Rpb24gc2hhMjU2KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZygpO1xufVxuZnVuY3Rpb24gc2hhMjU2YmFzZTY0KG1lc3NhZ2UpIHtcbiAgcmV0dXJuIG5ldyBTSEEyNTYoKS5maW5hbGl6ZShtZXNzYWdlKS50b1N0cmluZyhCYXNlNjQpO1xufVxuXG5mdW5jdGlvbiBoYXNoKG9iamVjdCwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGhhc2hlZCA9IHR5cGVvZiBvYmplY3QgPT09IFwic3RyaW5nXCIgPyBvYmplY3QgOiBvYmplY3RIYXNoKG9iamVjdCwgb3B0aW9ucyk7XG4gIHJldHVybiBzaGEyNTZiYXNlNjQoaGFzaGVkKS5zbGljZSgwLCAxMCk7XG59XG5cbmZ1bmN0aW9uIG11cm11ckhhc2goa2V5LCBzZWVkID0gMCkge1xuICBpZiAodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGtleSA9IGNyZWF0ZUJ1ZmZlcihrZXkpO1xuICB9XG4gIGxldCBpID0gMDtcbiAgbGV0IGgxID0gc2VlZDtcbiAgbGV0IGsxO1xuICBsZXQgaDFiO1xuICBjb25zdCByZW1haW5kZXIgPSBrZXkubGVuZ3RoICYgMztcbiAgY29uc3QgYnl0ZXMgPSBrZXkubGVuZ3RoIC0gcmVtYWluZGVyO1xuICBjb25zdCBjMSA9IDM0MzI5MTgzNTM7XG4gIGNvbnN0IGMyID0gNDYxODQ1OTA3O1xuICB3aGlsZSAoaSA8IGJ5dGVzKSB7XG4gICAgazEgPSBrZXlbaV0gJiAyNTUgfCAoa2V5WysraV0gJiAyNTUpIDw8IDggfCAoa2V5WysraV0gJiAyNTUpIDw8IDE2IHwgKGtleVsrK2ldICYgMjU1KSA8PCAyNDtcbiAgICArK2k7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMSArICgoKGsxID4+PiAxNikgKiBjMSAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgazEgPSAoazEgJiA2NTUzNSkgKiBjMiArICgoKGsxID4+PiAxNikgKiBjMiAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICAgIGgxIF49IGsxO1xuICAgIGgxID0gaDEgPDwgMTMgfCBoMSA+Pj4gMTk7XG4gICAgaDFiID0gKGgxICYgNjU1MzUpICogNSArICgoKGgxID4+PiAxNikgKiA1ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgaDEgPSAoaDFiICYgNjU1MzUpICsgMjc0OTIgKyAoKChoMWIgPj4+IDE2KSArIDU4OTY0ICYgNjU1MzUpIDw8IDE2KTtcbiAgfVxuICBrMSA9IDA7XG4gIHN3aXRjaCAocmVtYWluZGVyKSB7XG4gICAgY2FzZSAzOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAyXSAmIDI1NSkgPDwgMTY7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSAyOiB7XG4gICAgICBrMSBePSAoa2V5W2kgKyAxXSAmIDI1NSkgPDwgODtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDE6IHtcbiAgICAgIGsxIF49IGtleVtpXSAmIDI1NTtcbiAgICAgIGsxID0gKGsxICYgNjU1MzUpICogYzEgKyAoKChrMSA+Pj4gMTYpICogYzEgJiA2NTUzNSkgPDwgMTYpICYgNDI5NDk2NzI5NTtcbiAgICAgIGsxID0gazEgPDwgMTUgfCBrMSA+Pj4gMTc7XG4gICAgICBrMSA9IChrMSAmIDY1NTM1KSAqIGMyICsgKCgoazEgPj4+IDE2KSAqIGMyICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gICAgICBoMSBePSBrMTtcbiAgICB9XG4gIH1cbiAgaDEgXj0ga2V5Lmxlbmd0aDtcbiAgaDEgXj0gaDEgPj4+IDE2O1xuICBoMSA9IChoMSAmIDY1NTM1KSAqIDIyNDY4MjI1MDcgKyAoKChoMSA+Pj4gMTYpICogMjI0NjgyMjUwNyAmIDY1NTM1KSA8PCAxNikgJiA0Mjk0OTY3Mjk1O1xuICBoMSBePSBoMSA+Pj4gMTM7XG4gIGgxID0gKGgxICYgNjU1MzUpICogMzI2NjQ4OTkwOSArICgoKGgxID4+PiAxNikgKiAzMjY2NDg5OTA5ICYgNjU1MzUpIDw8IDE2KSAmIDQyOTQ5NjcyOTU7XG4gIGgxIF49IGgxID4+PiAxNjtcbiAgcmV0dXJuIGgxID4+PiAwO1xufVxuZnVuY3Rpb24gY3JlYXRlQnVmZmVyKHZhbCkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZhbCk7XG59XG5cbmZ1bmN0aW9uIGlzRXF1YWwob2JqZWN0MSwgb2JqZWN0MiwgaGFzaE9wdGlvbnMgPSB7fSkge1xuICBpZiAob2JqZWN0MSA9PT0gb2JqZWN0Mikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmplY3RIYXNoKG9iamVjdDEsIGhhc2hPcHRpb25zKSA9PT0gb2JqZWN0SGFzaChvYmplY3QyLCBoYXNoT3B0aW9ucykpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGRpZmYob2JqMSwgb2JqMiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGgxID0gX3RvSGFzaGVkT2JqZWN0KG9iajEsIG9wdHMpO1xuICBjb25zdCBoMiA9IF90b0hhc2hlZE9iamVjdChvYmoyLCBvcHRzKTtcbiAgcmV0dXJuIF9kaWZmKGgxLCBoMiwgb3B0cyk7XG59XG5mdW5jdGlvbiBfZGlmZihoMSwgaDIsIG9wdHMgPSB7fSkge1xuICBjb25zdCBkaWZmcyA9IFtdO1xuICBjb25zdCBhbGxQcm9wcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtcbiAgICAuLi5PYmplY3Qua2V5cyhoMS5wcm9wcyB8fCB7fSksXG4gICAgLi4uT2JqZWN0LmtleXMoaDIucHJvcHMgfHwge30pXG4gIF0pO1xuICBpZiAoaDEucHJvcHMgJiYgaDIucHJvcHMpIHtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgYWxsUHJvcHMpIHtcbiAgICAgIGNvbnN0IHAxID0gaDEucHJvcHNbcHJvcF07XG4gICAgICBjb25zdCBwMiA9IGgyLnByb3BzW3Byb3BdO1xuICAgICAgaWYgKHAxICYmIHAyKSB7XG4gICAgICAgIGRpZmZzLnB1c2goLi4uX2RpZmYoaDEucHJvcHM/Lltwcm9wXSwgaDIucHJvcHM/Lltwcm9wXSwgb3B0cykpO1xuICAgICAgfSBlbHNlIGlmIChwMSB8fCBwMikge1xuICAgICAgICBkaWZmcy5wdXNoKFxuICAgICAgICAgIG5ldyBEaWZmRW50cnkoKHAyIHx8IHAxKS5rZXksIHAxID8gXCJyZW1vdmVkXCIgOiBcImFkZGVkXCIsIHAyLCBwMSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKGFsbFByb3BzLnNpemUgPT09IDAgJiYgaDEuaGFzaCAhPT0gaDIuaGFzaCkge1xuICAgIGRpZmZzLnB1c2gobmV3IERpZmZFbnRyeSgoaDIgfHwgaDEpLmtleSwgXCJjaGFuZ2VkXCIsIGgyLCBoMSkpO1xuICB9XG4gIHJldHVybiBkaWZmcztcbn1cbmZ1bmN0aW9uIF90b0hhc2hlZE9iamVjdChvYmosIG9wdHMsIGtleSA9IFwiXCIpIHtcbiAgaWYgKG9iaiAmJiB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIG5ldyBEaWZmSGFzaGVkT2JqZWN0KGtleSwgb2JqLCBvYmplY3RIYXNoKG9iaiwgb3B0cykpO1xuICB9XG4gIGNvbnN0IHByb3BzID0ge307XG4gIGNvbnN0IGhhc2hlcyA9IFtdO1xuICBmb3IgKGNvbnN0IF9rZXkgaW4gb2JqKSB7XG4gICAgcHJvcHNbX2tleV0gPSBfdG9IYXNoZWRPYmplY3QoXG4gICAgICBvYmpbX2tleV0sXG4gICAgICBvcHRzLFxuICAgICAga2V5ID8gYCR7a2V5fS4ke19rZXl9YCA6IF9rZXlcbiAgICApO1xuICAgIGhhc2hlcy5wdXNoKHByb3BzW19rZXldLmhhc2gpO1xuICB9XG4gIHJldHVybiBuZXcgRGlmZkhhc2hlZE9iamVjdChrZXksIG9iaiwgYHske2hhc2hlcy5qb2luKFwiOlwiKX19YCwgcHJvcHMpO1xufVxuY2xhc3MgRGlmZkVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB0eXBlLCBuZXdWYWx1ZSwgb2xkVmFsdWUpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubmV3VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB0aGlzLm9sZFZhbHVlID0gb2xkVmFsdWU7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9KU09OKCk7XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICBjYXNlIFwiYWRkZWRcIjoge1xuICAgICAgICByZXR1cm4gYEFkZGVkICAgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcInJlbW92ZWRcIjoge1xuICAgICAgICByZXR1cm4gYFJlbW92ZWQgXFxgJHt0aGlzLmtleX1cXGBgO1xuICAgICAgfVxuICAgICAgY2FzZSBcImNoYW5nZWRcIjoge1xuICAgICAgICByZXR1cm4gYENoYW5nZWQgXFxgJHt0aGlzLmtleX1cXGAgZnJvbSBcXGAke3RoaXMub2xkVmFsdWU/LnRvU3RyaW5nKCkgfHwgXCItXCJ9XFxgIHRvIFxcYCR7dGhpcy5uZXdWYWx1ZS50b1N0cmluZygpfVxcYGA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5jbGFzcyBEaWZmSGFzaGVkT2JqZWN0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY29uc3RydWN0b3JcbiAgY29uc3RydWN0b3Ioa2V5LCB2YWx1ZSwgaGFzaCwgcHJvcHMpIHtcbiAgICB0aGlzLmtleSA9IGtleTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5oYXNoID0gaGFzaDtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgaWYgKHRoaXMucHJvcHMpIHtcbiAgICAgIHJldHVybiBgeyR7T2JqZWN0LmtleXModGhpcy5wcm9wcykuam9pbihcIixcIil9fWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGsgPSB0aGlzLmtleSB8fCBcIi5cIjtcbiAgICBpZiAodGhpcy5wcm9wcykge1xuICAgICAgcmV0dXJuIGAke2t9KHske09iamVjdC5rZXlzKHRoaXMucHJvcHMpLmpvaW4oXCIsXCIpfX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2t9KCR7dGhpcy52YWx1ZX0pYDtcbiAgfVxufVxuXG5leHBvcnQgeyBkaWZmLCBoYXNoLCBpc0VxdWFsLCBtdXJtdXJIYXNoLCBvYmplY3RIYXNoLCBzaGEyNTYsIHNoYTI1NmJhc2U2NCB9O1xuIiwgImltcG9ydCB0eXBlIHsgUGFja2FnZU1hbmlmZXN0IH0gZnJvbSBcInF1ZXJ5LXJlZ2lzdHJ5XCI7XG5cbmNvbnN0IGdpdGh1YlVybFJlZ2V4ID1cbiAgLyg/OmdpdFxcKyk/aHR0cHM/OlxcL1xcL2dpdGh1YlxcLmNvbVxcLyhbXlxcL10rKVxcLyhbXlxcL10rKVxcLmdpdC87IC8vIFRPRE86IERvbid0IHRydXN0IHRoaXMsIGl0J3MgY2hhdGdiZCA6KVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE93bmVyQW5kUmVwbyhcbiAgcmVwb3NpdG9yeVVybDogc3RyaW5nLFxuKTogW3N0cmluZywgc3RyaW5nXSB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IHJlcG9zaXRvcnlVcmwubWF0Y2goZ2l0aHViVXJsUmVnZXgpO1xuXG4gIGlmIChtYXRjaCkge1xuICAgIHJldHVybiBbbWF0Y2hbMV0sIG1hdGNoWzJdXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJlcG9zaXRvcnkobWFuaWZlc3Q6IFBhY2thZ2VNYW5pZmVzdCkge1xuICByZXR1cm4gdHlwZW9mIG1hbmlmZXN0LnJlcG9zaXRvcnkgPT09IFwic3RyaW5nXCJcbiAgICA/IG1hbmlmZXN0LnJlcG9zaXRvcnlcbiAgICA6IG1hbmlmZXN0LnJlcG9zaXRvcnk/LnVybDtcbn1cblxuY29uc3QgY29tbWl0TGVuZ3RoID0gNztcblxuLypcbiAqIFwiMDllZmQwNTUzMzc0ZmY3ZDNlNjJiNzkzNzhlMzE4NGY1ZWI1NzU3MVwiID0+IFwiMDllZmQwNVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYmJyZXZpYXRlQ29tbWl0SGFzaChmdWxsSGFzaDogc3RyaW5nKSB7XG4gIHJldHVybiBmdWxsSGFzaC5zdWJzdHJpbmcoMCwgY29tbWl0TGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHVsbFJlcXVlc3QocmVmOiBzdHJpbmcpIHtcbiAgcmV0dXJuICFOdW1iZXIuaXNOYU4oTnVtYmVyKHJlZikpO1xufVxuXG5leHBvcnQgdHlwZSBDb21tZW50ID0gXCJvZmZcIiB8IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiXG4iLCAie1xuICBcIm5hbWVcIjogXCJwa2ctcHItbmV3XCIsXG4gIFwidmVyc2lvblwiOiBcIjAuMC4xM1wiLFxuICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXG4gIFwibWFpblwiOiBcImluZGV4LmpzXCIsXG4gIFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuICBcImJpblwiOiB7XG4gICAgXCJwa2ctcHItbmV3XCI6IFwiYmluL2NsaS5qc1wiXG4gIH0sXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJkZXZcIjogXCJ0c3VwIC0td2F0Y2hcIixcbiAgICBcImJ1aWxkXCI6IFwidHN1cFwiLFxuICAgIFwiYnVpbGQ6cHVibGlzaFwiOiBcIkFQSV9VUkw9aHR0cHM6Ly9wa2cucHIubmV3LyB0c3VwXCJcbiAgfSxcbiAgXCJrZXl3b3Jkc1wiOiBbXSxcbiAgXCJhdXRob3JcIjogXCJcIixcbiAgXCJsaWNlbnNlXCI6IFwiSVNDXCIsXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBqc2RldnRvb2xzL2V6LXNwYXduXCI6IFwiXjMuMC40XCIsXG4gICAgXCJAb2N0b2tpdC9hY3Rpb25cIjogXCJeNi4xLjBcIixcbiAgICBcImZhc3QtZ2xvYlwiOiBcIl4zLjMuMlwiLFxuICAgIFwiaWdub3JlXCI6IFwiXjUuMy4xXCIsXG4gICAgXCJpc2JpbmFyeWZpbGVcIjogXCJeNS4wLjJcIixcbiAgICBcInBrZy10eXBlc1wiOiBcIl4xLjEuMVwiLFxuICAgIFwicXVlcnktcmVnaXN0cnlcIjogXCJeMy4wLjFcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAcGtnLXByLW5ldy91dGlsc1wiOiBcIndvcmtzcGFjZTpeXCIsXG4gICAgXCJjaXR0eVwiOiBcIl4wLjEuNlwiLFxuICAgIFwidHN1cFwiOiBcIl44LjAuMlwiXG4gIH1cbn1cbiIsICJleHBvcnQgY29uc3QgY3JlYXRlRGVmYXVsdFRlbXBsYXRlID0gKFxuICBkZXBlbmRlbmNpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4pID0+ICh7XG4gIFwiaW5kZXguanNcIjogXCJcIixcbiAgXCJSRUFETUUubWRcIjogYFxuIyBEZWZhdWx0IFRlbXBsYXRlXG5cblRoaXMgaXMgYSB0ZW1wbGF0ZSB0aGF0IGxldmVyYWdlcyB0aGUgZXhwZXJpbWVudGFsIHRlbXBsYXRlcyBmZWF0dXJlIGluIHRoZSBcXGBwa2cucHIubmV3XFxgIHRvb2wuXG5cbiMjIE92ZXJ2aWV3XG5cblRlbXBsYXRlcyBhcmUgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgY3JlYXRpbmcgbGl2ZSwgaW50ZXJhY3RpdmUgZXhhbXBsZXMgb2YgeW91ciBwYWNrYWdlcywgd2hpY2ggY2FuIGJlIHZlcnkgYmVuZWZpY2lhbCBmb3IgYm90aCBkZXZlbG9wbWVudCBhbmQgZG9jdW1lbnRhdGlvbiBwdXJwb3Nlcy5cblxuQXMgYSB1c2VyLCB5b3UgY2FuIGNoZWNrIHRoZSBwYWNrYWdlLmpzb24gZmlsZSBhbmQgc2VlIHRoZSBuZXcgZ2VuZXJhdGVkIHBhY2thZ2VzISBZb3UgY2FuIGp1c3QgY29weSB0aG9zZSBhbmQgcHV0IHRoZW0gaW4geW91ciBwYWNrYWdlLmpzb24gb3IgaW5zdGFsbCB0aGVtIHdpdGggeW91ciBmYXZvcml0ZSBwYWNrYWdlIG1hbmFnZXIuXG5cbiR7T2JqZWN0LnZhbHVlcyhkZXBlbmRlbmNpZXMpXG4gIC5tYXAoXG4gICAgKHVybCkgPT4gYFxuXFxgXFxgXFxgc2hcbm5wbSBpICR7dXJsfVxuXFxgXFxgXFxgXG5gLFxuICApXG4gIC5qb2luKFwiXCIpfVxuXG4jIyBVc2FnZVxuXG5UbyB1c2UgdGhpcyBmZWF0dXJlIGFzIGEgbWFpbnRhaW5lciwgeW91IGNhbiBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuXG5cXGBcXGBcXGBzaFxubnB4IHBrZy1wci1uZXcgcHVibGlzaCAuL3BhY2thZ2VzL0EgLS10ZW1wbGF0ZSAuL2V4YW1wbGVzLypcblxcYFxcYFxcYFxuXG4jIyBCZW5lZml0c1xuXG4tIEludGVyYWN0aXZlIERlbW9zOiBBdXRvbWF0aWNhbGx5IGNyZWF0ZSBsaXZlIGRlbW9zIHRoYXQgdXNlcnMgY2FuIGludGVyYWN0IHdpdGggZGlyZWN0bHkgaW4gdGhlaXIgYnJvd3Nlci5cbi0gRW5oYW5jZWQgVGVzdGluZzogUXVpY2tseSBzcGluIHVwIGVudmlyb25tZW50cyB0byB0ZXN0IHlvdXIgcGFja2FnZSBpbiBkaWZmZXJlbnQgc2NlbmFyaW9zLlxuLSBJbXByb3ZlZCBTaGFyaW5nOiBFYXNpbHkgc2hhcmUgd29ya2luZyBleGFtcGxlcyBvZiB5b3VyIHBhY2thZ2Ugd2l0aCBjb2xsYWJvcmF0b3JzIG9yIHVzZXJzIHdpdGhvdXQgbmVlZGluZyB0aGVtIHRvIHNldCB1cCB0aGVpciBlbnZpcm9ubWVudC5cbmAsXG4gIFwicGFja2FnZS5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgdmVyc2lvbjogXCIxLjAuMFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiZ2VuZXJhdGVkIGJ5IHBrZy5wci5uZXdcIixcbiAgICAgIG1haW46IFwiaW5kZXguanNcIixcbiAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgIGtleXdvcmRzOiBbXSxcbiAgICAgIGF1dGhvcjogXCJwa2cucHIubmV3XCIsXG4gICAgICBsaWNlbnNlOiBcIklTQ1wiLFxuICAgIH0sXG4gICAgbnVsbCxcbiAgICAyLFxuICApLFxufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7OztBQXFFQSxTQUFTLFNBQVMsT0FBTztBQUN2QixTQUFPLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFDNUM7QUFDQSxTQUFTLE1BQU0sWUFBWUEsV0FBVSxZQUFZLEtBQUssUUFBUTtBQUM1RCxNQUFJ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TUFBSSxNQUFJLEtBQUssT0FBTyxJQUFFLEtBQUcsTUFBSSxFQUFFLElBQUUsTUFBSSxLQUFHLEtBQUcsS0FBSyxNQUFNLElBQUUsTUFBSSxDQUFDLElBQUUsSUFBRSxLQUFLLE1BQU0sSUFBRSxNQUFJLENBQUMsSUFBRSxLQUFLLE1BQU0sSUFBRSxNQUFJLENBQUMsR0FBRSxZQUFXLE1BQUUsR0FBRSxVQUFTLEVBQUMsT0FBTSxPQUFHO0FBQUMsVUFBTSxJQUFFLHlCQUF5QixLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFBRSxRQUFHLENBQUM7QUFBRSxhQUFPLENBQUMsR0FBRSxHQUFFLENBQUM7QUFBRSxRQUFHLENBQUMsQ0FBQyxJQUFFO0FBQUUsTUFBRSxXQUFTLE1BQUksSUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksT0FBRyxJQUFFLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFBRyxVQUFNQSxLQUFFLE9BQU8sU0FBUyxHQUFFLEVBQUU7QUFBRSxXQUFPLENBQUNBLE1BQUcsS0FBRyxLQUFJQSxNQUFHLElBQUUsS0FBSUEsS0FBRSxHQUFHO0FBQUEsRUFBQyxHQUFFLFlBQVcsTUFBRSxHQUFFLGNBQWEsRUFBQyxPQUFNLE9BQUcsRUFBRSxhQUFhLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFFLFlBQVcsTUFBRSxHQUFFLGVBQWMsRUFBQyxPQUFNLE9BQUc7QUFBQyxRQUFHLElBQUU7QUFBRSxhQUFPLEtBQUc7QUFBRSxRQUFHLElBQUU7QUFBRyxhQUFPLE1BQUksSUFBRTtBQUFHLFFBQUksR0FBRSxHQUFFQTtBQUFFLFFBQUcsS0FBRztBQUFJLFlBQUksSUFBRSxPQUFLLEtBQUcsS0FBRyxLQUFJLElBQUUsR0FBRUEsS0FBRTtBQUFBLFNBQU87QUFBQyxXQUFHO0FBQUcsWUFBTSxJQUFFLElBQUU7QUFBRyxVQUFFLEtBQUssTUFBTSxJQUFFLEVBQUUsSUFBRSxHQUFFLElBQUUsS0FBSyxNQUFNLElBQUUsQ0FBQyxJQUFFLEdBQUVBLEtBQUUsSUFBRSxJQUFFO0FBQUEsSUFBRTtB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QWlCO0FBRStVLElBQUksSUFBRSxDQUFDO0FBQVAsSUFBUyxJQUFFLEVBQUMsSUFBSSxVQUFTO0FBQUMsYUFBTztBQUFBLElBQUMsR0FBRSxJQUFJLFFBQVEsR0FBRTtBQUFDLFVBQUU7QUFBQSxJQUFFLEVBQUM7QUFBRSxLQUFDLFNBQVMsR0FBRTtBQUFDLFVBQUksSUFBRSxDQUFDO0FBQUUsUUFBRSxVQUFRLEdBQUUsRUFBRSxpQkFBZSxTQUFTLEdBQUU7QUFBQyxZQUFJSixLQUFFLEVBQUUsV0FBVyxDQUFDLEdBQUUsSUFBRSxFQUFFLFVBQVEsSUFBRSxFQUFFLFdBQVcsQ0FBQyxJQUFFLEdBQUUsSUFBRUE7QUFBRSxlQUFPLFNBQU9BLE1BQUdBLE1BQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxVQUFRQSxNQUFHLE1BQUssS0FBRyxNQUFLLElBQUVBLE1BQUcsS0FBRyxHQUFFLEtBQUcsUUFBTyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxRQUFNLE1BQUksS0FBRyxRQUFNLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxRQUFNLE1BQUksUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sU0FBTyxLQUFHLEtBQUcsU0FBTyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFNBQU8sVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxVQUFRLFVBQVEsS0FBRyxLQUFHLFVBQVEsVUFBUSxLQUFHLEtBQUcsVUFBUSxVQUFRLEtBQUcsS0FBRyxTQUFPLE1BQUksTUFBSSxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxTQUFPLEtBQUcsS0FBRyxTQUFPLFNBQU8sS0FBRyxLQUFHLFFBQU0sT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxLQUFHLE9BQUssS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxPQUFLLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssT0FBSyxLQUFHLEtBQUcsT0FBSyxPQUFLLEtBQUcsS0FBRyxPQUFLLE9BQUssS0FBRyxLQUFHLE9BQUssS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxLQUFHLFFBQU0sUUFBTSxLQUFHLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLEtBQUcsUUFBTSxRQUFNLEtBQUcsS0FBRyxRQUFNLFFBQU0sS0FBRyxLQUFHLFFBQU0sS0FBRyxRQUFNLEtBQUcsUUFB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LEdBQUUsT0FBTSxFQUFDLE9BQU0sQ0FBQyxJQUFHLEVBQUUsR0FBRSxLQUFJLENBQUMsSUFBRyxFQUFFLEdBQUUsT0FBTSxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxHQUFFLE1BQUssQ0FBQyxJQUFHLEVBQUUsR0FBRSxNQUFLLENBQUMsSUFBRyxFQUFFLEdBQUUsV0FBVSxDQUFDLElBQUcsRUFBRSxHQUFFLGFBQVksQ0FBQyxJQUFHLEVBQUUsR0FBRSxjQUFhLENBQUMsSUFBRyxFQUFFLEdBQUUsWUFBVyxDQUFDLElBQUcsRUFBRSxHQUFFLGVBQWMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxZQUFXLENBQUMsSUFBRyxFQUFFLEdBQUUsYUFBWSxDQUFDLElBQUcsRUFBRSxFQUFDLEdBQUUsU0FBUSxFQUFDLFNBQVEsQ0FBQyxJQUFHLEVBQUUsR0FBRSxPQUFNLENBQUMsSUFBRyxFQUFFLEdBQUUsU0FBUSxDQUFDLElBQUcsRUFBRSxHQUFFLFVBQVMsQ0FBQyxJQUFHLEVBQUUsR0FBRSxRQUFPLENBQUMsSUFBRyxFQUFFLEdBQUUsV0FBVSxDQUFDLElBQUcsRUFBRSxHQUFFLFFBQU8sQ0FBQyxJQUFHLEVBQUUsR0FBRSxTQUFRLENBQUMsSUFBRyxFQUFFLEdBQUUsZUFBYyxDQUFDLEtBQUksRUFBRSxHQUFFLFFBQU8sQ0FBQyxLQUFJLEVBQUUsR0FBRSxRQUFPLENBQUMsS0FBSSxFQUFFLEdBQUUsYUFBWSxDQUFDLEtBQUksRUFBRSxHQUFFLGVBQWMsQ0FBQyxLQUFJLEVBQUUsR0FBRSxnQkFBZSxDQUFDLEtBQUksRUFBRSxHQUFFLGNBQWEsQ0FBQyxLQUFJLEVBQUUsR0FBRSxpQkFBZ0IsQ0FBQyxLQUFJLEVBQUUsR0FBRSxjQUFhLENBQUMsS0FBSSxFQUFFLEdBQUUsZUFBYyxDQUFDLEtBQUksRUFBRSxFQUFDLEVBQUM7QUFBRSxXQUFPLEtBQUssRUFBRSxRQUFRO0FBQUUsSUFBTSxJQUFFLE9BQU8sS0FBSyxFQUFFLEtBQUs7QUFBM0IsSUFBNkIsSUFBRSxPQUFPLEtBQUssRUFBRSxPQUFPO0FBQUUsS0FBQyxHQUFHLEdBQUUsR0FBRyxDQUFDO0FBQW03QyxJQUFNLElBQUUsRUFBRTtBQUFWLElBQVksSUFBRSxvQkFBSSxJQUFJLENBQUMsUUFBTyxNQUFNLENBQUM7QUFBckMsSUFBdUMsSUFBRTtBQUF6QyxJQUE0QyxJQUFFO0FBQTlDLElBQXFELElBQUU7QUFBdkQsSUFBMkQsSUFBRTtBQUE3RCxJQUFpRSxJQUFFO0FBQW5FLElBQXVFLElBQUUsR0FBRyxDQUFDO0FBQTdFLElBQW1GLElBQUUsT0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQTlILElBQWlJLElBQUUsT0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBQTVLLElBQStLLElBQUUsT0FBRyxFQUFFLE1BQU0sR0FBRyxFQUFFLElBQUksT0FBRyxFQUFFLENBQUMsQ0FBQztBQUE1TSxJQUE4TSxJQUFFLENBQUMsR0FBRSxHQUFFLE1BQUk7QUFBQyxZQUFNLElBQUUsQ0FBQyxHQUFHLENBQUM7QUFBRSxVQUFJQSxLQUFFLE9BQUcsSUFBRSxPQUFHLElBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFPLENBQUMsQ0FBQyxDQUFDO0FBQUUsaUJBQVMsQ0FBQyxHQUFFLENBQUMsS0FBSSxFQUFFLFFBQVEsR0FBRTtBQUFDLGNBQU0sSUFBRSxFQUFFLENBQUM7QUFBRSxZQUFHLElBQUUsS0FBRyxJQUFFLEVBQUUsRUFBRSxTQUFPLENBQUMsS0FBRyxLQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUUsSUFBRSxJQUFHLEVBQUUsSUFBSSxDQUFDLE1BQUlBLEtBQUUsTUFBRyxJQUFFLEVBQUUsTUFBTSxJQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxXQUFXLENBQUMsSUFBR0EsSUFBRTtBQUFDLGNBQUUsTUFBSSxNQUFJQSxLQUFFLE9BQUcsSUFBRSxTQUFJLE1BQUksTUFBSUEsS0FBRTtBQUFJO0FBQUEsUUFBUTtBQUFDLGFBQUcsR0FBRSxNQUFJLEtBQUcsSUFBRSxFQUFFLFNBQU8sTUFBSSxFQUFFLEtBQUssRUFBRSxHQUFFLElBQUU7QUFBQSxNQUFHO0FBQUMsT0FBQyxLQUFHLEVBQUUsRUFBRSxTQUFPLENBQUMsRUFBRSxTQUFPLEtBQUcsRUFBRSxTQUFPLE1BQUksRUFBRSxFQUFFLFNBQU8sQ0FBQyxLQUFHLEVBQUUsSUFBSTtBQUFBLElBQUc7QUFBdGpCLElBQXdqQixLQUFHLE9BQUc7QUFBQyxZQUFNLElBQUUsRUFBRSxNQUFNLEdBQUc7QUFBRSxVQUFJLElBQUUsRUFBRTtBQUFPLGFBQUssSUFBRSxLQUFHLEVBQUUsRUFBRSxFQUFFLElBQUUsQ0FBQyxDQUFDLElBQUU7QUFBSTtBQUFJLGFBQU8sTUFBSSxFQUFFLFNBQU8sSUFBRSxFQUFFLE1BQU0sR0FBRSxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUU7QUFBQSxJQUFDO0FBQWpzQixJQUFtc0IsS0FBRyxDQUFDLEdBQUUsR0FBRSxJQUFFLENBQUMsTUFBSTtBQUFDLFVBQUcsRUFBRSxTQUFPLFNBQUksRUFBRSxLQUFLLE1BQUk7QUFBRyxlQUFPO0FBQUcsVUFBSSxJQUFFLElBQUdBLElBQUU7QUFBRSxZQUFNLElBQUUsRUFBRSxDQUFDO0FBQUUsVUFBSSxJQUFFLENBQUMsRUFBRTtBQUFFLGlCQUFTLENBQUMsR0FBRSxDQUFDLEtBQUksRUFBRSxNQUFNLEdBQUcsRUFBRSxRQUFRLEdBQUU7QUFBQyxVQUFFLFNBQU8sVUFBSyxFQUFFLEVBQUUsU0FBTyxDQUFDLElBQUUsRUFBRSxFQUFFLFNBQU8sQ0FBQyxFQUFFLFVBQVU7QUFBRyxZQUFJLElBQUUsRUFBRSxFQUFFLEVBQUUsU0FBTyxDQUFDLENBQUM7QUFBRSxZQUFHLE1BQUksTUFBSSxLQUFHLE1BQUksRUFBRSxhQUFXLFNBQUksRUFBRSxTQUFPLFdBQU0sRUFBRSxLQUFLLEVBQUUsR0FBRSxJQUFFLEtBQUksSUFBRSxLQUFHLEVBQUUsU0FBTyxXQUFNLEVBQUUsRUFBRSxTQUFPLENBQUMsS0FBRyxLQUFJLE9BQU0sRUFBRSxRQUFNLEVBQUUsQ0FBQyxJQUFFLEdBQUU7QUFBQyxnQkFBTSxJQUFFLElBQUUsR0FBRSxJQUFFLElBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQyxJQUFFLElBQUUsS0FBRyxDQUFDO0FBQUUsZUFBSyxPQUFPLEVBQUUsQ0FBQyxJQUFFLEtBQUcsQ0FBQyxJQUFFLEtBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRSxFQUFFLEdBQUUsR0FBRSxDQUFDO0FBQUU7QUFBQSxRQUFRO0FBQUMsWUFBRyxJQUFFLEVBQUUsQ0FBQyxJQUFFLEtBQUcsSUFBRSxLQUFHLEVBQUUsQ0FBQyxJQUFFLEdBQUU7QUFBQyxjQUFHLEVBQUUsYUFBVyxTQUFJLElBQUUsR0FBRTtBQUFDLGNBQUUsR0FBRSxHQUFFLENBQUM7QUFBRTtBQUFBLFVBQVE7QUFBQyxZQUFFLEtBQUssRUFBRTtBQUFBLFFBQUU7QUFBQyxZQUFHLElBQUUsRUFBRSxDQUFDLElBQUUsS0FBRyxFQUFFLGFBQVcsT0FBRztBQUFDLFlBQUUsR0FBRSxHQUFFLENBQUM7QUFBRTtBQUFBLFFBQVE7QUFBQyxVQUFFLEVBQUUsU0FBTyxDQUFDLEtBQUc7QUFBQSxNQUFFO0FBQUMsUUFBRSxTQUFPLFVBQUssSUFBRSxFQUFFLElBQUksT0FBRyxHQUFHLENBQUMsQ0FBQztBQUFHLFlBQU0sSUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLO0FBQUEsQ0FDbDN2QixDQUFDO0FBQUUsaUJBQVMsQ0FBQyxHQUFFLENBQUMsS0FBSSxFQUFFLFFBQVEsR0FBRTtBQUFDLFlBQUcsS0FBRyxHQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUU7QUFBQyxnQkFBSyxFQUFDLFFBQU8sRUFBQyxJQUFFLElBQUksT0FBTyxRQUFRLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBRyxFQUFDLFFBQU8sQ0FBQyxFQUFDO0FBQUUsY0FBRyxFQUFFLFNBQU8sUUFBTztBQUFDLGtCQUFNLElBQUUsT0FBTyxXQUFXLEVBQUUsSUFBSTtBQUFFLFlBQUFBLEtBQUUsTUFBSSxJQUFFLFNBQU87QUFBQSxVQUFFO0FBQU0sY0FBRSxRQUFNLFdBQVMsSUFBRSxFQUFFLElBQUksV0FBUyxJQUFFLFNBQU8sRUFBRTtBQUFBLFFBQUs7QUFBQyxjQUFNLElBQUUsRUFBRSxNQUFNLElBQUksT0FBT0EsRUFBQyxDQUFDO0FBQUUsVUFBRSxJQUFFLENBQUMsTUFBSTtBQUFBLEtBQzVVLE1BQUksS0FBRyxFQUFFLEVBQUUsSUFBR0EsTUFBRyxNQUFJLEtBQUcsRUFBRSxDQUFDLE1BQUksTUFBSTtBQUFBLE1BQ2xDQSxNQUFHLE1BQUksS0FBRyxFQUFFQSxFQUFDLElBQUcsTUFBSSxLQUFHLEVBQUUsQ0FBQztBQUFBLE1BQUk7QUFBQyxhQUFPO0FBQUEsSUFBQztBQUsyQyxJQUFNLElBQUUsT0FBTyxjQUFjO0FBQTRDLElBQU0sSUFBRSxvQkFBSSxJQUFJLENBQUMsQ0FBQyxLQUFJLElBQUksR0FBRSxDQUFDLEtBQUksTUFBTSxHQUFFLENBQUMsS0FBSSxNQUFNLEdBQUUsQ0FBQyxLQUFJLE9BQU8sQ0FBQyxDQUFDO0FBQXBFLElBQXNFLEtBQUcsb0JBQUksSUFBSSxDQUFDLE1BQUssUUFBTyxRQUFPLFNBQVEsU0FBUSxPQUFPLENBQUM7QUFBRSxJQUFNLElBQU4sTUFBTztBQUFBLE1BQUMsWUFBWSxFQUFDLFFBQU8sR0FBRSxPQUFNLElBQUUsT0FBTSxRQUFPLElBQUUsUUFBTyxHQUFHQSxHQUFDLEdBQUUsSUFBRSxNQUFHO0FBQUMsYUFBSyxTQUFPLE9BQUcsS0FBSyxVQUFRLEdBQUUsS0FBSyxRQUFNLFdBQVUsS0FBSyxRQUFNLElBQUcsS0FBSyxjQUFZLG9CQUFJLE9BQUksS0FBSyxhQUFXLElBQUcsS0FBSyxPQUFLQSxJQUFFLEtBQUssYUFBVyxLQUFLLFdBQVcsS0FBSyxJQUFJLEdBQUUsS0FBSyxRQUFNLEtBQUssTUFBTSxLQUFLLElBQUksR0FBRSxLQUFLLFNBQU8sS0FBSyxPQUFPLEtBQUssSUFBSSxHQUFFLEtBQUssVUFBUSxFQUFFLEtBQUssSUFBSSxHQUFFLEtBQUssU0FBTyxHQUFFLEtBQUssUUFBTSxHQUFFLEtBQUssU0FBTztBQUFBLE1BQUU7QUFBQSxNQUFDLFNBQVE7QUFBQyxjQUFNLElBQUUsSUFBSSxZQUFZLENBQUM7QUFBRSxlQUFPLEVBQUUsU0FBTyxDQUFDLEdBQUUsR0FBRUEsT0FBSTtBQUFDLGVBQUssV0FBUyxLQUFLLFFBQU0sS0FBSyxHQUFHLEtBQUssUUFBUSxPQUFNLEVBQUUsR0FBRSxLQUFLLFVBQVEsS0FBSyxHQUFHLFFBQU8sS0FBSyxLQUFLLFNBQVEsS0FBSyxLQUFLLElBQUdBLEdBQUU7QUFBQSxRQUFFLEdBQUUsS0FBSyxNQUFNLEtBQUssQ0FBQyxHQUFFLEtBQUssS0FBRyxFQUFFLGdCQUFnQixFQUFDLE9BQU0sS0FBSyxPQUFNLFFBQU8sR0FBRSxTQUFRLEdBQUUsUUFBTyxJQUFHLG1CQUFrQixHQUFFLENBQUMsR0FBRSxFQUFFLG1CQUFtQixLQUFLLE9BQU0sS0FBSyxFQUFFLEdBQUUsS0FBSyxHQUFHLE9BQU8sR0FBRSxLQUFLLEtBQUssaUJBQWUsVUFBUSxLQUFLLFVBQVEsS0FBSyxHQUFHLE1BQU0sS0FBSyxLQUFLLFlBQVksR0FBRSxLQUFLLE1BQU0sR0FBRyxZQUFXLEtBQUssVUFBVSxHQUFFLEVBQUUsS0FBSyxPQUFNLElBQUUsR0FBRSxLQUFLLE9BQU8sR0FBRyxVQUFTLEtBQUssTUFBTSxHQUFFLEtBQUssT0FBTyxHQUFFLElBQUksUUFBUSxDQUFDLEdBQUUsTUFBSTtBQUFDLGVBQUssS0FBSyxVQUFTLE1BQUk7QUFBQyxpQkFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLElBQUksR0FBRSxLQUFLLE9BQU8sSUFBSSxVQUFTLEtBQUssTUFBTSxHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRSxFQUFFLEtBQUssS0FBSztBQUFBLFVBQUUsQ0FBQyxHQUFFLEtBQUssS0FBSyxVQUFTLE1BQUk7QUFBQyxpQkFBSyxPQUFPLE1BQU0sSUFBSSxPQUFPLElBQUksR0FBRSxLQUFLLE9BQU8sSUFBSSxVQUFTLEtBQUssTUFBTSxHQUFFLEVBQUUsS0FBSyxPQUFNLEtBQUUsR0FBRSxFQUFFLENBQUM7QUFBQSxVQUFFLENBQUM7QUFBQSxRQUFFLENBQUM7QUFBQSxNQUFDO0FBQUEsTUFBQyxHQUFHLEdBQUUsR0FBRTtBQUFDLGNBQU0sSUFBRSxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUcsQ0FBQztBQUFFLFVBQUUsS0FBSyxFQUFDLElBQUcsRUFBQyxDQUFDLEdBQUUsS0FBSyxZQUFZLElBQUksR0FBRSxDQUFDO0FBQUEsTUFBRTtBQUFBLE1BQUMsS0FBSyxHQUFFLEdBQUU7QUFBQyxjQUFNLElBQUUsS0FBSyxZQUFZLElBQUksQ0FBQyxLQUFHLENBQUM7QUFBRSxVQUFFLEtBQUssRUFBQyxJQUFHLEdBQUUsTUFBSyxLQUFFLENBQUMsR0FBRSxLQUFLLFlBQVksSUFBSSxHQUFFLENBQUM7QUFBQSxNQUFFO0FBQUEsTUFBQyxLQUFLLE1BQUssR0FBRTtBQUFDLGNBQU0sSUFBRSxLQUFLLFlBQVksSUFBSSxDQUFDLEtBQUcsQ0FBQyxHQUFFQSxLQUFFLENBQUM7QUFBRSxtQkFBVSxLQUFLO0FBQUUsWUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFFLEVBQUUsUUFBTUEsR0FBRSxLQUFLLE1BQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUUsQ0FBQyxDQUFDO0FBQUUsbUJBQVUsS0FBS0E7QUFBRSxZQUFFO0FBQUEsTUFBRTtBQUFBLE1BQUMsY0FBYTtBQUFDLGFBQUssWUFBWSxNQUFNO0FBQUEsTUFBRTtBQUFBLE1BQUMsV0FBVyxHQUFF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QVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFVBQ3JDLFVBQVcsYUFBYSxhQUFhLFFBQVU7QUFDbEQsaUJBQU87QUFBQSxRQUNUO0FBQ0EsWUFBSyxNQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLFNBQVUsYUFBYSxhQUFhLFNBQ3BDLFNBQVUsYUFBYSxhQUFhLE9BQVM7QUFDaEQsaUJBQU87QUFBQSxRQUNUO0FBQ0EsWUFBSyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFDVixPQUFVLGFBQWEsYUFBYSxPQUNwQyxPQUFVLGFBQ1YsT0FBVSxhQUNWLE9BQVUsYUFBYSxhQUFhLE9BQ3BDLE9BQVUsYUFDVixPQUFVLGFBQ1YsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsT0FBVSxhQUFhLGFBQWEsT0FDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFBYSxhQUFhLFFBQ3BDLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUFhLGFBQWEsUUFDcEMsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQ1YsUUFBVSxhQUNWLFFBQVUsYUFDVixRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEsYUFBYSxRQUNwQyxRQUFVLGFBQWEs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QixhQUFxQjtBQUNwRCxNQUFJO0FBRUosTUFBSTtBQUNGLGVBQVcsTUFBTSxtQkFBbUIsV0FBVztBQUFBLEVBQ2pELFFBQVE7QUFDTixVQUFNLElBQUk7QUFBQSxNQUNSLDZCQUE2QixXQUFXO0FBQUE7QUFBQSxJQUUxQztBQUFBLEVBQ0Y7QUFFQSxRQUFNLGNBQWM7QUFBQTtBQUdwQixRQUFNLGFBQWEsa0JBQWtCLFFBQVE7QUFDN0MsTUFBSSxDQUFDLFlBQVk7QUFDZixVQUFNLElBQUk7QUFBQSxNQUNSLDBEQUEwRCxXQUFXO0FBQUEsRUFDekUsV0FBVztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsUUFBTSxRQUFRLG9CQUFvQixVQUFVO0FBQzVDLE1BQUksQ0FBQyxPQUFPO0FBQ1YsVUFBTSxJQUFJO0FBQUEsTUFDUiwrREFBK0QsV0FBVyxxQkFBcUIsVUFBVTtBQUFBLEVBQzdHLFdBQVc7QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUNGO0FBRUEsZUFBZSxlQUFlQSxJQUFXO0FBQ3ZDLE1BQUk7QUFDRixVQUFNLEdBQUcsT0FBTyxLQUFLLFFBQVFBLElBQUcsY0FBYyxHQUFHLEdBQUcsVUFBVSxJQUFJO0FBQ2xFLFdBQU87QUFBQSxFQUNULFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUNGOyIsCiAgIm5hbWVzIjogWyJkZWZhdWx0cyIsICJwIiwgImMiLCAibCIsICJ0ZXh0IiwgInMiLCAidHR5IiwgImlzQ29sb3JTdXBwb3J0ZWQiLCAicmVwbGFjZUNsb3NlIiwgImNyZWF0ZUNvbG9ycyIsICJjIiwgImVudiIsICJhbnNpUmVnZXgiLCAic3RyaXBBbnNpIiwgIl8iLCAibSIsICJnZXRDb2xvciIsICJjcmVhdGVDb25zb2xhIiwgImlzQ0kiLCAidW5pY29kZSIsICJzIiwgInRleHQiLCAiYyIsICJsIiwgImMiLCAicCIsICJqIiwgImRlZmF1bHRzIiwgInJlZ2V4IiwgImYiLCAiaiIsICJIIiwgIksiLCAiVyIsICJNIiwgIkgyIiwgImIiLCAiYyIsICJnIiwgImgiLCAicCIsICJzdGRvdXQiXQp9Cg==