@nlabs/gothamjs
Version:
Platform
303 lines (302 loc) • 35.4 kB
JavaScript
'use client';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { Dialog, DialogBackdrop, DialogPanel, Menu, MenuButton, MenuItem, MenuItems, TransitionChild } from '@headlessui/react';
import { cn } from '@nlabs/utils';
import { Menu as Bars3, Bell, Calendar, ChevronDown, Files, Folder, Home, PieChart, Search, Users, X } from 'lucide-react';
import { useState } from 'react';
import { Outlet } from 'react-router';
import { Config } from '../../config/appConfig.js';
const sideMenuItems = [
{
current: true,
href: '#',
icon: Home,
name: 'Dashboard'
},
{
current: false,
href: '#',
icon: Users,
name: 'Team'
},
{
current: false,
href: '#',
icon: Folder,
name: 'Projects'
},
{
current: false,
href: '#',
icon: Calendar,
name: 'Calendar'
},
{
current: false,
href: '#',
icon: Files,
name: 'Documents'
},
{
current: false,
href: '#',
icon: PieChart,
name: 'Reports'
}
];
const userMenuItems = [
{
href: '#',
name: 'Profile'
},
{
href: '#',
name: 'Sign out'
}
];
export const MenuView = ()=>{
const [sidebarOpen, setSidebarOpen] = useState(false);
const app = Config.get('app');
return /*#__PURE__*/ _jsxs("div", {
children: [
/*#__PURE__*/ _jsxs(Dialog, {
open: sidebarOpen,
onClose: setSidebarOpen,
className: "relative z-50 lg:hidden",
children: [
/*#__PURE__*/ _jsx(DialogBackdrop, {
transition: true,
className: "fixed inset-0 bg-gray-900/80 transition-opacity duration-300 ease-linear data-closed:opacity-0"
}),
/*#__PURE__*/ _jsx("div", {
className: "fixed inset-0 flex",
children: /*#__PURE__*/ _jsxs(DialogPanel, {
transition: true,
className: "relative mr-16 flex w-full max-w-xs flex-1 transform transition duration-300 ease-in-out data-closed:-translate-x-full",
children: [
/*#__PURE__*/ _jsx(TransitionChild, {
children: /*#__PURE__*/ _jsx("div", {
className: "absolute top-0 left-full flex w-16 justify-center pt-5 duration-300 ease-in-out data-closed:opacity-0",
children: /*#__PURE__*/ _jsxs("button", {
type: "button",
onClick: ()=>setSidebarOpen(false),
className: "-m-2.5 p-2.5",
children: [
/*#__PURE__*/ _jsx("span", {
className: "sr-only",
children: "Close sidebar"
}),
/*#__PURE__*/ _jsx(X, {
"aria-hidden": "true",
className: "size-6 text-white"
})
]
})
})
}),
/*#__PURE__*/ _jsxs("div", {
className: "flex grow flex-col gap-y-5 overflow-y-auto bg-gray-900 px-6 pb-2 ring-1 ring-white/10",
children: [
/*#__PURE__*/ _jsx("div", {
className: "flex h-16 shrink-0 items-center",
children: /*#__PURE__*/ _jsx("img", {
alt: app?.title,
src: app?.logo,
className: "h-8 w-auto"
})
}),
/*#__PURE__*/ _jsx("nav", {
className: "flex flex-1 flex-col",
children: /*#__PURE__*/ _jsx("ul", {
role: "list",
className: "-mx-2 flex-1 space-y-1",
children: sideMenuItems?.map((item)=>/*#__PURE__*/ _jsx("li", {
children: /*#__PURE__*/ _jsxs("a", {
href: item.href,
className: cn(item.current ? 'bg-gray-800 text-white' : 'text-gray-400 hover:bg-gray-800 hover:text-white', 'group flex gap-x-3 rounded-md p-2 text-sm/6 font-semibold'),
children: [
item.icon && /*#__PURE__*/ _jsx(item.icon, {
"aria-hidden": "true",
className: "size-6 shrink-0"
}),
item.name
]
})
}, item.name))
})
})
]
})
]
})
})
]
}),
/*#__PURE__*/ _jsxs("div", {
className: "hidden lg:fixed lg:inset-y-0 lg:left-0 lg:z-50 lg:block lg:w-20 lg:overflow-y-auto lg:bg-gray-900 lg:pb-4",
children: [
/*#__PURE__*/ _jsx("div", {
className: "flex h-16 shrink-0 items-center justify-center",
children: /*#__PURE__*/ _jsx("img", {
alt: "Your Company",
src: "https://tailwindcss.com/plus-assets/img/logos/mark.svg?color=indigo&shade=500",
className: "h-8 w-auto"
})
}),
/*#__PURE__*/ _jsx("nav", {
className: "mt-8",
children: /*#__PURE__*/ _jsx("ul", {
role: "list",
className: "flex flex-col items-center space-y-1",
children: sideMenuItems?.map((item)=>/*#__PURE__*/ _jsx("li", {
children: /*#__PURE__*/ _jsxs("a", {
href: item.href,
className: cn(item.current ? 'bg-gray-800 text-white' : 'text-gray-400 hover:bg-gray-800 hover:text-white', 'group flex gap-x-3 rounded-md p-3 text-sm/6 font-semibold'),
children: [
item.icon && /*#__PURE__*/ _jsx(item.icon, {
"aria-hidden": "true",
className: "size-6 shrink-0"
}),
/*#__PURE__*/ _jsx("span", {
className: "sr-only",
children: item.name
})
]
})
}, item.name))
})
})
]
}),
/*#__PURE__*/ _jsxs("div", {
className: "lg:pl-20",
children: [
/*#__PURE__*/ _jsxs("div", {
className: "sticky top-0 z-40 flex h-16 shrink-0 items-center gap-x-4 border-b border-gray-200 bg-white px-4 shadow-xs sm:gap-x-6 sm:px-6 lg:px-8",
children: [
/*#__PURE__*/ _jsxs("button", {
type: "button",
onClick: ()=>setSidebarOpen(true),
className: "-m-2.5 p-2.5 text-gray-700 lg:hidden",
children: [
/*#__PURE__*/ _jsx("span", {
className: "sr-only",
children: "Open sidebar"
}),
/*#__PURE__*/ _jsx(Bars3, {
"aria-hidden": "true",
className: "size-6"
})
]
}),
/*#__PURE__*/ _jsx("div", {
"aria-hidden": "true",
className: "h-6 w-px bg-gray-900/10 lg:hidden"
}),
/*#__PURE__*/ _jsxs("div", {
className: "flex flex-1 gap-x-4 self-stretch lg:gap-x-6",
children: [
/*#__PURE__*/ _jsxs("form", {
action: "#",
method: "GET",
className: "grid flex-1 grid-cols-1",
children: [
/*#__PURE__*/ _jsx("input", {
name: "search",
type: "search",
placeholder: "Search",
"aria-label": "Search",
className: "col-start-1 row-start-1 block size-full bg-white pl-8 text-base text-gray-900 outline-hidden placeholder:text-gray-400 sm:text-sm/6"
}),
/*#__PURE__*/ _jsx(Search, {
"aria-hidden": "true",
className: "pointer-events-none col-start-1 row-start-1 size-5 self-center text-gray-400"
})
]
}),
/*#__PURE__*/ _jsxs("div", {
className: "flex items-center gap-x-4 lg:gap-x-6",
children: [
/*#__PURE__*/ _jsxs("button", {
type: "button",
className: "-m-2.5 p-2.5 text-gray-400 hover:text-gray-500",
children: [
/*#__PURE__*/ _jsx("span", {
className: "sr-only",
children: "View notifications"
}),
/*#__PURE__*/ _jsx(Bell, {
"aria-hidden": "true",
className: "size-6"
})
]
}),
/*#__PURE__*/ _jsx("div", {
"aria-hidden": "true",
className: "hidden lg:block lg:h-6 lg:w-px lg:bg-gray-900/10"
}),
/*#__PURE__*/ _jsxs(Menu, {
as: "div",
className: "relative",
children: [
/*#__PURE__*/ _jsxs(MenuButton, {
className: "-m-1.5 flex items-center p-1.5",
children: [
/*#__PURE__*/ _jsx("span", {
className: "sr-only",
children: "Open user menu"
}),
/*#__PURE__*/ _jsx("img", {
alt: "",
src: "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
className: "size-8 rounded-full bg-gray-50"
}),
/*#__PURE__*/ _jsxs("span", {
className: "hidden lg:flex lg:items-center",
children: [
/*#__PURE__*/ _jsx("span", {
"aria-hidden": "true",
className: "ml-4 text-sm/6 font-semibold text-gray-900",
children: "Tom Cook"
}),
/*#__PURE__*/ _jsx(ChevronDown, {
"aria-hidden": "true",
className: "ml-2 size-5 text-gray-400"
})
]
})
]
}),
/*#__PURE__*/ _jsx(MenuItems, {
transition: true,
className: "absolute right-0 z-10 mt-2.5 w-32 origin-top-right rounded-md bg-white py-2 ring-1 shadow-lg ring-gray-900/5 transition focus:outline-hidden data-closed:scale-95 data-closed:transform data-closed:opacity-0 data-enter:duration-100 data-enter:ease-out data-leave:duration-75 data-leave:ease-in",
children: userMenuItems?.map((item)=>/*#__PURE__*/ _jsx(MenuItem, {
children: /*#__PURE__*/ _jsx("a", {
href: item.href,
className: "block px-3 py-1 text-sm/6 text-gray-900 data-focus:bg-gray-50 data-focus:outline-hidden",
children: item.name
})
}, item.name))
})
]
})
]
})
]
})
]
}),
/*#__PURE__*/ _jsx("main", {
className: "xl:pl-96",
children: /*#__PURE__*/ _jsx("div", {
className: "px-4 py-10 sm:px-6 lg:px-8 lg:py-6",
children: /*#__PURE__*/ _jsx(Outlet, {})
})
})
]
})
]
});
};
export default MenuView;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9NZW51Vmlldy9NZW51Vmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dCYWNrZHJvcCxcbiAgRGlhbG9nUGFuZWwsXG4gIE1lbnUsXG4gIE1lbnVCdXR0b24sXG4gIE1lbnVJdGVtLFxuICBNZW51SXRlbXMsXG4gIFRyYW5zaXRpb25DaGlsZFxufSBmcm9tICdAaGVhZGxlc3N1aS9yZWFjdCc7XG5pbXBvcnQge2NufSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgTWVudSBhcyBCYXJzMyxcbiAgQmVsbCxcbiAgQ2FsZW5kYXIsXG4gIENoZXZyb25Eb3duLFxuICBGaWxlcyxcbiAgRm9sZGVyLFxuICBIb21lLFxuICBQaWVDaGFydCxcbiAgU2VhcmNoLFxuICBVc2VycyxcbiAgWFxufSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuaW1wb3J0IHt1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtPdXRsZXR9IGZyb20gJ3JlYWN0LXJvdXRlcic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi8uLi9jb25maWcvYXBwQ29uZmlnLmpzJztcblxuaW1wb3J0IHR5cGUge0VsZW1lbnRUeXBlLCBGQ30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge0dvdGhhbUNvbmZpZ3VyYXRpb259IGZyb20gJy4uL0dvdGhhbS9Hb3RoYW1Qcm92aWRlci5qcyc7XG5cbmNvbnN0IHNpZGVNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7IGN1cnJlbnQ6IHRydWUsIGhyZWY6ICcjJywgaWNvbjogSG9tZSwgbmFtZTogJ0Rhc2hib2FyZCcgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBVc2VycywgbmFtZTogJ1RlYW0nIH0sXG4gIHsgY3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogRm9sZGVyLCBuYW1lOiAnUHJvamVjdHMnIH0sXG4gIHsgY3VycmVudDogZmFsc2UsIGhyZWY6ICcjJywgaWNvbjogQ2FsZW5kYXIsIG5hbWU6ICdDYWxlbmRhcicgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBGaWxlcywgbmFtZTogJ0RvY3VtZW50cycgfSxcbiAgeyBjdXJyZW50OiBmYWxzZSwgaHJlZjogJyMnLCBpY29uOiBQaWVDaGFydCwgbmFtZTogJ1JlcG9ydHMnIH1cbl07XG5cbmNvbnN0IHVzZXJNZW51SXRlbXM6IE1lbnVJdGVtc1tdID0gW1xuICB7IGhyZWY6ICcjJywgbmFtZTogJ1Byb2ZpbGUnIH0sXG4gIHsgaHJlZjogJyMnLCBuYW1lOiAnU2lnbiBvdXQnIH1cbl07XG5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtcyA9IHtcbiAgcmVhZG9ubHkgY3VycmVudD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhyZWY6IHN0cmluZztcbiAgcmVhZG9ubHkgaWNvbj86IEVsZW1lbnRUeXBlO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVWaWV3UHJvcHMge1xuICBzaWRlTWVudUl0ZW1zOiBNZW51SXRlbXNbXTtcbiAgdXNlck1lbnVJdGVtczogTWVudUl0ZW1zW107XG59XG5cbmV4cG9ydCBjb25zdCBNZW51VmlldzogRkM8TWVudVZpZXdQcm9wcz4gPSAoKSA9PiB7XG4gIGNvbnN0IFtzaWRlYmFyT3Blbiwgc2V0U2lkZWJhck9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBhcHA6IEdvdGhhbUNvbmZpZ3VyYXRpb25bJ2FwcCddID0gQ29uZmlnLmdldCgnYXBwJykgYXMgR290aGFtQ29uZmlndXJhdGlvblsnYXBwJ107XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPERpYWxvZyBvcGVuPXtzaWRlYmFyT3Blbn0gb25DbG9zZT17c2V0U2lkZWJhck9wZW59IGNsYXNzTmFtZT1cInJlbGF0aXZlIHotNTAgbGc6aGlkZGVuXCI+XG4gICAgICAgIDxEaWFsb2dCYWNrZHJvcFxuICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZCBpbnNldC0wIGJnLWdyYXktOTAwLzgwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0zMDAgZWFzZS1saW5lYXIgZGF0YS1jbG9zZWQ6b3BhY2l0eS0wXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgZmxleFwiPlxuICAgICAgICAgIDxEaWFsb2dQYW5lbFxuICAgICAgICAgICAgdHJhbnNpdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgbXItMTYgZmxleCB3LWZ1bGwgbWF4LXcteHMgZmxleC0xIHRyYW5zZm9ybSB0cmFuc2l0aW9uIGR1cmF0aW9uLTMwMCBlYXNlLWluLW91dCBkYXRhLWNsb3NlZDotdHJhbnNsYXRlLXgtZnVsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRyYW5zaXRpb25DaGlsZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LWZ1bGwgZmxleCB3LTE2IGp1c3RpZnktY2VudGVyIHB0LTUgZHVyYXRpb24tMzAwIGVhc2UtaW4tb3V0IGRhdGEtY2xvc2VkOm9wYWNpdHktMFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9eygpID0+IHNldFNpZGViYXJPcGVuKGZhbHNlKX0gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+Q2xvc2Ugc2lkZWJhcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxYIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiB0ZXh0LXdoaXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L1RyYW5zaXRpb25DaGlsZD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLXktNSBvdmVyZmxvdy15LWF1dG8gYmctZ3JheS05MDAgcHgtNiBwYi0yIHJpbmctMSByaW5nLXdoaXRlLzEwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGFsdD17YXBwPy50aXRsZX1cbiAgICAgICAgICAgICAgICAgIHNyYz17YXBwPy5sb2dvfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC04IHctYXV0b1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxuYXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8dWwgcm9sZT1cImxpc3RcIiBjbGFzc05hbWU9XCItbXgtMiBmbGV4LTEgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICAgICAgICB7c2lkZU1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VycmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLWdyYXktODAwIHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1ncmF5LTQwMCBob3ZlcjpiZy1ncmF5LTgwMCBob3Zlcjp0ZXh0LXdoaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIGZsZXggZ2FwLXgtMyByb3VuZGVkLW1kIHAtMiB0ZXh0LXNtLzYgZm9udC1zZW1pYm9sZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uaWNvbiAmJiA8aXRlbS5pY29uIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNiBzaHJpbmstMFwiIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0ubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvRGlhbG9nUGFuZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9EaWFsb2c+XG5cbiAgICAgIHsvKiBTdGF0aWMgc2lkZWJhciBmb3IgZGVza3RvcCAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZpeGVkIGxnOmluc2V0LXktMCBsZzpsZWZ0LTAgbGc6ei01MCBsZzpibG9jayBsZzp3LTIwIGxnOm92ZXJmbG93LXktYXV0byBsZzpiZy1ncmF5LTkwMCBsZzpwYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBoLTE2IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGFsdD1cIllvdXIgQ29tcGFueVwiXG4gICAgICAgICAgICBzcmM9XCJodHRwczovL3RhaWx3aW5kY3NzLmNvbS9wbHVzLWFzc2V0cy9pbWcvbG9nb3MvbWFyay5zdmc/Y29sb3I9aW5kaWdvJnNoYWRlPTUwMFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJoLTggdy1hdXRvXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJtdC04XCI+XG4gICAgICAgICAgPHVsIHJvbGU9XCJsaXN0XCIgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgc3BhY2UteS0xXCI+XG4gICAgICAgICAgICB7c2lkZU1lbnVJdGVtcz8ubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2l0ZW0ubmFtZX0+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uY3VycmVudCA/ICdiZy1ncmF5LTgwMCB0ZXh0LXdoaXRlJyA6ICd0ZXh0LWdyYXktNDAwIGhvdmVyOmJnLWdyYXktODAwIGhvdmVyOnRleHQtd2hpdGUnLFxuICAgICAgICAgICAgICAgICAgICAnZ3JvdXAgZmxleCBnYXAteC0zIHJvdW5kZWQtbWQgcC0zIHRleHQtc20vNiBmb250LXNlbWlib2xkJ1xuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5pY29uICYmIDxpdGVtLmljb24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwic2l6ZS02IHNocmluay0wXCIgLz59XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+e2l0ZW0ubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZzpwbC0yMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTQwIGZsZXggaC0xNiBzaHJpbmstMCBpdGVtcy1jZW50ZXIgZ2FwLXgtNCBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgYmctd2hpdGUgcHgtNCBzaGFkb3cteHMgc206Z2FwLXgtNiBzbTpweC02IGxnOnB4LThcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiBzZXRTaWRlYmFyT3Blbih0cnVlKX0gY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS03MDAgbGc6aGlkZGVuXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiBzaWRlYmFyPC9zcGFuPlxuICAgICAgICAgICAgPEJhcnMzIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cInNpemUtNlwiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICB7LyogU2VwYXJhdG9yICovfVxuICAgICAgICAgIDxkaXYgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwiaC02IHctcHggYmctZ3JheS05MDAvMTAgbGc6aGlkZGVuXCIgLz5cblxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LTEgZ2FwLXgtNCBzZWxmLXN0cmV0Y2ggbGc6Z2FwLXgtNlwiPlxuICAgICAgICAgICAgPGZvcm0gYWN0aW9uPVwiI1wiIG1ldGhvZD1cIkdFVFwiIGNsYXNzTmFtZT1cImdyaWQgZmxleC0xIGdyaWQtY29scy0xXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG5hbWU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb2wtc3RhcnQtMSByb3ctc3RhcnQtMSBibG9jayBzaXplLWZ1bGwgYmctd2hpdGUgcGwtOCB0ZXh0LWJhc2UgdGV4dC1ncmF5LTkwMCBvdXRsaW5lLWhpZGRlbiBwbGFjZWhvbGRlcjp0ZXh0LWdyYXktNDAwIHNtOnRleHQtc20vNlwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxTZWFyY2hcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgY29sLXN0YXJ0LTEgcm93LXN0YXJ0LTEgc2l6ZS01IHNlbGYtY2VudGVyIHRleHQtZ3JheS00MDBcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC00IGxnOmdhcC14LTZcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3NOYW1lPVwiLW0tMi41IHAtMi41IHRleHQtZ3JheS00MDAgaG92ZXI6dGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPEJlbGwgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwic2l6ZS02XCIgLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgey8qIFNlcGFyYXRvciAqL31cbiAgICAgICAgICAgICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzc05hbWU9XCJoaWRkZW4gbGc6YmxvY2sgbGc6aC02IGxnOnctcHggbGc6YmctZ3JheS05MDAvMTBcIiAvPlxuXG4gICAgICAgICAgICAgIHsvKiBQcm9maWxlIGRyb3Bkb3duICovfVxuICAgICAgICAgICAgICA8TWVudSBhcz1cImRpdlwiIGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPE1lbnVCdXR0b24gY2xhc3NOYW1lPVwiLW0tMS41IGZsZXggaXRlbXMtY2VudGVyIHAtMS41XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJzci1vbmx5XCI+T3BlbiB1c2VyIG1lbnU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNDcyMDk5NjQ1Nzg1LTU2NThhYmY0ZmY0ZT9peGxpYj1yYi0xLjIuMSZpeGlkPWV5SmhjSEJmYVdRaU9qRXlNRGQ5JmF1dG89Zm9ybWF0JmZpdD1mYWNlYXJlYSZmYWNlcGFkPTImdz0yNTYmaD0yNTYmcT04MFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNpemUtOCByb3VuZGVkLWZ1bGwgYmctZ3JheS01MFwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGlkZGVuIGxnOmZsZXggbGc6aXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzTmFtZT1cIm1sLTQgdGV4dC1zbS82IGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG9tIENvb2tcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd24gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3NOYW1lPVwibWwtMiBzaXplLTUgdGV4dC1ncmF5LTQwMFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9NZW51QnV0dG9uPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbXNcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImFic29sdXRlIHJpZ2h0LTAgei0xMCBtdC0yLjUgdy0zMiBvcmlnaW4tdG9wLXJpZ2h0IHJvdW5kZWQtbWQgYmctd2hpdGUgcHktMiByaW5nLTEgc2hhZG93LWxnIHJpbmctZ3JheS05MDAvNSB0cmFuc2l0aW9uIGZvY3VzOm91dGxpbmUtaGlkZGVuIGRhdGEtY2xvc2VkOnNjYWxlLTk1IGRhdGEtY2xvc2VkOnRyYW5zZm9ybSBkYXRhLWNsb3NlZDpvcGFjaXR5LTAgZGF0YS1lbnRlcjpkdXJhdGlvbi0xMDAgZGF0YS1lbnRlcjplYXNlLW91dCBkYXRhLWxlYXZlOmR1cmF0aW9uLTc1IGRhdGEtbGVhdmU6ZWFzZS1pblwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3VzZXJNZW51SXRlbXM/Lm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0ga2V5PXtpdGVtLm5hbWV9PlxuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9jayBweC0zIHB5LTEgdGV4dC1zbS82IHRleHQtZ3JheS05MDAgZGF0YS1mb2N1czpiZy1ncmF5LTUwIGRhdGEtZm9jdXM6b3V0bGluZS1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9NZW51SXRlbXM+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJ4bDpwbC05NlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicHgtNCBweS0xMCBzbTpweC02IGxnOnB4LTggbGc6cHktNlwiPjxPdXRsZXQvPjwvZGl2PlxuICAgICAgICA8L21haW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnVWaWV3OyJdLCJuYW1lcyI6WyJEaWFsb2ciLCJEaWFsb2dCYWNrZHJvcCIsIkRpYWxvZ1BhbmVsIiwiTWVudSIsIk1lbnVCdXR0b24iLCJNZW51SXRlbSIsIk1lbnVJdGVtcyIsIlRyYW5zaXRpb25DaGlsZCIsImNuIiwiQmFyczMiLCJCZWxsIiwiQ2FsZW5kYXIiLCJDaGV2cm9uRG93biIsIkZpbGVzIiwiRm9sZGVyIiwiSG9tZSIsIlBpZUNoYXJ0IiwiU2VhcmNoIiwiVXNlcnMiLCJYIiwidXNlU3RhdGUiLCJPdXRsZXQiLCJDb25maWciLCJzaWRlTWVudUl0ZW1zIiwiY3VycmVudCIsImhyZWYiLCJpY29uIiwibmFtZSIsInVzZXJNZW51SXRlbXMiLCJNZW51VmlldyIsInNpZGViYXJPcGVuIiwic2V0U2lkZWJhck9wZW4iLCJhcHAiLCJnZXQiLCJkaXYiLCJvcGVuIiwib25DbG9zZSIsImNsYXNzTmFtZSIsInRyYW5zaXRpb24iLCJidXR0b24iLCJ0eXBlIiwib25DbGljayIsInNwYW4iLCJhcmlhLWhpZGRlbiIsImltZyIsImFsdCIsInRpdGxlIiwic3JjIiwibG9nbyIsIm5hdiIsInVsIiwicm9sZSIsIm1hcCIsIml0ZW0iLCJsaSIsImEiLCJmb3JtIiwiYWN0aW9uIiwibWV0aG9kIiwiaW5wdXQiLCJwbGFjZWhvbGRlciIsImFyaWEtbGFiZWwiLCJhcyIs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