332 lines
29 KiB
Plaintext
332 lines
29 KiB
Plaintext
import { createHotContext as __vite__createHotContext } from "/_nuxt/@vite/client";import.meta.hot = __vite__createHotContext("/components/header/nav/UserMenu.vue");import { UserAvatar as __nuxt_component_0 } from "/_nuxt/@fs/D:/speckle-server/packages/ui-components/dist/lib.js";
|
|
import { default as __nuxt_component_1 } from "/_nuxt/node_modules/nuxt/dist/app/components/nuxt-link.js?v=e4f18c29";
|
|
import { default as __nuxt_component_2 } from "/_nuxt/components/invite/dialog/Server.vue";
|
|
/* Injection by vite-plugin-vue-inspector Start */
|
|
import { createElementVNode as __createElementVNode,createVNode as __createVNode,createBlock as __createBlock,createElementBlock as __createElementBlock } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29"
|
|
function _interopVNode(vnode) {
|
|
if (vnode && vnode.props && 'data-v-inspector' in vnode.props) {
|
|
const data = vnode.props['data-v-inspector']
|
|
delete vnode.props['data-v-inspector']
|
|
Object.defineProperty(vnode.props, '__v_inspector', { value: data, enumerable: false })
|
|
}
|
|
return vnode
|
|
}
|
|
function _createElementVNode(...args) { return _interopVNode(__createElementVNode(...args)) }
|
|
function _createVNode(...args) { return _interopVNode(__createVNode(...args)) }
|
|
function _createBlock(...args) { return _interopVNode(__createBlock(...args)) }
|
|
function _createElementBlock(...args) { return _interopVNode(__createElementBlock(...args)) }
|
|
/* Injection by vite-plugin-vue-inspector End */
|
|
import { defineComponent as _defineComponent } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
import { Menu, MenuButton, MenuItem, MenuItems } from "/_nuxt/node_modules/@headlessui/vue/dist/headlessui.esm.js?v=e4f18c29";
|
|
import { ChevronDownIcon } from "/_nuxt/node_modules/.cache/vite/client/deps/@heroicons_vue_24_outline.js?v=e4f18c29";
|
|
import { Roles } from "/_nuxt/@fs/D:/speckle-server/packages/shared/dist/esm/index.js";
|
|
import { useActiveUser } from "/_nuxt/lib/auth/composables/activeUser.ts";
|
|
import { useAuthManager } from "/_nuxt/lib/auth/composables/auth.ts";
|
|
import { useTheme } from "/_nuxt/lib/core/composables/theme.ts";
|
|
import { settingsUserRoutes, settingsServerRoutes } from "/_nuxt/lib/common/helpers/route.ts";
|
|
import { useServerInfo } from "/_nuxt/lib/core/composables/server.ts";
|
|
import { useGenerateErrorReference } from "/_nuxt/lib/core/composables/error.ts";
|
|
|
|
import { useId, ref, computed } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _sfc_main = /* @__PURE__ */ _defineComponent({
|
|
__name: "HeaderNavUserMenu",
|
|
props: {
|
|
loginUrl: { type: null, required: false }
|
|
},
|
|
setup(__props, { expose: __expose }) {
|
|
__expose();
|
|
const { logout } = useAuthManager();
|
|
const { activeUser, isGuest } = useActiveUser();
|
|
const { isDarkTheme, toggleTheme } = useTheme();
|
|
const { serverInfo } = useServerInfo();
|
|
const menuButtonId = useId();
|
|
const { copyReference } = useGenerateErrorReference();
|
|
const showInviteDialog = ref(false);
|
|
const version = computed(() => serverInfo.value?.version);
|
|
const isAdmin = computed(() => activeUser.value?.role === Roles.Server.Admin);
|
|
const toggleInviteDialog = () => {
|
|
showInviteDialog.value = true;
|
|
};
|
|
const copySupportReference = async () => {
|
|
await copyReference();
|
|
};
|
|
const __returned__ = { logout, activeUser, isGuest, isDarkTheme, toggleTheme, serverInfo, menuButtonId, copyReference, showInviteDialog, version, isAdmin, toggleInviteDialog, copySupportReference, get Menu() {
|
|
return Menu;
|
|
}, get MenuButton() {
|
|
return MenuButton;
|
|
}, get MenuItem() {
|
|
return MenuItem;
|
|
}, get MenuItems() {
|
|
return MenuItems;
|
|
}, get ChevronDownIcon() {
|
|
return ChevronDownIcon;
|
|
}, get settingsUserRoutes() {
|
|
return settingsUserRoutes;
|
|
}, get settingsServerRoutes() {
|
|
return settingsServerRoutes;
|
|
} };
|
|
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
|
|
return __returned__;
|
|
}
|
|
});
|
|
import { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createTextVNode as _createTextVNode, openBlock as _openBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, Transition as _Transition, } from "/_nuxt/node_modules/vue/dist/vue.runtime.esm-bundler.js?v=e4f18c29";
|
|
const _hoisted_1 = { "data-v-inspector": "components/header/nav/UserMenu.vue:2:3" };
|
|
const _hoisted_2 = {
|
|
class: "flex items-center gap-1 p-0.5 hover:bg-highlight-2 rounded",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:6:9"
|
|
};
|
|
const _hoisted_3 = {
|
|
class: "pt-1",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:22:11"
|
|
};
|
|
const _hoisted_4 = {
|
|
class: "border-t border-outline-3 py-1 mt-1",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:68:11"
|
|
};
|
|
const _hoisted_5 = {
|
|
class: "border-t border-outline-3 py-1 mt-1 text-xs text-foreground-2 px-3 gap-1 flex flex-col",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:71:13"
|
|
};
|
|
const _hoisted_6 = { "data-v-inspector": "components/header/nav/UserMenu.vue:75:17" };
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
const _component_UserAvatar = __nuxt_component_0;
|
|
const _component_NuxtLink = __nuxt_component_1;
|
|
const _component_InviteDialogServer = __nuxt_component_2;
|
|
return _openBlock(), _createElementBlock("div", _hoisted_1, [
|
|
_createVNode($setup["Menu"], {
|
|
as: "div",
|
|
class: "flex items-center",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:3:5"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createVNode($setup["MenuButton"], {
|
|
id: $setup.menuButtonId,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:4:7"
|
|
}, {
|
|
default: _withCtx(({ open: userOpen }) => [
|
|
_cache[1] || (_cache[1] = _createElementVNode(
|
|
"span",
|
|
{
|
|
class: "sr-only",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:5:9"
|
|
},
|
|
"Open user menu",
|
|
-1
|
|
/* CACHED */
|
|
)),
|
|
_createElementVNode("div", _hoisted_2, [
|
|
_createVNode(_component_UserAvatar, {
|
|
"hide-tooltip": "",
|
|
user: $setup.activeUser,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:7:11"
|
|
}, null, 8, ["user"]),
|
|
_createVNode($setup["ChevronDownIcon"], {
|
|
class: _normalizeClass([userOpen ? "rotate-180" : "", "h-3 w-3"]),
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:8:11"
|
|
}, null, 8, ["class"])
|
|
])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}, 8, ["id"]),
|
|
_createVNode(_Transition, {
|
|
"enter-active-class": "transition ease-out duration-200",
|
|
"enter-from-class": "transform opacity-0 scale-95",
|
|
"enter-to-class": "transform opacity-100 scale-100",
|
|
"leave-active-class": "transition ease-in duration-75",
|
|
"leave-from-class": "transform opacity-100 scale-100",
|
|
"leave-to-class": "transform opacity-0 scale-95",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:11:7"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createVNode($setup["MenuItems"], {
|
|
class: "absolute right-4 top-14 w-56 origin-top-right bg-foundation outline outline-1 outline-primary-muted rounded-md shadow-lg overflow-hidden",
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:19:9"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createElementVNode("div", _hoisted_3, [
|
|
$setup.activeUser ? (_openBlock(), _createBlock($setup["MenuItem"], {
|
|
key: 0,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:23:13"
|
|
}, {
|
|
default: _withCtx(({ active }) => [
|
|
_createVNode(_component_NuxtLink, {
|
|
to: $setup.settingsUserRoutes.profile,
|
|
class: _normalizeClass([
|
|
active ? "bg-highlight-1" : "",
|
|
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
|
|
]),
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:24:15"
|
|
}, {
|
|
default: _withCtx(() => [..._cache[2] || (_cache[2] = [
|
|
_createTextVNode(
|
|
" Settings ",
|
|
-1
|
|
/* CACHED */
|
|
)
|
|
])]),
|
|
_: 2
|
|
/* DYNAMIC */
|
|
}, 1032, ["to", "class"])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})) : _createCommentVNode("v-if", true),
|
|
$setup.isAdmin ? (_openBlock(), _createBlock($setup["MenuItem"], {
|
|
key: 1,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:34:13"
|
|
}, {
|
|
default: _withCtx(({ active }) => [
|
|
_createVNode(_component_NuxtLink, {
|
|
to: $setup.settingsServerRoutes.general,
|
|
class: _normalizeClass([
|
|
active ? "bg-highlight-1" : "",
|
|
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
|
|
]),
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:35:15"
|
|
}, {
|
|
default: _withCtx(() => [..._cache[3] || (_cache[3] = [
|
|
_createTextVNode(
|
|
" Server settings ",
|
|
-1
|
|
/* CACHED */
|
|
)
|
|
])]),
|
|
_: 2
|
|
/* DYNAMIC */
|
|
}, 1032, ["to", "class"])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})) : _createCommentVNode("v-if", true),
|
|
_createVNode($setup["MenuItem"], { "data-v-inspector": "components/header/nav/UserMenu.vue:45:13" }, {
|
|
default: _withCtx(({ active }) => [
|
|
_createVNode(_component_NuxtLink, {
|
|
class: _normalizeClass([
|
|
active ? "bg-highlight-1" : "",
|
|
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
|
|
]),
|
|
onClick: $setup.toggleTheme,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:46:15"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createTextVNode(
|
|
_toDisplayString($setup.isDarkTheme ? "Light mode" : "Dark mode"),
|
|
1
|
|
/* TEXT */
|
|
)
|
|
]),
|
|
_: 2
|
|
/* DYNAMIC */
|
|
}, 1032, ["class", "onClick"])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}),
|
|
$setup.activeUser && !$setup.isGuest ? (_openBlock(), _createBlock($setup["MenuItem"], {
|
|
key: 2,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:56:13"
|
|
}, {
|
|
default: _withCtx(({ active }) => [
|
|
_createVNode(_component_NuxtLink, {
|
|
class: _normalizeClass([
|
|
active ? "bg-highlight-1" : "",
|
|
"text-body-xs flex px-2 py-1 text-foreground cursor-pointer transition mx-1 rounded"
|
|
]),
|
|
onClick: $setup.toggleInviteDialog,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:57:15"
|
|
}, {
|
|
default: _withCtx(() => [..._cache[4] || (_cache[4] = [
|
|
_createTextVNode(
|
|
" Invite to Speckle ",
|
|
-1
|
|
/* CACHED */
|
|
)
|
|
])]),
|
|
_: 2
|
|
/* DYNAMIC */
|
|
}, 1032, ["class"])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})) : _createCommentVNode("v-if", true)
|
|
]),
|
|
_createElementVNode("div", _hoisted_4, [
|
|
_createCommentVNode(" Log In/Out removed as per global auth bypass "),
|
|
_createElementVNode("div", _hoisted_5, [
|
|
$setup.version ? (_openBlock(), _createBlock($setup["MenuItem"], {
|
|
key: 0,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:74:15"
|
|
}, {
|
|
default: _withCtx(() => [
|
|
_createElementVNode(
|
|
"div",
|
|
_hoisted_6,
|
|
"Version " + _toDisplayString($setup.version),
|
|
1
|
|
/* TEXT */
|
|
)
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})) : _createCommentVNode("v-if", true),
|
|
_createVNode($setup["MenuItem"], { "data-v-inspector": "components/header/nav/UserMenu.vue:77:15" }, {
|
|
default: _withCtx(() => [
|
|
_createVNode(_component_NuxtLink, {
|
|
class: "cursor-pointer text-foreground-2 hover:text-foreground",
|
|
onClick: $setup.copySupportReference,
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:78:17"
|
|
}, {
|
|
default: _withCtx(() => [..._cache[5] || (_cache[5] = [
|
|
_createTextVNode(
|
|
" Copy support reference ",
|
|
-1
|
|
/* CACHED */
|
|
)
|
|
])]),
|
|
_: 1
|
|
/* STABLE */
|
|
})
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})
|
|
])
|
|
])
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
})
|
|
]),
|
|
_: 1
|
|
/* STABLE */
|
|
}),
|
|
_createVNode(_component_InviteDialogServer, {
|
|
open: $setup.showInviteDialog,
|
|
"onUpdate:open": _cache[0] || (_cache[0] = ($event) => $setup.showInviteDialog = $event),
|
|
"data-v-inspector": "components/header/nav/UserMenu.vue:90:5"
|
|
}, null, 8, ["open"])
|
|
]);
|
|
}
|
|
_sfc_main.__hmrId = "67312c39";
|
|
typeof __VUE_HMR_RUNTIME__ !== "undefined" && __VUE_HMR_RUNTIME__.createRecord(_sfc_main.__hmrId, _sfc_main);
|
|
import.meta.hot.on("file-changed", ({ file }) => {
|
|
__VUE_HMR_RUNTIME__.CHANGED_FILE = file;
|
|
});
|
|
import.meta.hot.accept((mod) => {
|
|
if (!mod) return;
|
|
const { default: updated, _rerender_only } = mod;
|
|
if (_rerender_only) {
|
|
__VUE_HMR_RUNTIME__.rerender(updated.__hmrId, updated.render);
|
|
} else {
|
|
__VUE_HMR_RUNTIME__.reload(updated.__hmrId, updated);
|
|
}
|
|
});
|
|
import _export_sfc from "/_nuxt/@id/__x00__plugin-vue:export-helper";
|
|
export default /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/speckle-server/packages/frontend-2/components/header/nav/UserMenu.vue"]]);
|
|
|
|
//# sourceMappingURL=data:application/json;base64,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VztBQUFBLDBCQUpULE9BQU07QUFBQSwwQkFDTCxTQUFPO0FBQUEsMEJBQXNCLG9CQUFpQjtBQUFBOzRDQUNoRCxNQUVEO0FBQUE7OEJBRkM7QUFBQSw4QkFFRDtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9aLGFBQWlIO0FBQUEsTUFBckYsTUFBTTtBQUFBLHVGQUFnQjtBQUFBLE1BQUUsb0JBQWlCO0FBQUEiLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIlVzZXJNZW51LnZ1ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgPGRpdiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZToyOjNcIj5cclxuICAgIDxNZW51IGFzPVwiZGl2XCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjM6NVwiPlxyXG4gICAgICA8TWVudUJ1dHRvbiA6aWQ9XCJtZW51QnV0dG9uSWRcIiB2LXNsb3Q9XCJ7IG9wZW46IHVzZXJPcGVuIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo0OjdcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo1OjlcIj5PcGVuIHVzZXIgbWVudTwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcC0wLjUgaG92ZXI6YmctaGlnaGxpZ2h0LTIgcm91bmRlZFwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjY6OVwiPlxyXG4gICAgICAgICAgPFVzZXJBdmF0YXIgaGlkZS10b29sdGlwIDp1c2VyPVwiYWN0aXZlVXNlclwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjc6MTFcIiAvPlxyXG4gICAgICAgICAgPENoZXZyb25Eb3duSWNvbiA6Y2xhc3M9XCJ1c2VyT3BlbiA/ICdyb3RhdGUtMTgwJyA6ICcnXCIgY2xhc3M9XCJoLTMgdy0zXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9Vc2VyTWVudS52dWU6ODoxMVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvTWVudUJ1dHRvbj5cclxuICAgICAgPFRyYW5zaXRpb25cclxuICAgICAgICBlbnRlci1hY3RpdmUtY2xhc3M9XCJ0cmFuc2l0aW9uIGVhc2Utb3V0IGR1cmF0aW9uLTIwMFwiXHJcbiAgICAgICAgZW50ZXItZnJvbS1jbGFzcz1cInRyYW5zZm9ybSBvcGFjaXR5LTAgc2NhbGUtOTVcIlxyXG4gICAgICAgIGVudGVyLXRvLWNsYXNzPVwidHJhbnNmb3JtIG9wYWNpdHktMTAwIHNjYWxlLTEwMFwiXHJcbiAgICAgICAgbGVhdmUtYWN0aXZlLWNsYXNzPVwidHJhbnNpdGlvbiBlYXNlLWluIGR1cmF0aW9uLTc1XCJcclxuICAgICAgICBsZWF2ZS1mcm9tLWNsYXNzPVwidHJhbnNmb3JtIG9wYWNpdHktMTAwIHNjYWxlLTEwMFwiXHJcbiAgICAgICAgbGVhdmUtdG8tY2xhc3M9XCJ0cmFuc2Zvcm0gb3BhY2l0eS0wIHNjYWxlLTk1XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9Vc2VyTWVudS52dWU6MTE6N1wiXHJcbiAgICAgID5cclxuICAgICAgICA8TWVudUl0ZW1zXHJcbiAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTQgdG9wLTE0IHctNTYgb3JpZ2luLXRvcC1yaWdodCBiZy1mb3VuZGF0aW9uIG91dGxpbmUgb3V0bGluZS0xIG91dGxpbmUtcHJpbWFyeS1tdXRlZCByb3VuZGVkLW1kIHNoYWRvdy1sZyBvdmVyZmxvdy1oaWRkZW5cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZToxOTo5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHQtMVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjIyOjExXCI+XHJcbiAgICAgICAgICAgIDxNZW51SXRlbSB2LWlmPVwiYWN0aXZlVXNlclwiIHYtc2xvdD1cInsgYWN0aXZlIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZToyMzoxM1wiPlxyXG4gICAgICAgICAgICAgIDxOdXh0TGlua1xyXG4gICAgICAgICAgICAgICAgOnRvPVwic2V0dGluZ3NVc2VyUm91dGVzLnByb2ZpbGVcIlxyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwiW1xyXG4gICAgICAgICAgICAgICAgICBhY3RpdmUgPyAnYmctaGlnaGxpZ2h0LTEnIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICd0ZXh0LWJvZHkteHMgZmxleCBweC0yIHB5LTEgdGV4dC1mb3JlZ3JvdW5kIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24gbXgtMSByb3VuZGVkJ1xyXG4gICAgICAgICAgICAgICAgXVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjI0OjE1XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBTZXR0aW5nc1xyXG4gICAgICAgICAgICAgIDwvTnV4dExpbms+XHJcbiAgICAgICAgICAgIDwvTWVudUl0ZW0+XHJcbiAgICAgICAgICAgIDxNZW51SXRlbSB2LWlmPVwiaXNBZG1pblwiIHYtc2xvdD1cInsgYWN0aXZlIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTozNDoxM1wiPlxyXG4gICAgICAgICAgICAgIDxOdXh0TGlua1xyXG4gICAgICAgICAgICAgICAgOnRvPVwic2V0dGluZ3NTZXJ2ZXJSb3V0ZXMuZ2VuZXJhbFwiXHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJbXHJcbiAgICAgICAgICAgICAgICAgIGFjdGl2ZSA/ICdiZy1oaWdobGlnaHQtMScgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgJ3RleHQtYm9keS14cyBmbGV4IHB4LTIgcHktMSB0ZXh0LWZvcmVncm91bmQgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbiBteC0xIHJvdW5kZWQnXHJcbiAgICAgICAgICAgICAgICBdXCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9Vc2VyTWVudS52dWU6MzU6MTVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFNlcnZlciBzZXR0aW5nc1xyXG4gICAgICAgICAgICAgIDwvTnV4dExpbms+XHJcbiAgICAgICAgICAgIDwvTWVudUl0ZW0+XHJcbiAgICAgICAgICAgIDxNZW51SXRlbSB2LXNsb3Q9XCJ7IGFjdGl2ZSB9XCIgZGF0YS12LWluc3BlY3Rvcj1cImNvbXBvbmVudHMvaGVhZGVyL25hdi9Vc2VyTWVudS52dWU6NDU6MTNcIj5cclxuICAgICAgICAgICAgICA8TnV4dExpbmtcclxuICAgICAgICAgICAgICAgIDpjbGFzcz1cIltcclxuICAgICAgICAgICAgICAgICAgYWN0aXZlID8gJ2JnLWhpZ2hsaWdodC0xJyA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAndGV4dC1ib2R5LXhzIGZsZXggcHgtMiBweS0xIHRleHQtZm9yZWdyb3VuZCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uIG14LTEgcm91bmRlZCdcclxuICAgICAgICAgICAgICAgIF1cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwidG9nZ2xlVGhlbWVcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo0NjoxNVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgaXNEYXJrVGhlbWUgPyAnTGlnaHQgbW9kZScgOiAnRGFyayBtb2RlJyB9fVxyXG4gICAgICAgICAgICAgIDwvTnV4dExpbms+XHJcbiAgICAgICAgICAgIDwvTWVudUl0ZW0+XHJcbiAgICAgICAgICAgIDxNZW51SXRlbSB2LWlmPVwiYWN0aXZlVXNlciAmJiAhaXNHdWVzdFwiIHYtc2xvdD1cInsgYWN0aXZlIH1cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo1NjoxM1wiPlxyXG4gICAgICAgICAgICAgIDxOdXh0TGlua1xyXG4gICAgICAgICAgICAgICAgOmNsYXNzPVwiW1xyXG4gICAgICAgICAgICAgICAgICBhY3RpdmUgPyAnYmctaGlnaGxpZ2h0LTEnIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICd0ZXh0LWJvZHkteHMgZmxleCBweC0yIHB5LTEgdGV4dC1mb3JlZ3JvdW5kIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24gbXgtMSByb3VuZGVkJ1xyXG4gICAgICAgICAgICAgICAgXVwiXHJcbiAgICAgICAgICAgICAgICBAY2xpY2s9XCJ0b2dnbGVJbnZpdGVEaWFsb2dcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo1NzoxNVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgSW52aXRlIHRvIFNwZWNrbGVcclxuICAgICAgICAgICAgICA8L051eHRMaW5rPlxyXG4gICAgICAgICAgICA8L01lbnVJdGVtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLW91dGxpbmUtMyBweS0xIG10LTFcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo2ODoxMVwiPlxyXG4gICAgICAgICAgICA8IS0tIExvZyBJbi9PdXQgcmVtb3ZlZCBhcyBwZXIgZ2xvYmFsIGF1dGggYnlwYXNzIC0tPlxyXG5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLW91dGxpbmUtMyBweS0xIG10LTEgdGV4dC14cyB0ZXh0LWZvcmVncm91bmQtMiBweC0zIGdhcC0xIGZsZXggZmxleC1jb2xcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo3MToxM1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8TWVudUl0ZW0gdi1pZj1cInZlcnNpb25cIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo3NDoxNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo3NToxN1wiPlZlcnNpb24ge3sgdmVyc2lvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvTWVudUl0ZW0+XHJcbiAgICAgICAgICAgICAgPE1lbnVJdGVtIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjc3OjE1XCI+XHJcbiAgICAgICAgICAgICAgICA8TnV4dExpbmtcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB0ZXh0LWZvcmVncm91bmQtMiBob3Zlcjp0ZXh0LWZvcmVncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJjb3B5U3VwcG9ydFJlZmVyZW5jZVwiIGRhdGEtdi1pbnNwZWN0b3I9XCJjb21wb25lbnRzL2hlYWRlci9uYXYvVXNlck1lbnUudnVlOjc4OjE3XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgQ29weSBzdXBwb3J0IHJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgPC9OdXh0TGluaz5cclxuICAgICAgICAgICAgICA8L01lbnVJdGVtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvTWVudUl0ZW1zPlxyXG4gICAgICA8L1RyYW5zaXRpb24+XHJcbiAgICA8L01lbnU+XHJcbiAgICA8SW52aXRlRGlhbG9nU2VydmVyIHYtbW9kZWw6b3Blbj1cInNob3dJbnZpdGVEaWFsb2dcIiBkYXRhLXYtaW5zcGVjdG9yPVwiY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZTo5MDo1XCIgLz5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgTWVudSwgTWVudUJ1dHRvbiwgTWVudUl0ZW0sIE1lbnVJdGVtcyB9IGZyb20gJ0BoZWFkbGVzc3VpL3Z1ZSdcclxuaW1wb3J0IHsgQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGhlcm9pY29ucy92dWUvMjQvb3V0bGluZSdcclxuaW1wb3J0IHsgUm9sZXMgfSBmcm9tICdAc3BlY2tsZS9zaGFyZWQnXHJcbmltcG9ydCB7IHVzZUFjdGl2ZVVzZXIgfSBmcm9tICd+fi9saWIvYXV0aC9jb21wb3NhYmxlcy9hY3RpdmVVc2VyJ1xyXG5pbXBvcnQgeyB1c2VBdXRoTWFuYWdlciB9IGZyb20gJ35+L2xpYi9hdXRoL2NvbXBvc2FibGVzL2F1dGgnXHJcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSAnfn4vbGliL2NvcmUvY29tcG9zYWJsZXMvdGhlbWUnXHJcbmltcG9ydCB7IHNldHRpbmdzVXNlclJvdXRlcywgc2V0dGluZ3NTZXJ2ZXJSb3V0ZXMgfSBmcm9tICd+L2xpYi9jb21tb24vaGVscGVycy9yb3V0ZSdcclxuaW1wb3J0IHR5cGUgeyBSb3V0ZUxvY2F0aW9uUmF3IH0gZnJvbSAndnVlLXJvdXRlcidcclxuaW1wb3J0IHsgdXNlU2VydmVySW5mbyB9IGZyb20gJ34vbGliL2NvcmUvY29tcG9zYWJsZXMvc2VydmVyJ1xyXG5pbXBvcnQgeyB1c2VHZW5lcmF0ZUVycm9yUmVmZXJlbmNlIH0gZnJvbSAnfi9saWIvY29yZS9jb21wb3NhYmxlcy9lcnJvcidcclxuXHJcbmRlZmluZVByb3BzPHtcclxuICBsb2dpblVybD86IFJvdXRlTG9jYXRpb25SYXdcclxufT4oKVxyXG5cclxuY29uc3QgeyBsb2dvdXQgfSA9IHVzZUF1dGhNYW5hZ2VyKClcclxuY29uc3QgeyBhY3RpdmVVc2VyLCBpc0d1ZXN0IH0gPSB1c2VBY3RpdmVVc2VyKClcclxuY29uc3QgeyBpc0RhcmtUaGVtZSwgdG9nZ2xlVGhlbWUgfSA9IHVzZVRoZW1lKClcclxuY29uc3QgeyBzZXJ2ZXJJbmZvIH0gPSB1c2VTZXJ2ZXJJbmZvKClcclxuY29uc3QgbWVudUJ1dHRvbklkID0gdXNlSWQoKVxyXG5jb25zdCB7IGNvcHlSZWZlcmVuY2UgfSA9IHVzZUdlbmVyYXRlRXJyb3JSZWZlcmVuY2UoKVxyXG5cclxuY29uc3Qgc2hvd0ludml0ZURpYWxvZyA9IHJlZihmYWxzZSlcclxuXHJcbmNvbnN0IHZlcnNpb24gPSBjb21wdXRlZCgoKSA9PiBzZXJ2ZXJJbmZvLnZhbHVlPy52ZXJzaW9uKVxyXG5jb25zdCBpc0FkbWluID0gY29tcHV0ZWQoKCkgPT4gYWN0aXZlVXNlci52YWx1ZT8ucm9sZSA9PT0gUm9sZXMuU2VydmVyLkFkbWluKVxyXG5cclxuY29uc3QgdG9nZ2xlSW52aXRlRGlhbG9nID0gKCkgPT4ge1xyXG4gIHNob3dJbnZpdGVEaWFsb2cudmFsdWUgPSB0cnVlXHJcbn1cclxuXHJcbmNvbnN0IGNvcHlTdXBwb3J0UmVmZXJlbmNlID0gYXN5bmMgKCkgPT4ge1xyXG4gIGF3YWl0IGNvcHlSZWZlcmVuY2UoKVxyXG59XHJcbjwvc2NyaXB0PlxyXG4iXSwiZmlsZSI6IkQ6L3NwZWNrbGUtc2VydmVyL3BhY2thZ2VzL2Zyb250ZW5kLTIvY29tcG9uZW50cy9oZWFkZXIvbmF2L1VzZXJNZW51LnZ1ZSJ9 |