import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/components/layout/Navbar.tsx");import __vite__cjsImport0_react_jsxDevRuntime from "/@fs/home/runner/workspace/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=c4080d1c"; const jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"];
import RefreshRuntime from "/@react-refresh";
const inWebWorker = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope;
let prevRefreshReg;
let prevRefreshSig;
if (import.meta.hot && !inWebWorker) {
  if (!window.__vite_plugin_react_preamble_installed__) {
    throw new Error("@vitejs/plugin-react can't detect preamble. Something is wrong. See https://github.com/vitejs/vite-plugin-react/pull/11#discussion_r430879201");
  }
  prevRefreshReg = window.$RefreshReg$;
  prevRefreshSig = window.$RefreshSig$;
  window.$RefreshReg$ = (type, id) => {
    RefreshRuntime.register(type, "/home/runner/workspace/client/src/components/layout/Navbar.tsx " + id);
  };
  window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform;
}
var _s = $RefreshSig$();
import __vite__cjsImport3_react from "/@fs/home/runner/workspace/node_modules/.vite/deps/react.js?v=c4080d1c"; const useState = __vite__cjsImport3_react["useState"]; const useEffect = __vite__cjsImport3_react["useEffect"];
import { Link } from "/@fs/home/runner/workspace/node_modules/.vite/deps/wouter.js?v=c4080d1c";
import { motion, AnimatePresence } from "/@fs/home/runner/workspace/node_modules/.vite/deps/framer-motion.js?v=c4080d1c";
import { Menu, X } from "/@fs/home/runner/workspace/node_modules/.vite/deps/lucide-react.js?v=c4080d1c";
import { useTranslation } from "/src/lib/i18n/TranslationContext.tsx";
import { AnimatedFlag } from "/src/components/ui/animated-flag.tsx";
import AdminLink from "/src/components/AdminLink.tsx";
import {
  Select,
  SelectContent,
  SelectItem,
  SelectTrigger,
  SelectValue
} from "/src/components/ui/select.tsx";
export default function Navbar() {
  _s();
  const [isScrolled, setIsScrolled] = useState(false);
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
  const { t, language, setLanguage } = useTranslation();
  useEffect(() => {
    const savedLanguage = localStorage.getItem("preferredLanguage");
    if (savedLanguage && ["en", "es", "ca"].includes(savedLanguage)) {
      setLanguage(savedLanguage);
    }
    const handleScroll = () => {
      setIsScrolled(window.scrollY > 0);
    };
    window.addEventListener("scroll", handleScroll);
    return () => window.removeEventListener("scroll", handleScroll);
  }, []);
  const handleLanguageChange = (value) => {
    const newLanguage = value;
    setLanguage(newLanguage);
    localStorage.setItem("preferredLanguage", newLanguage);
  };
  const menuItems = [
    { label: t.nav.services, href: "#services" },
    { label: t.nav.projects, href: "#projects" },
    { label: t.nav.globalPresence, href: "#global-presence" },
    { label: t.nav.benchmark, href: "#benchmark" },
    { label: t.nav.contact, href: "#contact" }
  ];
  return /* @__PURE__ */ jsxDEV(
    motion.nav,
    {
      initial: { y: -100 },
      animate: { y: 0 },
      className: `fixed w-full z-50 transition-all duration-300 ${isScrolled ? "bg-white shadow-lg" : "bg-transparent"}`,
      children: /* @__PURE__ */ jsxDEV("div", { className: "container mx-auto px-4", children: [
        /* @__PURE__ */ jsxDEV("div", { className: "flex items-center justify-between h-20", children: [
          /* @__PURE__ */ jsxDEV(Link, { href: "/", children: /* @__PURE__ */ jsxDEV("div", { className: `font-bold text-2xl cursor-pointer ${isScrolled ? "text-blue-900" : "text-white"}`, children: "ORKEI" }, void 0, false, {
            fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
            lineNumber: 60,
            columnNumber: 13
          }, this) }, void 0, false, {
            fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
            lineNumber: 59,
            columnNumber: 11
          }, this),
          /* @__PURE__ */ jsxDEV("div", { className: "hidden md:flex items-center space-x-8", children: [
            menuItems.map(
              (item) => /* @__PURE__ */ jsxDEV(
                "a",
                {
                  href: item.href,
                  className: `${isScrolled ? "text-gray-600 hover:text-blue-900" : "text-white hover:text-blue-100"} transition-colors`,
                  children: item.label
                },
                item.label,
                false,
                {
                  fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                  lineNumber: 69,
                  columnNumber: 13
                },
                this
              )
            ),
            /* @__PURE__ */ jsxDEV(
              Select,
              {
                value: language,
                onValueChange: handleLanguageChange,
                children: [
                  /* @__PURE__ */ jsxDEV(SelectTrigger, { className: `w-[120px] ${isScrolled ? "bg-white" : "bg-transparent border-white text-white"}`, children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-2", children: [
                    /* @__PURE__ */ jsxDEV(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxDEV(AnimatedFlag, { language }, language, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 89,
                      columnNumber: 21
                    }, this) }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 88,
                      columnNumber: 19
                    }, this),
                    /* @__PURE__ */ jsxDEV(SelectValue, {}, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 91,
                      columnNumber: 19
                    }, this)
                  ] }, void 0, true, {
                    fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                    lineNumber: 87,
                    columnNumber: 17
                  }, this) }, void 0, false, {
                    fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                    lineNumber: 84,
                    columnNumber: 15
                  }, this),
                  /* @__PURE__ */ jsxDEV(SelectContent, { children: [
                    /* @__PURE__ */ jsxDEV(SelectItem, { value: "en", children: /* @__PURE__ */ jsxDEV("span", { children: "English" }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 96,
                      columnNumber: 19
                    }, this) }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 95,
                      columnNumber: 17
                    }, this),
                    /* @__PURE__ */ jsxDEV(SelectItem, { value: "es", children: /* @__PURE__ */ jsxDEV("span", { children: "Español" }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 99,
                      columnNumber: 19
                    }, this) }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 98,
                      columnNumber: 17
                    }, this),
                    /* @__PURE__ */ jsxDEV(SelectItem, { value: "ca", children: /* @__PURE__ */ jsxDEV("span", { children: "Català" }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 102,
                      columnNumber: 19
                    }, this) }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 101,
                      columnNumber: 17
                    }, this)
                  ] }, void 0, true, {
                    fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                    lineNumber: 94,
                    columnNumber: 15
                  }, this)
                ]
              },
              void 0,
              true,
              {
                fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                lineNumber: 80,
                columnNumber: 13
              },
              this
            ),
            /* @__PURE__ */ jsxDEV(AdminLink, {}, void 0, false, {
              fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
              lineNumber: 107,
              columnNumber: 13
            }, this)
          ] }, void 0, true, {
            fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
            lineNumber: 67,
            columnNumber: 11
          }, this),
          /* @__PURE__ */ jsxDEV(
            "button",
            {
              className: "md:hidden",
              onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen),
              children: isMobileMenuOpen ? /* @__PURE__ */ jsxDEV(X, { className: isScrolled ? "text-blue-900" : "text-white" }, void 0, false, {
                fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                lineNumber: 115,
                columnNumber: 13
              }, this) : /* @__PURE__ */ jsxDEV(Menu, { className: isScrolled ? "text-blue-900" : "text-white" }, void 0, false, {
                fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                lineNumber: 117,
                columnNumber: 13
              }, this)
            },
            void 0,
            false,
            {
              fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
              lineNumber: 110,
              columnNumber: 11
            },
            this
          )
        ] }, void 0, true, {
          fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
          lineNumber: 58,
          columnNumber: 9
        }, this),
        /* @__PURE__ */ jsxDEV(AnimatePresence, { children: isMobileMenuOpen && /* @__PURE__ */ jsxDEV(
          motion.div,
          {
            initial: { opacity: 0, height: 0 },
            animate: { opacity: 1, height: "auto" },
            exit: { opacity: 0, height: 0 },
            className: "md:hidden bg-white px-4 py-6 shadow-lg",
            children: [
              menuItems.map(
                (item) => /* @__PURE__ */ jsxDEV(
                  "a",
                  {
                    href: item.href,
                    className: "block py-2 text-gray-600 hover:text-blue-900",
                    onClick: () => setIsMobileMenuOpen(false),
                    children: item.label
                  },
                  item.label,
                  false,
                  {
                    fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                    lineNumber: 132,
                    columnNumber: 13
                  },
                  this
                )
              ),
              /* @__PURE__ */ jsxDEV("div", { className: "py-2", children: /* @__PURE__ */ jsxDEV(AdminLink, {}, void 0, false, {
                fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                lineNumber: 142,
                columnNumber: 17
              }, this) }, void 0, false, {
                fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                lineNumber: 141,
                columnNumber: 15
              }, this),
              /* @__PURE__ */ jsxDEV(
                Select,
                {
                  value: language,
                  onValueChange: handleLanguageChange,
                  children: [
                    /* @__PURE__ */ jsxDEV(SelectTrigger, { className: "w-full mt-4", children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center gap-2", children: [
                      /* @__PURE__ */ jsxDEV(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxDEV(AnimatedFlag, { language }, language, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 151,
                        columnNumber: 23
                      }, this) }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 150,
                        columnNumber: 21
                      }, this),
                      /* @__PURE__ */ jsxDEV(SelectValue, {}, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 153,
                        columnNumber: 21
                      }, this)
                    ] }, void 0, true, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 149,
                      columnNumber: 19
                    }, this) }, void 0, false, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 148,
                      columnNumber: 17
                    }, this),
                    /* @__PURE__ */ jsxDEV(SelectContent, { children: [
                      /* @__PURE__ */ jsxDEV(SelectItem, { value: "en", children: /* @__PURE__ */ jsxDEV("span", { children: "English" }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 158,
                        columnNumber: 21
                      }, this) }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 157,
                        columnNumber: 19
                      }, this),
                      /* @__PURE__ */ jsxDEV(SelectItem, { value: "es", children: /* @__PURE__ */ jsxDEV("span", { children: "Español" }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 161,
                        columnNumber: 21
                      }, this) }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 160,
                        columnNumber: 19
                      }, this),
                      /* @__PURE__ */ jsxDEV(SelectItem, { value: "ca", children: /* @__PURE__ */ jsxDEV("span", { children: "Català" }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 164,
                        columnNumber: 21
                      }, this) }, void 0, false, {
                        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                        lineNumber: 163,
                        columnNumber: 19
                      }, this)
                    ] }, void 0, true, {
                      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                      lineNumber: 156,
                      columnNumber: 17
                    }, this)
                  ]
                },
                void 0,
                true,
                {
                  fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
                  lineNumber: 144,
                  columnNumber: 15
                },
                this
              )
            ]
          },
          void 0,
          true,
          {
            fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
            lineNumber: 125,
            columnNumber: 11
          },
          this
        ) }, void 0, false, {
          fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
          lineNumber: 123,
          columnNumber: 9
        }, this)
      ] }, void 0, true, {
        fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
        lineNumber: 57,
        columnNumber: 7
      }, this)
    },
    void 0,
    false,
    {
      fileName: "/home/runner/workspace/client/src/components/layout/Navbar.tsx",
      lineNumber: 50,
      columnNumber: 5
    },
    this
  );
}
_s(Navbar, "5ODnHgXbnEuQHIrEbXcsbpAd2nA=", false, function() {
  return [useTranslation];
});
_c = Navbar;
var _c;
$RefreshReg$(_c, "Navbar");
if (import.meta.hot && !inWebWorker) {
  window.$RefreshReg$ = prevRefreshReg;
  window.$RefreshSig$ = prevRefreshSig;
}
if (import.meta.hot && !inWebWorker) {
  RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => {
    RefreshRuntime.registerExportsForReactRefresh("/home/runner/workspace/client/src/components/layout/Navbar.tsx", currentExports);
    import.meta.hot.accept((nextExports) => {
      if (!nextExports) return;
      const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/home/runner/workspace/client/src/components/layout/Navbar.tsx", currentExports, nextExports);
      if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);
    });
  });
}

//# sourceMappingURL=data:application/json;base64,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QUEsYUFrSEE7QUFBQTtBQUFBLElBekhGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQTBIQTtBQUVKO0FBQUNQLEdBOUp1QkQsUUFBTTtBQUFBLFVBR1NSLGNBQWM7QUFBQTtBQUFBNkMsS0FIN0JyQztBQUFNLElBQUFxQztBQUFBQyxhQUFBRCxJQUFBIiwibmFtZXMiOlsidXNlRWZmZWN0IiwiTGluayIsIm1vdGlvbiIsIkFuaW1hdGVQcmVzZW5jZSIsIk1lbnUiLCJYIiwidXNlVHJhbnNsYXRpb24iLCJBbmltYXRlZEZsYWciLCJBZG1pbkxpbmsiLCJTZWxlY3QiLCJTZWxlY3RDb250ZW50IiwiU2VsZWN0SXRlbSIsIlNlbGVjdFRyaWdnZXIiLCJTZWxlY3RWYWx1ZSIsIk5hdmJhciIsIl9zIiwiaXNTY3JvbGxlZCIsInNldElzU2Nyb2xsZWQiLCJ1c2VTdGF0ZSIsImlzTW9iaWxlTWVudU9wZW4iLCJzZXRJc01vYmlsZU1lbnVPcGVuIiwidCIsImxhbmd1YWdlIiwic2V0TGFuZ3VhZ2UiLCJzYXZlZExhbmd1YWdlIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImluY2x1ZGVzIiwiaGFuZGxlU2Nyb2xsIiwid2luZG93Iiwic2Nyb2xsWSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaGFuZGxlTGFuZ3VhZ2VDaGFuZ2UiLCJ2YWx1ZSIsIm5ld0xhbmd1YWdlIiwic2V0SXRlbSIsIm1lbnVJdGVtcyIsImxhYmVsIiwibmF2Iiwic2VydmljZXMiLCJocmVmIiwicHJvamVjdHMiLCJnbG9iYWxQcmVzZW5jZSIsImJlbmNobWFyayIsImNvbnRhY3QiLCJ5IiwibWFwIiwiaXRlbSIsIm9wYWNpdHkiLCJoZWlnaHQiLCJfYyIsIiRSZWZyZXNoUmVnJCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlcyI6WyJOYXZiYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IExpbmsgfSBmcm9tIFwid291dGVyXCI7XG5pbXBvcnQgeyBtb3Rpb24sIEFuaW1hdGVQcmVzZW5jZSB9IGZyb20gXCJmcmFtZXItbW90aW9uXCI7XG5pbXBvcnQgeyBNZW51LCBYIH0gZnJvbSBcImx1Y2lkZS1yZWFjdFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwiQC9saWIvaTE4bi9UcmFuc2xhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEFuaW1hdGVkRmxhZyB9IGZyb20gXCJAL2NvbXBvbmVudHMvdWkvYW5pbWF0ZWQtZmxhZ1wiO1xuaW1wb3J0IEFkbWluTGluayBmcm9tIFwiQC9jb21wb25lbnRzL0FkbWluTGlua1wiO1xuaW1wb3J0IHtcbiAgU2VsZWN0LFxuICBTZWxlY3RDb250ZW50LFxuICBTZWxlY3RJdGVtLFxuICBTZWxlY3RUcmlnZ2VyLFxuICBTZWxlY3RWYWx1ZSxcbn0gZnJvbSBcIkAvY29tcG9uZW50cy91aS9zZWxlY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTmF2YmFyKCkge1xuICBjb25zdCBbaXNTY3JvbGxlZCwgc2V0SXNTY3JvbGxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc01vYmlsZU1lbnVPcGVuLCBzZXRJc01vYmlsZU1lbnVPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgeyB0LCBsYW5ndWFnZSwgc2V0TGFuZ3VhZ2UgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBMb2FkIHNhdmVkIGxhbmd1YWdlIHByZWZlcmVuY2VcbiAgICBjb25zdCBzYXZlZExhbmd1YWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ByZWZlcnJlZExhbmd1YWdlJyk7XG4gICAgaWYgKHNhdmVkTGFuZ3VhZ2UgJiYgWydlbicsICdlcycsICdjYSddLmluY2x1ZGVzKHNhdmVkTGFuZ3VhZ2UpKSB7XG4gICAgICBzZXRMYW5ndWFnZShzYXZlZExhbmd1YWdlIGFzICdlbicgfCAnZXMnIHwgJ2NhJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgc2V0SXNTY3JvbGxlZCh3aW5kb3cuc2Nyb2xsWSA+IDApO1xuICAgIH07XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgaGFuZGxlU2Nyb2xsKTtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgaGFuZGxlU2Nyb2xsKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUxhbmd1YWdlQ2hhbmdlID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBuZXdMYW5ndWFnZSA9IHZhbHVlIGFzICdlbicgfCAnZXMnIHwgJ2NhJztcbiAgICBzZXRMYW5ndWFnZShuZXdMYW5ndWFnZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ByZWZlcnJlZExhbmd1YWdlJywgbmV3TGFuZ3VhZ2UpO1xuICB9O1xuXG4gIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICB7IGxhYmVsOiB0Lm5hdi5zZXJ2aWNlcywgaHJlZjogXCIjc2VydmljZXNcIiB9LFxuICAgIHsgbGFiZWw6IHQubmF2LnByb2plY3RzLCBocmVmOiBcIiNwcm9qZWN0c1wiIH0sXG4gICAgeyBsYWJlbDogdC5uYXYuZ2xvYmFsUHJlc2VuY2UsIGhyZWY6IFwiI2dsb2JhbC1wcmVzZW5jZVwiIH0sXG4gICAgeyBsYWJlbDogdC5uYXYuYmVuY2htYXJrLCBocmVmOiBcIiNiZW5jaG1hcmtcIiB9LFxuICAgIHsgbGFiZWw6IHQubmF2LmNvbnRhY3QsIGhyZWY6IFwiI2NvbnRhY3RcIiB9LFxuICBdO1xuXG4gIHJldHVybiAoXG4gICAgPG1vdGlvbi5uYXZcbiAgICAgIGluaXRpYWw9e3sgeTogLTEwMCB9fVxuICAgICAgYW5pbWF0ZT17eyB5OiAwIH19XG4gICAgICBjbGFzc05hbWU9e2BmaXhlZCB3LWZ1bGwgei01MCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgJHtcbiAgICAgICAgaXNTY3JvbGxlZCA/IFwiYmctd2hpdGUgc2hhZG93LWxnXCIgOiBcImJnLXRyYW5zcGFyZW50XCJcbiAgICAgIH1gfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGFpbmVyIG14LWF1dG8gcHgtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBoLTIwXCI+XG4gICAgICAgICAgPExpbmsgaHJlZj1cIi9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgZm9udC1ib2xkIHRleHQtMnhsIGN1cnNvci1wb2ludGVyICR7XG4gICAgICAgICAgICAgIGlzU2Nyb2xsZWQgPyBcInRleHQtYmx1ZS05MDBcIiA6IFwidGV4dC13aGl0ZVwiXG4gICAgICAgICAgICB9YH0+XG4gICAgICAgICAgICAgIE9SS0VJXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L0xpbms+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpmbGV4IGl0ZW1zLWNlbnRlciBzcGFjZS14LThcIj5cbiAgICAgICAgICAgIHttZW51SXRlbXMubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake1xuICAgICAgICAgICAgICAgICAgaXNTY3JvbGxlZCA/IFwidGV4dC1ncmF5LTYwMCBob3Zlcjp0ZXh0LWJsdWUtOTAwXCIgOiBcInRleHQtd2hpdGUgaG92ZXI6dGV4dC1ibHVlLTEwMFwiXG4gICAgICAgICAgICAgICAgfSB0cmFuc2l0aW9uLWNvbG9yc2B9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgKSl9XG5cbiAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgdmFsdWU9e2xhbmd1YWdlfVxuICAgICAgICAgICAgICBvblZhbHVlQ2hhbmdlPXtoYW5kbGVMYW5ndWFnZUNoYW5nZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFNlbGVjdFRyaWdnZXIgY2xhc3NOYW1lPXtgdy1bMTIwcHhdICR7XG4gICAgICAgICAgICAgICAgaXNTY3JvbGxlZCA/IFwiYmctd2hpdGVcIiA6IFwiYmctdHJhbnNwYXJlbnQgYm9yZGVyLXdoaXRlIHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICB9YH0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZSBtb2RlPVwid2FpdFwiPlxuICAgICAgICAgICAgICAgICAgICA8QW5pbWF0ZWRGbGFnIGtleT17bGFuZ3VhZ2V9IGxhbmd1YWdlPXtsYW5ndWFnZX0gLz5cbiAgICAgICAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgICAgICAgICAgPFNlbGVjdFZhbHVlIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvU2VsZWN0VHJpZ2dlcj5cbiAgICAgICAgICAgICAgPFNlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJlblwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+RW5nbGlzaDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L1NlbGVjdEl0ZW0+XG4gICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJlc1wiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+RXNwYcOxb2w8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9TZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgIDxTZWxlY3RJdGVtIHZhbHVlPVwiY2FcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPkNhdGFsw6A8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9TZWxlY3RJdGVtPlxuICAgICAgICAgICAgICA8L1NlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICA8L1NlbGVjdD5cblxuICAgICAgICAgICAgPEFkbWluTGluayAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibWQ6aGlkZGVuXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzTW9iaWxlTWVudU9wZW4oIWlzTW9iaWxlTWVudU9wZW4pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc01vYmlsZU1lbnVPcGVuID8gKFxuICAgICAgICAgICAgICA8WCBjbGFzc05hbWU9e2lzU2Nyb2xsZWQgPyBcInRleHQtYmx1ZS05MDBcIiA6IFwidGV4dC13aGl0ZVwifSAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPE1lbnUgY2xhc3NOYW1lPXtpc1Njcm9sbGVkID8gXCJ0ZXh0LWJsdWUtOTAwXCIgOiBcInRleHQtd2hpdGVcIn0gLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHsvKiBNb2JpbGUgbWVudSAqL31cbiAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICB7aXNNb2JpbGVNZW51T3BlbiAmJiAoXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIGhlaWdodDogMCB9fVxuICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIGhlaWdodDogXCJhdXRvXCIgfX1cbiAgICAgICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwLCBoZWlnaHQ6IDAgfX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWQ6aGlkZGVuIGJnLXdoaXRlIHB4LTQgcHktNiBzaGFkb3ctbGdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7bWVudUl0ZW1zLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICBrZXk9e2l0ZW0ubGFiZWx9XG4gICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9jayBweS0yIHRleHQtZ3JheS02MDAgaG92ZXI6dGV4dC1ibHVlLTkwMFwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc01vYmlsZU1lbnVPcGVuKGZhbHNlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB5LTJcIj5cbiAgICAgICAgICAgICAgICA8QWRtaW5MaW5rIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgdmFsdWU9e2xhbmd1YWdlfVxuICAgICAgICAgICAgICAgIG9uVmFsdWVDaGFuZ2U9e2hhbmRsZUxhbmd1YWdlQ2hhbmdlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFRyaWdnZXIgY2xhc3NOYW1lPVwidy1mdWxsIG10LTRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZSBtb2RlPVwid2FpdFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxBbmltYXRlZEZsYWcga2V5PXtsYW5ndWFnZX0gbGFuZ3VhZ2U9e2xhbmd1YWdlfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L0FuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAgPFNlbGVjdFZhbHVlIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L1NlbGVjdFRyaWdnZXI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSB2YWx1ZT1cImVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkVuZ2xpc2g8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L1NlbGVjdEl0ZW0+XG4gICAgICAgICAgICAgICAgICA8U2VsZWN0SXRlbSB2YWx1ZT1cImVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPkVzcGHDsW9sPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgICAgPFNlbGVjdEl0ZW0gdmFsdWU9XCJjYVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5DYXRhbMOgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9TZWxlY3RJdGVtPlxuICAgICAgICAgICAgICAgIDwvU2VsZWN0Q29udGVudD5cbiAgICAgICAgICAgICAgPC9TZWxlY3Q+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgICA8L2Rpdj5cbiAgICA8L21vdGlvbi5uYXY+XG4gICk7XG59Il0sImZpbGUiOiIvaG9tZS9ydW5uZXIvd29ya3NwYWNlL2NsaWVudC9zcmMvY29tcG9uZW50cy9sYXlvdXQvTmF2YmFyLnRzeCJ9