import { template as _$template } from "/node_modules/.vite/deps/solid-js_web.js?v=93754656";
|
import { spread as _$spread } from "/node_modules/.vite/deps/solid-js_web.js?v=93754656";
|
import { mergeProps as _$mergeProps } from "/node_modules/.vite/deps/solid-js_web.js?v=93754656";
|
import { memo as _$memo } from "/node_modules/.vite/deps/solid-js_web.js?v=93754656";
|
import { createComponent as _$createComponent } from "/node_modules/.vite/deps/solid-js_web.js?v=93754656";
|
const _tmpl$ = /*#__PURE__*/_$template(`<a link>`);
|
/*@refresh skip*/
|
import { children, createMemo, createRoot, mergeProps, on, Show, splitProps } from "/node_modules/.vite/deps/solid-js.js?v=93754656";
|
import { isServer } from "/node_modules/.vite/deps/solid-js_web.js?v=93754656";
|
import { pathIntegration, staticIntegration } from "/node_modules/@solidjs/router/dist/integration.js?v=d99f92c7";
|
import { createBranches, createRouteContext, createRouterContext, getRouteMatches, RouteContextObj, RouterContextObj, useHref, useLocation, useNavigate, useResolvedPath, useRoute, useRouter } from "/node_modules/@solidjs/router/dist/routing.js?v=d99f92c7";
|
import { joinPaths, normalizePath, createMemoObject } from "/node_modules/@solidjs/router/dist/utils.js?v=d99f92c7";
|
export const Router = props => {
|
const {
|
source,
|
url,
|
base,
|
data,
|
out
|
} = props;
|
const integration = source || (isServer ? staticIntegration({
|
value: url || ""
|
}) : pathIntegration());
|
const routerState = createRouterContext(integration, base, data, out);
|
return _$createComponent(RouterContextObj.Provider, {
|
value: routerState,
|
get children() {
|
return props.children;
|
}
|
});
|
};
|
export const Routes = props => {
|
const router = useRouter();
|
const parentRoute = useRoute();
|
const routeDefs = children(() => props.children);
|
const branches = createMemo(() => createBranches(routeDefs(), joinPaths(parentRoute.pattern, props.base || ""), Outlet));
|
const matches = createMemo(() => getRouteMatches(branches(), router.location.pathname));
|
const params = createMemoObject(() => {
|
const m = matches();
|
const params = {};
|
for (let i = 0; i < m.length; i++) {
|
Object.assign(params, m[i].params);
|
}
|
return params;
|
});
|
if (router.out) {
|
router.out.matches.push(matches().map(({
|
route,
|
path,
|
params
|
}) => ({
|
originalPath: route.originalPath,
|
pattern: route.pattern,
|
path,
|
params
|
})));
|
}
|
const disposers = [];
|
let root;
|
const routeStates = createMemo(on(matches, (nextMatches, prevMatches, prev) => {
|
let equal = prevMatches && nextMatches.length === prevMatches.length;
|
const next = [];
|
for (let i = 0, len = nextMatches.length; i < len; i++) {
|
const prevMatch = prevMatches && prevMatches[i];
|
const nextMatch = nextMatches[i];
|
if (prev && prevMatch && nextMatch.route.key === prevMatch.route.key) {
|
next[i] = prev[i];
|
} else {
|
equal = false;
|
if (disposers[i]) {
|
disposers[i]();
|
}
|
createRoot(dispose => {
|
disposers[i] = dispose;
|
next[i] = createRouteContext(router, next[i - 1] || parentRoute, () => routeStates()[i + 1], () => matches()[i], params);
|
});
|
}
|
}
|
disposers.splice(nextMatches.length).forEach(dispose => dispose());
|
if (prev && equal) {
|
return prev;
|
}
|
root = next[0];
|
return next;
|
}));
|
return _$createComponent(Show, {
|
get when() {
|
return routeStates() && root;
|
},
|
keyed: true,
|
children: route => _$createComponent(RouteContextObj.Provider, {
|
value: route,
|
get children() {
|
return route.outlet();
|
}
|
})
|
});
|
};
|
export const useRoutes = (routes, base) => {
|
return () => _$createComponent(Routes, {
|
base: base,
|
children: routes
|
});
|
};
|
export const Route = props => {
|
const childRoutes = children(() => props.children);
|
return mergeProps(props, {
|
get children() {
|
return childRoutes();
|
}
|
});
|
};
|
export const Outlet = () => {
|
const route = useRoute();
|
return _$createComponent(Show, {
|
get when() {
|
return route.child;
|
},
|
keyed: true,
|
children: child => _$createComponent(RouteContextObj.Provider, {
|
value: child,
|
get children() {
|
return child.outlet();
|
}
|
})
|
});
|
};
|
export function A(props) {
|
props = mergeProps({
|
inactiveClass: "inactive",
|
activeClass: "active"
|
}, props);
|
const [, rest] = splitProps(props, ["href", "state", "class", "activeClass", "inactiveClass", "end"]);
|
const to = useResolvedPath(() => props.href);
|
const href = useHref(to);
|
const location = useLocation();
|
const isActive = createMemo(() => {
|
const to_ = to();
|
if (to_ === undefined) return false;
|
const path = normalizePath(to_.split(/[?#]/, 1)[0]).toLowerCase();
|
const loc = normalizePath(location.pathname).toLowerCase();
|
return props.end ? path === loc : loc.startsWith(path);
|
});
|
return (() => {
|
const _el$ = _tmpl$();
|
_$spread(_el$, _$mergeProps(rest, {
|
get href() {
|
return href() || props.href;
|
},
|
get state() {
|
return JSON.stringify(props.state);
|
},
|
get classList() {
|
return {
|
...(props.class && {
|
[props.class]: true
|
}),
|
[props.inactiveClass]: !isActive(),
|
[props.activeClass]: isActive(),
|
...rest.classList
|
};
|
},
|
get ["aria-current"]() {
|
return isActive() ? "page" : undefined;
|
}
|
}), false, false);
|
return _el$;
|
})();
|
}
|
// deprecated alias exports
|
export { A as Link, A as NavLink };
|
export function Navigate(props) {
|
const navigate = useNavigate();
|
const location = useLocation();
|
const {
|
href,
|
state
|
} = props;
|
const path = typeof href === "function" ? href({
|
navigate,
|
location
|
}) : href;
|
navigate(path, {
|
replace: true,
|
state
|
});
|
return null;
|
}
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGlsZHJlbiIsImNyZWF0ZU1lbW8iLCJjcmVhdGVSb290IiwibWVyZ2VQcm9wcyIsIm9uIiwiU2hvdyIsInNwbGl0UHJvcHMiLCJpc1NlcnZlciIsInBhdGhJbnRlZ3JhdGlvbiIsInN0YXRpY0ludGVncmF0aW9uIiwiY3JlYXRlQnJhbmNoZXMiLCJjcmVhdGVSb3V0ZUNvbnRleHQiLCJjcmVhdGVSb3V0ZXJDb250ZXh0IiwiZ2V0Um91dGVNYXRjaGVzIiwiUm91dGVDb250ZXh0T2JqIiwiUm91dGVyQ29udGV4dE9iaiIsInVzZUhyZWYiLCJ1c2VMb2NhdGlvbiIsInVzZU5hdmlnYXRlIiwidXNlUmVzb2x2ZWRQYXRoIiwidXNlUm91dGUiLCJ1c2VSb3V0ZXIiLCJqb2luUGF0aHMiLCJub3JtYWxpemVQYXRoIiwiY3JlYXRlTWVtb09iamVjdCIsIlJvdXRlciIsInByb3BzIiwic291cmNlIiwidXJsIiwiYmFzZSIsImRhdGEiLCJvdXQiLCJpbnRlZ3JhdGlvbiIsInZhbHVlIiwicm91dGVyU3RhdGUiLCJfJGNyZWF0ZUNvbXBvbmVudCIsIlByb3ZpZGVyIiwiUm91dGVzIiwicm91dGVyIiwicGFyZW50Um91dGUiLCJyb3V0ZURlZnMiLCJicmFuY2hlcyIsInBhdHRlcm4iLCJPdXRsZXQiLCJtYXRjaGVzIiwibG9jYXRpb24iLCJwYXRobmFtZSIsInBhcmFtcyIsIm0iLCJpIiwibGVuZ3RoIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCIsIm1hcCIsInJvdXRlIiwicGF0aCIsIm9yaWdpbmFsUGF0aCIsImRpc3Bvc2VycyIsInJvb3QiLCJyb3V0ZVN0YXRlcyIsIm5leHRNYXRjaGVzIiwicHJldk1hdGNoZXMiLCJwcmV2IiwiZXF1YWwiLCJuZXh0IiwibGVuIiwicHJldk1hdGNoIiwibmV4dE1hdGNoIiwia2V5IiwiZGlzcG9zZSIsInNwbGljZSIsImZvckVhY2giLCJ3aGVuIiwia2V5ZWQiLCJvdXRsZXQiLCJ1c2VSb3V0ZXMiLCJyb3V0ZXMiLCJSb3V0ZSIsImNoaWxkUm91dGVzIiwiY2hpbGQiLCJBIiwiaW5hY3RpdmVDbGFzcyIsImFjdGl2ZUNsYXNzIiwicmVzdCIsInRvIiwiaHJlZiIsImlzQWN0aXZlIiwidG9fIiwidW5kZWZpbmVkIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSIsImxvYyIsImVuZCIsInN0YXJ0c1dpdGgiLCJfZWwkIiwiX3RtcGwkIiwiXyRzcHJlYWQiLCJfJG1lcmdlUHJvcHMiLCJzdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGFzc0xpc3QiLCJjbGFzcyIsImFyaWEtY3VycmVudCIsIkxpbmsiLCJOYXZMaW5rIiwiTmF2aWdhdGUiLCJuYXZpZ2F0ZSIsInJlcGxhY2UiXSwic291cmNlcyI6WyJjb21wb25lbnRzLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKkByZWZyZXNoIHNraXAqL1xuaW1wb3J0IHsgY2hpbGRyZW4sIGNyZWF0ZU1lbW8sIGNyZWF0ZVJvb3QsIG1lcmdlUHJvcHMsIG9uLCBTaG93LCBzcGxpdFByb3BzIH0gZnJvbSBcInNvbGlkLWpzXCI7XG5pbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gXCJzb2xpZC1qcy93ZWJcIjtcbmltcG9ydCB7IHBhdGhJbnRlZ3JhdGlvbiwgc3RhdGljSW50ZWdyYXRpb24gfSBmcm9tIFwiLi9pbnRlZ3JhdGlvblwiO1xuaW1wb3J0IHsgY3JlYXRlQnJhbmNoZXMsIGNyZWF0ZVJvdXRlQ29udGV4dCwgY3JlYXRlUm91dGVyQ29udGV4dCwgZ2V0Um91dGVNYXRjaGVzLCBSb3V0ZUNvbnRleHRPYmosIFJvdXRlckNvbnRleHRPYmosIHVzZUhyZWYsIHVzZUxvY2F0aW9uLCB1c2VOYXZpZ2F0ZSwgdXNlUmVzb2x2ZWRQYXRoLCB1c2VSb3V0ZSwgdXNlUm91dGVyIH0gZnJvbSBcIi4vcm91dGluZ1wiO1xuaW1wb3J0IHsgam9pblBhdGhzLCBub3JtYWxpemVQYXRoLCBjcmVhdGVNZW1vT2JqZWN0IH0gZnJvbSBcIi4vdXRpbHNcIjtcbmV4cG9ydCBjb25zdCBSb3V0ZXIgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHNvdXJjZSwgdXJsLCBiYXNlLCBkYXRhLCBvdXQgfSA9IHByb3BzO1xuICAgIGNvbnN0IGludGVncmF0aW9uID0gc291cmNlIHx8IChpc1NlcnZlciA/IHN0YXRpY0ludGVncmF0aW9uKHsgdmFsdWU6IHVybCB8fCBcIlwiIH0pIDogcGF0aEludGVncmF0aW9uKCkpO1xuICAgIGNvbnN0IHJvdXRlclN0YXRlID0gY3JlYXRlUm91dGVyQ29udGV4dChpbnRlZ3JhdGlvbiwgYmFzZSwgZGF0YSwgb3V0KTtcbiAgICByZXR1cm4gKDxSb3V0ZXJDb250ZXh0T2JqLlByb3ZpZGVyIHZhbHVlPXtyb3V0ZXJTdGF0ZX0+e3Byb3BzLmNoaWxkcmVufTwvUm91dGVyQ29udGV4dE9iai5Qcm92aWRlcj4pO1xufTtcbmV4cG9ydCBjb25zdCBSb3V0ZXMgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTtcbiAgICBjb25zdCBwYXJlbnRSb3V0ZSA9IHVzZVJvdXRlKCk7XG4gICAgY29uc3Qgcm91dGVEZWZzID0gY2hpbGRyZW4oKCkgPT4gcHJvcHMuY2hpbGRyZW4pO1xuICAgIGNvbnN0IGJyYW5jaGVzID0gY3JlYXRlTWVtbygoKSA9PiBjcmVhdGVCcmFuY2hlcyhyb3V0ZURlZnMoKSwgam9pblBhdGhzKHBhcmVudFJvdXRlLnBhdHRlcm4sIHByb3BzLmJhc2UgfHwgXCJcIiksIE91dGxldCkpO1xuICAgIGNvbnN0IG1hdGNoZXMgPSBjcmVhdGVNZW1vKCgpID0+IGdldFJvdXRlTWF0Y2hlcyhicmFuY2hlcygpLCByb3V0ZXIubG9jYXRpb24ucGF0aG5hbWUpKTtcbiAgICBjb25zdCBwYXJhbXMgPSBjcmVhdGVNZW1vT2JqZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbSA9IG1hdGNoZXMoKTtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJhbXMsIG1baV0ucGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH0pO1xuICAgIGlmIChyb3V0ZXIub3V0KSB7XG4gICAgICAgIHJvdXRlci5vdXQubWF0Y2hlcy5wdXNoKG1hdGNoZXMoKS5tYXAoKHsgcm91dGUsIHBhdGgsIHBhcmFtcyB9KSA9PiAoe1xuICAgICAgICAgICAgb3JpZ2luYWxQYXRoOiByb3V0ZS5vcmlnaW5hbFBhdGgsXG4gICAgICAgICAgICBwYXR0ZXJuOiByb3V0ZS5wYXR0ZXJuLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICB9KSkpO1xuICAgIH1cbiAgICBjb25zdCBkaXNwb3NlcnMgPSBbXTtcbiAgICBsZXQgcm9vdDtcbiAgICBjb25zdCByb3V0ZVN0YXRlcyA9IGNyZWF0ZU1lbW8ob24obWF0Y2hlcywgKG5leHRNYXRjaGVzLCBwcmV2TWF0Y2hlcywgcHJldikgPT4ge1xuICAgICAgICBsZXQgZXF1YWwgPSBwcmV2TWF0Y2hlcyAmJiBuZXh0TWF0Y2hlcy5sZW5ndGggPT09IHByZXZNYXRjaGVzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbmV4dCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbmV4dE1hdGNoZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZNYXRjaCA9IHByZXZNYXRjaGVzICYmIHByZXZNYXRjaGVzW2ldO1xuICAgICAgICAgICAgY29uc3QgbmV4dE1hdGNoID0gbmV4dE1hdGNoZXNbaV07XG4gICAgICAgICAgICBpZiAocHJldiAmJiBwcmV2TWF0Y2ggJiYgbmV4dE1hdGNoLnJvdXRlLmtleSA9PT0gcHJldk1hdGNoLnJvdXRlLmtleSkge1xuICAgICAgICAgICAgICAgIG5leHRbaV0gPSBwcmV2W2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoZGlzcG9zZXJzW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3Bvc2Vyc1tpXSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjcmVhdGVSb290KGRpc3Bvc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwb3NlcnNbaV0gPSBkaXNwb3NlO1xuICAgICAgICAgICAgICAgICAgICBuZXh0W2ldID0gY3JlYXRlUm91dGVDb250ZXh0KHJvdXRlciwgbmV4dFtpIC0gMV0gfHwgcGFyZW50Um91dGUsICgpID0+IHJvdXRlU3RhdGVzKClbaSArIDFdLCAoKSA9PiBtYXRjaGVzKClbaV0sIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZGlzcG9zZXJzLnNwbGljZShuZXh0TWF0Y2hlcy5sZW5ndGgpLmZvckVhY2goZGlzcG9zZSA9PiBkaXNwb3NlKCkpO1xuICAgICAgICBpZiAocHJldiAmJiBlcXVhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgIH1cbiAgICAgICAgcm9vdCA9IG5leHRbMF07XG4gICAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pKTtcbiAgICByZXR1cm4gKDxTaG93IHdoZW49e3JvdXRlU3RhdGVzKCkgJiYgcm9vdH0ga2V5ZWQ+XG4gICAgICB7cm91dGUgPT4gPFJvdXRlQ29udGV4dE9iai5Qcm92aWRlciB2YWx1ZT17cm91dGV9Pntyb3V0ZS5vdXRsZXQoKX08L1JvdXRlQ29udGV4dE9iai5Qcm92aWRlcj59XG4gICAgPC9TaG93Pik7XG59O1xuZXhwb3J0IGNvbnN0IHVzZVJvdXRlcyA9IChyb3V0ZXMsIGJhc2UpID0+IHtcbiAgICByZXR1cm4gKCkgPT4gPFJvdXRlcyBiYXNlPXtiYXNlfT57cm91dGVzfTwvUm91dGVzPjtcbn07XG5leHBvcnQgY29uc3QgUm91dGUgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBjaGlsZFJvdXRlcyA9IGNoaWxkcmVuKCgpID0+IHByb3BzLmNoaWxkcmVuKTtcbiAgICByZXR1cm4gbWVyZ2VQcm9wcyhwcm9wcywge1xuICAgICAgICBnZXQgY2hpbGRyZW4oKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGRSb3V0ZXMoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmV4cG9ydCBjb25zdCBPdXRsZXQgPSAoKSA9PiB7XG4gICAgY29uc3Qgcm91dGUgPSB1c2VSb3V0ZSgpO1xuICAgIHJldHVybiAoPFNob3cgd2hlbj17cm91dGUuY2hpbGR9IGtleWVkPlxuICAgICAge2NoaWxkID0+IDxSb3V0ZUNvbnRleHRPYmouUHJvdmlkZXIgdmFsdWU9e2NoaWxkfT57Y2hpbGQub3V0bGV0KCl9PC9Sb3V0ZUNvbnRleHRPYmouUHJvdmlkZXI+fVxuICAgIDwvU2hvdz4pO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBBKHByb3BzKSB7XG4gICAgcHJvcHMgPSBtZXJnZVByb3BzKHsgaW5hY3RpdmVDbGFzczogXCJpbmFjdGl2ZVwiLCBhY3RpdmVDbGFzczogXCJhY3RpdmVcIiB9LCBwcm9wcyk7XG4gICAgY29uc3QgWywgcmVzdF0gPSBzcGxpdFByb3BzKHByb3BzLCBbXG4gICAgICAgIFwiaHJlZlwiLFxuICAgICAgICBcInN0YXRlXCIsXG4gICAgICAgIFwiY2xhc3NcIixcbiAgICAgICAgXCJhY3RpdmVDbGFzc1wiLFxuICAgICAgICBcImluYWN0aXZlQ2xhc3NcIixcbiAgICAgICAgXCJlbmRcIlxuICAgIF0pO1xuICAgIGNvbnN0IHRvID0gdXNlUmVzb2x2ZWRQYXRoKCgpID0+IHByb3BzLmhyZWYpO1xuICAgIGNvbnN0IGhyZWYgPSB1c2VIcmVmKHRvKTtcbiAgICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gICAgY29uc3QgaXNBY3RpdmUgPSBjcmVhdGVNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgdG9fID0gdG8oKTtcbiAgICAgICAgaWYgKHRvXyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBwYXRoID0gbm9ybWFsaXplUGF0aCh0b18uc3BsaXQoL1s/I10vLCAxKVswXSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3QgbG9jID0gbm9ybWFsaXplUGF0aChsb2NhdGlvbi5wYXRobmFtZSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHByb3BzLmVuZCA/IHBhdGggPT09IGxvYyA6IGxvYy5zdGFydHNXaXRoKHBhdGgpO1xuICAgIH0pO1xuICAgIHJldHVybiAoPGEgbGluayB7Li4ucmVzdH0gaHJlZj17aHJlZigpIHx8IHByb3BzLmhyZWZ9IHN0YXRlPXtKU09OLnN0cmluZ2lmeShwcm9wcy5zdGF0ZSl9IGNsYXNzTGlzdD17e1xuICAgICAgICAgICAgLi4uKHByb3BzLmNsYXNzICYmIHsgW3Byb3BzLmNsYXNzXTogdHJ1ZSB9KSxcbiAgICAgICAgICAgIFtwcm9wcy5pbmFjdGl2ZUNsYXNzXTogIWlzQWN0aXZlKCksXG4gICAgICAgICAgICBbcHJvcHMuYWN0aXZlQ2xhc3NdOiBpc0FjdGl2ZSgpLFxuICAgICAgICAgICAgLi4ucmVzdC5jbGFzc0xpc3RcbiAgICAgICAgfX0gYXJpYS1jdXJyZW50PXtpc0FjdGl2ZSgpID8gXCJwYWdlXCIgOiB1bmRlZmluZWR9Lz4pO1xufVxuLy8gZGVwcmVjYXRlZCBhbGlhcyBleHBvcnRzXG5leHBvcnQgeyBBIGFzIExpbmssIEEgYXMgTmF2TGluayB9O1xuZXhwb3J0IGZ1bmN0aW9uIE5hdmlnYXRlKHByb3BzKSB7XG4gICAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuICAgIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgICBjb25zdCB7IGhyZWYsIHN0YXRlIH0gPSBwcm9wcztcbiAgICBjb25zdCBwYXRoID0gdHlwZW9mIGhyZWYgPT09IFwiZnVuY3Rpb25cIiA/IGhyZWYoeyBuYXZpZ2F0ZSwgbG9jYXRpb24gfSkgOiBocmVmO1xuICAgIG5hdmlnYXRlKHBhdGgsIHsgcmVwbGFjZTogdHJ1ZSwgc3RhdGUgfSk7XG4gICAgcmV0dXJuIG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxFQUFFLEVBQUVDLElBQUksRUFBRUMsVUFBVSxRQUFRLFVBQVU7QUFDN0YsU0FBU0MsUUFBUSxRQUFRLGNBQWM7QUFDdkMsU0FBU0MsZUFBZSxFQUFFQyxpQkFBaUIsUUFBUSxlQUFlO0FBQ2xFLFNBQVNDLGNBQWMsRUFBRUMsa0JBQWtCLEVBQUVDLG1CQUFtQixFQUFFQyxlQUFlLEVBQUVDLGVBQWUsRUFBRUMsZ0JBQWdCLEVBQUVDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxXQUFXLEVBQUVDLGVBQWUsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLFFBQVEsV0FBVztBQUNoTixTQUFTQyxTQUFTLEVBQUVDLGFBQWEsRUFBRUMsZ0JBQWdCLFFBQVEsU0FBUztBQUNwRSxPQUFPLE1BQU1DLE1BQU0sR0FBSUMsS0FBSyxJQUFLO0VBQzdCLE1BQU07SUFBRUMsTUFBTTtJQUFFQyxHQUFHO0lBQUVDLElBQUk7SUFBRUMsSUFBSTtJQUFFQztFQUFJLENBQUMsR0FBR0wsS0FBSztFQUM5QyxNQUFNTSxXQUFXLEdBQUdMLE1BQU0sS0FBS3BCLFFBQVEsR0FBR0UsaUJBQWlCLENBQUM7SUFBRXdCLEtBQUssRUFBRUwsR0FBRyxJQUFJO0VBQUcsQ0FBQyxDQUFDLEdBQUdwQixlQUFlLENBQUMsQ0FBQyxDQUFDO0VBQ3RHLE1BQU0wQixXQUFXLEdBQUd0QixtQkFBbUIsQ0FBQ29CLFdBQVcsRUFBRUgsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEdBQUcsQ0FBQztFQUNyRSxPQUFBSSxpQkFBQSxDQUFTcEIsZ0JBQWdCLENBQUNxQixRQUFRO0lBQUNILEtBQUssRUFBRUMsV0FBVztJQUFBLElB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
|