{
  "version": 3,
  "sources": ["/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/data-grid-overlay-editor-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/scrolling-data-grid/scrolling-data-grid.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/scrolling-data-grid/infinite-scroller.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-search/data-grid-search-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-editor/group-rename.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-editor-container/data-grid-container.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/bubbles-overlay-editor-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/drilldown-overlay-editor.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/image-overlay-editor-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/markdown-div/private/markdown-container.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/growing-entry/growing-entry-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/markdown-overlay-editor-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/number-overlay-editor-style.tsx", "/Users/bean/zt-code/glide-data-grid/packages/core/src/data-grid-overlay-editor/private/uri-overlay-editor-style.tsx"],
  "sourcesContent": ["import { styled } from \"@linaria/react\";\nexport const DataGridOverlayEditorStyle = styled.div`\n    position: absolute;\n\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    box-sizing: border-box;\n\n    --overlay-top: ${(p) => p.targetY}px;\n\n    left: ${(p) => p.targetX - 1}px;\n    top: ${(p) => p.targetY - 1}px;\n    min-width: ${(p) => p.targetWidth + 2}px;\n    min-height: ${(p) => p.targetHeight + 2}px;\n    width: max-content;\n    max-width: 400px;\n    max-height: calc(100vh - ${(p) => p.targetY + 10}px);\n\n    font-family: var(--gdg-font-family);\n    font-size: var(--gdg-editor-font-size);\n\n    @keyframes glide_fade_in {\n        from {\n            opacity: 0%;\n        }\n\n        to {\n            opacity: 100%;\n        }\n    }\n\n    &.gdg-style {\n        border-radius: 2px;\n        background-color: var(--gdg-bg-cell);\n\n        box-shadow: 0 0 0 1px var(--gdg-accent-color), 0px 0px 1px rgba(62, 65, 86, 0.4),\n            0px 6px 12px rgba(62, 65, 86, 0.15);\n\n        animation: glide_fade_in 60ms 1;\n    }\n\n    &.pad {\n        padding: ${(p) => Math.max(0, (p.targetHeight - 28) / 2)}px 8.5px 3px;\n    }\n\n    .clip-region {\n        display: flex;\n        flex-direction: column;\n        overflow-y: auto;\n        overflow-x: hidden;\n        border-radius: 2px;\n        flex-grow: 1;\n\n        .gdg-growing-entry {\n            height: 100%;\n        }\n\n        & input.gdg-input {\n            width: 100%;\n            border: none;\n            border-width: 0;\n            outline: none;\n        }\n\n        & textarea.gdg-input {\n            border: none;\n            border-width: 0;\n            outline: none;\n        }\n    }\n\n    text-align: start;\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL2RhdGEtZ3JpZC1vdmVybGF5LWVkaXRvci1zdHlsZS50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIHRhcmdldFg6IG51bWJlcjtcbiAgICB0YXJnZXRZOiBudW1iZXI7XG4gICAgdGFyZ2V0V2lkdGg6IG51bWJlcjtcbiAgICB0YXJnZXRIZWlnaHQ6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBEYXRhR3JpZE92ZXJsYXlFZGl0b3JTdHlsZSA9IHN0eWxlZC5kaXY8UHJvcHM+YFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAtLW92ZXJsYXktdG9wOiAke3AgPT4gcC50YXJnZXRZfXB4O1xuXG4gICAgbGVmdDogJHtwID0+IHAudGFyZ2V0WCAtIDF9cHg7XG4gICAgdG9wOiAke3AgPT4gcC50YXJnZXRZIC0gMX1weDtcbiAgICBtaW4td2lkdGg6ICR7cCA9PiBwLnRhcmdldFdpZHRoICsgMn1weDtcbiAgICBtaW4taGVpZ2h0OiAke3AgPT4gcC50YXJnZXRIZWlnaHQgKyAyfXB4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAke3AgPT4gcC50YXJnZXRZICsgMTB9cHgpO1xuXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWdkZy1mb250LWZhbWlseSk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nZGctZWRpdG9yLWZvbnQtc2l6ZSk7XG5cbiAgICBAa2V5ZnJhbWVzIGdsaWRlX2ZhZGVfaW4ge1xuICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgdG8ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuZ2RnLXN0eWxlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctY2VsbCk7XG5cbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWdkZy1hY2NlbnQtY29sb3IpLCAwcHggMHB4IDFweCByZ2JhKDYyLCA2NSwgODYsIDAuNCksXG4gICAgICAgICAgICAwcHggNnB4IDEycHggcmdiYSg2MiwgNjUsIDg2LCAwLjE1KTtcblxuICAgICAgICBhbmltYXRpb246IGdsaWRlX2ZhZGVfaW4gNjBtcyAxO1xuICAgIH1cblxuICAgICYucGFkIHtcbiAgICAgICAgcGFkZGluZzogJHtwID0+IE1hdGgubWF4KDAsIChwLnRhcmdldEhlaWdodCAtIDI4KSAvIDIpfXB4IDguNXB4IDNweDtcbiAgICB9XG5cbiAgICAuY2xpcC1yZWdpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIC5nZGctZ3Jvd2luZy1lbnRyeSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmIGlucHV0LmdkZy1pbnB1dCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmIHRleHRhcmVhLmdkZy1pbnB1dCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG5gO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFRTyxhQUFNLDZCQUE2QixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFRNUIsT0FBSyxFQUFFO0FBQUE7QUFBQSxZQUVoQixPQUFLLEVBQUUsVUFBVTtBQUFBLFdBQ2xCLE9BQUssRUFBRSxVQUFVO0FBQUEsaUJBQ1gsT0FBSyxFQUFFLGNBQWM7QUFBQSxrQkFDcEIsT0FBSyxFQUFFLGVBQWU7QUFBQTtBQUFBO0FBQUEsK0JBR1QsT0FBSyxFQUFFLFVBQVU7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQTBCN0IsT0FBSyxLQUFLLElBQUksR0FBSSxHQUFFLGVBQWUsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import * as React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport DataGridDnd from \"../data-grid-dnd/data-grid-dnd\";\nimport { InfiniteScroller } from \"./infinite-scroller\";\nimport clamp from \"lodash/clamp.js\";\nconst MinimapStyle = styled.div`\n    position: absolute;\n    right: 44px;\n    bottom: 44px;\n    background-color: var(--gdg-bg-cell);\n    background: linear-gradient(var(--gdg-bg-cell), var(--gdg-bg-cell-medium));\n    border-radius: 4px;\n    z-index: 1;\n    box-shadow: 0 0 0 1px var(--gdg-border-color), 0 2px 5px rgba(0, 0, 0, 0.08);\n\n    overflow: hidden;\n\n    .header {\n        position: absolute;\n        left: 0;\n        top: 0;\n        width: 100%;\n        height: 4px;\n        background-color: var(--gdg-bg-header);\n        box-shadow: 0 0 0 1px var(--gdg-border-color);\n    }\n\n    .locationMarker {\n        position: absolute;\n\n        border: 1px solid var(--gdg-accent-color);\n        background-color: var(--gdg-accent-light);\n    }\n`;\nconst GridScroller = (p) => {\n  const {\n    columns,\n    rows,\n    rowHeight,\n    headerHeight,\n    groupHeaderHeight,\n    enableGroups,\n    freezeColumns,\n    experimental,\n    clientSize,\n    className,\n    onVisibleRegionChanged,\n    scrollToEnd,\n    scrollRef,\n    preventDiagonalScrolling,\n    rightElement,\n    rightElementProps,\n    overscrollX,\n    overscrollY,\n    showMinimap = false,\n    initialSize,\n    smoothScrollX = false,\n    smoothScrollY = false,\n    isDraggable\n  } = p;\n  const { paddingRight, paddingBottom } = experimental ?? {};\n  const [clientWidth, clientHeight] = clientSize;\n  const last = React.useRef();\n  const lastX = React.useRef();\n  const lastY = React.useRef();\n  const lastSize = React.useRef();\n  const width = React.useMemo(() => {\n    let r = Math.max(0, overscrollX ?? 0);\n    for (const c of columns) {\n      r += c.width;\n    }\n    return r;\n  }, [columns, overscrollX]);\n  let height = enableGroups ? headerHeight + groupHeaderHeight : headerHeight;\n  if (typeof rowHeight === \"number\") {\n    height += rows * rowHeight;\n  } else {\n    for (let r = 0; r < rows; r++) {\n      height += rowHeight(r);\n    }\n  }\n  if (overscrollY !== void 0) {\n    height += overscrollY;\n  }\n  const lastArgs = React.useRef();\n  const processArgs = React.useCallback(() => {\n    if (lastArgs.current === void 0)\n      return;\n    const args = { ...lastArgs.current };\n    let x = 0;\n    let tx = args.x < 0 ? -args.x : 0;\n    let cellRight = 0;\n    let cellX = 0;\n    args.x = args.x < 0 ? 0 : args.x;\n    let stickyColWidth = 0;\n    for (let i = 0; i < freezeColumns; i++) {\n      stickyColWidth += columns[i].width;\n    }\n    for (const c of columns) {\n      const cx = x - stickyColWidth;\n      if (args.x >= cx + c.width) {\n        x += c.width;\n        cellX++;\n        cellRight++;\n      } else if (args.x > cx) {\n        x += c.width;\n        if (smoothScrollX) {\n          tx += cx - args.x;\n        } else {\n          cellX++;\n        }\n        cellRight++;\n      } else if (args.x + args.width > cx) {\n        x += c.width;\n        cellRight++;\n      } else {\n        break;\n      }\n    }\n    let ty = 0;\n    let cellY = 0;\n    let cellBottom = 0;\n    if (typeof rowHeight === \"number\") {\n      if (smoothScrollY) {\n        cellY = Math.floor(args.y / rowHeight);\n        ty = cellY * rowHeight - args.y;\n      } else {\n        cellY = Math.ceil(args.y / rowHeight);\n      }\n      cellBottom = Math.ceil(args.height / rowHeight) + cellY;\n      if (ty < 0)\n        cellBottom++;\n    } else {\n      let y = 0;\n      for (let row = 0; row < rows; row++) {\n        const rh = rowHeight(row);\n        const cy = y + (smoothScrollY ? 0 : rh / 2);\n        if (args.y >= y + rh) {\n          y += rh;\n          cellY++;\n          cellBottom++;\n        } else if (args.y > cy) {\n          y += rh;\n          if (smoothScrollY) {\n            ty += cy - args.y;\n          } else {\n            cellY++;\n          }\n          cellBottom++;\n        } else if (args.y + args.height > rh / 2 + y) {\n          y += rh;\n          cellBottom++;\n        } else {\n          break;\n        }\n      }\n    }\n    const rect = {\n      x: cellX,\n      y: cellY,\n      width: cellRight - cellX,\n      height: cellBottom - cellY\n    };\n    const oldRect = last.current;\n    if (oldRect === void 0 || oldRect.y !== rect.y || oldRect.x !== rect.x || oldRect.height !== rect.height || oldRect.width !== rect.width || lastX.current !== tx || lastY.current !== ty || args.width !== lastSize.current?.[0] || args.height !== lastSize.current?.[1]) {\n      onVisibleRegionChanged?.({\n        x: cellX,\n        y: cellY,\n        width: cellRight - cellX,\n        height: cellBottom - cellY\n      }, args.width, args.height, args.paddingRight ?? 0, tx, ty);\n      last.current = rect;\n      lastX.current = tx;\n      lastY.current = ty;\n      lastSize.current = [args.width, args.height];\n    }\n  }, [columns, rowHeight, rows, onVisibleRegionChanged, freezeColumns, smoothScrollX, smoothScrollY]);\n  const onScrollUpdate = React.useCallback((args) => {\n    lastArgs.current = args;\n    processArgs();\n  }, [processArgs]);\n  React.useEffect(() => {\n    processArgs();\n  }, [processArgs]);\n  const scroller = scrollRef?.current ?? void 0;\n  const aspect = clamp(width / height, 2 / 3, 1.5);\n  const maxSize = 200;\n  const w = aspect > 1 ? maxSize : Math.ceil(maxSize * aspect);\n  const h = aspect > 1 ? Math.ceil(maxSize / aspect) : maxSize;\n  const hRatio = w / width;\n  const vRatio = h / height;\n  const vWidth = Math.min(clientWidth * Math.max(hRatio, 0.01), w);\n  const vHeight = Math.min(clientHeight * Math.max(vRatio, 0.01), h);\n  const left = (scroller?.scrollLeft ?? 0) / (width - clientWidth) * (w - vWidth);\n  const top = (scroller?.scrollTop ?? 0) / (height - clientHeight) * (h - vHeight);\n  const minimap = React.useMemo(() => {\n    if (!showMinimap || vWidth === 0 || vHeight === 0)\n      return void 0;\n    const handleMouse = (e) => {\n      if (scroller === void 0)\n        return;\n      const bounds = e.currentTarget.getBoundingClientRect();\n      const x = e.clientX - bounds.x - vWidth / 2;\n      const y = e.clientY - bounds.y - vHeight / 2;\n      const newScrollLeft = (width - scroller.clientWidth) * (x / (w - vWidth));\n      const newScrollTop = (height - scroller.clientHeight) * (y / (h - vHeight));\n      scroller.scrollTo({\n        left: newScrollLeft,\n        top: newScrollTop,\n        behavior: e.type === \"mousemove\" ? \"auto\" : \"smooth\"\n      });\n    };\n    return /* @__PURE__ */ React.createElement(MinimapStyle, {\n      style: { width: w, height: h },\n      \"data-testid\": \"minimap-container\",\n      onMouseMove: (e) => {\n        if (e.buttons !== 1)\n          return;\n        handleMouse(e);\n      },\n      onClick: handleMouse\n    }, /* @__PURE__ */ React.createElement(\"div\", {\n      className: \"header\"\n    }), /* @__PURE__ */ React.createElement(\"div\", {\n      className: \"locationMarker\",\n      onDragStart: (e) => e.preventDefault(),\n      style: {\n        left,\n        top,\n        width: vWidth,\n        height: vHeight,\n        borderRadius: Math.min(vWidth, vHeight * 0.2, 9)\n      }\n    }));\n  }, [h, height, left, scroller, showMinimap, top, vHeight, vWidth, w, width]);\n  return /* @__PURE__ */ React.createElement(InfiniteScroller, {\n    scrollRef,\n    minimap,\n    className,\n    preventDiagonalScrolling,\n    draggable: isDraggable === true || typeof isDraggable === \"string\",\n    scrollWidth: width + (paddingRight ?? 0),\n    scrollHeight: height + (paddingBottom ?? 0),\n    clientHeight,\n    rightElement,\n    paddingBottom,\n    paddingRight,\n    rightElementProps,\n    update: onScrollUpdate,\n    initialSize,\n    scrollToEnd\n  }, /* @__PURE__ */ React.createElement(DataGridDnd, {\n    eventTargetRef: scrollRef,\n    width: clientWidth,\n    height: clientHeight,\n    accessibilityHeight: p.accessibilityHeight,\n    canvasRef: p.canvasRef,\n    cellXOffset: p.cellXOffset,\n    cellYOffset: p.cellYOffset,\n    columns: p.columns,\n    disabledRows: p.disabledRows,\n    enableGroups: p.enableGroups,\n    fillHandle: p.fillHandle,\n    firstColAccessible: p.firstColAccessible,\n    fixedShadowX: p.fixedShadowX,\n    fixedShadowY: p.fixedShadowY,\n    freezeColumns: p.freezeColumns,\n    getCellContent: p.getCellContent,\n    getCellRenderer: p.getCellRenderer,\n    getGroupDetails: p.getGroupDetails,\n    getRowThemeOverride: p.getRowThemeOverride,\n    groupHeaderHeight: p.groupHeaderHeight,\n    headerHeight: p.headerHeight,\n    highlightRegions: p.highlightRegions,\n    imageWindowLoader: p.imageWindowLoader,\n    isFilling: p.isFilling,\n    isFocused: p.isFocused,\n    lockColumns: p.lockColumns,\n    maxColumnWidth: p.maxColumnWidth,\n    minColumnWidth: p.minColumnWidth,\n    onHeaderMenuClick: p.onHeaderMenuClick,\n    onMouseMove: p.onMouseMove,\n    prelightCells: p.prelightCells,\n    rowHeight: p.rowHeight,\n    rows: p.rows,\n    selection: p.selection,\n    theme: p.theme,\n    trailingRowType: p.trailingRowType,\n    translateX: p.translateX,\n    translateY: p.translateY,\n    verticalBorder: p.verticalBorder,\n    drawCustomCell: p.drawCustomCell,\n    drawFocusRing: p.drawFocusRing,\n    drawHeader: p.drawHeader,\n    experimental: p.experimental,\n    gridRef: p.gridRef,\n    headerIcons: p.headerIcons,\n    isDraggable: p.isDraggable,\n    onCanvasBlur: p.onCanvasBlur,\n    onCanvasFocused: p.onCanvasFocused,\n    onCellFocused: p.onCellFocused,\n    onColumnMoved: p.onColumnMoved,\n    onColumnResize: p.onColumnResize,\n    onColumnResizeEnd: p.onColumnResizeEnd,\n    onColumnResizeStart: p.onColumnResizeStart,\n    onContextMenu: p.onContextMenu,\n    onDragEnd: p.onDragEnd,\n    onDragLeave: p.onDragLeave,\n    onDragOverCell: p.onDragOverCell,\n    onDragStart: p.onDragStart,\n    onDrop: p.onDrop,\n    onItemHovered: p.onItemHovered,\n    onKeyDown: p.onKeyDown,\n    onKeyUp: p.onKeyUp,\n    onMouseDown: p.onMouseDown,\n    onMouseUp: p.onMouseUp,\n    onRowMoved: p.onRowMoved,\n    smoothScrollX: p.smoothScrollX,\n    smoothScrollY: p.smoothScrollY\n  }));\n};\nexport default GridScroller;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvc2Nyb2xsaW5nLWRhdGEtZ3JpZC9zY3JvbGxpbmctZGF0YS1ncmlkLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcbmltcG9ydCBEYXRhR3JpZERuZCwgeyBEYXRhR3JpZERuZFByb3BzIH0gZnJvbSBcIi4uL2RhdGEtZ3JpZC1kbmQvZGF0YS1ncmlkLWRuZFwiO1xuaW1wb3J0IHR5cGUgeyBSZWN0YW5nbGUgfSBmcm9tIFwiLi4vZGF0YS1ncmlkL2RhdGEtZ3JpZC10eXBlc1wiO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxlciB9IGZyb20gXCIuL2luZmluaXRlLXNjcm9sbGVyXCI7XG5pbXBvcnQgY2xhbXAgZnJvbSBcImxvZGFzaC9jbGFtcC5qc1wiO1xuXG50eXBlIFByb3BzID0gT21pdDxEYXRhR3JpZERuZFByb3BzLCBcIndpZHRoXCIgfCBcImhlaWdodFwiIHwgXCJldmVudFRhcmdldFJlZlwiPjtcblxuZXhwb3J0IGludGVyZmFjZSBTY3JvbGxpbmdEYXRhR3JpZFByb3BzIGV4dGVuZHMgUHJvcHMge1xuICAgIHJlYWRvbmx5IGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IG9uVmlzaWJsZVJlZ2lvbkNoYW5nZWQ6XG4gICAgICAgIHwgKChcbiAgICAgICAgICAgICAgcmFuZ2U6IFJlY3RhbmdsZSxcbiAgICAgICAgICAgICAgY2xpZW50V2lkdGg6IG51bWJlcixcbiAgICAgICAgICAgICAgY2xpZW50SGVpZ2h0OiBudW1iZXIsXG4gICAgICAgICAgICAgIHJpZ2h0RWxXaWR0aDogbnVtYmVyLFxuICAgICAgICAgICAgICB0eDogbnVtYmVyLFxuICAgICAgICAgICAgICB0eTogbnVtYmVyXG4gICAgICAgICAgKSA9PiB2b2lkKVxuICAgICAgICB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDYXVzZXMgdGhlIGdyaWQgdG8gc2Nyb2xsIHRvIHRoZSBlbmQgd2hlbiBmbGlwcGVkIHRvIHRydWVcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIERhdGFFZGl0b3JSZWYuc2Nyb2xsVG99IGluc3RlYWRcbiAgICAgKiBAZ3JvdXAgRGVwcmVjYXRlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNjcm9sbFRvRW5kOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IHNjcm9sbFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG92ZXJzY3JvbGwgcHJvcGVydGllcyBhcmUgdXNlZCB0byBhbGxvdyB0aGUgZ3JpZCB0byBzY3JvbGwgcGFzdCB0aGUgbG9naWNhbCBlbmQgb2YgdGhlIGNvbnRlbnQgYnkgYSBmaXhlZFxuICAgICAqIG51bWJlciBvZiBwaXhlbHMuIFRoaXMgaXMgdXNlZnVsIHBhcnRpY3VsYXJseSBvbiB0aGUgWCBheGlzIGlmIHlvdSBhbGxvdyBmb3IgcmVzaXppbmcgY29sdW1ucyBhcyBpdCBjYW4gbWFrZVxuICAgICAqIHJlc2l6aW5nIHRoZSBmaW5hbCBjb2x1bW4gc2lnbmlmaWNhbnRseSBlYXNpZXIuXG4gICAgICpcbiAgICAgKiBAZ3JvdXAgQWR2YW5jZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBvdmVyc2Nyb2xsWDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiB7QGluaGVyaXREb2Mgb3ZlcnNjcm9sbFh9XG4gICAgICogQGdyb3VwIEFkdmFuY2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgb3ZlcnNjcm9sbFk6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBhbiBpbml0aWFsIHNpemUgZm9yIHRoZSBncmlkIHdoaWNoIGNhbiBwcmV2ZW50IGEgZmxpY2tlciBvbiBsb2FkIGlmIHRoZSBpbml0aWFsIHNpemUgaXMga25vd24gcHJpb3IgdG9cbiAgICAgKiBsYXlvdXQuXG4gICAgICpcbiAgICAgKiBAZ3JvdXAgQWR2YW5jZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBpbml0aWFsU2l6ZTogcmVhZG9ubHkgW3dpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTZXQgdG8gdHJ1ZSB0byBwcmV2ZW50IGFueSBkaWFnb25hbCBzY3JvbGxpbmcuXG4gICAgICogQGdyb3VwIEFkdmFuY2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJldmVudERpYWdvbmFsU2Nyb2xsaW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogSWYgYHJpZ2h0RWxlbWVudFByb3BzLnN0aWNreWAgaXMgc2V0IHRvIHRydWUgdGhlIHJpZ2h0IGVsZW1lbnQgd2lsbCBiZSB2aXNpYmxlIGF0IGFsbCB0aW1lcywgb3RoZXJ3aXNlIHRoZSB1c2VyXG4gICAgICogd2lsbCBuZWVkIHRvIHNjcm9sbCB0byB0aGUgZW5kIHRvIHJldmVhbCBpdC5cbiAgICAgKlxuICAgICAqIElmIGByaWdodEVsZW1lbnRQcm9wcy5maWxsYCBpcyBzZXQsIHRoZSByaWdodCBlbGVtZW50cyBjb250YWluZXIgd2lsbCBmaWxsIHRvIGNvbnN1bWUgYWxsIHJlbWFpbmluZyBzcGFjZSAoaWZcbiAgICAgKiBhbnkpIGF0IHRoZSBlbmQgb2YgdGhlIGdyaWQuIFRoaXMgZG9lcyBub3QgcGxheSBuaWNlIHdpdGggZ3Jvd2luZyBjb2x1bW5zLlxuICAgICAqXG4gICAgICogQGdyb3VwIEFkdmFuY2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmlnaHRFbGVtZW50UHJvcHM6XG4gICAgICAgIHwge1xuICAgICAgICAgICAgICByZWFkb25seSBzdGlja3k/OiBib29sZWFuO1xuICAgICAgICAgICAgICByZWFkb25seSBmaWxsPzogYm9vbGVhbjtcbiAgICAgICAgICB9XG4gICAgICAgIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFRoZSByaWdodCBlbGVtZW50IGlzIGEgRE9NIG5vZGUgd2hpY2ggY2FuIGJlIGluc2VydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGhvcml6b250YWwgc2Nyb2xsIHJlZ2lvbi4gVGhpcyBjYW4gYmVcbiAgICAgKiB1c2VkIHRvIGNyZWF0ZSBhIHJpZ2h0IGhhbmRsZSBwYW5lbCwgbWFrZSBhIGJpZyBhZGQgYnV0dG9uLCBvciBkaXNwbGF5IG1lc3NhZ2VzLlxuICAgICAqIEBncm91cCBBZHZhbmNlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJpZ2h0RWxlbWVudDogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIGludGVyYWN0aXZlIG1pbmltYXAuXG4gICAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgICAqIEBncm91cCBBZHZhbmNlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNob3dNaW5pbWFwOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IGNsaWVudFNpemU6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl07XG59XG5cbmNvbnN0IE1pbmltYXBTdHlsZSA9IHN0eWxlZC5kaXZgXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA0NHB4O1xuICAgIGJvdHRvbTogNDRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctY2VsbCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWdkZy1iZy1jZWxsKSwgdmFyKC0tZ2RnLWJnLWNlbGwtbWVkaXVtKSk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWdkZy1ib3JkZXItY29sb3IpLCAwIDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAuaGVhZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWJnLWhlYWRlcik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1nZGctYm9yZGVyLWNvbG9yKTtcbiAgICB9XG5cbiAgICAubG9jYXRpb25NYXJrZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ2RnLWFjY2VudC1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1hY2NlbnQtbGlnaHQpO1xuICAgIH1cbmA7XG5cbmNvbnN0IEdyaWRTY3JvbGxlcjogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8U2Nyb2xsaW5nRGF0YUdyaWRQcm9wcz4gPSBwID0+IHtcbiAgICBjb25zdCB7XG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIHJvd3MsXG4gICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgaGVhZGVySGVpZ2h0LFxuICAgICAgICBncm91cEhlYWRlckhlaWdodCxcbiAgICAgICAgZW5hYmxlR3JvdXBzLFxuICAgICAgICBmcmVlemVDb2x1bW5zLFxuICAgICAgICBleHBlcmltZW50YWwsXG4gICAgICAgIGNsaWVudFNpemUsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgb25WaXNpYmxlUmVnaW9uQ2hhbmdlZCxcbiAgICAgICAgc2Nyb2xsVG9FbmQsXG4gICAgICAgIHNjcm9sbFJlZixcbiAgICAgICAgcHJldmVudERpYWdvbmFsU2Nyb2xsaW5nLFxuICAgICAgICByaWdodEVsZW1lbnQsXG4gICAgICAgIHJpZ2h0RWxlbWVudFByb3BzLFxuICAgICAgICBvdmVyc2Nyb2xsWCxcbiAgICAgICAgb3ZlcnNjcm9sbFksXG4gICAgICAgIHNob3dNaW5pbWFwID0gZmFsc2UsXG4gICAgICAgIGluaXRpYWxTaXplLFxuICAgICAgICBzbW9vdGhTY3JvbGxYID0gZmFsc2UsXG4gICAgICAgIHNtb290aFNjcm9sbFkgPSBmYWxzZSxcbiAgICAgICAgaXNEcmFnZ2FibGUsXG4gICAgfSA9IHA7XG4gICAgY29uc3QgeyBwYWRkaW5nUmlnaHQsIHBhZGRpbmdCb3R0b20gfSA9IGV4cGVyaW1lbnRhbCA/PyB7fTtcblxuICAgIGNvbnN0IFtjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0XSA9IGNsaWVudFNpemU7XG4gICAgY29uc3QgbGFzdCA9IFJlYWN0LnVzZVJlZjxSZWN0YW5nbGUgfCB1bmRlZmluZWQ+KCk7XG4gICAgY29uc3QgbGFzdFggPSBSZWFjdC51c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICAgIGNvbnN0IGxhc3RZID0gUmVhY3QudXNlUmVmPG51bWJlciB8IHVuZGVmaW5lZD4oKTtcbiAgICBjb25zdCBsYXN0U2l6ZSA9IFJlYWN0LnVzZVJlZjxyZWFkb25seSBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgY29uc3Qgd2lkdGggPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IHIgPSBNYXRoLm1heCgwLCBvdmVyc2Nyb2xsWCA/PyAwKTtcbiAgICAgICAgZm9yIChjb25zdCBjIG9mIGNvbHVtbnMpIHtcbiAgICAgICAgICAgIHIgKz0gYy53aWR0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcjtcbiAgICB9LCBbY29sdW1ucywgb3ZlcnNjcm9sbFhdKTtcblxuICAgIGxldCBoZWlnaHQgPSBlbmFibGVHcm91cHMgPyBoZWFkZXJIZWlnaHQgKyBncm91cEhlYWRlckhlaWdodCA6IGhlYWRlckhlaWdodDtcbiAgICBpZiAodHlwZW9mIHJvd0hlaWdodCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICBoZWlnaHQgKz0gcm93cyAqIHJvd0hlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGxldCByID0gMDsgciA8IHJvd3M7IHIrKykge1xuICAgICAgICAgICAgaGVpZ2h0ICs9IHJvd0hlaWdodChyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAob3ZlcnNjcm9sbFkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBoZWlnaHQgKz0gb3ZlcnNjcm9sbFk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFzdEFyZ3MgPSBSZWFjdC51c2VSZWY8UmVjdGFuZ2xlICYgeyBwYWRkaW5nUmlnaHQ6IG51bWJlciB9PigpO1xuXG4gICAgY29uc3QgcHJvY2Vzc0FyZ3MgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmIChsYXN0QXJncy5jdXJyZW50ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgICAgY29uc3QgYXJncyA9IHsgLi4ubGFzdEFyZ3MuY3VycmVudCB9O1xuXG4gICAgICAgIGxldCB4ID0gMDtcbiAgICAgICAgbGV0IHR4ID0gYXJncy54IDwgMCA/IC1hcmdzLnggOiAwO1xuICAgICAgICBsZXQgY2VsbFJpZ2h0ID0gMDtcbiAgICAgICAgbGV0IGNlbGxYID0gMDtcblxuICAgICAgICBhcmdzLnggPSBhcmdzLnggPCAwID8gMCA6IGFyZ3MueDtcblxuICAgICAgICBsZXQgc3RpY2t5Q29sV2lkdGggPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZyZWV6ZUNvbHVtbnM7IGkrKykge1xuICAgICAgICAgICAgc3RpY2t5Q29sV2lkdGggKz0gY29sdW1uc1tpXS53aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgYyBvZiBjb2x1bW5zKSB7XG4gICAgICAgICAgICBjb25zdCBjeCA9IHggLSBzdGlja3lDb2xXaWR0aDtcbiAgICAgICAgICAgIGlmIChhcmdzLnggPj0gY3ggKyBjLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgeCArPSBjLndpZHRoO1xuICAgICAgICAgICAgICAgIGNlbGxYKys7XG4gICAgICAgICAgICAgICAgY2VsbFJpZ2h0Kys7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3MueCA+IGN4KSB7XG4gICAgICAgICAgICAgICAgeCArPSBjLndpZHRoO1xuICAgICAgICAgICAgICAgIGlmIChzbW9vdGhTY3JvbGxYKSB7XG4gICAgICAgICAgICAgICAgICAgIHR4ICs9IGN4IC0gYXJncy54O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNlbGxYKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNlbGxSaWdodCsrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhcmdzLnggKyBhcmdzLndpZHRoID4gY3gpIHtcbiAgICAgICAgICAgICAgICB4ICs9IGMud2lkdGg7XG4gICAgICAgICAgICAgICAgY2VsbFJpZ2h0Kys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHR5ID0gMDtcbiAgICAgICAgbGV0IGNlbGxZID0gMDtcbiAgICAgICAgbGV0IGNlbGxCb3R0b20gPSAwO1xuICAgICAgICBpZiAodHlwZW9mIHJvd0hlaWdodCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHNtb290aFNjcm9sbFkpIHtcbiAgICAgICAgICAgICAgICBjZWxsWSA9IE1hdGguZmxvb3IoYXJncy55IC8gcm93SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB0eSA9IGNlbGxZICogcm93SGVpZ2h0IC0gYXJncy55O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjZWxsWSA9IE1hdGguY2VpbChhcmdzLnkgLyByb3dIZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2VsbEJvdHRvbSA9IE1hdGguY2VpbChhcmdzLmhlaWdodCAvIHJvd0hlaWdodCkgKyBjZWxsWTtcbiAgICAgICAgICAgIGlmICh0eSA8IDApIGNlbGxCb3R0b20rKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCB5ID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IDA7IHJvdyA8IHJvd3M7IHJvdysrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmggPSByb3dIZWlnaHQocm93KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjeSA9IHkgKyAoc21vb3RoU2Nyb2xsWSA/IDAgOiByaCAvIDIpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzLnkgPj0geSArIHJoKSB7XG4gICAgICAgICAgICAgICAgICAgIHkgKz0gcmg7XG4gICAgICAgICAgICAgICAgICAgIGNlbGxZKys7XG4gICAgICAgICAgICAgICAgICAgIGNlbGxCb3R0b20rKztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3MueSA+IGN5KSB7XG4gICAgICAgICAgICAgICAgICAgIHkgKz0gcmg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzbW9vdGhTY3JvbGxZKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eSArPSBjeSAtIGFyZ3MueTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxZKys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2VsbEJvdHRvbSsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXJncy55ICsgYXJncy5oZWlnaHQgPiByaCAvIDIgKyB5KSB7XG4gICAgICAgICAgICAgICAgICAgIHkgKz0gcmg7XG4gICAgICAgICAgICAgICAgICAgIGNlbGxCb3R0b20rKztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWN0OiBSZWN0YW5nbGUgPSB7XG4gICAgICAgICAgICB4OiBjZWxsWCxcbiAgICAgICAgICAgIHk6IGNlbGxZLFxuICAgICAgICAgICAgd2lkdGg6IGNlbGxSaWdodCAtIGNlbGxYLFxuICAgICAgICAgICAgaGVpZ2h0OiBjZWxsQm90dG9tIC0gY2VsbFksXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb2xkUmVjdCA9IGxhc3QuY3VycmVudDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBvbGRSZWN0ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIG9sZFJlY3QueSAhPT0gcmVjdC55IHx8XG4gICAgICAgICAgICBvbGRSZWN0LnggIT09IHJlY3QueCB8fFxuICAgICAgICAgICAgb2xkUmVjdC5oZWlnaHQgIT09IHJlY3QuaGVpZ2h0IHx8XG4gICAgICAgICAgICBvbGRSZWN0LndpZHRoICE9PSByZWN0LndpZHRoIHx8XG4gICAgICAgICAgICBsYXN0WC5jdXJyZW50ICE9PSB0eCB8fFxuICAgICAgICAgICAgbGFzdFkuY3VycmVudCAhPT0gdHkgfHxcbiAgICAgICAgICAgIGFyZ3Mud2lkdGggIT09IGxhc3RTaXplLmN1cnJlbnQ/LlswXSB8fFxuICAgICAgICAgICAgYXJncy5oZWlnaHQgIT09IGxhc3RTaXplLmN1cnJlbnQ/LlsxXVxuICAgICAgICApIHtcbiAgICAgICAgICAgIG9uVmlzaWJsZVJlZ2lvbkNoYW5nZWQ/LihcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHg6IGNlbGxYLFxuICAgICAgICAgICAgICAgICAgICB5OiBjZWxsWSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNlbGxSaWdodCAtIGNlbGxYLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGNlbGxCb3R0b20gLSBjZWxsWSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFyZ3Mud2lkdGgsXG4gICAgICAgICAgICAgICAgYXJncy5oZWlnaHQsXG4gICAgICAgICAgICAgICAgYXJncy5wYWRkaW5nUmlnaHQgPz8gMCxcbiAgICAgICAgICAgICAgICB0eCxcbiAgICAgICAgICAgICAgICB0eVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxhc3QuY3VycmVudCA9IHJlY3Q7XG4gICAgICAgICAgICBsYXN0WC5jdXJyZW50ID0gdHg7XG4gICAgICAgICAgICBsYXN0WS5jdXJyZW50ID0gdHk7XG4gICAgICAgICAgICBsYXN0U2l6ZS5jdXJyZW50ID0gW2FyZ3Mud2lkdGgsIGFyZ3MuaGVpZ2h0XTtcbiAgICAgICAgfVxuICAgIH0sIFtjb2x1bW5zLCByb3dIZWlnaHQsIHJvd3MsIG9uVmlzaWJsZVJlZ2lvbkNoYW5nZWQsIGZyZWV6ZUNvbHVtbnMsIHNtb290aFNjcm9sbFgsIHNtb290aFNjcm9sbFldKTtcblxuICAgIGNvbnN0IG9uU2Nyb2xsVXBkYXRlID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgICAgIChhcmdzOiBSZWN0YW5nbGUgJiB7IHBhZGRpbmdSaWdodDogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgIGxhc3RBcmdzLmN1cnJlbnQgPSBhcmdzO1xuICAgICAgICAgICAgcHJvY2Vzc0FyZ3MoKTtcbiAgICAgICAgfSxcbiAgICAgICAgW3Byb2Nlc3NBcmdzXVxuICAgICk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9jZXNzQXJncygpO1xuICAgIH0sIFtwcm9jZXNzQXJnc10pO1xuXG4gICAgY29uc3Qgc2Nyb2xsZXIgPSBzY3JvbGxSZWY/LmN1cnJlbnQgPz8gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGFzcGVjdCA9IGNsYW1wKHdpZHRoIC8gaGVpZ2h0LCAyIC8gMywgMS41KTtcbiAgICBjb25zdCBtYXhTaXplID0gMjAwO1xuICAgIGNvbnN0IHcgPSBhc3BlY3QgPiAxID8gbWF4U2l6ZSA6IE1hdGguY2VpbChtYXhTaXplICogYXNwZWN0KTtcbiAgICBjb25zdCBoID0gYXNwZWN0ID4gMSA/IE1hdGguY2VpbChtYXhTaXplIC8gYXNwZWN0KSA6IG1heFNpemU7XG4gICAgY29uc3QgaFJhdGlvID0gdyAvIHdpZHRoO1xuICAgIGNvbnN0IHZSYXRpbyA9IGggLyBoZWlnaHQ7XG4gICAgY29uc3QgdldpZHRoID0gTWF0aC5taW4oY2xpZW50V2lkdGggKiBNYXRoLm1heChoUmF0aW8sIDAuMDEpLCB3KTtcbiAgICBjb25zdCB2SGVpZ2h0ID0gTWF0aC5taW4oY2xpZW50SGVpZ2h0ICogTWF0aC5tYXgodlJhdGlvLCAwLjAxKSwgaCk7XG4gICAgY29uc3QgbGVmdCA9ICgoc2Nyb2xsZXI/LnNjcm9sbExlZnQgPz8gMCkgLyAod2lkdGggLSBjbGllbnRXaWR0aCkpICogKHcgLSB2V2lkdGgpO1xuICAgIGNvbnN0IHRvcCA9ICgoc2Nyb2xsZXI/LnNjcm9sbFRvcCA/PyAwKSAvIChoZWlnaHQgLSBjbGllbnRIZWlnaHQpKSAqIChoIC0gdkhlaWdodCk7XG5cbiAgICBjb25zdCBtaW5pbWFwOiBSZWFjdC5SZWFjdE5vZGUgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKCFzaG93TWluaW1hcCB8fCB2V2lkdGggPT09IDAgfHwgdkhlaWdodCA9PT0gMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgICBjb25zdCBoYW5kbGVNb3VzZSA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgYm91bmRzID0gZS5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgeCA9IGUuY2xpZW50WCAtIGJvdW5kcy54IC0gdldpZHRoIC8gMjtcbiAgICAgICAgICAgIGNvbnN0IHkgPSBlLmNsaWVudFkgLSBib3VuZHMueSAtIHZIZWlnaHQgLyAyO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdTY3JvbGxMZWZ0ID0gKHdpZHRoIC0gc2Nyb2xsZXIuY2xpZW50V2lkdGgpICogKHggLyAodyAtIHZXaWR0aCkpO1xuICAgICAgICAgICAgY29uc3QgbmV3U2Nyb2xsVG9wID0gKGhlaWdodCAtIHNjcm9sbGVyLmNsaWVudEhlaWdodCkgKiAoeSAvIChoIC0gdkhlaWdodCkpO1xuXG4gICAgICAgICAgICBzY3JvbGxlci5zY3JvbGxUbyh7XG4gICAgICAgICAgICAgICAgbGVmdDogbmV3U2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICB0b3A6IG5ld1Njcm9sbFRvcCxcbiAgICAgICAgICAgICAgICBiZWhhdmlvcjogZS50eXBlID09PSBcIm1vdXNlbW92ZVwiID8gXCJhdXRvXCIgOiBcInNtb290aFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxNaW5pbWFwU3R5bGVcbiAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogdywgaGVpZ2h0OiBoIH19XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtaW5pbWFwLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgb25Nb3VzZU1vdmU9e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5idXR0b25zICE9PSAxKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZU1vdXNlKGUpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlTW91c2V9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGVhZGVyXCIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImxvY2F0aW9uTWFya2VyXCJcbiAgICAgICAgICAgICAgICAgICAgb25EcmFnU3RhcnQ9e2UgPT4gZS5wcmV2ZW50RGVmYXVsdCgpfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB2V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHZIZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IE1hdGgubWluKHZXaWR0aCwgdkhlaWdodCAqIDAuMiwgOSksXG4gICAgICAgICAgICAgICAgICAgIH19PjwvZGl2PlxuICAgICAgICAgICAgPC9NaW5pbWFwU3R5bGU+XG4gICAgICAgICk7XG4gICAgfSwgW2gsIGhlaWdodCwgbGVmdCwgc2Nyb2xsZXIsIHNob3dNaW5pbWFwLCB0b3AsIHZIZWlnaHQsIHZXaWR0aCwgdywgd2lkdGhdKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxJbmZpbml0ZVNjcm9sbGVyXG4gICAgICAgICAgICBzY3JvbGxSZWY9e3Njcm9sbFJlZn1cbiAgICAgICAgICAgIG1pbmltYXA9e21pbmltYXB9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgIHByZXZlbnREaWFnb25hbFNjcm9sbGluZz17cHJldmVudERpYWdvbmFsU2Nyb2xsaW5nfVxuICAgICAgICAgICAgZHJhZ2dhYmxlPXtpc0RyYWdnYWJsZSA9PT0gdHJ1ZSB8fCB0eXBlb2YgaXNEcmFnZ2FibGUgPT09IFwic3RyaW5nXCJ9XG4gICAgICAgICAgICBzY3JvbGxXaWR0aD17d2lkdGggKyAocGFkZGluZ1JpZ2h0ID8/IDApfVxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0PXtoZWlnaHQgKyAocGFkZGluZ0JvdHRvbSA/PyAwKX1cbiAgICAgICAgICAgIGNsaWVudEhlaWdodD17Y2xpZW50SGVpZ2h0fVxuICAgICAgICAgICAgcmlnaHRFbGVtZW50PXtyaWdodEVsZW1lbnR9XG4gICAgICAgICAgICBwYWRkaW5nQm90dG9tPXtwYWRkaW5nQm90dG9tfVxuICAgICAgICAgICAgcGFkZGluZ1JpZ2h0PXtwYWRkaW5nUmlnaHR9XG4gICAgICAgICAgICByaWdodEVsZW1lbnRQcm9wcz17cmlnaHRFbGVtZW50UHJvcHN9XG4gICAgICAgICAgICB1cGRhdGU9e29uU2Nyb2xsVXBkYXRlfVxuICAgICAgICAgICAgaW5pdGlhbFNpemU9e2luaXRpYWxTaXplfVxuICAgICAgICAgICAgc2Nyb2xsVG9FbmQ9e3Njcm9sbFRvRW5kfT5cbiAgICAgICAgICAgIDxEYXRhR3JpZERuZFxuICAgICAgICAgICAgICAgIGV2ZW50VGFyZ2V0UmVmPXtzY3JvbGxSZWZ9XG4gICAgICAgICAgICAgICAgd2lkdGg9e2NsaWVudFdpZHRofVxuICAgICAgICAgICAgICAgIGhlaWdodD17Y2xpZW50SGVpZ2h0fVxuICAgICAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlIZWlnaHQ9e3AuYWNjZXNzaWJpbGl0eUhlaWdodH1cbiAgICAgICAgICAgICAgICBjYW52YXNSZWY9e3AuY2FudmFzUmVmfVxuICAgICAgICAgICAgICAgIGNlbGxYT2Zmc2V0PXtwLmNlbGxYT2Zmc2V0fVxuICAgICAgICAgICAgICAgIGNlbGxZT2Zmc2V0PXtwLmNlbGxZT2Zmc2V0fVxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3AuY29sdW1uc31cbiAgICAgICAgICAgICAgICBkaXNhYmxlZFJvd3M9e3AuZGlzYWJsZWRSb3dzfVxuICAgICAgICAgICAgICAgIGVuYWJsZUdyb3Vwcz17cC5lbmFibGVHcm91cHN9XG4gICAgICAgICAgICAgICAgZmlsbEhhbmRsZT17cC5maWxsSGFuZGxlfVxuICAgICAgICAgICAgICAgIGZpcnN0Q29sQWNjZXNzaWJsZT17cC5maXJzdENvbEFjY2Vzc2libGV9XG4gICAgICAgICAgICAgICAgZml4ZWRTaGFkb3dYPXtwLmZpeGVkU2hhZG93WH1cbiAgICAgICAgICAgICAgICBmaXhlZFNoYWRvd1k9e3AuZml4ZWRTaGFkb3dZfVxuICAgICAgICAgICAgICAgIGZyZWV6ZUNvbHVtbnM9e3AuZnJlZXplQ29sdW1uc31cbiAgICAgICAgICAgICAgICBnZXRDZWxsQ29udGVudD17cC5nZXRDZWxsQ29udGVudH1cbiAgICAgICAgICAgICAgICBnZXRDZWxsUmVuZGVyZXI9e3AuZ2V0Q2VsbFJlbmRlcmVyfVxuICAgICAgICAgICAgICAgIGdldEdyb3VwRGV0YWlscz17cC5nZXRHcm91cERldGFpbHN9XG4gICAgICAgICAgICAgICAgZ2V0Um93VGhlbWVPdmVycmlkZT17cC5nZXRSb3dUaGVtZU92ZXJyaWRlfVxuICAgICAgICAgICAgICAgIGdyb3VwSGVhZGVySGVpZ2h0PXtwLmdyb3VwSGVhZGVySGVpZ2h0fVxuICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodD17cC5oZWFkZXJIZWlnaHR9XG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0UmVnaW9ucz17cC5oaWdobGlnaHRSZWdpb25zfVxuICAgICAgICAgICAgICAgIGltYWdlV2luZG93TG9hZGVyPXtwLmltYWdlV2luZG93TG9hZGVyfVxuICAgICAgICAgICAgICAgIGlzRmlsbGluZz17cC5pc0ZpbGxpbmd9XG4gICAgICAgICAgICAgICAgaXNGb2N1c2VkPXtwLmlzRm9jdXNlZH1cbiAgICAgICAgICAgICAgICBsb2NrQ29sdW1ucz17cC5sb2NrQ29sdW1uc31cbiAgICAgICAgICAgICAgICBtYXhDb2x1bW5XaWR0aD17cC5tYXhDb2x1bW5XaWR0aH1cbiAgICAgICAgICAgICAgICBtaW5Db2x1bW5XaWR0aD17cC5taW5Db2x1bW5XaWR0aH1cbiAgICAgICAgICAgICAgICBvbkhlYWRlck1lbnVDbGljaz17cC5vbkhlYWRlck1lbnVDbGlja31cbiAgICAgICAgICAgICAgICBvbk1vdXNlTW92ZT17cC5vbk1vdXNlTW92ZX1cbiAgICAgICAgICAgICAgICBwcmVsaWdodENlbGxzPXtwLnByZWxpZ2h0Q2VsbHN9XG4gICAgICAgICAgICAgICAgcm93SGVpZ2h0PXtwLnJvd0hlaWdodH1cbiAgICAgICAgICAgICAgICByb3dzPXtwLnJvd3N9XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uPXtwLnNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICB0aGVtZT17cC50aGVtZX1cbiAgICAgICAgICAgICAgICB0cmFpbGluZ1Jvd1R5cGU9e3AudHJhaWxpbmdSb3dUeXBlfVxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVg9e3AudHJhbnNsYXRlWH1cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVZPXtwLnRyYW5zbGF0ZVl9XG4gICAgICAgICAgICAgICAgdmVydGljYWxCb3JkZXI9e3AudmVydGljYWxCb3JkZXJ9XG4gICAgICAgICAgICAgICAgZHJhd0N1c3RvbUNlbGw9e3AuZHJhd0N1c3RvbUNlbGx9XG4gICAgICAgICAgICAgICAgZHJhd0ZvY3VzUmluZz17cC5kcmF3Rm9jdXNSaW5nfVxuICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI9e3AuZHJhd0hlYWRlcn1cbiAgICAgICAgICAgICAgICBleHBlcmltZW50YWw9e3AuZXhwZXJpbWVudGFsfVxuICAgICAgICAgICAgICAgIGdyaWRSZWY9e3AuZ3JpZFJlZn1cbiAgICAgICAgICAgICAgICBoZWFkZXJJY29ucz17cC5oZWFkZXJJY29uc31cbiAgICAgICAgICAgICAgICBpc0RyYWdnYWJsZT17cC5pc0RyYWdnYWJsZX1cbiAgICAgICAgICAgICAgICBvbkNhbnZhc0JsdXI9e3Aub25DYW52YXNCbHVyfVxuICAgICAgICAgICAgICAgIG9uQ2FudmFzRm9jdXNlZD17cC5vbkNhbnZhc0ZvY3VzZWR9XG4gICAgICAgICAgICAgICAgb25DZWxsRm9jdXNlZD17cC5vbkNlbGxGb2N1c2VkfVxuICAgICAgICAgICAgICAgIG9uQ29sdW1uTW92ZWQ9e3Aub25Db2x1bW5Nb3ZlZH1cbiAgICAgICAgICAgICAgICBvbkNvbHVtblJlc2l6ZT17cC5vbkNvbHVtblJlc2l6ZX1cbiAgICAgICAgICAgICAgICBvbkNvbHVtblJlc2l6ZUVuZD17cC5vbkNvbHVtblJlc2l6ZUVuZH1cbiAgICAgICAgICAgICAgICBvbkNvbHVtblJlc2l6ZVN0YXJ0PXtwLm9uQ29sdW1uUmVzaXplU3RhcnR9XG4gICAgICAgICAgICAgICAgb25Db250ZXh0TWVudT17cC5vbkNvbnRleHRNZW51fVxuICAgICAgICAgICAgICAgIG9uRHJhZ0VuZD17cC5vbkRyYWdFbmR9XG4gICAgICAgICAgICAgICAgb25EcmFnTGVhdmU9e3Aub25EcmFnTGVhdmV9XG4gICAgICAgICAgICAgICAgb25EcmFnT3ZlckNlbGw9e3Aub25EcmFnT3ZlckNlbGx9XG4gICAgICAgICAgICAgICAgb25EcmFnU3RhcnQ9e3Aub25EcmFnU3RhcnR9XG4gICAgICAgICAgICAgICAgb25Ecm9wPXtwLm9uRHJvcH1cbiAgICAgICAgICAgICAgICBvbkl0ZW1Ib3ZlcmVkPXtwLm9uSXRlbUhvdmVyZWR9XG4gICAgICAgICAgICAgICAgb25LZXlEb3duPXtwLm9uS2V5RG93bn1cbiAgICAgICAgICAgICAgICBvbktleVVwPXtwLm9uS2V5VXB9XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249e3Aub25Nb3VzZURvd259XG4gICAgICAgICAgICAgICAgb25Nb3VzZVVwPXtwLm9uTW91c2VVcH1cbiAgICAgICAgICAgICAgICBvblJvd01vdmVkPXtwLm9uUm93TW92ZWR9XG4gICAgICAgICAgICAgICAgc21vb3RoU2Nyb2xsWD17cC5zbW9vdGhTY3JvbGxYfVxuICAgICAgICAgICAgICAgIHNtb290aFNjcm9sbFk9e3Auc21vb3RoU2Nyb2xsWX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvSW5maW5pdGVTY3JvbGxlcj5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZFNjcm9sbGVyO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQStFQSxNQUFNLGVBQWUsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBOEI1QixNQUFNLGVBQWdFLE9BQUs7QUFDdkUsUUFBTTtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsY0FBYztBQUFBLElBQ2Q7QUFBQSxJQUNBLGdCQUFnQjtBQUFBLElBQ2hCLGdCQUFnQjtBQUFBLElBQ2hCO0FBQUEsTUFDQTtBQUNKLFFBQU0sRUFBRSxjQUFjLGtCQUFrQixnQkFBZ0I7QUFFeEQsUUFBTSxDQUFDLGFBQWEsZ0JBQWdCO0FBQ3BDLFFBQU0sT0FBTyxNQUFNO0FBQ25CLFFBQU0sUUFBUSxNQUFNO0FBQ3BCLFFBQU0sUUFBUSxNQUFNO0FBQ3BCLFFBQU0sV0FBVyxNQUFNO0FBRXZCLFFBQU0sUUFBUSxNQUFNLFFBQVEsTUFBTTtBQUM5QixRQUFJLElBQUksS0FBSyxJQUFJLEdBQUcsZUFBZTtBQUNuQyxlQUFXLEtBQUssU0FBUztBQUNyQixXQUFLLEVBQUU7QUFBQTtBQUVYLFdBQU87QUFBQSxLQUNSLENBQUMsU0FBUztBQUViLE1BQUksU0FBUyxlQUFlLGVBQWUsb0JBQW9CO0FBQy9ELE1BQUksT0FBTyxjQUFjLFVBQVU7QUFDL0IsY0FBVSxPQUFPO0FBQUEsU0FDZDtBQUNILGFBQVMsSUFBSSxHQUFHLElBQUksTUFBTSxLQUFLO0FBQzNCLGdCQUFVLFVBQVU7QUFBQTtBQUFBO0FBRzVCLE1BQUksZ0JBQWdCLFFBQVc7QUFDM0IsY0FBVTtBQUFBO0FBR2QsUUFBTSxXQUFXLE1BQU07QUFFdkIsUUFBTSxjQUFjLE1BQU0sWUFBWSxNQUFNO0FBQ3hDLFFBQUksU0FBUyxZQUFZO0FBQVc7QUFDcEMsVUFBTSxPQUFPLEtBQUssU0FBUztBQUUzQixRQUFJLElBQUk7QUFDUixRQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUk7QUFDaEMsUUFBSSxZQUFZO0FBQ2hCLFFBQUksUUFBUTtBQUVaLFNBQUssSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUs7QUFFL0IsUUFBSSxpQkFBaUI7QUFDckIsYUFBUyxJQUFJLEdBQUcsSUFBSSxlQUFlLEtBQUs7QUFDcEMsd0JBQWtCLFFBQVEsR0FBRztBQUFBO0FBR2pDLGVBQVcsS0FBSyxTQUFTO0FBQ3JCLFlBQU0sS0FBSyxJQUFJO0FBQ2YsVUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLE9BQU87QUFDeEIsYUFBSyxFQUFFO0FBQ1A7QUFDQTtBQUFBLGlCQUNPLEtBQUssSUFBSSxJQUFJO0FBQ3BCLGFBQUssRUFBRTtBQUNQLFlBQUksZUFBZTtBQUNmLGdCQUFNLEtBQUssS0FBSztBQUFBLGVBQ2I7QUFDSDtBQUFBO0FBRUo7QUFBQSxpQkFDTyxLQUFLLElBQUksS0FBSyxRQUFRLElBQUk7QUFDakMsYUFBSyxFQUFFO0FBQ1A7QUFBQSxhQUNHO0FBQ0g7QUFBQTtBQUFBO0FBSVIsUUFBSSxLQUFLO0FBQ1QsUUFBSSxRQUFRO0FBQ1osUUFBSSxhQUFhO0FBQ2pCLFFBQUksT0FBTyxjQUFjLFVBQVU7QUFDL0IsVUFBSSxlQUFlO0FBQ2YsZ0JBQVEsS0FBSyxNQUFNLEtBQUssSUFBSTtBQUM1QixhQUFLLFFBQVEsWUFBWSxLQUFLO0FBQUEsYUFDM0I7QUFDSCxnQkFBUSxLQUFLLEtBQUssS0FBSyxJQUFJO0FBQUE7QUFFL0IsbUJBQWEsS0FBSyxLQUFLLEtBQUssU0FBUyxhQUFhO0FBQ2xELFVBQUksS0FBSztBQUFHO0FBQUEsV0FDVDtBQUNILFVBQUksSUFBSTtBQUNSLGVBQVMsTUFBTSxHQUFHLE1BQU0sTUFBTSxPQUFPO0FBQ2pDLGNBQU0sS0FBSyxVQUFVO0FBQ3JCLGNBQU0sS0FBSyxJQUFLLGlCQUFnQixJQUFJLEtBQUs7QUFDekMsWUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJO0FBQ2xCLGVBQUs7QUFDTDtBQUNBO0FBQUEsbUJBQ08sS0FBSyxJQUFJLElBQUk7QUFDcEIsZUFBSztBQUNMLGNBQUksZUFBZTtBQUNmLGtCQUFNLEtBQUssS0FBSztBQUFBLGlCQUNiO0FBQ0g7QUFBQTtBQUVKO0FBQUEsbUJBQ08sS0FBSyxJQUFJLEtBQUssU0FBUyxLQUFLLElBQUksR0FBRztBQUMxQyxlQUFLO0FBQ0w7QUFBQSxlQUNHO0FBQ0g7QUFBQTtBQUFBO0FBQUE7QUFLWixVQUFNLE9BQWtCO0FBQUEsTUFDcEIsR0FBRztBQUFBLE1BQ0gsR0FBRztBQUFBLE1BQ0gsT0FBTyxZQUFZO0FBQUEsTUFDbkIsUUFBUSxhQUFhO0FBQUE7QUFHekIsVUFBTSxVQUFVLEtBQUs7QUFFckIsUUFDSSxZQUFZLFVBQ1osUUFBUSxNQUFNLEtBQUssS0FDbkIsUUFBUSxNQUFNLEtBQUssS0FDbkIsUUFBUSxXQUFXLEtBQUssVUFDeEIsUUFBUSxVQUFVLEtBQUssU0FDdkIsTUFBTSxZQUFZLE1BQ2xCLE1BQU0sWUFBWSxNQUNsQixLQUFLLFVBQVUsU0FBUyxVQUFVLE1BQ2xDLEtBQUssV0FBVyxTQUFTLFVBQVUsSUFDckM7QUFDRSwrQkFDSTtBQUFBLFFBQ0ksR0FBRztBQUFBLFFBQ0gsR0FBRztBQUFBLFFBQ0gsT0FBTyxZQUFZO0FBQUEsUUFDbkIsUUFBUSxhQUFhO0FBQUEsU0FFekIsS0FBSyxPQUNMLEtBQUssUUFDTCxLQUFLLGdCQUFnQixHQUNyQixJQUNBO0FBRUosV0FBSyxVQUFVO0FBQ2YsWUFBTSxVQUFVO0FBQ2hCLFlBQU0sVUFBVTtBQUNoQixlQUFTLFVBQVUsQ0FBQyxLQUFLLE9BQU8sS0FBSztBQUFBO0FBQUEsS0FFMUMsQ0FBQyxTQUFTLFdBQVcsTUFBTSx3QkFBd0IsZUFBZSxlQUFlO0FBRXBGLFFBQU0saUJBQWlCLE1BQU0sWUFDekIsQ0FBQyxTQUErQztBQUM1QyxhQUFTLFVBQVU7QUFDbkI7QUFBQSxLQUVKLENBQUM7QUFHTCxRQUFNLFVBQVUsTUFBTTtBQUNsQjtBQUFBLEtBQ0QsQ0FBQztBQUVKLFFBQU0sV0FBVyxXQUFXLFdBQVc7QUFDdkMsUUFBTSxTQUFTLE1BQU0sUUFBUSxRQUFRLElBQUksR0FBRztBQUM1QyxRQUFNLFVBQVU7QUFDaEIsUUFBTSxJQUFJLFNBQVMsSUFBSSxVQUFVLEtBQUssS0FBSyxVQUFVO0FBQ3JELFFBQU0sSUFBSSxTQUFTLElBQUksS0FBSyxLQUFLLFVBQVUsVUFBVTtBQUNyRCxRQUFNLFNBQVMsSUFBSTtBQUNuQixRQUFNLFNBQVMsSUFBSTtBQUNuQixRQUFNLFNBQVMsS0FBSyxJQUFJLGNBQWMsS0FBSyxJQUFJLFFBQVEsT0FBTztBQUM5RCxRQUFNLFVBQVUsS0FBSyxJQUFJLGVBQWUsS0FBSyxJQUFJLFFBQVEsT0FBTztBQUNoRSxRQUFNLE9BQVMsV0FBVSxjQUFjLEtBQU0sU0FBUSxlQUFpQixLQUFJO0FBQzFFLFFBQU0sTUFBUSxXQUFVLGFBQWEsS0FBTSxVQUFTLGdCQUFrQixLQUFJO0FBRTFFLFFBQU0sVUFBMkIsTUFBTSxRQUFRLE1BQU07QUFDakQsUUFBSSxDQUFDLGVBQWUsV0FBVyxLQUFLLFlBQVk7QUFBRyxhQUFPO0FBRTFELFVBQU0sY0FBYyxDQUFDLE1BQXdCO0FBQ3pDLFVBQUksYUFBYTtBQUFXO0FBQzVCLFlBQU0sU0FBUyxFQUFFLGNBQWM7QUFDL0IsWUFBTSxJQUFJLEVBQUUsVUFBVSxPQUFPLElBQUksU0FBUztBQUMxQyxZQUFNLElBQUksRUFBRSxVQUFVLE9BQU8sSUFBSSxVQUFVO0FBRTNDLFlBQU0sZ0JBQWlCLFNBQVEsU0FBUyxlQUFnQixLQUFLLEtBQUk7QUFDakUsWUFBTSxlQUFnQixVQUFTLFNBQVMsZ0JBQWlCLEtBQUssS0FBSTtBQUVsRSxlQUFTLFNBQVM7QUFBQSxRQUNkLE1BQU07QUFBQSxRQUNOLEtBQUs7QUFBQSxRQUNMLFVBQVUsRUFBRSxTQUFTLGNBQWMsU0FBUztBQUFBO0FBQUE7QUFJcEQsV0FDSSxvQ0FBQyxjQUFEO0FBQUEsTUFDSSxPQUFPLEVBQUUsT0FBTyxHQUFHLFFBQVE7QUFBQSxNQUMzQixlQUFZO0FBQUEsTUFDWixhQUFhLE9BQUs7QUFDZCxZQUFJLEVBQUUsWUFBWTtBQUFHO0FBQ3JCLG9CQUFZO0FBQUE7QUFBQSxNQUVoQixTQUFTO0FBQUEsT0FDVCxvQ0FBQyxPQUFEO0FBQUEsTUFBSyxXQUFVO0FBQUEsUUFDZixvQ0FBQyxPQUFEO0FBQUEsTUFDSSxXQUFVO0FBQUEsTUFDVixhQUFhLE9BQUssRUFBRTtBQUFBLE1BQ3BCLE9BQU87QUFBQSxRQUNIO0FBQUEsUUFDQTtBQUFBLFFBQ0EsT0FBTztBQUFBLFFBQ1AsUUFBUTtBQUFBLFFBQ1IsY0FBYyxLQUFLLElBQUksUUFBUSxVQUFVLEtBQUs7QUFBQTtBQUFBO0FBQUEsS0FJL0QsQ0FBQyxHQUFHLFFBQVEsTUFBTSxVQUFVLGFBQWEsS0FBSyxTQUFTLFFBQVEsR0FBRztBQUVyRSxTQUNJLG9DQUFDLGtCQUFEO0FBQUEsSUFDSTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsV0FBVyxnQkFBZ0IsUUFBUSxPQUFPLGdCQUFnQjtBQUFBLElBQzFELGFBQWEsUUFBUyxpQkFBZ0I7QUFBQSxJQUN0QyxjQUFjLFNBQVUsa0JBQWlCO0FBQUEsSUFDekM7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxRQUFRO0FBQUEsSUFDUjtBQUFBLElBQ0E7QUFBQSxLQUNBLG9DQUFDLGFBQUQ7QUFBQSxJQUNJLGdCQUFnQjtBQUFBLElBQ2hCLE9BQU87QUFBQSxJQUNQLFFBQVE7QUFBQSxJQUNSLHFCQUFxQixFQUFFO0FBQUEsSUFDdkIsV0FBVyxFQUFFO0FBQUEsSUFDYixhQUFhLEVBQUU7QUFBQSxJQUNmLGFBQWEsRUFBRTtBQUFBLElBQ2YsU0FBUyxFQUFFO0FBQUEsSUFDWCxjQUFjLEVBQUU7QUFBQSxJQUNoQixjQUFjLEVBQUU7QUFBQSxJQUNoQixZQUFZLEVBQUU7QUFBQSxJQUNkLG9CQUFvQixFQUFFO0FBQUEsSUFDdEIsY0FBYyxFQUFFO0FBQUEsSUFDaEIsY0FBYyxFQUFFO0FBQUEsSUFDaEIsZUFBZSxFQUFFO0FBQUEsSUFDakIsZ0JBQWdCLEVBQUU7QUFBQSxJQUNsQixpQkFBaUIsRUFBRTtBQUFBLElBQ25CLGlCQUFpQixFQUFFO0FBQUEsSUFDbkIscUJBQXFCLEVBQUU7QUFBQSxJQUN2QixtQkFBbUIsRUFBRTtBQUFBLElBQ3JCLGNBQWMsRUFBRTtBQUFBLElBQ2hCLGtCQUFrQixFQUFFO0FBQUEsSUFDcEIsbUJBQW1CLEVBQUU7QUFBQSxJQUNyQixXQUFXLEVBQUU7QUFBQSxJQUNiLFdBQVcsRUFBRTtBQUFBLElBQ2IsYUFBYSxFQUFFO0FBQUEsSUFDZixnQkFBZ0IsRUFBRTtBQUFBLElBQ2xCLGdCQUFnQixFQUFFO0FBQUEsSUFDbEIsbUJBQW1CLEVBQUU7QUFBQSxJQUNyQixhQUFhLEVBQUU7QUFBQSxJQUNmLGVBQWUsRUFBRTtBQUFBLElBQ2pCLFdBQVcsRUFBRTtBQUFBLElBQ2IsTUFBTSxFQUFFO0FBQUEsSUFDUixXQUFXLEVBQUU7QUFBQSxJQUNiLE9BQU8sRUFBRTtBQUFBLElBQ1QsaUJBQWlCLEVBQUU7QUFBQSxJQUNuQixZQUFZLEVBQUU7QUFBQSxJQUNkLFlBQVksRUFBRTtBQUFBLElBQ2QsZ0JBQWdCLEVBQUU7QUFBQSxJQUNsQixnQkFBZ0IsRUFBRTtBQUFBLElBQ2xCLGVBQWUsRUFBRTtBQUFBLElBQ2pCLFlBQVksRUFBRTtBQUFBLElBQ2QsY0FBYyxFQUFFO0FBQUEsSUFDaEIsU0FBUyxFQUFFO0FBQUEsSUFDWCxhQUFhLEVBQUU7QUFBQSxJQUNmLGFBQWEsRUFBRTtBQUFBLElBQ2YsY0FBYyxFQUFFO0FBQUEsSUFDaEIsaUJBQWlCLEVBQUU7QUFBQSxJQUNuQixlQUFlLEVBQUU7QUFBQSxJQUNqQixlQUFlLEVBQUU7QUFBQSxJQUNqQixnQkFBZ0IsRUFBRTtBQUFBLElBQ2xCLG1CQUFtQixFQUFFO0FBQUEsSUFDckIscUJBQXFCLEVBQUU7QUFBQSxJQUN2QixlQUFlLEVBQUU7QUFBQSxJQUNqQixXQUFXLEVBQUU7QUFBQSxJQUNiLGFBQWEsRUFBRTtBQUFBLElBQ2YsZ0JBQWdCLEVBQUU7QUFBQSxJQUNsQixhQUFhLEVBQUU7QUFBQSxJQUNmLFFBQVEsRUFBRTtBQUFBLElBQ1YsZUFBZSxFQUFFO0FBQUEsSUFDakIsV0FBVyxFQUFFO0FBQUEsSUFDYixTQUFTLEVBQUU7QUFBQSxJQUNYLGFBQWEsRUFBRTtBQUFBLElBQ2YsV0FBVyxFQUFFO0FBQUEsSUFDYixZQUFZLEVBQUU7QUFBQSxJQUNkLGVBQWUsRUFBRTtBQUFBLElBQ2pCLGVBQWUsRUFBRTtBQUFBO0FBQUE7QUFNakMsZUFBZTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import { styled } from \"@linaria/react\";\nimport * as React from \"react\";\nimport { useResizeDetector } from \"../common/resize-detector\";\nimport { browserIsSafari } from \"../common/browser-detect\";\nimport { useEventListener } from \"../common/utils\";\nconst ScrollRegionStyle = styled.div`\n    .dvn-scroller {\n        overflow: ${(p) => p.isSafari ? \"scroll\" : \"auto\"};\n        transform: translate3d(0, 0, 0);\n    }\n\n    .hidden {\n        visibility: hidden;\n    }\n\n    .dvn-scroll-inner {\n        display: flex;\n        pointer-events: none;\n\n        > * {\n            flex-shrink: 0;\n        }\n\n        .dvn-spacer {\n            flex-grow: 1;\n        }\n\n        .dvn-stack {\n            display: flex;\n            flex-direction: column;\n        }\n    }\n\n    .dvn-underlay > * {\n        position: absolute;\n        left: 0;\n        top: 0;\n    }\n\n    canvas {\n        outline: none;\n\n        * {\n            height: 0;\n        }\n    }\n`;\nfunction eatEvent(e) {\n  e.stopPropagation();\n}\nfunction useTouchUpDelayed(delay) {\n  const [hasTouches, setHasTouches] = React.useState(false);\n  const cbTimer = React.useRef(0);\n  useEventListener(\"touchstart\", React.useCallback(() => {\n    window.clearTimeout(cbTimer.current);\n    setHasTouches(true);\n  }, []), window, true, false);\n  useEventListener(\"touchend\", React.useCallback((e) => {\n    if (e.touches.length === 0) {\n      cbTimer.current = window.setTimeout(() => setHasTouches(false), delay);\n    }\n  }, [delay]), window, true, false);\n  return hasTouches;\n}\nexport const InfiniteScroller = (p) => {\n  const {\n    children,\n    clientHeight,\n    scrollHeight,\n    scrollWidth,\n    update,\n    draggable,\n    className,\n    preventDiagonalScrolling = false,\n    paddingBottom = 0,\n    paddingRight = 0,\n    rightElement,\n    rightElementProps,\n    scrollRef,\n    scrollToEnd,\n    initialSize,\n    minimap\n  } = p;\n  const padders = [];\n  const rightElementSticky = rightElementProps?.sticky ?? false;\n  const rightElementFill = rightElementProps?.fill ?? false;\n  const offsetY = React.useRef(0);\n  const lastScrollY = React.useRef(0);\n  const scroller = React.useRef(null);\n  const dpr = window.devicePixelRatio;\n  React.useEffect(() => {\n    const el = scroller.current;\n    if (el === null || scrollToEnd !== true)\n      return;\n    el.scrollLeft = el.scrollWidth - el.clientWidth;\n  }, [scrollToEnd]);\n  const lastScrollPosition = React.useRef({\n    scrollLeft: 0,\n    scrollTop: 0,\n    lockDirection: void 0\n  });\n  const rightWrapRef = React.useRef(null);\n  const hasTouches = useTouchUpDelayed(200);\n  const [isIdle, setIsIdle] = React.useState(true);\n  const idleTimer = React.useRef(0);\n  React.useEffect(() => {\n    if (!isIdle || hasTouches || lastScrollPosition.current.lockDirection === void 0)\n      return;\n    const el = scroller.current;\n    if (el === null)\n      return;\n    const [lx, ly] = lastScrollPosition.current.lockDirection;\n    if (lx !== void 0) {\n      el.scrollLeft = lx;\n    } else if (ly !== void 0) {\n      el.scrollTop = ly;\n    }\n    lastScrollPosition.current.lockDirection = void 0;\n  }, [hasTouches, isIdle]);\n  const onScroll = React.useCallback(() => {\n    const el = scroller.current;\n    if (el === null)\n      return;\n    let scrollTop = el.scrollTop;\n    let scrollLeft = el.scrollLeft;\n    const lastScrollTop = lastScrollPosition.current.scrollTop;\n    const lastScrollLeft = lastScrollPosition.current.scrollLeft;\n    const dx = scrollLeft - lastScrollLeft;\n    const dy = scrollTop - lastScrollTop;\n    if (hasTouches && dx !== 0 && dy !== 0 && (Math.abs(dx) > 3 || Math.abs(dy) > 3) && preventDiagonalScrolling && lastScrollPosition.current.lockDirection === void 0) {\n      lastScrollPosition.current.lockDirection = Math.abs(dx) < Math.abs(dy) ? [lastScrollLeft, void 0] : [void 0, lastScrollTop];\n    }\n    const lock = lastScrollPosition.current.lockDirection;\n    scrollLeft = lock?.[0] ?? scrollLeft;\n    scrollTop = lock?.[1] ?? scrollTop;\n    lastScrollPosition.current.scrollLeft = scrollLeft;\n    lastScrollPosition.current.scrollTop = scrollTop;\n    const newY = scrollTop;\n    const delta = lastScrollY.current - newY;\n    const scrollableHeight = el.scrollHeight - el.clientHeight;\n    lastScrollY.current = newY;\n    if (scrollableHeight > 0 && (Math.abs(delta) > 2e3 || newY === 0 || newY === scrollableHeight) && scrollHeight > el.scrollHeight + 5) {\n      const prog = newY / scrollableHeight;\n      const recomputed = (scrollHeight - el.clientHeight) * prog;\n      offsetY.current = recomputed - newY;\n    }\n    if (lock !== void 0) {\n      window.clearTimeout(idleTimer.current);\n      setIsIdle(false);\n      idleTimer.current = window.setTimeout(() => setIsIdle(true), 200);\n    }\n    update({\n      x: scrollLeft,\n      y: newY + offsetY.current,\n      width: el.clientWidth - paddingRight,\n      height: el.clientHeight - paddingBottom,\n      paddingRight: rightWrapRef.current?.clientWidth ?? 0\n    });\n  }, [paddingBottom, paddingRight, scrollHeight, update, preventDiagonalScrolling, hasTouches]);\n  const onScrollRef = React.useRef(onScroll);\n  onScrollRef.current = onScroll;\n  const lastProps = React.useRef();\n  const didFirstScroll = React.useRef(false);\n  React.useEffect(() => {\n    if (didFirstScroll.current)\n      onScroll();\n    else\n      didFirstScroll.current = true;\n  }, [onScroll, paddingBottom, paddingRight]);\n  const setRefs = React.useCallback((instance) => {\n    scroller.current = instance;\n    if (scrollRef !== void 0) {\n      scrollRef.current = instance;\n    }\n  }, [scrollRef]);\n  let key = 0;\n  let h = 0;\n  padders.push(/* @__PURE__ */ React.createElement(\"div\", {\n    key: key++,\n    style: { width: scrollWidth, height: 0 }\n  }));\n  while (h < scrollHeight) {\n    const toAdd = Math.min(5e6, scrollHeight - h);\n    padders.push(/* @__PURE__ */ React.createElement(\"div\", {\n      key: key++,\n      style: { width: 0, height: toAdd }\n    }));\n    h += toAdd;\n  }\n  const { ref, width, height } = useResizeDetector(initialSize);\n  if (lastProps.current?.height !== height || lastProps.current?.width !== width) {\n    window.setTimeout(() => onScrollRef.current(), 0);\n    lastProps.current = { width, height };\n  }\n  if ((width ?? 0) === 0 || (height ?? 0) === 0)\n    return /* @__PURE__ */ React.createElement(\"div\", {\n      ref\n    });\n  return /* @__PURE__ */ React.createElement(\"div\", {\n    ref\n  }, /* @__PURE__ */ React.createElement(ScrollRegionStyle, {\n    isSafari: browserIsSafari.value\n  }, minimap, /* @__PURE__ */ React.createElement(\"div\", {\n    className: \"dvn-underlay\"\n  }, children), /* @__PURE__ */ React.createElement(\"div\", {\n    ref: setRefs,\n    style: lastProps.current,\n    draggable,\n    onDragStart: (e) => {\n      if (!draggable) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n    },\n    className: \"dvn-scroller \" + (className ?? \"\"),\n    onScroll\n  }, /* @__PURE__ */ React.createElement(\"div\", {\n    className: \"dvn-scroll-inner\" + (rightElement === void 0 ? \" hidden\" : \"\")\n  }, /* @__PURE__ */ React.createElement(\"div\", {\n    className: \"dvn-stack\"\n  }, padders), rightElement !== void 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, !rightElementFill && /* @__PURE__ */ React.createElement(\"div\", {\n    className: \"dvn-spacer\"\n  }), /* @__PURE__ */ React.createElement(\"div\", {\n    ref: rightWrapRef,\n    onMouseDown: eatEvent,\n    onMouseUp: eatEvent,\n    onMouseMove: eatEvent,\n    style: {\n      height,\n      maxHeight: clientHeight - Math.ceil(dpr % 1),\n      position: \"sticky\",\n      top: 0,\n      paddingLeft: 1,\n      marginBottom: -40,\n      marginRight: paddingRight,\n      flexGrow: rightElementFill ? 1 : void 0,\n      right: rightElementSticky ? paddingRight ?? 0 : void 0,\n      pointerEvents: \"auto\"\n    }\n  }, rightElement))))));\n};\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvc2Nyb2xsaW5nLWRhdGEtZ3JpZC9pbmZpbml0ZS1zY3JvbGxlci50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBSZWN0YW5nbGUgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlUmVzaXplRGV0ZWN0b3IgfSBmcm9tIFwiLi4vY29tbW9uL3Jlc2l6ZS1kZXRlY3RvclwiO1xuaW1wb3J0IHsgYnJvd3NlcklzU2FmYXJpIH0gZnJvbSBcIi4uL2NvbW1vbi9icm93c2VyLWRldGVjdFwiO1xuaW1wb3J0IHsgdXNlRXZlbnRMaXN0ZW5lciB9IGZyb20gXCIuLi9jb21tb24vdXRpbHNcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICByZWFkb25seSBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcHJldmVudERpYWdvbmFsU2Nyb2xsaW5nPzogYm9vbGVhbjtcbiAgICByZWFkb25seSBkcmFnZ2FibGU6IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgcGFkZGluZ1JpZ2h0PzogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHBhZGRpbmdCb3R0b20/OiBudW1iZXI7XG4gICAgcmVhZG9ubHkgY2xpZW50SGVpZ2h0OiBudW1iZXI7XG4gICAgcmVhZG9ubHkgc2Nyb2xsV2lkdGg6IG51bWJlcjtcbiAgICByZWFkb25seSBzY3JvbGxIZWlnaHQ6IG51bWJlcjtcbiAgICByZWFkb25seSBzY3JvbGxUb0VuZD86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgaW5pdGlhbFNpemU/OiByZWFkb25seSBbd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXJdO1xuICAgIHJlYWRvbmx5IHJpZ2h0RWxlbWVudFByb3BzPzoge1xuICAgICAgICByZWFkb25seSBzdGlja3k/OiBib29sZWFuO1xuICAgICAgICByZWFkb25seSBmaWxsPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIHJlYWRvbmx5IHJpZ2h0RWxlbWVudD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICByZWFkb25seSBtaW5pbWFwPzogUmVhY3QuUmVhY3ROb2RlO1xuICAgIHJlYWRvbmx5IHNjcm9sbFJlZj86IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPjtcbiAgICByZWFkb25seSB1cGRhdGU6IChyZWdpb246IFJlY3RhbmdsZSAmIHsgcGFkZGluZ1JpZ2h0OiBudW1iZXIgfSkgPT4gdm9pZDtcbn1cblxuY29uc3QgU2Nyb2xsUmVnaW9uU3R5bGUgPSBzdHlsZWQuZGl2PHsgaXNTYWZhcmk6IGJvb2xlYW4gfT5gXG4gICAgLmR2bi1zY3JvbGxlciB7XG4gICAgICAgIG92ZXJmbG93OiAke3AgPT4gKHAuaXNTYWZhcmkgPyBcInNjcm9sbFwiIDogXCJhdXRvXCIpfTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAuaGlkZGVuIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIC5kdm4tc2Nyb2xsLWlubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmR2bi1zcGFjZXIge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgLmR2bi1zdGFjayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kdm4tdW5kZXJsYXkgPiAqIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgY2FudmFzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcblxuICAgICAgICAqIHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbmA7XG5cbnR5cGUgU2Nyb2xsTG9jayA9IFt1bmRlZmluZWQsIG51bWJlcl0gfCBbbnVtYmVyLCB1bmRlZmluZWRdIHwgdW5kZWZpbmVkO1xuXG5mdW5jdGlvbiBlYXRFdmVudChlOiBSZWFjdC5Nb3VzZUV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbn1cblxuZnVuY3Rpb24gdXNlVG91Y2hVcERlbGF5ZWQoZGVsYXk6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtoYXNUb3VjaGVzLCBzZXRIYXNUb3VjaGVzXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGNiVGltZXIgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgdXNlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgXCJ0b3VjaHN0YXJ0XCIsXG4gICAgICAgIFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoY2JUaW1lci5jdXJyZW50KTtcbiAgICAgICAgICAgIHNldEhhc1RvdWNoZXModHJ1ZSk7XG4gICAgICAgIH0sIFtdKSxcbiAgICAgICAgd2luZG93LFxuICAgICAgICB0cnVlLFxuICAgICAgICBmYWxzZVxuICAgICk7XG5cbiAgICB1c2VFdmVudExpc3RlbmVyKFxuICAgICAgICBcInRvdWNoZW5kXCIsXG4gICAgICAgIFJlYWN0LnVzZUNhbGxiYWNrKFxuICAgICAgICAgICAgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUudG91Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY2JUaW1lci5jdXJyZW50ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gc2V0SGFzVG91Y2hlcyhmYWxzZSksIGRlbGF5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW2RlbGF5XVxuICAgICAgICApLFxuICAgICAgICB3aW5kb3csXG4gICAgICAgIHRydWUsXG4gICAgICAgIGZhbHNlXG4gICAgKTtcblxuICAgIHJldHVybiBoYXNUb3VjaGVzO1xufVxuXG5leHBvcnQgY29uc3QgSW5maW5pdGVTY3JvbGxlcjogUmVhY3QuRkM8UHJvcHM+ID0gcCA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgY2xpZW50SGVpZ2h0LFxuICAgICAgICBzY3JvbGxIZWlnaHQsXG4gICAgICAgIHNjcm9sbFdpZHRoLFxuICAgICAgICB1cGRhdGUsXG4gICAgICAgIGRyYWdnYWJsZSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBwcmV2ZW50RGlhZ29uYWxTY3JvbGxpbmcgPSBmYWxzZSxcbiAgICAgICAgcGFkZGluZ0JvdHRvbSA9IDAsXG4gICAgICAgIHBhZGRpbmdSaWdodCA9IDAsXG4gICAgICAgIHJpZ2h0RWxlbWVudCxcbiAgICAgICAgcmlnaHRFbGVtZW50UHJvcHMsXG4gICAgICAgIHNjcm9sbFJlZixcbiAgICAgICAgc2Nyb2xsVG9FbmQsXG4gICAgICAgIGluaXRpYWxTaXplLFxuICAgICAgICBtaW5pbWFwLFxuICAgIH0gPSBwO1xuICAgIGNvbnN0IHBhZGRlcnM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gW107XG5cbiAgICBjb25zdCByaWdodEVsZW1lbnRTdGlja3kgPSByaWdodEVsZW1lbnRQcm9wcz8uc3RpY2t5ID8/IGZhbHNlO1xuICAgIGNvbnN0IHJpZ2h0RWxlbWVudEZpbGwgPSByaWdodEVsZW1lbnRQcm9wcz8uZmlsbCA/PyBmYWxzZTtcblxuICAgIGNvbnN0IG9mZnNldFkgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgY29uc3QgbGFzdFNjcm9sbFkgPSBSZWFjdC51c2VSZWYoMCk7XG4gICAgY29uc3Qgc2Nyb2xsZXIgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IGRwciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSBzY3JvbGxlci5jdXJyZW50O1xuICAgICAgICBpZiAoZWwgPT09IG51bGwgfHwgc2Nyb2xsVG9FbmQgIT09IHRydWUpIHJldHVybjtcblxuICAgICAgICBlbC5zY3JvbGxMZWZ0ID0gZWwuc2Nyb2xsV2lkdGggLSBlbC5jbGllbnRXaWR0aDtcbiAgICB9LCBbc2Nyb2xsVG9FbmRdKTtcblxuICAgIGNvbnN0IGxhc3RTY3JvbGxQb3NpdGlvbiA9IFJlYWN0LnVzZVJlZih7XG4gICAgICAgIHNjcm9sbExlZnQ6IDAsXG4gICAgICAgIHNjcm9sbFRvcDogMCxcbiAgICAgICAgbG9ja0RpcmVjdGlvbjogdW5kZWZpbmVkIGFzIFNjcm9sbExvY2ssXG4gICAgfSk7XG5cbiAgICBjb25zdCByaWdodFdyYXBSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IGhhc1RvdWNoZXMgPSB1c2VUb3VjaFVwRGVsYXllZCgyMDApO1xuICAgIGNvbnN0IFtpc0lkbGUsIHNldElzSWRsZV0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBpZGxlVGltZXIgPSBSZWFjdC51c2VSZWYoMCk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlzSWRsZSB8fCBoYXNUb3VjaGVzIHx8IGxhc3RTY3JvbGxQb3NpdGlvbi5jdXJyZW50LmxvY2tEaXJlY3Rpb24gPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbCA9IHNjcm9sbGVyLmN1cnJlbnQ7XG4gICAgICAgIGlmIChlbCA9PT0gbnVsbCkgcmV0dXJuO1xuICAgICAgICBjb25zdCBbbHgsIGx5XSA9IGxhc3RTY3JvbGxQb3NpdGlvbi5jdXJyZW50LmxvY2tEaXJlY3Rpb247XG4gICAgICAgIGlmIChseCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBlbC5zY3JvbGxMZWZ0ID0gbHg7XG4gICAgICAgIH0gZWxzZSBpZiAobHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZWwuc2Nyb2xsVG9wID0gbHk7XG4gICAgICAgIH1cbiAgICAgICAgbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQubG9ja0RpcmVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9LCBbaGFzVG91Y2hlcywgaXNJZGxlXSk7XG5cbiAgICBjb25zdCBvblNjcm9sbCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWwgPSBzY3JvbGxlci5jdXJyZW50O1xuICAgICAgICBpZiAoZWwgPT09IG51bGwpIHJldHVybjtcblxuICAgICAgICBsZXQgc2Nyb2xsVG9wID0gZWwuc2Nyb2xsVG9wO1xuICAgICAgICBsZXQgc2Nyb2xsTGVmdCA9IGVsLnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IGxhc3RTY3JvbGxUb3AgPSBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5zY3JvbGxUb3A7XG4gICAgICAgIGNvbnN0IGxhc3RTY3JvbGxMZWZ0ID0gbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQuc2Nyb2xsTGVmdDtcblxuICAgICAgICBjb25zdCBkeCA9IHNjcm9sbExlZnQgLSBsYXN0U2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3QgZHkgPSBzY3JvbGxUb3AgLSBsYXN0U2Nyb2xsVG9wO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGhhc1RvdWNoZXMgJiZcbiAgICAgICAgICAgIGR4ICE9PSAwICYmXG4gICAgICAgICAgICBkeSAhPT0gMCAmJlxuICAgICAgICAgICAgKE1hdGguYWJzKGR4KSA+IDMgfHwgTWF0aC5hYnMoZHkpID4gMykgJiZcbiAgICAgICAgICAgIHByZXZlbnREaWFnb25hbFNjcm9sbGluZyAmJlxuICAgICAgICAgICAgbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQubG9ja0RpcmVjdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgICAgbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQubG9ja0RpcmVjdGlvbiA9XG4gICAgICAgICAgICAgICAgTWF0aC5hYnMoZHgpIDwgTWF0aC5hYnMoZHkpID8gW2xhc3RTY3JvbGxMZWZ0LCB1bmRlZmluZWRdIDogW3VuZGVmaW5lZCwgbGFzdFNjcm9sbFRvcF07XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsb2NrID0gbGFzdFNjcm9sbFBvc2l0aW9uLmN1cnJlbnQubG9ja0RpcmVjdGlvbjtcblxuICAgICAgICBzY3JvbGxMZWZ0ID0gbG9jaz8uWzBdID8/IHNjcm9sbExlZnQ7XG4gICAgICAgIHNjcm9sbFRvcCA9IGxvY2s/LlsxXSA/PyBzY3JvbGxUb3A7XG4gICAgICAgIGxhc3RTY3JvbGxQb3NpdGlvbi5jdXJyZW50LnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0O1xuICAgICAgICBsYXN0U2Nyb2xsUG9zaXRpb24uY3VycmVudC5zY3JvbGxUb3AgPSBzY3JvbGxUb3A7XG5cbiAgICAgICAgY29uc3QgbmV3WSA9IHNjcm9sbFRvcDtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBsYXN0U2Nyb2xsWS5jdXJyZW50IC0gbmV3WTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZUhlaWdodCA9IGVsLnNjcm9sbEhlaWdodCAtIGVsLmNsaWVudEhlaWdodDtcbiAgICAgICAgbGFzdFNjcm9sbFkuY3VycmVudCA9IG5ld1k7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgc2Nyb2xsYWJsZUhlaWdodCA+IDAgJiZcbiAgICAgICAgICAgIChNYXRoLmFicyhkZWx0YSkgPiAyMDAwIHx8IG5ld1kgPT09IDAgfHwgbmV3WSA9PT0gc2Nyb2xsYWJsZUhlaWdodCkgJiZcbiAgICAgICAgICAgIHNjcm9sbEhlaWdodCA+IGVsLnNjcm9sbEhlaWdodCArIDVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9nID0gbmV3WSAvIHNjcm9sbGFibGVIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCByZWNvbXB1dGVkID0gKHNjcm9sbEhlaWdodCAtIGVsLmNsaWVudEhlaWdodCkgKiBwcm9nO1xuICAgICAgICAgICAgb2Zmc2V0WS5jdXJyZW50ID0gcmVjb21wdXRlZCAtIG5ld1k7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KGlkbGVUaW1lci5jdXJyZW50KTtcbiAgICAgICAgICAgIHNldElzSWRsZShmYWxzZSk7XG4gICAgICAgICAgICBpZGxlVGltZXIuY3VycmVudCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHNldElzSWRsZSh0cnVlKSwgMjAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZSh7XG4gICAgICAgICAgICB4OiBzY3JvbGxMZWZ0LFxuICAgICAgICAgICAgeTogbmV3WSArIG9mZnNldFkuY3VycmVudCxcbiAgICAgICAgICAgIHdpZHRoOiBlbC5jbGllbnRXaWR0aCAtIHBhZGRpbmdSaWdodCxcbiAgICAgICAgICAgIGhlaWdodDogZWwuY2xpZW50SGVpZ2h0IC0gcGFkZGluZ0JvdHRvbSxcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodDogcmlnaHRXcmFwUmVmLmN1cnJlbnQ/LmNsaWVudFdpZHRoID8/IDAsXG4gICAgICAgIH0pO1xuICAgIH0sIFtwYWRkaW5nQm90dG9tLCBwYWRkaW5nUmlnaHQsIHNjcm9sbEhlaWdodCwgdXBkYXRlLCBwcmV2ZW50RGlhZ29uYWxTY3JvbGxpbmcsIGhhc1RvdWNoZXNdKTtcblxuICAgIGNvbnN0IG9uU2Nyb2xsUmVmID0gUmVhY3QudXNlUmVmKG9uU2Nyb2xsKTtcbiAgICBvblNjcm9sbFJlZi5jdXJyZW50ID0gb25TY3JvbGw7XG5cbiAgICBjb25zdCBsYXN0UHJvcHMgPSBSZWFjdC51c2VSZWY8eyB3aWR0aD86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyIH0+KCk7XG5cbiAgICBjb25zdCBkaWRGaXJzdFNjcm9sbCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGRpZEZpcnN0U2Nyb2xsLmN1cnJlbnQpIG9uU2Nyb2xsKCk7XG4gICAgICAgIGVsc2UgZGlkRmlyc3RTY3JvbGwuY3VycmVudCA9IHRydWU7XG4gICAgfSwgW29uU2Nyb2xsLCBwYWRkaW5nQm90dG9tLCBwYWRkaW5nUmlnaHRdKTtcblxuICAgIGNvbnN0IHNldFJlZnMgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAgICAgKGluc3RhbmNlOiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbGVyLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICAgICAgICAgIGlmIChzY3JvbGxSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHNjcm9sbFJlZi5jdXJyZW50ID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtzY3JvbGxSZWZdXG4gICAgKTtcblxuICAgIGxldCBrZXkgPSAwO1xuICAgIGxldCBoID0gMDtcbiAgICBwYWRkZXJzLnB1c2goPGRpdiBrZXk9e2tleSsrfSBzdHlsZT17eyB3aWR0aDogc2Nyb2xsV2lkdGgsIGhlaWdodDogMCB9fSAvPik7XG4gICAgd2hpbGUgKGggPCBzY3JvbGxIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgdG9BZGQgPSBNYXRoLm1pbig1XzAwMF8wMDAsIHNjcm9sbEhlaWdodCAtIGgpO1xuICAgICAgICBwYWRkZXJzLnB1c2goPGRpdiBrZXk9e2tleSsrfSBzdHlsZT17eyB3aWR0aDogMCwgaGVpZ2h0OiB0b0FkZCB9fSAvPik7XG4gICAgICAgIGggKz0gdG9BZGQ7XG4gICAgfVxuXG4gICAgY29uc3QgeyByZWYsIHdpZHRoLCBoZWlnaHQgfSA9IHVzZVJlc2l6ZURldGVjdG9yPEhUTUxEaXZFbGVtZW50Pihpbml0aWFsU2l6ZSk7XG5cbiAgICBpZiAobGFzdFByb3BzLmN1cnJlbnQ/LmhlaWdodCAhPT0gaGVpZ2h0IHx8IGxhc3RQcm9wcy5jdXJyZW50Py53aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gb25TY3JvbGxSZWYuY3VycmVudCgpLCAwKTtcbiAgICAgICAgbGFzdFByb3BzLmN1cnJlbnQgPSB7IHdpZHRoLCBoZWlnaHQgfTtcbiAgICB9XG5cbiAgICBpZiAoKHdpZHRoID8/IDApID09PSAwIHx8IChoZWlnaHQgPz8gMCkgPT09IDApIHJldHVybiA8ZGl2IHJlZj17cmVmfSAvPjtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgcmVmPXtyZWZ9PlxuICAgICAgICAgICAgPFNjcm9sbFJlZ2lvblN0eWxlIGlzU2FmYXJpPXticm93c2VySXNTYWZhcmkudmFsdWV9PlxuICAgICAgICAgICAgICAgIHttaW5pbWFwfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZHZuLXVuZGVybGF5XCI+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgcmVmPXtzZXRSZWZzfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17bGFzdFByb3BzLmN1cnJlbnR9XG4gICAgICAgICAgICAgICAgICAgIGRyYWdnYWJsZT17ZHJhZ2dhYmxlfVxuICAgICAgICAgICAgICAgICAgICBvbkRyYWdTdGFydD17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRyYWdnYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wiZHZuLXNjcm9sbGVyIFwiICsgKGNsYXNzTmFtZSA/PyBcIlwiKX1cbiAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e29uU2Nyb2xsfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiZHZuLXNjcm9sbC1pbm5lclwiICsgKHJpZ2h0RWxlbWVudCA9PT0gdW5kZWZpbmVkID8gXCIgaGlkZGVuXCIgOiBcIlwiKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImR2bi1zdGFja1wiPntwYWRkZXJzfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge3JpZ2h0RWxlbWVudCAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IXJpZ2h0RWxlbWVudEZpbGwgJiYgPGRpdiBjbGFzc05hbWU9XCJkdm4tc3BhY2VyXCIgLz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17cmlnaHRXcmFwUmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249e2VhdEV2ZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZVVwPXtlYXRFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VNb3ZlPXtlYXRFdmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogY2xpZW50SGVpZ2h0IC0gTWF0aC5jZWlsKGRwciAlIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcInN0aWNreVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IC00MCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogcGFkZGluZ1JpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhHcm93OiByaWdodEVsZW1lbnRGaWxsID8gMSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogcmlnaHRFbGVtZW50U3RpY2t5ID8gcGFkZGluZ1JpZ2h0ID8/IDAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyaWdodEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1Njcm9sbFJlZ2lvblN0eWxlPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUF1QkEsTUFBTSxvQkFBb0IsT0FBTztBQUFBO0FBQUEsb0JBRWIsT0FBTSxFQUFFLFdBQVcsV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJDbEQsa0JBQWtCLEdBQXFCO0FBQ25DLElBQUU7QUFBQTtBQUdOLDJCQUEyQixPQUF3QjtBQUMvQyxRQUFNLENBQUMsWUFBWSxpQkFBaUIsTUFBTSxTQUFTO0FBRW5ELFFBQU0sVUFBVSxNQUFNLE9BQU87QUFDN0IsbUJBQ0ksY0FDQSxNQUFNLFlBQVksTUFBTTtBQUNwQixXQUFPLGFBQWEsUUFBUTtBQUM1QixrQkFBYztBQUFBLEtBQ2YsS0FDSCxRQUNBLE1BQ0E7QUFHSixtQkFDSSxZQUNBLE1BQU0sWUFDRixPQUFLO0FBQ0QsUUFBSSxFQUFFLFFBQVEsV0FBVyxHQUFHO0FBQ3hCLGNBQVEsVUFBVSxPQUFPLFdBQVcsTUFBTSxjQUFjLFFBQVE7QUFBQTtBQUFBLEtBR3hFLENBQUMsU0FFTCxRQUNBLE1BQ0E7QUFHSixTQUFPO0FBQUE7QUFHSixhQUFNLG1CQUFvQyxPQUFLO0FBQ2xELFFBQU07QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSwyQkFBMkI7QUFBQSxJQUMz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*/", "import { styled } from \"@linaria/react\";\nexport const SearchWrapper = styled.div`\n    position: absolute;\n    top: 4px;\n    right: 20px;\n\n    background-color: var(--gdg-bg-cell);\n    color: var(--gdg-text-dark);\n\n    padding: 8px;\n    border: 1px solid var(--gdg-border-color);\n    border-radius: 6px;\n\n    font-size: var(--gdg-editor-font-size);\n\n    transform: translateX(${(p) => p.showSearch ? 0 : 400}px);\n    transition: transform 0.15s;\n\n    .search-bar-inner {\n        display: flex;\n    }\n\n    .search-status {\n        padding-top: 4px;\n        font-size: 11px;\n    }\n\n    .search-progress {\n        position: absolute;\n        height: 4px;\n        left: 0;\n        bottom: 0;\n\n        background-color: var(--gdg-text-light);\n    }\n\n    input {\n        width: 220px;\n        color: var(--gdg-textDark);\n        background-color: var(--gdg-bg-cell);\n        border: none;\n        border-width: 0;\n        outline: none;\n    }\n\n    button {\n        width: 24px;\n        height: 24px;\n        padding: 0;\n\n        border: none;\n        outline: none;\n        background: none;\n\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        cursor: pointer;\n        color: var(--gdg-text-medium);\n\n        :hover {\n            color: var(--gdg-text-dark);\n        }\n\n        .button-icon {\n            width: 16px;\n            height: 16px;\n        }\n\n        :disabled {\n            opacity: 0.4;\n            pointer-events: none;\n        }\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLXNlYXJjaC9kYXRhLWdyaWQtc2VhcmNoLXN0eWxlLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBTZWFyY2hXcmFwcGVyID0gc3R5bGVkLmRpdjx7IHNob3dTZWFyY2g6IGJvb2xlYW4gfT5gXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWJnLWNlbGwpO1xuICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1kYXJrKTtcblxuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nZGctYm9yZGVyLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWdkZy1lZGl0b3ItZm9udC1zaXplKTtcblxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgke3AgPT4gKHAuc2hvd1NlYXJjaCA/IDAgOiA0MDApfXB4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXM7XG5cbiAgICAuc2VhcmNoLWJhci1pbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1zdGF0dXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgfVxuXG4gICAgLnNlYXJjaC1wcm9ncmVzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctdGV4dC1saWdodCk7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dERhcmspO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctY2VsbCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1tZWRpdW0pO1xuXG4gICAgICAgIDpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLXRleHQtZGFyayk7XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICA6ZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5gO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFFTyxhQUFNLGdCQUFnQixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw0QkFjUixPQUFNLEVBQUUsYUFBYSxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import React from \"react\";\nimport { styled } from \"@linaria/react\";\nimport { css } from \"@linaria/core\";\nimport ClickOutsideContainer from \"../click-outside-container/click-outside-container\";\nconst RenameInput = styled.input`\n    flex-grow: 1;\n    border: none;\n    outline: none;\n    background-color: var(--gdg-bg-header-has-focus);\n    border-radius: 9px;\n    padding: 0 8px;\n    box-shadow: 0 0 0 1px var(--gdg-border-color);\n    color: var(--gdg-text-group-header);\n    min-height: ${(p) => Math.max(16, p.targetHeight - 10)}px;\n    font: var(--gdg-header-font-style) var(--gdg-font-family);\n`;\nexport const GroupRename = (p) => {\n  const { bounds, group, onClose, canvasBounds, onFinish } = p;\n  const [value, setValue] = React.useState(group);\n  return /* @__PURE__ */ React.createElement(ClickOutsideContainer, {\n    style: {\n      position: \"absolute\",\n      left: bounds.x - canvasBounds.left + 1,\n      top: bounds.y - canvasBounds.top,\n      width: bounds.width - 2,\n      height: bounds.height\n    },\n    className: css`\n                padding: 0 8px;\n                display: flex;\n                align-items: center;\n                background-color: var(--gdg-bg-header);\n            `,\n    onClickOutside: onClose\n  }, /* @__PURE__ */ React.createElement(RenameInput, {\n    targetHeight: bounds.height,\n    \"data-testid\": \"group-rename-input\",\n    value,\n    onBlur: onClose,\n    onFocus: (e) => e.target.setSelectionRange(0, value.length),\n    onChange: (e) => setValue(e.target.value),\n    onKeyDown: (e) => {\n      if (e.key === \"Enter\") {\n        onFinish(value);\n      } else if (e.key === \"Escape\") {\n        onClose();\n      }\n    },\n    autoFocus: true\n  }));\n};\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1lZGl0b3IvZ3JvdXAtcmVuYW1lLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5pbXBvcnQgeyBjc3MgfSBmcm9tIFwiQGxpbmFyaWEvY29yZVwiO1xuaW1wb3J0IENsaWNrT3V0c2lkZUNvbnRhaW5lciBmcm9tIFwiLi4vY2xpY2stb3V0c2lkZS1jb250YWluZXIvY2xpY2stb3V0c2lkZS1jb250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgUmVjdGFuZ2xlIH0gZnJvbSBcIi4uL2RhdGEtZ3JpZC9kYXRhLWdyaWQtdHlwZXNcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICByZWFkb25seSBib3VuZHM6IFJlY3RhbmdsZTtcbiAgICByZWFkb25seSBncm91cDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gICAgcmVhZG9ubHkgb25GaW5pc2g6IChuZXdWYWw6IHN0cmluZykgPT4gdm9pZDtcbiAgICByZWFkb25seSBjYW52YXNCb3VuZHM6IERPTVJlY3Q7XG59XG5cbmNvbnN0IFJlbmFtZUlucHV0ID0gc3R5bGVkLmlucHV0PHsgdGFyZ2V0SGVpZ2h0OiBudW1iZXIgfT5gXG4gICAgZmxleC1ncm93OiAxO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1oZWFkZXItaGFzLWZvY3VzKTtcbiAgICBib3JkZXItcmFkaXVzOiA5cHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWdkZy1ib3JkZXItY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1ncm91cC1oZWFkZXIpO1xuICAgIG1pbi1oZWlnaHQ6ICR7cCA9PiBNYXRoLm1heCgxNiwgcC50YXJnZXRIZWlnaHQgLSAxMCl9cHg7XG4gICAgZm9udDogdmFyKC0tZ2RnLWhlYWRlci1mb250LXN0eWxlKSB2YXIoLS1nZGctZm9udC1mYW1pbHkpO1xuYDtcblxuZXhwb3J0IGNvbnN0IEdyb3VwUmVuYW1lOiBSZWFjdC5WRkM8UHJvcHM+ID0gcCA9PiB7XG4gICAgY29uc3QgeyBib3VuZHMsIGdyb3VwLCBvbkNsb3NlLCBjYW52YXNCb3VuZHMsIG9uRmluaXNoIH0gPSBwO1xuXG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSBSZWFjdC51c2VTdGF0ZShncm91cCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Q2xpY2tPdXRzaWRlQ29udGFpbmVyXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgbGVmdDogYm91bmRzLnggLSBjYW52YXNCb3VuZHMubGVmdCArIDEsXG4gICAgICAgICAgICAgICAgdG9wOiBib3VuZHMueSAtIGNhbnZhc0JvdW5kcy50b3AsXG4gICAgICAgICAgICAgICAgd2lkdGg6IGJvdW5kcy53aWR0aCAtIDIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBib3VuZHMuaGVpZ2h0LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y3NzYFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctaGVhZGVyKTtcbiAgICAgICAgICAgIGB9XG4gICAgICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25DbG9zZX0+XG4gICAgICAgICAgICA8UmVuYW1lSW5wdXRcbiAgICAgICAgICAgICAgICB0YXJnZXRIZWlnaHQ9e2JvdW5kcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJncm91cC1yZW5hbWUtaW5wdXRcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBvbkJsdXI9e29uQ2xvc2V9XG4gICAgICAgICAgICAgICAgb25Gb2N1cz17ZSA9PiBlLnRhcmdldC5zZXRTZWxlY3Rpb25SYW5nZSgwLCB2YWx1ZS5sZW5ndGgpfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHNldFZhbHVlKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBvbktleURvd249e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5pc2godmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBcIkVzY2FwZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvQ2xpY2tPdXRzaWRlQ29udGFpbmVyPlxuICAgICk7XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFXQSxNQUFNLGNBQWMsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxrQkFTVCxPQUFLLEtBQUssSUFBSSxJQUFJLEVBQUUsZUFBZTtBQUFBO0FBQUE7QUFJOUMsYUFBTSxjQUFnQyxPQUFLO0FBQzlDLFFBQU0sRUFBRSxRQUFRLE9BQU8sU0FBUyxjQUFjLGFBQWE7QUFFM0QsUUFBTSxDQUFDLE9BQU8sWUFBWSxNQUFNLFNBQVM7QUFFekMsU0FDSSxvQ0FBQyx1QkFBRDtBQUFBLElBQ0ksT0FBTztBQUFBLE1BQ0gsVUFBVTtBQUFBLE1BQ1YsTUFBTSxPQUFPLElBQUksYUFBYSxPQUFPO0FBQUEsTUFDckMsS0FBSyxPQUFPLElBQUksYUFBYTtBQUFBLE1BQzdCLE9BQU8sT0FBTyxRQUFRO0FBQUEsTUFDdEIsUUFBUSxPQUFPO0FBQUE7QUFBQSxJQUVuQixXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTVgsZ0JBQWdCO0FBQUEsS0FDaEIsb0NBQUMsYUFBRDtBQUFBLElBQ0ksY0FBYyxPQUFPO0FBQUEsSUFDckIsZUFBWTtBQUFBLElBQ1o7QUFBQSxJQUNBLFFBQVE7QUFBQSxJQUNSLFNBQVMsT0FBSyxFQUFFLE9BQU8sa0JBQWtCLEdBQUcsTUFBTTtBQUFBLElBQ2xELFVBQVUsT0FBSyxTQUFTLEVBQUUsT0FBTztBQUFBLElBQ2pDLFdBQVcsT0FBSztBQUNaLFVBQUksRUFBRSxRQUFRLFNBQVM7QUFDbkIsaUJBQVM7QUFBQSxpQkFDRixFQUFFLFFBQVEsVUFBVTtBQUMzQjtBQUFBO0FBQUE7QUFBQSxJQUdSLFdBQVc7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/", "import { styled } from \"@linaria/react\";\nimport * as React from \"react\";\nfunction toCss(x) {\n  if (typeof x === \"string\")\n    return x;\n  return `${x}px`;\n}\nconst Wrapper = styled.div`\n    position: relative;\n\n    min-width: 10px;\n    min-height: 10px;\n    max-width: 100%;\n    max-height: 100%;\n\n    width: ${(p) => p.innerWidth};\n    height: ${(p) => p.innerHeight};\n\n    overflow: hidden;\n    overflow: clip;\n\n    contain: strict;\n\n    direction: ltr;\n\n    > :first-child {\n        position: absolute;\n        left: 0;\n        top: 0;\n        width: 100%;\n        height: 100%;\n    }\n`;\nexport const DataEditorContainer = (p) => {\n  const { inWidth, inHeight, children, ...rest } = p;\n  return /* @__PURE__ */ React.createElement(Wrapper, {\n    innerHeight: toCss(inHeight),\n    innerWidth: toCss(inWidth),\n    ...rest\n  }, children);\n};\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1lZGl0b3ItY29udGFpbmVyL2RhdGEtZ3JpZC1jb250YWluZXIudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbnRlcmZhY2UgV3JhcHBlclByb3BzIHtcbiAgICBpbldpZHRoOiBudW1iZXIgfCBzdHJpbmc7XG4gICAgaW5IZWlnaHQ6IG51bWJlciB8IHN0cmluZztcbn1cblxuZnVuY3Rpb24gdG9Dc3MoeDogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSByZXR1cm4geDtcbiAgICByZXR1cm4gYCR7eH1weGA7XG59XG5cbmNvbnN0IFdyYXBwZXIgPSBzdHlsZWQuZGl2PHsgaW5uZXJXaWR0aDogc3RyaW5nOyBpbm5lckhlaWdodDogc3RyaW5nIH0+YFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIG1pbi13aWR0aDogMTBweDtcbiAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgd2lkdGg6ICR7cCA9PiBwLmlubmVyV2lkdGh9O1xuICAgIGhlaWdodDogJHtwID0+IHAuaW5uZXJIZWlnaHR9O1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvdmVyZmxvdzogY2xpcDtcblxuICAgIGNvbnRhaW46IHN0cmljdDtcblxuICAgIGRpcmVjdGlvbjogbHRyO1xuXG4gICAgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5gO1xuXG5pbnRlcmZhY2UgUHJvcHMgZXh0ZW5kcyBXcmFwcGVyUHJvcHMsIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiB7fVxuXG5leHBvcnQgY29uc3QgRGF0YUVkaXRvckNvbnRhaW5lcjogUmVhY3QuRnVuY3Rpb25Db21wb25lbnQ8UmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48UHJvcHM+PiA9IHAgPT4ge1xuICAgIGNvbnN0IHsgaW5XaWR0aCwgaW5IZWlnaHQsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwO1xuICAgIHJldHVybiAoXG4gICAgICAgIDxXcmFwcGVyIGlubmVySGVpZ2h0PXt0b0NzcyhpbkhlaWdodCl9IGlubmVyV2lkdGg9e3RvQ3NzKGluV2lkdGgpfSB7Li4ucmVzdH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvV3JhcHBlcj5cbiAgICApO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBQ0E7QUFPQSxlQUFlLEdBQW9CO0FBQy9CLE1BQUksT0FBTyxNQUFNO0FBQVUsV0FBTztBQUNsQyxTQUFPLEdBQUc7QUFBQTtBQUdkLE1BQU0sVUFBVSxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQVFWLE9BQUssRUFBRTtBQUFBLGNBQ04sT0FBSyxFQUFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQmQsYUFBTSxzQkFBK0UsT0FBSztBQUM3RixRQUFNLEVBQUUsU0FBUyxVQUFVLGFBQWEsU0FBUztBQUNqRCxTQUNJLG9DQUFDLFNBQUQ7QUFBQSxJQUFTLGFBQWEsTUFBTTtBQUFBLElBQVcsWUFBWSxNQUFNO0FBQUEsT0FBYztBQUFBLEtBQ2xFO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==*/", "import { styled } from \"@linaria/react\";\nexport const BubblesOverlayEditorStyle = styled.div`\n    display: flex;\n    flex-wrap: wrap;\n\n    .boe-bubble {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n\n        border-radius: 100px;\n\n        padding: 0 8px;\n        height: 20px;\n\n        background-color: var(--gdg-bg-bubble);\n        color: var(--gdg-text-dark);\n        margin: 2px;\n    }\n\n    textarea {\n        position: absolute;\n        top: 0px;\n        left: 0px;\n        width: 0px;\n        height: 0px;\n\n        opacity: 0;\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL3ByaXZhdGUvYnViYmxlcy1vdmVybGF5LWVkaXRvci1zdHlsZS50c3giXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgQnViYmxlc092ZXJsYXlFZGl0b3JTdHlsZSA9IHN0eWxlZC5kaXZgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAuYm9lLWJ1YmJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWJnLWJ1YmJsZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1kYXJrKTtcbiAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMHB4O1xuXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuYDtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRU8sYUFBTSw0QkFBNEIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/", "import * as React from \"react\";\nimport { styled } from \"@linaria/react\";\nconst DrilldownOverlayEditorStyle = styled.div`\n    display: flex;\n    flex-wrap: wrap;\n\n    .doe-bubble {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n\n        border-radius: 100px;\n\n        padding: 0 8px;\n        height: 24px;\n\n        background-color: var(--gdg-bg-cell);\n        color: var(--gdg-text-dark);\n        margin: 2px;\n\n        border-radius: 6px;\n\n        box-shadow: 0 0 1px rgba(62, 65, 86, 0.4), 0 1px 3px rgba(62, 65, 86, 0.4);\n\n        img {\n            height: 16px;\n            object-fit: contain;\n\n            margin-right: 4px;\n        }\n    }\n\n    textarea {\n        position: absolute;\n        top: 0px;\n        left: 0px;\n        width: 0px;\n        height: 0px;\n\n        opacity: 0;\n    }\n`;\nconst DrilldownOverlayEditor = (p) => {\n  const { drilldowns } = p;\n  return /* @__PURE__ */ React.createElement(DrilldownOverlayEditorStyle, null, drilldowns.map((d, i) => /* @__PURE__ */ React.createElement(\"div\", {\n    key: i,\n    className: \"doe-bubble\"\n  }, d.img !== void 0 && /* @__PURE__ */ React.createElement(\"img\", {\n    src: d.img\n  }), /* @__PURE__ */ React.createElement(\"div\", null, d.text))));\n};\nexport default DrilldownOverlayEditor;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL3ByaXZhdGUvZHJpbGxkb3duLW92ZXJsYXktZWRpdG9yLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBEcmlsbGRvd25DZWxsRGF0YSB9IGZyb20gXCIuLi8uLi9kYXRhLWdyaWQvZGF0YS1ncmlkLXR5cGVzXCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuXG5jb25zdCBEcmlsbGRvd25PdmVybGF5RWRpdG9yU3R5bGUgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLmRvZS1idWJibGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcblxuICAgICAgICBwYWRkaW5nOiAwIDhweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1iZy1jZWxsKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuICAgICAgICBtYXJnaW46IDJweDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDFweCByZ2JhKDYyLCA2NSwgODYsIDAuNCksIDAgMXB4IDNweCByZ2JhKDYyLCA2NSwgODYsIDAuNCk7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG5cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMHB4O1xuXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuYDtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICByZWFkb25seSBkcmlsbGRvd25zOiByZWFkb25seSBEcmlsbGRvd25DZWxsRGF0YVtdO1xufVxuXG5jb25zdCBEcmlsbGRvd25PdmVybGF5RWRpdG9yOiBSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxQcm9wcz4gPSBwID0+IHtcbiAgICBjb25zdCB7IGRyaWxsZG93bnMgfSA9IHA7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPERyaWxsZG93bk92ZXJsYXlFZGl0b3JTdHlsZT5cbiAgICAgICAgICAgIHtkcmlsbGRvd25zLm1hcCgoZCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9XCJkb2UtYnViYmxlXCI+XG4gICAgICAgICAgICAgICAgICAgIHtkLmltZyAhPT0gdW5kZWZpbmVkICYmIDxpbWcgc3JjPXtkLmltZ30gLz59XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e2QudGV4dH08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L0RyaWxsZG93bk92ZXJsYXlFZGl0b3JTdHlsZT5cbiAgICApO1xufTtcbmV4cG9ydCBkZWZhdWx0IERyaWxsZG93bk92ZXJsYXlFZGl0b3I7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFDQTtBQUNBO0FBRUEsTUFBTSw4QkFBOEIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTZDM0MsTUFBTSx5QkFBeUQsT0FBSztBQUNoRSxRQUFNLEVBQUUsZUFBZTtBQUN2QixTQUNJLG9DQUFDLDZCQUFELE1BQ0ssV0FBVyxJQUFJLENBQUMsR0FBRyxNQUNoQixvQ0FBQyxPQUFEO0FBQUEsSUFBSyxLQUFLO0FBQUEsSUFBRyxXQUFVO0FBQUEsS0FDbEIsRUFBRSxRQUFRLFVBQWEsb0NBQUMsT0FBRDtBQUFBLElBQUssS0FBSyxFQUFFO0FBQUEsTUFDcEMsb0NBQUMsT0FBRCxNQUFNLEVBQUU7QUFBQTtBQU01QixlQUFlOyIsCiAgIm5hbWVzIjogW10KfQo=*/", "import { styled } from \"@linaria/react\";\nexport const ImageOverlayEditorStyle = styled.div`\n    display: flex;\n\n    height: 100%;\n\n    .centering-container {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n\n        height: 100%;\n\n        img,\n        canvas {\n            max-height: calc(100vh - var(--overlay-top) - 20px);\n            object-fit: contain;\n            user-select: none;\n        }\n\n        canvas {\n            max-width: 380px;\n        }\n    }\n\n    .edit-icon {\n        position: absolute;\n        top: 12px;\n        right: 0;\n        width: 48px;\n        height: 48px;\n        color: var(--gdg-accent-color);\n\n        cursor: pointer;\n\n        display: flex;\n        justify-content: center;\n        align-items: center;\n\n        > * {\n            width: 24px;\n            height: 24px;\n        }\n    }\n\n    textarea {\n        position: absolute;\n        top: 0px;\n        left: 0px;\n        width: 0px;\n        height: 0px;\n\n        opacity: 0;\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL3ByaXZhdGUvaW1hZ2Utb3ZlcmxheS1lZGl0b3Itc3R5bGUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdHlsZWQgfSBmcm9tIFwiQGxpbmFyaWEvcmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IEltYWdlT3ZlcmxheUVkaXRvclN0eWxlID0gc3R5bGVkLmRpdmBcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLmNlbnRlcmluZy1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgaW1nLFxuICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW92ZXJsYXktdG9wKSAtIDIwcHgpO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FudmFzIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzgwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZWRpdC1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLWFjY2VudC1jb2xvcik7XG5cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICB3aWR0aDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDBweDtcblxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUVPLGFBQU0sMEJBQTBCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/", "import { styled } from \"@linaria/react\";\nexport const MarkdownContainer = styled.div`\n    word-break: break-word;\n    -webkit-touch-callout: default;\n    padding-top: 6px;\n\n    > * {\n        margin: 0;\n    }\n\n    & *:last-child {\n        margin-bottom: 0;\n    }\n\n    & p img {\n        width: 100%;\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvbWFya2Rvd24tZGl2L3ByaXZhdGUvbWFya2Rvd24tY29udGFpbmVyLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBNYXJrZG93bkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IGRlZmF1bHQ7XG4gICAgcGFkZGluZy10b3A6IDZweDtcblxuICAgID4gKiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmICo6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJiBwIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUVPLGFBQU0sb0JBQW9CLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import { styled } from \"@linaria/react\";\nexport const InputBox = styled.textarea`\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    width: 100%;\n    height: 100%;\n\n    border-radius: 0px;\n\n    resize: none;\n    white-space: pre-wrap;\n    min-width: 100%;\n    overflow: hidden;\n    border: 0;\n    background-color: transparent;\n\n    ::placeholder {\n        color: var(--gdg-text-light);\n    }\n\n    font-size: var(--gdg-editor-font-size);\n    line-height: 16px;\n    font-family: var(--gdg-font-family);\n    color: var(--gdg-text-dark);\n    padding: 0;\n    margin: 0;\n\n    .invalid & {\n        text-decoration: underline;\n        text-decoration-color: #d60606;\n    }\n`;\nexport const ShadowBox = styled.div`\n    visibility: hidden;\n    white-space: pre-wrap;\n    word-wrap: break-word;\n\n    width: max-content;\n    max-width: 100%;\n\n    min-width: 100%;\n\n    font-size: var(--gdg-editor-font-size);\n    line-height: 16px;\n    font-family: var(--gdg-font-family);\n    color: var(--gdg-text-dark);\n    padding: 0;\n    margin: 0;\n\n    padding-bottom: 2px;\n`;\nexport const GrowingEntryStyle = styled.div`\n    position: relative;\n    margin-top: 6px;\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZ3Jvd2luZy1lbnRyeS9ncm93aW5nLWVudHJ5LXN0eWxlLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBJbnB1dEJveCA9IHN0eWxlZC50ZXh0YXJlYWBcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcblxuICAgIHJlc2l6ZTogbm9uZTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1saWdodCk7XG4gICAgfVxuXG4gICAgZm9udC1zaXplOiB2YXIoLS1nZGctZWRpdG9yLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWdkZy1mb250LWZhbWlseSk7XG4gICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLmludmFsaWQgJiB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNkNjA2MDY7XG4gICAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFNoYWRvd0JveCA9IHN0eWxlZC5kaXZgXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgbWluLXdpZHRoOiAxMDAlO1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1nZGctZWRpdG9yLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWdkZy1mb250LWZhbWlseSk7XG4gICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgcGFkZGluZy1ib3R0b206IDJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBHcm93aW5nRW50cnlTdHlsZSA9IHN0eWxlZC5kaXZgXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDZweDtcbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUVPLGFBQU0sV0FBVyxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUN4QixhQUFNLFlBQVksT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CekIsYUFBTSxvQkFBb0IsT0FBTztBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import { GrowingEntryStyle } from \"../../growing-entry/growing-entry-style\";\nimport { styled } from \"@linaria/react\";\nexport const MarkdownOverlayEditorStyle = styled.div`\n    min-width: ${(p) => p.targetWidth}px;\n    width: 100%;\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    position: relative;\n    color: var(--gdg-text-dark);\n\n    ${GrowingEntryStyle} {\n        flex-shrink: 1;\n        min-width: 0;\n    }\n\n    .spacer {\n        flex: 1;\n    }\n\n    .edit-icon {\n        position: relative;\n        cursor: pointer;\n\n        display: flex;\n        justify-content: center;\n        align-items: center;\n\n        color: var(--gdg-accent-color);\n\n        padding: 0;\n\n        height: 24px;\n        width: 24px;\n        flex-shrink: 0;\n\n        transition: all \"0.125s ease\";\n\n        border-radius: 6px;\n\n        > * {\n            width: 16px;\n            height: 16px;\n        }\n    }\n\n    .edit-hover {\n        :hover {\n            background-color: var(--gdg-accent-light);\n            transition: background-color 150ms;\n        }\n    }\n\n    .checkmark-hover {\n        :hover {\n            color: #ffffff;\n            background-color: var(--gdg-accent-color);\n        }\n    }\n\n    .md-edit-textarea {\n        position: relative;\n        top: 0px;\n        left: 0px;\n        width: 0px;\n        height: 0px;\n        margin-top: 25px;\n        opacity: 0;\n        padding: 0;\n    }\n\n    .ml-6 {\n        margin-left: 6px;\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL3ByaXZhdGUvbWFya2Rvd24tb3ZlcmxheS1lZGl0b3Itc3R5bGUudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBHcm93aW5nRW50cnlTdHlsZSB9IGZyb20gXCIuLi8uLi9ncm93aW5nLWVudHJ5L2dyb3dpbmctZW50cnktc3R5bGVcIjtcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gXCJAbGluYXJpYS9yZWFjdFwiO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIHRhcmdldFdpZHRoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBNYXJrZG93bk92ZXJsYXlFZGl0b3JTdHlsZSA9IHN0eWxlZC5kaXY8UHJvcHM+YFxuICAgIG1pbi13aWR0aDogJHtwID0+IHAudGFyZ2V0V2lkdGh9cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiB2YXIoLS1nZGctdGV4dC1kYXJrKTtcblxuICAgICR7R3Jvd2luZ0VudHJ5U3R5bGV9IHtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAuc3BhY2VyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAuZWRpdC1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy1hY2NlbnQtY29sb3IpO1xuXG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIFwiMC4xMjVzIGVhc2VcIjtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAgICAgPiAqIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmVkaXQtaG92ZXIge1xuICAgICAgICA6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2RnLWFjY2VudC1saWdodCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDE1MG1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNoZWNrbWFyay1ob3ZlciB7XG4gICAgICAgIDpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdkZy1hY2NlbnQtY29sb3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1kLWVkaXQtdGV4dGFyZWEge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMHB4O1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIGhlaWdodDogMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyNXB4O1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5tbC02IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICB9XG5gO1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFDQTtBQU1PLGFBQU0sNkJBQTZCLE9BQU87QUFBQSxpQkFDaEMsT0FBSyxFQUFFO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQVFsQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import { styled } from \"@linaria/react\";\nexport const NumberOverlayEditorStyle = styled.div`\n    display: flex;\n    margin: 6px 0 3px;\n    color: var(--gdg-text-dark);\n\n    > input {\n        font-size: var(--gdg-editor-font-size);\n        padding: 0;\n        font-family: var(--gdg-font-family);\n        color: var(--gdg-text-dark);\n        background-color: var(--gdg-bg-cell);\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL3ByaXZhdGUvbnVtYmVyLW92ZXJsYXktZWRpdG9yLXN0eWxlLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBOdW1iZXJPdmVybGF5RWRpdG9yU3R5bGUgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiA2cHggMCAzcHg7XG4gICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuXG4gICAgPiBpbnB1dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZ2RnLWVkaXRvci1mb250LXNpemUpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZ2RnLWZvbnQtZmFtaWx5KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy10ZXh0LWRhcmspO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nZGctYmctY2VsbCk7XG4gICAgfVxuYDtcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBO0FBRU8sYUFBTSwyQkFBMkIsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K*/", "import { styled } from \"@linaria/react\";\nexport const UriOverlayEditorStyle = styled.div`\n    display: flex;\n\n    flex-grow: 1;\n\n    align-items: center;\n\n    min-height: 21px;\n\n    .link-area {\n        flex-grow: 1;\n        flex-shrink: 1;\n\n        cursor: pointer;\n\n        margin-right: 8px;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        white-space: nowrap;\n\n        color: var(--gdg-link-color);\n        text-decoration: underline !important;\n    }\n\n    .edit-icon {\n        flex-shrink: 0;\n        width: 32px;\n        color: var(--gdg-accent-color);\n\n        cursor: pointer;\n\n        display: flex;\n        justify-content: center;\n        align-items: center;\n\n        > * {\n            width: 24px;\n            height: 24px;\n        }\n    }\n\n    textarea {\n        position: absolute;\n        top: 0px;\n        left: 0px;\n        width: 0px;\n        height: 0px;\n\n        opacity: 0;\n    }\n`;\n/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiL1VzZXJzL2JlYW4venQtY29kZS9nbGlkZS1kYXRhLWdyaWQvcGFja2FnZXMvY29yZS9zcmMvZGF0YS1ncmlkLW92ZXJsYXktZWRpdG9yL3ByaXZhdGUvdXJpLW92ZXJsYXktZWRpdG9yLXN0eWxlLnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBsaW5hcmlhL3JlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBVcmlPdmVybGF5RWRpdG9yU3R5bGUgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgbWluLWhlaWdodDogMjFweDtcblxuICAgIC5saW5rLWFyZWEge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWdkZy1saW5rLWNvbG9yKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuZWRpdC1pY29uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tZ2RnLWFjY2VudC1jb2xvcik7XG5cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID4gKiB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICB3aWR0aDogMHB4O1xuICAgICAgICBoZWlnaHQ6IDBweDtcblxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbmA7XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQTtBQUVPLGFBQU0sd0JBQXdCLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=*/"],
  "mappings": ";AAC0CA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;;AAAAA;;;AAAAA;;;AAAAA;;AAAAA;;;AAAAA;;;AAAAA;AAAAA;AAAAA;AAAAA;;;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACIrBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACAKC;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;;;ACJGC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;;;ACGTC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAuBLC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACpBCC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACNyBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACCLC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACDGC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACANC;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;;;ACATC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAkCCC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAmBQC;AAAAA;AAAAA;;;;ACpDSC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;;;;ACDFC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;;;ACAHC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;;",
  "names": [".d1t1th9s", ".m15w2ly5", ".s1jz82f8", ".sxep88s", ".r1kzy40b", ".c1sqdbw3", ".wzg2m5k", ".b1bqsp5z", ".df2kt4a", ".i1eozt10", ".mlbeo71", ".ijuk0po", ".saq3p5l", ".gf8vzix", ".mdwzdl1", ".n1czszh3", ".uf0sjo8"]
}
