@flogeez/angular-tiptap-editor 3.2.1 → 3.3.0

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.
@@ -97,28 +97,29 @@ export const AteResizableImage = Node.create({
97
97
  },
98
98
  addNodeView() {
99
99
  return ({ node, getPos, editor }) => {
100
+ let currentNode = node;
100
101
  const wrapper = document.createElement("div");
101
102
  wrapper.className = "resizable-image-wrapper";
102
103
  wrapper.style.display = "block";
103
- if (node.attrs["textAlign"]) {
104
- wrapper.style.textAlign = node.attrs["textAlign"];
105
- wrapper.setAttribute("data-align", node.attrs["textAlign"]);
104
+ if (currentNode.attrs["textAlign"]) {
105
+ wrapper.style.textAlign = currentNode.attrs["textAlign"];
106
+ wrapper.setAttribute("data-align", currentNode.attrs["textAlign"]);
106
107
  }
107
108
  const container = document.createElement("div");
108
109
  container.className = "resizable-image-container";
109
110
  container.style.position = "relative";
110
111
  container.style.display = "inline-block";
111
112
  const img = document.createElement("img");
112
- img.src = node.attrs["src"];
113
- img.alt = node.attrs["alt"] || "";
114
- img.title = node.attrs["title"] || "";
113
+ img.src = currentNode.attrs["src"];
114
+ img.alt = currentNode.attrs["alt"] || "";
115
+ img.title = currentNode.attrs["title"] || "";
115
116
  img.className = "ate-image";
116
117
  img.style.display = "inline-block"; // Ensure it respects container text-align
117
- if (node.attrs["width"]) {
118
- img.width = node.attrs["width"];
118
+ if (currentNode.attrs["width"]) {
119
+ img.width = currentNode.attrs["width"];
119
120
  }
120
- if (node.attrs["height"]) {
121
- img.height = node.attrs["height"];
121
+ if (currentNode.attrs["height"]) {
122
+ img.height = currentNode.attrs["height"];
122
123
  }
123
124
  wrapper.appendChild(container);
124
125
  container.appendChild(img);
@@ -165,9 +166,13 @@ export const AteResizableImage = Node.create({
165
166
  startX = e.clientX;
166
167
  // Use current image dimensions instead of initial ones
167
168
  startWidth =
168
- parseInt(img.getAttribute("width") || "0") || node.attrs["width"] || img.naturalWidth;
169
+ parseInt(img.getAttribute("width") || "0") ||
170
+ currentNode.attrs["width"] ||
171
+ img.naturalWidth;
169
172
  startHeight =
170
- parseInt(img.getAttribute("height") || "0") || node.attrs["height"] || img.naturalHeight;
173
+ parseInt(img.getAttribute("height") || "0") ||
174
+ currentNode.attrs["height"] ||
175
+ img.naturalHeight;
171
176
  // Add resizing class to body
172
177
  document.body.classList.add("resizing");
173
178
  const handleMouseMove = (e) => {
@@ -205,7 +210,7 @@ export const AteResizableImage = Node.create({
205
210
  const finalHeight = parseInt(img.getAttribute("height") || "0");
206
211
  if (finalWidth && finalHeight) {
207
212
  editor.view.dispatch(editor.view.state.tr.setNodeMarkup(pos, undefined, {
208
- ...node.attrs,
213
+ ...currentNode.attrs,
209
214
  width: finalWidth,
210
215
  height: finalHeight,
211
216
  }));
@@ -246,6 +251,7 @@ export const AteResizableImage = Node.create({
246
251
  if (updatedNode.type.name !== "resizableImage") {
247
252
  return false;
248
253
  }
254
+ currentNode = updatedNode;
249
255
  img.src = updatedNode.attrs["src"];
250
256
  img.alt = updatedNode.attrs["alt"] || "";
251
257
  img.title = updatedNode.attrs["title"] || "";
@@ -274,4 +280,4 @@ export const AteResizableImage = Node.create({
274
280
  };
275
281
  },
276
282
  });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXJlc2l6YWJsZS1pbWFnZS5leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9leHRlbnNpb25zL2F0ZS1yZXNpemFibGUtaW1hZ2UuZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQTZCcEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBMkI7SUFDckUsSUFBSSxFQUFFLGdCQUFnQjtJQUV0QixVQUFVO1FBQ1IsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLO1lBQ2IsV0FBVyxFQUFFLEtBQUs7WUFDbEIsY0FBYyxFQUFFLEVBQUU7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTLEVBQUUsSUFBSTtJQUVmLGFBQWE7UUFDWCxPQUFPO1lBQ0wsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxJQUFJO2FBQ2Q7WUFDRCxHQUFHLEVBQUU7Z0JBQ0gsT0FBTyxFQUFFLElBQUk7YUFDZDtZQUNELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtvQkFDbkIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFD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QVksQ0FBQyxDQUFDO29CQUN4QyxDQUFDO29CQUVELE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7b0JBQzFCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO29CQUMzQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzlDLENBQUM7Z0JBQ0QsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7YUFDM0IsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb2RlLCBtZXJnZUF0dHJpYnV0ZXMsIG5vZGVJbnB1dFJ1bGUgfSBmcm9tIFwiQHRpcHRhcC9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXRlUmVzaXphYmxlSW1hZ2VPcHRpb25zIHtcbiAgaW5saW5lOiBib29sZWFuO1xuICBhbGxvd0Jhc2U2NDogYm9vbGVhbjtcbiAgSFRNTEF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5kZWNsYXJlIG1vZHVsZSBcIkB0aXB0YXAvY29yZVwiIHtcbiAgaW50ZXJmYWNlIENvbW1hbmRzPFJldHVyblR5cGU+IHtcbiAgICByZXNpemFibGVJbWFnZToge1xuICAgICAgc2V0UmVzaXphYmxlSW1hZ2U6IChvcHRpb25zOiB7XG4gICAgICAgIHNyYzogc3RyaW5nO1xuICAgICAgICBhbHQ/OiBzdHJpbmc7XG4gICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICB3aWR0aD86IG51bWJlcjtcbiAgICAgICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgICAgfSkgPT4gUmV0dXJuVHlwZTtcbiAgICAgIHVwZGF0ZVJlc2l6YWJsZUltYWdlOiAob3B0aW9uczoge1xuICAgICAgICBzcmM/OiBzdHJpbmc7XG4gICAgICAgIGFsdD86IHN0cmluZztcbiAgICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICAgIHdpZHRoPzogbnVtYmVyO1xuICAgICAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgICB9KSA9PiBSZXR1cm5UeXBlO1xuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEF0ZVJlc2l6YWJsZUltYWdlID0gTm9kZS5jcmVhdGU8QXRlUmVzaXphYmxlSW1hZ2VPcHRpb25zPih7XG4gIG5hbWU6IFwicmVzaXphYmxlSW1hZ2VcIixcblxuICBhZGRPcHRpb25zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBpbmxpbmU6IGZhbHNlLFxuICAgICAgYWxsb3dCYXNlNjQ6IGZhbHNlLFxuICAgICAgSFRNTEF0dHJpYnV0ZXM6IHt9LFxuICAgIH07XG4gIH0sXG5cbiAgaW5saW5lKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaW5saW5lO1xuICB9LFxuXG4gIGdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaW5saW5lID8gXCJpbmxpbmVcIiA6IFwiYmxvY2tcIjtcbiAgfSxcblxuICBkcmFnZ2FibGU6IHRydWUsXG5cbiAgYWRkQXR0cmlidXRlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3JjOiB7XG4gICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICB9LFxuICAgICAgYWx0OiB7XG4gICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICB9LFxuICAgICAgdGl0bGU6IHtcbiAgICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgIH0sXG4gICAgICB3aWR0aDoge1xuICAgICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgICBwYXJzZUhUTUw6IGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiKTtcbiAgICAgICAgICByZXR1cm4gd2lkdGggPyBwYXJzZUludCh3aWR0aCwgMTApIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVySFRNTDogYXR0cmlidXRlcyA9PiB7XG4gICAgICAgICAgaWYgKCFhdHRyaWJ1dGVzW1wid2lkdGhcIl0pIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdHRyaWJ1dGVzW1wid2lkdGhcIl0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBoZWlnaHQ6IHtcbiAgICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgICAgcGFyc2VIVE1MOiBlbGVtZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcImhlaWdodFwiKTtcbiAgICAgICAgICByZXR1cm4gaGVpZ2h0ID8gcGFyc2VJbnQoaGVpZ2h0LCAxMCkgOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXJIVE1MOiBhdHRyaWJ1dGVzID0+IHtcbiAgICAgICAgICBpZiAoIWF0dHJpYnV0ZXNbXCJoZWlnaHRcIl0pIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodDogYXR0cmlidXRlc1tcImhlaWdodFwiXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9LFxuXG4gIHBhcnNlSFRNTCgpIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0YWc6IFwiaW1nW3NyY11cIixcbiAgICAgIH0sXG4gICAgXTtcbiAgfSxcblxuICByZW5kZXJIVE1MKHsgSFRNTEF0dHJpYnV0ZXMgfSkge1xuICAgIHJldHVybiBbXCJpbWdcIiwgbWVyZ2VBdHRyaWJ1dGVzKHRoaXMub3B0aW9ucy5IVE1MQXR0cmlidXRlcywgSFRNTEF0dHJpYnV0ZXMpXTtcbiAgfSxcblxuICBhZGRDb21tYW5kcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2V0UmVzaXphYmxlSW1hZ2U6XG4gICAgICAgIG9wdGlvbnMgPT5cbiAgICAgICAgKHsgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBjb21tYW5kcy5pbnNlcnRDb250ZW50KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICAgIGF0dHJzOiBvcHRpb25zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB1cGRhdGVSZXNpemFibGVJbWFnZTpcbiAgICAgICAgb3B0aW9ucyA9PlxuICAgICAgICAoeyBjb21tYW5kcyB9KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXModGhpcy5uYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfSxcbiAgICB9O1xuICB9LFxuXG4gIGFkZElucHV0UnVsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5vZGVJbnB1dFJ1bGUoe1xuICAgICAgICBmaW5kOiAvIVxcWyguK3w6PyldXFwoKFxcUyspKD86KD86XFxzKylbXCInXShcXFMrKVtcIiddKT9cXCkvLFxuICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIGdldEF0dHJpYnV0ZXM6IG1hdGNoID0+IHtcbiAgICAgICAgICBjb25zdCBbLCBhbHQsIHNyYywgdGl0bGVdID0gbWF0Y2g7XG4gICAgICAgICAgcmV0dXJuIHsgc3JjLCBhbHQsIHRpdGxlIH07XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdO1xuICB9LFxuXG4gIGFkZE5vZGVWaWV3KCkge1xuICAgIHJldHVybiAoeyBub2RlLCBnZXRQb3MsIGVkaXRvciB9KSA9PiB7XG4gICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgIHdyYXBwZXIuY2xhc3NOYW1lID0gXCJyZXNpemFibGUtaW1hZ2Utd3JhcHBlclwiO1xuICAgICAgd3JhcHBlci5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xuICAgICAgaWYgKG5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl0pIHtcbiAgICAgICAgd3JhcHBlci5zdHlsZS50ZXh0QWxpZ24gPSBub2RlLmF0dHJzW1widGV4dEFsaWduXCJdO1xuICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZShcImRhdGEtYWxpZ25cIiwgbm9kZS5hdHRyc1tcInRleHRBbGlnblwiXSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gXCJyZXNpemFibGUtaW1hZ2UtY29udGFpbmVyXCI7XG4gICAgICBjb250YWluZXIuc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG4gICAgICBjb250YWluZXIuc3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7XG5cbiAgICAgIGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIik7XG4gICAgICBpbWcuc3JjID0gbm9kZS5hdHRyc1tcInNyY1wiXTtcbiAgICAgIGltZy5hbHQgPSBub2RlLmF0dHJzW1wiYWx0XCJdIHx8IFwiXCI7XG4gICAgICBpbWcudGl0bGUgPSBub2RlLmF0dHJzW1widGl0bGVcIl0gfHwgXCJcIjtcbiAgICAgIGltZy5jbGFzc05hbWUgPSBcImF0ZS1pbWFnZVwiO1xuICAgICAgaW1nLnN0eWxlLmRpc3BsYXkgPSBcImlubGluZS1ibG9ja1wiOyAvLyBFbnN1cmUgaXQgcmVzcGVjdHMgY29udGFpbmVyIHRleHQtYWxpZ25cblxuICAgICAgaWYgKG5vZGUuYXR0cnNbXCJ3aWR0aFwiXSkge1xuICAgICAgICBpbWcud2lkdGggPSBub2RlLmF0dHJzW1wid2lkdGhcIl07XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5hdHRyc1tcImhlaWdodFwiXSkge1xuICAgICAgICBpbWcuaGVpZ2h0ID0gbm9kZS5hdHRyc1tcImhlaWdodFwiXTtcbiAgICAgIH1cblxuICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGltZyk7XG5cbiAgICAgIC8vIEFsbG93IHNlbGVjdGlvbiBpbiByZWFkLW9ubHkgbW9kZSB0byBzaG93IGJ1YmJsZSBtZW51L2Rvd25sb2FkXG4gICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICBpZiAoIWVkaXRvci5pc0VkaXRhYmxlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgY29uc3QgcG9zID0gZ2V0UG9zKCk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBwb3MgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGVkaXRvci5jb21tYW5kcy5zZXROb2RlU2VsZWN0aW9uKHBvcyk7XG4gICAgICAgICAgICBlZGl0b3Iudmlldy5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFkZCBtb2Rlcm4gcmVzaXplIGNvbnRyb2xzXG4gICAgICBjb25zdCByZXNpemVDb250cm9scyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICByZXNpemVDb250cm9scy5jbGFzc05hbWUgPSBcInJlc2l6ZS1jb250cm9sc1wiO1xuXG4gICAgICAvLyBDcmVhdGUgMiBoYW5kbGVzIChzaWRlcyBvbmx5KSBmb3IgYSBtaW5pbWFsaXN0IFVJXG4gICAgICBjb25zdCBoYW5kbGVzID0gW1wid1wiLCBcImVcIl07XG4gICAgICBoYW5kbGVzLmZvckVhY2goZGlyZWN0aW9uID0+IHtcbiAgICAgICAgY29uc3QgaGFuZGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgaGFuZGxlLmNsYXNzTmFtZSA9IGByZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtJHtkaXJlY3Rpb259YDtcbiAgICAgICAgaGFuZGxlLnNldEF0dHJpYnV0ZShcImRhdGEtZGlyZWN0aW9uXCIsIGRpcmVjdGlvbik7XG4gICAgICAgIHJlc2l6ZUNvbnRyb2xzLmFwcGVuZENoaWxkKGhhbmRsZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gQXR0YWNoIGNvbnRyb2xzIHRvIGNvbnRhaW5lclxuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHJlc2l6ZUNvbnRyb2xzKTtcblxuICAgICAgLy8gVmFyaWFibGVzIGZvciByZXNpemluZ1xuICAgICAgbGV0IGlzUmVzaXppbmcgPSBmYWxzZTtcbiAgICAgIGxldCBzdGFydFggPSAwO1xuICAgICAgbGV0IHN0YXJ0V2lkdGggPSAwO1xuICAgICAgbGV0IHN0YXJ0SGVpZ2h0ID0gMDtcbiAgICAgIGxldCBhc3BlY3RSYXRpbyA9IDE7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSBhc3BlY3QgcmF0aW9cbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGFzcGVjdFJhdGlvID0gaW1nLm5hdHVyYWxXaWR0aCAvIGltZy5uYXR1cmFsSGVpZ2h0O1xuICAgICAgfTtcblxuICAgICAgLy8gUmVzaXppbmcgbG9naWNcbiAgICAgIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChlOiBNb3VzZUV2ZW50LCBkaXJlY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaXNSZXNpemluZyA9IHRydWU7XG4gICAgICAgIHN0YXJ0WCA9IGUuY2xpZW50WDtcblxuICAgICAgICAvLyBVc2UgY3VycmVudCBpbWFnZSBkaW1lbnNpb25zIGluc3RlYWQgb2YgaW5pdGlhbCBvbmVzXG4gICAgICAgIHN0YXJ0V2lkdGggPVxuICAgICAgICAgIHBhcnNlSW50KGltZy5nZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiKSB8fCBcIjBcIikgfHwgbm9kZS5hdHRyc1tcIndpZHRoXCJdIHx8IGltZy5uYXR1cmFsV2lkdGg7XG4gICAgICAgIHN0YXJ0SGVpZ2h0ID1cbiAgICAgICAgICBwYXJzZUludChpbWcuZ2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIpIHx8IFwiMFwiKSB8fCBub2RlLmF0dHJzW1wiaGVpZ2h0XCJdIHx8IGltZy5uYXR1cmFsSGVpZ2h0O1xuXG4gICAgICAgIC8vIEFkZCByZXNpemluZyBjbGFzcyB0byBib2R5XG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcInJlc2l6aW5nXCIpO1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZU1vdXNlTW92ZSA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKCFpc1Jlc2l6aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVsdGFYID0gZS5jbGllbnRYIC0gc3RhcnRYO1xuXG4gICAgICAgICAgbGV0IG5ld1dpZHRoID0gc3RhcnRXaWR0aDtcbiAgICAgICAgICBsZXQgbmV3SGVpZ2h0ID0gc3RhcnRIZWlnaHQ7XG5cbiAgICAgICAgICAvLyBSZXNpemUgYWNjb3JkaW5nIHRvIGRpcmVjdGlvblxuICAgICAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIFwiZVwiOlxuICAgICAgICAgICAgICBuZXdXaWR0aCA9IHN0YXJ0V2lkdGggKyBkZWx0YVg7XG4gICAgICAgICAgICAgIG5ld0hlaWdodCA9IG5ld1dpZHRoIC8gYXNwZWN0UmF0aW87XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIndcIjpcbiAgICAgICAgICAgICAgbmV3V2lkdGggPSBzdGFydFdpZHRoIC0gZGVsdGFYO1xuICAgICAgICAgICAgICBuZXdIZWlnaHQgPSBuZXdXaWR0aCAvIGFzcGVjdFJhdGlvO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBMaW1pdHNcbiAgICAgICAgICBuZXdXaWR0aCA9IE1hdGgubWF4KDUwLCBNYXRoLm1pbigyMDAwLCBuZXdXaWR0aCkpO1xuICAgICAgICAgIG5ld0hlaWdodCA9IE1hdGgubWF4KDUwLCBNYXRoLm1pbigyMDAwLCBuZXdIZWlnaHQpKTtcblxuICAgICAgICAgIC8vIFVwZGF0ZSBpbWFnZSBhdHRyaWJ1dGVzIGRpcmVjdGx5XG4gICAgICAgICAgaW1nLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsIE1hdGgucm91bmQobmV3V2lkdGgpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIGltZy5zZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIiwgTWF0aC5yb3VuZChuZXdIZWlnaHQpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGhhbmRsZU1vdXNlVXAgPSAoKSA9PiB7XG4gICAgICAgICAgaXNSZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZShcInJlc2l6aW5nXCIpO1xuXG4gICAgICAgICAgLy8gVXBkYXRlIFRpcHRhcCBub2RlIHdpdGggbmV3IGRpbWVuc2lvbnMgYXQgdGhlIHNwZWNpZmljIHBvc2l0aW9uXG4gICAgICAgICAgY29uc3QgcG9zID0gdHlwZW9mIGdldFBvcyA9PT0gXCJmdW5jdGlvblwiID8gZ2V0UG9zKCkgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHR5cGVvZiBwb3MgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsV2lkdGggPSBwYXJzZUludChpbWcuZ2V0QXR0cmlidXRlKFwid2lkdGhcIikgfHwgXCIwXCIpO1xuICAgICAgICAgICAgY29uc3QgZmluYWxIZWlnaHQgPSBwYXJzZUludChpbWcuZ2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIpIHx8IFwiMFwiKTtcblxuICAgICAgICAgICAgaWYgKGZpbmFsV2lkdGggJiYgZmluYWxIZWlnaHQpIHtcbiAgICAgICAgICAgICAgZWRpdG9yLnZpZXcuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgZWRpdG9yLnZpZXcuc3RhdGUudHIuc2V0Tm9kZU1hcmt1cChwb3MsIHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgICAgICAgLi4ubm9kZS5hdHRycyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiBmaW5hbFdpZHRoLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBmaW5hbEhlaWdodCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBoYW5kbGVNb3VzZVVwKTtcbiAgICAgICAgfTtcblxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIGhhbmRsZU1vdXNlTW92ZSk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGhhbmRsZU1vdXNlVXApO1xuICAgICAgfTtcblxuICAgICAgLy8gQWRkIGV2ZW50cyB0byBoYW5kbGVzXG4gICAgICByZXNpemVDb250cm9scy5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIGUgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoXCJyZXNpemUtaGFuZGxlXCIpKSB7XG4gICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gdGFyZ2V0LmdldEF0dHJpYnV0ZShcImRhdGEtZGlyZWN0aW9uXCIpO1xuICAgICAgICAgIGlmIChkaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGhhbmRsZU1vdXNlRG93bihlLCBkaXJlY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIFByb3BlciBzZWxlY3Rpb24gbWFuYWdlbWVudCB2aWEgUHJvc2VNaXJyb3IgbGlmZWN5Y2xlXG4gICAgICBjb25zdCBzZWxlY3ROb2RlID0gKCkgPT4ge1xuICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgaW1nLmNsYXNzTGlzdC5hZGQoXCJzZWxlY3RlZFwiKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGRlc2VsZWN0Tm9kZSA9ICgpID0+IHtcbiAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QucmVtb3ZlKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIGltZy5jbGFzc0xpc3QucmVtb3ZlKFwic2VsZWN0ZWRcIik7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb206IHdyYXBwZXIsXG4gICAgICAgIHNlbGVjdE5vZGUsXG4gICAgICAgIGRlc2VsZWN0Tm9kZSxcbiAgICAgICAgdXBkYXRlOiB1cGRhdGVkTm9kZSA9PiB7XG4gICAgICAgICAgaWYgKHVwZGF0ZWROb2RlLnR5cGUubmFtZSAhPT0gXCJyZXNpemFibGVJbWFnZVwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaW1nLnNyYyA9IHVwZGF0ZWROb2RlLmF0dHJzW1wic3JjXCJdO1xuICAgICAgICAgIGltZy5hbHQgPSB1cGRhdGVkTm9kZS5hdHRyc1tcImFsdFwiXSB8fCBcIlwiO1xuICAgICAgICAgIGltZy50aXRsZSA9IHVwZGF0ZWROb2RlLmF0dHJzW1widGl0bGVcIl0gfHwgXCJcIjtcblxuICAgICAgICAgIGlmICh1cGRhdGVkTm9kZS5hdHRyc1tcIndpZHRoXCJdKSB7XG4gICAgICAgICAgICBpbWcud2lkdGggPSB1cGRhdGVkTm9kZS5hdHRyc1tcIndpZHRoXCJdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXBkYXRlZE5vZGUuYXR0cnNbXCJoZWlnaHRcIl0pIHtcbiAgICAgICAgICAgIGltZy5oZWlnaHQgPSB1cGRhdGVkTm9kZS5hdHRyc1tcImhlaWdodFwiXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXBkYXRlZE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl0pIHtcbiAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUudGV4dEFsaWduID0gdXBkYXRlZE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl07XG4gICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZShcImRhdGEtYWxpZ25cIiwgdXBkYXRlZE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwcGVyLnN0eWxlLnRleHRBbGlnbiA9IFwiXCI7XG4gICAgICAgICAgICB3cmFwcGVyLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYWxpZ25cIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0b3BFdmVudDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICByZXR1cm4gISF0YXJnZXQuY2xvc2VzdChcIi5yZXNpemUtY29udHJvbHNcIik7XG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZU11dGF0aW9uOiAoKSA9PiB0cnVlLFxuICAgICAgfTtcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlLXJlc2l6YWJsZS1pbWFnZS5leHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9leHRlbnNpb25zL2F0ZS1yZXNpemFibGUtaW1hZ2UuZXh0ZW5zaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQTZCcEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBMkI7SUFDckUsSUFBSSxFQUFFLGdCQUFnQjtJQUV0QixVQUFVO1FBQ1IsT0FBTztZQUNMLE1BQU0sRUFBRSxLQUFLO1lBQ2IsV0FBVyxFQUFFLEtBQUs7WUFDbEIsY0FBYyxFQUFFLEVBQUU7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFRCxTQUFTLEVBQUUsSUFBSTtJQUVmLGFBQWE7UUFDWCxPQUFPO1lBQ0wsR0FBRyxFQUFFO2dCQUNILE9BQU8sRUFBRSxJQUFJO2FBQ2Q7WUFDRCxHQUFHLEVBQUU7Z0JBQ0gsT0FBTyxFQUFFLElBQUk7YUFDZDtZQUNELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtvQkFDbkIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFD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QU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzt3QkFDN0IsT0FBTyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDeEMsQ0FBQztvQkFFRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELFNBQVMsRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO29CQUMxQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztvQkFDM0MsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO2dCQUNELGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO2FBQzNCLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSwgbWVyZ2VBdHRyaWJ1dGVzLCBub2RlSW5wdXRSdWxlIH0gZnJvbSBcIkB0aXB0YXAvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0ZVJlc2l6YWJsZUltYWdlT3B0aW9ucyB7XG4gIGlubGluZTogYm9vbGVhbjtcbiAgYWxsb3dCYXNlNjQ6IGJvb2xlYW47XG4gIEhUTUxBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZGVjbGFyZSBtb2R1bGUgXCJAdGlwdGFwL2NvcmVcIiB7XG4gIGludGVyZmFjZSBDb21tYW5kczxSZXR1cm5UeXBlPiB7XG4gICAgcmVzaXphYmxlSW1hZ2U6IHtcbiAgICAgIHNldFJlc2l6YWJsZUltYWdlOiAob3B0aW9uczoge1xuICAgICAgICBzcmM6IHN0cmluZztcbiAgICAgICAgYWx0Pzogc3RyaW5nO1xuICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgd2lkdGg/OiBudW1iZXI7XG4gICAgICAgIGhlaWdodD86IG51bWJlcjtcbiAgICAgIH0pID0+IFJldHVyblR5cGU7XG4gICAgICB1cGRhdGVSZXNpemFibGVJbWFnZTogKG9wdGlvbnM6IHtcbiAgICAgICAgc3JjPzogc3RyaW5nO1xuICAgICAgICBhbHQ/OiBzdHJpbmc7XG4gICAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgICB3aWR0aD86IG51bWJlcjtcbiAgICAgICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgICAgfSkgPT4gUmV0dXJuVHlwZTtcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBdGVSZXNpemFibGVJbWFnZSA9IE5vZGUuY3JlYXRlPEF0ZVJlc2l6YWJsZUltYWdlT3B0aW9ucz4oe1xuICBuYW1lOiBcInJlc2l6YWJsZUltYWdlXCIsXG5cbiAgYWRkT3B0aW9ucygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5saW5lOiBmYWxzZSxcbiAgICAgIGFsbG93QmFzZTY0OiBmYWxzZSxcbiAgICAgIEhUTUxBdHRyaWJ1dGVzOiB7fSxcbiAgICB9O1xuICB9LFxuXG4gIGlubGluZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmlubGluZTtcbiAgfSxcblxuICBncm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmlubGluZSA/IFwiaW5saW5lXCIgOiBcImJsb2NrXCI7XG4gIH0sXG5cbiAgZHJhZ2dhYmxlOiB0cnVlLFxuXG4gIGFkZEF0dHJpYnV0ZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNyYzoge1xuICAgICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgfSxcbiAgICAgIGFsdDoge1xuICAgICAgICBkZWZhdWx0OiBudWxsLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICB9LFxuICAgICAgd2lkdGg6IHtcbiAgICAgICAgZGVmYXVsdDogbnVsbCxcbiAgICAgICAgcGFyc2VIVE1MOiBlbGVtZW50ID0+IHtcbiAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwid2lkdGhcIik7XG4gICAgICAgICAgcmV0dXJuIHdpZHRoID8gcGFyc2VJbnQod2lkdGgsIDEwKSA6IG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIHJlbmRlckhUTUw6IGF0dHJpYnV0ZXMgPT4ge1xuICAgICAgICAgIGlmICghYXR0cmlidXRlc1tcIndpZHRoXCJdKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aDogYXR0cmlidXRlc1tcIndpZHRoXCJdLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgaGVpZ2h0OiB7XG4gICAgICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgICAgIHBhcnNlSFRNTDogZWxlbWVudCA9PiB7XG4gICAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIik7XG4gICAgICAgICAgcmV0dXJuIGhlaWdodCA/IHBhcnNlSW50KGhlaWdodCwgMTApIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgcmVuZGVySFRNTDogYXR0cmlidXRlcyA9PiB7XG4gICAgICAgICAgaWYgKCFhdHRyaWJ1dGVzW1wiaGVpZ2h0XCJdKSB7XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF0dHJpYnV0ZXNbXCJoZWlnaHRcIl0sXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSxcblxuICBwYXJzZUhUTUwoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGFnOiBcImltZ1tzcmNdXCIsXG4gICAgICB9LFxuICAgIF07XG4gIH0sXG5cbiAgcmVuZGVySFRNTCh7IEhUTUxBdHRyaWJ1dGVzIH0pIHtcbiAgICByZXR1cm4gW1wiaW1nXCIsIG1lcmdlQXR0cmlidXRlcyh0aGlzLm9wdGlvbnMuSFRNTEF0dHJpYnV0ZXMsIEhUTUxBdHRyaWJ1dGVzKV07XG4gIH0sXG5cbiAgYWRkQ29tbWFuZHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldFJlc2l6YWJsZUltYWdlOlxuICAgICAgICBvcHRpb25zID0+XG4gICAgICAgICh7IGNvbW1hbmRzIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gY29tbWFuZHMuaW5zZXJ0Q29udGVudChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgICBhdHRyczogb3B0aW9ucyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgdXBkYXRlUmVzaXphYmxlSW1hZ2U6XG4gICAgICAgIG9wdGlvbnMgPT5cbiAgICAgICAgKHsgY29tbWFuZHMgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiBjb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKHRoaXMubmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIH0sXG4gICAgfTtcbiAgfSxcblxuICBhZGRJbnB1dFJ1bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBub2RlSW5wdXRSdWxlKHtcbiAgICAgICAgZmluZDogLyFcXFsoLit8Oj8pXVxcKChcXFMrKSg/Oig/OlxccyspW1wiJ10oXFxTKylbXCInXSk/XFwpLyxcbiAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICBnZXRBdHRyaWJ1dGVzOiBtYXRjaCA9PiB7XG4gICAgICAgICAgY29uc3QgWywgYWx0LCBzcmMsIHRpdGxlXSA9IG1hdGNoO1xuICAgICAgICAgIHJldHVybiB7IHNyYywgYWx0LCB0aXRsZSB9O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXTtcbiAgfSxcblxuICBhZGROb2RlVmlldygpIHtcbiAgICByZXR1cm4gKHsgbm9kZSwgZ2V0UG9zLCBlZGl0b3IgfSkgPT4ge1xuICAgICAgbGV0IGN1cnJlbnROb2RlID0gbm9kZTtcbiAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgd3JhcHBlci5jbGFzc05hbWUgPSBcInJlc2l6YWJsZS1pbWFnZS13cmFwcGVyXCI7XG4gICAgICB3cmFwcGVyLnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gICAgICBpZiAoY3VycmVudE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl0pIHtcbiAgICAgICAgd3JhcHBlci5zdHlsZS50ZXh0QWxpZ24gPSBjdXJyZW50Tm9kZS5hdHRyc1tcInRleHRBbGlnblwiXTtcbiAgICAgICAgd3JhcHBlci5zZXRBdHRyaWJ1dGUoXCJkYXRhLWFsaWduXCIsIGN1cnJlbnROb2RlLmF0dHJzW1widGV4dEFsaWduXCJdKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgIGNvbnRhaW5lci5jbGFzc05hbWUgPSBcInJlc2l6YWJsZS1pbWFnZS1jb250YWluZXJcIjtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgIGNvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcblxuICAgICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImltZ1wiKTtcbiAgICAgIGltZy5zcmMgPSBjdXJyZW50Tm9kZS5hdHRyc1tcInNyY1wiXTtcbiAgICAgIGltZy5hbHQgPSBjdXJyZW50Tm9kZS5hdHRyc1tcImFsdFwiXSB8fCBcIlwiO1xuICAgICAgaW1nLnRpdGxlID0gY3VycmVudE5vZGUuYXR0cnNbXCJ0aXRsZVwiXSB8fCBcIlwiO1xuICAgICAgaW1nLmNsYXNzTmFtZSA9IFwiYXRlLWltYWdlXCI7XG4gICAgICBpbWcuc3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7IC8vIEVuc3VyZSBpdCByZXNwZWN0cyBjb250YWluZXIgdGV4dC1hbGlnblxuXG4gICAgICBpZiAoY3VycmVudE5vZGUuYXR0cnNbXCJ3aWR0aFwiXSkge1xuICAgICAgICBpbWcud2lkdGggPSBjdXJyZW50Tm9kZS5hdHRyc1tcIndpZHRoXCJdO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnROb2RlLmF0dHJzW1wiaGVpZ2h0XCJdKSB7XG4gICAgICAgIGltZy5oZWlnaHQgPSBjdXJyZW50Tm9kZS5hdHRyc1tcImhlaWdodFwiXTtcbiAgICAgIH1cblxuICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGltZyk7XG5cbiAgICAgIC8vIEFsbG93IHNlbGVjdGlvbiBpbiByZWFkLW9ubHkgbW9kZSB0byBzaG93IGJ1YmJsZSBtZW51L2Rvd25sb2FkXG4gICAgICBpbWcuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICBpZiAoIWVkaXRvci5pc0VkaXRhYmxlKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgY29uc3QgcG9zID0gZ2V0UG9zKCk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBwb3MgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGVkaXRvci5jb21tYW5kcy5zZXROb2RlU2VsZWN0aW9uKHBvcyk7XG4gICAgICAgICAgICBlZGl0b3Iudmlldy5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIEFkZCBtb2Rlcm4gcmVzaXplIGNvbnRyb2xzXG4gICAgICBjb25zdCByZXNpemVDb250cm9scyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICByZXNpemVDb250cm9scy5jbGFzc05hbWUgPSBcInJlc2l6ZS1jb250cm9sc1wiO1xuXG4gICAgICAvLyBDcmVhdGUgMiBoYW5kbGVzIChzaWRlcyBvbmx5KSBmb3IgYSBtaW5pbWFsaXN0IFVJXG4gICAgICBjb25zdCBoYW5kbGVzID0gW1wid1wiLCBcImVcIl07XG4gICAgICBoYW5kbGVzLmZvckVhY2goZGlyZWN0aW9uID0+IHtcbiAgICAgICAgY29uc3QgaGFuZGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgaGFuZGxlLmNsYXNzTmFtZSA9IGByZXNpemUtaGFuZGxlIHJlc2l6ZS1oYW5kbGUtJHtkaXJlY3Rpb259YDtcbiAgICAgICAgaGFuZGxlLnNldEF0dHJpYnV0ZShcImRhdGEtZGlyZWN0aW9uXCIsIGRpcmVjdGlvbik7XG4gICAgICAgIHJlc2l6ZUNvbnRyb2xzLmFwcGVuZENoaWxkKGhhbmRsZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gQXR0YWNoIGNvbnRyb2xzIHRvIGNvbnRhaW5lclxuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHJlc2l6ZUNvbnRyb2xzKTtcblxuICAgICAgLy8gVmFyaWFibGVzIGZvciByZXNpemluZ1xuICAgICAgbGV0IGlzUmVzaXppbmcgPSBmYWxzZTtcbiAgICAgIGxldCBzdGFydFggPSAwO1xuICAgICAgbGV0IHN0YXJ0V2lkdGggPSAwO1xuICAgICAgbGV0IHN0YXJ0SGVpZ2h0ID0gMDtcbiAgICAgIGxldCBhc3BlY3RSYXRpbyA9IDE7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSBhc3BlY3QgcmF0aW9cbiAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGFzcGVjdFJhdGlvID0gaW1nLm5hdHVyYWxXaWR0aCAvIGltZy5uYXR1cmFsSGVpZ2h0O1xuICAgICAgfTtcblxuICAgICAgLy8gUmVzaXppbmcgbG9naWNcbiAgICAgIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChlOiBNb3VzZUV2ZW50LCBkaXJlY3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgaXNSZXNpemluZyA9IHRydWU7XG4gICAgICAgIHN0YXJ0WCA9IGUuY2xpZW50WDtcblxuICAgICAgICAvLyBVc2UgY3VycmVudCBpbWFnZSBkaW1lbnNpb25zIGluc3RlYWQgb2YgaW5pdGlhbCBvbmVzXG4gICAgICAgIHN0YXJ0V2lkdGggPVxuICAgICAgICAgIHBhcnNlSW50KGltZy5nZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiKSB8fCBcIjBcIikgfHxcbiAgICAgICAgICBjdXJyZW50Tm9kZS5hdHRyc1tcIndpZHRoXCJdIHx8XG4gICAgICAgICAgaW1nLm5hdHVyYWxXaWR0aDtcbiAgICAgICAgc3RhcnRIZWlnaHQgPVxuICAgICAgICAgIHBhcnNlSW50KGltZy5nZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIikgfHwgXCIwXCIpIHx8XG4gICAgICAgICAgY3VycmVudE5vZGUuYXR0cnNbXCJoZWlnaHRcIl0gfHxcbiAgICAgICAgICBpbWcubmF0dXJhbEhlaWdodDtcblxuICAgICAgICAvLyBBZGQgcmVzaXppbmcgY2xhc3MgdG8gYm9keVxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJyZXNpemluZ1wiKTtcblxuICAgICAgICBjb25zdCBoYW5kbGVNb3VzZU1vdmUgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGlmICghaXNSZXNpemluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlbHRhWCA9IGUuY2xpZW50WCAtIHN0YXJ0WDtcblxuICAgICAgICAgIGxldCBuZXdXaWR0aCA9IHN0YXJ0V2lkdGg7XG4gICAgICAgICAgbGV0IG5ld0hlaWdodCA9IHN0YXJ0SGVpZ2h0O1xuXG4gICAgICAgICAgLy8gUmVzaXplIGFjY29yZGluZyB0byBkaXJlY3Rpb25cbiAgICAgICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgY2FzZSBcImVcIjpcbiAgICAgICAgICAgICAgbmV3V2lkdGggPSBzdGFydFdpZHRoICsgZGVsdGFYO1xuICAgICAgICAgICAgICBuZXdIZWlnaHQgPSBuZXdXaWR0aCAvIGFzcGVjdFJhdGlvO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJ3XCI6XG4gICAgICAgICAgICAgIG5ld1dpZHRoID0gc3RhcnRXaWR0aCAtIGRlbHRhWDtcbiAgICAgICAgICAgICAgbmV3SGVpZ2h0ID0gbmV3V2lkdGggLyBhc3BlY3RSYXRpbztcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gTGltaXRzXG4gICAgICAgICAgbmV3V2lkdGggPSBNYXRoLm1heCg1MCwgTWF0aC5taW4oMjAwMCwgbmV3V2lkdGgpKTtcbiAgICAgICAgICBuZXdIZWlnaHQgPSBNYXRoLm1heCg1MCwgTWF0aC5taW4oMjAwMCwgbmV3SGVpZ2h0KSk7XG5cbiAgICAgICAgICAvLyBVcGRhdGUgaW1hZ2UgYXR0cmlidXRlcyBkaXJlY3RseVxuICAgICAgICAgIGltZy5zZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiLCBNYXRoLnJvdW5kKG5ld1dpZHRoKS50b1N0cmluZygpKTtcbiAgICAgICAgICBpbWcuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsIE1hdGgucm91bmQobmV3SGVpZ2h0KS50b1N0cmluZygpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBoYW5kbGVNb3VzZVVwID0gKCkgPT4ge1xuICAgICAgICAgIGlzUmVzaXppbmcgPSBmYWxzZTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJyZXNpemluZ1wiKTtcblxuICAgICAgICAgIC8vIFVwZGF0ZSBUaXB0YXAgbm9kZSB3aXRoIG5ldyBkaW1lbnNpb25zIGF0IHRoZSBzcGVjaWZpYyBwb3NpdGlvblxuICAgICAgICAgIGNvbnN0IHBvcyA9IHR5cGVvZiBnZXRQb3MgPT09IFwiZnVuY3Rpb25cIiA/IGdldFBvcygpIDogdW5kZWZpbmVkO1xuICAgICAgICAgIGlmICh0eXBlb2YgcG9zID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5hbFdpZHRoID0gcGFyc2VJbnQoaW1nLmdldEF0dHJpYnV0ZShcIndpZHRoXCIpIHx8IFwiMFwiKTtcbiAgICAgICAgICAgIGNvbnN0IGZpbmFsSGVpZ2h0ID0gcGFyc2VJbnQoaW1nLmdldEF0dHJpYnV0ZShcImhlaWdodFwiKSB8fCBcIjBcIik7XG5cbiAgICAgICAgICAgIGlmIChmaW5hbFdpZHRoICYmIGZpbmFsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgIGVkaXRvci52aWV3LmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIGVkaXRvci52aWV3LnN0YXRlLnRyLnNldE5vZGVNYXJrdXAocG9zLCB1bmRlZmluZWQsIHtcbiAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnROb2RlLmF0dHJzLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IGZpbmFsV2lkdGgsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IGZpbmFsSGVpZ2h0LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLCBoYW5kbGVNb3VzZU1vdmUpO1xuICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIGhhbmRsZU1vdXNlVXApO1xuICAgICAgICB9O1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgaGFuZGxlTW91c2VNb3ZlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIiwgaGFuZGxlTW91c2VVcCk7XG4gICAgICB9O1xuXG4gICAgICAvLyBBZGQgZXZlbnRzIHRvIGhhbmRsZXNcbiAgICAgIHJlc2l6ZUNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgZSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcInJlc2l6ZS1oYW5kbGVcIikpIHtcbiAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0YXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1kaXJlY3Rpb25cIik7XG4gICAgICAgICAgaWYgKGRpcmVjdGlvbikge1xuICAgICAgICAgICAgaGFuZGxlTW91c2VEb3duKGUsIGRpcmVjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gUHJvcGVyIHNlbGVjdGlvbiBtYW5hZ2VtZW50IHZpYSBQcm9zZU1pcnJvciBsaWZlY3ljbGVcbiAgICAgIGNvbnN0IHNlbGVjdE5vZGUgPSAoKSA9PiB7XG4gICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZChcInNlbGVjdGVkXCIpO1xuICAgICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChcInNlbGVjdGVkXCIpO1xuICAgICAgICBpbWcuY2xhc3NMaXN0LmFkZChcInNlbGVjdGVkXCIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgZGVzZWxlY3ROb2RlID0gKCkgPT4ge1xuICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5yZW1vdmUoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgaW1nLmNsYXNzTGlzdC5yZW1vdmUoXCJzZWxlY3RlZFwiKTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRvbTogd3JhcHBlcixcbiAgICAgICAgc2VsZWN0Tm9kZSxcbiAgICAgICAgZGVzZWxlY3ROb2RlLFxuICAgICAgICB1cGRhdGU6IHVwZGF0ZWROb2RlID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlZE5vZGUudHlwZS5uYW1lICE9PSBcInJlc2l6YWJsZUltYWdlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjdXJyZW50Tm9kZSA9IHVwZGF0ZWROb2RlO1xuXG4gICAgICAgICAgaW1nLnNyYyA9IHVwZGF0ZWROb2RlLmF0dHJzW1wic3JjXCJdO1xuICAgICAgICAgIGltZy5hbHQgPSB1cGRhdGVkTm9kZS5hdHRyc1tcImFsdFwiXSB8fCBcIlwiO1xuICAgICAgICAgIGltZy50aXRsZSA9IHVwZGF0ZWROb2RlLmF0dHJzW1widGl0bGVcIl0gfHwgXCJcIjtcblxuICAgICAgICAgIGlmICh1cGRhdGVkTm9kZS5hdHRyc1tcIndpZHRoXCJdKSB7XG4gICAgICAgICAgICBpbWcud2lkdGggPSB1cGRhdGVkTm9kZS5hdHRyc1tcIndpZHRoXCJdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodXBkYXRlZE5vZGUuYXR0cnNbXCJoZWlnaHRcIl0pIHtcbiAgICAgICAgICAgIGltZy5oZWlnaHQgPSB1cGRhdGVkTm9kZS5hdHRyc1tcImhlaWdodFwiXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodXBkYXRlZE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl0pIHtcbiAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUudGV4dEFsaWduID0gdXBkYXRlZE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl07XG4gICAgICAgICAgICB3cmFwcGVyLnNldEF0dHJpYnV0ZShcImRhdGEtYWxpZ25cIiwgdXBkYXRlZE5vZGUuYXR0cnNbXCJ0ZXh0QWxpZ25cIl0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwcGVyLnN0eWxlLnRleHRBbGlnbiA9IFwiXCI7XG4gICAgICAgICAgICB3cmFwcGVyLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYWxpZ25cIik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHN0b3BFdmVudDogKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICByZXR1cm4gISF0YXJnZXQuY2xvc2VzdChcIi5yZXNpemUtY29udHJvbHNcIik7XG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZU11dGF0aW9uOiAoKSA9PiB0cnVlLFxuICAgICAgfTtcbiAgICB9O1xuICB9LFxufSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRlVHJhbnNsYXRpb25zTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRpcHRhcC1lZGl0b3Ivc3JjL2xpYi9pMThuL2F0ZVRyYW5zbGF0aW9uc01vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTdXBwb3J0ZWRMb2NhbGUgPSBcImVuXCIgfCBcImZyXCIgfCBcImRlXCIgfCAoc3RyaW5nICYge30pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF0ZVRyYW5zbGF0aW9ucyB7XG4gICAgLy8gVG9vbGJhclxuICAgIHRvb2xiYXI6IHtcbiAgICAgICAgYm9sZDogc3RyaW5nO1xuICAgICAgICBpdGFsaWM6IHN0cmluZztcbiAgICAgICAgdW5kZXJsaW5lOiBzdHJpbmc7XG4gICAgICAgIHN0cmlrZTogc3RyaW5nO1xuICAgICAgICBjb2RlOiBzdHJpbmc7XG4gICAgICAgIGNvZGVCbG9jazogc3RyaW5nO1xuICAgICAgICBzdXBlcnNjcmlwdDogc3RyaW5nO1xuICAgICAgICBzdWJzY3JpcHQ6IHN0cmluZztcbiAgICAgICAgaGlnaGxpZ2h0OiBzdHJpbmc7XG4gICAgICAgIGhpZ2hsaWdodFBpY2tlcjogc3RyaW5nO1xuICAgICAgICBoZWFkaW5nMTogc3RyaW5nO1xuICAgICAgICBoZWFkaW5nMjogc3RyaW5nO1xuICAgICAgICBoZWFkaW5nMzogc3RyaW5nO1xuICAgICAgICBidWxsZXRMaXN0OiBzdHJpbmc7XG4gICAgICAgIG9yZGVyZWRMaXN0OiBzdHJpbmc7XG4gICAgICAgIGJsb2NrcXVvdGU6IHN0cmluZztcbiAgICAgICAgYWxpZ25MZWZ0OiBzdHJpbmc7XG4gICAgICAgIGFsaWduQ2VudGVyOiBzdHJpbmc7XG4gICAgICAgIGFsaWduUmlnaHQ6IHN0cmluZztcbiAgICAgICAgYWxpZ25KdXN0aWZ5OiBzdHJpbmc7XG4gICAgICAgIGxpbms6IHN0cmluZztcbiAgICAgICAgaW1hZ2U6IHN0cmluZztcbiAgICAgICAgaG9yaXpvbnRhbFJ1bGU6IHN0cmluZztcbiAgICAgICAgdGFibGU6IHN0cmluZztcbiAgICAgICAgdW5kbzogc3RyaW5nO1xuICAgICAgICByZWRvOiBzdHJpbmc7XG4gICAgICAgIGNsZWFyOiBzdHJpbmc7XG4gICAgICAgIHRleHRDb2xvcjogc3RyaW5nO1xuICAgICAgICBjdXN0b21Db2xvcjogc3RyaW5nO1xuICAgICAgICBwcmVzZXRzOiBzdHJpbmc7XG4gICAgfTtcblxuICAgIC8vIEJ1YmJsZSBNZW51XG4gICAgYnViYmxlTWVudToge1xuICAgICAgICBib2xkOiBzdHJpbmc7XG4gICAgICAgIGl0YWxpYzogc3RyaW5nO1xuICAgICAgICB1bmRlcmxpbmU6IHN0cmluZztcbiAgICAgICAgc3RyaWtlOiBzdHJpbmc7XG4gICAgICAgIGNvZGU6IHN0cmluZztcbiAgICAgICAgc3VwZXJzY3JpcHQ6IHN0cmluZztcbiAgICAgICAgc3Vic2NyaXB0OiBzdHJpbmc7XG4gICAgICAgIGhpZ2hsaWdodDogc3RyaW5nO1xuICAgICAgICBoaWdobGlnaHRQaWNrZXI6IHN0cmluZztcbiAgICAgICAgdGV4dENvbG9yOiBzdHJpbmc7XG4gICAgICAgIGxpbms6IHN0cmluZztcbiAgICAgICAgYWRkTGluazogc3RyaW5nO1xuICAgICAgICBlZGl0TGluazogc3RyaW5nO1xuICAgICAgICByZW1vdmVMaW5rOiBzdHJpbmc7XG4gICAgICAgIGxpbmtVcmw6IHN0cmluZztcbiAgICAgICAgbGlua1RleHQ6IHN0cmluZztcbiAgICAgICAgb3Blbkxpbms6IHN0cmluZztcbiAgICAgICAgY3VzdG9tQ29sb3I6IHN0cmluZztcbiAgICAgICAgcHJlc2V0czogc3RyaW5nO1xuICAgIH07XG5cbiAgICAvLyBTbGFzaCBDb21tYW5kc1xuICAgIHNsYXNoQ29tbWFuZHM6IHtcbiAgICAgICAgaGVhZGluZzE6IHtcbiAgICAgICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICAgICAga2V5d29yZHM6IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgICAgICBoZWFkaW5nMjoge1xuICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgICBrZXl3b3Jkczogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgICAgIGhlYWRpbmczOiB7XG4gICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgICAgICAgIGtleXdvcmRzOiBzdHJpbmdbXTtcbiAgICAgICAgfTtcbiAgICAgICAgYnVsbGV0TGlzdDoge1xuICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgICBrZXl3b3Jkczogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgICAgIG9yZGVyZWRMaXN0OiB7XG4gICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgICAgICAgIGtleXdvcmRzOiBzdHJpbmdbXTtcbiAgICAgICAgfTtcbiAgICAgICAgYmxvY2txdW90ZToge1xuICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgICBrZXl3b3Jkczogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgICAgIGNvZGU6IHtcbiAgICAgICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICAgICAga2V5d29yZHM6IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgICAgICBpbWFnZToge1xuICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgICBrZXl3b3Jkczogc3RyaW5nW107XG4gICAgICAgIH07XG4gICAgICAgIGhvcml6b250YWxSdWxlOiB7XG4gICAgICAgICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgICAgICAgIGtleXdvcmRzOiBzdHJpbmdbXTtcbiAgICAgICAgfTtcbiAgICAgICAgdGFibGU6IHtcbiAgICAgICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICAgICAga2V5d29yZHM6IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvLyBUYWJsZSBBY3Rpb25zXG4gICAgdGFibGU6IHtcbiAgICAgICAgYWRkUm93QmVmb3JlOiBzdHJpbmc7XG4gICAgICAgIGFkZFJvd0FmdGVyOiBzdHJpbmc7XG4gICAgICAgIGRlbGV0ZVJvdzogc3RyaW5nO1xuICAgICAgICBhZGRDb2x1bW5CZWZvcmU6IHN0cmluZztcbiAgICAgICAgYWRkQ29sdW1uQWZ0ZXI6IHN0cmluZztcbiAgICAgICAgZGVsZXRlQ29sdW1uOiBzdHJpbmc7XG4gICAgICAgIGRlbGV0ZVRhYmxlOiBzdHJpbmc7XG4gICAgICAgIHRvZ2dsZUhlYWRlclJvdzogc3RyaW5nO1xuICAgICAgICB0b2dnbGVIZWFkZXJDb2x1bW46IHN0cmluZztcbiAgICAgICAgbWVyZ2VDZWxsczogc3RyaW5nO1xuICAgICAgICBzcGxpdENlbGw6IHN0cmluZztcbiAgICB9O1xuXG4gICAgLy8gSW1hZ2UgVXBsb2FkXG4gICAgaW1hZ2VVcGxvYWQ6IHtcbiAgICAgICAgc2VsZWN0SW1hZ2U6IHN0cmluZztcbiAgICAgICAgbG9hZEVycm9yOiBzdHJpbmc7XG4gICAgICAgIHVwbG9hZGluZ0ltYWdlOiBzdHJpbmc7XG4gICAgICAgIHVwbG9hZFByb2dyZXNzOiBzdHJpbmc7XG4gICAgICAgIHVwbG9hZEVycm9yOiBzdHJpbmc7XG4gICAgICAgIHVwbG9hZFN1Y2Nlc3M6IHN0cmluZztcbiAgICAgICAgaW1hZ2VUb29MYXJnZTogc3RyaW5nO1xuICAgICAgICBpbnZhbGlkRmlsZVR5cGU6IHN0cmluZztcbiAgICAgICAgZHJhZ0Ryb3BUZXh0OiBzdHJpbmc7XG4gICAgICAgIGNoYW5nZUltYWdlOiBzdHJpbmc7XG4gICAgICAgIGRvd25sb2FkSW1hZ2U6IHN0cmluZztcbiAgICAgICAgZGVsZXRlSW1hZ2U6IHN0cmluZztcbiAgICAgICAgcmVzaXplU21hbGw6IHN0cmluZztcbiAgICAgICAgcmVzaXplTWVkaXVtOiBzdHJpbmc7XG4gICAgICAgIHJlc2l6ZUxhcmdlOiBzdHJpbmc7XG4gICAgICAgIHJlc2l6ZU9yaWdpbmFsOiBzdHJpbmc7XG4gICAgICAgIGFsaWduTGVmdDogc3RyaW5nO1xuICAgICAgICBhbGlnbkNlbnRlcjogc3RyaW5nO1xuICAgICAgICBhbGlnblJpZ2h0OiBzdHJpbmc7XG4gICAgICAgIHJlc2l6aW5nOiBzdHJpbmc7XG4gICAgICAgIGNvbXByZXNzaW5nOiBzdHJpbmc7XG4gICAgICAgIGNvbXByZXNzaW9uRXJyb3I6IHN0cmluZztcbiAgICAgICAgdmFsaWRhdGluZzogc3RyaW5nO1xuICAgICAgICB1cGxvYWRpbmdUb1NlcnZlcjogc3RyaW5nO1xuICAgICAgICByZXBsYWNpbmdJbWFnZTogc3RyaW5nO1xuICAgICAgICBpbnNlcnRpbmdJbWFnZTogc3RyaW5nO1xuICAgICAgICBub0ZpbGVTZWxlY3RlZDogc3RyaW5nO1xuICAgICAgICBzZWxlY3Rpb25DYW5jZWxsZWQ6IHN0cmluZztcbiAgICB9O1xuXG4gICAgLy8gRWRpdG9yXG4gICAgZWRpdG9yOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgICAgIGNoYXJhY3Rlcjogc3RyaW5nO1xuICAgICAgICBjaGFyYWN0ZXJQbHVyYWw6IHN0cmluZztcbiAgICAgICAgd29yZDogc3RyaW5nO1xuICAgICAgICB3b3JkUGx1cmFsOiBzdHJpbmc7XG4gICAgICAgIGxpbmtQcm9tcHQ6IHN0cmluZztcbiAgICAgICAgbGlua1VybFByb21wdDogc3RyaW5nO1xuICAgICAgICBjb25maXJtRGVsZXRlOiBzdHJpbmc7XG4gICAgICAgIHRvZ2dsZUVkaXQ6IHN0cmluZztcbiAgICAgICAgdmlld01vZGU6IHN0cmluZztcbiAgICAgICAgYmxvY2tBZGQ6IHN0cmluZztcbiAgICAgICAgYmxvY2tEcmFnOiBzdHJpbmc7XG4gICAgfTtcblxuICAgIC8vIENvbW1vblxuICAgIGNvbW1vbjoge1xuICAgICAgICBjYW5jZWw6IHN0cmluZztcbiAgICAgICAgY29uZmlybTogc3RyaW5nO1xuICAgICAgICBhcHBseTogc3RyaW5nO1xuICAgICAgICBkZWxldGU6IHN0cmluZztcbiAgICAgICAgc2F2ZTogc3RyaW5nO1xuICAgICAgICBjbG9zZTogc3RyaW5nO1xuICAgICAgICBsb2FkaW5nOiBzdHJpbmc7XG4gICAgICAgIGVycm9yOiBzdHJpbmc7XG4gICAgICAgIHN1Y2Nlc3M6IHN0cmluZztcbiAgICB9O1xuXG4gICAgLy8gRXhwb3J0XG4gICAgZXhwb3J0OiB7XG4gICAgICAgIGV4cG9ydDogc3RyaW5nO1xuICAgICAgICBodG1sOiBzdHJpbmc7XG4gICAgICAgIG1hcmtkb3duOiBzdHJpbmc7XG4gICAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgICAgY29weUh0bWw6IHN0cmluZztcbiAgICAgICAgY29weU1hcmtkb3duOiBzdHJpbmc7XG4gICAgICAgIGNvcHlUZXh0OiBzdHJpbmc7XG4gICAgICAgIGRvd25sb2FkSHRtbDogc3RyaW5nO1xuICAgICAgICBkb3dubG9hZE1hcmtkb3duOiBzdHJpbmc7XG4gICAgICAgIGRvd25sb2FkVGV4dDogc3RyaW5nO1xuICAgICAgICBjb3BpZWRTdWNjZXNzOiBzdHJpbmc7XG4gICAgfTtcbn0iXX0=
@@ -0,0 +1,189 @@
1
+ export const GERMAN_TRANSLATIONS = {
2
+ toolbar: {
3
+ bold: "Fett\nStrg+B",
4
+ italic: "Kursiv\nStrg+I",
5
+ underline: "Unterstrichen\nStrg+U",
6
+ strike: "Durchgestrichen\nStrg+Shift+X",
7
+ code: "Inline-Code\nStrg+E",
8
+ codeBlock: "Codeblock",
9
+ superscript: "Hochgestellt",
10
+ subscript: "Tiefgestellt",
11
+ highlight: "Hervorheben",
12
+ highlightPicker: "Hintergrundfarbe",
13
+ heading1: "Überschrift 1",
14
+ heading2: "Überschrift 2",
15
+ heading3: "Überschrift 3",
16
+ bulletList: "Aufzählungsliste",
17
+ orderedList: "Nummerierte Liste",
18
+ blockquote: "Zitatblock",
19
+ alignLeft: "Links ausrichten",
20
+ alignCenter: "Zentrieren",
21
+ alignRight: "Rechts ausrichten",
22
+ alignJustify: "Blocksatz",
23
+ link: "Link hinzufügen",
24
+ image: "Bild hinzufügen",
25
+ horizontalRule: "Horizontale Linie",
26
+ table: "Tabelle einfügen",
27
+ undo: "Rückgängig\nStrg+Z",
28
+ redo: "Wiederholen\nStrg+Shift+Z",
29
+ clear: "Leeren",
30
+ textColor: "Textfarbe",
31
+ customColor: "Benutzerdefinierte Farbe",
32
+ presets: "Voreinstellungen",
33
+ },
34
+ bubbleMenu: {
35
+ bold: "Fett\nStrg+B",
36
+ italic: "Kursiv\nStrg+I",
37
+ underline: "Unterstrichen\nStrg+U",
38
+ strike: "Durchgestrichen\nStrg+Shift+X",
39
+ code: "Code\nStrg+E",
40
+ superscript: "Hochgestellt",
41
+ subscript: "Tiefgestellt",
42
+ highlight: "Hervorheben",
43
+ highlightPicker: "Hintergrundfarbe",
44
+ textColor: "Textfarbe",
45
+ link: "Link",
46
+ addLink: "Link hinzufügen",
47
+ editLink: "Link bearbeiten",
48
+ removeLink: "Link entfernen",
49
+ linkUrl: "Link-URL",
50
+ linkText: "Link-Text",
51
+ openLink: "Link öffnen",
52
+ customColor: "Benutzerdefinierte Farbe",
53
+ presets: "Voreinstellungen",
54
+ },
55
+ slashCommands: {
56
+ heading1: {
57
+ title: "Überschrift 1",
58
+ description: "Große Abschnittsüberschrift",
59
+ keywords: ["überschrift", "heading", "h1", "titel", "1", "header"],
60
+ },
61
+ heading2: {
62
+ title: "Überschrift 2",
63
+ description: "Mittlere Abschnittsüberschrift",
64
+ keywords: ["überschrift", "heading", "h2", "titel", "2", "header"],
65
+ },
66
+ heading3: {
67
+ title: "Überschrift 3",
68
+ description: "Kleine Abschnittsüberschrift",
69
+ keywords: ["überschrift", "heading", "h3", "titel", "3", "header"],
70
+ },
71
+ bulletList: {
72
+ title: "Aufzählungsliste",
73
+ description: "Eine Aufzählungsliste erstellen",
74
+ keywords: ["aufzählung", "liste", "bullet", "ul", "unordered"],
75
+ },
76
+ orderedList: {
77
+ title: "Nummerierte Liste",
78
+ description: "Eine nummerierte Liste erstellen",
79
+ keywords: ["nummeriert", "liste", "ordered", "ol", "zahlen"],
80
+ },
81
+ blockquote: {
82
+ title: "Zitatblock",
83
+ description: "Einen Zitatblock hinzufügen",
84
+ keywords: ["zitat", "blockquote", "quote", "citation"],
85
+ },
86
+ code: {
87
+ title: "Codeblock",
88
+ description: "Einen Codeblock hinzufügen",
89
+ keywords: ["code", "codeblock", "pre", "programmierung"],
90
+ },
91
+ image: {
92
+ title: "Bild",
93
+ description: "Ein Bild einfügen",
94
+ keywords: ["bild", "image", "foto", "photo", "picture", "img"],
95
+ },
96
+ horizontalRule: {
97
+ title: "Horizontale Linie",
98
+ description: "Eine horizontale Trennlinie hinzufügen",
99
+ keywords: ["linie", "horizontal", "rule", "hr", "trennlinie", "separator"],
100
+ },
101
+ table: {
102
+ title: "Tabelle",
103
+ description: "Eine Tabelle einfügen",
104
+ keywords: ["tabelle", "table", "grid", "raster", "daten", "zeilen", "spalten"],
105
+ },
106
+ },
107
+ table: {
108
+ addRowBefore: "Zeile davor einfügen",
109
+ addRowAfter: "Zeile danach einfügen",
110
+ deleteRow: "Zeile löschen",
111
+ addColumnBefore: "Spalte davor einfügen",
112
+ addColumnAfter: "Spalte danach einfügen",
113
+ deleteColumn: "Spalte löschen",
114
+ deleteTable: "Tabelle löschen",
115
+ toggleHeaderRow: "Kopfzeile umschalten",
116
+ toggleHeaderColumn: "Kopfspalte umschalten",
117
+ mergeCells: "Zellen verbinden",
118
+ splitCell: "Zelle teilen",
119
+ },
120
+ imageUpload: {
121
+ selectImage: "Bild auswählen",
122
+ loadError: "Fehler beim Laden des Bildes",
123
+ uploadingImage: "Bild wird hochgeladen...",
124
+ uploadProgress: "Upload-Fortschritt",
125
+ uploadError: "Upload-Fehler",
126
+ uploadSuccess: "Upload erfolgreich",
127
+ imageTooLarge: "Bild ist zu groß",
128
+ invalidFileType: "Ungültiger Dateityp",
129
+ dragDropText: "Bilder hierher ziehen und ablegen",
130
+ changeImage: "Bild ändern",
131
+ downloadImage: "Bild herunterladen",
132
+ deleteImage: "Bild löschen",
133
+ resizeSmall: "Klein",
134
+ resizeMedium: "Mittel",
135
+ resizeLarge: "Groß",
136
+ resizeOriginal: "Originalgröße",
137
+ alignLeft: "Links ausrichten",
138
+ alignCenter: "Zentrieren",
139
+ alignRight: "Rechts ausrichten",
140
+ resizing: "Größe wird angepasst...",
141
+ compressing: "Bild wird komprimiert...",
142
+ compressionError: "Fehler bei der Komprimierung",
143
+ validating: "Datei wird geprüft...",
144
+ uploadingToServer: "Upload zum Server...",
145
+ replacingImage: "Bild wird ersetzt...",
146
+ insertingImage: "Bild wird in den Editor eingefügt...",
147
+ noFileSelected: "Keine Bilddatei ausgewählt",
148
+ selectionCancelled: "Auswahl abgebrochen",
149
+ },
150
+ editor: {
151
+ placeholder: "Beginne zu schreiben...",
152
+ character: "Zeichen",
153
+ characterPlural: "Zeichen",
154
+ word: "Wort",
155
+ wordPlural: "Wörter",
156
+ linkPrompt: "Link-URL eingeben",
157
+ linkUrlPrompt: "URL eingeben",
158
+ confirmDelete: "Möchtest du dies wirklich löschen?",
159
+ toggleEdit: "In den Bearbeitungsmodus wechseln",
160
+ viewMode: "In den Ansichtsmodus wechseln",
161
+ blockAdd: "Klicken, um einen Block hinzuzufügen",
162
+ blockDrag: "Ziehen, um diesen Block zu verschieben",
163
+ },
164
+ common: {
165
+ cancel: "Abbrechen",
166
+ confirm: "Bestätigen",
167
+ apply: "Anwenden",
168
+ delete: "Löschen",
169
+ save: "Speichern",
170
+ close: "Schließen",
171
+ loading: "Lädt",
172
+ error: "Fehler",
173
+ success: "Erfolg",
174
+ },
175
+ export: {
176
+ export: "Exportieren",
177
+ html: "HTML",
178
+ markdown: "Markdown",
179
+ text: "Nur Text",
180
+ copyHtml: "Als HTML kopieren",
181
+ copyMarkdown: "Als Markdown kopieren",
182
+ copyText: "Als reinen Text kopieren",
183
+ downloadHtml: ".html herunterladen",
184
+ downloadMarkdown: ".md herunterladen",
185
+ downloadText: ".txt herunterladen",
186
+ copiedSuccess: "In die Zwischenablage kopiert!",
187
+ },
188
+ };
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVfYXRlVHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10aXB0YXAtZWRpdG9yL3NyYy9saWIvaTE4bi9kZV9hdGVUcmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9CO0lBQ2hELE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxjQUFjO1FBQ3BCLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxNQUFNLEVBQUUsK0JBQStCO1FBQ3ZDLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsU0FBUyxFQUFFLFdBQVc7UUFDdEIsV0FBVyxFQUFFLGNBQWM7UUFDM0IsU0FBUyxFQUFFLGNBQWM7UUFDekIsU0FBUyxFQUFFLGFBQWE7UUFDeEIsZUFBZSxFQUFFLGtCQUFrQjtRQUNuQyxRQUFRLEVBQUUsZUFBZTtRQUN6QixRQUFRLEVBQUUsZUFBZTtRQUN6QixRQUFRLEVBQUUsZUFBZTtRQUN6QixVQUFVLEVBQUUsa0JBQWtCO1FBQzlCLFdBQVcsRUFBRSxtQkFBbUI7UUFDaEMsVUFBVSxFQUFFLFlBQVk7UUFDeEIsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixXQUFXLEVBQUUsWUFBWTtRQUN6QixVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLFlBQVksRUFBRSxXQUFXO1FBQ3pCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixjQUFjLEVBQUUsbUJBQW1CO1FBQ25DLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLEtBQUssRUFBRSxRQUFRO1FBQ2YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxPQUFPLEVBQUUsa0JBQWtCO0tBQzlCO0lBRUQs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IFwiLi9hdGVUcmFuc2xhdGlvbnNNb2RlbFwiO1xuXG5cbmV4cG9ydCBjb25zdCBHRVJNQU5fVFJBTlNMQVRJT05TOiBBdGVUcmFuc2xhdGlvbnMgPSB7XG4gICAgdG9vbGJhcjoge1xuICAgICAgICBib2xkOiBcIkZldHRcXG5TdHJnK0JcIixcbiAgICAgICAgaXRhbGljOiBcIkt1cnNpdlxcblN0cmcrSVwiLFxuICAgICAgICB1bmRlcmxpbmU6IFwiVW50ZXJzdHJpY2hlblxcblN0cmcrVVwiLFxuICAgICAgICBzdHJpa2U6IFwiRHVyY2hnZXN0cmljaGVuXFxuU3RyZytTaGlmdCtYXCIsXG4gICAgICAgIGNvZGU6IFwiSW5saW5lLUNvZGVcXG5TdHJnK0VcIixcbiAgICAgICAgY29kZUJsb2NrOiBcIkNvZGVibG9ja1wiLFxuICAgICAgICBzdXBlcnNjcmlwdDogXCJIb2NoZ2VzdGVsbHRcIixcbiAgICAgICAgc3Vic2NyaXB0OiBcIlRpZWZnZXN0ZWxsdFwiLFxuICAgICAgICBoaWdobGlnaHQ6IFwiSGVydm9yaGViZW5cIixcbiAgICAgICAgaGlnaGxpZ2h0UGlja2VyOiBcIkhpbnRlcmdydW5kZmFyYmVcIixcbiAgICAgICAgaGVhZGluZzE6IFwiw5xiZXJzY2hyaWZ0IDFcIixcbiAgICAgICAgaGVhZGluZzI6IFwiw5xiZXJzY2hyaWZ0IDJcIixcbiAgICAgICAgaGVhZGluZzM6IFwiw5xiZXJzY2hyaWZ0IDNcIixcbiAgICAgICAgYnVsbGV0TGlzdDogXCJBdWZ6w6RobHVuZ3NsaXN0ZVwiLFxuICAgICAgICBvcmRlcmVkTGlzdDogXCJOdW1tZXJpZXJ0ZSBMaXN0ZVwiLFxuICAgICAgICBibG9ja3F1b3RlOiBcIlppdGF0YmxvY2tcIixcbiAgICAgICAgYWxpZ25MZWZ0OiBcIkxpbmtzIGF1c3JpY2h0ZW5cIixcbiAgICAgICAgYWxpZ25DZW50ZXI6IFwiWmVudHJpZXJlblwiLFxuICAgICAgICBhbGlnblJpZ2h0OiBcIlJlY2h0cyBhdXNyaWNodGVuXCIsXG4gICAgICAgIGFsaWduSnVzdGlmeTogXCJCbG9ja3NhdHpcIixcbiAgICAgICAgbGluazogXCJMaW5rIGhpbnp1ZsO8Z2VuXCIsXG4gICAgICAgIGltYWdlOiBcIkJpbGQgaGluenVmw7xnZW5cIixcbiAgICAgICAgaG9yaXpvbnRhbFJ1bGU6IFwiSG9yaXpvbnRhbGUgTGluaWVcIixcbiAgICAgICAgdGFibGU6IFwiVGFiZWxsZSBlaW5mw7xnZW5cIixcbiAgICAgICAgdW5kbzogXCJSw7xja2fDpG5naWdcXG5TdHJnK1pcIixcbiAgICAgICAgcmVkbzogXCJXaWVkZXJob2xlblxcblN0cmcrU2hpZnQrWlwiLFxuICAgICAgICBjbGVhcjogXCJMZWVyZW5cIixcbiAgICAgICAgdGV4dENvbG9yOiBcIlRleHRmYXJiZVwiLFxuICAgICAgICBjdXN0b21Db2xvcjogXCJCZW51dHplcmRlZmluaWVydGUgRmFyYmVcIixcbiAgICAgICAgcHJlc2V0czogXCJWb3JlaW5zdGVsbHVuZ2VuXCIsXG4gICAgfSxcblxuICAgIGJ1YmJsZU1lbnU6IHtcbiAgICAgICAgYm9sZDogXCJGZXR0XFxuU3RyZytCXCIsXG4gICAgICAgIGl0YWxpYzogXCJLdXJzaXZcXG5TdHJnK0lcIixcbiAgICAgICAgdW5kZXJsaW5lOiBcIlVudGVyc3RyaWNoZW5cXG5TdHJnK1VcIixcbiAgICAgICAgc3RyaWtlOiBcIkR1cmNoZ2VzdHJpY2hlblxcblN0cmcrU2hpZnQrWFwiLFxuICAgICAgICBjb2RlOiBcIkNvZGVcXG5TdHJnK0VcIixcbiAgICAgICAgc3VwZXJzY3JpcHQ6IFwiSG9jaGdlc3RlbGx0XCIsXG4gICAgICAgIHN1YnNjcmlwdDogXCJUaWVmZ2VzdGVsbHRcIixcbiAgICAgICAgaGlnaGxpZ2h0OiBcIkhlcnZvcmhlYmVuXCIsXG4gICAgICAgIGhpZ2hsaWdodFBpY2tlcjogXCJIaW50ZXJncnVuZGZhcmJlXCIsXG4gICAgICAgIHRleHRDb2xvcjogXCJUZXh0ZmFyYmVcIixcbiAgICAgICAgbGluazogXCJMaW5rXCIsXG4gICAgICAgIGFkZExpbms6IFwiTGluayBoaW56dWbDvGdlblwiLFxuICAgICAgICBlZGl0TGluazogXCJMaW5rIGJlYXJiZWl0ZW5cIixcbiAgICAgICAgcmVtb3ZlTGluazogXCJMaW5rIGVudGZlcm5lblwiLFxuICAgICAgICBsaW5rVXJsOiBcIkxpbmstVVJMXCIsXG4gICAgICAgIGxpbmtUZXh0OiBcIkxpbmstVGV4dFwiLFxuICAgICAgICBvcGVuTGluazogXCJMaW5rIMO2ZmZuZW5cIixcbiAgICAgICAgY3VzdG9tQ29sb3I6IFwiQmVudXR6ZXJkZWZpbmllcnRlIEZhcmJlXCIsXG4gICAgICAgIHByZXNldHM6IFwiVm9yZWluc3RlbGx1bmdlblwiLFxuICAgIH0sXG5cbiAgICBzbGFzaENvbW1hbmRzOiB7XG4gICAgICAgIGhlYWRpbmcxOiB7XG4gICAgICAgICAgICB0aXRsZTogXCLDnGJlcnNjaHJpZnQgMVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiR3Jvw59lIEFic2Nobml0dHPDvGJlcnNjaHJpZnRcIixcbiAgICAgICAgICAgIGtleXdvcmRzOiBbXCLDvGJlcnNjaHJpZnRcIiwgXCJoZWFkaW5nXCIsIFwiaDFcIiwgXCJ0aXRlbFwiLCBcIjFcIiwgXCJoZWFkZXJcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIGhlYWRpbmcyOiB7XG4gICAgICAgICAgICB0aXRsZTogXCLDnGJlcnNjaHJpZnQgMlwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTWl0dGxlcmUgQWJzY2huaXR0c8O8YmVyc2NocmlmdFwiLFxuICAgICAgICAgICAga2V5d29yZHM6IFtcIsO8YmVyc2NocmlmdFwiLCBcImhlYWRpbmdcIiwgXCJoMlwiLCBcInRpdGVsXCIsIFwiMlwiLCBcImhlYWRlclwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgaGVhZGluZzM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBcIsOcYmVyc2NocmlmdCAzXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJLbGVpbmUgQWJzY2huaXR0c8O8YmVyc2NocmlmdFwiLFxuICAgICAgICAgICAga2V5d29yZHM6IFtcIsO8YmVyc2NocmlmdFwiLCBcImhlYWRpbmdcIiwgXCJoM1wiLCBcInRpdGVsXCIsIFwiM1wiLCBcImhlYWRlclwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgYnVsbGV0TGlzdDoge1xuICAgICAgICAgICAgdGl0bGU6IFwiQXVmesOkaGx1bmdzbGlzdGVcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVpbmUgQXVmesOkaGx1bmdzbGlzdGUgZXJzdGVsbGVuXCIsXG4gICAgICAgICAgICBrZXl3b3JkczogW1wiYXVmesOkaGx1bmdcIiwgXCJsaXN0ZVwiLCBcImJ1bGxldFwiLCBcInVsXCIsIFwidW5vcmRlcmVkXCJdLFxuICAgICAgICB9LFxuICAgICAgICBvcmRlcmVkTGlzdDoge1xuICAgICAgICAgICAgdGl0bGU6IFwiTnVtbWVyaWVydGUgTGlzdGVcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVpbmUgbnVtbWVyaWVydGUgTGlzdGUgZXJzdGVsbGVuXCIsXG4gICAgICAgICAgICBrZXl3b3JkczogW1wibnVtbWVyaWVydFwiLCBcImxpc3RlXCIsIFwib3JkZXJlZFwiLCBcIm9sXCIsIFwiemFobGVuXCJdLFxuICAgICAgICB9LFxuICAgICAgICBibG9ja3F1b3RlOiB7XG4gICAgICAgICAgICB0aXRsZTogXCJaaXRhdGJsb2NrXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFaW5lbiBaaXRhdGJsb2NrIGhpbnp1ZsO8Z2VuXCIsXG4gICAgICAgICAgICBrZXl3b3JkczogW1wieml0YXRcIiwgXCJibG9ja3F1b3RlXCIsIFwicXVvdGVcIiwgXCJjaXRhdGlvblwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgY29kZToge1xuICAgICAgICAgICAgdGl0bGU6IFwiQ29kZWJsb2NrXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFaW5lbiBDb2RlYmxvY2sgaGluenVmw7xnZW5cIixcbiAgICAgICAgICAgIGtleXdvcmRzOiBbXCJjb2RlXCIsIFwiY29kZWJsb2NrXCIsIFwicHJlXCIsIFwicHJvZ3JhbW1pZXJ1bmdcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIGltYWdlOiB7XG4gICAgICAgICAgICB0aXRsZTogXCJCaWxkXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFaW4gQmlsZCBlaW5mw7xnZW5cIixcbiAgICAgICAgICAgIGtleXdvcmRzOiBbXCJiaWxkXCIsIFwiaW1hZ2VcIiwgXCJmb3RvXCIsIFwicGhvdG9cIiwgXCJwaWN0dXJlXCIsIFwiaW1nXCJdLFxuICAgICAgICB9LFxuICAgICAgICBob3Jpem9udGFsUnVsZToge1xuICAgICAgICAgICAgdGl0bGU6IFwiSG9yaXpvbnRhbGUgTGluaWVcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVpbmUgaG9yaXpvbnRhbGUgVHJlbm5saW5pZSBoaW56dWbDvGdlblwiLFxuICAgICAgICAgICAga2V5d29yZHM6IFtcImxpbmllXCIsIFwiaG9yaXpvbnRhbFwiLCBcInJ1bGVcIiwgXCJoclwiLCBcInRyZW5ubGluaWVcIiwgXCJzZXBhcmF0b3JcIl0sXG4gICAgICAgIH0sXG4gICAgICAgIHRhYmxlOiB7XG4gICAgICAgICAgICB0aXRsZTogXCJUYWJlbGxlXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFaW5lIFRhYmVsbGUgZWluZsO8Z2VuXCIsXG4gICAgICAgICAgICBrZXl3b3JkczogW1widGFiZWxsZVwiLCBcInRhYmxlXCIsIFwiZ3JpZFwiLCBcInJhc3RlclwiLCBcImRhdGVuXCIsIFwiemVpbGVuXCIsIFwic3BhbHRlblwiXSxcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgdGFibGU6IHtcbiAgICAgICAgYWRkUm93QmVmb3JlOiBcIlplaWxlIGRhdm9yIGVpbmbDvGdlblwiLFxuICAgICAgICBhZGRSb3dBZnRlcjogXCJaZWlsZSBkYW5hY2ggZWluZsO8Z2VuXCIsXG4gICAgICAgIGRlbGV0ZVJvdzogXCJaZWlsZSBsw7ZzY2hlblwiLFxuICAgICAgICBhZGRDb2x1bW5CZWZvcmU6IFwiU3BhbHRlIGRhdm9yIGVpbmbDvGdlblwiLFxuICAgICAgICBhZGRDb2x1bW5BZnRlcjogXCJTcGFsdGUgZGFuYWNoIGVpbmbDvGdlblwiLFxuICAgICAgICBkZWxldGVDb2x1bW46IFwiU3BhbHRlIGzDtnNjaGVuXCIsXG4gICAgICAgIGRlbGV0ZVRhYmxlOiBcIlRhYmVsbGUgbMO2c2NoZW5cIixcbiAgICAgICAgdG9nZ2xlSGVhZGVyUm93OiBcIktvcGZ6ZWlsZSB1bXNjaGFsdGVuXCIsXG4gICAgICAgIHRvZ2dsZUhlYWRlckNvbHVtbjogXCJLb3Bmc3BhbHRlIHVtc2NoYWx0ZW5cIixcbiAgICAgICAgbWVyZ2VDZWxsczogXCJaZWxsZW4gdmVyYmluZGVuXCIsXG4gICAgICAgIHNwbGl0Q2VsbDogXCJaZWxsZSB0ZWlsZW5cIixcbiAgICB9LFxuXG4gICAgaW1hZ2VVcGxvYWQ6IHtcbiAgICAgICAgc2VsZWN0SW1hZ2U6IFwiQmlsZCBhdXN3w6RobGVuXCIsXG4gICAgICAgIGxvYWRFcnJvcjogXCJGZWhsZXIgYmVpbSBMYWRlbiBkZXMgQmlsZGVzXCIsXG4gICAgICAgIHVwbG9hZGluZ0ltYWdlOiBcIkJpbGQgd2lyZCBob2NoZ2VsYWRlbi4uLlwiLFxuICAgICAgICB1cGxvYWRQcm9ncmVzczogXCJVcGxvYWQtRm9ydHNjaHJpdHRcIixcbiAgICAgICAgdXBsb2FkRXJyb3I6IFwiVXBsb2FkLUZlaGxlclwiLFxuICAgICAgICB1cGxvYWRTdWNjZXNzOiBcIlVwbG9hZCBlcmZvbGdyZWljaFwiLFxuICAgICAgICBpbWFnZVRvb0xhcmdlOiBcIkJpbGQgaXN0IHp1IGdyb8OfXCIsXG4gICAgICAgIGludmFsaWRGaWxlVHlwZTogXCJVbmfDvGx0aWdlciBEYXRlaXR5cFwiLFxuICAgICAgICBkcmFnRHJvcFRleHQ6IFwiQmlsZGVyIGhpZXJoZXIgemllaGVuIHVuZCBhYmxlZ2VuXCIsXG4gICAgICAgIGNoYW5nZUltYWdlOiBcIkJpbGQgw6RuZGVyblwiLFxuICAgICAgICBkb3dubG9hZEltYWdlOiBcIkJpbGQgaGVydW50ZXJsYWRlblwiLFxuICAgICAgICBkZWxldGVJbWFnZTogXCJCaWxkIGzDtnNjaGVuXCIsXG4gICAgICAgIHJlc2l6ZVNtYWxsOiBcIktsZWluXCIsXG4gICAgICAgIHJlc2l6ZU1lZGl1bTogXCJNaXR0ZWxcIixcbiAgICAgICAgcmVzaXplTGFyZ2U6IFwiR3Jvw59cIixcbiAgICAgICAgcmVzaXplT3JpZ2luYWw6IFwiT3JpZ2luYWxncsO2w59lXCIsXG4gICAgICAgIGFsaWduTGVmdDogXCJMaW5rcyBhdXNyaWNodGVuXCIsXG4gICAgICAgIGFsaWduQ2VudGVyOiBcIlplbnRyaWVyZW5cIixcbiAgICAgICAgYWxpZ25SaWdodDogXCJSZWNodHMgYXVzcmljaHRlblwiLFxuICAgICAgICByZXNpemluZzogXCJHcsO2w59lIHdpcmQgYW5nZXBhc3N0Li4uXCIsXG4gICAgICAgIGNvbXByZXNzaW5nOiBcIkJpbGQgd2lyZCBrb21wcmltaWVydC4uLlwiLFxuICAgICAgICBjb21wcmVzc2lvbkVycm9yOiBcIkZlaGxlciBiZWkgZGVyIEtvbXByaW1pZXJ1bmdcIixcbiAgICAgICAgdmFsaWRhdGluZzogXCJEYXRlaSB3aXJkIGdlcHLDvGZ0Li4uXCIsXG4gICAgICAgIHVwbG9hZGluZ1RvU2VydmVyOiBcIlVwbG9hZCB6dW0gU2VydmVyLi4uXCIsXG4gICAgICAgIHJlcGxhY2luZ0ltYWdlOiBcIkJpbGQgd2lyZCBlcnNldHp0Li4uXCIsXG4gICAgICAgIGluc2VydGluZ0ltYWdlOiBcIkJpbGQgd2lyZCBpbiBkZW4gRWRpdG9yIGVpbmdlZsO8Z3QuLi5cIixcbiAgICAgICAgbm9GaWxlU2VsZWN0ZWQ6IFwiS2VpbmUgQmlsZGRhdGVpIGF1c2dld8OkaGx0XCIsXG4gICAgICAgIHNlbGVjdGlvbkNhbmNlbGxlZDogXCJBdXN3YWhsIGFiZ2Vicm9jaGVuXCIsXG4gICAgfSxcblxuICAgIGVkaXRvcjoge1xuICAgICAgICBwbGFjZWhvbGRlcjogXCJCZWdpbm5lIHp1IHNjaHJlaWJlbi4uLlwiLFxuICAgICAgICBjaGFyYWN0ZXI6IFwiWmVpY2hlblwiLFxuICAgICAgICBjaGFyYWN0ZXJQbHVyYWw6IFwiWmVpY2hlblwiLFxuICAgICAgICB3b3JkOiBcIldvcnRcIixcbiAgICAgICAgd29yZFBsdXJhbDogXCJXw7ZydGVyXCIsXG4gICAgICAgIGxpbmtQcm9tcHQ6IFwiTGluay1VUkwgZWluZ2ViZW5cIixcbiAgICAgICAgbGlua1VybFByb21wdDogXCJVUkwgZWluZ2ViZW5cIixcbiAgICAgICAgY29uZmlybURlbGV0ZTogXCJNw7ZjaHRlc3QgZHUgZGllcyB3aXJrbGljaCBsw7ZzY2hlbj9cIixcbiAgICAgICAgdG9nZ2xlRWRpdDogXCJJbiBkZW4gQmVhcmJlaXR1bmdzbW9kdXMgd2VjaHNlbG5cIixcbiAgICAgICAgdmlld01vZGU6IFwiSW4gZGVuIEFuc2ljaHRzbW9kdXMgd2VjaHNlbG5cIixcbiAgICAgICAgYmxvY2tBZGQ6IFwiS2xpY2tlbiwgdW0gZWluZW4gQmxvY2sgaGluenV6dWbDvGdlblwiLFxuICAgICAgICBibG9ja0RyYWc6IFwiWmllaGVuLCB1bSBkaWVzZW4gQmxvY2sgenUgdmVyc2NoaWViZW5cIixcbiAgICB9LFxuXG4gICAgY29tbW9uOiB7XG4gICAgICAgIGNhbmNlbDogXCJBYmJyZWNoZW5cIixcbiAgICAgICAgY29uZmlybTogXCJCZXN0w6R0aWdlblwiLFxuICAgICAgICBhcHBseTogXCJBbndlbmRlblwiLFxuICAgICAgICBkZWxldGU6IFwiTMO2c2NoZW5cIixcbiAgICAgICAgc2F2ZTogXCJTcGVpY2hlcm5cIixcbiAgICAgICAgY2xvc2U6IFwiU2NobGllw59lblwiLFxuICAgICAgICBsb2FkaW5nOiBcIkzDpGR0XCIsXG4gICAgICAgIGVycm9yOiBcIkZlaGxlclwiLFxuICAgICAgICBzdWNjZXNzOiBcIkVyZm9sZ1wiLFxuICAgIH0sXG5cbiAgICBleHBvcnQ6IHtcbiAgICAgICAgZXhwb3J0OiBcIkV4cG9ydGllcmVuXCIsXG4gICAgICAgIGh0bWw6IFwiSFRNTFwiLFxuICAgICAgICBtYXJrZG93bjogXCJNYXJrZG93blwiLFxuICAgICAgICB0ZXh0OiBcIk51ciBUZXh0XCIsXG4gICAgICAgIGNvcHlIdG1sOiBcIkFscyBIVE1MIGtvcGllcmVuXCIsXG4gICAgICAgIGNvcHlNYXJrZG93bjogXCJBbHMgTWFya2Rvd24ga29waWVyZW5cIixcbiAgICAgICAgY29weVRleHQ6IFwiQWxzIHJlaW5lbiBUZXh0IGtvcGllcmVuXCIsXG4gICAgICAgIGRvd25sb2FkSHRtbDogXCIuaHRtbCBoZXJ1bnRlcmxhZGVuXCIsXG4gICAgICAgIGRvd25sb2FkTWFya2Rvd246IFwiLm1kIGhlcnVudGVybGFkZW5cIixcbiAgICAgICAgZG93bmxvYWRUZXh0OiBcIi50eHQgaGVydW50ZXJsYWRlblwiLFxuICAgICAgICBjb3BpZWRTdWNjZXNzOiBcIkluIGRpZSBad2lzY2hlbmFibGFnZSBrb3BpZXJ0IVwiLFxuICAgIH0sXG59OyJdfQ==